SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 23/10/2018, 02:12 AM   #1
AutomatA
Little Clucker
 
AutomatA's Avatar
 
Join Date: Aug 2018
Location: são paulo
Posts: 36
Reputation: 0
Default /soltar

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 Code:
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 Code:
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 Code:
    SetTimer("CheckCadeia"2000true); 
AutomatA is offline   Reply With Quote
Old 23/10/2018, 02:27 AM   #2
Felipealves
Huge Clucker
 
Felipealves's Avatar
 
Join Date: Mar 2016
Location: Paraná
Posts: 309
Reputation: 16
Default Re: /soltar

PHP Code:
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

Felipealves is offline   Reply With Quote
Old 23/10/2018, 02:33 AM   #3
AutomatA
Little Clucker
 
AutomatA's Avatar
 
Join Date: Aug 2018
Location: são paulo
Posts: 36
Reputation: 0
Default Re: /soltar

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
AutomatA is offline   Reply With Quote
Old 23/10/2018, 02:45 AM   #4
AutomatA
Little Clucker
 
AutomatA's Avatar
 
Join Date: Aug 2018
Location: são paulo
Posts: 36
Reputation: 0
Default Re: /soltar

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;
}
AutomatA is offline   Reply With Quote
Old 23/10/2018, 02:51 AM   #5
Felipealves
Huge Clucker
 
Felipealves's Avatar
 
Join Date: Mar 2016
Location: Paraná
Posts: 309
Reputation: 16
Default Re: /soltar

PHP Code:
// 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
Felipealves is offline   Reply With Quote
Old 23/10/2018, 04:49 AM   #6
AutomatA
Little Clucker
 
AutomatA's Avatar
 
Join Date: Aug 2018
Location: são paulo
Posts: 36
Reputation: 0
Default Re: /soltar

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;
AutomatA is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] BUG no /soltar LeoFigueiredo Português/Portuguese 5 07/11/2013 09:40 PM
[Ajuda] /Soltar powerths Português/Portuguese 9 02/10/2013 08:32 PM
[Ajuda] Cmd /soltar alexandreez Português/Portuguese 13 28/07/2012 06:49 PM
[Ajuda] /soltar Goku™ Português/Portuguese 8 28/07/2012 01:20 PM
[Ajuda] Cmd /soltar alexandreez Português/Portuguese 2 23/07/2012 09:09 PM


All times are GMT. The time now is 04:05 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.