Portal SAMP
[Ajuda] Preso da um comando e sai da cadeia - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Preso da um comando e sai da cadeia (/showthread.php?tid=2043)

Páginas: 1 2 3


RE: Preso da um comando e sai da cadeia - fear - 19/01/2022

(18/01/2022 23:50)xbruno1000x Escreveu:
(18/01/2022 23:36)fear Escreveu:
(18/01/2022 23:19)k2bi_YT Escreveu: Você viu se tem duas public igual na GM? Se tiver, retire uma

Não tem kk já respondi acima. Verifiquei três vezes já

Já sei o que é. A public OnPlayerCommandReceived é do zcmd e do Pawn.CMD. Provavelmente você não está usando nenhum dos dois processadores de comandos.

tente colocar nessa public
public OnPlayerCommandText(playerid, cmdtext[])
Compilo.. porém eu consigo usar os teles normalmente e assim saindo da cadeia antes do tempo que o admin coloco...


RE: Preso da um comando e sai da cadeia - xbruno1000x - 19/01/2022

(19/01/2022 18:24)fear Escreveu:
(18/01/2022 23:50)xbruno1000x Escreveu:
(18/01/2022 23:36)fear Escreveu:
(18/01/2022 23:19)k2bi_YT Escreveu: Você viu se tem duas public igual na GM? Se tiver, retire uma

Não tem kk já respondi acima. Verifiquei três vezes já

Já sei o que é. A public OnPlayerCommandReceived é do zcmd e do Pawn.CMD. Provavelmente você não está usando nenhum dos dois processadores de comandos.

tente colocar nessa public
public OnPlayerCommandText(playerid, cmdtext[])
Compilo.. porém eu consigo usar os teles normalmente e assim saindo da cadeia antes do tempo que o admin coloco...

Olhei um gamemode antigo que tenho aqui em DCMD e, infelizmente, me parece que a única solução é colocar um if(CONDIÇÃO) return ERRO; em cada comando que contenha teleporte.


RE: Preso da um comando e sai da cadeia - browmika - 20/01/2022

if(PlayerInfo[player1][Jailed] == 1) return SendClientMessage(playerid, -1, "Você não pode usar esse comando nesse momento.");

So colocar isso ai em cima em todos os comandos não permitidos enquanto estiver preso.


RE: Preso da um comando e sai da cadeia - fear - 21/01/2022

(20/01/2022 16:50)browmika Escreveu: if(PlayerInfo[player1][Jailed] == 1) return SendClientMessage(playerid, -1, "Você não pode usar esse comando nesse momento.");

So colocar isso ai em cima em todos os comandos não permitidos enquanto estiver preso.

se eu faço isso..da isso ... lembrando uso fsadmin lladmin... como eu resolvo?

Código PHP:
error 017undefined symbol "player1"
error 029invalid expressionassumed zero
error 017
undefined symbol "Jailed"
fatal error 107too many error messages on one line 



RE: Preso da um comando e sai da cadeia - k2bi_YT - 21/01/2022

Não tem preferência em usar sscanf? eu acho bem mais facil e optimizado nessas funções... isso é, cada um tem o seu gosto!

Função com include SSCANF
Código PHP:
dcmd_prender(playerid,params[])
{
    if(
PlayerInfo[playerid][LoggedIn] == 1)
    {
        if(
PlayerInfo[playerid][Level] >= 1)
        {
            new 
idtimemotivo[64];
            if(
sscanf(params"uis[64]"idtimemotivo)) return SendClientMessage(playeridred"USO: /jail [playerid] [minutos] [motivo]");
            if(
IsPlayerConnected(id) && id != INVALID_PLAYER_ID && (PlayerInfo[id][Level] != ServerInfo[MaxAdminLevel]) 
            {
                if(
PlayerInfo[idd][Jailed] == 0
                {
                    
GetPlayerName(idplayernamesizeof(playername)); GetPlayerName(playeridadminnamesizeof(adminname));
                    if(
time == 0time 9999;

                    
CMDMessageToAdmins(playerid,"JAIL");
                    
PlayerInfo[id][JailTime] = time*1000*60;
                    
SetTimerEx("JailPlayer",5000,0,"i"id);
                    
SetTimerEx("Jail1",1000,0,"i",id);
                    
PlayerInfo[id][Jailed] = 1;
                    if(
time == 9999)
                    {
                        
format(string,sizeof(string),"Administrador %s prendeu %s [motivo: %s]",adminnameplayernamemotivo);
                    } 
                    else
                    {
                        
format(string,sizeof(string),"Administrador %s prendeu %s por %d minutos [motivo: %s]",adminnameplayernametimemotivo);
                    }
                    return 
SendClientMessageToAll(blue,string);
                } 
                return 
SendClientMessage(playeridred"O jogador já está na cadeia");
            } 
            return 
SendClientMessage(playeridred"Jogador não conectado ou é um admin com nível alto");
        } 
        return 
SendClientMessage(playerid,red,"ERRO: Você não tem nível alto suficiente para usar este comando");
    } 
    return 
SendClientMessage(playerid,red,"ERRO: Você deve estar logado para usar este comando");




RE: Preso da um comando e sai da cadeia - xbruno1000x - 21/01/2022

(21/01/2022 22:39)fear Escreveu:
(20/01/2022 16:50)browmika Escreveu: if(PlayerInfo[player1][Jailed] == 1) return SendClientMessage(playerid, -1, "Você não pode usar esse comando nesse momento.");

So colocar isso ai em cima em todos os comandos não permitidos enquanto estiver preso.

se eu faço isso..da isso ... lembrando uso fsadmin lladmin... como eu resolvo?

Código PHP:
error 017undefined symbol "player1"
error 029invalid expressionassumed zero
error 017
undefined symbol "Jailed"
fatal error 107too many error messages on one line 

Tente colocar assim:
Código:
    if(PlayerInfo[playerid][Jailed] != 0) return SendClientMessage(playerid, -1, "ERRO: Você está preso!");

O array central normalmente é o ID do player.


RE: Preso da um comando e sai da cadeia - fear - 22/01/2022

(21/01/2022 23:59)xbruno1000x Escreveu:
(21/01/2022 22:39)fear Escreveu:
(20/01/2022 16:50)browmika Escreveu: if(PlayerInfo[player1][Jailed] == 1) return SendClientMessage(playerid, -1, "Você não pode usar esse comando nesse momento.");

So colocar isso ai em cima em todos os comandos não permitidos enquanto estiver preso.

se eu faço isso..da isso ... lembrando uso fsadmin lladmin... como eu resolvo?

Código PHP:
error 017undefined symbol "player1"
error 029invalid expressionassumed zero
error 017
undefined symbol "Jailed"
fatal error 107too many error messages on one line 

Tente colocar assim:
Código:
    if(PlayerInfo[playerid][Jailed] != 0) return SendClientMessage(playerid, -1, "ERRO: Você está preso!");

O array central normalmente é o ID do player.

Código PHP:
error 001expected token")"but found "["
error 029invalid expressionassumed zero
error 017
undefined symbol "Jailed"
fatal error 107too many error messages on one line 



RE: Preso da um comando e sai da cadeia - k2bi_YT - 22/01/2022

error 001: expected token: ")", but found "[" Verifique a linha desse erro, certamente está faltando fechamento de função.
error 017: undefined symbol "Jailed" Sua enum que guarda as informações do jogador não tem a variavel "Jailed", você tem que criar uma.

O próprio erro já diz qual é o problema :\


RE: Preso da um comando e sai da cadeia - fear - 22/01/2022

(22/01/2022 12:40)k2bi_YT Escreveu: error 001: expected token: ")", but found "[" Verifique a linha desse erro, certamente está faltando fechamento de função.
error 017: undefined symbol "Jailed" Sua enum que guarda as informações do jogador não tem a variavel "Jailed", você tem que criar uma.

O próprio erro já diz qual é o problema :\

Eu ja tentei se eu coloquei o erro e pq eu fiz e não resolveu..

como vou defininir o enum já que já tem no fs lladmin.. isso e no gamemode!!!


RE: Preso da um comando e sai da cadeia - xbruno1000x - 22/01/2022

Crie no LLAdmin:

Código:
forward IsPlayerInJail(playerid);
public IsPlayerInJail(playerid)
{
    if(PlayerInfo[playerid][Jailed] != 0) return true;
}
Essa public servirá para pegar o valor da variável da FS dentro do seu Gamemode.

Nos comandos de teleporte do GM:
Código:
if(CallRemoteFunction("IsPlayerInJail", playerid)) return SendClientMessage(playerid, -1, "Você está preso!");
Isso irá conferir se o player está com a variável preso ativa na FS, e caso esteja irá retornar o erro.