←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Task bardziej optymalny/lepszy

Zablokowany

  • +
  • -
sebul - zdjęcie 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.
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.
Odpowiedz

  • +
  • -
diablix - zdjęcie 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.
Odpowiedz

  • +
  • -
sebul - zdjęcie 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.
Odpowiedz

  • +
  • -
sebul - zdjęcie 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, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany