Ayuda Con Un Comando
#1

Bueno Estoy Asiendo Unos Comandos De Colores Para El Jugador
Ejemplo
Код:
else if(strcmp(cmdtext,"/color 1",true)==0)
	{
	SetPlayerColor(playerid,COLOR_MEDIUMBLUE);
	return 1;
	}
La Pregunta Es Como Puedo Hacer Que Cuando Un Jugador Utilize El Comando,
Pero No Ponga El Comando Bien Escriba Solamente /color Le Aparesca Un Mensaje Diciendo El Comando No Esta Completo Utilize ID 1 Para Completar El Comando

Bueno Muchas Gracias Por Leer Este Tema Cualquier Ayuda Se lo Agradesco...
Reply
#2

puede ser que uses este comado asi mira
pawn Код:
if(strcmp(cmdtext, "/color", true) == 0){
    SendClientMessage(playerid, 0xFF0000FF, "Los colores que existan");
    return 1;
  }
no se si eso es lo que estas buscando
espero que te sirva
Reply
#3

pawn Код:
if(strcmp(cmd, "/Color 1", true) == 0)
  {
  new tmp[256];
  tmp = strtok(cmdtext, idx);
  if(!strlen(tmp))
  {
  SendClientMessage(playerid,0xFF0000FF,"El Comando No Esta Completo Utilize ID 1 Para Completar El Comando");
  return 1;
  }
  SetPlayerColor(playerid,COLO_MEDIUMBLUE);
  return 1;
}
Aunque te recomiendo que lo hagas mбs norma. /Azul /Rojo /Verde...
Reply
#4

Muchas Gracias Por Sus Ayudas
Reply
#5

Ciertamente todo lo que dijeron estб mal, debido a que si pones:
pawn Код:
if(strcmp(cmd, "/color 1", true) == 0) // "/color 1" entre comillas, ya el comando vendria a ser directamente "color 1", mas no "color" + el ID
Ojalб yo supiera utilizar strtok, pero nahh, no lo se, aunque te puedo dar un ejemplo con dcmd + sscanf si algun dнa lo decides usar:
pawn Код:
dcmd_color(playerid, params[])
{
  new id;

  if(sscanf(params, "d", id)) return SendClientMessage(playerid, COLOR, "Uso: /color [id]"); // esto es lo que tu quieres
  else if(id < 1 || id > 150) return SendClientMessage(playerid, COLOR, "El id debe ser mayor a cero y menor a 150!"); // cambia 1 y 150 por los valores que quieras
  else
  {
    if(id == 1) return SetPlayerColor(playerid, COLOR);
    else if(id == 2) return SetPlayerColor(playerid, COLOR);
    else if(id == 3) return SetPlayerColor(playerid, COLOR);
    else if(id == 4) return SetPlayerColor(playerid, COLOR);
    else if(id == 5) return SetPlayerColor(playerid, COLOR);
    else if(id == 6) return SetPlayerColor(playerid, COLOR);
    else if(id == 7) return SetPlayerColor(playerid, COLOR);
    else if(id == 8) return SetPlayerColor(playerid, COLOR);
    // y asн...
  }
  return 1;
}

Reply
#6

Quote:
Originally Posted by SAWC™
Ciertamente todo lo que dijeron estб mal, debido a que si pones:
pawn Код:
if(strcmp(cmd, "/color 1", true) == 0) // "/color 1" entre comillas, ya el comando vendria a ser directamente "color 1", mas no "color" + el ID
Ojalб yo supiera utilizar strtok, pero nahh, no lo se, aunque te puedo dar un ejemplo con dcmd + sscanf si algun dнa lo decides usar:
pawn Код:
dcmd_color(playerid, params[])
{
  new id;

  if(sscanf(params, "d", id)) return SendClientMessage(playerid, COLOR, "Uso: /color [id]"); // esto es lo que tu quieres
  else if(id < 1 || id > 150) return SendClientMessage(playerid, COLOR, "El id debe ser mayor a cero y menor a 150!"); // cambia 1 y 150 por los valores que quieras
  else
  {
    if(id == 1) return SetPlayerColor(playerid, COLOR);
    else if(id == 2) return SetPlayerColor(playerid, COLOR);
    else if(id == 3) return SetPlayerColor(playerid, COLOR);
    else if(id == 4) return SetPlayerColor(playerid, COLOR);
    else if(id == 5) return SetPlayerColor(playerid, COLOR);
    else if(id == 6) return SetPlayerColor(playerid, COLOR);
    else if(id == 7) return SetPlayerColor(playerid, COLOR);
    else if(id == 8) return SetPlayerColor(playerid, COLOR);
    // y asн...
  }
  return 1;
}

no estoy de acuerdo con lo que decis ya que tanto si creara un comando nuevo llamado "/color" como sugeri o si hace algo mas profecional x asi decirlo como lo que sugirio Cristian, al poner /color apareceria lo que el quiere.
Reply
#7

Bueno Hice Lo Que Me Dijo CristianTdj Pero Me Salen Dos Error
Код:
C:\Users\G.B\Desktop\lvdm.pwn(1140) : error 017: undefined symbol "strtok"
C:\Users\G.B\Desktop\lvdm.pwn(1140) : error 033: array must be indexed (variable "tmp")
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Reply
#8

agrega esto al final del GM o FS
pawn Код:
strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
espero q te ayude
Reply
#9

Gracias
Reply
#10

Yo solo lo decнa porque si pones "/color 1", como comando (como hizo cristian), entonces si escribieras "/color" (estando conectado al servidor) saldrнa Unknown command, o no?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)