[ROZWIĄZANE] set_task pętla co rundę
he1st
18.10.2014
Witajcie. Mam mały problem z
set_task
A mianowicie, chciałbym sprawić, żeby
set_task(1.0, "checklvl", id)
było wykonywane co rundę na jej początku. Pytanie: Jak mogę tego dokonać??
Petpat
18.10.2014
w public_init dodaj
RegisterHam(Ham_Spawn, "player", "wykonaj", 1);Potem dodaj
public wykonaj(){ set_task(1.0, "checklvl", id) }Po co pętla skoro można zrobic tak ?

Użytkownik Petpat edytował ten post 18.10.2014 18:46
Wielkie Jol
18.10.2014
refresh
Dodaj #include <hamsandwich>
w public_init dodaj
RegisterHam(Ham_Spawn, "player", "wykonaj", 1);Potem dodaj
public wykonaj(){ set_task(1.0, "checklvl", id) }Po co pętla skoro można zrobic tak ?![]()
Próbowałeś to chociaż skompilować?
0ne, dodajesz event nowej rundy i w pętli dla każdego gracza wykonujesz taska.
MyShoT4YoU
18.10.2014
Przykład eventu hltv
Ten przykład działa, ale chyba ten event też tej funkcji służy
register_logevent("TaskCzasu", 2, "1=Round_Start");
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "" #define VERSION "1.0" #define AUTHOR "MyShoT4You" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "TaskCzasu", "a", "1=0", "2=0") } public TaskCzasu(id){ set_task(55.0, "TaskCzasu") } public task() { ////twój kod } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Użytkownik MyShoT4YoU edytował ten post 18.10.2014 21:10
Wielkie Jol
18.10.2014
Przykład eventu hltv
Ten przykład działa, ale chyba ten event też tej funkcji służyregister_logevent("TaskCzasu", 2, "1=Round_Start");/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "" #define VERSION "1.0" #define AUTHOR "MyShoT4You" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "TaskCzasu", "a", "1=0", "2=0") } public TaskCzasu(id){ set_task(55.0, "TaskCzasu") } public task() { ////twój kod } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Niby czemu ma ten kod służyć?
he1st
19.10.2014
Chodzi mi to, żeby sprawdzało co rundę lvl graczowi.
Z dwoma warunkami w
public RoundStart()
wygląda to tak:
if(player_lvl[i] > 0 && zobaczylemlvl[i] == 0){set_task(1.0, "checklvl", i)}a to moje checklvlSpoilerW ten sposób opisany task wykonuje się raz na mapę i nie wiem jak mogę to zmienić, żeby był co rundęSpróbuję jeszcze pokombinować z flagami.
@MyShoT4YoU
set_task wykonuje funkcję w określonym czasie. A w twoim wypadku to on ch**a zrobi, bo dałeś
set_task(55.0, "TaskCzasu")
a później jako funkcję wykonywalną dałeś
public task()
{
}
więc stale wykonujesz funkcję
public TaskCzasu()
gdzie masz umieszczony ten sam task...
Użytkownik !_0ne_! edytował ten post 19.10.2014 09:17
Najlepsza odpowiedź
Wielkie Jol
19.10.2014
1. Aaa, no to bierzesz ten event:
register_logevent("Poczatek_Rundy", 2, "1=Round_Start")
2. Robisz petle dla wszystkich graczy na serwerze.
3. W petli dajesz warunki i inne duperele.
4. I dla kazdego gracza w petli wykonujesz funkcje checklevel(id)
Ale po co to?
zobaczylemlvl[i]
Przeciez co runde graczowi przybywa expa i moze w pewnej rundzie osiagnac level 100, ale Ty juz tego nie sprawdzisz, bo zablokowales mozliwosc sprawdzenia.