15/01/2023 20:21
(14/01/2023 18:57)xbruno1000x Escreveu: Espero que funcione. Possível eu sei que é, pois o servidor WTLS utiliza esse mesmo sistema que você deseja fazer.
Se quiser dar uma olhada no sistema deles, o ip é s2.gta-multiplayer.cz:7777. Basta fazer uma missão ou assaltar uma loja.
Sim, eu estou tendo como base esse sistema desse servidor.
Consegui resolver e vou compartilhar caso alguém tenha o mesmo problema futuramente.
Necessário:
FCNPC
ColAndreas (É de grande importância que você siga as etapas de instalação do plugin veja aqui!)
Após spawnar o npc utilize este código:
Objetivo do código: Detectar se á um objeto entre o npc e um player que o npc está mirando.
Código:
public FCNPC_OnUpdate(npcid) {
if(FCNPC_IsAiming(npcid)) {
new Float:Posnpc[3], Float:PosPlayer[3], Float:PosColl[3], wall;
FCNPC_GetPosition(npcid, Posnpc[0], Posnpc[1], Posnpc[2]);
GetPlayerPos(FCNPC_GetAimingPlayer(npcid), PosPlayer[0], PosPlayer[1], PosPlayer[2]);
wall = CA_RayCastLine(Posnpc[0], Posnpc[1], Posnpc[2], PosPlayer[0], PosPlayer[1], PosPlayer[2], PosColl[0], PosColl[1], PosColl[2]);
if(wall != 0) {
if(FCNPC_IsShooting(npcid) == true) FCNPC_AimAtPlayer(npcid, FCNPC_GetAimingPlayer(npcid), false, 500);
} else {
if(FCNPC_IsShooting(npcid) == false) FCNPC_AimAtPlayer(npcid, FCNPC_GetAimingPlayer(npcid), true, 500);
}
}
return 1;
}
se alguém achar que este código poderia ser melhorado/otimizado e quiser atualiza-lo, fique a vontade!