Variбveis de Cargos -
Dolpin - 17.12.2014
Bom, estou com um problema, e nгo consegui resolver, ai vim pro Fуrum.
O Problema e que as variбveis de cargo como por exemplo:
Cargo[playerid][Admin]
Eu tenho vбrios cargos em meu servidor, mas quando adiciono um comando restrito fazendo deste jeito:
pawn Код:
if(Cargo[playerid][Admin] == 0 || Cargo[playerid][Cargo1] == 0 || Cargo[playerid][Cargo2] == 0) return SCM(playerid, -1, "Nгo tem permissгo.");
Sу funciona se a pessoa for admin, ou seja o 1° que estб no if, os demais Cargos nгo sгo contados.
Sempre que eu coloco eu para o Cargo1 ele me retorna uma a Mensagem "Nгo tem permissгo".
Eu coloco == 0 e nгo < 1 porque os cargos sу tem 1 Nнvel ou seja, se for й 1 se nгo tiver й 0.
Resumindo, eu nгo consigo colocar permissхes em comandos, sempre retorna a mensagem que nгo tenho permissгo. Mesmo eu estando setado pro Cargo 1.
#edit
Eu gostaria que vбrios cargos usassem o comando, sem restriзгo, pois se o Admin vem 1° sу ele pode efetuar o comando.
Como por exemplo:
pawn Код:
CMD:exemplo(playerid)
{
if(Cargo[playerid][Cargo1] == 0 || Cargo[playerid][Cargo2] == 0) return SCM(playerid, -1, "Nгo tem permissгo");
SCM(playerid, -1, "Vocк tem permissгo!");
return 1;
}
E Os cargos1 e cargo2 sгo exemplos, nгo estгo em meu Gamemode.
Re: Variбveis de Cargos -
ipsLuan - 17.12.2014
Interprete o seu comando.
pawn Код:
if(Cargo[playerid][Admin] == 0 || Cargo[playerid][Cargo1] == 0 || Cargo[playerid][Cargo2] == 0) return SCM(playerid, -1, "Nгo tem permissгo.");
Se ele for Admin = 0 ou Cargo 1 = 0 ou Cargo 2 = 0 vai retornar a mensagem.
Re: Variбveis de Cargos -
MultiKill - 17.12.2014
Verifique se vocк estб armazenado certo na variavel cargo1.
Re: Variбveis de Cargos -
JonathanFeitosa - 17.12.2014
Tб, o que vocк estб fazendo ai... Simples..
Resumidamente, estб assim seu code:
O Cargo desse player de admin й 0.(correto) O Cargo desse player do Cargo1 й 0. O Cargo desse player do Cargo2 й 0.(errado)
Ou seja, sem lуgica.
Vocк nгo estб dando valor as variбveis Cargo. Ela sempre vai ser 0. Nunca vai sair do 0.
Correto seria:
pawn Код:
Cargo[playerid][Cargos/*ou qualquer outra coisa definida no enum*/] = 1;
Cargo[playerid][Cargos] = 2;
Cargo[playerid][Cargos] = 3;
// Nas condiзхes
if(Cargo[playerid][Cargos] == 0) SendClientMessage(playerid, -1, "Vocк tem Cargo 0");
if(Cargo[playerid][Cargos] == 1) SendClientMessage(playerid, -1, "Vocк tem Cargo 1");
if(Cargo[playerid][Cargos] == 2) SendClientMessage(playerid, -1, "Vocк tem Cargo 2");
if(Cargo[playerid][Cargos] == 3) SendClientMessage(playerid, -1, "Vocк tem Cargo 3");
Por que pega o Cargo Admin? porque vocк estб fazendo o uso correto dela de acordo nisso que eu expliquei.
Re: Variбveis de Cargos -
ipsLuan - 17.12.2014
Faz a enum desse jeito.
pawn Код:
enum Var {
Admin,
Cargo
};
new Cargo[MAX_PLAYERS][Var];
/* Uso: Cargo[playerid][Admin] = 1;
Cargo[playerid][Cargo] = 1 */
Re: Variбveis de Cargos -
JonathanFeitosa - 17.12.2014
Quote:
Originally Posted by xCR7
Faz a enum desse jeito.
pawn Код:
enum Var { Admin, Cargo }; new Cargo[MAX_PLAYERS][Var];
/* Uso: Cargo[playerid][Admin] = 1; Cargo[playerid][Cargo] = 1 */
|
Nesse caso, vocк estб fazendo:
Ou seja, o compilador vai 'reclamar'
dizendo que estб repetida a variбvel.
Uma dica й
sempre diferenciar e deixar objetiva o nome das variбveis. Se nгo depois nгo entendemos o que estamos fazendo com ela.
Re: Variбveis de Cargos -
ipsLuan - 17.12.2014
Quote:
Originally Posted by JonathanFeitosa
Nesse caso, vocк estб fazendo:
Ou seja, o compilador vai 'reclamar' dizendo que estб repetida a variбvel.
Uma dica й sempre diferenciar e deixar objetiva o nome das variбveis. Se nгo depois nгo entendemos o que estamos fazendo com ela.
|
Mas nesse caso ele vai poder usar Cargo[playerid][Admin] e Cargo[playerid][Cargo].
Й sу ele excluir a enum anterior e usar desse jeito.
Re: Variбveis de Cargos -
Artista - 17.12.2014
Tente fazer dessa forma:
pawn Код:
if(!Cargo[playerid][Admin] && !Cargo[playerid][Cargo1] && !Cargo[playerid][Cargo2]) return SCM(playerid, -1, "Nгo tem permissгo.");
Re: Variбveis de Cargos -
JonathanFeitosa - 17.12.2014
Quote:
Originally Posted by xCR7
Mas nesse caso ele vai poder usar Cargo[playerid][Admin] e Cargo[playerid][Cargo].
Й sу ele excluir a enum anterior e usar desse jeito.
|
Bota seu esse enum no pawno e compila. Ai vocк vai ver o que eu expliquei.
Quote:
Originally Posted by Artista
Tente fazer dessa forma:
pawn Код:
if(!Cargo[playerid][Admin] && !Cargo[playerid][Cargo1] && !Cargo[playerid][Cargo2]) return SCM(playerid, -1, "Nгo tem permissгo.");
|
Й sempre bom economizarmos
mem|
уria, no caso de um GM 'gigantesco'. :P
Re: Variбveis de Cargos -
Dolpin - 17.12.2014
Quote:
Originally Posted by xCR7
Interprete o seu comando.
pawn Код:
if(Cargo[playerid][Admin] == 0 || Cargo[playerid][Cargo1] == 0 || Cargo[playerid][Cargo2] == 0) return SCM(playerid, -1, "Nгo tem permissгo.");
Se ele for Admin = 0 ou Cargo 1 = 0 ou Cargo 2 = 0 vai retornar a mensagem.
|
E o que eu fiz.
Quote:
Originally Posted by MultiKill
Verifique se vocк estб armazenado certo na variavel cargo1.
|
Sim, eu uso comandos para setar.
Quote:
Originally Posted by JonathanFeitosa
Tб, o que vocк estб fazendo ai... Simples..
Resumidamente, estб assim seu code: O Cargo desse player de admin й 0.(correto) O Cargo desse player do Cargo1 й 0. O Cargo desse player do Cargo2 й 0.(errado)
Ou seja, sem lуgica. Vocк nгo estб dando valor as variбveis Cargo. Ela sempre vai ser 0. Nunca vai sair do 0.
Correto seria:
pawn Код:
Cargo[playerid][Cargos/*ou qualquer outra coisa definida no enum*/] = 1; Cargo[playerid][Cargos] = 2; Cargo[playerid][Cargos] = 3;
// Nas condiзхes if(Cargo[playerid][Cargos] == 0) SendClientMessage(playerid, -1, "Vocк tem Cargo 0"); if(Cargo[playerid][Cargos] == 1) SendClientMessage(playerid, -1, "Vocк tem Cargo 1"); if(Cargo[playerid][Cargos] == 2) SendClientMessage(playerid, -1, "Vocк tem Cargo 2"); if(Cargo[playerid][Cargos] == 3) SendClientMessage(playerid, -1, "Vocк tem Cargo 3");
Por que pega o Cargo Admin? porque vocк estб fazendo o uso correto dela de acordo nisso que eu expliquei.
|
Bom, e quase isso que eu queria fazer, como sу existem 2 Nнveis de Nнveis, Por exemplo 0 e 1 Se a pessoa tiver com 0 nгo й do Cargo, e se ela tiver com 1 Ela й do cargo. Mas ainda sim nгo consegui.
Quote:
Originally Posted by xCR7
Faz a enum desse jeito.
pawn Код:
enum Var { Admin, Cargo }; new Cargo[MAX_PLAYERS][Var];
/* Uso: Cargo[playerid][Admin] = 1; Cargo[playerid][Cargo] = 1 */
|
Eu tenho isso tambйm cara.
Quote:
Originally Posted by Artista
Tente fazer dessa forma:
pawn Код:
if(!Cargo[playerid][Admin] && !Cargo[playerid][Cargo1] && !Cargo[playerid][Cargo2]) return SCM(playerid, -1, "Nгo tem permissгo.");
|
Mas ai o Jogador teria que ser os 3 Cargos ao mesmo tempo, '&&' '||', Mas ainda sim nгo resolveu a negaзгo.