Only FM version if someone want that.
If someone could make shield avaible in buy menus...
PHP Code:
#include <amxmodx>
#include <fakemeta>
new const VERSION[] = "0.2"
#define SHIELDPRICE 2200
#define OFFSET_CSMONEY 115
#define OFFSET_SHIELD 510
#define HAS_SHIELD (1<<24)
new g_msgTextMsg, g_msgMoney
public plugin_init()
{
register_plugin("Shields for T", VERSION, "JGHG")
g_msgTextMsg = get_user_msgid("TextMsg")
g_msgMoney = get_user_msgid("Money")
register_message(g_msgTextMsg, "msg_TextMsg")
}
public msg_TextMsg(msg_id, msg_dest, id)
{
if(get_msg_args () != 3)
return PLUGIN_CONTINUE
static const Alias_Not_Avail[] = "#Alias_Not_Avail"
static szText[17]
get_msg_arg_string(2, szText, 16)
if(!equal(szText, Alias_Not_Avail))
return PLUGIN_CONTINUE
static const TactShield_Desc[] = "#TactShield_Desc"
get_msg_arg_string(3, szText, 16)
if(!equal(szText, TactShield_Desc))
return PLUGIN_CONTINUE
if(get_pdata_int(id, OFFSET_SHIELD) & HAS_SHIELD)
{
static const Cstrike_Already_Own_Weapon[] = "#Cstrike_Already_Own_Weapon"
player_print(id, Cstrike_Already_Own_Weapon)
return PLUGIN_HANDLED
}
new money = get_pdata_int(id, OFFSET_CSMONEY) - SHIELDPRICE
if(money < 0)
{
static const Not_Enough_Money[] = "#Not_Enough_Money"
player_print(id, Not_Enough_Money)
return PLUGIN_HANDLED
}
set_pdata_int(id, OFFSET_CSMONEY, money)
message_begin(MSG_ONE_UNRELIABLE, g_msgMoney, _, id)
write_long(money)
write_byte(1)
message_end()
static const weapon_shield[] = "weapon_shield"
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, weapon_shield))
new Float:origin[3]
pev(id, pev_origin, origin)
set_pev(ent, pev_origin, origin)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)
new save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, id)
if(pev(ent, pev_solid) != save)
return PLUGIN_HANDLED
engfunc(EngFunc_RemoveEntity, ent)
return PLUGIN_HANDLED
}
player_print(id, const text[])
{
message_begin(MSG_ONE_UNRELIABLE, g_msgTextMsg, _, id)
write_byte(print_center)
write_string(text)
message_end()
}
__________________