Код
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#pragma semicolon 1
#define VERSION "1"
new g_iTarget[33];
public plugin_init()
{
register_plugin("Change Name Menu", VERSION, "Eazy*");
register_clcmd("amx_namemenu", "CmdNameMenu", ADMIN_MENU);
register_clcmd("_change_name", "CmdChangeName");
}
public CmdNameMenu(id, iLvl, iCid)
{
if(!cmd_access(id, iLvl, iCid, 1))
return PLUGIN_HANDLED;
new iPlayers[32], iNum, iPlayer,
iMenu, szName[32], szPlayer[3];
get_players(iPlayers, iNum);
iMenu = menu_create("Change Name Menu", "HandleNameMenu");
for(new i = 0; i < iNum; i++)
{
iPlayer = iPlayers[i];
get_user_name(iPlayer, szName, charsmax(szName));
num_to_str(iPlayer, szPlayer, charsmax(szPlayer));
menu_additem(iMenu, szName, szPlayer);
}
menu_display(id, iMenu);
return PLUGIN_HANDLED;
}
public HandleNameMenu(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu);
return PLUGIN_HANDLED;
}
new szData[6], szName[64];
new iAccess, iCallback;
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback);
g_iTarget[id] = str_to_num(szData);
client_cmd(id, "messagemode _change_name");
return PLUGIN_HANDLED;
}
public CmdChangeName(id)
{
if(!g_iTarget[id])
return PLUGIN_HANDLED;
new szArg[32];
read_args(szArg, charsmax(szArg));
remove_quotes(szArg);
if(szArg[0])
{
new szAdmin[32];
get_user_name( id, szAdmin, 31 );
new iPlayer = g_iTarget[id],
szOldName[32];
get_user_name(iPlayer, szOldName, charsmax(szOldName));
set_user_info(iPlayer, "name", szArg);
g_iTarget[id] = 0;
ColorChat(id, BLUE,"^3Администратор ^4%s^1 изменил имя игроку ^3%s^1 на ^4%s^1.", szAdmin, szOldName, szArg);
}
return PLUGIN_HANDLED;
}