so i made a plugin that gives, takes or sets a player's ammo pack to a specified amount
the problem is that when i try to exec this on a specified person it sets the admin's ammo packs to the specified amount instead of the specified player's
PHP Code:
#include <amxmodx>
#include <chatcolor>
#include <zombieplaguenm>
new g_maxplayers, bool:g_isconnected[33], show_activity
#define is_user_valid_connected(%1) (1 <= %1 <= g_maxplayers && g_isconnected[%1])
public plugin_init()
{
register_plugin("[ZPNM] Sub-Plugin: Manage Ammo Packs", "1.0", "9 3 () |2 9 ! /<")
register_dictionary_colored("zpnm_manage_ampks.txt")
register_concmd("zpnm_set_ampks", "CmdSetAmpks", ADMIN_RCON, "<*/@surv/@snip/@hm/@nem/@zm/name> <amount to set/+/-> <amount>")
g_maxplayers = get_maxplayers()
}
public client_putinserver(id)
g_isconnected[id] = true
public client_disconnect(id)
g_isconnected[id] = false
public CmdSetAmpks(id, level, aid)
{
if (!cmd_access(id, level , aid, 3)
|| !is_user_valid_connected(id))
return;
static arg1[32], arg2[32], arg3[32], idname[33], aname[33], i, arg2num, arg3num
read_argv(1, arg1, 31)
read_argv(2, arg2, 31)
read_argv(3, arg3, 31)
get_user_name(id, idname, 32)
get_user_name(aid, aname, 32)
arg2num = str_to_num(arg2)
arg3num = str_to_num(arg3)
show_activity = get_cvar_num("amx_show_activity")
if (!equali(arg1, "*") && !equali(arg1, "@surv") && !equali(arg1, "@snip")
&& !equali(arg1, "@hm") && !equali(arg1, "@nem") && !equali(arg1, "@zm"))
{
if (equali(arg2, "+"))
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + arg3num)
if (show_activity == 1)
client_print_color(0, Blue, "%L", LANG_PLAYER, "ZPNM_GIVE_PLAYER1", arg3num, idname) //, arg3 > 1 ? "s" : ""
else if (show_activity == 2)
client_print_color(0, DontChange, "%L", LANG_PLAYER, "ZPNM_GIVE_PLAYER2", aname, arg3num, idname)
}
else if (equali(arg2, "-"))
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - arg3num)
if (show_activity == 1)
client_print_color(0, Blue, "%L", LANG_PLAYER, "ZPNM_TAKE_PLAYER1", arg3num, idname)
else if (show_activity == 2)
client_print_color(0, DontChange, "%L", LANG_PLAYER, "ZPNM_TAKE_PLAYER2", aname, arg3num, idname)
}
else
{
zp_set_user_ammo_packs(id, arg2num)
if (show_activity == 1)
client_print_color(0, Blue, "%L", LANG_PLAYER, "ZPNM_SET_PLAYER1", idname, arg2num)
else if (show_activity == 2)
client_print_color(0, DontChange, "%L", LANG_PLAYER, "ZPNM_SET_PLAYER2", aname, idname, arg2num)
}
return;
}
for (i = 1; i <= g_maxplayers; i++)
{
if (equali(arg1, "*"))
{
if (equali(arg2, "+"))
{
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_GIVE_PLAYERS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_GIVE_PLAYERS2", aname, arg3num)
}
else if (equali(arg2, "-"))
{
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) - arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_TAKE_PLAYERS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_TAKE_PLAYERS2", aname, arg3num)
}
else
{
zp_set_user_ammo_packs(i, arg2num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_SET_PLAYERS1", arg2num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_SET_PLAYERS2", aname, arg2num)
}
}
else if (equali(arg1, "@surv"))
{
if (equali(arg2, "+"))
{
if (zp_get_user_survivor(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_GIVE_SURVIVORS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_GIVE_SURVIVORS2", aname, arg3num)
}
else if (equali(arg2, "-"))
{
if (zp_get_user_survivor(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) - arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_TAKE_SURVIVORS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_TAKE_SURVIVORS2", aname, arg3num)
}
else
{
if (zp_get_user_survivor(i))
zp_set_user_ammo_packs(i, arg2num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_SET_SURVIVORS1", arg2num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_SET_SURVIVORS2", aname, arg2num)
}
}
else if (equali(arg1, "@snip"))
{
if (equali(arg2, "+"))
{
if (zpnm_get_user_sniper(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_GIVE_SNIPERS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_GIVE_SNIPERS2", aname, arg3num)
}
else if (equali(arg2, "-"))
{
if (zpnm_get_user_sniper(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) - arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_TAKE_SNIPERS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_TAKE_SNIPERS2", aname, arg3num)
}
else
{
if (zpnm_get_user_sniper(i))
zp_set_user_ammo_packs(i, arg2num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_SET_SNIPERS1", arg2num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_SET_SNIPERS2", aname, arg2num)
}
}
else if (equali(arg1, "@hm"))
{
if (equali(arg2, "+"))
{
if (!zp_get_user_zombie(i) && !zp_get_user_survivor(i) && !zpnm_get_user_sniper(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_GIVE_HUMANS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_GIVE_HUMANS2", aname, arg3num)
}
else if (equali(arg2, "-"))
{
if (!zp_get_user_zombie(i) && !zp_get_user_survivor(i) && !zpnm_get_user_sniper(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) - arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_TAKE_HUMANS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_TAKE_HUMANS2", aname, arg3num)
}
else
{
if (!zp_get_user_zombie(i) && !zp_get_user_survivor(i) && !zpnm_get_user_sniper(i))
zp_set_user_ammo_packs(i, arg2num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_SET_HUMANS1", arg2num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_SET_HUMANS2", aname, arg2num)
}
}
else if (equali(arg1, "@nem"))
{
if (equali(arg2, "+"))
{
if (zp_get_user_nemesis(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_GIVE_NEMESIS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_GIVE_NEMESIS2", aname, arg3num)
}
else if (equali(arg2, "-"))
{
if (zp_get_user_nemesis(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) - arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_TAKE_NEMESIS1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_TAKE_NEMESIS2", aname, arg3num)
}
else
{
if (zp_get_user_nemesis(i))
zp_set_user_ammo_packs(i, arg2num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_SET_NEMESIS1", arg2num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_SET_NEMESIS2", aname, arg2num)
}
}
else if (equali(arg1, "@zm"))
{
if (equali(arg2, "+"))
{
if (zp_get_user_zombie(i) && !zp_get_user_nemesis(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) + arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_GIVE_ZOMBIES1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_GIVE_ZOMBIES2", aname, arg3num)
}
else if (equali(arg2, "-"))
{
if (zp_get_user_zombie(i) && !zp_get_user_nemesis(i))
zp_set_user_ammo_packs(i, zp_get_user_ammo_packs(i) - arg3num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_TAKE_ZOMBIES1", arg3num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_TAKE_ZOMBIES2", aname, arg3num)
}
else
{
if (zp_get_user_zombie(i) && !zp_get_user_nemesis(i))
zp_set_user_ammo_packs(i, arg2num)
if (show_activity == 1)
client_print_color(i, Blue, "%L", i, "ZPNM_SET_ZOMBIES1", arg2num)
else if (show_activity == 2)
client_print_color(i, DontChange, "%L", i, "ZPNM_SET_ZOMBIES2", aname, arg2num)
}
}
}
}
stock is_user_admin(id)
{
new __flags=get_user_flags(id);
return (__flags>0 && !(__flags&ADMIN_USER));
}
stock cmd_access(id, level, cid, num, bool:accesssilent = false)
{
new has_access = 0;
if ( id==(is_dedicated_server()?0:1) )
{
has_access = 1;
}
else if ( level==ADMIN_ADMIN )
{
if ( is_user_admin(id) )
{
has_access = 1;
}
}
else if ( get_user_flags(id) & level )
{
has_access = 1;
}
else if (level == ADMIN_ALL)
{
has_access = 1;
}
if ( has_access==0 )
{
if (!accesssilent)
{
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("You have no access to that command."));
#else
console_print(id,"%L",id,"NO_ACC_COM");
#endif
}
return 0;
}
if (read_argc() < num)
{
new hcmd[32], hinfo[128], hflag;
get_concmd(cid,hcmd,31,hflag,hinfo,127,level);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("Usage: %s %s"), hcmd, SIMPLE_T(hinfo));
#else
console_print(id,"%L: %s %s",id,"USAGE",hcmd,hinfo);
#endif
return 0;
}
return 1;
}