[ROZWIĄZANE] Jak przekazać parametr w set_...
Best Answer Amaroq 03.06.2013 22:03
#include <amxmodx> public plugin_init() { register_plugin("Test", "1.0", "xxxxx"); register_clcmd("say /test", "test"); } public test(id_gracza) { if(!is_user_connected(id_gracza)) return; new array[2] //Tworzymy tablice z 2 komorkami array[0] = id_gracza; //Przypisujemy do 0 komorki id_gracza array[1] = get_user_team(id_gracza); //Do 1 komorki przypisujemy id teamu gracza set_task(2.0, "task_test", 42332, array, 2, "a", 1); } public task_test(param[]) { new id = param[0]; //Teraz pobieramy id gracza new team = param[1]; //Pobieramy id teamu client_print(id, 3, "Twoj index wynosi %d i twoj team to %s", id, (team == 1) ? "TT" : "Inny niz TT"); }Jeśli nie wyślemy żadnych dodatkowych parametrow to funkcja jako argument przyjmie id taska Go to the full post
Ossal
03.06.2013
jak dokładnie przekazać porametr w set_task? Na dokumentacji jest podane tak:
set_task(Float:time, const function[], id=0, parameter[]="", len=0, flags[]="", repeat=0)
No i tu jest problem zrobie np tak:
set_task(czas, "funkcja", 0, "jakies_tam_id", 0, "a", 30)
potem dam
public funkcja(id)
i wszysko niby ok, funkcja wykonuje się 30 razy, ale id wynosi 0. Czyli źle przekazany parametr, ale jak to zrobić? Napisz ktoś przykład Dzięki. Pozdrawiam
Best Answer
Amaroq
03.06.2013
#include <amxmodx> public plugin_init() { register_plugin("Test", "1.0", "xxxxx"); register_clcmd("say /test", "test"); } public test(id_gracza) { if(!is_user_connected(id_gracza)) return; new array[2] //Tworzymy tablice z 2 komorkami array[0] = id_gracza; //Przypisujemy do 0 komorki id_gracza array[1] = get_user_team(id_gracza); //Do 1 komorki przypisujemy id teamu gracza set_task(2.0, "task_test", 42332, array, 2, "a", 1); } public task_test(param[]) { new id = param[0]; //Teraz pobieramy id gracza new team = param[1]; //Pobieramy id teamu client_print(id, 3, "Twoj index wynosi %d i twoj team to %s", id, (team == 1) ? "TT" : "Inny niz TT"); }Jeśli nie wyślemy żadnych dodatkowych parametrow to funkcja jako argument przyjmie id taska
Edited by FD_GODPL, 03.06.2013 22:06.
Ossal
05.06.2013
Masz + Ale 2 pytania mam.
Jak bym chciał jeden parametr przekazać, to i tak musze robić tablice?
Czy len, w tym przypadku równe 2, zawsze równa się rozmiarowi tablicy?
sebul
05.06.2013
Task zawsze przekazuje swoje id, niezależnie od tego czy do taska dodamy jakąś tablice, czyli#include <amxmodx> public plugin_init() { register_plugin("Test", "1.0", "xxxxx"); register_clcmd("say /test", "test"); } public test(id_gracza) { if(!is_user_connected(id_gracza)) return; new array[2] //Tworzymy tablice z 2 komorkami array[0] = id_gracza; //Przypisujemy do 0 komorki id_gracza array[1] = get_user_team(id_gracza); //Do 1 komorki przypisujemy id teamu gracza set_task(2.0, "task_test", 42332, array, 2, "a", 1); } public task_test(param[]) { new id = param[0]; //Teraz pobieramy id gracza new team = param[1]; //Pobieramy id teamu client_print(id, 3, "Twoj index wynosi %d i twoj team to %s", id, (team == 1) ? "TT" : "Inny niz TT"); }Jeśli nie wyślemy żadnych dodatkowych parametrow to funkcja jako argument przyjmie id taska
public task_test(param[], id_taska)
{
new id = param[0]; //Teraz pobieramy id gracza
new team = param[1]; //Pobieramy id teamu
client_print(id, 3, "Twoj index wynosi %d i twoj team to %s", id, (team == 1) ? "TT" : "Inny niz TT");
}
1. TakJak bym chciał jeden parametr przekazać, to i tak musze robić tablice?
Czy len, w tym przypadku równe 2, zawsze równa się rozmiarowi tablicy?
2. Tak