[Ajuda] Prender
#1

Se o player sai do server preso, й salvo o tempo que faltava pra ele ser preso.

Mais nгo estб sendo preso quando spawna..

pawn Код:
new Jtimer[MAX_PLAYERS],      //Unjail tempo
    JPlayer[MAX_PLAYERS];     //Jail tempo

//OnPlayerSpawn

if(DOF2_GetInt(arq,"Jailed") == 1)
    {
        SendClientMessage(playerid,cor_vermelho,"Vocк ainda estб preso!");
        if(PlayerInfo[playerid][JailedTime] >= 1)
        {
            Jtimer[playerid] = SetTimerEx("Unjail",PlayerInfo[playerid][JailedTime]*1000*60,0,"u",playerid);
        }
    }

CMD:jail(playerid,params[])
{
    new
        playerID,
        Tempo,
        Motivo[75],
        acstr[200]
    ;

    if(PlayerInfo[playerid][Admin] < 2) return SendClientMessage(playerid,cor_vermelho,"Vocк nгo tem permissгo para isso.");
    if(sscanf(params,"uis",playerID,Tempo,Motivo)) return SendClientMessage(playerid,cor_vermelho,"Use: /jail [playerid] [tempo] [motivo]");
    if(!IsPlayerConnected(playerID)) return SendClientMessage(playerid,cor_vermelho,"Erro: PlayerID desconectado!");
    if(PlayerInfo[playerID][Jailed] == 1) return SendClientMessage(playerid,cor_vermelho,"Erro: Esse jogador jб estб preso.");

    format(acstr,sizeof(acstr),"[OpAdmin] Admin '%s' prendeu '%s' por %d minutos por %s.",nome(playerid),nome(playerID),Tempo,Motivo);
    SendClientMessageToAll(cor_vermelho,acstr);

    PlayerInfo[playerID][Jailed] = 1;
    PlayerInfo[playerID][JailedTime] = Tempo;
   
    TogglePlayerControllable(playerID, false);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerID,x,y,z);
    SetPlayerCameraPos(playerID,x+7,y,z+5);
    SetPlayerCameraLookAt(playerID,x,y,z);

    JPlayer[playerID] = SetTimerEx("JailPlayer",3000,0,"d",playerID);
    if(GetPlayerState(playerID) == PLAYER_STATE_ONFOOT) SetPlayerSpecialAction(playerID,SPECIAL_ACTION_HANDSUP);
    if(Tempo >= 1)
    {
        Jtimer[playerID] = SetTimerEx("Unjail",Tempo*1000*60,0,"u",playerID);
    }
    return 1;
}

forward Unjail(playerid);
public Unjail(playerid)
{
    KillTimer(Jtimer[playerid]);
    if(IsPlayerConnected(playerid))
    {
        TogglePlayerControllable(playerid,true);
        PlayerInfo[playerid][Jailed] = 0;
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
        SpawnPlayer(playerid);
        GameTextForPlayer(playerid,"~G~Solto da cadeia!",3000,3);
    }
}

forward JailPlayer(playerid);
public JailPlayer(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        KillTimer(JPlayer[playerid]);
        TogglePlayerControllable(playerid,true);
        SetPlayerPos(playerid,197.6661,173.8179,1003.0234);
        SetPlayerInterior(playerid,3);
        SetCameraBehindPlayer(playerid);
        ResetPlayerWeapons(playerid);
        SetPlayerHealth(playerid,99999999.0);
    }
}
Reply
#2

Nгo localizei o trecho de cуdigo onde sгo salvas as informaзхes.

Usar um timer para soltar o jogador como vocк usou nгo й o ideal.

Bom, fui eu que fiz, porйm nгo testei.

http://forum.sa-mp.com/showpost.php?...5&postcount=12
Reply
#3

Estб aqui Castiel:

pawn Код:
stock SalvarConta(playerid)
{
    new arq[50];
    format(arq,50,"Contas/%s.ini",nome(playerid));

    DOF2_SetInt(arq,"Jailed",PlayerInfo[playerid][Jailed]);
    DOF2_SetInt(arq,"JailedTime",PlayerInfo[playerid][JailedTime]);
    DOF2_SaveFile();
}
Mais jб й usado um timer para soltar.

pawn Код:
Jtimer[playerid] = SetTimerEx("Unjail",PlayerInfo[playerid][JailedTime]*1000*60,0,"u",playerid);
Reply
#4

Quote:
Originally Posted by s4kuL
Посмотреть сообщение
Estб aqui Castiel:

pawn Код:
stock SalvarConta(playerid)
{
    new arq[50];
    format(arq,50,"Contas/%s.ini",nome(playerid));

    DOF2_SetInt(arq,"Jailed",PlayerInfo[playerid][Jailed]);
    DOF2_SetInt(arq,"JailedTime",PlayerInfo[playerid][JailedTime]);
    DOF2_SaveFile();
}
Mais jб й usado um timer para soltar.

pawn Код:
Jtimer[playerid] = SetTimerEx("Unjail",PlayerInfo[playerid][JailedTime]*1000*60,0,"u",playerid);
"u" -> Sscanf.

Vocк esta usando o timer de forma incorreta, olhe meu cуdigo, como foi feito.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)