[Ajuda] Verificar se o player está atirando com uma arma ou não. - 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] Verificar se o player está atirando com uma arma ou não. (/showthread.php?tid=4486) |
Verificar se o player está atirando com uma arma ou não. - BitSain - 31/01/2024 Alguém poderia fornecer um código já pronto pra eu usar como base? Assim, eu tenho minhas lógicas, mas, deu um nó em mim pois as ideias e lógicas são muitas, e também há possibilidades de não dar certo. Precisaria de uma stock que verificasse se o jogador está atirando ou não para eu aprimorar um sistema da minha Gamemode. De primeira eu pensei em criar uma variável bool e usar o OnPlayerWeaponShot pra setar como true a variável, e depois um timer pra deixar a variável como false. Mas não deu muito certo, não sei se foi por causa do tempo do timer... RE: Verificar se o player está atirando com uma arma ou não. - xbruno1000x - 01/02/2024 Tenta assim: Código: stock bool:IsPlayerShooting(playerid) Dessa forma vai verificar pela animação do jogador. RE: Verificar se o player está atirando com uma arma ou não. - BitSain - 01/02/2024 Criei uma simples forma de verificar se está ou não, usando essa stock que você me forneceu. Mas diz que não está atirando. Código: Chat(playerid, -1, IsPlayerShooting(playerid) == true ? ("Atirando") : ("Não atirando")); Fiz uma única alteração na stock transformando em public pois tava dando warning 208. Sei que também há outra forma de resolver essa warning que é arrastar a stock para o topo mas preferi fazer a inversão de stock para public RE: Verificar se o player está atirando com uma arma ou não. - xbruno1000x - 01/02/2024 Tenta dessa maneira: Código: stock bool:IsPlayerShooting(playerid) Eu adicionei todas animações de pistolas, rifles e lança-foguetes a verificação. Antes eram apenas duas animações. Caso queira remover alguma, busque na documentação dentro dos intervalos Link: https://www.open.mp/docs/scripting/resources/animations RE: Verificar se o player está atirando com uma arma ou não. - BitSain - 01/02/2024 Mesma coisa, diz que não está atirando. Eu fiz um esquema pra ver a lib e o nome da animação mas os valores são Null (até mesmo o index) Código PHP: new index = GetPlayerAnimationIndex(playerid), libname[32], animname[32], formated_msg[128]; RE: Verificar se o player está atirando com uma arma ou não. - BitSain - 01/02/2024 Alguém tem outra ideia pra compartilhar? Se não aparecer mais nenhuma vou gastar um tempinho pra criar uma lógica e se der certo eu compartilho com vocês, caso contrário, tempo perdido kk. RE: Verificar se o player está atirando com uma arma ou não. - Carlos Victor - 02/02/2024 Utilize a callback OnPlayerWeaponShot, você pode usar o tick para verificar se o jogador está atirando, aliás, pode fazer várias verificações, como a quantidade de munições, arma em mão e usando a callback OnPlayerWeaponShot poderá chegar ao que você deseja. RE: Verificar se o player está atirando com uma arma ou não. - BitSain - 02/02/2024 (02/02/2024 00:55)Carlos Victor Escreveu: Utilize a callback OnPlayerWeaponShot, você pode usar o tick para verificar se o jogador está atirando, aliás, pode fazer várias verificações, como a quantidade de munições, arma em mão e usando a callback OnPlayerWeaponShot poderá chegar ao que você deseja. Isso mesmo o que eu irei fazer. Já era pra eu ter melhorado a minha lógica antes mesmo de criar o tópico. RE: Verificar se o player está atirando com uma arma ou não. - BitSain - 03/02/2024 Pra facilitar, criei uma include chamada ShotDetect. No momento está em fase primária mas já está funcionando. Qualquer bug, crie uma issue para correção do código. Não está 100% finalizada mas já vou disponibilizando para vocês: https://github.com/BitSain/SAMP-ShotDetect/ Lembrando modo de uso -> Exemplo: Código PHP: if(GetPlayerWeapon(playerid) != 0 && IsPlayerShooting(playerid)) Em breve após término completo da include irei fazer um post aqui no portalsamp.com OBS.: Explosivos e armas brancas entre outros são ignorados. Apenas pistolas, fuzis, metralhadoras e Snipers/Rifles são detectados. Mas isso pode ser alterado deixando uma tal arma como valid. RE: Verificar se o player está atirando com uma arma ou não. - Carlos Victor - 04/02/2024 Muito bom! Boa sorte. |