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] Jak przekazać parametr w set_task


Najlepsza odpowiedź 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 Przejdź do postu


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

#1 Ossal

    Wszechwidzący

  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:273
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 03.06.2013 21:45

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


  • +
  • -
  • 0

#2 Amaroq

    AMXX Contributor

  • Użytkownik

Reputacja: 304
Wszechpomocny

  • Postów:380
  • GG:
  • Steam:steam
  • Imię:Karol
  • Lokalizacja:Łódź
Offline

Napisano 03.06.2013 22:03   Najlepsza odpowiedź

#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

Użytkownik FD_GODPL edytował ten post 03.06.2013 22:06

  • +
  • -
  • 3
Plugin informujący o zabiciu zakładnika (wysyła do admina na say nick gracza oraz zapisuje o tym logi) - Hostage Killer v1.3.3
DarkGL to mój autorytet.

#3 Ossal

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:273
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 05.06.2013 15:25

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?


  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 05.06.2013 15:32

#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
  • +
  • -
  • 2

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


#5 Ossal

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:273
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 10.06.2013 23:15

Dzięki :)


  • +
  • -
  • 0




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

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