[Ajuda] FCNPC nгo ataca quando hб mais de 1 jogador
#1

Tou tendo um problema com o sistema de zumbis que fiz para o meu gamemode, ainda estou aprendendo sobre as funзхes do FCNPC e no momento sу tive problema com este sistema aqui:

Resumindo, o sistema ele faz uma checagem se o jogador estiver num raio de 15.0 da posiзao do Zumbi e se estiver o NPC irб atй a coordenada do jogador, se o jogador estiver num raio 1.0 ele o ataca.

Funciona perfeitamente, sempre que estou jogando sozinho os zumbis me atacam, mas quando hб mais de 1 jogador ele fica encarando o jogador mas nгo faz nada, o interessante й que se eu bem proximo desse jogador ele ataca, mas se o jogador ficar afastado de outro jogador o zumbi nгo faz nada.

Dei uma estudada nas funзхes do tуpico do FCNPC, mas realmente Nгo sei arrumar =/

Aqui estб o todo o script dos zumbis

PHP код:
// # Callbacks e Stocks #
stock CriarZumbis()
{
    new 
str[30];
    for(new 
0MAX_ZUMBISi++)    
    {
        
format(strsizeof(str), "Zombie_%i"i);
        
FCNPC_Create(str);
    }
    return 
1;
}
public 
RespawnZumbis()
{
    for(new 
0MAX_ZUMBISi++)
    {
        if(
FCNPC_IsDead(i))
        {
            
FCNPC_Respawn(i);
        }
    }
    print(
"| INFO |: Os Zumbis foram respawnados.");
    return 
1;
}
public 
FCNPC_OnDeath(npcidkilleridweaponid)
{
    if(
killerid != INVALID_PLAYER_ID && IsPlayerConnected(killerid))
    {
        
pInfo[killerid][pZombieKills]++;
        
GameTextForPlayer(killerid"~w~(Zombie Kill)~n~+5 EXP"25003);
        
AddEXP(killerid5);
    }
    return 
1;
}
public 
FCNPC_OnCreate(npcid)
{
    new 
rand random(sizeof(ZumbiSpawns));
    
FCNPC_Spawn(npcid162ZumbiSpawns[rand][0],ZumbiSpawns[rand][1], ZumbiSpawns[rand][2]);
    
FCNPC_SetInvulnerable(npcidfalse); 
    return 
1;
}
public 
FCNPC_OnSpawn(npcid)
{
    
SetPlayerAttachedObject(npcid0290820.08000.06900.0000180.00000.099988.90001.28601.12801.15400xFFFFFFFF0xFFFFFFFF); 
    
SetPlayerAttachedObject(npcid1290710.10600.03590.0259, -88.99990.900088.69991.00000.64891.14400xFFFFFFFF0xFFFFFFFF); 
    return 
1;
}
public 
FCNPC_OnUpdate(npcid)
{
    foreach(new 
Player)
    {
        if(!
IsPlayerNPC(i) && IsPlayerConnected(i)) 
        {
            new 
Float:zP[3], Float:pP[3];
            
GetPlayerPos(npcidzP[0], zP[1], zP[2]); // pega coordenada do Zumbi
            
GetPlayerPos(ipP[0], pP[1], pP[2]); // Pega Coordenada do Player
            
if(IsPlayerInRangeOfPoint(i15.0zP[0], zP[1], zP[2])) FCNPC_GoTo(npcidpP[0], pP[1], pP[2], MOVE_TYPE_RUN0.5false0.0true); // se o jogador estiver no raio de 15.0 da posiзгo do zumbi, o npc irб caminhar atй a posiзгo do jogador
            
if(IsPlayerInRangeOfPoint(i1.0zP[0], zP[1], zP[2])) // Se o jogador estiver a 1.0 da posiзao do zumbi
            
{
                
FCNPC_Stop(npcid); // Para o FCNPC_GoTo
                
FCNPC_MeleeAttack(npcid, -1true); // Ataque, velocidade -1, true = ataque especial
            
}
            else 
FCNPC_StopAttack(npcid); // Caso ele jб nгo esteja proximo do jogador ele para o Ataque
        
}
    }
    return 
1;

OBS: Sу nгo coloquei a Array ZumbiSpawns pois tinha muitas coordenadas de locais onde os zumbis nascem


Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)