Portal SAMP
[Ajuda] Contar batidas no objeto - 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] Contar batidas no objeto (/showthread.php?tid=1386)



Contar batidas no objeto - SkolPlay - 13/07/2021

Eu peguei um exemplo de como destruir um objeto com arma, no entanto, queria saber como que faço para que o jogador atinga o objeto 10 vezes, assim, ao alcançar a meta de 10 "batidas" no objeto ele seja destruído? 

Código PHP:
public OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ)
{
if(
weaponid == WEAPON_CHAINSAW)
{
    if(hittype == BULLET_HIT_TYPE_OBJECT// vendo qual foi o tipo de acerto player ou objeto se for objeto continua
    {
        if(IsValidObject(hitid) == Object// verificando se objeto é valido
          {
          SendClientMessage(playerid, -1"Você destruiu."); // acerto objeto com tiro
          DestroyObject(Object); // removendo objeto do jogo
          }
    }
    }
    return 1;




RE: Contar batidas no objeto - xbruno1000x - 13/07/2021

Código:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
    if(weaponid == WEAPON_CHAINSAW)
    {
        if(hittype == BULLET_HIT_TYPE_OBJECT) // vendo qual foi o tipo de acerto player ou objeto se for objeto continua
        {
            if(IsValidObject(hitid) == Object) // verificando se objeto é valido
            {
            new hit;
            hit ++;
            if(hit == 10)
            {
                SendClientMessage(playerid, -1, "Você destruiu."); // acerto objeto com tiro
                DestroyObject(Object); // removendo objeto do jogo
            }
        }
    }
    return 1;
}



RE: Contar batidas no objeto - SkolPlay - 13/07/2021

Muito obrigado, +REP.


Edit: Quando eu coloco o valor de hit acima de 1, ele não destrói, mas quando deixo somente com 1, destrói normalmente, como aí você colocou 10, não destrói de maneira alguma.


RE: Contar batidas no objeto - xbruno1000x - 13/07/2021

(13/07/2021 17:15)SkolPlay Escreveu: Muito obrigado, +REP.


Edit: Quando eu coloco o valor de hit acima de 1, ele não destrói, mas quando deixo somente com 1, destrói normalmente, como aí você colocou 10, não destrói de maneira alguma.

Essa maneira não era bem a ideal, dei só como exemplo.
Pra funcionar perfeitamente, tente assim:

Código:
new Hit[MAX_PLAYERS]; // DEVE SER MAX_PLAYERS PARA NÃO HAVER CONFLITO CASO MAIS DE 1 PLAYER FAÇA A AÇÃO AO MESMO TEMPO

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(weaponid == WEAPON_CHAINSAW)
{
    if(hittype == BULLET_HIT_TYPE_OBJECT) // vendo qual foi o tipo de acerto player ou objeto se for objeto continua
    {
        if(IsValidObject(hitid) == Object) // verificando se objeto é valido
        {
            Hit[playerid] += 1; //ADICIONANDO 1 HIT A CADA BATIDA
            if(Hit[playerid] == 10)
            {
                  SendClientMessage(playerid, -1, "Você destruiu."); // acerto objeto com tiro
                   DestroyObject(Object); // removendo objeto do jogo
                   Hit[playerid] = 0; // ZERANDO OS HITS AO DESTRUIR OBJETO
               }
        }
    }
    return 1;
}