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ć??
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.
|
Napisano 18.10.2014 18:44
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
Napisano 18.10.2014 19:09
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.
"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.
Napisano 18.10.2014 21:07
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
Napisano 18.10.2014 21:46
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 } */
"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.
Napisano 19.10.2014 08:57
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
Napisano 19.10.2014 09:33 Najlepsza odpowiedź
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.
"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.
0 użytkowników, 0 gości, 0 anonimowych