Portal SAMP
[Ajuda] Sistema Morte - 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] Sistema Morte (/showthread.php?tid=3748)

Páginas: 1 2


Sistema Morte - Aranha - 03/07/2023

como detectar quando player cair de lugares altos para setar life?


RE: Sistema Morte - Dr Editor - 04/07/2023

Detectar a posição Z do jogador com um timer e em cima disso verificar se a posição Z está caindo gradativamente e com isso você detecta a queda.
Isso também é utilizado para anticheater de godmode/no-fall.


RE: Sistema Morte - Aranha - 04/07/2023

oq acontece jogadores cai de lugares altos nao perde life
nao sei como pegar isso para perder life ou ate morrer


RE: Sistema Morte - xbruno1000x - 04/07/2023

Está usando a include weapon config? Ela que costuma dar problema com esses danos de queda.


RE: Sistema Morte - Aranha - 04/07/2023

(04/07/2023 19:12)xbruno1000x Escreveu: Está usando a include weapon config? Ela que costuma dar problema com esses danos de queda.

Pior q nao 

Código:
#include <a_samp>
#include <fixes>
#include <timerfix>
#include <DOF2>
#include <a_zones>
#include <easyDialog>
#include <streamer>
#include <sscanf2>
#include <foreach>
#include <strlib>
#include <zcmd>
#include <mapandreas>
#include <progress2>
#include <SKY> // Alias Custom Damage
#include <cpstream>
#include <sampvoice>



RE: Sistema Morte - White_Blue - 04/07/2023

Você está usando a include SKY que se eu não estou enganado, é uma include que trás algumas correções(Tais como dano das armas) e pode ser a causa do seu problema.


RE: Sistema Morte - Aranha - 04/07/2023

Tirei a include SKY e continua Sad


RE: Sistema Morte - White_Blue - 04/07/2023

(04/07/2023 19:58)Aranha Escreveu: Tirei a include SKY e continua Sad

Isso é estranho. Você está usando a callback OnPlayerTakeDamage no seu script?


RE: Sistema Morte - Aranha - 04/07/2023

(04/07/2023 20:02)White_Blue Escreveu:
(04/07/2023 19:58)Aranha Escreveu: Tirei a include SKY e continua Sad

Isso é estranho. Você está usando a callback OnPlayerTakeDamage no seu script?

Código:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)//Sofreu dano
{


    if(issuerid != INVALID_PLAYER_ID)
    {


        if(MinutosMorte[playerid] > 0 || SegundosMorte[playerid] > 0)
        {


            SetPlayerHealth(playerid, 1000000.0);
        }
        else if(bodypart == 9 && weaponid == 34 && HorasPreso[playerid] <= 0 && MinutosPreso[playerid] <= 0 && SegundosPreso[playerid] <= 0)// && NivelAdmin[playerid] <= 0)
        {

            new Float:Health; GetPlayerHealth(playerid, Health);
            SetPlayerHealth(playerid, Health-98);
            //            GiveProcurado(killerid, 5);
            GameTextForPlayer(playerid, "~r~HEADSHOT", 3000, 3); // ???? ???? ?????? ?? ???? ???? ?? ?? ???
            new Hora, Minuto, Segundo; gettime(Hora, Minuto, Segundo);
            format(String, sizeof(String), "| DANO | O(A) Jogador(a) {FF0000}%s[%d] {FFFFFF}acertou um tiro na sua cabeca ( %02d:%02d:%02d ) ", PlayerName(issuerid), issuerid, Hora, Minuto, Segundo);
        }
    }
    else
    {


        if((gettime() - Flooder[playerid]) >= 5)
        {


            new Hora, Minuto, Segundo; gettime(Hora, Minuto, Segundo);
            format(String, sizeof(String), "| DANO | O(A) Jogador(a) {FF0000}%s[%d] {FFFFFF}atingiu voce ( %02d:%02d:%02d ) ", PlayerName(issuerid), issuerid, Hora, Minuto, Segundo);
            if(ORG[issuerid] >= 0)
            {


                new StrOrg[32]; format(StrOrg, sizeof(StrOrg), "( ORG: %s )", gNome[ORG[issuerid]]);
                strcat(String, StrOrg);
            }
            SendClientMessage(playerid, -1, String);
            if(bodypart == 7 || bodypart == 8)
            {


                MsgAviso(playerid, 5, "~w~VOCE LEVOU UM TIRO NA PERNA");
            }
            Flooder[playerid] = gettime();
        }
    }
    return 1;
}



RE: Sistema Morte - White_Blue - 04/07/2023

(04/07/2023 20:12)Aranha Escreveu:
(04/07/2023 20:02)White_Blue Escreveu:
(04/07/2023 19:58)Aranha Escreveu: Tirei a include SKY e continua Sad

Isso é estranho. Você está usando a callback OnPlayerTakeDamage no seu script?

Código:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)//Sofreu dano
{


    if(issuerid != INVALID_PLAYER_ID)
    {


        if(MinutosMorte[playerid] > 0 || SegundosMorte[playerid] > 0)
        {


            SetPlayerHealth(playerid, 1000000.0);
        }
        else if(bodypart == 9 && weaponid == 34 && HorasPreso[playerid] <= 0 && MinutosPreso[playerid] <= 0 && SegundosPreso[playerid] <= 0)// && NivelAdmin[playerid] <= 0)
        {

            new Float:Health; GetPlayerHealth(playerid, Health);
            SetPlayerHealth(playerid, Health-98);
            //            GiveProcurado(killerid, 5);
            GameTextForPlayer(playerid, "~r~HEADSHOT", 3000, 3); // ???? ???? ?????? ?? ???? ???? ?? ?? ???
            new Hora, Minuto, Segundo; gettime(Hora, Minuto, Segundo);
            format(String, sizeof(String), "| DANO | O(A) Jogador(a) {FF0000}%s[%d] {FFFFFF}acertou um tiro na sua cabeca ( %02d:%02d:%02d ) ", PlayerName(issuerid), issuerid, Hora, Minuto, Segundo);
        }
    }
    else
    {


        if((gettime() - Flooder[playerid]) >= 5)
        {


            new Hora, Minuto, Segundo; gettime(Hora, Minuto, Segundo);
            format(String, sizeof(String), "| DANO | O(A) Jogador(a) {FF0000}%s[%d] {FFFFFF}atingiu voce ( %02d:%02d:%02d ) ", PlayerName(issuerid), issuerid, Hora, Minuto, Segundo);
            if(ORG[issuerid] >= 0)
            {


                new StrOrg[32]; format(StrOrg, sizeof(StrOrg), "( ORG: %s )", gNome[ORG[issuerid]]);
                strcat(String, StrOrg);
            }
            SendClientMessage(playerid, -1, String);
            if(bodypart == 7 || bodypart == 8)
            {


                MsgAviso(playerid, 5, "~w~VOCE LEVOU UM TIRO NA PERNA");
            }
            Flooder[playerid] = gettime();
        }
    }
    return 1;
}

Citar:
Código:
  if(MinutosMorte[playerid] > 0 || SegundosMorte[playerid] > 0)
       {

            SetPlayerHealth(playerid, 1000000.0);

        }

Esse código acima poderia ter algo a ver. Não tenho certeza, mas é a única coisa que vejo de estranho nessa callback mas não entendi exatamente para que você está usando essa parte do código.