I tried to create entity (boss) that can takedamage.
PHP Code:
public create_revenant()
{
static Ent; Ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
if(!pev_valid(Ent)) return
set_pev(Ent, pev_origin, pOrigin)
set_pev(Ent, pev_angles, pv_Origin)
set_pev(Ent, pev_health, 30000.0)
set_pev(Ent, pev_classname, GIANT_CLASSNAME)
engfunc(EngFunc_SetModel, Ent, GIANT_MODEL)
set_pev(Ent, pev_solid, SOLID_BBOX)
set_pev(Ent, pev_movetype, MOVETYPE_PUSHSTEP)
set_pev(Ent, pev_gamestate, 1)
set_pev(Ent, pev_state, STATE_COMBAT) //pev_state = pev_iuser1
set_pev(Ent, pev_takedamage, 1.0)
static Float:Takedamage; pev(Ent, pev_takedamage, Takedamage)
client_print(0, print_chat, "TAKEDAMAGE: %f", Takedamage) //printed 1.0
static Float:Maxs[3], Float:Mins[3]
Maxs[0] = 75.0;
Maxs[1] = 75.0;
Maxs[2] = 120.0
Mins[0] = -75.0;
Mins[1] = -75.0;
Mins[2] = -150.0;
entity_set_size(Ent, Mins, Maxs)
Play_Animation(Ent, ANIME_APPEAR)
emit_sound(Ent, CHAN_BODY, GiantSounds[3], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
static Float:Origin[3]; pev(Ent, pev_origin, Origin)
Origin[2] += 36.0
Create_Rock(Origin)
drop_to_floor(Ent)
entity_set_float(Ent, EV_FL_nextthink, get_gametime() + 5.5)
if(!g_HamReg)
{
g_HamReg = 1
client_print(0, print_console, "Ham Registered")
RegisterHamFromEntity(Ham_TakeDamage, Ent, "fw_BossTakeDamage")
//RegisterHamFromEntity(Ham_TraceAttack, Ent, "fw_BossTraceAttack")
}
g_Test = Ent
}
public fw_BossTakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
//static Float:Origin[3]
//fm_get_aim_origin(attacker, Origin)
//create_blood(Origin)
client_print(attacker, print_center, "%.f", damage)
}
The problem is it doesn't take damage from any weapon except knife.
I am using amx 1.8.3
__________________