Portal SAMP
[Ajuda] player preso nascendo fora da cadeia - 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] player preso nascendo fora da cadeia (/showthread.php?tid=2128)



player preso nascendo fora da cadeia - fear - 22/02/2022

boa noite. se o player demora uns 30 segundos pra digitar a senha ele digita e spawna fora da cadeia mesmo o tempo contando.

codigo

Código PHP:
static PutPlayerInChainAdmin(playeridtime)
{

    
time gettime() + time;//(60 * time);

    
playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] = true;
    
playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] = time;

    
SetPlayerWantedLevel(playerid0);

    if(
IsPlayerCuffed(playerid))
    
UnshacklePlayer(playeridREASON_NONE);

    if(
IsPlayerArrasted(playerid))
    
ChangePlayerArrestedState(playeridGetPlayerArrastedMe(playerid), REASON_ADMIN);

    if(
IsPlayerApproached(playerid))
    
ChangePlayerApproachedState(playeridGetPlayerApproachedMe(playerid), REASON_ADMIN);

    
TogglePlayerControllable(playeridtrue);

    
SetPlayerTeam(playeridTEAM_JAIL);
    
SetPlayerClass(playeridPLAYER_CLASS_CIVIL);

    
SetPlayerInterior(playerid6);
    
ResetPlayerWeapons(playerid);
    
SetPlayerPos(playeridprisionPosition[0], prisionPosition[1], prisionPosition[2]);
    
SetPlayerFacingAngle(playeridprisionPosition[3]);
    
SetPlayerHealth(playerid99999);
    
SetCameraBehindPlayer(playerid);

    
SetTimerEx("ShowPlayerPrisionTime"900false"iii"playeridtime1);

}

static 
RemovePlayerFromChainAdmin(playerid)
{

    
SetPlayerClass(playeridPLAYER_CLASS_CIVIL);

    
SetPlayerInterior(playerid0);
    
    
SetPlayerWorld(playerid0);

    
ResetPlayerChainAdmin(playerid);

    
SavePlayerChainAdmin(playerid);

    
SpawnPlayer(playerid);

    
SetPlayerHealth(playerid100.0);

    
GameTextForPlayer(playerid"Livre"13);
}

ResetPlayerChainAdmin(playerid)
{

    
playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] = false;
    
playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] = 0;
}


call:LoadPlayerChainAdmin(playerid)
{

    if(!
IsPlayerConnected(playerid))
    return;

    if(
dir_exists(DIRECTORY_CHAIN_ADMIN))
    {


        new 
file[MAX_PLAYER_NAME 1];

        
format(filesizeof(file), PLAYER_FILE_CHAIN_ADMIN_CFGNome(playerid));

        if(
DOF2_FileExists(file))
        {


            
playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] = DOF2_GetBool(file"inChainAdmin");
            
playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] = DOF2_GetInt(file"chainTime");/* + gettime();*/

            
if(playerChainAdmin[playerid][E_PLAYER_IN_CHAIN] && playerChainAdmin[playerid][E_PLAYER_CHAIN_TIME] > 0)
            {


                
SendClientMessage(playeridCOLOR_YELLOWTEXT_PLAYER_JAIL_INCOMPLETE);
                
PutPlayerInChainAdmin(playeridplayerChainAdmin[playerid][E_PLAYER_CHAIN_TIME]);
            }
            else
            {


                
ResetPlayerChainAdmin(playerid);
                
DOF2_RemoveFile(file);
                
DOF2_SaveFile();
            }
        }
    }


alguem ajuda??


RE: player preso nascendo fora da cadeia - k2bi_YT - 22/02/2022

Coloque a função que teleporta o jogador para a cadeia sendo chamanda na public OnPlayerSpawn


RE: player preso nascendo fora da cadeia - fear - 22/02/2022

(22/02/2022 21:10)k2bi_YT Escreveu: Coloque a função que teleporta o jogador para a cadeia sendo chamanda na public OnPlayerSpawn

Resolvido. era problema no login ao demorar pra digitar o player spawnava antes assim quando digitava a senha ele spawnava fora da cadeia bugando com o tempo na tela. qualquer coisa volto a postar se voltar o mesmo bug. obrigado mesmo assim!


RE: player preso nascendo fora da cadeia - DeviceBlack - 27/02/2022

Espero que tenha consertado...
Como existe possibilidade de terem essa mesma duvida (talvez com outro propósito) vou deixar uma pequena dica:

Antes de spawnar o jogador, verifique se ele esta em condição determinada, assim voce pode usar coordenadas diferentes em SetSpawnInfo para situações diferentes

Código PHP:
// ... significa que voce deve por os seus argumentos
if(condicao == trueSetSpawnInfo(...);
else 
SetSpawnInfo(...);