12.02.2015, 11:53
(
Последний раз редактировалось SkiT'aZ; 13.02.2015 в 20:57.
)
FIXED.

function ZMOVE(npcid)
{
new Float:p[3];
new Float:Z;
foreach(Player,i)
{
GetPlayerPos(i,p[0],p[1],p[2]);
GetPointZPos(p[0],p[1],Z);
for(new N = 0; N < MAX_ZOMBIES; N++)
{
FCNPC_GetPosition(ZombieInfo[N][zID], ZombieInfo[N][zX], ZombieInfo[N][zY], ZombieInfo[N][zZ]);
if(IsPlayerInRangeOfPoint(npcid,50,p[0],p[1],p[2]))
{
FCNPC_GoTo(npcid,p[0],p[1],p[2],MOVE_TYPE_RUN,10,1);
if(Z - 3.0 > ZombieInfo[N][zZ]) FCNPC_Stop(ZombieInfo[N][zID]);
if(IsPlayerInRangeOfPoint(npcid,1,p[0],p[1],p[2]))
{
FCNPC_Punch(npcid,p[0],p[1],p[2],125);
}
}
}
}
return 1;
}
timer UpdateZombieMovement[800]()
{
new Float:zMap, Float:x, Float:y, Float:z, Float:fPos[3];
foreach(Player, i)
{
for(new j = 0; j != MAX_ZOMBIES; j++)
{
FCNPC_GetPosition(j, x, y, z);
zMap = GetPointZPos(x,y);
Zombie[j][ZombieAttackPlayer] = GetNearest_Player(i, 3.0);
if(IsPlayerInRangeOfPoint(i, 40.0, x, y, z))
{
GetPlayerPos(i, fPos[0], fPos[1], fPos[2]);
FCNPC_GoTo(j, fPos[0], fPos[1], fPos[2], MOVE_TYPE_RUN, 5.6, 1);
Zombie[j][IsFollowing] = 1;
if(GetDistanceBetweenPlayers(i,j) < 1.7)
{
if(!FCNPC_IsDead(j))
{
FCNPC_Punch(j,fPos[0], fPos[1], fPos[2],125);
}
}
}
if(zMap > z) FCNPC_SetPosition(j,x,y,zMap);
}
}
return 1;
}