Skocz do zawartości

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

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Task bardziej optymalny/lepszy


  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 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

Napisano 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

Napisano 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

Napisano 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, Dołączona grafika 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





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych