stock Baneado(playerid)
{
new Texto[64], File:ban = fopen("/baneados.txt", io_write);
if(ban)
{
format(Texto, sizeof(Texto), "%s\r\n",NombreJugador(playerid));
fwrite(ban, Texto);
fclose(ban);
}
return 1;
}
CMD:ban(playerid, params[])
{
new Texto[64], id, razon[64];
if(Informacion[playerid][pAdmin] >= 3)
{
if(sscanf(params, "us[64]",id,razon)) return SendClientMessage(playerid, -1, "/ban (ID) (Razуn)");
{
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Usuario no conectado");
{
format(Texto, sizeof(Texto), "El usuario %s fue baneado por un administrador, Razуn: %s",NombreJugador(id),razon);
SendClientMessageToAll(-1, Texto);
Ban(id);
Baneado(id);
}
}
} else SendClientMessage(playerid, -1, "No eres administrador");
return 1;
}
CMD:ban(playerid, params[])
{
new Texto[64], id, razon[64];
if(Informacion[playerid][pAdmin] >= 3)
{
if(sscanf(params, "us[64]",id,razon)) return SendClientMessage(playerid, -1, "/ban (ID) (Razуn)");
{
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Usuario no conectado");
{
format(Texto, sizeof(Texto), "El usuario %s fue baneado por un administrador, Razуn: %s",NombreJugador(id),razon);
SendClientMessageToAll(-1, Texto);
new pAKA[256]; pAKA = dini_Get("ladmin/config/banLog.txt",id);
Ban(id);
Baneado(id);
}
}
} else SendClientMessage(playerid, -1, "No eres administrador");
return 1;
}
new pAKA[256]; pAKA = dini_Get("ladmin/config/banLog.txt",tmp);
CMD:ban(playerid, params[])
{
new Texto[128], id, razon[64]; // aumentado el tamaсo de 'Texto'
if(Informacion[playerid][pAdmin] >= 3)
{
if(sscanf(params, "us[64]",id,razon)) return SendClientMessage(playerid, -1, "/ban (ID) (Razуn)");
// retiradas llaves sobrantes
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Usuario no conectado");
format(Texto, sizeof(Texto), "El usuario %s fue baneado por un administrador, Razуn: %s",NombreJugador(id),razon);
SendClientMessageToAll(-1, Texto);
Baneado(id);
Ban(id); // cambiado el orden de la funciуn, se ejecuta de arriba a abajo
}
else SendClientMessage(playerid, -1, "No eres administrador");
return 1;
}
stock Baneado(playerid)
{
new Texto[64], File:ban = fopen("/baneados.txt", io_append ); // Es append para no borrar el usuario anterior
if(ban)
{
format(Texto, sizeof(Texto), "%s\r\n",NombreJugador(playerid));
fwrite(ban, Texto);
fclose(ban);
}
return 1;
}
#define BAN_LIST_DIRECTION "Bans/%s.txt"
stock AddPlayerInBanList(playerid)
{
new str[30];
format(str, sizeof(str), BAN_LIST_DIRECTION, NombreJugador(playerid));
new File:INI = fopen(str, io_write);
fclose(INI);
INI = fopen("Ban_List.txt", io_append);
format(str, 27, "%s\n" NombreJugador(playerid));
fwrite(INI, str);
fclose(INI);
return 1;
}
stock GetBans()
{
new str[300]; // A tu gusto.
new const File:INI = fopen("Ban_List.txt", io_read);
fread(INI, str);
fclose(INI);
return str;
}
CMD:ban_list(playerid)
{
return ShowPlayerDialog(playerid, BAN_LIST, DIALOG_STYLE_MSGBOX, "Lista", GetBans(), "Aceptar", "");
}
CMD:baneados(playerid, params[])
{
new File:bl = fopen("/baneados.txt", io_read); // abrimos el archivo en modo Read con el identificador de bl
new lista[2][24], ListaGeneral[128]; // creamos un Array para almacenar la lista y uno para cada nombre
while(fread(bl, lista[0])) //Leemos el archivo una linea a la vez y vamos guardando el contenido
{
format(lista[1], strlen(lista[0]), "\n%s", lista[0]); // asi pones \n para que valla uno arriba del otro
strcat(ListaGeneral, lista[1]); // usamos strcat para ir dejando en ListaGeneral cada nombre
}
fclose(bl); // Cerramos el archivo
ShowPlayerDialog(playerid, 123, DIALOG_STYLE_MSGBOX, "Baneados", ListaGeneral, "Aceptar", ""); // mostramos dialogo
return 1;
}
Asi podemos hacerlo, he explicado dentro del cуdigo para que te guies.
pawn Код:
|
Nombre1Nombre2Nombre3... |