Portal SAMP
[Ajuda] Como posso anular o dano de um veículo recebe? - 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] Como posso anular o dano de um veículo recebe? (/showthread.php?tid=2149)



Como posso anular o dano de um veículo recebe? - EooRett - 28/02/2022

Como posso anular o dano que o veículo recebe e atribuir este dano nesta variável até ela zerar? Apos zerar o veiculo tomaria dano normalmente.
Código PHP:
E_DADOS_VEICULOS[vehicleid][Blindagem



RE: Como posso anular o dano de um veículo recebe? - ipsLuan - 01/03/2022

Código PHP:
if(E_DADOS_VEICULOS[vehicleid][Blindagem] >= 1// tem blindagem
{
  
E_DADOS_VEICULOS[vehicleid][Blindagem] -= danoSofrido[vehicleid];
  
RepairVehicle(vehicleid);


A lógica é igual a acima.


RE: Como posso anular o dano de um veículo recebe? - xbruno1000x - 01/03/2022

Citar:A vida máxima do veículo é 1000. Valores maiores são possíveis.

retirado de https://open.mp/pt/docs/scripting/functions/SetVehicleHealth


Isso significa que se você utilizasse um veículo com 1000 de vida e, utilizasse o SetVehicleHealth para setar para 2000, o veículo ficaria com 1000 de lataria + 1000 de blindagem. Quando os 1000 extras acabarem, os 1000 da lataria voltariam a diminuir.

Creio que com a própria função nativa dê pra fazer isso. (exceto em casos que a blindagem seja muito alta, pois deixaria o veículo indestrutível.)


RE: Como posso anular o dano de um veículo recebe? - EooRett - 01/03/2022

como eu posso pegar o dano que o veículo recebe? é possível fazer isto?


RE: Como posso anular o dano de um veículo recebe? - xbruno1000x - 01/03/2022

(01/03/2022 17:28)EooRett Escreveu: como eu posso pegar o dano que o veículo recebe? é possível fazer isto?

Use GetVehicleHealth para armazenar a vida em uma variável antes do player bater o veículo. Depois é so subtrair a nova da antiga.

Código:
new Float: LatariaAntiga;
new Float: LatariaAtual;

GetVehicleHealth(vehicleid, LatariaAntiga);

new Float: Dano = LatariaAntiga - GetVehicleHealth(vehicleid, LatariaAtual);
A lógica é tipo essa.

Documentação:
https://open.mp/pt/docs/scripting/functions/GetVehicleHealth