[Guía] Crear Comando /kill con strcmp

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Miguelcarp
Aprendiz
Aprendiz
Mensajes: 412
Registrado: 20 Jul 2014 13:16
Reputación: 5

03 Oct 2014 10:45

¿Como Creo Comando /kill?

Aquí la respuesta, esto es muy facil y sencillo para los que no comprendan mucho de el tema intentare expresarme aun mas bueno comencemos.

Buscamos la linea
 Codigo Pawno:
1

public OnPlayerCommandText(playerid, cmdtext[])
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Bueno este seria el Public entero pero no se fijen en lo que dice el comando que ahora lo cambiaremos.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13

public OnPlayerCommandText(playerid, cmdtext[])
{
	new idx;
	new cmd[256];
	
	cmd = strtok(cmdtext, idx);

	if(strcmp(cmd, "/yadadada", true) == 0){
    	return 1;
	}

	return 0;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 13
Bueno para crear el comando aremos lo siguiente.
Comenzamos por cambiar el tipo de comando en texto por ejemplo podria ser |/suicidarme|/matarme|/kill|(Opcional)
 Codigo Pawno:
1

if(strcmp(cmd, "/kill", true) == 0){
  Cantidad de llaves: Abiertas(1)-Cerradas(0) | Lineas Totales: 1
Bueno lo que deberiamos hacer es esto
 Codigo Pawno:
1
2
3

if(strcmp(cmd, "/kill", true) == 0){
	SetPlayerHealth(playerid, 0);
    	return 1;
  Cantidad de llaves: Abiertas(1)-Cerradas(0) | Lineas Totales: 3
Vista de todo el Public
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

public OnPlayerCommandText(playerid, cmdtext[])
{
	new idx;
	new cmd[256];
	
	cmd = strtok(cmdtext, idx);

	if(strcmp(cmd, "/kill", true) == 0){
	    SetPlayerHealth(playerid, 0);
    	    return 1;
	}

	return 0;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 14

SEGUNDO APORTE: Perdonen si tiene fallos o algo mal, me lo dicen y lo solucionare.
Yo no soy lo que la gente dice que soy, yo soy lo que Dios dice que soy.
Xalaram
Junior
Junior
Mensajes: 206
Registrado: 09 Jun 2014 22:48
Reputación: 10

03 Oct 2014 21:43

Deberías de explicar que hace cada cosa, por ejemplo el SetPlayerHealth es una función en la cuál nos setea la vida pedida.
Avatar de Usuario
HERMES
Administrador General
Administrador General
Mensajes: 2829
Registrado: 20 Sep 2014 12:53
Ubicación: localhost
Reputación: 121

03 Oct 2014 21:44

Para ese comando sólamente no es necesario crear ni idx ni cmd. Se puede hacerlo así:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10

public OnPlayerCommandText(playerid, cmdtext[])
{

	if(strcmp(cmdtext, "/kill", true) == 0){
	    SetPlayerHealth(playerid, 0);
    	    return 1;
	}

	return 0;
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 10
Además, al crear la variable "cmd" con 256 celdas estás gastando 128 celdas demás, es decir 512 bytes, ya que el límite de texto es 128.
Miguelcarp
Aprendiz
Aprendiz
Mensajes: 412
Registrado: 20 Jul 2014 13:16
Reputación: 5

03 Oct 2014 22:43

Es que es el Server Bare osea el gm desde cero, y ya lo trae aplicado
Yo no soy lo que la gente dice que soy, yo soy lo que Dios dice que soy.
Avatar de Usuario
Jeffersonm11
Aprendiz
Aprendiz
Mensajes: 43
Registrado: 08 Sep 2018 07:13
Reputación: 0

14 Feb 2019 01:39

Buenas noches, hice el comando con el ZCMD y me va de maravilla, el problema es que al usar mi comando /kill, sale en el cuadro de kills, es decir en el SendDeathMessage que me maté a mi mismo, con el ícono de puño, y ya le añadí el ícono de calavera para que no se pusiera así, pero el problema persiste, ¿Qué procede? Gracias.
Las cosas fluirán mejor si tu actuar empieza a cambiar.
Matiditas
Aprendiz
Aprendiz
Mensajes: 180
Registrado: 24 May 2016 23:46
Reputación: 0

15 Feb 2019 02:26

Que raro, que yo sepa no se puede manipular la casilla de deaths, yo cuando uso /KILL no me sale nada en la casilla de muertes o.O
Avatar de Usuario
Jeffersonm11
Aprendiz
Aprendiz
Mensajes: 43
Registrado: 08 Sep 2018 07:13
Reputación: 0

16 Feb 2019 09:00

Prácticamente me hace autokill, ¿será porque lo hice con zcmd?
 Codigo Pawno:
1
2
3
4
5
6

cmd(kill, params[])
{
#pragma unused params
SetPlayerHealth(playerid, 0);
return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6
Las cosas fluirán mejor si tu actuar empieza a cambiar.
Avatar de Usuario
Jeffersonm11
Aprendiz
Aprendiz
Mensajes: 43
Registrado: 08 Sep 2018 07:13
Reputación: 0

09 Mar 2019 19:13

Ya lo solucione tenía mal los parámetros del public OnPlayerDeath.
Las cosas fluirán mejor si tu actuar empieza a cambiar.
Responder