Portal SAMP
[Ajuda] Sistema de morte - Crashado - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP Mobile (https://portalsamp.com/forumdisplay.php?fid=11)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=12)
+--- Tópico: [Ajuda] Sistema de morte - Crashado (/showthread.php?tid=4604)



Sistema de morte - Crashado - Harald - 07/03/2024

Preciso de uma ajuda no sistema de morte, Quando eu morro no mobile, Eu acabo Crashado, mais se eu morro no PC, Acontece o que é pra acontecer, Ir pro Hospital.

Código:
Código:
public OnPlayerSpawn(playerid)
{
 if(Player[playerid][pMorreu] == 1)
 {
     SetPlayerHealth(playerid, 1);
     SetPlayerPos(playerid, 1151.4218,-1314.0159,-43.3857);
     SetPlayerFacingAngle(playerid, 357.6556);
     Player[playerid][pRecuperando] = 1;
     TimerHospital[playerid] = SetTimerEx("Recuperando", 4000, true, "d", playerid);
     TogglePlayerControllable(playerid, 0);
  GameTextForPlayer(playerid, "Recuperando...", 5000, 5);
 }
 SetTimerEx("TempoFome", 1232, true, "d", playerid);
 SetTimerEx("TempoSede", 1230, true, "d", playerid);
 return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
 Player[playerid][pMorreu] = 1;
 return 1;
}

O ngc do Tempo(Recuperando)

forward Recuperando(playerid);
public Recuperando(playerid)
{
if(Player[playerid][pRecuperando] == 0) return 1;
new Float:vida;
GetPlayerHealth(playerid, vida);
SetPlayerHealth(playerid, vida + 20);
GameTextForPlayer(playerid, "Recuperando...", 5000, 5);
if(vida >= 100)
{
    GameTextForPlayer(playerid, "~g~Recuperado", 5000, 5);
Player[playerid][pMorreu] = 0;
Player[playerid][pRecuperando] = 0;
TogglePlayerControllable(playerid, 1);
KillTimer(TimerHospital[playerid]);
}
return 1;
}



RE: Sistema de morte - Crashado - Maycon_Felipe - 07/03/2024

Bom, meu principal suspeito ai é o GameTextForPlayer, mas não sei tmb o q tem dentro do OnPlayerDeath por completo ou do Recuperando.

Coloca tudo em um comando e testa no mobile, ou adiciona print(""); para debug e vê até onde vai no console qnd o mobile crashar.
Código:
CMD:testemorte(playerid)
{
    print("Chamou 1");
    SetPlayerHealth(playerid, 1);
    SetPlayerPos(playerid, 1151.4218,-1314.0159,-43.3857);
    SetPlayerFacingAngle(playerid, 357.6556);
    print("Chamou 2");
    Player[playerid][pRecuperando] = 1;
    TimerHospital[playerid] = SetTimerEx("Recuperando", 4000, true, "d", playerid);
    TogglePlayerControllable(playerid, 0);
    print("Chamou 3");
    GameTextForPlayer(playerid, "Recuperando...", 5000, 5);
    print("Chamou 4");
    return 1;
}



RE: Sistema de morte - Crashado - Harald - 07/03/2024

No PC tá pegando de boa manin, o problema deve ser falta de um GameTextForPlayer é?


RE: Sistema de morte - Crashado - Notknown - 07/03/2024

(07/03/2024 16:02)Harald Escreveu: Preciso de uma ajuda no sistema de morte, Quando eu morro no mobile, Eu acabo Crashado, mais se eu morro no PC, Acontece o que é pra acontecer, Ir pro Hospital.

Código:

public OnPlayerSpawn(playerid)
{
 if(Player[playerid][pMorreu] == 1)
 {
     SetPlayerHealth(playerid, 1);
     SetPlayerPos(playerid, 1151.4218,-1314.0159,-43.3857);
     SetPlayerFacingAngle(playerid, 357.6556);
     Player[playerid][pRecuperando] = 1;
     TimerHospital[playerid] = SetTimerEx("Recuperando", 4000, true, "d", playerid);
     TogglePlayerControllable(playerid, 0);
  GameTextForPlayer(playerid, "Recuperando...", 5000, 5);
 }
 SetTimerEx("TempoFome", 1232, true, "d", playerid);
 SetTimerEx("TempoSede", 1230, true, "d", playerid);
 return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
 Player[playerid][pMorreu] = 1;
 return 1;
}

O ngc do Tempo(Recuperando)

forward Recuperando(playerid);
public Recuperando(playerid)
{
if(Player[playerid][pRecuperando] == 0) return 1;
new Float:vida;
GetPlayerHealth(playerid, vida);
SetPlayerHealth(playerid, vida + 20);
GameTextForPlayer(playerid, "Recuperando...", 5000, 5);
if(vida >= 100)
{
    GameTextForPlayer(playerid, "~g~Recuperado", 5000, 5);
Player[playerid][pMorreu] = 0;
Player[playerid][pRecuperando] = 0;
TogglePlayerControllable(playerid, 1);
KillTimer(TimerHospital[playerid]);
}
return 1;
}

Um Tempo atras estava com esse mesmo problema, e isso resolveu para mim


de uma olhada nisso: https://portalsamp.com/showthread.php?tid=1830