20.09.2012, 18:39
Anyone know how to make unban?
If I do /unban [Exact Name]
this dini_IntSet(file, "Status", 2); will change to dini_IntSet(file, "Status", 0);
So the status will reset to 0 or offline.
and lastly check if player is not banned, else SendClientMessage(playerid, RED, "Player is not banned.");
If I do /unban [Exact Name]
this dini_IntSet(file, "Status", 2); will change to dini_IntSet(file, "Status", 0);
So the status will reset to 0 or offline.
Код:
Status (0 = offline, 1 = online, 2 = banned)
pawn Код:
COMMAND:ban(playerid,params[])
{
if(PlayerInfo[playerid][AdminLevel] >= LEVEL_ban)
{
new player, reason[128];
if(sscanf(params, "rs[128]", player, reason))
{
SendClientMessage(playerid, WHITE,"{FFFF00}Usage: /ban [PlayerID/PartOfName] [Reason]");
return 1;
}
if(PlayerInfo[player][AdminLevel] != MAX_ADMIN_LEVEL)
{
if(IsPlayerConnected(player) && player != INVALID_PLAYER_ID && player != playerid && PlayerInfo[player][AdminLevel] != MAX_ADMIN_LEVEL && PlayerInfo[player][Logged] == true)
{
new year,month,day, string[128], string2[128];
getdate(year, month, day);
format(string,sizeof(string),"** %s has been banned from the server by %s [Reason: %s]",GetName(player),GetName(playerid),reason);
SendClientMessageToAll(GREY,string);
print(string);
CreateBan(player, GetName(playerid), reason);
format(string2, sizeof(string2),""red"You have been banned!"white"\n\nAdmin:\t\t%s\nReason:\t%s\n",GetName(playerid),reason);
ShowPlayerDialog(player, BAN_DIALOG, DIALOG_STYLE_MSGBOX, "Notice", string2, "Close", "");
Kick(player);
return 1;
}
else
{
SendClientMessage(playerid, WHITE, "{FF0000}>> Player is not connected or is yourself or is the highest level admin");
}
}
else
{
new warnstring[128];
format(warnstring,sizeof(warnstring),"WARNING: %s just tried to ban you with reason: %s", GetName(playerid), reason);
SendClientMessage(player, RED, warnstring);
SendClientMessage(playerid, RED, ">> I hope thats a joke");
}
}
else
{
SendClientMessage(playerid, WHITE, NO_PERM);
}
return 1;
}
pawn Код:
stock CreateBan(playerid, adminname[], reason[])
{
new Date[16], year, month, day;
getdate(year, month, day);
format(Date, sizeof(Date), "%d/%d/%d", day, month, year);
#if USE_MYSQL == true
new query[256];
mysql_real_escape_string(reason, reason);
mysql_real_escape_string(adminname, adminname);
format(query, sizeof(query), "UPDATE `"#MYSQL_TABLE"` SET `Status` = 2, `BannedBy` = '%s', `BanReason` = '%s', `BanDate` = '%s' WHERE `PlayerName` = '%s'", adminname, reason, Date, GetName(playerid));
if(mysql_ping(gSQL))
{
mysql_query(query, _THREAD_BAN_USER, 0, gSQL);
}
#else
new file[128];
format(file, sizeof(file), "/%s/%s.ini", DINI_PATH, GetName(playerid));
dini_IntSet(file, "Status", 2);
dini_Set(file, "BannedBy", adminname);
dini_Set(file, "BanReason", reason);
dini_Set(file, "BanDate", Date);
#endif
return 1;
}