Buenas tardes, hoy vengo con un tutorial básico de como crear un sistema de chat global mejorable claramente ya que al ser básico el sistema carece de algunas cosas que pueden agregar ustedes mismos, sin mas nada que decir comienzo.
Requisitos
- Saber lo básico de pawn.
- Tener algún procesador de comandos (Preferible)
Bien, este sistema no tiene mucha ciencia y dificultad realmente, es bastante sencillo de realizarlo y como primer paso será declarar un enum para guardar estados temporales.
¿A que me refiero con "estados temporales"?
- Cuando digo estados temporales me refiero al tiempo que se guarda dentro de una variable de una manera temporal, también se les dice variables temporales.
enum e_temp {
temp_global[MAX_PLAYERS]
}
new PlayerTemp[MAX_PLAYERS][e_temp];
Una vez declarado el enum y también una variable que se usara como referencia a ese enum, básicamente esta casi todo echo solo nos falta hacer un comando que envié un mensaje de manera global, especifique que es preferible que usen un procesador de comandos como zcmd o pawncmd pero tambien pueden usar el procesador nativo de samp.
Bien ahora solo tenemos que hacer el siguiente comando:
CMD:global(playerid, params[])
{
new message[120], name[MAX_PLAYER_NAME], string[128]; // Declaramos variables que usaremos en el sistema.
GetPlayerName(playerid, name, sizeof(name)); // Obtenemos el nombre del jugador.
//Validamos los paramaetros
if(PlayerTemp[playerid][temp_global] + 5 > gettime()) return SendClientMessage(playerid, -1, "Debes de esperar 5 minutos");
if(sscanf(params, "s[120]", params[0])) return SendClientMessage(playerid, -1, "El mensaje que quieras");
if(strlen(message) > 120) return SendClientMessage(playerid, -1, "El mensaje es demasiado largo");
format(string, sizeof(string), "{00AAE4}[Global]{FFFFFF}[@%s] {00AAE4}(%d): {FFFFFF}%s", name, playerid, message);
PlayerTemp[playerid][temp_global] = gettime();
SendClientMessageToAll(-1, string);
return 1;
}
- Y listo, tendrían su sistema de chat global creado de una manera tan sencilla, pueden mejorarlo claramente pero eso lo dejo a su gusto, Muchas gracias y espero que les sirva.