[Pedido] /soltar
#1

ola pessoal, essa й a terceira vez que venho lhes pedir ajuda,
creio ser desagradбvel, vir aqui e nгo dar estrelas a quem ajuda
pior ainda й quando nгo se esforзa para algo

eu consegui resolver os problemas de minha gm(pequena)

onde felizmente jб podemos usar on-line й algo sу de amigos
nada de intuito financeiro etc etc pura diversгo

mбs me deparo com algo que foi alйm...
testei diversas opзхes, copiar inъmeros comandos e adaptar faz falhei

nгo consigo soltar da cadeia, antes quem dava comando de prender acabava por ir preso
isso eu concertei na base de ler a gm e a entender

mбs comando soltar eu nгo consigo
o sistema й baseado em um sistema de admins: pAdminSystem
foi o primeiro que baixei e trabalhei nele, sei que vocкs possuem muitos
mбs tudo que fiz foi baseado nele aprender com ele(dentro dos meus limites)
esse й o sistema que verifica a cadeia e o comando de prender, me falta conseguir soltar
PHP код:
public CheckCadeia()
{
    for(new 
iMAX_PLAYERSi++)
    {
        if(!
IsPlayerConnected(i) || pLogado[i] == false) return 0;
        if(
GetPlayerPing(i) > MAX_PING)
        {
            
AvisosPing[i]++;
            
format(Strsizeof(Str), "ATENЗГO: Seu Ping estб maior que o limite. Por favor, ajuste sua conexгo. (AVISO %i/3)"AvisosPing[i]);
            
SendClientMessage(iCorErroStr);
            if(
AvisosPing[i] >= 3)
            {
                 
format(Strsizeof(Str), "[AurA]O Player %s foi kickado pelo administrador automбtico. Motivo: Ping maior que o limite (LIMITE: %i)"pNomeOriginal[i], MAX_PING);
                
SendClientMessageToAll(VermelhoEscuroStr);
                
Kick(i);
                return 
0;
            }
        }
        
PlayerInfo[i][pSegundosJogados] += 2;
        if(
PlayerInfo[i][pCadeia] > 0)
        {
            
PlayerInfo[i][pCadeia]-= 2;
            
SetPlayerHealth(i99999);
            if(
PlayerInfo[i][pCadeia] == 0)
            {
                
SpawnPlayer(i);
                
SetPlayerInterior(i0);
          
                
SetPlayerVirtualWorld(i0);
                
SetPlayerPos(i1552.6621,-1675.0452,16.1953);
                
SetPlayerHealth(i100);
                
SendClientMessage(iAzulClaro"Vocк estб livre. Procure nгo infringir as regras para evitar voltar para a cadeia.");
              
            }
            else
            {
                if(!
IsPlayerInRangeOfPoint(i50.0322.197998302.497985999.148437))
                {
                    
SetPlayerVirtualWorld(ii);
                    
SetPlayerPos(i197.6661173.81791003.0234);
                    
SetPlayerInterior(i3);
                    
SendClientMessage(iVermelhoEscuro"Vocк ainda nгo terminou seu tempo na cadeia.");
             
                    
                }
            }
        }
    }
    return 
1;

aqui o comando de prender
PHP код:
CMD:cadeia(playeridparams[])
{
    if(
PlayerInfo[playerid][pAdmin] < 1)                        return SendClientMessage(playeridCorErro"Vocк precisa ser uma Administrador level 1 para usar este comando");
    if(
pJogando[playerid] == true)                                 return SendClientMessage(playeridCorErro"Vocк nгo estб trabalhando!");
    if(
sscanf(params"iis[56]"IDNumeroMotivo))            return SendClientMessage(playeridCorErroNeutro"USE: /cadeia [ID] [TEMPO EM MINUTOS] [MOTIVO]");
    if(!
IsPlayerConnected(ID))                                    return SendClientMessage(playeridCorErroNeutro"O jogador nгo estб conectado");
    
//
    
if(Numero != 0)
    {
        
PlayerInfo[ID][pCadeia] = Numero 60;
        
SetPlayerHealth(ID99999);
        
SetPlayerPos(ID197.6661173.81791003.0234);
        
SetPlayerInterior(ID3);
        
ResetPlayerWeapons(ID);
        
SendClientMessage(IDVermelhoEscuro"Vocк foi preso por um Administrador, irб cumrir pena na cadeia.");
    }
    else
    {
        
PlayerInfo[ID][pCadeia] = 1;
    }
    
//
    
format(Str256"AdmCmd: O administrador %s prendeu %s por %i minutos. Motivo: %s"pNomeOriginal[playerid], pNomeOriginal[ID], NumeroMotivo);
    
SendClientMessageToAll(VermelhoEscuroStr);
    
//
    
Log("pAdmin/Logs/Cadeia.ini"Str);
    return 
1;

OnGameModeInit
PHP код:
    SetTimer("CheckCadeia"2000true); 
Reply
#2

PHP код:
CMD:cadeia(playeridparams[]) 

    if(
PlayerInfo[playerid][pAdmin] < 1)                        return SendClientMessage(playeridCorErro"Vocк precisa ser uma Administrador level 1 para usar este comando"); 
    if(
pJogando[playerid] == true)                                 return SendClientMessage(playeridCorErro"Vocк nгo estб trabalhando!"); 
    if(
sscanf(params"iis[56]"IDNumeroMotivo))            return SendClientMessage(playeridCorErroNeutro"USE: /cadeia [ID] [TEMPO EM MINUTOS] [MOTIVO]"); 
    if(!
IsPlayerConnected(ID))                                    return SendClientMessage(playeridCorErroNeutro"O jogador nгo estб conectado"); 
    if(
Numero != 0){ 
        
PlayerInfo[ID][pCadeia] = Numero 60
        
SetPlayerHealth(ID99999); 
        
SetPlayerPos(ID197.6661173.81791003.0234); 
        
SetPlayerInterior(ID3); 
        
ResetPlayerWeapons(ID); 
        
SendClientMessage(IDVermelhoEscuro"Vocк foi preso por um Administrador, irб cumrir pena na cadeia.");
        
format(Str256"AdmCmd: O administrador %s prendeu %s por %i minutos. Motivo: %s"pNomeOriginal[playerid], pNomeOriginal[ID], NumeroMotivo); 
    } 
    else if(
Numero == 0){
        
PlayerInfo[ID][pCadeia] = 0;
        
SpawnPlayer(ID);
        
SendClientMessage(IDVermelhoEscuro"Vocк foi solto por um administrador.");
        
format(Str256"AdmCmd: O administrador %s soltou %s. Motivo: %s"pNomeOriginal[playerid], pNomeOriginal[ID], Motivo); 
    }
    
SendClientMessageToAll(VermelhoEscuroStr); 
    
Log("pAdmin/Logs/Cadeia.ini"Str); 
    return 
1

Reply
#3

Felipe o comando de prender esse funciona o postei para poderem ver e me informar o que esta na public de checar a cadeia
o que devo pegar dali e criar o comando soltar
eu errei no poste onde e vou arrumar mas agradeзo o esforзo
Reply
#4

esse foi o mais proximo que consegui, mas ao soltar automaticamente a pessoa volta a cadeia
testei com o codigo refeito pelo amigo Felipe, mбs continua a nгo soltar a pessoa
o tempo preso funciona normalmente, sу o de admin soltar que nгo

Quote:

CMD:libertar(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, CorErro, "comando apenas de [AurA] Zeta");
if(pJogando[playerid] == true) return SendClientMessage(playerid, CorErro, "Vocк nгo estб trabalhando!");


new id, reason[128], string[250];
if(sscanf(params, "uS(None)[128]", id, reason)) return SendClientMessage(playerid, VermelhoEscuro, "USE: /libertar [playerid] [motivo]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, VermelhoEscuro, "* Jogador nao conectado.");
// if(PlayerInfo[playerid][pAdmin] < PlayerInfo[id][pAdmin]) return SendClientMessage(playerid, VermelhoEscuro, "* Voce nao pode usar este comando de Admin superior.");
if(PlayerInfo[id][pCadeia] == 0) return SendClientMessage(playerid, VermelhoEscuro, "* O Jogador nao esta preso.");
if(id == playerid) return SendClientMessage(playerid, VermelhoEscuro, "* nao pode usar o comando em si mesmo.");


format(string, sizeof(string), "** %s voce foi solto pelo Admin %s por %s", pNomeOriginal[ID], pNomeOriginal[playerid], Motivo);
SendClientMessageToAll(Verde, string);
SendClientMessage(id, CorSucesso, "Voce foi solto por um Admin.");
SetPlayerInterior(id, 0);
SetPlayerHealth(id, 100);
SetPlayerVirtualWorld(id, 0);
SetPlayerPos(id, 1552.6621,-1675.0452,16.1953);
SetPlayerHealth(id, 100);


format(string, sizeof(string), "%s foi solto pelo Admin %s por %s", pNomeOriginal[ID], pNomeOriginal[playerid], Motivo);
Log("pAdmin/Logs/Cadeia.ini", string);

// PlayerInfo[id][accountJail] = 0, PlayerInfo[id][accountJailSec] = 0;
// SpawnPlayer(id);
return 1;
}

Reply
#5

PHP код:
// Adicione no enum PlayerInfo uma bool: pPreso ex: bool:pPreso = false,
public CheckCadeia() 

    for(new 
iMAX_PLAYERSi++) 
    { 
        if(!
IsPlayerConnected(i) || pLogado[i] == false) return 0
        if(
GetPlayerPing(i) > MAX_PING
        { 
            
AvisosPing[i]++; 
            
format(Strsizeof(Str), "ATENЗГO: Seu Ping estб maior que o limite. Por favor, ajuste sua conexгo. (AVISO %i/3)"AvisosPing[i]); 
            
SendClientMessage(iCorErroStr); 
            if(
AvisosPing[i] >= 3
            { 
                
format(Strsizeof(Str), "[AurA]O Player %s foi kickado pelo administrador automбtico. Motivo: Ping maior que o limite (LIMITE: %i)"pNomeOriginal[i], MAX_PING); 
                
SendClientMessageToAll(VermelhoEscuroStr); 
                
Kick(i); 
                return 
0
            } 
        } 
        
PlayerInfo[i][pSegundosJogados] += 2;
        if(
PlayerInfo[i][pPreso]){
            
SetPlayerHealth(i99999);
            if(
PlayerInfo[i][pCadeia] > 0PlayerInfo[i][pCadeia] -= 2;
            if(
PlayerInfo[i][pCadeia] <= 0){
                
PlayerInfo[i][pPreso] = false;
                
PlayerInfo[i][pCadeia] = 0;
                
SpawnPlayer(i);
                
SetPlayerInterior(i0); 
                
SetPlayerVirtualWorld(i0); 
                
SetPlayerPos(i1552.6621,-1675.0452,16.1953); 
                
SetPlayerHealth(i100);
                
SendClientMessage(iAzulClaro"Vocк estб livre. Procure nгo infringir as regras para evitar voltar para a cadeia.");
            }    
        }
    } 
    return 
1
}
public 
OnPlayerSpawn(playerid){
    if(
PlayerInfo[playerid][pPreso]){
        
SpawnPlayer(playerid);
        
SetPlayerVirtualWorld(playerid0); 
        
SetPlayerPos(playerid197.6661173.81791003.0234); 
        
SetPlayerInterior(playerid3); 
        
SendClientMessage(playeridVermelhoEscuro"Vocк ainda nгo terminou seu tempo na cadeia.");
    }
    return 
1;
}
CMD:cadeia(playeridparams[]) 

    if(
PlayerInfo[playerid][pAdmin] < 1)                        return SendClientMessage(playeridCorErro"Vocк precisa ser uma Administrador level 1 para usar este comando"); 
    if(
pJogando[playerid] == true)                                 return SendClientMessage(playeridCorErro"Vocк nгo estб trabalhando!"); 
    if(
sscanf(params"iis[56]"IDNumeroMotivo))            return SendClientMessage(playeridCorErroNeutro"USE: /cadeia [ID] [TEMPO EM MINUTOS] [MOTIVO]"); 
    if(!
IsPlayerConnected(ID))                                    return SendClientMessage(playeridCorErroNeutro"O jogador nгo estб conectado"); 
    if(
Numero != 0){ 
        
PlayerInfo[ID][pCadeia] = Numero 60
        
SetPlayerHealth(ID99999); 
        
SetPlayerPos(ID197.6661173.81791003.0234); 
        
SetPlayerInterior(ID3); 
        
ResetPlayerWeapons(ID); 
        
SendClientMessage(IDVermelhoEscuro"Vocк foi preso por um Administrador, irб cumrir pena na cadeia.");
        
format(Str256"AdmCmd: O administrador %s prendeu %s por %i minutos. Motivo: %s"pNomeOriginal[playerid], pNomeOriginal[ID], NumeroMotivo); 
    } 
    else if(
Numero == 0){
        
PlayerInfo[ID][pCadeia] = 0;
        
PlayerInfo[ID][pPreso] = false;
        
SpawnPlayer(ID);
        
SendClientMessage(IDVermelhoEscuro"Vocк foi solta por um administrador.");
        
format(Str256"AdmCmd: O administrador %s soltou %s. Motivo: %s"pNomeOriginal[playerid], pNomeOriginal[ID], Motivo); 
    }
    
SendClientMessageToAll(VermelhoEscuroStr); 
    
Log("pAdmin/Logs/Cadeia.ini"Str); 
    return 
1

@Edit: /prender se o numero for 0 ele solta
Reply
#6

ola Felipe
eu usei o cуdigo e quando eu soltava a pessoa saia mas continuava no sistema de estar presa
sу consegui tirar ela da cela,
entгo como sempre verifiquei a gm e apenas mudei aquilo o pPreso para pCadeia e tirei o boll,
agora consigo tirar a pessoa da cadeia e zerar sua informaзгo on-line e na conta

obvio que se nгo fosse sua ajuda eu nгo conseguiria, isso com certeza vai me ajudar no futuro
assim como as informaзхes (cуdigos) que me passaram quando pedi ajuda
sobre, salario, e mensagens erradas

agradeзo muito sua ajuda !
pontuaзгo ganha

Quote:

if(PlayerInfo[i][pCadeia])
{
SetPlayerHealth(i, 99999);
if(PlayerInfo[i][pCadeia] > 0) PlayerInfo[i][pCadeia] -= 2;
if(PlayerInfo[i][pCadeia] <= 0)// add pot felipe samp

{
PlayerInfo[i][pCadeia] = false;
PlayerInfo[i][pCadeia] = 0;

Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)