#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
dcmd(reportar , 8,cmdtext);
dcmd_reportar(playerid,params[]) //"Es la definicion del comando definida en OnPlayerCommandText" (dcmd(reportar , 8,cmdtext);)
{
#pragma unused params
new razon[250], //Esto definira la razon de cual en jugador reporte a OTRO... Ejemplo: as reportar do a blalsd Razon: Cheat/Bug/Insultar Etc
string[250], //Esto ayudara a qe le llege los mensajes al jugador...Ejemplo: Jugador no Conectado
giveplayerid, //Esto definira el nombre de la persona kien reporto del admin y de la persona reportada...Ejemplo... Angel reporto a Angel
giveplayer[MAX_PLAYER_NAME],// Esto seria lo mismo qe la de arriva
idx, //Esto ayudara a definir los strtok y los strrest Ejemplo: cmd = strtok(params, idx);
cmd[256]; //Ayudara a definir algunas funciones como: strval u otras
cmd = strtok(params, idx); //Esto es importante para qe salga el mensaje de error :D
if(!strlen(cmd))//Esto define si puso o no bien el comando
{
SendClientMessage(playerid, Naranja, "Usa: /reportar [ID] [Razon]"); //El Mensaje qe saldra
return 1;
} /*Y cerramos la definicion del mensaje*/
giveplayerid = strval(cmd);
razon = strrest(params,idx);
if(!strlen(razon)) //esto definira si no puso la razon del reporte ejemplo qe solo puso /reportar 4
{
SendClientMessage(playerid,Naranja,"Usa: /reportar [ID] [Razon]"); //Mensaje qe saldra por si solo puso /reportar ID
return 1;
}/*Y cerramos la definicion del mensaje*/
if (IsPlayerConnected(giveplayerid))//Lo qe vera si el jugador esta conectado
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));//Definira los nombres o las ID del reportador y el reportado
GetPlayerName(playerid, sendername, sizeof(sendername));//Lo mismo qe arriva xD
SendClientMessage(playerid,Amarillo,"Tu reporte ha sido enviado con Exito a los Administradores en Linea."); //Mensaje qe saldra al jugador qe envio el reporte
SendClientMessage(playerid,Amarillo,"Si reportaste al ID incorrecto Avisa.");//Un mensaje mas
//Para poner mas mensajes solo pon ""SendClientMessage,playerid,color,"Tu mensaje");
format(string,sizeof(string),"* [Reporte:] %s [ID: %d] reportу a [%s] [ID: %d]. [Razуn: %s]",sendername,playerid,giveplayer,giveplayerid,razon); //Aqui se
//definira el mensaje qe le llegara al adminstrador en este caso a los admins conectados o logeados
MensajeParaAdmins(Azul,string,1);//Aqui el strok qe ara qe le llege los mensajes al admin mas abajo les pondre el strok
} else {//Esto ara qe el sever vea qe ay mas :D
format(string, sizeof(string), "[[Info]] Jugador no Conectado"); //Este mensaje le llegara al reportador en caso de qe ponga alguna ID incorrecta
SendClientMessage(playerid, Rojo, string);//Definira el color :D
}
return 1;
}
forward MensajeParaAdmins(color,const string[],level); //definicion del public - callback
public MensajeParaAdmins(color,const string[],level)//y el public - callback
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if (PlayerInfo[i][Nivel] >= level) //Nivel cambialo por como lo tengas en el FS o en GM como sea u caso
{
SendClientMessage(i, color, string); //color no es necesario cambiar nada
}
}
}
return 1;
} /*cerramos*/
Originally Posted by CristianTdj
Buen tutorial. Por cierto, їquй quieres decir con 'йchenle galleta'?
|
Originally Posted by Dark_Oz
Buen tuto men gracias bro
PD: jaja echale galleta te rifaste we |
Originally Posted by xenowort
Yo diria pone huevos! xDDDD
|
dcmd_reportar(playerid,params[]) //"Es la definicion del comando definida en OnPlayerCommandText" (dcmd(reportar , 8,cmdtext);)
{
public OnPlayerCommandText
{
dcmd(reportar , 8,cmdtext);
return 1;
}