Код:
format(string,sizeof(string), "Name:",Name, (result));
format(string,sizeof(string), "Date:(%d/%d/%d)[%d:%d:%d]",d,m,y,h,mi,s, (result));
format(string,sizeof(string), "Reason:%s",Reason, (result));
format(string,sizeof(string), "Banned By:%s",AdminName, (result));
Код:
COMMAND:ban(playerid, params[])
{
new string[128];
new result[128];
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
// Setup local variables
new PlayerToBan, Days, Hours, Reason[128], TotalBanTime, Msg[128], Name[24], AdminName[24];
// Send the command to all admins so they can see it
SendAdminText(playerid, "/ban", params);
// Check if the player has logged in
if (APlayerData[playerid][LoggedIn] == true)
{
// Check if the player's admin-level is at least 3
if (APlayerData[playerid][PlayerLevel] >= 3)
{
if (sscanf(params, "uiis[128]", PlayerToBan, Days, Hours, Reason))
SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/ban <PlayerToBan> <Days> <Hours> <Reason>\"");
else
{
if (IsPlayerConnected(PlayerToBan))
{
// Get the names of the player and the admin who executed the ban
GetPlayerName(playerid, AdminName, sizeof(AdminName));
GetPlayerName(PlayerToBan, Name, sizeof(Name));
// Increase the number of bans
APlayerData[PlayerToBan][Bans]++;
// Calculate the total bantime (when the player can login again)
TotalBanTime = (Days * 86400) + (Hours * 3600) + gettime();
// Check if this is the player's 5th ban
if (APlayerData[PlayerToBan][Bans] == 5)
APlayerData[PlayerToBan][BanTime] = 2147483640; // Make the ban permanent (as high as it can go)
else
APlayerData[PlayerToBan][BanTime] = TotalBanTime; // Store this value for the player
// Inform the player about his ban
// Check if this is the player's 5th ban
if (APlayerData[PlayerToBan][Bans] == 5)
{
format(Msg, 128, "You have been banned permanently by %s, this was your 5th ban", AdminName);
SendClientMessage(PlayerToBan, 0x808080FF, Msg);
}
else
{
format(Msg, 128, "You have been banned by %s for %i days and %i hours", AdminName, Days, Hours);
SendClientMessage(PlayerToBan, 0xFF0000AA, Msg);
format(Msg, 128, "Reason: %s", Reason);
SendClientMessage(PlayerToBan, 0xFF0000AA, Msg);
format(Msg, 128, "You've been banned %i times now, 5th time is permament", APlayerData[PlayerToBan][Bans]);
SendClientMessage(PlayerToBan, 0xFF0000AA, Msg);
}
// Kick the player (his data will be saved)
Kick(PlayerToBan);
// Inform everybody else which player was banned and for how long
format(string,sizeof(string), "Name:",Name, (result));
format(string,sizeof(string), "Date:(%d/%d/%d)[%d:%d:%d]",d,m,y,h,mi,s, (result));
format(string,sizeof(string), "Reason:%s",Reason, (result));
format(string,sizeof(string), "Banned By:%s",AdminName, (result));
BanLog(string);
format(Msg, 128, "%s %s has banned %s for %i days and %i hours", AdminLevelName[APlayerData[playerid][PlayerLevel]], AdminName, Name, Days, Hours);
SendClientMessageToAll(0xAA3333AA, Msg);
}
}
}
else
return 0;
}
else
return 0;
return 1;
}