16.06.2010, 14:36
Como crear los comandos SAYON y SAYOFF para su sistema de Admin
Les mostrare como se crean estos dos simples comandos para Admin aki un ejemplo
cuando el admin habla sin este comando sale asi:
ConecCionMex: aaaaaaaaaaaaaaaa --> esto sale blanco
y Al activar el comando a sayOn saldria asi:
ConecCionMex : aaaaaaaaaaa Podran hablar cuantas veses kieran sin poner acada rato sayon --> Saldra todo en color azul ustedes pueden cambiarselo luego
1.- Primero definiremos lo que servira para poder hacerlo en DCMD
Para esto aсadiremos esto al FS - Si ya lo tienen no agregen nada
pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
/*Como ya habia dicho esto hara posible que creemos el comando en DCMD*/
#define Azul 0x375FFFFF /*Y esto es el Color*/
pawn Код:
new Tsay[playerid];
new PlayerInfo[MAX_PLAYERS][InfoJugador];
3.-Luego iremos a public OnPlayerText(playerid, text[])
Y definiremos lo que sera cuando el jugador envie el mensaje al Chat y salga todo el nick el texto en azul
ConecCionMex : aaaaaaaaaaa
Para ello definiremos esto:
pawn Код:
new Nombre[MAX_PLAYER_NAME];//Definira el Nombre del Admin quien envia el texto [Admin] "COnecCionMex" : asdasdasdasd
GetPlayerName(playerid, Nombre, MAX_PLAYER_NAME); //Ayudara a definir el Nombre del Admin
if(PlayerInfo[playerid][Tsay] == 1) //Esto vera si tenemos definido Tsay lo que ya hemos echo antes
{
new string[128];
format(string,sizeof(string),"[Admin]%s: %s",Nombre,text); //Asi es como enviara el mensaje al chat [Admin] ConecCionMex: asdsadsadasd
if(IsPlayerConnected(playerid))//Esto lo sera si el jugador esta conectado :D
{
SendClientMessageToAll(Azul,string); //esto definira qe lo envie a todos los jugadores y Azul el color (si quiren cambielo ustedes)
}
return 0; //Es importante qe termine en return 0 por que si no enviara dos mensajes uno sin color y el otro con color y se comera una letra xD
}
Para definir los comandos como algunos saves tenemos qe dirijirnos a public OnPlayerCommandText(playerid, cmdtext[])
Abajo de public OnPlayerCommandText(playerid, cmdtext[]) {
Ponemos la definicion:
pawn Код:
//Esto es el comando qe abrira
dcmd(sayon, 5, cmdtext);/*"Sayon" definira el comando qe se tipeara /sayon - el numero 5 las letras qe contiene el comando en este caso
5 S-1 A-2 Y-3 O-4 N-5 Y cmdtext lo qe define qe es comando (CREO) :s*/
//Esto es el comando qe Cerrara
dcmd(sayoff, 6, cmdtext); /*Para esto seria la misma definicion qe Arriva ;)*/
Y pondremos los comandos y sus funciones
Primero SAYON
pawn Код:
dcmd_sayon(playerid, params[]) //El comando Definido
{
#pragma unused params//Definira qe si usamos params si no lo ponemos saldra un mensaje qe diga params never used o algo aasi
if(PlayerInfo[playerid][Nivel] >= 2)//Esto definira el nivel de admin qe lo podra usar en este caso del nivel 2 asia arriva
{
PlayerInfo[playerid][Tsay] = 1; //esto define si esta DEFINIDO Tsay y ya lo definimos tambien tiene qe ver en onplayertext el " 1 " QUIERE DECIR qe esta activado
SendClientMessage(playerid, Verde, "Comando /Say activado."); //Esto es el mensaje qe se enviara cuando active /sayon
} else {//esto es para qe vea qe tenemos mas mensajes qe poner :D
SendClientMessage(playerid, Rojo,"[[InfO:]] Lo Sentimos no eres Admin de Nivel suficiente"); //El mensaje qe saldra al jugador qe no es admin
}
return 1;
}/*Cerramos*/
pawn Код:
dcmd_sayoff(playerid, params[]) //El comando
{
#pragma unused params //definir params
if(PlayerInfo[playerid][Nivel] >= 2) //Lo mismo el nivel que puede usar el comando
{
PlayerInfo[playerid][Tsay] = 0; //esto define si esta DEFINIDO Tsay - " 0 " QUIERE DECIR qe esta desactivado
SendClientMessage(playerid, Rojo, "Comando /Say desactivado.");// Mensaje qe saldra cuando el admin aya desactivado /sayoff
} else {//esto es para qe vea qe tenemos mas mensajes qe poner :D
SendClientMessage(playerid, Rojo,"[[InfO:]] Lo Sentimos no eres Admin de Nivel suficiente."); //Lo mismo qe arriva esto le saldra al jugador qe no es Admin
}
return 1;
}/*Cerramos*/
Imagenes:
Bueno eso es todo espero qe les haya servido si no ps nop xD
Alguna Duda / Bug / o /Queja aganmelo saber D:
Creditos:
ConecCionMex - El tuto y ponerlo xD a FS
CristianDJ por las funciones como el new PlayerInfo[MAX_PLAYERS][InfoJugador]; y Info Jugador