[Ajuda] Pobrema em comando /prender
#1

Ola , estou com meu CMD /prender , sendo que quando eu uso /prender em um player ele vai para prisao , e rapidamente aparece a mensagem "solto" e ele sai da prisao ...

nao sei o que estar acontecendo . sei que quando escluir a parte que ele estar solto , ele fica na cadeia trankilo ... sendo que vai ficar por la atй ... rsrs essa parte aqui que exluir que ta entre /**/


pawn Код:
forward AtualizarHora();
public AtualizarHora()
{
 getdate(data[0], data[1], data[2]);
    gettime(hora[0], hora[1], hora[2]);
/*  for(new players; players < GetMaxPlayers(); players++)
    {
        if(!IsPlayerConnected(players)) continue;
        if(ProgressaoInfo[players][Preso] == true && ProgressaoInfo[players][TempoPreso] <= 0)
        {
            GameTextForPlayer(players,"Solto!",5000,5);
            SetPlayerPos(players,268.0135,77.1637,1001.0391);
            ProgressaoInfo[players][Preso] = false;
            ProgressaoInfo[players][TempoPreso] = 0;
            return true;
        }
        else if(ProgressaoInfo[players][Preso] == true && ProgressaoInfo[players][TempoPreso] >  0)
        {
            ProgressaoInfo[players][TempoPreso] --;
            return true;
        }
    }*/

    return true;
}
ta ai ...


ja o /prender vou mandar talvez ao caso seria no cmd .. rs

pawn Код:
CMD:prender(playerid,params[])
{
    new giveplayerid,tmp[64];
    giveplayerid = ReturnUser(tmp);
    new idx;//tmp[90];
    if(!Policial(playerid)) return SendClientMessage(playerid,-1,"Comando Apenas para Policiais");
    //if(BateuCartao[playerid] == false) SendClientMessage(playerid,C_Vermelho,"[ERRO]Voce ainda nгo bateu cartгo!");
    tmp = strtok(params,idx);
    //if(!strlen(tmp)) return SendClientMessage(playerid,C_Vermelho, "[Erro:] /prender [id] [Motivo]");
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(params,idx);
    new length = strlen(tmp);
    while ((idx < length) && (params[idx] <= ' ')){idx++;}
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))){result[idx - offset] = params[idx]; idx++;}
    result[idx - offset] = EOS;
    //if(!strlen(result)) return SendClientMessage(playerid,C_Vermelho, "[Erro:] /prender [id] [Motivo]");
    if(!IsPlayerInRangeOfPoint(playerid,6.0, 268.3327,77.8972,1001.0391) &&!IsPlayerInRangeOfPoint(playerid,6.0, 215.5622,113.1849,999.0156)) return SendClientMessage(playerid,-1,"Voce nao Esta em Frente a Cela do Departamento de Policia");
    //if(GetDistanceBetweenPlayers(playerid,giveplayerid) < 5) return SendClientMessage(playerid,C_Vermelho, "[Erro:] Voce Esta Muito Longe do Detento!");
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid,C_Vermelho, "[Erro:] Player Nao Conectado!");
    if(IsPlayerInRangeOfPoint(playerid,6.0, 268.3327,77.8972,1001.0391))
    {
    format(Texto, 40, "*Voce Prendeu %s ,Motivo: %s !", GetPlayerNameEx(giveplayerid),result);
    SendClientMessage(playerid, C_Verde, Texto);
    format(Texto,80,"Preso Pelo Policial %s por %i Minuto(s)",GetPlayerNameEx(playerid), GetPlayerWantedLevel(giveplayerid)*2*60000);
    GameTextForPlayer(giveplayerid,Texto,10000,5);
    format(Texto,80,"Preso Pelo Policial %s por %i Minuto(s) - Motivo: %s",GetPlayerNameEx(playerid), GetPlayerWantedLevel(giveplayerid)*2*60000, result);
    SendClientMessage(giveplayerid,-1, Texto);
    SetTimerEx("PresoDP",GetPlayerWantedLevel(giveplayerid)*2*60000,false,"i",giveplayerid);
    ProgressaoInfo[giveplayerid][Preso] = true;
    SetPlayerPos(giveplayerid,264.6288, 77.5742, 1001.0391);
    SetPlayerWantedLevel(giveplayerid,0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid,6.0,215.5622,113.1849,999.0156))
    {
    format(Texto, 40, "*Voce Prendeu %s ,Motivo: %s !", GetPlayerNameEx(giveplayerid),result);
    SendClientMessage(playerid, C_Verde, Texto);
    format(Texto,80,"Preso Pelo Policial %s por %i Minuto(s)",GetPlayerNameEx(playerid), GetPlayerWantedLevel(giveplayerid)*2*60000);
    GameTextForPlayer(giveplayerid,Texto,10000,5);
    format(Texto,80,"Preso Pelo Policial %s por %i Minuto(s) - Motivo: %s",GetPlayerNameEx(playerid), GetPlayerWantedLevel(giveplayerid)*2*60000, result);
    SendClientMessage(giveplayerid,-1, Texto);
    SetTimerEx("PresoBOPE",GetPlayerWantedLevel(PlayerB)*2*60000,false,"i",giveplayerid);
    ProgressaoInfo[giveplayerid][Preso] = true;
    SetPlayerPos(giveplayerid,227.2757,109.1335,999.0156);
    SetPlayerWantedLevel(giveplayerid,0);
    return 1;
    }
    return 1;
}
OBS : ESSES // NAS IF , Й PORQ ELAS ESTAVAM ENTERROMPENDO O USO DO CMD , DAН RETIREI SУ PARA TESTAR O COMANDO

Ops , e tenho me lembrado que no /prender nao tem o tempo sу o motivo -*
Reply
#2

Tente assim:
pawn Код:
forward AtualizarHora();
public AtualizarHora()
{
 getdate(data[0], data[1], data[2]);
    gettime(hora[0], hora[1], hora[2]);
  for(new players; players < GetMaxPlayers(); players++)
    {
        if(!IsPlayerConnected(players)) continue;
        if(ProgressaoInfo[players][Preso] == true && ProgressaoInfo[players][TempoPreso] <= 0)
        {
            GameTextForPlayer(players,"Solto!",5000,5);
            SetPlayerPos(players,268.0135,77.1637,1001.0391);
            ProgressaoInfo[players][Preso] = false;
            ProgressaoInfo[players][TempoPreso] = 0;
            return true;
        }
        else if(ProgressaoInfo[players][Preso] == true && ProgressaoInfo[players][TempoPreso] >  0)
        {
            ProgressaoInfo[players][TempoPreso] --;
            return true;
        }
    }
    return true;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)