Portal SAMP
[Ajuda] Player ir preso e salvar o mundo em que ele estava - 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 ir preso e salvar o mundo em que ele estava (/showthread.php?tid=1967)



Player ir preso e salvar o mundo em que ele estava - fear - 20/12/2021

boa tarde, estou com o problema que eu dou cadeia pra um player ele e setado pro mundo 0 no caso não esta salvando o mundo em que ele estava retorna sempre pro 0 quando eu do cadeia e quando ele e liberado da cadeia ele vai pro 0 queria que ele ficasse no mesmo mundo em que estava e na hora que ele fosse solto tb..

tentei assim e não foi..

Código PHP:
SetPlayerVirtualWorld(playeridMundo[playerid]);

SetPlayerWorld(playeridworld)
{
    
Mundo[playerid] = world;
    
SetPlayerVirtualWorld(playeridworld);


CMD CADEIA:

Código PHP:
CMD:cadeia(playeridparams[])
{
    if(
ChecarPermissoes(playerid) || AdmServer(playerid1)) return 1;

    new 
idtimemotive[55 + (MAX_PLAYER_NAME 2) + 19 1];

    if(
sscanf(params"uis[400]"idtimemotive))
        return 
SendClientMessage(playeridCOLOR_YELLOW"<!> {FFFFFF}Use: /Cadeia <id> <tempo em minutos> <motivo>");

    if(!
IsPlayerConnected(id))
        return 
SendClientMessage(playeridCOLOR_YELLOW"<!> {FFFFFF}Esse jogador não está conectado!");

    if(
ContaPlayer[id][Level] > 0)
        return 
SendClientMessage(playeridCOLOR_YELLOW"<!> {FFFFFF}Você não pode dar cadeia em administradores!");

    if(
IsPlayerInChainAdmin(id))
        return 
SendClientMessage(playeridCOLOR_YELLOW"<!> {FFFFFF}Esse jogador já está na cadeia admin! Para tira-lo Use: /Rcadeia <id> <motivo>");

    
PutPlayerInChainAdmin(idtime 60);

    
format(motivesizeof(motive), "Admin %s prendeu %s na CADEIA ADMIN por %d minuto%s. Motivo: %s."Nome(playerid), Nome(id), time, (time == 1) ? ("") : ("s"), motive);
    
MsgToAll(0xFF444499motive);
    return 
1;

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);

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

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

}

static 
RemovePlayerFromChainAdmin(playerid)
{
    
SetPlayerTeam(playeridGetTeamOfPlayer(playerid));

    
SetPlayerInterior(playerid0);

    
ResetPlayerChainAdmin(playerid);

    
SavePlayerChainAdmin(playerid);

    
SetPlayerVirtualWorld(playeridMundo[playerid]);

    
SpawnPlayer(playerid);

    
SetPlayerHealth(playerid100.0);

    
GameTextForPlayer(playerid"Livre"13);




RE: Player ir preso e salvar o mundo em que ele estava - fear - 21/12/2021

Resolvido. coloquei pra setar a classe civil quando spawnar depois da cadeia. assim ele não fica com classe proibida no mundo principal.