←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

read_args - do czego i jak używać ?

  • +
  • -
Filip1512 - zdjęcie Filip1512 05.01.2013

Cześć,
tak jak w temacie, jak używać i do czego służy "read_args"? W dokumentacji nie ma opisu na temat tego, a jest read_argv - jaka jest różnica ?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 05.01.2013

read_args - Returns the entire parameter line of a command.

read_argv - Reads an argument from a command.

Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 05.01.2013

read_args czyta wszystkie opcje z danego hooka eventa
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 05.01.2013

Jakiś przykład można ?
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 05.01.2013


#include <amxmodx>
#include <amxmisc>

#define PLUGIN "test"
#define VERSION "1.0"
#define AUTHOR "Cypis"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_clcmd("say_team", "cmdSayTeam");
}

public cmdSayTeam(id)
{
new szText[1024];
read_args(szText, 1023);

log_amx(szText);
return PLUGIN_CONTINUE;
}



po napisaniu na team chacie powinno zalogowac do amx
"say_team twojecos"
Użytkownik Cypis' edytował ten post 05.01.2013 15:31
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 05.01.2013

Czyli jak by wrócić do tego postu: http://amxx.pl/topic..._20#entry491559

Ten kod byłby już w stanie zadziałać jako blokada zmiany rate'ów ?


#include <amxmodx>
#include <hamsandwich>
#include <ColorChat>

#define PLUGIN "Rate'y + HUDMSG"
#define VERSION "2.0"
#define AUTHOR "Filip / `NN"

new hudmsg1;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "raty", 1)
set_task(120.0, "hudmsg", _, _, _, "b")

register_cvar("rate_block", "1")

register_clcmd("rate", "BlockCmd")
register_clcmd("cl_cmdbackup", "BlockCmd")
register_clcmd("cl_cmdrate", "BlockCmd")
register_clcmd("cl_updaterate", "BlockCmd")
register_clcmd("ex_interp", "BlockCmd2")

hudmsg1 = CreateHudSyncObj();
}

public raty (id)
{
client_cmd( id , "rate 25000" )
client_cmd( id , "cl_cmdbackup 2" )
client_cmd( id , "cl_cmdrate 101" )
client_cmd( id , "cl_updaterate 101" )
client_cmd( id , "ex_interp 0.01" )
}

public hudmsg()
{
set_hudmessage(255, 100, 10, 0.1, 0.7, 0, 6.0, 9.0, 0.0, 0.0, 2)
ShowSyncHudMsg(0, hudmsg1, "Twoj interp zostal ustawiony na 0.01")
}

public BlockCmd(id){
if(get_cvar_num("rate_block") == 1){

new sett[192]
read_args(sett, 191)
new ust = str_to_float(sett)

if(ust == 25000 || ust == 101 || ust == 2)
return PLUGIN_CONTINUE;

ColorChat(id, BLUE, "[rate] ^x01Zmiana ustawien RATE jest ZABLOKOWANA!")
console_print(id, "[rate] Zmiana ustawien RATE jest ZABLOKOWANA!")

return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public BlockCmd2(id){
if(get_cvar_num("rate_block") == 1){
new sett[192]
read_args(sett, 191)
new Float:ust = str_to_float(sett)

if(ust == 0.01)
return PLUGIN_CONTINUE;

ColorChat(id, BLUE, "[rate] ^x01Zmiana ustawien RATE jest ZABLOKOWANA!")
console_print(id, "[rate] Zmiana ustawien RATE jest ZABLOKOWANA!")
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}


Bo podczas kompilacji wyskakuje 1 ostrzeżenie "Warning: Tag mismatch on line 49", lecz mi chodzi o samo działanie pluginu.
Użytkownik `NN edytował ten post 05.01.2013 16:05
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 05.01.2013

new ust = str_to_float(sett)
->
new ust = str_to_num(sett)
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 05.01.2013

new ust = str_to_float(sett)
->
new ust = str_to_num(sett)


Już wcześniej zauważyłem i poprawiłem, ale dzięki :P

Czy ten kod jest teraz w stanie zadziałać? Bo nie wiem, czy "returnów" nie pokiełbasiłem.
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 05.01.2013

Z tego co się orientuję, to generalnie część komend nie jest przesyłana do serwera, a co najwyżej jej skutek jest zauważalny. Swoją drogą jest to całkiem logiczne, by po co serwerowi wiedzieć czy masz broń w prawej czy lewej ręce ;P

Plugin nie będzie działał.
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 05.01.2013

A co zrobić, żeby w końcu zadziałał ?:P
Odpowiedz

  • +
  • -
Filip1512 - zdjęcie Filip1512 07.01.2013

Odświeżam
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 07.01.2013

Sprawdź czy w ogóle wywołanie tej komendy wyłapuje serwer, nie wiem czy wywołuje, ale jak wywołuje to zawsze ustawiaj na normalną wartość.
Nie pobierzesz wartości chyba, że to serwer ONLY STEAM!
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 11.01.2013

czasem można takie rzeczy pobrać poprzez get_user_info. Wpisz setinfo w konsoli swojego CSa i zobacz czy wśród ustawionych wartości jest ta, która Cię interesuje :)
Odpowiedz