[Duda] Detectar daсo de caida
#1

Buenas, estaba haciendo un sistema de anticheat pero surgiу un error, ya que cuando el usuario caнa de algъn lugar, no se registraba la perdida de vida en la caida y se tomaba como hack, por lo tanto era baneado.
їExiste alguna funciуn o callback para esto? Desde ya muchas gracias.
Reply
#2

OnPlayerTakeDamage - Es llamado cuando te caes.
Reply
#3

Hacer esto estб bien?
PHP код:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid)
{
    if(
issuerid == INVALID_PLAYER_ID)
    {
        
SetPlayerHealthEx(playerid, -amount);
    }
    return 
1;

No comprendн bien el uso de OnPlayerTakeDamage
Reply
#4

OnPlayerTakeDamage en espaсol es "Cuando el jugador recibe daсo", cada vez que un jugador pierde vida la callback funciona, podrнas hacer una variable que sea por ejemplo "PerdioVida" que estй en OnPlayerTakeDamage cuando le disparan, caen y demбs y si el PerdioVida = 0 y la vida bajo kickearlo o banearlo
Reply
#5

Hice esto, me gustarнa que me dijeran si las dos funciones son correctas o no, muchas gracias.
PHP код:
public OnPlayerTakeDamage(playeridissueridFloatamountweaponid)
{
    if(
issuerid == INVALID_PLAYER_ID)
    {
        
SetPlayerHealthEx(playeridGetPlayerHealthEx(playerid) -amount);
    }
    return 
1;
}
public 
OnPlayerGiveDamage(playeriddamagedidFloatamountweaponidbodypart)
{
    if(
damagedid != INVALID_PLAYER_ID)
    {
        if(
GetPlayerArmourEx(damagedid) == 0)
        {
            
SetPlayerHealthEx(damagedidGetPlayerHealthEx(playerid) -amount);
        }
        else
        {
            
SetPlayerArmourEx(damagedidGetPlayerArmourEx(damagedid) -amount);
        }
    }
    return 
1;

Y dejo los stock, por si acaso:
PHP код:
stock SetPlayerHealthEx(playeridFloat:health)
{
    
SetPlayerHealth(playeridFloat:health);
    
Informacion[playerid][pVida] = health;
    return 
1;
}
stock SetPlayerArmourEx(playeridFloat:armour)
{
    
SetPlayerArmour(playeridarmour);
    
Informacion[playerid][pChaleco] = armour;
    return 
1;
}
stock Float:GetPlayerHealthEx(playerid)
{
    new 
Float:vida Informacion[playerid][pVida];
    return 
vida;
}
stock Float:GetPlayerArmourEx(playerid)
{
    new 
Float:chaleco Informacion[playerid][pChaleco];
    return 
chaleco;

Reply
#6

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
OnPlayerTakeDamage en espaсol es "Cuando el jugador recibe daсo", cada vez que un jugador pierde vida la callback funciona, podrнas hacer una variable que sea por ejemplo "PerdioVida" que estй en OnPlayerTakeDamage cuando le disparan, caen y demбs y si el PerdioVida = 0 y la vida bajo kickearlo o banearlo
OnPlayerTakeDamage es llamado despues de que el daсo fuese procesado.

Ghost112397, no te recomiendaria hacer esto. Hace que OnPlayerDeath se salga de control con outputs incorrectos, en veces nulos.
Reply
#7

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
OnPlayerTakeDamage es llamado despues de que el daсo fuese procesado.

Ghost112397, no te recomiendaria hacer esto. Hace que OnPlayerDeath se salga de control con outputs incorrectos, en veces nulos.
їQue sugieres hacer? Es que no tengo ni la menor idea de como hacerlo :/

їNo serнa mejor descargarme un anti-cheat del foro?
Reply
#8

Te recomiendo esto: http://forum.sa-mp.com/showthread.ph...=weapon-config + un sistema que lo hara posible.
Reply
#9

Genial, muchas gracias.
їCrees que alguno de estos tambiйn me sirva?
http://forum.sa-mp.com/showthread.ph...ght=Anti+cheat
http://forum.sa-mp.com/showthread.ph...ght=Anti+cheat
Reply
#10

Quote:
Originally Posted by Ghost112397
Посмотреть сообщение
Genial, muchas gracias.
їCrees que alguno de estos tambiйn me sirva?
http://forum.sa-mp.com/showthread.ph...ght=Anti+cheat
http://forum.sa-mp.com/showthread.ph...ght=Anti+cheat
Depende de tus necesidades, pues no te puedo decir exactamente lo que necesitas.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)