Jump to content

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

Posted Image Posted Image

Guest Message by DevFuse
 

Photo

[ROZWIĄZANE] Task bardziej optymalny/lepszy


  • This topic is locked This topic is locked
3 replies to this topic

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2,035
Godlike

  • Postów:5,411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Posted 19.11.2011 12:04

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.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#2 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Posted 19.11.2011 12:30

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.
  • +
  • -
  • 0

#3 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2,035
Godlike

  • Postów:5,411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Posted 19.11.2011 12:39

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.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2,035
Godlike

  • Postów:5,411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Posted 20.11.2011 23:58

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Posted Image raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users