Wymuszanie komend
manimatrix
17.01.2010
Zrobilem male wymuszanie komend na serwer diablomoda, ale niestety nie umiem sobie poradzic z bledami. Pluginami zajmuje sie dopiero 3 dni, wiec niewiele jeszcze umiem. Tresc bledu:
Z gory wielkie dzięki za pomoc.
Plugin:Error: Symbol already defined: "read_argv" on line 21
Error: Symbol already defined: "read_argv" on line 21
Warning: Symbol is never used: "arq" on line 36
Warning: Symbol is never used: "name" on line 36
/* Plugin generated by AMXX-Studio */ #define PLUGIN "Wymuszanie diablo" #define VERSION "1.0" #define AUTHOR "Manimatrix" #include <amxmodx> #include <amxmisc> new arq[32] new name[32] public plugin_init() { register_concmd("amx_wywal", "concmd_wywal" ,ADMIN_KICK,"") register_concmd("amx_wymus", "concmd_wymus" ,ADMIN_KICK,"") } public concmd_wymus(id) { return PLUGIN_HANDLED; } read_argv(1, arq, 30) new Player = cmd_target(id, arq) get_user_name(Player, name, 31) client_cmd(id, "reset_skill") show_motd(Player, "Reset statystyk zostal wymuszony przez admina. Najwyrazniej nie zgadzaly sie one z zasadami serwera.") client_print(id,print_chat,"Gracz %s zostal zmuszony do zresetowania statystyk.", name) } public concmd_wywal(id) { return PLUGIN_HANDLED; } read_argv(1, arq, 30) new Player = cmd_target(id, arq) get_user_name(Player, name, 31) client_cmd(id, "dropitem") show_motd(Player, "Straciles item na skutek zlamania zasad serwera.") client_print(id,print_chat,"Admin usunal graczowi %s", name) }
Z gory wielkie dzięki za pomoc.
mgr inż. Pavulon
17.01.2010
Chyba chodziło o coś takiego:
/* Plugin generated by AMXX-Studio */
#define PLUGIN "Wymuszanie diablo"
#define VERSION "1.0"
#define AUTHOR "Manimatrix"
#include <amxmodx>
#include <amxmisc>
public plugin_init()
{
register_concmd("amx_wywal", "concmd_wywal" ,ADMIN_KICK,"")
register_concmd("amx_wymus", "concmd_wymus" ,ADMIN_KICK,"")
}
public concmd_wymus(id)
{
new arq[32]
read_argv(1, arq, 30)
new Player = cmd_target(id, arq)
new name[32]
get_user_name(Player, name, 31)
client_cmd(id, "reset_skill")
show_motd(Player, "Reset statystyk zostal wymuszony przez admina. Najwyrazniej nie zgadzaly sie one z zasadami serwera.")
client_print(id,print_chat,"Gracz %s zostal zmuszony do zresetowania statystyk.", name)
}
public concmd_wywal(id)
{
new arq[32]
read_argv(1, arq, 30)
new Player = cmd_target(id, arq)
new name[32]
get_user_name(Player, name, 31)
client_cmd(id, "dropitem")
show_motd(Player, "Straciles item na skutek zlamania zasad serwera.")
client_print(id,print_chat,"Admin usunal graczowi %s", name)
}
manimatrix
17.01.2010
Ech, skrypt wykonuje np. reset na wszystkich zamiast na jedna osobe. Da rade to poprawic?
Nie zaszkodzi znowu odswiezyc, zwlaszcza gdy czas goni.
dzięki za uwage >_>
Edited by Manimatrix, 17.01.2010 12:53.
Nie zaszkodzi znowu odswiezyc, zwlaszcza gdy czas goni.
dzięki za uwage >_>
Edited by Manimatrix, 17.01.2010 12:53.
mgr inż. Pavulon
17.01.2010
A w którym miejscu niby masz określone którego gracza ma dotyczyć ta komenda ?
Jeżeli cmd_target zwróci zero to akcja wykona się na wszystkich. Przydało by ci się zabezpieczenie.
Jeżeli cmd_target zwróci zero to akcja wykona się na wszystkich. Przydało by ci się zabezpieczenie.
manimatrix
17.01.2010
No coz, ucze sie dopiero, wiec niewiele jeszcze wiem. Rozumiem, ze skrypt w ogole zle zaczety. Czyli jak to mniej wiecej powinno wygladac?
mgr inż. Pavulon
17.01.2010
No coz, ucze sie dopiero, wiec niewiele jeszcze wiem. Rozumiem, ze skrypt w ogole zle zaczety. Czyli jak to mniej wiecej powinno wygladac?
Mniej więcej tak:
public concmd_wywal(id,level,cid)
{
if (!cmd_access(id,level,cid,2))
{
console_print(id, "Nie mozesz uzyc tej funkcji")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1, arq, 31)
new player = cmd_target(id, arq, 7)
if (!player)
{
console_print(id, "Nie znaleziono gracza ^"%s^"", arg)
return PLUGIN_HANDLED
}
new name[32]
get_user_name(Player, name, 31)
client_cmd(id, "dropitem")
show_motd(Player, "Straciles item na skutek zlamania zasad serwera.")
client_print(id,print_chat,"Admin usunal graczowi %s", name)
}
manimatrix
17.01.2010
/* Plugin generated by AMXX-Studio */ #define PLUGIN "Wymuszanie diablo" #define VERSION "1.0" #define AUTHOR "Manimatrix" #include <amxmodx> #include <amxmisc> public plugin_init() { register_concmd("amx_wywal", "concmd_wywal" ,ADMIN_KICK,"") register_concmd("amx_wymus", "concmd_wymus" ,ADMIN_KICK,"") } public concmd_wymus(id,level,cid) { if (!cmd_access(id,level,cid,2)) { console_print(id, "Nie mozesz uzyc tej funkcji") return PLUGIN_HANDLED } new arg[32] read_argv(1, arq, 31) new player = cmd_target(id, arq, 7) if (!player) { console_print(id, "Nie znaleziono gracza ^"%s^"", arg) return PLUGIN_HANDLED } new name[32] get_user_name(Player, name, 31) client_cmd(id, "say /reset") show_motd(Player, "Reset statystyk zostal wymuszony przez admina. Najwyrazniej nie zgadzaly sie one z zasadami serwera.") client_print(id,print_chat,"Gracz %s zostal zmuszony do zresetowania statystyk.", name) } public concmd_wywal(id,level,cid) { if (!cmd_access(id,level,cid,2)) { console_print(id, "Nie mozesz uzyc tej funkcji") return PLUGIN_HANDLED } new arg[32] read_argv(1, arq, 31) new player = cmd_target(id, arq, 7) if (!player) { console_print(id, "Nie znaleziono gracza ^"%s^"", arg) return PLUGIN_HANDLED } new name[32] get_user_name(Player, name, 31) client_cmd(id, "say /drop") show_motd(Player, "Straciles item na skutek zlamania zasad serwera.") client_print(id,print_chat,"Admin usunal graczowi %s item za zlamanie zasad serwera.", name) }
Co jest zle?Warning: Loose indentation on line 23
Error: Undefined symbol "arq" on line 24
Warning: Expression has no effect on line 24
Error: Expected token: ";", but found ")" on line 24
Error: Invalid expression, assumed zero on line 24
Error: Too many error messages on one line on line 24
Edited by Manimatrix, 17.01.2010 15:21.
mgr inż. Pavulon
17.01.2010
Literówki itp.
/* Plugin generated by AMXX-Studio */
#define PLUGIN "Wymuszanie diablo"
#define VERSION "1.0"
#define AUTHOR "Manimatrix"
#include <amxmodx>
#include <amxmisc>
public plugin_init()
{
register_concmd("amx_wywal", "concmd_wywal" ,ADMIN_KICK,"")
register_concmd("amx_wymus", "concmd_wymus" ,ADMIN_KICK,"")
}
public concmd_wymus(id,level,cid)
{
if (!cmd_access(id,level,cid,2))
{
console_print(id, "Nie mozesz uzyc tej funkcji")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, 7)
if (!player)
{
console_print(id, "Nie znaleziono gracza ^"%s^"", arg)
return PLUGIN_HANDLED
}
new name[32]
get_user_name(player, name, 31)
client_cmd(id, "say /reset")
show_motd(player, "Reset statystyk zostal wymuszony przez admina. Najwyrazniej nie zgadzaly sie one z zasadami serwera.")
client_print(id,print_chat,"Gracz %s zostal zmuszony do zresetowania statystyk.", name)
return PLUGIN_HANDLED
}
public concmd_wywal(id,level,cid)
{
if (!cmd_access(id,level,cid,2))
{
console_print(id, "Nie mozesz uzyc tej funkcji")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, 7)
if (!player)
{
console_print(id, "Nie znaleziono gracza ^"%s^"", arg)
return PLUGIN_HANDLED
}
new name[32]
get_user_name(player, name, 31)
client_cmd(id, "say /drop")
show_motd(player, "Straciles item na skutek zlamania zasad serwera.")
client_print(id,print_chat,"Admin usunal graczowi %s item za zlamanie zasad serwera.", name)
return PLUGIN_HANDLED
}
manimatrix
17.01.2010
Teraz to zamiast graczowi wymusic say /reset wywala mu motd a mi daje say /reset.
Edited by Manimatrix, 17.01.2010 15:49.
Edited by Manimatrix, 17.01.2010 15:49.
mgr inż. Pavulon
17.01.2010
No właściwie tak miałeś od początku.
Zamień to:
player to gracz na którym ma być wykonana funkcja
id to osoba wpisująca komendę
A motd to przecież miał się wyświetlać graczowi.
Zamień to:
client_cmd(id, "say /reset") i client_cmd(id, "say /drop")na:
client_cmd(player, "say /reset")
i
client_cmd(player, "say /drop")
player to gracz na którym ma być wykonana funkcja
id to osoba wpisująca komendę
A motd to przecież miał się wyświetlać graczowi.