/* AMX Mod script.
*
* © Copyright 2002-2003
* This file is provided as is (no warranties).
*/
#include <amxmod>
#include <amxmisc>
#include <fun>
/*
* Usage: amx_money <authid, nick, @team or #userid> <money>
* Examples:
* amx_money @CT 100 - adds 100 dollars to ct's money
*
*/
#define MAX_MONEY 30000
enum any:MyArr
{
ARR_ID[22],
ARR_IP[22],
ARR_MONEY
}
new Array: g_arr;
public admin_money(id,level,cid) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new arg[32], arg2[8], name2[32]
read_argv(1,arg,31)
read_argv(2,arg2,7)
new money_add = str_to_num(arg2);
if(money_add > MAX_MONEY)
return client_print(id, print_console, "[Money] Error! Max count is %d", MAX_MONEY)
new playerID = get_player_id(id);
if (playerID == -1) // Add
{
new data[MyArr];
get_user_authid(id, data[ARR_ID], 21)
get_user_ip(id, data[ARR_IP], 21, 1)
data[ARR_MONEY] = 0;
ArrayPushArray(g_arr, data);
playerID = ArraySize(g_arr) - 1;
}
new Data[MyArr];
ArrayGetArray(g_arr, playerID, Data)
if ( money_add + Data[ARR_MONEY] > MAX_MONEY )
return client_print(id, print_console, "[Money] Error! Max count is %d | Your current count %d", MAX_MONEY, Data[ARR_MONEY])
Data[ARR_MONEY] += money_add;
get_user_name(id,name2,31)
if (arg[0]=='@'){
new players[32], inum
get_players(players,inum,"ae",arg[1])
if (inum==0){
console_print(id,"No clients in such team")
return PLUGIN_HANDLED
}
for(new a=0;a<inum;++a) {
new money = get_user_money(players[a])
set_user_money(players[a],str_to_num(arg2) + money ,1)
}
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: set money on all %s",name2,arg[1])
case 1: client_print(0,print_chat,"ADMIN: set money on all %s",arg[1])
}
console_print(id,"All clients have set money")
}
else {
new player = cmd_target(id,arg,3)
if (!player) return PLUGIN_HANDLED
new money = get_user_money(player)
set_user_money(player,str_to_num(arg2) + money ,1)
new name[32]
get_user_name(player,name,31)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: set money on %s",name2,name)
case 1: client_print(0,print_chat,"ADMIN: set money on %s",name)
}
console_print(id,"Client ^"%s^" has set money",name)
}
ArraySetArray(g_arr, playerID, Data)
return PLUGIN_HANDLED
}
public plugin_init() {
register_plugin("Admin Money","0.9.3",Nexon")
register_concmd("amx_go_babki","admin_money",ADMIN_ADMIN,"<authid, nick, @team or #userid> <money>")
return PLUGIN_CONTINUE
}
public plugin_cfg()
{
g_arr = ArrayCreate(MyArr);
}
public plugin_end()
ArrayDestroy(g_arr);
stock get_player_id(id)
{
new steamID[22], ip[22];
get_user_authid(id, steamID, 21)
get_user_ip(id, ip, 21, 1)
new data[MyArr];
for(new i; i< ArraySize(g_arr); i++)
{
ArrayGetArray(g_arr, i, data)
if (equali(data[ARR_ID], steamID) || equali(data[ARR_IP], ip))
return i;
}
return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/