1.
Code:
#define SECONDARY_WEAPONS_BIT_SUM ((2<<CSW_P228)|(2<<CSW_ELITE)|(2<<CSW_FIVESEVEN)|(CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE))
This bit sum is not necessary. Just use:
if( !(PRIMARY_WEAPONS_BIT_SUM & weapon) )
2.
Code:
stock primary_wpn_drop(index)
{
new weapons[32], num
get_user_weapons(index, weapons, num)
for (new i = 0; i < num; i++)
{
if (PRIMARY_WEAPONS_BIT_SUM & (1<<weapons[i]))
{
static wname[32]
get_weaponname(weapons[i], wname, sizeof wname - 1)
engclient_cmd(index, "drop", wname)
}
}
}
stock secondary_wpn_drop(index)
{
new weapons[32], num
get_user_weapons(index, weapons, num)
for (new i = 0; i < num; i++)
{
if (!(PRIMARY_WEAPONS_BIT_SUM & (1<<weapons[i])))
{
static wname[32]
get_weaponname(weapons[i], wname, sizeof wname - 1)
engclient_cmd(index, "drop", wname)
}
}
}
Don't re-index arrays.
Code:
stock primary_wpn_drop(index)
{
new weapons[32], num
get_user_weapons(index, weapons, num)
new weapon;
for (new i = 0; i < num; i++)
{
weapon = weapons[i];
if (PRIMARY_WEAPONS_BIT_SUM & (1<<weapon))
{
static wname[32]
get_weaponname(weapon, wname, sizeof wname - 1)
engclient_cmd(index, "drop", wname)
}
}
}
stock secondary_wpn_drop(index)
{
new weapons[32], num
get_user_weapons(index, weapons, num)
new weapon;
for (new i = 0; i < num; i++)
{
weapon = weapons[i];
if (!(PRIMARY_WEAPONS_BIT_SUM & (1<<weapon)))
{
static wname[32]
get_weaponname(weapon, wname, sizeof wname - 1)
engclient_cmd(index, "drop", wname)
}
}
}
3.
Code:
stock fm_set_user_money(index, money, flash=1)
{
set_pdata_int(index, OFFSET_MONEY, money, OFFSET_LINUX);
message_begin(MSG_ONE, get_user_msgid("Money"), {0,0,0}, index)
write_long(money);
write_byte(flash);
message_end();
}
Place get_user_msgid("Money") in plugin_init() and store the value in a global variable.
Code:
new g_msgid_Money;
public plugin_init()
{
g_msgid_Money = get_user_msgid("Money");
}
stock fm_set_user_money(index, money, flash=1)
{
set_pdata_int(index, OFFSET_MONEY, money, OFFSET_LINUX);
message_begin(MSG_ONE, g_msgid_Money, {0,0,0}, index)
write_long(money);
write_byte(flash);
message_end();
}
__________________