Hello, I'm trying to make NPC and I've problem with EngFunc_WalkMove to set walk sequence. The sequence is buggy when walk, but when collide with wall or something the animation plays perfectly. I ever read from somewhere to set the velocity but it neither working. Any suggestion?
PHP Code:
register_think(ZOMBIE_CLASSNAME, "fwd_Think");
Public fwd_Think(iEnt)
{
if (!is_valid_ent(iEnt))
return FMRES_SUPERCEDE;
new Float:vOrigin[3], Float:pOrigin[3]
new iPlayers[32], iNum;
get_players(iPlayers, iNum, "a");
new iClosestPlayer = 0, iFarthestPlayer = 0, Float:flMinDist = 100.0, Float:flMaxDist = 1000.0;
new iPlayer, Float:flDist;
for (new i = 0; i < iNum; i++)
{
iPlayer = iPlayers[i];
entity_get_vector(iPlayer, EV_VEC_origin, pOrigin);
entity_get_vector(iEnt, EV_VEC_origin, vOrigin);
flDist = entity_range(iPlayer, iEnt);
if (flDist < flMinDist)
{
iClosestPlayer = iPlayer;
flMinDist = flDist;
}
else if (flMinDist < flDist < flMaxDist)
{
iFarthestPlayer = iPlayer;
flMaxDist = flDist;
}
}
if (iClosestPlayer)
{
SetTarget(iEnt, iClosestPlayer);
UTIL_ZombieSeq(iEnt, SEQ_ATTACK);
ExecuteHam(Ham_TakeDamage, iClosestPlayer, iEnt, iEnt, 20.0, DMG_SLASH);
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 2.0);
}
else if (iFarthestPlayer)
{
SetTarget(iEnt, iFarthestPlayer);
UTIL_ZombieSeq(iEnt, SEQ_WALK);
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.01);
}
else
{
UTIL_ZombieSeq(iEnt, SEQ_IDLE);
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.01);
}
return FMRES_IGNORED;
}
SetTarget(iEnt, iPlayer)
{
static Float:iOrigin[3], Float:entOrigin[3], Float:iAngles[3];
pev(iPlayer, pev_origin, iOrigin);
pev(iEnt, pev_origin, entOrigin);
xs_vec_sub(iOrigin, entOrigin, iOrigin);
xs_vec_normalize(iOrigin, iOrigin);
vector_to_angle(iOrigin, iAngles);
iAngles[0] = 0.0;
entity_set_vector(iEnt, EV_VEC_angles, iAngles);
SetVelocity(iEnt, iAngles);
}
SetVelocity(iEnt, Float:flAngles[3])//Float:flAngles)
{
engfunc(EngFunc_WalkMove, iEnt, flAngles[1], 2.0, WALKMOVE_NORMAL);
UTIL_ZombieSeq(iEnt, SEQ_WALK);
}
__________________