←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[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
Locked

  • +
  • -
Ossal's Photo 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

Quote

  • +
  • -
Best Answer Amaroq's Photo 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.
Quote

  • +
  • -
Ossal's Photo 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?

Quote

  • +
  • -
sebul's Photo sebul 05.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

Task zawsze przekazuje swoje id, niezależnie od tego czy do taska dodamy jakąś tablice, czyli
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");
}


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?

1. Tak
2. Tak
Quote

  • +
  • -
Ossal's Photo Ossal 10.06.2013

Dzięki :)

Quote
Locked