Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Pytanie dotyczące odliczania


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
19 odpowiedzi w tym temacie

#1 1stADXionC

    Wszechobecny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 19.09.2015 22:01

Witam.

Czy jest możliwość zrobienia, gdy gracz zdobędzie "Rune" automatycznie jest uruchamiane odliczanie gdzie po 60 minutach wywala nam tą rune?

Plik run daje w załączniku ;)

Załączone pliki


Użytkownik 1stADXionC edytował ten post 19.09.2015 22:01

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#2 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 19.09.2015 22:43

tak
  • +
  • -
  • 3

b35020692_qesnxqa.png


#3 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 19.09.2015 22:50

Czy ten kod jest dobry?

#include <amxmodx>
#include <amxmisc>


#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


#define ZADANIE 3481


new timer[33]


public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
}


public zegar(id)
{    
    timer[id] = 30
    
    if(task_exists(id + ZADANIE))
    {
        remove_task( id + ZADANIE )
    }
    set_task( 1.0, "licz", id + ZADANIE, _, _, "b" )
    
    return PLUGIN_CONTINUE
}


public licz(task_id)
{
    new id = task_id - ZADANIE
    static sSekundy[33];


    if(!is_user_connected(id))
    return;


    set_hudmessage( 255, 255, 255, 0.03, 0.3, 2, 0.02, 1.0, 0.01 )
    show_hudmessage( id, "Do konca pozostalo: %d", timer[id] )
    
    sSekundy[id]++;
    if(sSekundy[id] && sSekundy[id]%60==0)
    timer[id] -= 1
    
    if(timer[id] <= 0)
    {
        if( task_exists(task_id) )
        {
            remove_task( task_id )
        }
    }
}

Jeżeli jest dobry to w jaki sposób go użyć?


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#4 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 19.09.2015 23:06

const TASK_COUNT_DOWN_TIMER = 15454;
new g_iUserTimer[33];

public CountDown(id)
{
	if(task_exists(id + TASK_COUNT_DOWN_TIMER)) // gdy gracz ma juz aktywne odliczanie to je usuwamy
	{
		remove_task(id + TASK_COUNT_DOWN_TIMER);
	}

	set_task(1.0, "CountDownTimer", id + TASK_COUNT_DOWN_TIMER, _, _, "a", g_iUserTimer[id] = 31); // ustawienie zadania i ilosc powtorzen musi byc +1
}

public CountDownTimer(id)
{
	id -= TASK_COUNT_DOWN_TIMER;

	if(--g_iUserTimer[id])
	{
		engclient_print(id, engprint_center, "^nDo konca pozostalo: %i", g_iUserTimer[id]);
		return;
	}

	// jakis kod gdy odliczanie sie zakonczy
}

  • +
  • -
  • 1

#5 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 20.09.2015 18:16

Dzięki a jak użyć tego kodu w moim pluginie?


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#6 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 20.09.2015 18:49

zamien
 

	if(pokaz_info && runa_gracza[id]) 
		ColorChat(id, GREEN, "[COD:MW3]^x01 Zdobyles Rune:^x04 %s", nazwy_runy[runa_gracza[id]]);

na

	if(runa_gracza[id])
	{
		if(pokaz_info)
		{
			ColorChat(id, GREEN, "[COD:MW3]^x01 Zdobyles Rune:^x04 %s", nazwy_runy[runa_gracza[id]]);
		}

		g_iUserTimer[id] = 31;

		if(task_exists(id + TASK_COUNT_DOWN_TIMER))
		{
			change_task(id + TASK_COUNT_DOWN_TIMER, g_iUserTimer[id]); //zmiana czasu zadania, lepsze niz usuwanie i tworzenie od nowa
		}
		else
		{
			set_task(1.0, "CountDownTimer", id + TASK_COUNT_DOWN_TIMER, _, _, "a", g_iUserTimer[id]); //utworzenie nowego zadania
		}
	}

 
dodaj gdzies funkcje publiczna

public CountDownTimer(id)
{
	id -= TASK_COUNT_DOWN_TIMER;
 
	if(--g_iUserTimer[id])
	{
		engclient_print(id, engprint_center, "^nDo konca pozostalo: %i", g_iUserTimer[id]);
		return;
	}
 
	UstawRuny(id, 0, 0, 0);
	engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}

oraz na samym poczatku pluginu dodaj nowa zmienna globalna

new g_iUserTimer[33];

Użytkownik Asiap edytował ten post 20.09.2015 18:51

  • +
  • -
  • 1

#7 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 20.09.2015 19:14

Dzięki działa, a jak zrobić żeby było tak:

Do konca pozostalo: 59 minut.

Czyli chcę aby liczyło od 60 minut. Nie sekund.


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#8 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 20.09.2015 19:35

zamiast 31 ustaw 3601 ;)

 

oraz 

static szTime[3];
format_time(szTime, 2, "%H", g_iUserTimer[id]);

engclient_print(id, engprint_center, "^nDo konca pozostalo: %s minut", szTime);

  • +
  • -
  • 1

#9 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 20.09.2015 20:09

Występuje błąd:

http://webmasteruj.p...75828-U3010.png


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#10 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 20.09.2015 21:58

sory zamiast %H ustaw %M


  • +
  • -
  • 1

#11 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 21.09.2015 13:49

a jak nastąpi zmiana mapy odliczanie nadal bedzie trwało?

 

Trochę chciałem zmienić kod i przestał działać:

 

public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;


UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}
public OpisRuny(id, runa, wartosc)
{
new opis_runy[MAX_WIELKOSC_OPISU];
new losowa_wartosc[15];
if(wartosc > -1)
num_to_str(wartosc, losowa_wartosc, 14);
else
format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);


format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);
replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);


static szTime[3];
         format_time(szTime, 2, "%M", g_iUserTimer[id]);


new opis[416+MAX_WIELKOSC_OPISU];
format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);
show_menu(id, 1023, opis);
}

 


Użytkownik 1stADXionC edytował ten post 21.09.2015 14:17

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#12 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 22.09.2015 09:41


a jak nastąpi zmiana mapy odliczanie nadal bedzie trwało?

Trochę chciałem zmienić kod i przestał działać:

public CountDownTimer(id){id -= TASK_COUNT_DOWN_TIMER;UstawRuny(id, 0, 0, 0);engclient_print(id, engprint_center, "^nRuna zostala usunieta!");}
public OpisRuny(id, runa, wartosc){new opis_runy[MAX_WIELKOSC_OPISU];new losowa_wartosc[15];if(wartosc > -1)num_to_str(wartosc, losowa_wartosc, 14);elseformat(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);static szTime[3];         format_time(szTime, 2, "%M", g_iUserTimer[id]);new opis[416+MAX_WIELKOSC_OPISU];format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);show_menu(id, 1023, opis);}

Nie, w momencie rozlaczenia gracza czas bedzie sie zerowac. Musisz dodac czas runy do zapisu i po podlaczeniu gracza wczytywac go i ustawiac artefakt ktory mial.
  • +
  • -
  • 2

b35020692_qesnxqa.png


#13 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 22.09.2015 12:22

a jak nastąpi zmiana mapy odliczanie nadal bedzie trwało?
 
Trochę chciałem zmienić kod i przestał działać:
 
 

public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;


UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}

public OpisRuny(id, runa, wartosc)
{
new opis_runy[MAX_WIELKOSC_OPISU];
new losowa_wartosc[15];
if(wartosc > -1)
num_to_str(wartosc, losowa_wartosc, 14);
else
format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);


format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);
replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);


static szTime[3];
         format_time(szTime, 2, "%M", g_iUserTimer[id]);


new opis[416+MAX_WIELKOSC_OPISU];
format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);
show_menu(id, 1023, opis);
}

public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;

if(--g_iUserTimer[id])
{
	return;
}

UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}

  • +
  • -
  • 0

#14 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 22.09.2015 20:38

Występuje błąd: 

 

1442950690-U3010.png


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#15 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 22.09.2015 20:39

Nie, w momencie rozlaczenia gracza czas bedzie sie zerowac. Musisz dodac czas runy do zapisu i po podlaczeniu gracza wczytywac go i ustawiac artefakt ktory mial.

 

 

A jak zrobić takowy zapis?


Użytkownik 1stADXionC edytował ten post 22.09.2015 20:40

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#16 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 23.09.2015 01:41

nie rozumiem co chcesz osiagnac

 


  • +
  • -
  • 1

#17 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 24.09.2015 20:11

Po I, chce osiągnąć aby prawidłowo liczylo 60min.
Po II, gdy zostanie nam 30 min czasu a nastąpi zmiana mapy, to po zmianie nadal mamy 30min.
  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#18 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 24.09.2015 20:30

kazde zadanie jest usuwane przed zmiana mapy

 

pokaz kod


  • +
  • -
  • 1

#19 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 24.09.2015 20:35

A ja wlasnie chce zrobic aby zapisywalo czas i po zmianie mapy kontynuowało licenie

public OpisRuny(id, runa, wartosc)
{
new opis_runy[MAX_WIELKOSC_OPISU];
new losowa_wartosc[15];
if(wartosc > -1)
num_to_str(wartosc, losowa_wartosc, 14);
else
format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);


format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);
replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);


static szTime[3];
         format_time(szTime, 2, "%M", g_iUserTimer[id]);


new opis[416+MAX_WIELKOSC_OPISU];
format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);
show_menu(id, 1023, opis);
}

public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;

if(--g_iUserTimer[id])
{
	return;
}

UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#20 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 25.09.2015 17:43

Poradziłem sobie, temat można zamknąć.


  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych