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.
|

[ROZWIĄZANE] Task - wysłanie do funkcji id atakujacego
#2
Napisano 15.06.2012 21:47

public funkcja(id,ofiara)
{
nalozyltask[ofiara]=id
set_task(0.5, "funkcja2", ofiara);
}
public funkcja2(id)
{
gracz_atakowany=id
gracz_atakujacy=nalozyltask[id]
}
Użytkownik Fryteczq edytował ten post 15.06.2012 21:47
#3
Gość_21977_*
Napisano 15.06.2012 22:31
Ten temat został przeniesiony z forum
AMX Mod X > Pytania
do
Scripting AMXX > Pytania
#4
Napisano 16.06.2012 02:31

Co do tematu. set_task

public funkcja(data[], len) {
ofiara = data[0];
atakujacy = data[1];
}
To jest przykładowa zawartość, dla
new data[2]
data[0] = ofiara
data[1] = atakujacy
set_task(10.0, "funkcja", atakujacy, data, 2);
Jest to jak widać bardzo dobra metoda do podania dowolnych danych do taska, bez używania zmiennych globalnych (które niepotrzebnie zajmują pamięć i mogą być "nadpisane" gdy wywoła się kila tasków dla jednego gracza, zanim pierwszy z nich się wykona). Jest proste, wygodne i zawsze działa

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
#6
Napisano 16.06.2012 10:44
np
set_task(10.0, "funkcja", atakujacy+8123, data, 2);
a w funkcji na początku odejmujesz od wsyłanego ID dodaną wartość
public funkcja(id) { id-=8123; //cos tam dalej robi }
#7
Napisano 16.06.2012 12:15
if(player_b_bio[attacker_id]){ if(task_exists(id+TASK_POCISKI_BIO)) remove_task(id+TASK_POCISKI_BIO) new data[2] data[0] = id data[1] = attacker_id set_task(1.0, "Pociski_bio", attacker_id+TASK_POCISKI_BIO, data, 2, "a", 5); }
public Pociski_bio(data[], len){ new attacker_id, id id = data[0]; attacker_id = data[1]; if(is_user_alive(id)){ ExecuteHam(Ham_TakeDamage, id, 0, attacker_id, 10.0 , 1); } }
I jak tu teraz zrobić te unikalne id taska bo ja nie kumam tego.
#8
Napisano 16.06.2012 14:03
@CheQ, w ten sposób nie da się pobrać wartości z tablicy data. Albo pobierasz id taska, albo data, innej opcji nie ma.
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
#10
Gość_21977_*
Napisano 16.06.2012 14:19
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych