[Ajuda] Bloqueio de comandos
#1

Como fazer pra bloqueiar todos os comandos exeto /logar /registra.

Exemplo: como eu faзo pra bloquear todos os comandos quando nгo estб logado apenas /logar e /registrar...

Sistema que bloqueia o comando quando nгo loga:

Quote:

if(!gPlayerLogged[playerid])
return SendClientMessage(playerid, COLOR_GRAD2, "Vocк precisa estar logado!");

Reply
#2

PHP код:
/* -- COLOQUE NO COMEЗO DO GAMEMODE OU FS OU SCRIPT OQUE SEJA '-' -- */
new gPlayerLogged[MAX_PLAYERS];
/* -- COLOCA NO COMEЗO DOS COMANDOS QUE VOCК DESEJA BLOQUEAR -- */
if(!gPlayerLogged[playerid]) return SendClientMessage(playeridCOLOR_GRAD2"Vocк precisa estar logado!");
/* -- NO COMANDO QUE FAZ O LOGIN DO JOGADOR APУS ELE SE LOGAR COLOQUE -- */
gPlayerLogged[playerid] = 1;
/* -- QUANDO O JOGADOR SE DESCONECTAR DO SERVIDOR NO ONPLAYERDISCONNECT COLOQUE -- */
gPlayerLogged[playerid] = 0
Reply
#3

Quote:
Originally Posted by [BOPE]Seu._.Madruga
Посмотреть сообщение
PHP код:
/* -- COLOQUE NO COMEЗO DO GAMEMODE OU FS OU SCRIPT OQUE SEJA '-' -- */
new gPlayerLogged[MAX_PLAYERS];
/* -- COLOCA NO COMEЗO DOS COMANDOS QUE VOCК DESEJA BLOQUEAR -- */
if(!gPlayerLogged[playerid]) return SendClientMessage(playeridCOLOR_GRAD2"Vocк precisa estar logado!");
/* -- NO COMANDO QUE FAZ O LOGIN DO JOGADOR APУS ELE SE LOGAR COLOQUE -- */
gPlayerLogged[playerid] = 1;
/* -- QUANDO O JOGADOR SE DESCONECTAR DO SERVIDOR NO ONPLAYERDISCONNECT COLOQUE -- */
gPlayerLogged[playerid] = 0
Usa booleano, isso й ilegнvel, criar uma variбvel inteira somente para obter 2 valores, "0" e "1", enquanto bool em si, jб faz isso, "0" й false, "1" й true.

Entгo ficaria melhor vocк usar bool.

@Topic
Primeiro de tudo, vocк deverб criar uma variбvel global, indexada а uma matriz, denominada como "MAX_PLAYERS".
A tag "bool" em si, ainda й uma signed int de 32bits, podendo ser utilizada em char.
PHP код:
new bool:LoggedPlayer[MAX_PLAYERS char]; 
Segundo, vocк apenas criar a condiзгo para que o jogador possa utilizar o comando ou nгo.
Suponhamos que eu quero usar um comando, mas nгo estou logado.
PHP код:
CMD:vida(playerid){ 
   if(!
LoggedPlayer{playerid})
      return 
SendClientMessage(playerid, -1"Vocк nгo estб logado para utilizar este comando.");
   
SetPlayerHealth(playerid100);
   return 
true;
}; 
Terceiro, quando o jogador realmente logar no servidor, sete o valor da variбvel para verdadeiro(true).
PHP код:
LoggedPlayer{playerid} = true
Pela saнda, faзa o mesmo, sete o valor para falso(false).
PHP код:
LoggedPlayer{playerid} = false
Reply
#4

Primeiramente boa noite senhores, obrigado pela atenзгo. O que quero na verdade e bloqueiar os comandos de uma forma que nгo precisar colocar em um por um, criar uma funзгo que cria automaticamente em todos e como por exemplo fazer a liberaзгo de /logar e /registrar...

Lembrando que essa funзгo abaixo ja existe na GM, demostrei ela apenas para exemplo:
if(!gPlayerLogged[playerid])
return SendClientMessage(playerid, COLOR_GRAD2, "Vocк precisa estar logado!");
Reply
#5

Quote:
Originally Posted by Cycle
Посмотреть сообщение
Usa booleano, isso й ilegнvel, criar uma variбvel inteira somente para obter 2 valores, "0" e "1", enquanto bool em si, jб faz isso, "0" й false, "1" й true.

Entгo ficaria melhor vocк usar bool.
"Usar bools em Pawn й completamente inъtil porque eles consomem a mesma memуria que as variбveis inteiras regulares."

Entгo tanto faz.

Mesmo sem a tag, vocк ainda pode usar a variбvel desta maneira:
PHP код:
new gPlayerLogged[MAX_PLAYERS];
gPlayerLogged[playerid] = true// 1
gPlayerLogged[playerid] = false// 0 
@Topic

PHP код:
public OnPlayerCommandReceived(playeridcmdtext[])
{
    if (
strcmp(cmdtext"/logar"true) != && strcmp(cmdtext"/registrar"true) != && !gPlayerLogged[playerid]) // qualquer comando diferente de /logar ou /registrar serб restrito se o jogador nгo estiver logado
    
{
        
SendClientMessage(playeridCOLOR_GRAD2"Vocк precisa estar logado!");
        return 
0;
    }
    return 
1;

Reply
#6

Quote:
Originally Posted by 1sbedx
Посмотреть сообщение
"Usar bools em Pawn й completamente inъtil porque eles consomem a mesma memуria que as variбveis inteiras regulares."
Eu atй ia avisar o membro sobre isto mas aqui na board ultimamente as pessoas nгo sabem escutar coisas construtivas entгo prefiro ficar quieto e guardar meu conhecimento kkk.

Mas parabйns 1sbedx.
Reply
#7

Quote:
Originally Posted by 1sbedx
Посмотреть сообщение
"Usar bools em Pawn й completamente inъtil porque eles consomem a mesma memуria que as variбveis inteiras regulares."

Entгo tanto faz.

Mesmo sem a tag, vocк ainda pode usar a variбvel desta maneira:
PHP код:
new gPlayerLogged[MAX_PLAYERS];
gPlayerLogged[playerid] = true// 1
gPlayerLogged[playerid] = false// 0 
@Topic

PHP код:
public OnPlayerCommandReceived(playeridcmdtext[])
{
    if (
strcmp(cmdtext"/logar"true) != && strcmp(cmdtext"/registrar"true) != && !gPlayerLogged[playerid]) // qualquer comando diferente de /logar ou /registrar serб restrito se o jogador nгo estiver logado
    
{
        
SendClientMessage(playeridCOLOR_GRAD2"Vocк precisa estar logado!");
        return 
0;
    }
    return 
1;

Vou tentar explicar de uma forma mais entendнvel pra vocк, que parece que tem a mente pequena.

Se existe a tag em "bool", й porque ela serve para uma variante ter a sua setagem em dois valores lуgicos, verdadeiro e falso.

Qual a necessidade de usar uma variбvel inteira para utilizar isso?

Sim, ambos possuem a mesma ocupaзгo de memуria, ainda sгo signed int.

Isso й uma questгo de gosto e lуgica, um cуdigo organizado define o real contexto que o programador deseja seguir.

@SeuMadruga
"Eu atй ia avisar o membro sobre isto mas aqui na board ultimamente as pessoas nгo sabem escutar coisas construtivas entгo prefiro ficar quieto e guardar meu conhecimento kkk."

"Conhecimento", coloquei entre aspas, porque pra mim, isso й algo fictнcio quando se trata do que vocк se remete.
Jб que vocк tem tanto conhecimento, me diz, desde quando SendClientMessage й uma variбvel? Cara, aceita, vocк й uma pйrola na board.

"Nгo sabem diferenciar uma crнtica construtiva", e vocк sabe? Alguns citam uma crнtica construtiva, e vocк simplesmente leva pra o seu lado pessoal e usa o mesmo argumento para se abster da crнtica proposta pelo usuбrio em questгo.
Reply
#8

Quote:
Originally Posted by Cycle
Посмотреть сообщение
Vou tentar explicar de uma forma mais entendнvel pra vocк, que parece que tem a mente pequena.

Se existe a tag em "bool", й porque ela serve para uma variante ter a sua setagem em dois valores lуgicos, verdadeiro e falso.

Qual a necessidade de usar uma variбvel inteira para utilizar isso?

Sim, ambos possuem a mesma ocupaзгo de memуria, ainda sгo signed int.

Isso й uma questгo de gosto e lуgica, um cуdigo organizado define o real contexto que o programador deseja seguir.

@SeuMadruga
"Eu atй ia avisar o membro sobre isto mas aqui na board ultimamente as pessoas nгo sabem escutar coisas construtivas entгo prefiro ficar quieto e guardar meu conhecimento kkk."

"Conhecimento", coloquei entre aspas, porque pra mim, isso й algo fictнcio quando se trata do que vocк se remete.
Jб que vocк tem tanto conhecimento, me diz, desde quando SendClientMessage й uma variбvel? Cara, aceita, vocк й uma pйrola na board.

"Nгo sabem diferenciar uma crнtica construtiva", e vocк sabe? Alguns citam uma crнtica construtiva, e vocк simplesmente leva pra o seu lado pessoal e usa o mesmo argumento para se abster da crнtica proposta pelo usuбrio em questгo.
Quote:
Originally Posted by Cycle
Посмотреть сообщение
Isso й uma questгo de gosto
Pelo que vocк disse, й apenas um gosto pessoal, nгo hб necessidade de ensinar como os outros devem usar.
Senhor hipуcrita, eu te dei uma crнtica construtiva tambйm ...
Reply
#9

Quote:
Originally Posted by 1sbedx
Посмотреть сообщение
Pelo que vocк disse, й apenas um gosto pessoal, nгo hб necessidade de ensinar como os outros devem usar.
Senhor hipуcrita, eu te dei uma crнtica construtiva tambйm ...
Meu Deus do cйu, se isso nгo fosse ter utilidade, o porque criariam?

Prefiro abster essa discussгo, vocк defenderб o seu ponto de vista, e eu defenderei o meu.

Nгo estou querendo ensinar, como disse ao SeuMadruga, "Ficaria melhor vocк usar", eu nгo o obriguei.

Realize a sua interpretaзгo da forma que bem entender.

"Senhor hipуcrita"? Pelo menos eu nгo tenho problemas com a tabsize, fui construtivo, quem nгo soube interpretar foi o SeuMadruga e disse nгo preferir argumentar porque eu nгo sei receber uma crнtica construtiva.
Reply
#10

Quote:
Originally Posted by Cycle
Посмотреть сообщение
Entгo ficaria melhor vocк usar bool.
Vocк faz como quiser, porque ambos levam ao mesmo resultado e nгo hб melhor ou pior este e o ponto.
Reply
#11

Quote:
Originally Posted by 1sbedx
Посмотреть сообщение
Pelo que vocк disse, й apenas um gosto pessoal, nгo hб necessidade de ensinar como os outros devem usar.
Senhor hipуcrita, eu te dei uma crнtica construtiva tambйm ...
Vamos lб, a utilizaзгo da variбvel do tipo booleana irб depender da maneira que vocк organiza o sistema, nгo necessariamente й algo "desnecessбria", "inъtil".

Pense da seguinte maneira, em um certo dia, criei um sistema administrativo, iria utilizar bool? Nгo obviamente. Mas decidi fazer um comando /admins e bloquear este comando para membros que estejam ausentes, levando em consideraзгo que o sistema de AFK estб em bool.

Sim, poderia criar uma variбvel e atribuir o valor 0 ou 1 (ausente, nгo ausente), mas й bom vocк utilizar um pouco da organizaзгo, isso depende de cada um. Nгo posso julgar sua maneira de programar e nem vocк a minha, mas posso orientar pontos positivos e negativos.


Abraзos!
Reply
#12

Quote:
Originally Posted by Gguiz
Посмотреть сообщение
Vamos lб, a utilizaзгo da variбvel do tipo booleana irб depender da maneira que vocк organizar o sistema, nгo necessariamente й algo "desnecessбria", "inъtil".

Pense da seguinte maneira, em um certo dia, criei um sistema administrativo, iria utilizar bool? Nгo obviamente. Mas decidi fazer um comando /admins e bloquear este comando para membros que estejam ausentes, levando em consideraзгo que o sistema de AFK estб em bool.

Sim, poderia atribuir criar uma variбvel e atribuir o valor 0 ou 1 (ausente, nгo ausente), mas й bom vocк utilizar um pouco da organizaзгo, isso depende de cada um. Nгo posso julgar sua maneira de programar e nem vocк a minha, mas posso orientar pontos positivos e negativos.


Abraзos!
Sempre tem um pra entrar, o problema do tуpico aparentemente foi resolvido, fim.
Reply
#13

Cara, й simples.

Porque fazer isso:
PHP код:
new value;
if(
value != 0) return value 0
Se pode fazer isso:
PHP код:
new bool:value;
if(
value != false) return value false
Alйm de que, bool й suportбvel atй dois valores, verdadeiro e falso, a variбvel inteira, suporta atй diversos valores(nгo exatamente), isso й algo desnecessбrio, isso sim й desnecessбrio, usar uma variбvel inteira pra armazenar somente dois valores.
Reply
#14

Quote:
Originally Posted by Cycle
Посмотреть сообщение
"Conhecimento", coloquei entre aspas, porque pra mim, isso й algo fictнcio quando se trata do que vocк se remete.
Jб que vocк tem tanto conhecimento, me diz, desde quando SendClientMessage й uma variбvel? Cara, aceita, vocк й uma pйrola na board.

"Nгo sabem diferenciar uma crнtica construtiva", e vocк sabe? Alguns citam uma crнtica construtiva, e vocк simplesmente leva pra o seu lado pessoal e usa o mesmo argumento para se abster da crнtica proposta pelo usuбrio em questгo.
Como diz a assinatura do [BOPE]Seu._.Madruga
Quote:
Originally Posted by [BOPE]Seu._.Madruga
Посмотреть сообщение
• O topo da inteligкncia й alcanзar a humildade •
Estгo discutindo por causa de usar "0" que й "false" e "1" que й "true" sгo as mesmas coisas se ele vendo o cуdigo dele e entendendo o que significa nгo vejo problema algum de usar "0" ou "1", atй porque o problema й dele o se irб praticamente inutilizar uma variбvel que poderia servir para guardar mais valores.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)