#define MAX_ZOMBIES 1
new Float:ZombieSpawns[1][4] =
{
{1211.4139,208.9426,19.5547}
};
stock CriarZumbis()
{
new str[30];
for(new i = 0; i < MAX_ZOMBIES; i++)
{
format(str, sizeof(str), "Zombie_%i", i);
FCNPC_Create(str);
}
return 1;
}
public RespawnZumbis()
{
for(new i = 0; i < MAX_ZOMBIES; i++)
{
if(FCNPC_IsDead(i))
{
FCNPC_Respawn(i);
}
}
return 1;
}
public FCNPC_OnDeath(npcid, killerid, weaponid)
{
if(killerid != INVALID_PLAYER_ID && IsPlayerConnected(killerid))
{
GameTextForPlayer(killerid, "~w~(Zombie Kill)~n~+5 EXP", 2500, 3);
}
return 1;
}
public FCNPC_OnCreate(npcid)
{
new rand = random(sizeof(ZombieSpawns));
FCNPC_Spawn(npcid, 162, ZombieSpawns[rand][0],ZombieSpawns[rand][1], ZombieSpawns[rand][2]);
FCNPC_SetInvulnerable(npcid, false);
return 1;
}
public FCNPC_OnSpawn(npcid)
{
SetPlayerAttachedObject(npcid, 0, 2908, 2, 0.0800, 0.0690, 0.0000, 180.0000, 0.0999, 88.9000, 1.2860, 1.1280, 1.1540, 0xFFFFFFFF, 0xFFFFFFFF);
SetPlayerAttachedObject(npcid, 1, 2907, 1, 0.1060, 0.0359, 0.0259, -88.9999, 0.9000, 88.6999, 1.0000, 0.6489, 1.1440, 0xFFFFFFFF, 0xFFFFFFFF);
return 1;
}
public FCNPC_OnUpdate(npcid)
{
foreach(new i : Player)
{
if(!IsPlayerNPC(i) && IsPlayerConnected(i))
{
new Float:zP[3], Float:pP[3];
GetPlayerPos(npcid, zP[0], zP[1], zP[2]);
GetPlayerPos(i, pP[0], pP[1], pP[2]);
if(IsPlayerInRangeOfPoint(i, 15.0, zP[0], zP[1], zP[2])) FCNPC_GoTo(npcid, pP[0], pP[1], pP[2], MOVE_TYPE_RUN, 0.5, false, 0.0, true);
if(IsPlayerInRangeOfPoint(i, 1.0, zP[0], zP[1], zP[2]))
{
FCNPC_Stop(npcid);
FCNPC_MeleeAttack(npcid, -1, true);
}
else FCNPC_StopAttack(npcid);
}
}
return 1;
}
|
Luce bien, quй sucede cuando hay mбs de un jugador cerca del radio del zombie?
|
|
El zombie se vuelve loco hahahaha
nah mentira elije un jugador aleatorio y comienza a realizar las funciones que le asignaron (seguirlo, disparar, atacar, etc) |