Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Problem amxbans!!!!


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 SaveD

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:38
  • Lokalizacja:Lublin
Offline

Napisano 04.09.2009 19:05

Proszę o przerobienie pluginu tak, aby dało się odbanowywać nie tylko ze steamid ale i nicku oraz IP. Tak jak jest to przy banowaniu.




amxbans.sma

/*

	AMXBans, managing bans for Half-Life modifications
	Copyright (C) 2003, 2004  Ronald Renes / Jeroen de Rover

		web		: http://amxbans.net/
		IRC		: #hlm (Quakenet, nickname lantz69)
		IRC2		: #amxmodx (GameSurge, nickname lantz69)

		This file is part of AMXBans.

	AMXBans is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	AMXBans is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with AMXBans; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

	Check out readme.html for more information


	Current version: v5.0
	--------------------------------------------------------------
	Changelog for Plugin Amxbans changes/fixes by lantz69 after version 4.0 by YoMama
	--------------------------------------------------------------
	
	
	5.0 Sat Oct 28, 2006 16:00
	- Fixed: runtime error when trying to ban admin with immunity
	

	4.4RC6 Wed Oct 04, 2006 18:39
	- Changed: Cvar amxbans_max_time_gone_to_unban was changed from seconds to minutes instead.
	- Changed: Cvar amxbans_max_time_to_show_preban was changed from seconds to days instead.
	- Updated: The langfile amxbans.txt with all the static ban reasons. (thx Gizmo)
	- Updated: amxbans.cfg with the new values that was changed to minutes/days. Also updated text and the order of the settings.
	- Removed: [ru] Rushian language had to be removed in amxbans.txt because it is not in the official Amxmodx.
	- Added: Block for multiple bans with ATAC when the player was not present in the server (rep. Scooby)
	- Changed: Now you see 7 players/page in the menu instead of only 6.
	- Changed: now you can have 1-12 bantimes in the menu. See amxbans.cfg (done by Gizmo)
	- Fixed: If player has VALVE_ID_PENDING the ban will be an IP ban (LAN Servers)
	- Removed: replaceall func. Now using the replace_all func from amxmodx instead.
	- Changed: Banhistory Menu is now automatically loaded to the amxmodx menu
	
	4.4RC5 Mon Sep 18, 2006 16:58
	- Fixed: The banmenu did not get enabled at once when a new server was added.
	- Fixed: amx_list is now a server command. (rep. Mayhem)
	- Added: Extra check for bad characters in ban_reason for sql query.
	- Changed: Now uses the new replace_all func from amxmodx to have safe sql queries
	- Fixed: An INSERT query for mysql 5.x servers that have Set the SQL mode to STRICT...
	- Fixed: motd when using motdURL (ONLY LAN Servers)
	- Added: amxbans.cfg that should be in addons/amxmodx/configs/ (thx. Gizmo)
	- Fixed: Bantime in console must be a number and can not be text anymore.
	- Fixed: Menu sometimes made non admins red. (thx. Gizmo)

	4.4RC4 Fri Sep 08, 2006 9:12
	- Fixed: The connection info to the sql server was set to late on mapchange.

	4.4RC3 Wed Sep 06, 2006 2:33
	- Changed: Optimized the code by removing a redundant function.
	- Changed: Made the pruning of bans better and at the same time fixed an issue for LAN bans.
	- Fixed: Amxbans interfered with other plugins like timeleft to not function properly (server_exec())
	- Added: The banned Player nick is shown to the banned player that reconnect to the server (sugg. rhino)
	- Added: The banannounce will also print to console and not only to chat.
	- Updated: The lang file amxbans.txt
	- Fixed: Another mix of lang in rare circumstances

	4.4RC2 Sun Sep 03, 2006 18:31
	- Added: New cvar amxbans_show_name_evenif_mole If you have this set to 1 the showacivity system will not be overidden.
	- Added: New compiler option ADMIN_MOLE_ACCESS to be able to choose which admin flag the admin must have to be a mole.
	- Added: New flagsystem by Gizmo so you can mark a player being checked out. That is found in the ban menu by changing bantimes.
					 This is useful if you are recording a demo for proof and dont want another admin to ban him right away.
	- Fixed: UnBan was broken.
	
	4.4RC1 Sat Sep 02, 2006 10:53
	- Fixed: language was sometimes wrong/mixed in messages in logs or to players.
	- Changed: removed redundant functions and some debug code
	- Changed: pcvar is now used (thx Gizmo)
	- Added: New cvar amxbans_show_prebans_from_atac 1 // neohasses custom to not report/count expired atac bans in the amx_chat to admins

	4.4b13 Sun Aug 27, 2006 14:03
	- Fixed: Bug with prebanned showed wrong info sometimes.
	- Added: New cvar amxbans_max_time_to_show_preban "999999999" // How many seconds must go if the ban should not count
		This cvar is useful if you dont want to show 6 months old bans or maybe 1-2 year old bans in the bancount report to admins in amx_chat.
	- Update: lang file amxbans.txt
	- Changed: Optimized code (thx Gizmo)

	4.4b12 Fri Aug 18, 2006 18:48
	- Fixed: Some old unnecesary variables.
	- Fixed: banmenu was not updated
	- Update: lang file amxbans.txt removed old strings

	4.4b11 Sun Jul 30, 2006 22:31
	- Changed: Gizmo converted amxbans to threaded sqlX (Very big thx)
	- Fixed: Lan bans could get same IP on all db rows sometimes.
	- Fixed: Bancounts printed to adminis on LAN servers was wrong.
	- Added: Added compile option #define SHOW_IN_HLSW To be able to disable the greed hud when a player is banned.
	- Added: Added compile option #define SHOW_HUD_MESSAGES To be able to remove bans being showed as green hudmessage

	4.4b10 Sat Jul 22, 2006 12:12
	- Fixed: Multiple bantimes on the same steamID
	- Fixed: If a ban is done by the ATAC plugin, the adminNick will be [ATAC]
	- Fixed: Banning admin with immunity or a bot from console generated wrong output
	
	4.4b9 Thu May 25, 2006 15:51 (CVS)
	- Fixed: Banmenu showed wrong bantimes
	- Added: Optional SQL connection type <Persistant|NonPersistant> Persistant is default
	- Updated: amxbans.txt (Langfile)
	- Fixed: SQL-fix for amxmodx 1.75 (thx teame06)

	4.4b8 Sun May 21, 2006 12:26 (CVS) 
	- Changed: Static reasons is auto loaded if none is found in database
	- Fixed: Only the reasons added in database will show in menu. No more the number and emty reason.(Prevents blank resons)
	- Added: The banmenu will now show the bantime in weeks, days, hours instead of only minutes
	- Added: new compiler option (g_FirstBanMenuValue) to be able to set the first ban time in the menu (in minutes)
	- Updated: More language strings added in the langfile amxbans.txt
	
	4.4b7 Fri May 12, 2006 12:04 (CVS)
	- Changed: The sql connection is not persistent anymore
		
	4.4b6 Mon Apr 24, 2006 20:16 (CVS)
	- Added: New CVAR amxbans_show_prebanned <0|1> which show if a player has been banned before as amx_chat to admins.
	- Added: New CVAR amxbans_show_prebanned_num <1,2,3,...> How many offences should the player have atleast to notify admins?
	- Fixed: hudmessages was not properly translated to players
		
	4.4b5 Fri Apr 14, 2006 13:59 (CVS)
	- Merged sql_ban() into cmdBan()
	- Added: New cvar amxbans_complain_url so banned players know where to complain <img src='http://amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' />
	- Added: All strings are now translated (except debugmessages)
	- Added: A green Hudmessage will show when you ban a player.
	- Added: Normal admins (d-flag) can only unban if the ban is max 1 day old
					 This can be configured with the define in the amxbans.sma (MAX_TIME_GONE_TO_UNBAN)
	- Updated: amxbans.txt (Languagefile)
	- Removed: steamID pending check. But if a player has STEAM_ID_PENDING when banning his IP will be banned instead of steamID.

	4.4b4 Thu Apr 13, 2006 15:34 (CVS)
	- Changed: HLTV will be checked when connecting
	- Added: InGame amx_unban command. Syntax: amx_unban <STEAMID>
	- Updated: amxbans.txt (Languagefile)

	4.4b3 Wed Mar 15, 2006 22:52 (CVS)
	- Changed: AMXMODX 1.70 is now required
	- Changed: Brads time functions is now used from the amxmodx includes instead.
	- Updated: amxbans.txt (Languagefile)

	4.4b2 Wed Mar 15, 2006 20:31 (CVS)
	- Added: If a ban is done by ATAC or HLGUARD the adminname will be [ATAC] OR [HLGUARD] in the banlist
	- Changed: Optimized the two ban functions to one ban function

	4.4b1 Mon Nov 7, 2005 19:21 (CVS)
	- Fixed: Baning on LAN only bans the IP and not the authid
	- Fixed: The Ban menu now also only bans the IP if the server is on a LAN
	- Fixed: Now you can ban using IP again (amx_ban <time> <IP> <reason>)
	- Added: 2 More bantimes (total 6)
	- Added: new CVAR amxbans_ban_evenif_disconnected ( default 0 )
	  This is to be able to ban a steamID even if the player is not on the server.

	------------------------------------------------------------
	4.3 Friday October 28, 2005
	- Fixed: MOTDURL in amxbans web Interface was broken in 4.2 (reported by QuakerOates)
	- Fixed: amx_find & amx_findex got an error when no result was found.(reported by QuakerOates)
	- Fixed: Better filtering of data before it goes to a mysql query.
	- Added: log_amx commands to make all sql errors write to the amxmodx/logs.
	- Changed: New method of banning players to minimize bad data to the DB.
	  You can enable the old system by commenting #define USE_NEW_BANMETHOD
	- Fixed: Removed some dbi_free_result that should not be there. (reported by Janet J)
	- Fixed: (DOD) When banning with HLSW or in server console an error would occour. (reported by [MUPPETS]Gonzo])
	- Added: A check for STEAM_ID_PENDING so they will be kicked.
	  a new cvar is added for the above amxbans_steamid_pending 1 enabled 0 disabled (default 1)
	- Added: new cvar amxbans_servernick to be able to set the admin name you want to have when the server bans with Ie. hlsw, atac or hlguard
	         this was requested by Us3r.

	-------------------------------------------------------------
	4.2 Thursday October 13, 2005
	- Changed: Merged amxbans and amxbans_menu into one plugin (amxbans_4.2.sma).
	- Added: Made defines at the top of source to make it easy to change bantimes etc.
	- Changed: Rearranged the functions and changed the coding style.
	- Fixed: The get port bug is solved. Before the port always was 27015 even if the server was 27017 or another port.
	- Fixed: Some data was not written to the data base correctly when player pruned the data base himself
	- Changed: Now you get the bantime in weeks, days, hours, minutes and seconds instead of only minutes (thx Brad Jones)
	- Recomendation: Dont use the MOTDURL from the web. You should use the one in the plugin as it is more reliable and faster.
	- Fixed: amx_find now works and searches the active amx_ban table. Syntax: amx_find <steamID>.
	- Added: amx_findex searches in the expired ban_history table. Syntax: amx_findex <steamID>.
	- Fixed: Banmenu reasons could max be 6 now it can be 7 like it should (thx DerProfi)
	- Added: The map name can be added to the servername in the ban. This is by Default disabled.
	- Added: New cvar amxbans_debug <1|0>. Use this if you want to debug false kicked players.
	- Changed: Implemented Brad Jones function to get hours,days week in HLSW chat and amxx logs (thx Brad Jones)
	- Updated: Language file amxmodxdatalangamxbans.txt is updated. Dont forget to update or amxbans 4.2 won't work properly

	--------------------------------------------------------------
	4.1 Fri Sep 23, 2005
	- Added so admins with the d-flag can ban max 600 minutes in console.
	- Added so admins with the d-flag AND n-flag can ban whatever time they like in console and will also get higher bantimes in the menu.
	- Fixed an issue when a string was formatted incorrectly when banning.
	- Changed the way results from the data base are handled to ged rid of memory leaks.
	- Fixed so you can compile when you want STATIC REASONS and not reasons from the DB.

	--------------------------------------------------------------
	4.01 Sun Sep 04, 2005
	- Fixed some result variables that where wrong and crashed the server when using amxmodx 1.50 and later versions.
	- Fixed when a recently banned player comes back after ban is expired. Now the data base gets pruned correctly.
	- Fixed so Bots don't triggers errors in the logs when connecting.
	- Changed so players recieve better info when they get kicked when they are banned.

*/

new AUTHOR[] = "YoMama/Lux & lantz69 -Sqlx by Gizmo"
new PLUGIN_NAME[] = "AMXBans"
new VERSION[] = "5.0" // This is used in the plugins name

new amxbans_version[] = "amxx_5.0" // This is for the DB

#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <time>

// Amxbans .inl files
#include "amxbans/global_vars.inl"
#include "amxbans/init_functions.inl"
#include "amxbans/check_player.inl"
#include "amxbans/menu.inl"
#include "amxbans/cmdBan.inl"
#include "amxbans/cmdUnban.inl"
#include "amxbans/search.inl"

// 16k * 4 = 64k stack size
#pragma dynamic 16384 		// Give the plugin some extra memory to use

public plugin_init()
{

	register_concmd("amx_reloadreasons", "reasonReload", ADMIN_CFG)

	register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN, "- displays ban menu") //Changed this line to make this menu come up instead of the normal amxx ban menu
	register_clcmd("amxbans_custombanreason", "setCustomBanReason", ADMIN_BAN, "- configures custom ban message")
	register_clcmd("amx_banhistorymenu", "cmdBanhistoryMenu", ADMIN_BAN, "- displays banhistorymenu")
	
	register_menucmd(register_menuid("Ban Menu"), 1023, "actionBanMenu")
	register_menucmd(register_menuid("Ban Reason Menu"), 1023, "actionBanMenuReason")
	register_menucmd(register_menuid("Banhistory Menu"), 1023, "actionBanhistoryMenu")

	g_coloredMenus = colored_menus()
	g_MyMsgSync = CreateHudSyncObj()

	register_plugin(PLUGIN_NAME, VERSION, AUTHOR)
	register_cvar("amxbans_version", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)

	amxbans_cmd_sql = register_cvar("amxbans_cmd_sql", "0") // A custom plugin that is not released yet so dont touch this cvar.
	amxbans_debug = register_cvar("amxbans_debug", "0") // Set this to 1 to enable debug
	server_nick = register_cvar("amxbans_servernick", "") // Set this cvar to what the adminname should be if the server make the ban.
																											  // Ie. amxbans_servernick "My Great server" put this in server.cfg or amxx.cfg
	ban_evenif_disconn = register_cvar("amxbans_ban_evenif_disconnected", "0") // 1 enabled and 0 disabled ban of players not in server
	complainurl = register_cvar("amxbans_complain_url", "www.yoursite.com") // Dont use http:// then the url will not show
	show_prebanned = register_cvar("amxbans_show_prebanned", "1") // Will show if a player has been banned before as amx_chat to admins. 0 to disable
	show_prebanned_num = register_cvar("amxbans_show_prebanned_num", "2") // How many offences should the player have to notify admins?
	max_time_to_show_preban = register_cvar("amxbans_max_time_to_show_preban", "9999") // How many days must go if the ban should not count
	banhistmotd_url = register_cvar("amxbans_banhistmotd_url","http://pathToYour/findex.php?steamid=%s")
	show_atacbans = register_cvar("amxbans_show_prebans_from_atac", "1") // neohasses custom to not count or count atac bans in the chat to admins
	show_name_evenif_mole = register_cvar("amxbans_show_name_evenif_mole", "1")
	firstBanmenuValue = register_cvar("amxbans_first_banmenu_value", "5")
	consoleBanMax = register_cvar("amxbans_consolebanmax", "1440")
	max_time_gone_to_unban = register_cvar("amxbans_max_time_gone_to_unban", "1440") // This is set in minutes
	higher_ban_time_admin = register_cvar("amxbans_higher_ban_time_admin", "n")
	admin_mole_access = register_cvar("amxbans_admin_mole_access", "r")
	show_in_hlsw = register_cvar("amxbans_show_in_hlsw", "1")
	show_hud_messages = register_cvar("amxbans_show_hud_messages", "1")
	add_mapname_in_servername = register_cvar("amxbans_add_mapname_in_servername", "0")
	
	register_dictionary("amxbans.txt")
	register_dictionary("common.txt")
	register_dictionary("time.txt")

	register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<time in mins> <steamID or nickname or #authid or IP> <reason>")
	register_srvcmd("amx_ban", "cmdBan", -1, "<time in min> <steamID or nickname or #authid or IP> <reason>")
	register_concmd("amx_banip", "cmdBan", ADMIN_BAN, "<time in mins> <steamID or nickname or #authid or IP> <reason>")
	register_srvcmd("amx_banip", "cmdBan", -1, "<time in mins> <steamID or nickname or #authid or IP> <reason>")
	register_concmd("amx_unban", "cmdUnBan", ADMIN_BAN, "<steamID>")
	register_srvcmd("amx_unban", "cmdUnBan", -1, "<steamID>")
	register_concmd("amx_find", "amx_find", ADMIN_BAN, "<steamID>")
	register_srvcmd("amx_find", "amx_find", -1, "<steamID>")
	register_concmd("amx_findex", "amx_findex", ADMIN_BAN, "<steamID>")
	register_srvcmd("amx_findex", "amx_findex", -1, "<steamID>")
	register_srvcmd("amx_list", "cmdLst", -1, "Displays playerinfo")
	register_srvcmd("amx_sethighbantimes", "setHighBantimes")
	register_srvcmd("amx_setlowbantimes", "setLowBantimes")

	new configsDir[64]
	get_configsdir(configsDir, 63)

	new configfile[128]
	format(configfile, 127, "%s/amxbans.cfg", configsDir)
	
	server_cmd("exec %s/sql.cfg", configsDir)
	if(file_exists(configfile))
	{
		server_cmd("exec %s", configfile)
	}
	else
	{
		loadDefaultBantimes(0)
		server_print("[AMXBANS] Could not find amxbans.cfg, loading default bantimes")
		log_amx("[AMXBANS] Could not find amxbans.cfg, loading default bantimes")
		log_amx("[AMXBANS] You should put amxbans.cfg in addons/amxmodx/configs/")
	}
	//server_exec() // Made other plugins dont work properly b/c settings in amxx.cfg was not read properly

	set_task(0.5, "sql_init")
	set_task(5.0, "addBanhistMenu")

}

public addBanhistMenu()
	AddMenuItem("Banhistory Menu", "amx_banhistorymenu", ADMIN_BAN, "AMXBans")

public sql_init()
{
	new host[64], user[64], pass[64], db[64]

	get_cvar_string("amx_sql_host", host, 63)
	get_cvar_string("amx_sql_user", user, 63)
	get_cvar_string("amx_sql_pass", pass, 63)
	get_cvar_string("amx_sql_db", db, 63)

	g_SqlX = SQL_MakeDbTuple(host, user, pass, db)
	
	set_task(1.0, "banmod_online")
	set_task(1.0, "fetchReasons")
}

public reasonReload(id,level,cid)
{
	if (!cmd_access(id,level,cid,1))
		return PLUGIN_HANDLED
	else
	{	
		fetchReasons(id)
		
		if (id != 0)
		{
			if (g_aNum == 1)
				console_print(id,"[AMXBANS] %L", LANG_SERVER, "SQL_LOADED_REASON" )
			else
				console_print(id,"[AMXBANS] %L", LANG_SERVER, "SQL_LOADED_REASONS", g_aNum )
		}
	}

	return PLUGIN_HANDLED
}

public client_connect(id)
{
	if( (id > 0 || id < 32) && is_user_connected(id) )
	{
		g_lastCustom[id][0] = '^0'
		g_inCustomReason[id] = 0
		g_player_flagged[id] = false
		g_being_banned[id] = false
	}
	
}

public client_disconnect(id)
{
	g_lastCustom[id][0] = '^0'
	g_inCustomReason[id] = 0
	g_player_flagged[id] = false
	g_being_banned[id] = false
}

public client_authorized(id)
{
	if (get_pcvar_num(show_prebanned) == 1)
	{
		set_task(1.0, "prebanned_check", id)
	}
	set_task(1.1, "check_player", id)

	return PLUGIN_CONTINUE
}

public delayed_kick(id_str[])
{
	new player_id = str_to_num(id_str)
	new userid = get_user_userid(player_id)
	new kick_message[128]
	format(kick_message,127,"%L", LANG_PLAYER,"KICK_MESSAGE")

	if ( get_pcvar_num(amxbans_debug) == 1 )
		log_amx("[AMXBANS DEBUG] Delayed Kick ID: <%s>", id_str)

	server_cmd("kick #%d  %s",userid, kick_message)
	
	return PLUGIN_CONTINUE
}

/*********    This is used by live ban on the webpages     ************/
public cmdLst(id,level,cid)
{
	new players[32], inum, authid[32],name[32],ip[50]

	get_players(players,inum)
	console_print(id,"playerinfo")

	for(new a = 0; a < inum; a++)
	{
		get_user_ip(players[a],ip,49,1)
		get_user_authid(players[a],authid,31)
		get_user_name(players[a],name,31)
		console_print(id,"#WM#%s#WMW#%s#WMW#%s#WMW#",name,authid,ip)
	}

	return PLUGIN_HANDLED
}

public get_higher_ban_time_admin_flag()
{
	new flags[24]
	get_pcvar_string(higher_ban_time_admin, flags, 23)
	
	return(read_flags(flags))
}

public get_admin_mole_access_flag()
{
	new flags[24]
	get_pcvar_string(admin_mole_access, flags, 23)
	
	return(read_flags(flags))
}

/* This function will attempt to find a player based on the following options:
	- Partial Player Name
	- Steam ID
	- User ID
	- User IP Address
*/
public locate_player(id, identifier[])
{

	g_ban_type = "S"

	// Check based on steam ID
	new player = find_player("c", identifier)

	// Check based on a partial non-case sensitive name
	if (!player) {
		player = find_player("bl", identifier)
	}

	if (!player) {
		// Check based on IP address
		player = find_player("d", identifier)

		if ( player )
			g_ban_type = "SI"
	}

	// Check based on user ID
	if ( !player && identifier[0]=='#' && identifier[1] ) {
		player = find_player("k",str_to_num(identifier[1]))
	}

	if ( player )
	{
		/* Check for immunity */
		if (get_user_flags(player) & ADMIN_IMMUNITY) {
			new name[32]
			get_user_name(player, name, 31)
			if( id == 0 )
				server_print("[AMXBANS] Client ^"%s^" has immunity", name)
			else
				console_print(id,"[AMXBANS] Client ^"%s^" has immunity", name)
			return -1
		}
		/* Check for a bot */
		else if (is_user_bot(player)) {
			new name[32]
			get_user_name(player, name, 31)
			if( id == 0 )
				server_print("[AMXBANS] Client ^"%s^" is a bot", name)
			else
				console_print(id,"[AMXBANS] Client ^"%s^" is a bot", name)
			return -1
		}

	}
	return player
}

public setHighBantimes()
{
	new arg[32]
	new argc = read_argc() - 1
	g_highbantimesnum = argc
	//server_print("args: %d", argc)

	if(argc < 1 || argc > 12)
	{
		log_amx("[AMXBANS] You have more than 12 or less than 1 bantimes set in amx_sethighbantimes")
		log_amx("[AMXBANS] Loading default bantimes")
		loadDefaultBantimes(1)

		return PLUGIN_HANDLED
	}

	new i = 0
	new num[32], flag[32]
	while (i < argc)
	{
		read_argv(i + 1, arg, 31)
		parse(arg, num, 31, flag, 31)
		//server_print("Num: %s, Flag: %s", num, flag)

		if(equali(flag, "m"))
		{ 
			g_HighBanMenuValues[i] = str_to_num(num)
		}
		else if(equali(flag, "h"))
		{
			g_HighBanMenuValues[i] = (str_to_num(num) * 60)
		}
		else if(equali(flag, "d"))
		{
			g_HighBanMenuValues[i] = (str_to_num(num) * 1440)
		}
		else if(equali(flag, "w"))
		{
			g_HighBanMenuValues[i] = (str_to_num(num) * 10080)
		}
		//server_print("HighBantime: %d", str_to_num(num))

		i++
	}
	return PLUGIN_HANDLED
}

public setLowBantimes()
{
	new arg[32]
	new argc = read_argc() - 1
	g_lowbantimesnum = argc
	//server_print("args: %d", argc)
	if(argc < 1 || argc > 12)
	{
		log_amx("[AMXBANS] You have more than 12 or less than 1 bantimes set in amx_setlowbantimes")
		log_amx("[AMXBANS] Loading default bantimes")
		loadDefaultBantimes(2)
		
		return PLUGIN_HANDLED
	}

	new i = 0
	new num[32], flag[32]
	while (i < argc)
	{
		read_argv(i + 1, arg, 31)
		parse(arg, num, 31, flag, 31)
		//server_print("Num: %s, Flag: %s", num, flag)

		if(equali(flag, "m"))
		{ 
			g_LowBanMenuValues[i] = str_to_num(num)
		}
		else if(equali(flag, "h"))
		{
			g_LowBanMenuValues[i] = (str_to_num(num) * 60)
		}
		else if(equali(flag, "d"))
		{
			g_LowBanMenuValues[i] = (str_to_num(num) * 1440)
		}
		else if(equali(flag, "w"))
		{
			g_LowBanMenuValues[i] = (str_to_num(num) * 10080)
		}
		//server_print("LowBantime: %d", str_to_num(num))

		i++
	}
	return PLUGIN_HANDLED
}

loadDefaultBantimes(num)
{
	if(num == 1 || num == 0)
		server_cmd("amx_sethighbantimes 5 60 240 600 6000 0 -1")
	if(num == 2 || num == 0)
		server_cmd("amx_setlowbantimes 5 30 60 480 600 1440 -1")
}

/*********  Error handler  ***************/
MySqlX_ThreadError(szQuery[], error[], errnum, failstate, id)
{
	
	if (failstate == TQUERY_CONNECT_FAILED)
	{
		log_amx("%L", LANG_SERVER, "TCONNECTION_FAILED")
	}
	else if (failstate == TQUERY_QUERY_FAILED)
	{
		log_amx("%L", LANG_SERVER, "TQUERY_FAILED")
	}
	log_amx("%L", LANG_SERVER, "TQUERY_ERROR", id)
	log_amx("%L", LANG_SERVER, "TQUERY_MSG", error, errnum)
	log_amx("%L", LANG_SERVER, "TQUERY_STATEMENT", szQuery)
}

public plugin_end()
{
	SQL_FreeHandle(g_SqlX)
}



cmdUnban.inl

/*
     This function will UnBan by steamID amx_unban <STEAMID>   
*/

public cmdUnBan(id,level,cid)
{
	if (!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED


	read_args(g_unban_player_steamid, 50)
	trim(g_unban_player_steamid)

 	if ( contain(g_unban_player_steamid, "STEAM_") == -1 )
	{
		client_print(id,print_console,"[AMXBANS] %L",LANG_PLAYER,"UNABAN_STEAMID_ONLY")

		return PLUGIN_HANDLED
	}
	
	new query[512]
	new data[1]

	format(query, 511, "SELECT bid,ban_created,ban_length,ban_reason,admin_nick,admin_id,player_nick,player_ip,player_id,ban_type,server_ip,server_name FROM `%s` WHERE player_id='%s'", tbl_bans, g_unban_player_steamid)
	data[0] = id
	SQL_ThreadQuery(g_SqlX, "cmd_unban_select", query, data, 1)
	
	return PLUGIN_HANDLED
}

public cmd_unban_select(failstate, Handle:query, error[], errnum, data[], size)
{
	new id = data[0]
	new bool:serverCmd = false

	// Determine if this was a server command or a command issued by a player in the game
	if ( id == 0 )
		serverCmd = true
	
	if (failstate)
	{
		new szQuery[256]
		MySqlX_ThreadError( szQuery, error, errnum, failstate, 11 )
	}
	else
	{
		
		if (!SQL_NumResults(query))
		{
			client_print(id, print_console, "[AMXBANS] %L",LANG_PLAYER,"AMX_FIND_NORESULT", g_unban_player_steamid)
			server_print("[AMXBANS] %L",LANG_PLAYER,"AMX_FIND_NORESULT", g_unban_player_steamid)
	
			return PLUGIN_HANDLED
		}
		else
		{
			client_print(id,print_console,"[AMXBANS] %L",LANG_PLAYER,"AMX_FIND_RESULT_1",g_unban_player_steamid)
			
			new ban_created[50], ban_length[50], ban_reason[255], admin_nick[100]
			new ban_created_int, current_time_int
			new player_ip[30],player_steamid[50], ban_type[10], server_ip[30], server_name[100]
			
			new bid = SQL_ReadResult(query, 0)
			SQL_ReadResult(query, 1, ban_created, 49)
			SQL_ReadResult(query, 2, ban_length, 49)
			SQL_ReadResult(query, 3, ban_reason, 254)
			SQL_ReadResult(query, 4, admin_nick, 99)
			SQL_ReadResult(query, 5, g_admin_steamid, 49)
			SQL_ReadResult(query, 6, g_player_nick, 49)
			SQL_ReadResult(query, 7, player_ip, 29)
			SQL_ReadResult(query, 8, player_steamid, 49)
			SQL_ReadResult(query, 9, ban_type, 9)
			SQL_ReadResult(query, 10, server_ip, 29)
			SQL_ReadResult(query, 11, server_name, 99)

			current_time_int = get_systime(0)
			ban_created_int = str_to_num(ban_created)
			
			/* Check how many minutes have gone since the ban was created */
			new banned_minutes_ago = (current_time_int - ban_created_int)/60
			new banned_ago_str[128], banned_ago_str2[128]
			get_time_length(id, get_pcvar_num(max_time_gone_to_unban), timeunit_minutes, banned_ago_str, 127)
			get_time_length(id, banned_minutes_ago, timeunit_minutes, banned_ago_str2, 127)
				
			if (banned_minutes_ago > get_pcvar_num(max_time_gone_to_unban) && !(get_user_flags(id)&get_higher_ban_time_admin_flag()) )
			{
				client_print(id,print_console,"[AMXBANS] %L",LANG_PLAYER,"UNBAN_TO_OLD_BAN", banned_ago_str)
				client_print(id,print_console,"[AMXBANS] %L",LANG_PLAYER,"UNBAN_TO_OLD_BAN2", banned_ago_str2)
	
				return PLUGIN_HANDLED
			}
	
			client_print(id,print_console," ")
			client_print(id,print_console,"[AMXBANS] =================")
			client_print(id,print_console,"[AMXBANS] %L",LANG_PLAYER,"AMX_FIND_RESULT_2", bid, g_player_nick)
			client_print(id,print_console,"[AMXBANS] %L",LANG_PLAYER,"AMX_FIND_RESULT_3", admin_nick, g_admin_steamid, ban_reason)
			client_print(id,print_console,"[AMXBANS] =================")
			client_print(id,print_console," ")

			server_print(" ")
			server_print("[AMXBANS] =================")
			server_print("[AMXBANS] %L",LANG_SERVER,"AMX_FIND_RESULT_2", bid, g_player_nick)
			server_print("[AMXBANS] %L",LANG_SERVER,"AMX_FIND_RESULT_3", admin_nick, g_admin_steamid, ban_reason)
			server_print("[AMXBANS] =================")
			server_print(" ")
				
			
			new unban_admin_steamid[32]
			if (!serverCmd)
			{
				get_user_authid(id, unban_admin_steamid, 31)
				get_user_team(id, g_unban_admin_team, 9)
				get_user_name(id, g_unban_admin_nick, 99)
			}
			else
			{
				/* If the server does the ban you cant get any steam_ID or team */
				unban_admin_steamid = ""
				g_unban_admin_team = ""
		
				/* This is so you can have a shorter name for the servers hostname.
				Some servers hostname can be very long b/c of sponsors and that will make the ban list on the web bad */
				new servernick[100]
				get_pcvar_string(server_nick, servernick, 99)
				if (strlen(servernick))
					g_unban_admin_nick = servernick
				else
					get_cvar_string("hostname", g_unban_admin_nick, 99)
					
			}
			
			new unban_created = get_systime(0)
			
			new query[512]
			format(query, 511, "INSERT INTO `%s` (player_id,player_ip,player_nick,admin_id,admin_nick,ban_type,ban_reason,ban_created,ban_length,server_ip,server_name,unban_created,unban_reason,unban_admin_nick) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%i','UnBanned in Game','%s %s')",tbl_banhist,g_unban_player_steamid,player_ip,g_player_nick,g_admin_steamid,admin_nick,ban_type,ban_reason,ban_created,ban_length,server_ip,server_name,unban_created, g_unban_admin_nick, unban_admin_steamid)
			
			new data[2]
			data[0] = id
			data[1] = bid
			SQL_ThreadQuery(g_SqlX, "cmd_unban_insert", query, data, 2)
			
			if ( get_pcvar_num(amxbans_debug) == 1 )
				log_amx("[AMXBANS DEBUG] UNBAN IN GAME: INSERT INTO `%s` (VALUES('%s','%s','%s', '%s')",tbl_banhist,g_unban_player_steamid,g_player_nick,ban_length, g_unban_admin_nick)
		}
	}
	return PLUGIN_HANDLED
}

public cmd_unban_insert(failstate, Handle:query, error[], errnum, data[], size)
{
	new id = data[0]
	new bid = data[1]

	if (failstate)
	{
		new szQuery[256]
		MySqlX_ThreadError( szQuery, error, errnum, failstate, 12 )
	}
	else
	{
		new query[512]
		new data[1]
	
		format(query, 511, "DELETE FROM `%s` WHERE bid=%d", tbl_bans, bid)
		
		data[0] = id
		SQL_ThreadQuery(g_SqlX, "cmd_unban_delete_and_print", query, data, 1)
		
		if ( get_pcvar_num(amxbans_debug) == 1 )
			log_amx("[AMXBANS DEBUG] UNBAN IN GAME: DELETE FROM `%s` WHERE bid=%d",tbl_bans, bid)
	}
	
	return PLUGIN_HANDLED
}

public cmd_unban_delete_and_print(failstate, Handle:query, error[], errnum, data[], size)
{
	new id = data[0]

	if (failstate)
	{
		new szQuery[256]
		MySqlX_ThreadError( szQuery, error, errnum, failstate, 13 )
	}
	else
	{
		log_amx("%L", LANG_SERVER, "UNBAN_LOG",	g_unban_admin_nick, get_user_userid(id), g_admin_steamid, g_unban_admin_team, g_player_nick, g_unban_player_steamid)
	
		if ( get_pcvar_num(show_in_hlsw) == 1 )
		{
			// If you use HLSW you will see when someone ban a player if you can see the chatlogs
			log_message("^"%s<%d><%s><%s>^" triggered ^"amx_chat^" (text ^"%L^")", g_unban_admin_nick, get_user_userid(id) , g_admin_steamid, g_unban_admin_team,
			LANG_SERVER, "UNBAN_CHATLOG", g_player_nick, g_unban_player_steamid)
		}
			
		new show_activity = get_cvar_num("amx_show_activity")
		
		if( (get_user_flags(id)&get_admin_mole_access_flag() || id == 0) && (get_pcvar_num(show_name_evenif_mole) == 0) )
			show_activity = 1
			
		if (show_activity == 1)
		{
			client_print(0,print_chat,"%L",LANG_PLAYER,"PUBLIC_UNBAN_ANNOUNCE", g_player_nick)
		}
	
		if (show_activity == 2)
		{
			client_print(0,print_chat,"%L",LANG_PLAYER,"PUBLIC_UNBAN_ANNOUNCE_2", g_player_nick, g_unban_admin_nick)
		}
			
		client_print(id,print_console," ")
		client_print(id,print_console,"[AMXBANS] =================")
		client_print(id,print_console,"%L",LANG_PLAYER,"PUBLIC_UNBAN_ANNOUNCE", g_player_nick)
		client_print(id,print_console,"[AMXBANS] =================")
		client_print(id,print_console," ")
	
		server_print(" ")
		server_print("[AMXBANS] =================")
		server_print("[AMXBANS] %L",LANG_SERVER,"PUBLIC_UNBAN_ANNOUNCE", g_player_nick)
		server_print("[AMXBANS] =================")
		server_print(" ")
	}
	
	return PLUGIN_HANDLED
}

  • +
  • -
  • 0

#2 Wujek

    Wszechwidzący

  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:278
Offline

Napisano 04.09.2009 19:08

Ustaw w dproto.cfg
cid_NoSteam47 = 3
I każdy NoSteam będzie miał generowane z IP SteamID które potem można odbanować. :X
  • +
  • -
  • 0

#3 SaveD

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:38
  • Lokalizacja:Lublin
Offline

Napisano 04.09.2009 19:18

Nie mam na servie dproto. Chce po prostu aby można było odbanowywać tak jak sie banuje.
  • +
  • -
  • 0

#4 Wujek

    Wszechwidzący

  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:278
Offline

Napisano 04.09.2009 19:55

Nie da się tego przerobić. Albo w panelu, albo dproto.
  • +
  • -
  • 0

#5 SaveD

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:38
  • Lokalizacja:Lublin
Offline

Napisano 04.09.2009 20:38

No co ty gadasz, że się nie da. Wszystko się da tylko niech ktos sensowny sie trafi...
  • +
  • -
  • 0

#6 Grycuk

    Zaawansowany

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:113
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Minsk Mazowiecki
Offline

Napisano 05.09.2009 15:43

dproto nie ma nic do odbanowywania na IP czasy sie zminily teraz steam id tylko jest ustawiasz sobie generwoanie STEAM_ dla nonsteama z adresu ip w dproto.cfg i tez masz stale steam id jak ktos ma stale ip i wtedy masz tylko steam id a na odbanowywanie przez IP raczej nie wypali w amxbansie
  • +
  • -
  • 0

#7 SaveD

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:38
  • Lokalizacja:Lublin
Offline

Napisano 21.11.2009 15:26

A jak to ustawić?????
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych