PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#define PLUGIN "[JBE] Screw Driver"
#define VERSION "0.1"
#define AUTHOR "Godzilla"
native jbe_get_user_money(id);
#define BALISONG_DAMAGE 2.0 // Damage
#define COST 500 // Item cost
#define SOUND_PICKUP "items/gunpickup2.wav"
new const Balisong_Model[][] =
{
"models/v_balisong.mdl",
"models/p_balisong.mdl"
}
new const Balisong_Sound[][] =
{
"weapons/balisong_deploy.wav",
"weapons/balisong_hitwall.wav",
"weapons/balisong_slash.wav",
"weapons/balisong_hit.wav",
"weapons/balisong_hit.wav"
}
new bool:g_balisong[33]
new bool:g_hidden_balisong[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_EmitSound, "fw_EmitSound")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage", false)
RegisterHam(Ham_Killed, "player", "PlayerKilled", true)
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_Item_Deploy_Post", true)
register_clcmd("radio2", "HiddenBalisong")
register_clcmd("say /balisong", "BuyBalisong")
}
public plugin_precache()
{
for(new i = 0; i < sizeof Balisong_Model; i++)
precache_model(Balisong_Model[i])
for(new i = 0; i < sizeof Balisong_Sound; i++)
precache_sound(Balisong_Sound[i])
precache_sound(SOUND_PICKUP)
}
public plugin_natives()
{
register_native("jbe_give_balisong", "GiveBalisong", 1)
register_native("jbe_get_balisong", "GetBalisong", 1)
}
public BuyBalisong(id)
{
if(g_balisong[id])
return
if(jbe_get_user_money(id) < COST)
return
jbe_get_user_money(id, jbe_get_user_money(id) - COST)
GiveBalisong(id)
}
public GiveBalisong(id)
{
if(g_balisong[id])
return
if(jbe_get_user_money(id) < COST)
return
jbe_get_user_money(id, jbe_get_user_money(id) - COST)
if(get_user_weapon(id) == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, Balisong_Model[0])
set_pev(id, pev_weaponmodel2, Balisong_Model[1])
set_pdata_float(id, 83, 0.95, 5)
}
g_balisong[id] = true
g_hidden_balisong[id] = false
engfunc(EngFunc_EmitSound, id, CHAN_BODY, SOUND_PICKUP, 1.0, ATTN_NORM, 0, PITCH_NORM)
message_begin(MSG_ONE, get_user_msgid("WeapPickup"), {0,0,0}, id)
write_byte(29)
message_end()
}
public GetBalisong(id)
return g_balisong[id]
public HiddenBalisong(id)
{
if(!is_user_alive(id) || !g_balisong[id])
return
if(get_user_weapon(id) != CSW_KNIFE)
return
if(g_hidden_balisong[id])
g_hidden_balisong[id] = false
else g_hidden_balisong[id] = true
set_pdata_float(id, 83, 0.95, 5)
if(user_has_weapon(id, CSW_KNIFE))
ExecuteHamB(Ham_Item_Deploy, find_ent_by_owner(-1, "weapon_knife", id))
engclient_cmd(id, "weapon_knife")
emessage_begin(MSG_ONE, get_user_msgid("CurWeapon"), _, id)
ewrite_byte(1)
ewrite_byte(CSW_KNIFE)
ewrite_byte(-1)
emessage_end()
}
public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
if(is_user_connected(id) && g_balisong[id] && !g_hidden_balisong[id])
{
if(sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i' && sample[11] == 'f' && sample[12] == 'e')
{
switch(sample[17])
{
case 'l': emit_sound(id, channel, Balisong_Sound[0], volume, attn, flags, pitch) // knife_deploy1.wav
case 'w': emit_sound(id, channel, Balisong_Sound[1], volume, attn, flags, pitch) // knife_hitwall1.wav
case 's': emit_sound(id, channel, Balisong_Sound[2], volume, attn, flags, pitch) // knife_slash(1-2).wav
case 'b': emit_sound(id, channel, Balisong_Sound[3], volume, attn, flags, pitch) // knife_stab.wav
default: emit_sound(id, channel, Balisong_Sound[4], volume, attn, flags, pitch) // knife_hit(1-4).wav
}
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public fw_Item_Deploy_Post(weapon_ent)
{
static owner;
owner = pev(weapon_ent, pev_owner)
if(is_user_alive(owner) && g_balisong[owner])
{
if(!g_hidden_balisong[owner])
{
set_pev(owner, pev_viewmodel2, Balisong_Model[0])
set_pev(owner, pev_weaponmodel2, Balisong_Model[1])
set_pdata_float(owner, 83, 0.95, 5)
}
}
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if (victim != attacker && is_user_connected(attacker))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
{
if(g_balisong[attacker] && !g_hidden_balisong[attacker])
SetHamParamFloat(4, damage * BALISONG_DAMAGE)
}
}
}
public PlayerKilled(victim, attacker)
{
if(!is_user_connected(victim))
return HAM_IGNORED
if(!g_balisong[victim])
return HAM_IGNORED
g_balisong[victim] = false
g_hidden_balisong[victim] = false
return HAM_IGNORED
}
can someone fix this error that i get from compile this sma file