#DaNiLiN Posted September 11, 2018 Share Posted September 11, 2018 (edited) Olá quero criar um job diferente, ao invés de ir no marker e "addCommandHandler" ou "onMarkerHit", ter que apagar fogos de um local com o caminhão de bombeiro, para depois poder apagar o próximo fogo... Ajudem Por Favor Edited September 11, 2018 by danilin Link to comment
Other Languages Moderators Lord Henry Posted September 11, 2018 Other Languages Moderators Share Posted September 11, 2018 Boa sorte amiguinho. Já tive essa ideia também, mas tive que parar de criar jobs para fazer manutenção dos outros resources. Link to comment
#DaNiLiN Posted September 11, 2018 Author Share Posted September 11, 2018 Se eu conseguir te dou rs kkk Link to comment
Other Languages Moderators Lord Henry Posted September 11, 2018 Other Languages Moderators Share Posted September 11, 2018 Nah... Eu prefiro fazer meu próprio, usando createFire. Link to comment
#DaNiLiN Posted September 11, 2018 Author Share Posted September 11, 2018 sim, porém como vai verificar se o fogo foi apagado pra poder apagar o próximo fogo :\ Link to comment
Other Languages Moderators androksi Posted September 11, 2018 Other Languages Moderators Share Posted September 11, 2018 Opa, e aí. Então, não sei se minha lógica tá correta, mas vamos lá. Você pode fazer uma gambiarra pra isso funcionar, com a seguinte receita de bolo: crie um pedestre, deixando-o com opacidade 0 (invisível), use também createFire para aplicar o fogo nesse pedestre. Feito isso, você pode verificar do lado client, usando onClientPedDamage se a arma que o jogador está usando para "atacar" (apagar o fogo) é o extintor. E, quando a vida do ped for menor que 0, você pode destruir o source(o pedestre) e o fogo, e então fazer um trigger para o lado server, dando uma recompensa ou sei lá o que você pretende. Nunca coloquei em prática essa lógica, então não sei se pode funcionar, mas teste-a. Link to comment
Other Languages Moderators Lord Henry Posted September 12, 2018 Other Languages Moderators Share Posted September 12, 2018 3 hours ago, MaligNos said: extinguishFire() Ele não quer saber como faz pra destruir o fogo, ele quer saber como faz para detectar que o fogo foi destruído pelo extintor. Ativando alguma função quando isso acontecer. Link to comment
[M]ister Posted September 12, 2018 Share Posted September 12, 2018 Ah sim. @danilin, você pode usar o evento: onClientPlayerWeaponFire identificando a arma (se igual a extintor) e obtendo a localização (x,y,z) do alvo e usando nos parâmetros do extinguishFire(x,y,z,radius) que então caso retorne true o fogo foi apagado. Link to comment
#DaNiLiN Posted September 12, 2018 Author Share Posted September 12, 2018 a vou tenta dessa forma Link to comment
Other Languages Moderators Lord Henry Posted September 13, 2018 Other Languages Moderators Share Posted September 13, 2018 (edited) 22 hours ago, MaligNos said: Ah sim. @danilin, você pode usar o evento: onClientPlayerWeaponFire identificando a arma (se igual a extintor) e obtendo a localização (x,y,z) do alvo e usando nos parâmetros do extinguishFire(x,y,z,radius) que então caso retorne true o fogo foi apagado. extinguishFire sempre retornará true, mesmo que não haja fogo no local. Só retorna false se houver algum parâmetro errado. Edited September 13, 2018 by Lord Henry Link to comment
[M]ister Posted September 13, 2018 Share Posted September 13, 2018 1 hour ago, Lord Henry said: extinguishFire sempre retornará true, mesmo que não haja fogo no local. Só retorna false se houver algum parâmetro errado. Faz sentido, inclusive já meio que supos que isso ocorreria antes mesmo comentar (tô sem MTA, ai complica testes desse tipo) Basta ele salvar as posições (x,y,z) utilizadas no createFire() e então no evento onClientPlayerWeaponFire verificar se a posição que está "atirando" com o extintor coincide com as utilizadas no createFire() (seria bom utilizar alguma taxa de variação ( parâmetro size do createFire() ) em relação ao eixo central x,y,z na verificação, pois se não para apagar o fogo iria ter que mirar exatamente na coordenada x,y,z de criação do fogo) e então caso a verificação seja true usa o extinguishFire() Link to comment
Other Languages Moderators Lord Henry Posted September 13, 2018 Other Languages Moderators Share Posted September 13, 2018 Estou fazendo uns testes aqui e estou conseguindo. Estou fazendo a coordenada com variação de 1 para os lados X, Y e Z. (Se o fogo está na posição 0, 0, 0 ele acerta até nas posições -1, -1, -1 até as posições 1, 1, 1. Para facilitar esse cálculo, estou transformando as coordenadas em inteiros durante a verificação usando math.floor O fogo não é um elemento, portanto não tem como usar getElementHealth nele. Então estou usando uma variável para estocar a "vida" do fogo. Acertando no fogo diminui a vida em 1. Quando chegar em 0, usa o extinguishFire e ativa a função de vitória. O único problema que ainda estou tendo é que as vezes o jogador apaga o fogo com o extintor, mas ainda tem vida restante na variável, então o fogo não é visível mas ainda está sendo considerado vivo pelo script. Estou usando a vida de 60%, geralmente funciona perfeitamente e o fogo é apagado com sucesso. Além de tudo isso, estou usando alguns dxDrawText na tela para informar ao jogador a quantidade de vida do fogo e informar se ele está acertando ou errando o alvo. Também estou usando um createColSphere para que o fogo só apareça quando o jogador colidir nele, dessa forma o fogo só é criado quando o jogador chega perto, pois se demorar demais o fogo apaga sozinho. Enfim, o código não está tão grande mas está um tanto complexo. Link to comment
[M]ister Posted September 13, 2018 Share Posted September 13, 2018 Realmente essa questão da vida do fogo é algo a ser pensado, pois pelo meu comentário anterior provavelmente o fogo iria apagar rápido (logo que atirasse ia ser acionado o extinguishFire e então apagaria) não ia ter a "graça" de ficar com o extintor um certo tempo até apagar. Talvez definir que com x acertos do onClientPlayerWeaponFire reduziria o tamanho do fogo aos poucos, começa com createFire(x,y,z,10) e com o tempo vai decrementando... x == 10 createFire(x,y,z,10) extinguishFire(x,y,z,10) x == 20 createFire(x,y,z,9) extinguishFire(x,y,z,9) Link to comment
Other Languages Moderators Lord Henry Posted September 13, 2018 Other Languages Moderators Share Posted September 13, 2018 Entendi o que vc quis dizer. Mas acho que ficar apagando e criando um fogo novo o tempo todo seria muito pesado. Sem contar que é perceptível que "nasce" um fogo novo. Link to comment
#DaNiLiN Posted September 17, 2018 Author Share Posted September 17, 2018 Confundir as teclas amigo, e não tem a opção de renomear o texto. mais tenho certeza que você entendeu que a palavra correta e bombeiro Link to comment
Other Languages Moderators Lord Henry Posted September 18, 2018 Other Languages Moderators Share Posted September 18, 2018 (edited) Existe a opção de editar. Mas ela só é visível por um curto período depois de postar, creio que até 5 minutos. Após esse tempo, não é mais possível editar. Ela aparece do lado da opção de Quote. Edited September 18, 2018 by Lord Henry Link to comment
#DaNiLiN Posted September 18, 2018 Author Share Posted September 18, 2018 5 hours ago, danilin said: Confundir as teclas amigo, e não tem a opção de renomear o texto. mais tenho certeza que você entendeu que a palavra correta e bombeiro On 11/09/2018 at 02:16, danilin said: Olá quero criar um job diferente, ao invés de ir no marker e "addCommandHandler" ou "onMarkerHit", ter que apagar fogos de um local com o caminhão de bombeiro, para depois poder apagar o próximo fogo... Ajudem Por Favor Link to comment
Other Languages Moderators Lord Henry Posted September 18, 2018 Other Languages Moderators Share Posted September 18, 2018 E como vai o job? Algum progresso? Vc tentou alguma das coisas que falamos? O que exatamente você não está conseguindo fazer nele? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now