Muy buenas Español-Pawno!
En este nuevo tutorial les enseñare a crear el famoso comando /cuenta para que un jugador pueda ver sus stats en el servidor.
Primero, supongamos que este es mi PlayerInfo (enum principal, osea, donde se guarda la información más importante, como Dinero, Nivel, Líder de facción, y demás...) Esta variable puede cambiar dependiendo la GM
- Código:
enum pInfo
{
pNivel, // Nivel del user
pTiempoConectado, // Tiempo conectado
pMiembro, // Si es miembro de faccion
pLider, // Si es el lider
pRango, // El rango
pTrabajo // El trabajo
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Bueno, eso va a ser lo que vamos a necesitar para hacer el /cuenta.
Para empezar a crear el comando, tendremos que ir al callback "OnPlayerCommandText" y pondremos lo siguiente...
Para empezar a crear el comando, tendremos que ir al callback "OnPlayerCommandText" y pondremos lo siguiente...
- Código:
if (strcmp(cmd, "/Cuenta", true) == 0) // Nombre del comando
{
if(IsPlayerConnected(playerid)) // Verifica que esten conectados
{
Cuenta(playerid,playerid); // el cuenta sera el nombre que usaremos
}
return 1;
}
Al final de todos los callback's de tu server, pondrás este otro nuevo para que sirva el comando...
- Código:
public Cuenta(playerid,targetid) // Esto sera el nombre que pusimos dentro del /cuenta
{
return 1;
}
En el espacio que esta dentro del callback, abajo del símbolo "{" (el cual significa que lo que venga dentro sera la función del callback) pondremos lo que vayamos a necesitar para nuestro servidor, por ejemplo, pondremos los datos de la facción del usuario, y si es que tiene, diga cual es...
- Código:
new LiderFaccion[30]; // Define el texto de LiderFaccion
if(PlayerInfo[targetid][pMiembro] == 1 || PlayerInfo[targetid][pLider] == 1)
{ LiderFaccion = "Nombre Faccion"; } // Si es el lider de la faccion 1 le dira el nombre que definamos aqui
else if(PlayerInfo[targetid][pMiembro] == 2 || PlayerInfo[targetid][pLider] == 2)
{ LiderFaccion = "Nombre Faccion"; } // Si es el lider de la faccion 2 le dira el nombre que definamos aqui
else
{ LiderFaccion = "Ninguna"; } // Mensaje que dara si no tiene
Nota: Si quieren añadir mas, solo deben de seguir el mismo proceso dejando el mensaje de que no tiene abajo.
Ahora veremos como definir los rangos de la facción.
- Código:
new RangoFaccion[64]; // Definimos el texto que dara si tiene el algun rango
if(PlayerInfo[targetid][pMiembro] == 1) // COmprueba q seas miembro de la faccion 1
{
if(PlayerInfo[targetid][pRango] == 1) { RangoFaccion = "Rango 1"; } // Mensaje si eres de la faccion 1
else if(PlayerInfo[targetid][pRango] == 2) { RangoFaccion = "Rango 2"; } // Mensaje si eres de la faccion 2
else if(PlayerInfo[targetid][pRango] == 3) { RangoFaccion = "Rango 3"; } // Mensaje si eres de la faccion 3
else if(PlayerInfo[targetid][pRango] == 4) { RangoFaccion = "Rango 4"; } // Mensaje si eres de la faccion 4
else if(PlayerInfo[targetid][pRango] == 5) { RangoFaccion = "Rango 5"; } // Mensaje si eres de la faccion 5
else if(PlayerInfo[targetid][pRango] == 6) { RangoFaccion = "Rango 6"; } // Mensaje si eres de la faccion 6
else { RangoFaccion = "Rango 1"; } // Por defecto
}
Ahora veremos el trabajo (Job's) los cuales pueden ser barrendero, piloto, vendedor de moviles, etc...
- Código:
new Trabajo[20]; // Define trabajo que sera la respuesta de abajo
if(PlayerInfo[targetid][pTrabajo] == 1) { Trabajo = "Trabajo 1"; } // Si tiene el job 1 dara este mensaje
else if(PlayerInfo[targetid][pTrabajo] == 2) { Trabajo = "Trabajo 2"; } // Si tiene el job 2 dara este mensaje
else { Trabajo = "Ninguno"; } // Si no tiene job
Ahora definiremos para ver el dinero, nivel, tiempo jugado, faccion, rango
- Código:
new Dinero = GetPlayerMoney(targetid); // Definimos el dinero
new Nivel = PlayerInfo[targetid][pNivel]; // Definimos el nivel
new HJugadas = PlayerInfo[targetid][pTiempoConectado]; // Definimos las horas jugadas
// Faccion, rango y trabajo lo tenemos definido arriba
Nota: Con esto lo que hacemos es decir que:
Dinero es igual a GetPlayerMoney(targetid);
Nivel es igual a PlayerInfo[targetid][pNivel];
HJugadas es igual a PlayerInfo[targetid][pTiempoConectado];
Dinero es igual a GetPlayerMoney(targetid);
Nivel es igual a PlayerInfo[targetid][pNivel];
HJugadas es igual a PlayerInfo[targetid][pTiempoConectado];
Ahora, tendremos que definir el mensaje que le saldrá al usuario al usar el comando /cuenta, si se fijan, al final de la segunda linea ya estan definidas las variables que puse como ejemplo...
- Código:
SendClientMessage(playerid, COLOR_GREEN, "|____________________Información____________________|");
format(coordsstring, sizeof(coordsstring), "Dinero:[%d] || Nivel:[%d] || Horas Jugadas:[%d] || Líder:[%s]|| Rango[%s] || Trabajo[%s]", Dinero,Nivel,HJugadas,LiderFaccion,RangoFaccion,Trabajo);
Si hiciste todo bien, siguiendo el tutorial, el callback completo te quedara así...
- Código:
public Cuenta(playerid,targetid)
{
new LiderFaccion[30]; // Define el texto de LiderFaccion
if(PlayerInfo[targetid][pMiembro] == 1 || PlayerInfo[targetid][pLider] == 1)
{ LiderFaccion = "Nombre Faccion"; } // Si es el lider de la faccion 1 le dira el nombre que definamos aqui
else if(PlayerInfo[targetid][pMiembro] == 2 || PlayerInfo[targetid][pLider] == 2)
{ LiderFaccion = "Nombre Faccion"; } // Si es el lider de la faccion 2 le dira el nombre que definamos aqui
else
{ LiderFaccion = "Ninguna"; } // Mensaje que dara si no tiene
new RangoFaccion[64]; // Definimos el texto que dara si tiene el algun rango
if(PlayerInfo[targetid][pMiembro] == 1) // COmprueba q seas miembro de la faccion 1
{
if(PlayerInfo[targetid][pRango] == 1) { RangoFaccion = "Rango 1"; } // Mensaje si eres de la faccion 1
else if(PlayerInfo[targetid][pRango] == 2) { RangoFaccion = "Rango 2"; } // Mensaje si eres de la faccion 2
else if(PlayerInfo[targetid][pRango] == 3) { RangoFaccion = "Rango 3"; } // Mensaje si eres de la faccion 3
else if(PlayerInfo[targetid][pRango] == 4) { RangoFaccion = "Rango 4"; } // Mensaje si eres de la faccion 4
else if(PlayerInfo[targetid][pRango] == 5) { RangoFaccion = "Rango 5"; } // Mensaje si eres de la faccion 5
else if(PlayerInfo[targetid][pRango] == 6) { RangoFaccion = "Rango 6"; } // Mensaje si eres de la faccion 6
else { RangoFaccion = "Rango 1"; } // Por defecto
}
new Trabajo[20]; // Define trabajo que sera la respuesta de abajo
if(PlayerInfo[targetid][pTrabajo] == 1) { Trabajo = "Trabajo 1"; } // Si tiene el job 1 dara este mensaje
else if(PlayerInfo[targetid][pTrabajo] == 2) { Trabajo = "Trabajo 2"; } // Si tiene el job 2 dara este mensaje
else { Trabajo = "Ninguno"; } // Si no tiene job
new Dinero = GetPlayerMoney(targetid); // Definimos el dinero
new Nivel = PlayerInfo[targetid][pNivel]; // Definimos el nivel
new HJugadas = PlayerInfo[targetid][pTiempoConectado]; // Definimos las horas jugadas
// Faccion, rango y trabajo lo tenemos definido arriba
SendClientMessage(playerid, COLOR_GREEN, "|____________________Informacion____________________|");
format(coordsstring, sizeof(coordsstring), "Dinero:[%d] || Nivel:[%d] || Horas Jugadas:[%d] || Lider:[%d]|| Rango[%d] || Trabajo[%d]", Dinero,Nivel,HJugadas,LiderFaccion,RangoFaccion,Trabajo);
return 1;
}
Bien amigos, eso ha sido todo por hoy, los creditos son mios, si te sirvio dame un punto positivo (viene en la esquina superior derecha del post con un circulito verde) cualquier duda comenta y tratare de responder lo antes posible. Saludos a todos!
Última edición por sonydarktan el Lun Abr 14, 2014 11:05 pm, editado 2 veces (Razón : Olvide poner la plantilla al post)