#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*/
new Tsay[playerid];
new PlayerInfo[MAX_PLAYERS][InfoJugador];
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
}
//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 ;)*/
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*/
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*/
Originally Posted by xenowort
Esto ya existia el comando, pero vos le distes la forma de tuto y eso se agradece! xD
Muy buen tuto!. |
new Tsay[playerid];
if(IsPlayerConnected(playerid))
#pragma unused params
Originally Posted by the_chaoz
buen tuto, esta bien explicado y en teoria (ya q no puedo testear el codigo) deberia funcionar.
Sugerencia 1: Resulta innecesario defirir 1 enum x 1 solo array, es mas sensillo. pawn Код:
|
Sugerencia 2: luego, dentro del callback OnPlayerText, cuando este callback es llamado se sobre entiende que el jugador esta conectado, entonces esta restriccion (if) resulta innecesaria: PAWN Code: if(IsPlayerConnected(playerid)) |
Sugerencia 3: porque usaste dcmd este tipo de comandos se suele utilizar para comandos que llevan parametros Tongue y tu no usas ninguno, y x eso usaste PAWN Code: #pragma unused params |
C:\Documents and Settings\BlackCrystal™\Mis documentos\Server3.0\filterscripts\Sadmin.pwn(982) : warning 203: symbol is never used: "params" C:\Documents and Settings\BlackCrystal™\Mis documentos\Server3.0\filterscripts\Sadmin.pwn(995) : warning 203: symbol is never used: "params" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 2 Warnings.
lo cual indica que no los usas. seria mejor hacer los comandos en strcmp, ya que no es necesario definir los comandos dentro de OnPlayerCommandText, ni DCMD. |
Buen tutorial y bien explicado |
Originally Posted by ConecCionMex
Tienes razon gracias pero com yo tengo ya sistema de admin lo puse asi con los enuminfo
Quote:
Код:
C:\Documents and Settings\BlackCrystal™\Mis documentos\Server3.0\filterscripts\Sadmin.pwn(982) : warning 203: symbol is never used: "params" C:\Documents and Settings\BlackCrystal™\Mis documentos\Server3.0\filterscripts\Sadmin.pwn(995) : warning 203: symbol is never used: "params" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 2 Warnings. |