#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) |