[Ajuda]OnPlayerTakeDamage
#1

Boas

Estou tentando fazer uma zona em que nгo se consegue matar,
mais ou menos atй esta funcionando mas...

Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    

    if(IsPlayerInArea(playerid,2008.2567,1907.5319,1227.3151,1111.2321))
    {
    
    new Float:armour;
    new Float:hp;
    GetPlayerHealth(playerid, hp);
    GetPlayerArmour(playerid, armour);
    if (armour > 1.0)
    {
    SetPlayerArmour(playerid,amount+armour);
    }
    if (armour < 1.0)
    {
    SetPlayerHealth(playerid,amount+hp);
    }

    }

    return 1;
}
Eu para testar fui a essa area(IsPlayerInArea...) com a barra de vida a 50HP e saltei de um lugar mais alto onde desconta 4HP

Era Suposto ficar com 46HP depois segundo o codigo recebia 4HP(amount) e ficava com os 50HP.
Mas o que acontece й que quando fasso o teste fico com 54HP.

O codigo parece todo correcto e atй me parece algo facil mas...

Alguem me pode ajudar
Reply
#2

Mais fбcil utilizar o GetPlayerTargetPlayer
Reply
#3

Obrigado pela resposta.

Mas ainda assim preferia fazer com OnPlayerTakeDamage porque em caso de grenade ou flame o GetPlayerTargetPlayer nao vai ajudar
Reply
#4

Quote:
Originally Posted by telmo_ferreira
Посмотреть сообщение
Obrigado pela resposta.

Mas ainda assim preferia fazer com OnPlayerTakeDamage porque em caso de grenade ou flame o GetPlayerTargetPlayer nao vai ajudar
Mais ai jб seria apelaзгo Хo.
Reply
#5

apelaзгo
como assim nao percebi
Reply
#6

Oks, portuga...

Isso jб й exagero usar granadas. Mais pro flammer adianta sim, pois ele precisa mirar.
Reply
#7

Resolvido...

Basta ficar assim, da outra forma nгo descontava dano e ainda acrescentava o que deveria retirar

Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    

    if(IsPlayerInArea(playerid,2008.2567,1907.5319,1227.3151,1111.2321))
    {
    
    new Float:armour;
    new Float:hp;
    GetPlayerHealth(playerid, hp);
    GetPlayerArmour(playerid, armour);
    SetPlayerArmour(playerid,armour);
    SetPlayerHealth(playerid,hp);
    

    }

    return 1;
}
Reply
#8

Quote:
Originally Posted by telmo_ferreira
Посмотреть сообщение
Resolvido...

Basta ficar assim, da outra forma nгo descontava dano e ainda acrescentava o que deveria retirar

Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
    

    if(IsPlayerInArea(playerid,2008.2567,1907.5319,1227.3151,1111.2321))
    {
    
    new Float:armour;
    new Float:hp;
    GetPlayerHealth(playerid, hp);
    GetPlayerArmour(playerid, armour);
    SetPlayerArmour(playerid,armour);
    SetPlayerHealth(playerid,hp);
    

    }

    return 1;
}
Vocк testou isso bem?
Reply
#9

Sim e desta ultima forma o cуdigo funciona bem!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)