Помогите как сделать чтоб команды можно было закрывать/открывать через чат. пример: /lock ct, /lock t
пробовал register_clcmd("say /lock",
не получилось( Надеюсь на вашу помощь
Код:
/* AMX Mod script.
*
* © Copyright 2003
* This file is provided as is (no warranties).
*
* Big thanks to Doombringer/Deviance for helping.
*/
new const PLUGIN[] = "Team Locker";
new const VERSION[] = "1.5"
new const AUTHOR[] = "Bmann_420";
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#define TE 0
#define CT 1
#define AUTO 4
#define SPEC 5
new const Teamnames[6][] = {
"Terrorists",
"Counter-Terrorists",
"",
"",
"Auto",
"Spectator"
}
new bool:blockjoining[6]
new amx_show_activity
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_dictionary("teamlocker.txt")
register_cvar("teamlocker",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY);
register_menucmd(register_menuid("Team_Select",1), (1<<0)|(1<<1)|(1<<4)|(1<<5), "team_select");
register_clcmd("jointeam", "join_team");
register_concmd("amx_lock", "admin_lock", ADMIN_SLAY,"- <CT/T/Auto/Spec> Locks a team");
register_concmd("amx_unlock", "admin_unlock", ADMIN_SLAY,"- <CT/T/Auto/Spec> Unlocks a team");
}
public plugin_cfg()
{
amx_show_activity = get_cvar_pointer("amx_show_activity");
}
public admin_unlock(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new Arg1[6]
read_argv(1, Arg1, 5)
if(!equali(Arg1, "T") && !equali(Arg1, "CT") && !equali(Arg1, "Auto") && !equali(Arg1, "Spec"))
{
client_print(id, print_console, "%L", LANG_PLAYER, "TEAM_INVALID")
return PLUGIN_HANDLED
}
new team
if(equali(Arg1, "T"))
team = TE
else if(equali(Arg1, "CT"))
team = CT
else if(equali(Arg1, "Auto"))
team = AUTO
else if(equali(Arg1, "Spec"))
team = SPEC
blockjoining[team] = false
new name[32], steamid[38]
get_user_name(id, name, 31)
get_user_authid(id, steamid, 37)
switch(get_pcvar_num(amx_show_activity)) {
case 2: client_print(0,print_chat,"%L", LANG_PLAYER, "TEAM_UNLOCK_CASE2",name,Teamnames[team])
case 1: client_print(0,print_chat,"%L", LANG_PLAYER, "TEAM_UNLOCK_CASE1",Teamnames[team])
}
console_print(id,"%L", LANG_PLAYER, "TEAM_UNLOCK_CONSOLE",Teamnames[team])
log_amx("%L", LANG_SERVER, "UNLOCK_TEAMS_LOG", name,steamid,Teamnames[team])
return PLUGIN_HANDLED
}
public admin_lock(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new Arg1[6]
read_argv(1, Arg1, 5)
if(!equali(Arg1, "T") && !equali(Arg1, "CT") && !equali(Arg1, "Auto") && !equali(Arg1, "Spec"))
{
client_print(id, print_console, "%L", LANG_PLAYER, "TEAM_INVALID")
return PLUGIN_HANDLED
}
new team
if(equali(Arg1, "T"))
team = TE
else if(equali(Arg1, "CT"))
team = CT
else if(equali(Arg1, "Auto"))
team = AUTO
else if(equali(Arg1, "Spec"))
team = SPEC
blockjoining[team] = true
new name[32], steamid[38]
get_user_name(id, name, 31)
get_user_authid(id, steamid, 37)
switch(get_pcvar_num(amx_show_activity)) {
case 2: client_print(0,print_chat,"%L", LANG_PLAYER, "TEAM_LOCK_CASE2",name,Teamnames[team])
case 1: client_print(0,print_chat,"%L", LANG_PLAYER, "TEAM_LOCK_CASE1",Teamnames[team])
}
console_print(id,"%L", LANG_PLAYER, "TEAM_LOCK_CONSOLE",Teamnames[team])
log_amx("%L", LANG_SERVER, "LOCK_TEAMS_LOG", name,steamid,Teamnames[team])
return PLUGIN_HANDLED
}
public team_select(id, key)
{
if ( blockjoining[key] == true )
{
engclient_cmd(id, "chooseteam")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public join_team(id)
{
if (get_user_flags(id) & ( ADMIN_KICK | ADMIN_LEVEL_A ))
{
remove_task(id)
return PLUGIN_CONTINUE
}
new arg[2]
read_argv(1, arg, 1)
if (blockjoining[str_to_num(arg)-1] == true)
{
engclient_cmd(id, "chooseteam")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
Отредактировал: Bloo, - 25.8.2015, 18:18
Причина: Выдано устное предупреждение!