#1

someone me may help to fuse the code to ban serial to the cmmds of my sistem admin.

what thi ist it what I want ? I want that giving ban and rban banee the serial.

thanks

Код:
#include <a_samp>
#include <sscanf2>

#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

native gpci(playerid, serial[], maxlen);
new Location[100] = "/Serial_Bans/%s.lock";

public OnPlayerConnect(playerid)
{
new Code[50], Line[256];
gpci(playerid, Code, sizeof Code);

format(Line, sizeof(Line), Location, Code);
if(fexist(Line)) return Kick(playerid);
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(Ban, 3, cmdtext);
dcmd(Code, 4, cmdtext);
return 0;
}

dcmd_Ban(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;

new Code[50], Line[128], User, Nickname[MAX_PLAYER_NAME];

if(sscanf(params, "u", User)) return SendClientMessage(playerid, 0xFF0000FF, "Comando: /Ban <Nickname / ID>{FFFFFF}");
if(!IsPlayerConnected(User)) return SendClientMessage(playerid, 0xFF0000FF, "El usuario no se ha encontrado. Por favor, compruebe los datos del serial.");

gpci(User, Code, sizeof(Code));
format(Line, sizeof(Line), Location, Code);

GetPlayerName(User, Nickname, sizeof(Nickname));

new File:Datoteka = fopen(Line, io_write);
fwrite(Datoteka, Nickname);
fclose(Datoteka);

Kick(User);

SendClientMessage(playerid, 0xFFFFFF, "Usuario se ha aсadido correctamente a Banlist.");
return 1;
}


dcmd_Code(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;

new Code[50], Line[128], User;

if(sscanf(params, "u", User)) return SendClientMessage(playerid, 0xFF0000FF, "{FF0000}Komanda:{FF0000} {FFFFFF}/Code <Nickname / ID>{FFFFFF}");
if(!IsPlayerConnected(User)) return SendClientMessage(playerid, 0xFF0000FF, "User was not fount. Please check input data.");

gpci(User, Code, sizeof(Code));
format(Line, sizeof(Line), "User Serial: %s", Code);

SendClientMessage(playerid, 0xFFFFFF, Line);
return 1;
}



//*********************** Aсadir eso a estos comandos **************************
dcmd_ban(playerid,params[])
{
if(PlayerInfo[playerid][LoggedIn] == 1)
{
if(PlayerInfo[playerid][Level] >= 10)
{
new temporal[256], temporal2[256], Index;
temporal = strtok(params,Index),
temporal2 = strtok(params,Index);

if(!strlen(params))
return SendClientMessage(playerid, COLOR_RED, ""USOMSG" /ban [playerid] [razon]");

if(!strlen(temporal2))
return SendClientMessage(playerid, COLOR_RED, ""ERRORMSG" Debe especificar la razon");
new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], dmasjust[256];
player1 = strval(temporal);

if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
{
GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));

new year,month,day,hour,minuite,second;
getdate(year, month, day);
gettime(hour,minuite,second);

CMDMessageToAdmins(playerid,"BAN");
format(dmasjust,sizeof(dmasjust),"%s ha sido baneado por el administrador %s [Razon: %s] [Dia: %d/%d/%d] [Hora: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
SendClientMessageToAll(COLOR_RED,dmasjust);
SaveToFile("BanLog",dmasjust);
print(dmasjust);

new nbaneado[MAX_PLAYER_NAME], abaneado[256];
GetPlayerName(player1, nbaneado, sizeof(nbaneado));
format(abaneado, sizeof(abaneado), "sadmin/usuarios/%s.ini", nbaneado);

if(dini_Exists(abaneado) && PlayerInfo[player1][LoggedIn] == 1)
dini_IntSet(abaneado, "banned", 1);

format(dmasjust,sizeof(dmasjust),"baneado por el administrador %s. Razon: %s", adminname, params[2]);
return BanEx(player1, dmasjust);
}
else return SendClientMessage(playerid, COLOR_RED, ""ERRORMSG" El jugador no esta conectado");
}
else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Tienes que ser administrador nivel 10 para usar este comando");
}
else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Debes estar logueado para usar este comando");
}
//
dcmd_rban(playerid,params[])
{
if(PlayerInfo[playerid][LoggedIn] == 1)
{
if(PlayerInfo[playerid][Level] >= 11)
{
new ip[128], temporal[256], temporal2[256], Index;
temporal = strtok(params,Index),
temporal2 = strtok(params,Index);

if(!strlen(params))
return SendClientMessage(playerid, COLOR_RED, ""USOMSG" /rban [playerid] [razon]");

if(!strlen(temporal2))
return SendClientMessage(playerid, COLOR_RED, ""ERRORMSG" Debes especificar la razon");

new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], dmajust[256];
player1 = strval(temporal);

GetPlayerName(player1, playername, sizeof(playername));
GetPlayerName(playerid, adminname, sizeof(adminname));

new year,month,day,hour,minuite,second;
getdate(year, month, day);
gettime(hour,minuite,second);

CMDMessageToAdmins(playerid,"RBAN");

format(dmajust,sizeof(dmajust),"%s ha sido baneado su rango por el administrador %s [Razon: %s] [Dia: %d/%d/%d] [Hora: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
SendClientMessageToAll(COLOR_RED,dmajust);
SaveToFile("BanLog",dmajust);
print(dmajust);

new nbaneado[MAX_PLAYER_NAME], abaneado[256];
GetPlayerName(player1, nbaneado, sizeof(nbaneado));
format(abaneado, sizeof(abaneado), "sadmin/usuarios/%s.ini", nbaneado);

if(dini_Exists(abaneado) && PlayerInfo[player1][LoggedIn] == 1)
dini_IntSet(abaneado, "banned", 1);

RangeBan(player1);
SendRconCommand(ip);
return 1;
}
else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Tienes que ser administrador nivel 11 para usar este comando");
}
else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Nesesitas estar logueado para usar este comando");
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)