Looking For Oban Cmd -
BlackLineCnR - 15.10.2017
I Need A Oban Command, With The Ban Command I Made, Can Anyone Help me out!!
Ban Command!
Код:
COMMAND:ban(playerid, params[])
{
if(playerData[playerid][playerLoggedIn])
{
if(playerData[playerid][playerLevel] >= 3)
{
new otherID, playersIP[24], playerName[24], adminName[24], message[248], reason[300];
if(sscanf(params, "us[300]", otherID, reason))
{
SendClientMessage(playerid, COLOR_ORANGE, "Usage: \"ban <playername/id> <reason>\"");
}
else
{
if(IsPlayerConnected(otherID))
{
if(playerData[otherID][playerLoggedIn])
{
if(playerData[playerid][playerLevel] >= playerData[otherID][playerLevel])
{
// Send message to game
GetPlayerName(otherID, playerName, sizeof(playerName));
GetPlayerName(playerid, adminName, sizeof(adminName));
GetPlayerIp(otherID, playersIP, sizeof(playersIP));
format(message, sizeof(message), "{A9C4E4}%s(%i) has been banned from the server {FE9A2E}[REASON: %s]{FFFFFF}", playerName, otherID, reason);
SendClientMessageToAll(COLOR_WHITE, message);
new aMsg[300];
for (new i=0; i<MAX_PLAYERS; i++)
{
if (playerData[i][playerLevel] >= 1)
{
format(aMsg, sizeof(aMsg), "{FE9A2E}[ADMIN] {FFFFFF}%s(%i) has banned %s(%i) {FE9A2E}[REASON: %s]{FFFFFF}", playerData[playerid][playerNamee], playerid, playerData[otherID][playerNamee], otherID, reason);
SendClientMessage(i, COLOR_WHITE, aMsg);
}
}
new log[250];
format(log, sizeof(log), "%s(%i) has banned %s(%i)", playerData[playerid][tempAdminName], playerid, playerName, otherID);
SendAdminText(playerid, log);
new banreason[350];
format(banreason, sizeof(banreason), "INSERT INTO `playerbans` (`banned_by`, `banned_for`, `player_banned`, `player_ip`) VALUES ('%s', '%s', '%s', '%s')", adminName, reason, playerName, playersIP);
mysql_query(banreason, MYSQL_ADD_BAN, playerid, connection);
KickWithMessage(otherID, "[BANNED] You have been banned. You may appeal on blcnr.Boards.Net");
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFFFF}You cannot use this command on that player.");
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFFFF}That player is not logged in!");
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFFFF}That player is not online!");
}
}
}
else
{
return 0;
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{B7B7B7}[SERVER] {FFFFFF}You must be logged in to use commands.");
}
return 1;
}
If work, +Rep !
Re: Looking For Oban Cmd -
Prokill911 - 15.10.2017
This is kind of confusing considering "Oban" = Offline ban, but you're not doing any checks too see if the account exists, you're only banning the player if they're online
Do you have an "Accounts Table"?
But maybe something like this?
PHP код:
YCMD:oban(playerid, params[], help) {
if(help) {
SendClientMessage(playerid, X11_WHITE, "Bans an offline player");
return 1;
}
new username[(MAX_PLAYER_NAME*2)+1],reason[128];
if(!sscanf(params,"s[" #MAX_PLAYER_NAME "]s[128]",username,reason)) {
mysql_real_escape_string(username, username);
format(szquery, sizeof(szquery), "SELECT `username` FROM `accounts` WHERE `username` = '%s'",username);
mysql_function_query(SQL_Handle_Name, szquery, true, "OfflineBanPlayer", "dss",playerid,username,reason);
} else {
SendClientMessage(playerid, X11_WHITE, "USAGE: /oban [username] [reason]");
}
return 1;
}
forward OfflineBanPlayer(playerid, name[],reason[])
public OfflineBanPlayer(playerid, name[],reason[]) {
new accname[128];
new rows, fields;
cache_get_data(rows, fields);
if(rows < 1) {
SendClientMessage(playerid, X11_TOMATO_2, "* User not found");
return 1;
}
cache_get_row(0,0,accname);
format(banreason, sizeof(banreason), "INSERT INTO `playerbans` (`banned_by`, `banned_for`, `player_banned`, `player_ip`) VALUES ('%s', '%s', '%s')", adminName, reason, name);
mysql_query(banreason, MYSQL_ADD_BAN, playerid, connection);
format(szquery, sizeof(szquery), "[AdmWarn]: %s has OBanned %s: %s",GetPlayerName(playerid, accname), name, reason);
SendMessageToAdmins(msg);
return 1;
}
Obviously you'll need to change it to match your stuff but that's pretty much the code needed.
I ain't got time to be guessing your table names, an making the whole command for you, so this is just an example of what will work