SA-MP Forums Archive
[Ajuda] NO-LAG - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] NO-LAG (/showthread.php?tid=448280)



NO-LAG - NuTShoT - 03.07.2013

Olб, boa tarde!!!

Estou usando este cуdigo, porem os kills nгo estгo atribuindo corretamente...
Me ajudem:

pawn Код:
#include <alss>

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
    new Float:HP, Float:Colete, Float:Dano;
    GetPlayerArmour(damagedid, Colete);
    GetPlayerHealth(damagedid, HP);
    if(weaponid == 24){amount = 10;}//eagle
    if(weaponid == 23){amount = 50;}//silencedcolt
    if(Colete > 0)
    {
        if(amount > Colete)
        {
            Dano = amount - Colete;
            HP = HP - Dano;
            SetPlayerArmour(damagedid, 0.0);
            SetPlayerHealth(damagedid, HP);
            return 1;
        }
        Colete = Colete - amount;
        SetPlayerArmour(damagedid, Colete);
    }
    if(Colete < 1)
    {
        HP = HP - amount;
        SetPlayerHealth(damagedid, HP);
    }
    return 1;
}
Obrigado!


Respuesta: NO-LAG - DartakousLien - 03.07.2013

uma vez eu li que nao se deve confiar no OnPlayerGiveDamage, creio que a propria wiki diz o mesmo!
use OnPlayerTakeDamage


Re: NO-LAG - NuTShoT - 03.07.2013

Olб, boa tarde!

DartakousLien, me ajude por favor! So mudar o nome ali ?! Para "OnPlayerTakeDamage" ?!

Vlw!


Re: NO-LAG - DannielCooper - 03.07.2013

Sim, mude o nome da callback de OnPlayerGiveDamage para OnPlayerTakeDamage. E tambйm mude a forward OnPlayerGiveDamage para OnPlayerTakeDamage.


Re: NO-LAG - ProKillerpa - 03.07.2013

Quote:
Originally Posted by DannielCooper
Посмотреть сообщение
Sim, mude o nome da callback de OnPlayerGiveDamage para OnPlayerTakeDamage. E tambйm mude a forward OnPlayerGiveDamage para OnPlayerTakeDamage.
Depois fala que sabe codar nй!
Mudar o nome de forward? Que forward oque! OnPlayerGiveDamage e OnPlayerTakeDamage ambas sгo funзхes nativas do samp.



Re: NO-LAG - DannielCooper - 03.07.2013

Quote:
Originally Posted by ProKillerpa
Посмотреть сообщение
Depois fala que sabe codar nй!
Mudar o nome de forward? Que forward oque! OnPlayerGiveDamage e OnPlayerTakeDamage ambas sгo funзхes nativas do samp.
Eu acho que em burrice, vocк se empata com a porta, sу acho.


Re: NO-LAG - NuTShoT - 03.07.2013

Olб, boa noite!

Nгo funcionou. Deu alguns erros.

Vlw!


Re: NO-LAG - ProKillerpa - 03.07.2013

Posta os erros, pois as callback's tem definiзхes padrхes diferentes...


Respuesta: Re: NO-LAG - DartakousLien - 03.07.2013

Quote:
Originally Posted by DannielCooper
Посмотреть сообщение
Eu acho que em burrice, vocк se empata com a porta, sу acho.
voce sabe o que que esta falando? nem vou comentar! vai que й doenзa

@TOPIC
nao cara, tem que trocar o nome da callback insverter os valores de playerid e damagedid, se procurasse na wiki seria mais facil, mas eu vou editar seu codigo! sу um instante

@EDIT

pawn Код:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
{
    if(issuerid != INVALID_PLAYER_ID)
    {
        new Float:HP, Float:Colete;//, Float:Dano;
        GetPlayerArmour(playerid, Colete);
        GetPlayerHealth(playerid, HP);
        if(weaponid == 24){amount = 10;}//eagle
        if(weaponid == 23){amount = 50;}//silencedcolt
        if(Colete > 0)
        {
            if(amount > Colete)
            {
                //Dano = amount - Colete;
                //HP = HP - Dano;
                SetPlayerArmour(playerid, 0.0);
                SetPlayerHealth(playerid, HP - (amount - Colete));//dessa forma й mais seguro
                return 1;
            }
            //Colete = Colete - amount;
            SetPlayerArmour(playerid, Colete - amount);
        }
        else//nao precisa de usar if(Colete < 1) aqui pode usar o else
        {
            //HP = HP - amount;
            SetPlayerHealth(playerid, HP - amount);
        }
    }
    return 1;
}