01.02.2014, 12:07
(
Последний раз редактировалось thegamer355; 01.02.2014 в 13:01.
)
hi all,
i have a little problem with my kick/ban command
it doesn't show the reason.
NOTE: the code is used in an include
/kick:
/ban:
i have a little problem with my kick/ban command
it doesn't show the reason.
NOTE: the code is used in an include
/kick:
Код:
COMMAND:kick(playerid, params[]) { new PlayerToKick, Reason[128], ReasonMsg[128], Name[24]; // Send the command to all admins so they can see it SendAdminText(playerid, "/kick", params); // Check if the player has logged in if (APlayerData[playerid][LoggedIn] == true) { // Check if the player's admin-level is at least 1 if (APlayerData[playerid][PlayerLevel] >= 1) { if (sscanf(params, "us[128]", PlayerToKick, Reason)) SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/kick <PlayerToKick> <Reason>\""); else if (IsPlayerConnected(PlayerToKick)) // If the player is a valid playerid (he's connected) { // Get the name of the player who warned the player GetPlayerName(playerid, Name, sizeof(Name)); // Send the warned player a message who kicked him and why he's been kicked format(ReasonMsg, 128, "You have been kicked by %s %s", AdminLevelName[APlayerData[playerid][PlayerLevel]], Name); SendClientMessage(PlayerToKick, 0xFF0000FF, ReasonMsg); format(ReasonMsg, 128, "Reason: %s", Reason); SendClientMessage(PlayerToKick, 0xFF0000FF, ReasonMsg); SetTimerEx("kick",1000,false,"i",playerid); // Kick the player Kick(PlayerToKick); } else SendClientMessage(playerid, 0xFF0000FF, "That player isn't online"); } else return 0; } else return 0; // Let the server know that this was a valid command return 1; }
Код:
COMMAND:ban(playerid, params[]) { // 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, 0x808080FF, Msg); format(Msg, 128, "Reason: %s", Reason); SendClientMessage(PlayerToBan, 0x808080FF, Msg); format(Msg, 128, "You've been banned %i times now, 5th time is permament", APlayerData[PlayerToBan][Bans]); SendClientMessage(PlayerToBan, 0x808080FF, Msg); } // Kick the player (his data will be saved) Kick(PlayerToBan); // Inform everybody else which player was banned and for how long format(Msg, 128, "%s %s has banned %s for %i days and %i hours", AdminLevelName[APlayerData[playerid][PlayerLevel]], AdminName, Name, Days, Hours); SendClientMessageToAll(0x808080FF, Msg); } } } else return 0; } else return 0; return 1; }