Code:
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <cstrike>
#include <hamsandwich>
#include <zombieplague>
#include <fun>
#define is_valid_player(%1) (1 <= %1 <= 32)
#pragma dynamic 32768
new Handle:g_SqlTuple
new g_AP[33]
new g_DonateID[33]
public plugin_init()
{
register_clcmd("takeAmount", "cmdTakeAmount")
register_clcmd("saveAmount", "cmdSaveAmount")
register_clcmd("donate", "cmdDonate")
register_clcmd("say /bank", "menuBank")
register_clcmd("say_team /bank", "menuBank")
}
public menuBank(id)
{
new title[100]
formatex(title, 99, "[Bank \yAmmopacks :\r %i\w]", g_AP[id])
new bankMenu = menu_create(title, "menuBankHandler")
menu_additem(bankMenu, "\wTake Amount", "1")
menu_additem(bankMenu, "\wTake All^n", "2")
menu_additem(bankMenu, "\wSave Amount", "3")
menu_additem(bankMenu, "\wSave All^n", "4")
menu_additem(bankMenu, "\wDonate Amout^n^n", "5")
menu_display(id, bankMenu, 0)
}
public menuBankHandler(id, menu, item)
{
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
client_cmd(id, "messagemode takeAmount")
}
case 2:
{
cmdTakeAll(id)
}
case 3:
{
client_cmd(id, "messagemode saveAmount")
}
case 4:
{
cmdSaveAll(id)
}
case 5:
{
menuDonate(id)
}
}
}
public cmdTakeAmount(id)
{
new szAps[11]
read_args(szAps, 10)
remove_quotes(szAps)
if(equal(szAps, "") || equal(szAps, " "))
return PLUGIN_HANDLED
new iAps = str_to_num(szAps)
if(iAps < 1) return PLUGIN_HANDLED
new iApsSum = iAps + zp_get_user_ammo_packs(id)
if(iAps <= g_AP[id] && iApsSum <= 999)
{
zp_set_user_ammo_packs(id, iApsSum)
g_AP[id] -= iAps
client_print(id, print_chat, "[Bank] You took %i Ammopacks from Your Bank. Now you have %i Ammopacks in your Bank.", iAps, g_AP[id])
return PLUGIN_CONTINUE
}
else
{
client_print(id, print_chat, "[Bank] You dont have enough Ammopacks or you wanted to take too much Ammopacks.")
}
return PLUGIN_CONTINUE
}
public cmdTakeAll(id)
{
new iApsSum = zp_get_user_ammo_packs(id) + g_AP[id]
if(iApsSum <= 999)
{
zp_set_user_ammo_packs(id, iApsSum)
client_print(id, print_chat, "[Bank] You took all %i Ammopacks from your Bank.", g_AP[id])
g_AP[id] = 0
}
else if(iApsSum > 999)
{
new giveAps = 999 - zp_get_user_ammo_packs(id)
if(giveAps <= g_AP[id])
{
zp_set_user_ammo_packs(id, giveAps + zp_get_user_ammo_packs(id))
g_AP[id] -= giveAps
client_print(id, print_chat, "[Bank] You took %i Ammopacks from your Bank. Now you have %i Ammopacks in your Bank.", giveAps, g_AP[id])
}
}
}
public cmdSaveAmount(id)
{
new szAps[11]
read_args(szAps, 10)
remove_quotes(szAps)
if(equal(szAps, "") || equal(szAps, " "))
return PLUGIN_HANDLED
new iAps = str_to_num(szAps)
if(iAps < 1) return PLUGIN_HANDLED
new haveAps = zp_get_user_ammo_packs(id)
if(iAps <= haveAps)
{
zp_set_user_ammo_packs(id, haveAps - iAps)
g_AP[id] += iAps
client_print(id, print_chat, "[Bank] You saved %i Ammopacks in your Bank. Now you have %i Ammopacks in your Bank.", iAps, g_AP[id])
}
else
{
client_print(id, print_chat, "[Bank] You dont have enough Ammopacks")
}
return PLUGIN_CONTINUE
}
public cmdSaveAll(id)
{
new haveAps = zp_get_user_ammo_packs(id)
zp_set_user_ammo_packs(id, 0)
g_AP[id] += haveAps
client_print(id, print_chat, "[Bank] You saved %i Ammopacks to your Bank. Now you have %i Ammopackt in your Bank.", haveAps, g_AP[id])
}
public menuDonate(id)
{
new DonateMenu = menu_create("\rChoose A player to Donate:", "menuDonateHandler")
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum)
for( new i; i<pnum; i++ )
{
tempid = players[i]
if(id != tempid)
{
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(DonateMenu, szName, szTempid, 0)
}
}
menu_display(id, DonateMenu, 0)
}
public menuDonateHandler(id, menu, item)
{
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);
g_DonateID[id] = tempid
client_cmd(id, "messagemode donate")
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public cmdDonate(id)
{
new szAps[11]
read_args(szAps, 10)
remove_quotes(szAps)
if(equal(szAps, "") || equal(szAps, " "))
return PLUGIN_HANDLED
new iAps = str_to_num(szAps)
if(iAps < 1) return PLUGIN_HANDLED
if(iAps <= g_AP[id])
{
// Take iAps away
g_AP[id] -= iAps
new NameDonate[45]
get_user_name(g_DonateID[id], NameDonate, 44)
new Name[45]
get_user_name(g_DonateID[id], Name, 44)
client_print(id, print_chat, "[Bank] You donated %i Ammopacks to %s. Now you have %i ammopacks in your Bank.", iAps, NameDonate, g_AP[id])
// give iAps to Donateid
g_AP[g_DonateID[id]] += iAps
client_print(g_DonateID[id], print_chat, "[Bank] %s donated %i Ammopacks to you. Now you have %i Ammopacks in your Bank.", Name, iAps, g_AP[g_DonateID[id]])
}
else
{
client_print(id, print_chat, "[Bank] You dont have enough Ammopacks")
}
return PLUGIN_CONTINUE
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}