Looking For Oban Cmd
#1

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 !
Reply
#2

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(playeridparams[], help) {
    if(
help) {
        
SendClientMessage(playeridX11_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(usernameusername);
        
format(szquerysizeof(szquery), "SELECT `username` FROM `accounts` WHERE `username` = '%s'",username);
        
mysql_function_query(SQL_Handle_Nameszquerytrue"OfflineBanPlayer""dss",playerid,username,reason);
    } else {
        
SendClientMessage(playeridX11_WHITE"USAGE: /oban [username] [reason]");
    }
    return 
1;
}
forward OfflineBanPlayer(playeridname[],reason[])
public 
OfflineBanPlayer(playeridname[],reason[]) {
    new 
accname[128];
    new 
rowsfields;
    
cache_get_data(rowsfields);
    if(
rows 1) {
        
SendClientMessage(playeridX11_TOMATO_2"* User not found");
        return 
1;
    }
    
cache_get_row(0,0,accname);
    
format(banreasonsizeof(banreason), "INSERT INTO `playerbans` (`banned_by`, `banned_for`, `player_banned`, `player_ip`) VALUES ('%s', '%s', '%s')"adminNamereasonname);
    
mysql_query(banreasonMYSQL_ADD_BANplayeridconnection);
    
format(szquerysizeof(szquery), "[AdmWarn]: %s has OBanned %s: %s",GetPlayerName(playeridaccname), namereason);
    
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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)