#include <zombie_escape>
#include <colorchat>
enum _:PlayerData
{
g_szName[32],
g_szSteamID[32],
g_iOption,
g_iPlayer,
g_iChoosen
}
new g_PlayerInfo[33][PlayerData]
new const g_szCoinsMenuItems[][] =
{
"\yGive Coins",
"\yTake Coins",
"\ySet Coins^n",
"\yReload Coins"
}
public plugin_init()
{
register_plugin("Admin Menu", "3.6", "Luxurious")
register_concmd("zecoinsmenu", "CoinsMenu")
register_concmd("ENTER_Coins_NUMBER", "CoinsEntered")
register_concmd("ENTER_Coins_Reset", "CoinsReset")
}
public client_authorized(id)
{
get_user_name(id, g_PlayerInfo[id][g_szName], charsmax(g_PlayerInfo[][g_szName]))
get_user_authid(id, g_PlayerInfo[id][g_szSteamID], charsmax(g_PlayerInfo[][g_szSteamID]))
}
public CoinsMenu(id)
{
new iMenuID = menu_create("\rCoins Menu \w:", "CoinsMenuHandle")
for(new i=0; i<sizeof(g_szCoinsMenuItems); i++) menu_additem(iMenuID, g_szCoinsMenuItems[i])
menu_display(id, iMenuID)
}
public CoinsMenuHandle(id, iMenuID, iItem)
{
switch(iItem)
{
case 0, 1, 2:
{
g_PlayerInfo[id][g_iOption] = iItem+1
ChooseCoinsPlayer(id)
}
case 3: client_cmd(id, "messagemode ENTER_COINS_Reset")
}
menu_destroy(iMenuID)
return 0
}
public ChooseCoinsPlayer(id)
{
new szItem[64], szName[33], iMenuID = menu_create("\rChoose Target \w:", "ChooseCoinsPlayerHandle")
for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i)) continue
g_PlayerInfo[n++][g_iPlayer] = i
get_user_name(i, szName, charsmax(szName))
formatex(szItem, charsmax(szItem), "\y%s - \d[\r%d\d]", szName, ze_get_escape_coins(i))
menu_additem(iMenuID, szItem, "0", 0)
}
menu_display(id, iMenuID)
}
public ChooseCoinsPlayerHandle(id, iMenuID, iItem)
{
g_PlayerInfo[id][g_iChoosen] = g_PlayerInfo[iItem][g_iPlayer]
if(!is_user_connected(g_PlayerInfo[id][g_iChoosen]))
{
ColorChat(id, TEAM_COLOR, "^4[Admin Menu] ^1Target Not Founded In The Server.")
return 1
}
client_cmd(id, "messagemode ENTER_Coins_NUMBER")
menu_destroy(iMenuID)
return 0
}
public CoinsEntered(id)
{
new szNumber[32], iNumber, g_aName[33]
get_user_name(id, g_aName, 32)
read_argv(1, szNumber, charsmax(szNumber))
iNumber = str_to_num(szNumber)
if(!iNumber) return 1
if(!is_user_connected(g_PlayerInfo[id][g_iChoosen]))
{
ColorChat(id, TEAM_COLOR, "^4[Admin Menu] ^1Target Not Founded In The Server.")
return 1
}
switch(g_PlayerInfo[id][g_iOption])
{
case 1:
{
ze_set_escape_coins(g_PlayerInfo[id][g_iChoosen], ze_get_escape_coins(g_PlayerInfo[id][g_iChoosen]) + iNumber)
ColorChat(0, TEAM_COLOR, "^4[Admin Menu] ^1Admin ^3%s ^1have Gaved ^4%i ^1Escape Coins To ^3%s.", g_aName, iNumber, g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName])
ze_log("ADMIN %s Gaved %i Coins To %s", g_aName, iNumber, g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName])
}
case 2:
{
ze_set_escape_coins(g_PlayerInfo[id][g_iChoosen], ze_get_escape_coins(g_PlayerInfo[id][g_iChoosen]) - iNumber)
ColorChat(0, TEAM_COLOR, "^4[Admin Menu] ^1Admin ^3%s ^1have Taked ^4%i ^1Escape Coins From ^3%s.", g_aName, iNumber, g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName])
ze_log("ADMIN %s Taked %i Coins From %s", g_aName, iNumber, g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName])
}
case 3:
{
ze_set_escape_coins(g_PlayerInfo[id][g_iChoosen], iNumber)
ColorChat(0, TEAM_COLOR, "^4[Admin Menu] ^1Admin ^3%s ^1have Set Coins Of ^3%s ^1To ^4%i ^1Escape Coins.", g_aName, g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName], iNumber)
ze_log("ADMIN %s Have Set Coins Of %s To %i", g_aName, g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName], iNumber)
}
}
return 0
}
public CoinsReset(id)
{
new szNumber[32], iNumber, g_aName[33]
get_user_name(id, g_aName, 32)
read_argv(1, szNumber, charsmax(szNumber))
iNumber = str_to_num(szNumber)
if(!iNumber) return 1
new iPlayers[32], iPlayerCount, i, player
get_players(iPlayers, iPlayerCount, "a")
for(i = 0; i < iPlayerCount; i++)
{
player = iPlayers[i]
if(ze_get_escape_coins(player) >= iNumber)
continue
ze_set_escape_coins(player, iNumber)
}
ColorChat(0, TEAM_COLOR, "^4[Admin Menu] ^1Admin ^3%s ^1have Reset Coins To ^3^%i ^4Escape Coins.", g_aName, iNumber)
ze_log("ADMIN %s Have Set Coins To %i Escape Coins", g_aName, iNumber)
return 0
}
stock ze_log(const message_fmt[], any:...)
{
static message[256], filename[32]
vformat(message, charsmax(message), message_fmt, 2)
formatex(filename, charsmax(filename), "ze_Adminmenu.log")
log_to_file(filename, "%s", message)
}