[ROZWIĄZANE] Task bardziej optymalny/lepszy
sebul
19.11.2011
Wcześniej już chyba pytałem o coś takiego gdzieś, ale pytanie było bez konkretów. Jak jest lepiej używać taska?
1.
2.
No i który sposób jest w tym przypadku lepszy? Plugin gdzie jest dodana 2 wersja jest rozbudowany i używa "Ham_Spawn" oraz "DeathMsg", no i ten task wykonuje się do określonego momentu, czyli jeśli ta zmienna jest większa lub równa jakiejś wartości MAX, to task przerywa się oraz jeszcze w innej funkcji, sprawdzana jest ta zmienna i jeśli jest mniejsza od tej wartości MAX, to task tworzy się ponownie.
1.
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
set_task(2.0, "dodaj_do_zmiennej", _, _, _, "b");
}
public dodaj_do_zmiennej() {
for(new i=1; i<=32; i++) {
if(is_user_alive(i)/* parę innych warunków */)
nazwa_zmennej[i] += 12 // wartość zmieniająca się
}
}
2.
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
register_event("DeathMsg", "DeathMsg", "a");
}
public Spawn(id) {
if(!is_user_alive(id))
return;
if(!task_exists(id+324))
set_task(2.0, "dodaj_do_zmiennej", id+324, _, _, "b");
}
public DeathMsg() {
new vid = read_data(2);
if(task_exists(vid+324)) remove_task(vid+324);
}
public dodaj_do_zmiennej(id) {
id -= 324;
if(/* parę warunków */) {
nazwa_zmennej[id] += 12 // wartość zmieniająca się
}
}
No i który sposób jest w tym przypadku lepszy? Plugin gdzie jest dodana 2 wersja jest rozbudowany i używa "Ham_Spawn" oraz "DeathMsg", no i ten task wykonuje się do określonego momentu, czyli jeśli ta zmienna jest większa lub równa jakiejś wartości MAX, to task przerywa się oraz jeszcze w innej funkcji, sprawdzana jest ta zmienna i jeśli jest mniejsza od tej wartości MAX, to task tworzy się ponownie.
diablix
19.11.2011
Druga jest chyba mimo wszystko lepsza bo się wykonuje tylko dla danego gracza i tylko wtedy gdy jest to wymagane.. Ja bym używał ten drugi sposób.
sebul
19.11.2011
No też tak myślę, ale z drugiej strony task wykonuje się w tym samym czasie dla sporej liczby graczy, a szczególnie na początku mapy.
sebul
20.11.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL