#include <amxmodx>
#include <cstrike>
#include <colorchat>
public plugin_init()
{
register_clcmd("say /donate", "ShowMenu", _, "Передача денег между игроками");
register_clcmd("amx_donate", "donateAction");
register_clcmd("amx_donateremove", "removeAction");
register_clcmd("amx_donategive", "giveAction");
}
public ShowMenu(id)
{
if(get_user_flags(id) & ADMIN_MENU)
{
new menu = menu_create("Передать денег игроку", "ShowMenuHandler");
menu_additem(menu, "Передать", "", 0); // case 0
menu_additem(menu, "Дать", "", ADMIN_MENU); // case 1
menu_additem(menu, "Забрать", "", ADMIN_MENU); // case 2
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Выход");
menu_display(id, menu, 0);
}
else
{
donateMenu(id)
}
return PLUGIN_HANDLED;
}
public ShowMenuHandler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: {
donateMenu(id)
}
case 1: {
selectPlayerFromGive(id)
}
case 2: {
selectPlayerFromRemove(id)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED
}
public donateMenu(id)
{
new i_Menu = menu_create("\rВыберите игрока:", "giveMoneyHandler")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
menu_additem(i_Menu, s_Name, s_Player, 0)
}
menu_display(id, i_Menu, 0)
return PLUGIN_HANDLED
}
public donateMenuHandler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
client_cmd(id, "messagemode ^"amx_donate %i^"", i_Player);
menu_destroy(menu)
return PLUGIN_HANDLED
}
public donateAction(id)
{
new param[10]
read_argv(2, param, charsmax(param))
for (new x; x < strlen(param); x++)
{
if(!isdigit(param[x]))
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Введите целое число до 99999")
return PLUGIN_HANDLED
}
}
new amount = str_to_num(param);
if (amount < 1)
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Минимальное значение ^4 1")
return PLUGIN_HANDLED
}
if (amount > 99999)
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Максимальное значение ^4 99999")
return PLUGIN_HANDLED
}
read_argv(1, param, charsmax(param))
new i_Player = str_to_num(param)
new money = cs_get_user_money(i_Player)
new my_money = cs_get_user_money(id)
cs_set_user_money(i_Player, money + amount)
cs_set_user_money(id, my_money - amount)
new names[2][32]
get_user_name(id, names[0], 31)
ColorChat(i_Player, NORMAL, "^3[^4Money^3]^1 Игрок ^4 %s^1 передал вам ^4 %s $", names[0], amount)
return PLUGIN_HANDLED
}
/*** Дать ***/
public selectPlayerFromGive(id)
{
new i_Menu = menu_create("\rВыберите игрока:", "giveMoneyHandler")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
menu_additem(i_Menu, s_Name, s_Player, 0)
}
menu_display(id, i_Menu, 0)
return PLUGIN_HANDLED
}
public selectPlayerFromGiveHandler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
client_cmd(id, "messagemode ^"amx_donategive %i^"", i_Player);
menu_destroy(menu)
return PLUGIN_HANDLED
}
public giveAction(id)
{
new param[10]
read_argv(2, param, charsmax(param))
for (new x; x < strlen(param); x++)
{
if(!isdigit(param[x]))
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Введите целое число до 99999")
return PLUGIN_HANDLED
}
}
new amount = str_to_num(param);
if (amount < 1)
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Минимальное значение ^4 1")
return PLUGIN_HANDLED
}
if (amount > 99999)
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Максимальное значение ^4 99999")
return PLUGIN_HANDLED
}
read_argv(1, param, charsmax(param))
new i_Player = str_to_num(param)
new money = cs_get_user_money(i_Player)
cs_set_user_money(i_Player, money + amount)
new names[2][32]
get_user_name(id, names[0], 31)
ColorChat(i_Player, NORMAL, "^3[^4Money^3]^1 Админ ^4 %s^1 дал вам ^4 %s $", names[0], amount)
return PLUGIN_HANDLED
}
/*** Забрать ***/
public selectPlayerFromRemove(id)
{
new i_Menu = menu_create("\rВыберите игрока:", "giveMoneyHandler")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
menu_additem(i_Menu, s_Name, s_Player, 0)
}
menu_display(id, i_Menu, 0)
return PLUGIN_HANDLED
}
public selectPlayerFromRemoveHandler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
client_cmd(id, "messagemode ^"amx_donateremove %i^"", i_Player);
menu_destroy(menu)
return PLUGIN_HANDLED
}
public removeAction(id)
{
new param[10]
read_argv(2, param, charsmax(param))
for (new x; x < strlen(param); x++)
{
if(!isdigit(param[x]))
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Введите целое число до 99999")
return PLUGIN_HANDLED
}
}
new amount = str_to_num(param);
if (amount < 1)
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Минимальное значение ^4 1")
return PLUGIN_HANDLED
}
if (amount > 99999)
{
ColorChat(id, NORMAL, "^3[^4Money^3]^1 Максимальное значение ^4 99999")
return PLUGIN_HANDLED
}
read_argv(1, param, charsmax(param))
new i_Player = str_to_num(param)
new money = cs_get_user_money(i_Player)
cs_set_user_money(i_Player, money - amount)
new names[2][32]
get_user_name(id, names[0], 31)
ColorChat(i_Player, NORMAL, "^3[^4Money^3]^1 Админ ^4 %s^1 забрал у вас ^4 %s $", names[0], amount)
return PLUGIN_HANDLED
}