Buenas Español Pawno, hoy les traigo un sistema que se me ocurrió por experiencia personal. un comando que desactive los dialogos. Ya que aveces por ejemplo: estamos manejando un auto y queremos ver un comando o algo y se nos abre el dialogo y no podemos controlar el vehículo y puff chocamos, nos caemos a un rió, etcétera. :Dissimule:por eso se me ocurrió un comando para que estos no se muestren en dialogos y se muestre en el chat.
Vamos con el tutorial.
Primero agregaremos una variable en nuestro GM. esto lo ponen debajo de los includes
Yo le puse ese nombre ustedes le ponen el que quieran. Después vamos al callback "OnPlayerCommandText" y creamos este comando
Explicación:
Bien ya que tenemos eso vamos a nuestro comando que tenga el dialogo yo usare "/comandos".
Este es mi comando en dialogo
Bien ahora lo modificaremos de la siguiente manera
Y bien ya estaría ahora tendiéramos que hacer lo mismo con todos los comandos que queremos que tengan esta opción de mostrarse en dialogo o en el chat.
solo hay que agregarle esto:
unas fotos de los resultados:
Espero que les allá servido es muy básico pero practico :Dcualquier duda o consulta que tengan me la dicen. Saludos
Vamos con el tutorial.
Primero agregaremos una variable en nuestro GM. esto lo ponen debajo de los includes
- Código:
new DialogoOff[MAX_PLAYERS]; // MAX_PLAYERS es para definir que es una variable para cada jugador.
Yo le puse ese nombre ustedes le ponen el que quieran. Después vamos al callback "OnPlayerCommandText" y creamos este comando
- Código:
if(!strcmp(cmdtext, "/dialogooff", true) || !strcmp(cmdtext, "/dialogoon", true))//aquí hacemos que el comando funcione con /dialogooff o con /dialogoon esto lo hago para no crear dos comandos (abajo lo explicare)
{
if(DialogoOff[playerid] == 0)// si la variable "DialogoOff es igual a 0" se ejecuta lo siguiente
{
DialogoOff[playerid] = 1;// cambiamos el valor de la variable a 1.
SendClientMessage(playerid,rojo,"[SERVER]: Los Dialogos han sido desactivados.");//informamos al jugador que se desactivaron los dialogos
}
else// si la variable DialogoOff no es igual a 0
{
DialogoOff[playerid] = 0;// cambiamos el valor de la variable a 0.
SendClientMessage(playerid,verde,"[SERVER]: Los Dialogos han sido avtivados.");// y enviamos el mensaje al jugador
}
return 1;
}
Explicación:
- abrir:
Aquí para hacer que el comado se ejecute con los dos nombres use ||
|| se podria decir que es como un "o" ejemplo
if(variable == 0 || variable == 1){ } aquí se podría leer de la siguiente manera
"si variable es igual a 0 o es igual a 1 se ejecuta X función"
Entonces en:
if(!strcmp(cmdtext, "/dialogooff", true) || !strcmp(cmdtext, "/dialogoon", true)) actúa como:
si el comando es "/dialogooff" o el comando es "/dialogoon" se ejecuta lo siguiente.
espero que lo hallan entendido.
Bien ya que tenemos eso vamos a nuestro comando que tenga el dialogo yo usare "/comandos".
Este es mi comando en dialogo
- Código:
if(strcmp(cmd, "/comandos", true) )
{
ShowPlayerDialog(playerid, comandos, DIALOG_STYLE_MSGBOX, "{FF0000}Comandos:","{FFFFFF}/musica - /colores - /admins\n", "OK","");
//tube que quitar algunos comandos por que quedaba muy largo en el "CODE".
return 1;
}
Bien ahora lo modificaremos de la siguiente manera
- Código:
if(strcmp(cmd, "/comandos", true) )
{
if(DialogoOff[playerid] == 0)// lo mismo que anteriormente si la variable DialogoOff es igual a 0
{
ShowPlayerDialog(playerid, comandos, DIALOG_STYLE_MSGBOX, "{FF0000}Comandos:","{FFFFFF}/musica - /colores - /admins\n", "OK","");
//se muestra el dialogo
}
else// lo mismo si la variable no es igual a 0
{
//Como estan desactivados los dialogos entonces se muestra en el chat
SendClientMessage(playerid, blanco, "____________________________{FF0000}Comandos{FFFFFF}____________________________");
SendClientMessage(playerid, blanco, "/musica - /colores - /admins - ");// como dije antes el original tiene más pero quedaba muy junto todo en el code
}
return 1;
}
Y bien ya estaría ahora tendiéramos que hacer lo mismo con todos los comandos que queremos que tengan esta opción de mostrarse en dialogo o en el chat.
solo hay que agregarle esto:
- Código:
if(DialogoOff[playerid] == 0)
{
//dialogo
}
else
{
// pasarlo a SendClientMessate
}
unas fotos de los resultados:
- FOTOS:
- Al escribir el comando "/comandos"
Al escribir /dialogooff
Al escribir nuevamente "/comandos"
activo de nuevo los dialogos "/dialogoon"
Y /comandos se vuelve a mostrar en forma de dialogo nuevamente.
Espero que les allá servido es muy básico pero practico :Dcualquier duda o consulta que tengan me la dicen. Saludos