Witam czy jest ktoś wstanie przerobić mi ten plugin pod ten system?
http://amxx.pl/topic...em-ammo-packow/
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#define PLUGIN "[ZP] Extra Item : Magic Bullets"
#define VERSION "1.0.3"
#define AUTHOR "Fry! & SnoW"
#define LAST 0
#define FULL 1
new m_spriteTexture
new damage_factor
new fov_value, shake_value
new has_sbullets[33], last_bullet[33]
new g_item_name1[] = "Silver Bullets"
new g_itemid_silverb, g_silver_bullets_cost
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("zp_extra_magic_bullets",VERSION,FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
fov_value = get_user_msgid("SetFOV")
shake_value = get_user_msgid ("ScreenShake")
/* Silver Bullets */
damage_factor = register_cvar("zp_silver_bullets_damage_factor", "1.5")
g_silver_bullets_cost = register_cvar("zp_silver_bullets_cost", "13")
g_itemid_silverb = zp_register_extra_item(g_item_name1, get_pcvar_num(g_silver_bullets_cost), ZP_TEAM_HUMAN)
register_forward(FM_PlayerPreThink, "PreThink")
RegisterHam(Ham_TakeDamage, "player", "Damage")
RegisterHam(Ham_Spawn, "player", "Spawn", 1)
}
public plugin_precache()
{
m_spriteTexture = precache_model("sprites/dot.spr")
}
public PreThink(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED
new weapon, clip, ammo
weapon = get_user_weapon(id,clip,ammo)
if(~pev(id, pev_button) & IN_ATTACK || weapon == 13 || clip == 0 || clip == last_bullet[id])
return FMRES_IGNORED
last_bullet[id] = clip
if(has_sbullets[id])
bullet_effect(id, 0)
return FMRES_IGNORED
}
public zp_extra_item_selected(player, itemid)
{
if(itemid == g_itemid_silverb)
{
new ammo_packs = zp_get_user_ammo_packs(player);
new price = get_pcvar_num(g_silver_bullets_cost);
if(ammo_packs > price)
{
zp_set_user_ammo_packs(player, ammo_packs - price)
has_sbullets[player] = 1
client_print(player, print_chat, "[ZP] You just bought Silver Bullets. Just reload and go!")
}
else
client_print(player, print_chat, "[ZP] You don't have enough ammo packs to buy Silver Bullets.");
}
}
public Damage(id, inflictor, attacker, Float:damage, Damage_d)
{
if(~Damage_d & DMG_BULLET)
if(0 < attacker < 33 && has_sbullets[attacker])
{
SetHamParamFloat(4, damage * get_pcvar_float(damage_factor))
fov_shake(id)
}
return HAM_HANDLED
}
public Spawn(id)
{
if(is_user_alive(id))
has_sbullets[id] = 0
return HAM_HANDLED
}
public bullet_effect(id, num)
{
new k_origin[3]
new v_origin[3]
get_user_origin(id,k_origin, 1)
get_user_origin(id,v_origin, 4)
message_begin(MSG_ONE, SVC_TEMPENTITY,{0,0,0}, id)
write_byte(0)
write_coord(k_origin[0])
write_coord(k_origin[1])
write_coord(k_origin[2]) //origins ->
write_coord(v_origin[0])
write_coord(v_origin[1])
write_coord(v_origin[2]) //origins <-
write_short( m_spriteTexture )
write_byte(1) // framestart
write_byte(1) // framerate
write_byte(1) // life in 0.1's
write_byte(5) // width
write_byte(0) // noise
write_byte(255) // r, g, b
write_byte(255) // r, g, b
write_byte(255) // r, g, b
write_byte(100) // brightness
write_byte(0) // speed
message_end()
}
public fov_shake(id)
{
message_begin(MSG_ONE, fov_value, {0,0,0}, id)
write_byte(fov_value + 4)
message_end()
message_begin( MSG_ONE, shake_value, { 0, 0, 0 }, id)
write_short(1<<14)
write_short(1<<12)
write_short(1<<14)
message_end()
set_task(0.4, "un_fov", id)
}
public un_fov(id)
{
message_begin(MSG_ONE, fov_value, {0,0,0}, id)
write_byte(fov_value)
message_end()
}


Dodatki SourceMod













