CMD setlevel o que esta errado??

Ir em baixo

CMD setlevel o que esta errado??

Mensagem por Fabio_BR em Seg Out 19, 2015 1:59 pm

// fiz esse cmd que nao da erro mas na hora que eu coloco o comando no jogo nao aparece nada! alguma coisa esta errada , me ajudem ai....///
if (cmd == SetLevel )
{
if ( stats[ player.ID ].Level < 10 ) MessagePlayer( "Voce nao tem acesso a este comando.", player);
else if (!text) Messageplayer ("Erro no comando.  Use /SetLevel <jogador> <nivel>",player);
else
{
local plr = GetPlayer( GetTok( text, " ", 1 ) );
if ( !plr ) MessagePlayer( "Error - jogador desconhecido.", player);
local lvl = GetPlayer( GetTok( text, " ", 2 ) );
if ( !lvl ) MessagePlayer( "Error - jogador desconhecido.", player);
else if (!IsNum(lvl)) ePrivMessage("Use apenas numeros para nivel..",player);
   else
{
ePrivMessage(" Admin " + player.Name + " deu nivel a " + plr.Name + ", Nivel: " + lvl + ".",player);
   QuerySQL(sqliteDB,"UPDATE Accounts SET Level='" + lvl + "' WHERE Name='" + plr.Name + "'");
                  EchoMessage( ICOL_RED + "Admin " + player.Name + " Deu nivel a " + plr.Name + ", Nivel: " + lvl + "." );
}
}
}
acontece o mesmo erro com o cmd setmoney , é como se o server nao reconhecesse  os cmds que eu adiciono...
e quando eu uso a v15 do server nao funciona nenhum mesmo!

Fabio_BR

Mensagens : 23
Pontos : 55
Reputação : 0
Data de inscrição : 19/10/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: CMD setlevel o que esta errado??

Mensagem por Diego^ em Qua Out 21, 2015 2:11 am

Código:
if ( cmd == "setlevel" )
{
if ( stats[ player.ID ].Level < 10 ) MessagePlayer( "Voce nao tem acesso a este comando.", player);
else if (!text) MessagePlayer ("Erro no comando.  Use /SetLevel <jogador> <nivel>",player);
else
{
local plr = GetPlayer( GetTok( text, " ", 1 ) );
if ( !plr ) MessagePlayer( "Error - jogador desconhecido.", player);
else
{
local lvl = GetTok( text, " ", 2);
if ( !lvl ) MessagePlayer("Erro no comando.  Use /SetLevel <jogador> <nivel>",player);
else if (!IsNum(lvl)) MessagePlayer("Use apenas numeros para nivel..",player);
else
{
stats[ player.ID ].Level = lvl.tointeger();
Message(" Admin " + player.Name + " deu nivel a " + plr.Name + ", Nivel: " + lvl + ".");
QuerySQL(sqliteDB,"UPDATE Accounts SET Level='" + lvl.tointeger()+ "' WHERE Name='" + plr.Name + "'");
EchoMessage( ICOL_RED + "Admin " + player.Name + " Deu nivel a " + plr.Name + ", Nivel: " + lvl + "." );
}
}
}
}

Caso você não tenha a função GetTok:

Código:
function GetTok(string, separator, n, ...)
{
   local m = vargv.len() > 0 ? vargv[0] : n,
        tokenized = split(string, separator),
        text = "";

   if (n > tokenized.len() || n < 1) return null;
   for (; n <= m; n++)
   {
      text += text == "" ? tokenized[n-1] : separator + tokenized[n-1];
   }
   return text;
}

Uma função também muito eficiente é a função NumTok:

Código:
function NumTok(string, separator)
{
   local tokenized = split(string, separator);
   return tokenized.len();
}

Erros encontrados:

Código:
if (cmd == SetLevel )
Faltou as "ASPAS".

Código:
Messageplayer ("Erro no comando.  Use /SetLevel <jogador> <nivel>",player);
MessagePlayer.

Código:
local lvl = GetPlayer( GetTok( text, " ", 2 ) );
Com a função GetPlayer, você esta buscando por outro player na parte de level. Foi substituído por GetTok.


Última edição por Diego^ em Qui Out 22, 2015 8:52 pm, editado 1 vez(es)

_________________
avatar
Diego^
Desenvolvedor

Mensagens : 60
Pontos : 106
Reputação : 21
Data de inscrição : 11/06/2015
Idade : 21
Localização : Brazil

Ver perfil do usuário http://vcmp-br.umforum.net

Voltar ao Topo Ir em baixo

Re: CMD setlevel o que esta errado??

Mensagem por Fabio_BR em Qui Out 22, 2015 5:47 pm

Mais aqui da um problema neste script:
local lvl = GetTok( text, " ", 2);
if ( !lvl ) Messageplayer ("Erro no comando. Use /SetLevel <jogador> <nivel>",player);

Que é pra quando o nivel nao for inserido ,avisa erro no comando , só que quando eu entro no jogo
e coloco /setlevel fab (sem o valor do nivel) ele nao avisa igual diz o comando. só avisa se eu colocar
somente /setlevel.

Fabio_BR

Mensagens : 23
Pontos : 55
Reputação : 0
Data de inscrição : 19/10/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: CMD setlevel o que esta errado??

Mensagem por Diego^ em Qui Out 22, 2015 8:52 pm

Tenta assim:

Código:
local lvl = GetTok( text, " ", 2);
if ( !lvl ) MessagePlayer("Erro no comando. Use /SetLevel <jogador> <nivel>",player);

_________________
avatar
Diego^
Desenvolvedor

Mensagens : 60
Pontos : 106
Reputação : 21
Data de inscrição : 11/06/2015
Idade : 21
Localização : Brazil

Ver perfil do usuário http://vcmp-br.umforum.net

Voltar ao Topo Ir em baixo

Re: CMD setlevel o que esta errado??

Mensagem por Fabio_BR em Sex Out 23, 2015 1:40 pm

Agora funcionou, vlw

Fabio_BR

Mensagens : 23
Pontos : 55
Reputação : 0
Data de inscrição : 19/10/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: CMD setlevel o que esta errado??

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum