/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <cstrike>
#include <fakemeta>
#define PLUGIN_VERSION "1.0"
#define ADMIN_ACCESS ADMIN_RCON
#define MIN_MONEY 1 // limita minima la bani
#define MAX_MONEY 16000 // limita maxima la bani
#if cellbits == 32
const OFFSET_CSTEAMS = 114
#else
const OFFSET_CSTEAMS = 139
#endif
const OFFSET_LINUX = 5
// CS Teams
enum
{
CS_TEAM_UNASSIGNED = 0,
CS_TEAM_T,
CS_TEAM_CT,
CS_TEAM_SPECTATOR
}
new cvar_tag;
new gMaxPlayers;
new const bars[] = "/";
new command[][] =
{
"/setmoney",
"/givemoney",
"/takemoney"
};
new Caccess[] =
{
ADMIN_ACCESS,
ADMIN_ACCESS,
ADMIN_ACCESS
};
public plugin_init() {
register_plugin("multimoney", PLUGIN_VERSION, "RedForce")
register_clcmd ("say", "hook_say");
register_concmd("amx_setmoney", "cmdSetMoney", ADMIN_ACCESS, "<nume/@CT/@T/@ALL> <money>");
register_concmd("amx_givemoney", "cmdGiveMoney", ADMIN_ACCESS, "<nume/@CT/@T/@ALL> <money>");
register_concmd("amx_takemoney", "cmdTakeMoney", ADMIN_ACCESS, "<nume/@CT/@T/@ALL> <money>");
cvar_tag = register_cvar("money_tag","[AMXX]:");
gMaxPlayers = get_maxplayers();
}
public hook_say(index)
{
static arg[192], command2[192];
read_args(arg, charsmax (arg));
if(!arg[0])
return PLUGIN_CONTINUE;
remove_quotes(arg[0]);
for(new x; x < sizeof command; x++)
{
if(equal(arg, command[x], strlen(command[x])))
{
if(get_user_flags(index) & Caccess[x])
{
replace(arg, charsmax(arg), bars, "");
formatex(command2, charsmax(command2), "amx_%s", arg);
client_cmd(index, command2);
}
break;
}
}
return PLUGIN_CONTINUE;
}
/* SetMoney */
public cmdSetMoney(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED;
}
new szArg[32], szMoney[6], money
read_argv(1, szArg, charsmax(szArg))
read_argv(2, szMoney, charsmax(szMoney))
new tag[32];
new gTag = get_pcvar_string(cvar_tag,tag,31);
new szAdminName[40];
get_user_name(id, szAdminName, charsmax(szAdminName))
money = str_to_num(szMoney)
if(money < MIN_MONEY)
{
ColorChat(id, RED, "%s^x01 Nu ai voie sa pui o valoare mai mica de^x04 1^x01.", gTag)
return PLUGIN_HANDLED;
}
if(money > MAX_MONEY)
{
ColorChat(id, RED, "%s^x01 Nu ai voie sa pui o valoare mai mare de^x04 16000^x01.", gTag)
return PLUGIN_HANDLED;
}
if(szArg[0] == '@')
{
new index;
if(equali(szArg[1], "ALL"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index))
{
cs_set_user_money(index, money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a setat banii pe^x03 $%d^x01.", gTag, szAdminName, money)
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a setat tuturor banii pe^x03 $%d^x01.", gTag, szAdminName, money)
}
else if(equali(szArg[1], "T"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index)
&& fm_get_user_team(index) == CS_TEAM_T)
{
cs_set_user_money(index, money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a setat banii pe^x03 $%d^x01.", gTag, szAdminName, money)
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a setat echipei Terrorist $ la^x03 %d^x01.", gTag, szAdminName, money)
}
else if(equali(szArg[1], "CT"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index)
&& fm_get_user_team(index) == CS_TEAM_CT)
{
cs_set_user_money(index, money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a setat banii pe^x03 $%d^x01.", gTag, szAdminName, money)
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a setat echipei CT banii pe^x03 $%d^x01.", gTag, szAdminName, money)
}
}
else
{
new iTarget = cmd_target(id, szArg, CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
if(!iTarget)
{
return PLUGIN_HANDLED;
}
new szTargetName[40];
get_user_name(iTarget, szTargetName, charsmax(szTargetName))
cs_set_user_money(iTarget, money)
ColorChat(iTarget, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a setat banii pe^x03 $%d^x01.", gTag, szAdminName, money)
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 i-a setat lui^x04 %s^x01 banii pe^x03 $%d^x01.", gTag, szAdminName, szTargetName, money)
}
return PLUGIN_HANDLED;
}
/* GiveMoney */
public cmdGiveMoney(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED;
}
new szArg[32], szMoney[6], money
read_argv(1, szArg, charsmax(szArg))
read_argv(2, szMoney, charsmax(szMoney))
new tag[32];
new gTag = get_pcvar_string(cvar_tag,tag,31);
new szAdminName[40];
get_user_name(id, szAdminName, charsmax(szAdminName))
money = str_to_num(szMoney)
if(money < MIN_MONEY)
{
ColorChat(id, RED, "%s^x01 Nu ai voie sa pui o valoare mai mica de^x04 1^x01.", gTag)
return PLUGIN_HANDLED;
}
if(money > MAX_MONEY)
{
ColorChat(id, RED, "%s^x01 Nu ai voie sa pui o valoare mai mare de^x04 16000^x01.", gTag)
return PLUGIN_HANDLED;
}
if(szArg[0] == '@')
{
new index;
if(equali(szArg[1], "ALL"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index))
{
if(cs_get_user_money(index) < MAX_MONEY)
{
cs_set_user_money(index, cs_get_user_money(index) + money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a dat^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(index, MAX_MONEY)
ColorChat(index, RED, "%s^x01 Ai deja maximul de $.", gTag)
}
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a dat tuturor^x03 $%d^x01.", gTag, szAdminName, money)
}
else if(equali(szArg[1], "T"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index)
&& fm_get_user_team(index) == CS_TEAM_T)
{
if(cs_get_user_money(index) < MAX_MONEY)
{
cs_set_user_money(index, cs_get_user_money(index) + money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a dat^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(index, MAX_MONEY)
ColorChat(index, RED, "%s^x01 Ai deja maximul de $.", gTag)
}
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a dat echipei Terrorist^x03 $%d^x01.", gTag, szAdminName, money)
}
else if(equali(szArg[1], "CT"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index)
&& fm_get_user_team(index) == CS_TEAM_CT)
{
if(cs_get_user_money(index) < MAX_MONEY)
{
cs_set_user_money(index, cs_get_user_money(index) + money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a dat^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(index, MAX_MONEY)
ColorChat(index, RED, "%s^x01 Ai deja maximul de $.", gTag)
}
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a dat echipei Counter-Terrorist^x03 $%d^x01.", gTag, szAdminName, money)
}
}
else
{
new iTarget = cmd_target(id, szArg, CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
if(!iTarget)
{
return PLUGIN_HANDLED;
}
new szTargetName[40];
get_user_name(iTarget, szTargetName, charsmax(szTargetName))
if(cs_get_user_money(iTarget) < MAX_MONEY)
{
cs_set_user_money(iTarget, cs_get_user_money(iTarget) + money)
ColorChat(iTarget, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a dat^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(iTarget, MAX_MONEY)
ColorChat(iTarget, RED, "%s^x01 Ai deja maximul de $.", gTag)
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 i-a dat lui^x04 %s^x03 $%d^x01.", gTag, szAdminName, szTargetName, money)
}
return PLUGIN_HANDLED;
}
/* TakeMoney */
public cmdTakeMoney(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED;
}
new szArg[32], szMoney[6], money
read_argv(1, szArg, charsmax(szArg))
read_argv(2, szMoney, charsmax(szMoney))
new tag[32];
new gTag = get_pcvar_string(cvar_tag,tag,31);
new szAdminName[40];
get_user_name(id, szAdminName, charsmax(szAdminName))
money = str_to_num(szMoney)
if(money < MIN_MONEY)
{
ColorChat(id, RED, "%s^x01 Nu ai voie sa pui o valoare mai mica de^x04 1^x01.", gTag)
return PLUGIN_HANDLED;
}
if(money > MAX_MONEY)
{
ColorChat(id, RED, "%s^x01 Nu ai voie sa pui o valoare mai mare de^x04 16000^x01.", gTag)
return PLUGIN_HANDLED;
}
if(szArg[0] == '@')
{
new index;
if(equali(szArg[1], "ALL"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index))
{
if(cs_get_user_money(index) > MIN_MONEY)
{
cs_set_user_money(index, cs_get_user_money(index) - money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a redus banii cu^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(index, MIN_MONEY)
ColorChat(index, RED, "%s^x01 Ai deja minimul de $.", gTag)
}
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a luat tuturor^x03 %d^x01$.", gTag, szAdminName, money)
}
else if(equali(szArg[1], "T"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index)
&& fm_get_user_team(index) == CS_TEAM_T)
{
if(cs_get_user_money(index) > MIN_MONEY)
{
cs_set_user_money(index, cs_get_user_money(index) - money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a redus banii cu^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(index, MIN_MONEY)
ColorChat(index, RED, "%s^x01 Ai deja minimul de $.", gTag)
}
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a redus banii echipei Terrorist cu^x03 $%d^x01.", gTag, szAdminName, money)
}
else if(equali(szArg[1], "CT"))
{
for(index = 1; index <= gMaxPlayers; index++)
{
if(is_user_alive(index)
&& is_user_connected(index)
&& !is_user_bot(index)
&& fm_get_user_team(index) == CS_TEAM_CT)
{
if(cs_get_user_money(index) > MIN_MONEY)
{
cs_set_user_money(index, cs_get_user_money(index) - money)
ColorChat(index, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a redus banii cu^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(index, MIN_MONEY)
ColorChat(index, RED, "%s^x01 Ai deja minimul de $.", gTag)
}
}
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 a redus banii echipei CT cu^x03 $%d^x01.", gTag, szAdminName, money)
}
}
else
{
new iTarget = cmd_target(id, szArg, CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
if(!iTarget)
{
return PLUGIN_HANDLED;
}
new szTargetName[40];
get_user_name(iTarget, szTargetName, charsmax(szTargetName))
if(cs_get_user_money(iTarget) > MIN_MONEY)
{
cs_set_user_money(iTarget, cs_get_user_money(iTarget) - money)
ColorChat(iTarget, RED, "%s^x01 Administratorul^x04 %s^x01 ti-a redus banii cu^x03 $%d^x01.", gTag, szAdminName, money)
}
else
{
cs_set_user_money(iTarget, MIN_MONEY)
ColorChat(iTarget, RED, "%s^x01 Ai deja minimul de $.", gTag)
}
ColorChat(0, RED, "%s^x01 Administratorul^x04 %s^x01 i-a redus banii lui^x04 %s^x01 cu^x03 $%d^x01.", gTag, szAdminName, szTargetName, money)
}
return PLUGIN_HANDLED;
}
// Pentru eventualele erori in log
stock fm_get_user_team(id)
{
return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
}