[Ajuda] Os players nгo saem da cadeia admin.
#1

Tipo assim, quando um admin agenda a cadeia ou dar /cadeia mesmo, quando acaba o tempo que o player tem que ficar preso, ele nгo sai da cadeia, apenas teleporta para onde ele fica preso.
Reply
#2

Ele tenta sair e й teletransportado de volta? Vocк vai ter que procurar no "seu" GM a parte que verifica se o player saiu da cadeia sem estб livre para concertar isso. Fica difнcil ajudar sem ter as variбveis e cуdigos necessбrios.
Reply
#3

Olha o code e a mensagem de quando ele sai da cadeia.

Quote:

{
if(PlayerInfo[i][pJailTime] > 0)
{
PlayerInfo[i][pJailTime]--;
}
if(PlayerInfo[i][pJailTime] <= 0)
{
PlayerInfo[i][pJailTime] = 0;
if(PlayerInfo[i][pJailed] == 0)
{
SetPlayerInterior(i, 6);
XXAirBreak[i] += 3;SetPlayerPos(i,268.0903,77.6489,1001.0391);
}
else if(PlayerInfo[i][pJailed] == 3)
{
SetPlayerInterior(i, 0);
XXAirBreak[i] += 3;SetPlayerPos(i,-1536.3813,483.9163,7.1797);
}
else if(PlayerInfo[i][pJailed] == 33)
{
SetPlayerInterior(i, 10);
XXAirBreak[i] += 3;SetPlayerPos(i,223.5218,114.8807,999.0156);
}
else if(PlayerInfo[i][pJailed] == 9)
{
SetPlayerInterior(i, 0);
NaoPodeDigitar[i] = 0;
SetPlayerSpawn(i);
SetPlayerVirtualWorld(i, 0);
SetPlayerFacingAngle(i,270.0);
}
else if(PlayerInfo[i][pJailed] == 2 || PlayerInfo[i][pJailed] == 11 || PlayerInfo[i][pJailed] == 16)
{
XXAirBreak[i] += 3;SetPlayerPos(i, 268.1595,77.9132,1001.0391);
SetPlayerInterior(i, 3);
}
else if(PlayerInfo[i][pJailed] == 27)
{
SetPlayerInterior(i, 6);
storeexit[i] = 67;
XXAirBreak[i] += 3;SetPlayerPos(i, 268.1595,77.9132,1001.0391);
}
PlayerInfo[i][pJailed] = 0;
SendClientMessage(i, COLOR_GRAD1,"Vocк pagou sua divida com a sociedade.");
GameTextForPlayer(i, "~r~Livre~n~~w~Seja um jogador melhor", 5000, 1);
if(gTeam[i] == 4) { gTeam[i] = 3; }
ClearCrime(i);
SetPlayerToTeamColor(i);
}
}

Reply
#4

Bem, Aqui vocк seta a variбvel para 0
PHP код:
PlayerInfo[i][pJailed] = 0
Porйm bem em cima do seu cуdigo, vocк "pergunta" se a essa mesma variбvel possui o valor 0. Caso possua, vocк move o player para uma posiзгo e interior. Veja:
PHP код:
if(PlayerInfo[i][pJailed] == 0)
{
    
SetPlayerInterior(i6);
    
XXAirBreak[i] += 3;
    
SetPlayerPos(i,268.0903,77.6489,1001.0391);

Й provбvel que o erro esteja aн.
Reply
#5

Nгo deu certo.

Quote:

{
SetPlayerInterior(i, 0);
XXAirBreak[i] += 3;SetPlayerPos(i,1219.1779,-1693.2478,19.7344);
}

Reply
#6

Vocк nгo precisa verificar se o player estб livre para poder libertб-lo. Use essas funзхes apуs setar a variбvel para 0.
Considerando que as coordenadas presentes na funзгo SetPlayerPos sejam da porta da cadeia ou algo do tipo, basta fazer:
PHP код:
PlayerInfo[i][pJailed] = 0;
SetPlayerInterior(i0);
XXAirBreak[i] += 3;SetPlayerPos(i,1219.1779,-1693.2478,19.7344);
SendClientMessage(iCOLOR_GRAD1,"Vocк pagou sua divida com a sociedade."); 
Reply
#7

Consegui, sу que ficou dando este erro quando ele sai da cadeia.

http://imgur.com/gallery/SeHya/new
Reply
#8

Bem... Vocк poderia ter feito seu cуdigo de uma maneira melhor e mais fбcil. Acho que entendi o que vocк quer fazer. Tente desse jeito:
PHP код:
if(!(--PlayerInfo[i][pJailTime]) && PlayerInfo[i][pJailed])
{
    switch(
PlayerInfo[i][pJailed])
    {
        case 
3:
        {
            
SetPlayerInterior(i0);
            
XXAirBreak[i] += 3;
            
SetPlayerPos(i,-1536.3813,483.9163,7.1797);
        }
        case 
33:
        {
            
SetPlayerInterior(i10);
            
XXAirBreak[i] += 3;
            
SetPlayerPos(i,223.5218,114.8807,999.0156);
        }
        case 
9:
        {
            
SetPlayerInterior(i0);
            
NaoPodeDigitar[i] = 0;
            
SetPlayerSpawn(i);
        }
        case 
21116:
        {
            
SetPlayerInterior(i3);
            
XXAirBreak[i] += 3;
            
SetPlayerPos(i268.1595,77.9132,1001.0391);
        }
        case 
27:
        {
            
SetPlayerInterior(i6);
            
storeexit[i] = 67;
            
XXAirBreak[i] += 3;
            
SetPlayerPos(i268.1595,77.9132,1001.0391);
        }
        default:
        {
            
SetPlayerInterior(i6);
            
XXAirBreak[i] += 3;
            
SetPlayerPos(i,268.0903,77.6489,1001.0391);
        }
    }
    
PlayerInfo[i][pJailed] = 0;
    
SetPlayerVirtualWorld(i0);
    
SendClientMessage(iCOLOR_GRAD1,"Vocк pagou sua divida com a sociedade.");
    
GameTextForPlayer(i"~r~Livre~n~~w~Seja um jogador melhor"50001);
    if(
gTeam[i] == 4gTeam[i] = 3;
    
ClearCrime(i);
    
SetPlayerToTeamColor(i);

Reply
#9

Tou vendo aqui, se der certo dou 5 estrelas.
Reply
#10

Colocou em q callback? OnPlayerUpdate? ou uma atualizбvel de 1 em 1 segundo... Sу se for isso pq nгo pode floodar assim a menos q teja em uma callback q atualiza de 1 em 1 segundo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)