P.S. В первом спрайте цифры от 0 до -255, во втором от -256 до -512.
- Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
new g_spritedamage1, g_spritedamage2
public plugin_init()
{
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage_Post", 1)
}
public plugin_precache()
{
g_spritedamage1 = engfunc(EngFunc_PrecacheModel, "sprites/dm_xgamecs/spr/damager1.spr");
g_spritedamage2 = engfunc(EngFunc_PrecacheModel, "sprites/dm_xgamecs/spr/damager2.spr");
}
public fw_TakeDamage_Post(victim, inflictor, attacker, Float:damage, damage_type)
{
if (victim == attacker || !is_user_connected(attacker)) return
if(get_pdata_int(attacker, 114, 5)==get_pdata_int(victim, 114, 5)) return
if (inflictor == attacker)
{
remove_sprite(victim)
if(floatround(damage) < 255) set_sprite1(victim)
else set_sprite2(victim)
}
}
stock remove_sprite(id)
{
message_begin(MSG_ALL, SVC_TEMPENTITY);
write_byte(125);
write_byte(id);
message_end();
}
stock set_sprite1(id)
{
message_begin(MSG_ALL, SVC_TEMPENTITY);
write_byte(124);
write_byte(id);
write_coord(35);
write_short(g_spritedamage1);
write_short(100);
message_end();
}
stock set_sprite2(id)
{
message_begin(MSG_ALL, SVC_TEMPENTITY);
write_byte(124);
write_byte(id);
write_coord(35);
write_short(g_spritedamage2);
write_short(100);
message_end();
}