PDA

View Full Version : [AYUDA]Server Unknown Command.


CristianTdj
24/12/2009, 09:57 AM
Hola, tengo un problema y es que cuando alguien pone algún comando extraño "/jasdnhguis" no sale nada y debería salir Server: Unknow Command.

Me pasó justo después de poner un comando de If(IsPlayerLAdmin) porque esa parte iba junto al filterscript de Ladmin pero la puse en el gamemode, después de poner el comando puse
lo típico de
}else{
SendClientMessage(playerid, FF0000FF, "Tú no eres admin.");

y desde entonces si ponías cualquier comando inexistente salía 'Tú no eres admin', lo quité y ya ni eso.

Miguel
24/12/2009, 05:13 PM
Muestranos el comando completo para ver donde esta el error.

CristianTdj
24/12/2009, 05:29 PM
if (IsPlayerAdminLevel(playerid, 3))
{
if(!strcmp(cmdtext,"/amarillo",true))
{
SetPlayerColor(playerid,0xFFFF00FF);
SendClientMessage(playerid, 0xFFFF00FF, "Color para admins cambiado.");
return true;
}
return 1;
}

Actualmente así está, no se para que lo quieres...

Miguel
24/12/2009, 06:04 PM
Puedes tratar esto:


if(!strcmp(cmdtext, "/amarillo", true))
{
if(condicion) // cualquier condición
{
efecto // cualquier cosa que pasa cuando ocurre la condicion.
//no colocar return 1; aqui.
}
else if(condicion 2)
{
efecto 2 // cualquier cosa que pasa cuando ocurre la condicion una...
//no colocar return 1; aqui
}
else
{
//cualquier cosa que pasa si ninguna de las condiciones se cumplio...
//no colocar return 1; aqui
}
return 1; // siempre colorcarlo al final del comando y no dentro de las condiciones
}


Yo antes no sabia donde poner los return por lo que hacia un revoltijo con mis comandos (que para colmo estaban mal hechos), entonces se me ocurrió un dia buscar en el forum en ingles, ¿donde colocar los return?, y entonces vi que alguien puso "Los return siempre van al final del comando", por lo que desde ese momento lo hago y lo sigo haciendo así. No se si ese sea el problema pero intenta a ver. También puedes chekear que esté el return 0; al final de toda la lista de comando, es decir, cerrando los brakets de OnPlayerCommandText. Ejemplo:


public OnPlayerCommandText(playerid, cmdtext)
{
//todos los comandos y sus respectivas condiciones...
.
.
.
return 0;
}

CristianTdj
24/12/2009, 10:39 PM
Omg, tengo todo correcto, pero es eso que no tengo lo de Unknown Command, a ver si lo puedo poner.

MrDeath537
26/12/2009, 06:11 AM
Lo ideal sería así:

if(strcmp(cmdtext,"/amarillo",true))
{
if (IsPlayerAdminLevel(playerid, 3))
{
SetPlayerColor(playerid,0xFFFF00FF);
SendClientMessage(playerid, 0xFFFF00FF, "Color para admins cambiado.");
}
else
{
SendClientMessage(playerid, 0xFFFF00FF, "No eres Admin");
}
return 1;
}

No?

GoodFoogy
26/12/2009, 01:36 PM
Puedes tratar esto:


if(!strcmp(cmdtext, "/amarillo", true))
{
if(condicion) // cualquier condición
{
efecto // cualquier cosa que pasa cuando ocurre la condicion.
//no colocar return 1; aqui.
}
else if(condicion 2)
{
efecto 2 // cualquier cosa que pasa cuando ocurre la condicion una...
//no colocar return 1; aqui
}
else
{
//cualquier cosa que pasa si ninguna de las condiciones se cumplio...
//no colocar return 1; aqui
}
return 1; // siempre colorcarlo al final del comando y no dentro de las condiciones
}


Yo antes no sabia donde poner los return por lo que hacia un revoltijo con mis comandos (que para colmo estaban mal hechos), entonces se me ocurrió un dia buscar en el forum en ingles, ¿donde colocar los return?, y entonces vi que alguien puso "Los return siempre van al final del comando", por lo que desde ese momento lo hago y lo sigo haciendo así. No se si ese sea el problema pero intenta a ver. También puedes chekear que esté el return 0; al final de toda la lista de comando, es decir, cerrando los brakets de OnPlayerCommandText. Ejemplo:


public OnPlayerCommandText(playerid, cmdtext)
{
//todos los comandos y sus respectivas condiciones...
.
.
.
return 0;
}



Muy buena explicacion ;D

CristianTdj
27/12/2009, 09:00 PM
Muy bien, gracias a todos.

Cierren el post.