[AJUDA] Erro no comando (cmd).
#1

Seguinte, estou com um pequeno problema, toda vez que eu utilizo algum comando
Код:
if(strcmp(cmd, "/comandoqualquer", true) == 0)
que tenha o (CMD) tudo passa a dar errado no OnPlayerCommandText, qualquer comando que eu digite vai returnar uma mensagem de erro que eu coloquei
Код:
Vocк nгo estб trabalhando......
, nгo sei o que acontece, jб tentei de todas as maneiras, o return do OnPlayerCommandText estб em 'zero', e o bug ocorre apenas com as funзхes 'CMD'.

Alguйm jб teve um problema parecido? abaixo o cуdigo do comando que estб dando erro.. "/kick".

Jб testei com outros comandos que usem o 'cmd' e todos dгo erros.

preciso de ajuda;

vlw.

Код:
if(strcmp(cmd, "/kick", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	    	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, COR_CINZA, "USE: /kick [ID/NOME] [RASГO]");
			giveplayerid = ReturnUser(tmp);
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(pAdministrando[playerid] == 1)
			    {
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
							new length = strlen(cmdtext);
							while ((idx < length) && (cmdtext[idx] <= ' '))
							{
								idx++;
							}
							new offset = idx;
							new result[128];
							while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
							{
								result[idx - offset] = cmdtext[idx];
								idx++;
							}
							result[idx - offset] = EOS;
							if(!strlen(result))  return SendClientMessage(playerid, COR_CINZA, "USE: /kick [ID/NOME] [RASГO]");
							format(string, sizeof(string), "O administrador %s (ID:%d) kickou %s motivo: %s", pNome(playerid), playerid, pNome(giveplayerid), result);
							SendClientMessageToAll(COR_ADM, string);
							Kick(giveplayerid);
							return 1;
						}
					}
				}
				else
				{
				    SendClientMessage(playerid, COR_CINZA, "Vocк nгo estб em modo de trabalho! (/profadmin)");
				}
			}
			else
			{
				SendClientMessage(playerid, COR_CINZA, "[ERROR] ID Invбlido.");
			}
		}
		return 1;
	}
Reply
#2

Posta o inicio do callback : OnPlayerCommandText , atй o primeiro comando, depois posta o ultimo comando atй o return do callback com a menssagen de erro.
Reply
#3

Quote:
Originally Posted by vinewood
Посмотреть сообщение
Posta o inicio do callback : OnPlayerCommandText , atй o primeiro comando, depois posta o ultimo comando atй o return do callback com a menssagen de erro.
GM do zero, tenho poucos comandos..

Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new string[256], tmp[128];
    new cmd[256];
    new idx, giveplayerid;
	new carid = GetPlayerVehicleID(playerid);
	new carmodel = GetVehicleModel(GetPlayerVehicleID(playerid));
	new engine,lights,alarm,doors,bonnet,boot,objective;
	
    if(strcmp(cmd, "/kick", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	    	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, COR_CINZA, "USE: /kick [ID/NOME] [RASГO]");
			giveplayerid = ReturnUser(tmp);
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(PlayerInfo[playerid][pTrabalhando] == 1)
			    {
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
							new length = strlen(cmdtext);
							while ((idx < length) && (cmdtext[idx] <= ' '))
							{
								idx++;
							}
							new offset = idx;
							new result[128];
							while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
							{
								result[idx - offset] = cmdtext[idx];
								idx++;
							}
							result[idx - offset] = EOS;
							if(!strlen(result))  return SendClientMessage(playerid, COR_CINZA, "USE: /kick [ID/NOME] [RASГO]");
							format(string, sizeof(string), "O administrador %s (ID:%d) kickou %s motivo: %s", pNome(playerid), playerid, pNome(giveplayerid), result);
							SendClientMessageToAll(COR_ADM, string);
							Kick(giveplayerid);
							return 1;
						}
					}
				}
				else
				{
				    SendClientMessage(playerid, COR_CINZA, "Vocк nгo estб em modo de trabalho! (/profadmin)");
				}
			}
			else
			{
				SendClientMessage(playerid, COR_CINZA, "[ERROR] ID Invбlido.");
			}
		}
		return 1;
	}
	if(!strcmp(cmdtext, "/janela", true) || !strcmp(cmdtext, "/ja", true))
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(pLogado[playerid] == 0) return SendClientMessage(playerid, COR_CINZA, "Vocк nгo estб logado!");
	        if(IsPlayerInVehicle(playerid, carid))
	        {
	            if(SemJanela(carmodel)) return SendClientMessage(playerid, COR_CINZA, "Esse veнculo nгo possui janelas!");
	            if(PlayerInfo[playerid][pMascarado] == 0)
	            {
		            if(JanelaAberta[carid] == 0)
		            {
		                format(string, sizeof(string), "%s aperta o botгo e abaixa sua janela.", pNome(playerid));
						ProxDetector(10.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
		                JanelaAberta[carid] = 1;
		            }
		            else
		            {
		                format(string, sizeof(string), "%s aperta o botгo e ergue sua janela.", pNome(playerid));
						ProxDetector(10.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
		                JanelaAberta[carid] = 0;
		            }
				}
				else
				{
	                if(JanelaAberta[carid] == 0)
		            {
		                format(string, sizeof(string), "Estranho aperta o botгo e abaixa sua janela.");
						ProxDetector(10.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
		                JanelaAberta[carid] = 1;
		            }
		            else
		            {
		                format(string, sizeof(string), "Estranho aperta o botгo e ergue sua janela.");
						ProxDetector(10.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
		                JanelaAberta[carid] = 0;
		            }
				}
	        }
	        else return SendClientMessage(playerid, COR_CINZA, "Vocк nгo estб em um veнculo!");
		}
		return 1;
	}
	if(!strcmp(cmdtext, "/vehid", true))
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(IsPlayerInAnyVehicle(playerid))
	        {
	            format(string, sizeof(string), "Veнculo ID: %d.", GetPlayerVehicleID(playerid));
	            SendClientMessage(playerid, COR_CINZA, string);
	            return 1;
	        }
	    }
	    return 1;
	}
//--- Fim OnPlayerCommandText
	return 0;
}
Isso й tudo que tem no meu OnPlayerCommandText.





@ EDIT -

Tirei tudo do OnPlayerCommandText, tudo mesmo.

troquei a strtok, includes e qualquer coisa que eu conhecia que podia influenciar nesse erro.

meu OnPlayerCommandText ficou assim:

Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new string[256], tmp[128];
    new cmd[256];
    new idx, giveplayerid;
//---
    if(strcmp(cmd, "/kick", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	    	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, COR_CINZA, "USE: /kick [ID/NOME] [RASГO]");
			giveplayerid = ReturnUser(tmp);
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(PlayerInfo[playerid][pTrabalhando] == 1)
			    {
					if(IsPlayerConnected(giveplayerid))
					{
					    if(giveplayerid != INVALID_PLAYER_ID)
					    {
							new length = strlen(cmdtext);
							while ((idx < length) && (cmdtext[idx] <= ' '))
							{
								idx++;
							}
							new offset = idx;
							new result[128];
							while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
							{
								result[idx - offset] = cmdtext[idx];
								idx++;
							}
							result[idx - offset] = EOS;
							if(!strlen(result))  return SendClientMessage(playerid, COR_CINZA, "USE: /kick [ID/NOME] [RASГO]");
							format(string, sizeof(string), "O administrador %s (ID:%d) kickou %s motivo: %s", pNome(playerid), playerid, pNome(giveplayerid), result);
							SendClientMessageToAll(COR_ADM, string);
							Kick(giveplayerid);
							return 1;
						}
					}
				}
				else
				{
				    SendClientMessage(playerid, COR_CINZA, "Vocк nгo estб em modo de trabalho! (/profadmin)");
				}
			}
			else
			{
				SendClientMessage(playerid, COR_CINZA, "[ERROR] ID Invбlido.");
			}
		}
		return 1;
	}
//--- Fim OnPlayerCommandText
	return 0;
}
a mensagem de erro, й quando verifica se o ADM estб em modo de trabalho, se ele nгo estiver returna a mensagem de erro, mas se eu digitar /a, /b, /qualquerporra ele da essa mensagem.


@ EDIT 2-

Jб troquei de kick, usei outros cmds, nada funciona! Alguйm me ajuda :/
Reply
#4

Mals o flood..

Eu coloquei todo o meu GM em comentбrio! deixei apenas o login e a enum pInfo, e continua dando esse erro >_<

Alguйm sabe o que й isso?
Reply
#5

Copia pra otro GM do zero, tanta ae
Reply
#6

Jб tentei, jб criei um GM apenas para colocar o comando de "/kick".
Reply
#7

tenta com o include zcmd, acho que й isso
Reply
#8

Quote:
Originally Posted by 385gtamaster
Посмотреть сообщение
tenta com o include zcmd, acho que й isso
Irei fazer um teste, vlw.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)