PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "EFFx"
new bool:godmode[33],bool:noclip[33]
new BlockTeams
new bool:ff = false
new AdminName[32]
new const szPrefixo[] = "!g[SMenu]!y"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
BlockTeams = register_cvar("block_teams","0")
RegisterHam(Ham_Spawn,"player","Reset",1)
register_clcmd("jointeam 2","Block")
register_clcmd("jointeam 5","Block")
register_clcmd("say /menu","ShowMenu")
}
public Reset(id)
{
if(is_user_alive(id))
{
godmode[id] = false
noclip[id] = false
set_user_noclip(id,0)
set_user_godmode(id,0)
}
}
public Block(id)
{
if(get_pcvar_num(BlockTeams) == 1)
{
console_print(id,"[AMXX]: O ADMIN %s bloqueou o JoinTeam!",AdminName)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public ShowMenu(id)
{
if(get_user_flags(id) & ADMIN_BAN)
{
new szMenu = menu_create("Menu de Mod","menu_de_mod_handler")
menu_additem(szMenu,"FF")
menu_additem(szMenu,"Revive")
menu_additem(szMenu,"No Clip")
menu_additem(szMenu,"GodMode")
menu_additem(szMenu,"Transferir")
menu_additem(szMenu,"Bloquear Equipas")
menu_display(id,szMenu)
}
else
ChatColor(id,"%s Tu nao tens acesso ao menu!",szPrefixo)
return PLUGIN_HANDLED
}
public menu_de_mod_handler(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new szAdminName[32]
get_user_name(id,szAdminName,31)
switch(item)
{
case 0:
{
switch(ff)
{
case 0:
{
server_cmd("mp_friendlyfire 1")
ff = true
ChatColor(id,"%s O staff!t %s!g ativou!y o!t FF",szPrefixo,szAdminName)
}
case 1:
{
server_cmd("mp_friendlyfire 0")
ff = false
ChatColor(id,"%s O staff!t %s!g desativou!y o!t FF",szPrefixo,szAdminName)
}
}
}
case 1:
{
ShowRevive(id)
}
case 2:
{
ShowNoClip(id)
}
case 3:
{
ShowGodMenu(id)
}
case 4:
{
client_cmd(id,"amx_teammenu")
}
case 5:
{
switch(get_pcvar_num(BlockTeams))
{
case 0:
{
set_pcvar_num(BlockTeams,1)
ChatColor(id,"%s O staff!t %s!g desbloqueou!y o!t JoinTeam",szPrefixo,szAdminName)
copy(AdminName,charsmax(AdminName),szAdminName)
}
case 1:
{
set_pcvar_num(BlockTeams,0)
ChatColor(id,"%s O staff!t %s!g bloqueou!y o!t JoinTeam",szPrefixo,szAdminName)
copy(AdminName,charsmax(AdminName),szAdminName)
}
}
}
}
return PLUGIN_HANDLED
}
public ShowGodMenu(id)
{
new menu = menu_create("GodMode Menu","godmode_handler");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, 31);
num_to_str(tempid, szTempid, 9);
new menutxt[256]
formatex(menutxt,255,"%s %s",szName,godmode[tempid] ? "\rdesativar" : "\yativar")
menu_additem(menu, menutxt, szTempid, 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public godmode_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new tempid = str_to_num(data);
if(is_user_alive(tempid))
{
switch(godmode[tempid])
{
case 0:
{
set_user_godmode(tempid,1)
godmode[tempid] = true
new szName[32],szName2[32]
get_user_name(id,szName,31)
ChatColor(id,"%s O staff!t %s!g ativou!y o godmode do!t %s",szPrefixo,szName,szName2)
}
case 1:
{
set_user_godmode(tempid,0)
godmode[tempid] = false
new szName[32],szName2[32]
get_user_name(id,szName,31)
ChatColor(id,"%s O staff!t %s!g desativou!y o godmode do!t %s",szPrefixo,szName,szName2)
}
}
}
return PLUGIN_HANDLED;
}
public ShowNoClip(id)
{
new menu = menu_create("NoClip Menu","noclip_handler");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, 31);
num_to_str(tempid, szTempid, 9);
new menutxt[256]
formatex(menutxt,255,"%s %s",szName,noclip[tempid] ? "\rdesativar" : "\yativar")
menu_additem(menu, menutxt, szTempid, 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public noclip_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new tempid = str_to_num(data);
if(is_user_alive(tempid))
{
switch(noclip[tempid])
{
case 0:
{
set_user_noclip(tempid,1)
noclip[tempid] = true
new szName[32],szName2[32]
get_user_name(id,szName,31)
get_user_name(tempid,szName2,31)
ChatColor(id,"%s O staff!t %s!g ativou!y o noclip do!t %s",szPrefixo,szName,szName2)
}
case 1:
{
set_user_noclip(tempid,0)
noclip[tempid] = false
new szName[32],szName2[32]
get_user_name(id,szName,31)
ChatColor(id,"%s O staff!t %s!g desativou!y o noclip do!t %s",szPrefixo,szName,szName2)
}
}
}
return PLUGIN_HANDLED;
}
public ShowRevive(id)
{
new menu = menu_create("Revive Menu","revive_handler");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, 31);
num_to_str(tempid, szTempid, 9);
menu_additem(menu, szName, szTempid, 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public revive_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new tempid = str_to_num(data);
if(is_user_alive(tempid))
{
ExecuteHam(Ham_CS_RoundRespawn,id)
new szName[32],szName2[32]
get_user_name(id,szName,31)
get_user_name(tempid,szName2,31)
ChatColor(id,"%s O staff!t %s!g reviveu!y o!t %s",szPrefixo,szName,szName2)
}
return PLUGIN_HANDLED;
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )
if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}