SA-MP Forums Archive
Crear comando con un espacio - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Crear comando con un espacio (/showthread.php?tid=536893)



Crear comando con un espacio - MrNatrio - 12.09.2014

Buenas,

Quiero crear un comando que contenga dos palabras separadas por un espacio. Ejemplo: /enviar mensaje.

Lo porbй de hacer con sscanf haciendo йsto:

pawn Код:
CMD:enviar(playerid, params[]) //comando: /enviar mensaje
{
  new Texto[10];
  if(sscanf(params,"s",Texto))
  if(Texto == "mensaje") //lнnia 2003
  {
  SendClientMessage(playerid,-1,"Enviaste un mensaje");
  }
  return 1;
}
pero me dб un error:
Quote:

(2003) : error 033: array must be indexed (variable "Texto")
1 Error.

No sй como quitar este error ya que la palabra que estб dentro de el array Texto ocupa todo el espacio y no sй como indicarle.

Tambiйn dudo que se haga asн pero era para probar. En caso de que no se haga asн, їalguien me podrнa enseсar a hacerlo bien?

EDITO

Ahora lo he probado con:

pawn Код:
CMD:enviar(playerid, params[]) //comando: /enviar mensaje
{
  new comprobar[2];
  if(sscanf(params,"s[2]",comprobar)) return SendClientMessage(playerid,blue,"Uso: /enviar mensaje");
  if(strcmp(comprobar,"mensaje",true) == 0)
  {
  SendClientMessage(playerid,-1,"Enviaste un Mensaje");
  }
  return 1;
}
Y no me diу ningъn error pero cuando pongo /enviar mensaje en el juego, no hace nada.

Gracias de antemano.


Re: Crear comando con un espacio - K4IS3R - 12.09.2014

Testeado. Has puesto "s[2]", por lo que la string sуlo puede contener 2 caracteres.

Код:
YCMD:enviar(playerid, params[], help)
{
	if(!sscanf(params, "s[16]", params[0]))
	{
	    if(!strcmp(params[0], "mensaje", true))
	    {
	        SendClientMessage(playerid, -1, "CORRECTO!");
	    }
	}
	else SendClientMessage(playerid, -1, "Uso: /enviar mensaje");

	return 1;
}



Respuesta: Crear comando con un espacio - Stront - 12.09.2014

CMD:enviar(playerid, params[]) //comando: /enviar mensaje
{
new comprobar[10];
if(sscanf(params,"s[10]",comprobar)) return SendClientMessage(playerid,blue,"Uso: /enviar mensaje");
if(strcmp(comprobar,"mensaje",true) == 0)
{
SendClientMessage(playerid,-1,"Enviaste un Mensaje");
}
return 1;
}

Tienes que aumentar el array de comprobar


Respuesta: Crear comando con un espacio - MrNatrio - 12.09.2014

Gracias a los dos, ya me funciona como toca y ya sй como hacer comandos asн.