Hey guys..
Im trying to make a Ban command and an unban command, but I wanna make it so that if someone gets banned, in their user file there will be something like
so I need to use pBan or something like that in enum..
I tried finding some other scripts but i don't understand none of them and none of them are like that..
Can anyone tell me a script I can learn from or help me in some way? thank you!
decide what saving/database method you would like to use and I'll help you make it
The first one.. using Y_INI
PHP код:
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pBanAppealer] >= 1 || PlayerInfo[playerid][pModerator] >= 1 || PlayerInfo[playerid][pSecretAdmin] >= 1)
{
new string[128], giveplayerid, reason[64];
if(sscanf(params, "us[64]", giveplayerid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ban [playerid/partofname] [reason]");
//if(AntiAdv(playerid, params)) return 1;
if(IsPlayerConnected(giveplayerid))
{
if(PlayerInfo[giveplayerid][pAdmin])
{
/*if(AdminDuty[playerid] == 1)
{
new username[MAX_PLAYER_NAME];
GetPVarString(playerid, "TempNameName", username, sizeof(username));
SetPVarInt(playerid, "TempName", 0);
SetPlayerName(playerid, username);
}
format(string, sizeof(string), "AdmCmd: %s has been auto-banned, reason: Trying to /ban a higher admin.", PlayerInfo[playerid][pAdminName]);
ABroadCast(COLOR_YELLOW,string,2);
PlayerInfo[playerid][pBanned] = 1;
new ip[32];
GetPlayerIp(playerid,ip,sizeof(ip));
AddBan(ip);
Kick(playerid);
return 1;*/
SendClientMessageEx(playerid, COLOR_REALRED, "You are not authorized to ban administrators.");
}
else
{
new playerip[32];
GetPlayerIp(giveplayerid, playerip, sizeof(playerip));
if(AdminDuty[giveplayerid] == 1 || PlayerInfo[playerid][pAdmin] >= 5)
{
new username[MAX_PLAYER_NAME];
GetPVarString(giveplayerid, "TempNameName", username, sizeof(username));
SetPVarInt(giveplayerid, "TempName", 0);
SetPlayerName(giveplayerid, username);
format(string, sizeof(string), "AdmCmd: %s(IP:%s) was banned by %s, reason: %s", PlayerInfo[giveplayerid][pAdminName], playerip, GetPlayerNameEx(playerid), reason);
Log("logs/ban.log", string);
format(string, sizeof(string), "AdmCmd: %s was banned by %s, reason: %s", PlayerInfo[giveplayerid][pAdminName], GetPlayerNameEx(playerid), reason);
ABroadCast(COLOR_LIGHTRED, string, 1);
}
else if(PlayerInfo[playerid][pSecretAdmin] >= 1)
{
new username[MAX_PLAYER_NAME];
GetPVarString(giveplayerid, "TempNameName", username, sizeof(username));
SetPVarInt(giveplayerid, "TempName", 0);
SetPlayerName(giveplayerid, username);
format(string, sizeof(string), "SecretAdmin: %s (IP:%s) was banned by %s, reason: %s", PlayerInfo[giveplayerid][pAdminName], playerip, GetPlayerNameEx(playerid), reason);
Log("logs/ban.log", string);
format(string, sizeof(string), "SecretAdmin: {FFFF00}%s was banned by %s, reason: %s", PlayerInfo[giveplayerid][pAdminName], GetPlayerNameEx(playerid), reason);
foreach(Player, i)
{
if(PlayerInfo[i][pSecretAdmin] >= 1)
{
SendClientMessage(i, COLOR_REALRED, string);
}
}
}
ABroadCast(COLOR_LIGHTRED, string, 1);
new ip[32], hour, minute, second, day, month, year;
gettime(hour, minute, second);
getdate(year, month, day);
GetPlayerIp(giveplayerid,ip,sizeof(ip));
SendClientMessageEx(giveplayerid, COLOR_REALRED, "You're banned from Insidious Roleplay. You can appeal your ban at neverrest-rp.tk");
SendClientMessageEx(giveplayerid, COLOR_LIGHTRED, "-------------------- BAN REPORT --------------------");
format(string, sizeof(string), "Reason: %s", reason);
SendClientMessageEx(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "Current Warnings: %d (3 for BAN)", PlayerInfo[giveplayerid][pWarns]);
SendClientMessageEx(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "Staff: %s", GetPlayerNameEx(playerid));
SendClientMessageEx(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "IP Address: %s", ip);
SendClientMessageEx(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "Time: %02d:%02d:%02d on %02d/%02d/%d", hour, minute, second, day, month, year);
SendClientMessageEx(giveplayerid, COLOR_WHITE, string);
SendClientMessageEx(giveplayerid, COLOR_LIGHTRED, "It is strongly recommended that you keep this report for future reference (Press F8)");
SendClientMessageEx(giveplayerid, COLOR_LIGHTRED, "You may appeal this ban at "WEBSITE".");
SetTimerEx("BanTimer", 2000, 0, "ds", giveplayerid, ip);
format(string, sizeof(string), "(%02d:%02d:%02d on %02d/%02d/%d) BanLogs: %s has banned %s, reason: %s",hour,minute,second, day, month, year, GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid), reason);
//UpdateRecentBans(string);
return 1;
}
} else SendClientMessage(playerid, COLOR_GRAD1, "Invalid player specified.");
}
return 1;
}
PHP код:
CMD:unban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >= 3 || PlayerInfo[playerid][pBanAppealer] >= 1)
{
new string[128];
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /unban [playername]");
if(doesAccountExist(params))
{
OnPlayerOfflineLogin(params);
if(PlayerInfo[MAX_PLAYERS][pPermaBanned] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "Permanently banned accounts can only be unbanned via FTP.");
}
else
{
if(PlayerInfo[MAX_PLAYERS][pBanned] >= 1)
{
PlayerInfo[MAX_PLAYERS][pBanned] = 0;
if(PlayerInfo[MAX_PLAYERS][pWarns] == 3) // reset warnings if they're 3
PlayerInfo[MAX_PLAYERS][pWarns] = 0;
RemoveBan(PlayerInfo[MAX_PLAYERS][pIP]);
OnPlayerOfflineSave(params);
format(string, 128, "AdmCmd: %s (IP:%s) was unbanned by %s.", params, PlayerInfo[MAX_PLAYERS][pIP], GetPlayerNameEx(playerid));
ABroadCast(COLOR_LIGHTRED,string,2);
format(string, sizeof(string), "AdmCmd: %s (IP:%s) was unbanned by %s.", params, PlayerInfo[MAX_PLAYERS][pIP], GetPlayerNameEx(playerid));
Log("logs/ban.log", string);
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Not a banned account!");
}
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "That account doesn't exist.");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "You're not authorized to use that command!");
}
return 1;
}