[Ajuda] FCNPC: npc atirar no player realista. - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5) +--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6) +--- Tópico: [Ajuda] FCNPC: npc atirar no player realista. (/showthread.php?tid=3180) |
FCNPC: npc atirar no player realista. - zBL4CK - 14/01/2023 Bom pessoal estou a dias tentando fazer um sistema de npc para vigiar um local. OBJETIVO: Bom o intuito é quando o player se aproximar do local onde o npc(que esta de guarda), o npc comece a atirar no player. porem ele só atire no player somente se o player estiver no campo de visão do npc ou seja: caso o npc esteja de frente pro player mas se tiver algum obstáculo(Parede) a frente do npc, o npc não atire no player. só atire se não houver obstáculos a frente entre o npc e o player. Bom ja li e re-li praticamente toda a documentação do FCNPC, algumas funções infelizmente estão faltando a descrição/informação, e as funções que tem la não atendem o que desejo por exemplo(Função que detecte se o player esta no campo de visão do npc, e uma função que detecte se á obstáculos entre o player e o npc). tem a função: Código PHP: FCNPC_AimAtPlayer(npcid, playerid, bool:shoot = false, shoot_delay = -1, bool:set_angle = true, Float:offset_x = 0.0, Float:offset_y = 0.0, Float:offset_z = 0.0, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0, between_check_mode = FCNPC_ENTITY_MODE_AUTO, between_check_flags = FCNPC_ENTITY_CHECK_ALL) porem independente onde o player esteja o npc fica atirando sem parar. se alguém souber como faço para contornar isso, e que atenda o objetivo que foi citado acima, ficarei grato! darei ++rep para quem ajudar. RE: FCNPC: npc atirar no player realista. - xbruno1000x - 14/01/2023 Test LOS é a função que normalmente detecta isso para 3D text label e outras coisas do SA-MP. Infelizmente, me parece que o FCNPC não tem isso nativamente, então terá que usar uma alternativa. Uma alternativa que posso te dar é utilizar a include 3dTryg. Me parece que ela tem algumas funções que detectam proximidade de paredes, talvez seja possível utilizá-la para fazer o NPC parar de atirar quando ele estiver proximo da parede. RE: FCNPC: npc atirar no player realista. - zBL4CK - 14/01/2023 (14/01/2023 18:11)xbruno1000x Escreveu: Uma alternativa que posso te dar é utilizar a include 3dTryg. Me parece que ela tem algumas funções que detectam proximidade de paredes, talvez seja possível utilizá-la para fazer o NPC parar de atirar quando ele estiver proximo da parede. Bom man ai que tá, e se tiver objetos ao redor do npc? acredito que pela logica acusaria impedindo o npc de atirar independentemente se o player estiver de frente ao npc. bom eu andei vasculhando a internet e vi que o plugin colandreas possui funcionalidades que atendem o que preciso e bom eu li a documentação e a função: Código PHP: CA_RayCastLine Acredito que ajude, eu estou fazendo gambiarras, caso funcione eu compartilharei o feedback aki, caso isso ajude alguém futuramente! RE: FCNPC: npc atirar no player realista. - xbruno1000x - 14/01/2023 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. RE: FCNPC: npc atirar no player realista. - zBL4CK - 15/01/2023 (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. 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) { se alguém achar que este código poderia ser melhorado/otimizado e quiser atualiza-lo, fique a vontade! |