dproto is a plugin for metamod that allows p.47 and 48 no-steam clients to join the hlds-based server.

CURRENT VERSION: 0.9.582-p
What's new:
	1. Linux version is compatible with the latest 8308 version of HLDS.
	2. Support for "Has associated Steam account"
	3. Modify the configuration content of dproto.cfg.

dproto.cfg Changelog:
	1. All 47 protocol clients are grouped into: STEAM_ID_LAN
	2. All clients of the 48 protocol or Steam simulator are classified into: VALVE_ID_PENDING
	3. Clients that use sXe Injected are categorized into: VALVE_ID_LAN
	4. Set the server query message to Hybrid mode (by default only 48 protocols can be swiped out of the server)
	5. The dproto version number is not displayed.

Since I have no source code, I can only do disassembling patches!
	
For more information and updates please check http://cs.rin.ru/forum/viewtopic.php?f=29&t=55986

ARCHIVE CONTAINS:
	bin directory - Binaries (libraries) for linux and windows.
	amxx directory - some AmxModX plugins that uses dproto functionality
	dproto.cfg - dproto configuration file.
	Readme.txt - This file.

REQUIREMENTS:
	- clean (unpatched) engine files (swds.dll for windows; engine_i686.so for linux)
	- metamod 1.19 or 1.19p32 or higher
	- currently supported builds are all p48 engines for windows and linux

INSTALLATION:
	1. Go to <gamedir>/addons/ and make new directory named dproto
		<gamedir> - it is a game directory; cstrike for Counter-Strike, valve for Half-Life, etc
	2. Copy dproto.dll or dproto_i386.so to <gamedir>/addons/dproto/
	3. Go to metamod installation directory (usually its <gamedir>/addons/metamod/) and edit plugins.ini:
		add this line for windows
			win32 addons\dproto\dproto.dll
		or this for linux
			linux addons/dproto/dproto_i386.so
		at the beginning of the file
	4. Copy dproto.cfg to server root or gamedir.
	5. Start the server. You should use this command on linux: 
		./hlds_run -binary ./hlds_i686
	
	   when server loads, type "meta list" in console. You'll see something like this:
		Currently loaded plugins:
			  description      stat pend  file              vers      src   load  unlod
		 [ 1] dproto           RUN   -    dproto_i386.so    v0.9.582    ini   Start Never
		 [ 2] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.8.1.3  ini   Start ANY
		2 plugins, 2 running
	6. If status is not "RUN", start server with "+log on +mp_logecho 1" parameters and look through console output. In 99% cases you'll find reason there.
	7. Installation of AmxModX plugins from amxx directory is not necessary.

HOW TO CHANGE STEAMIDS OF CLIENTS
	Use cid* options in AUTHID MANAGEMENT section of dproto.cfg
	For example, if you want to assign steamids generated by IP for p47 clients that not support unique id generation, you should set:
		cid_NoSteam47 = 3 for assigning STEAM_x:y:z steamid to these clients
		cid_NoSteam47 = 4 for assigning VALVE_x:y:z steamid to these clients
		
	If you want to drop these clients, just set clientid to 5:
		cid_NoSteam47 = 5
	And all p47 clients without emulators will be dropped with message that you can customize (see next section).

HOW TO CHANGE REJECT MESSAGES WHEN CLIENTID IS 5 (DEPRECATED)
	This could be done using these cvars:
		dp_rejmsg_steam for legit steam (cid_Steam) clients
		dp_rejmsg_nosteam47 for no-steam p47 (cid_NoSteam47) clients
		dp_rejmsg_nosteam48 for no-steam p48 (cid_NoSteam48) clients
		dp_rejmsg_hltv for HLTV (cid_HLTV) clients
		dp_rejmsg_pending for unathorized (cid_cid_SteamPending) clients
		dp_rejmsg_revemu for revEmu (>= 9.74 && <= 9.82) clients
		dp_rejmsg_steamemu for steamEmu clients
		dp_rejmsg_oldrevemu for old revEmu clients (< 9.74)
		dp_rejmsg_avsmp for AVSMP clients
		dp_rejmsg_revemu_sc2009 for revEmu (>9.82) and SteamClient2009 clients
		dp_rejmsg_sxei for clients with sXe Injected if EnableSXEIdGeneration is set to 1
		dp_rejmsg_revemu2013 for revEmu 2013 clients

	Just put message to them and it will be displayed for rejected clients.

	Example, a part of server.cfg:
		dp_rejmsg_nosteam47 "Sorry, you're using old client, download a new one and come back ;)"

HOW TO GET CLIENT PROTOCOL IN AMXX:
	check the amxx/dp_test.sma. This is sample plugin that outputs protocol number when client connecting.
	NOTE: this is _sample_ plugin and its installation is not necessary.
	
USEFUL COMMANDS/CVARS:
	dp_ipsessions (command) - lists active connectionless sessions and info about them.
	dp_secplrinfo (command) - lists active players with some boolean options: U = Slot is used; A = Active network client; P = passed fakeplayer check;
	dp_lastthreats (command) - lists last threats.
	dp_heapinfo (command) - writes internal heap usage to <gamedir>/mem.txt.
	dp_log_msgoverflows (cvar) - enables/disables dumping contents of messages on overflow.

THANKS TO:
	Armind for testing, bugreporting;
	AlexALX for testing;
	bDy for testing on FreeBSD;
	Co6aka for tesing;
	Dark-Master for testing, bugreporting;
	debugger_perm for original idea and testing;
	DrilLer for testing, bugreporting;
	GoD2.0 for redirection fix idea;
	gromo for testing, bugreporting;
	ineya for Hybrid serverinfo trick;
	jamess for "deprecated" id idea;
	La_Vladimir for testing, bugreporting;
	Lev (aka Flasher) for help and testing;
	P4rD0nM3 for testing, bugreporting;
	Shidla for testing;
	SISA for hard testing of eST support and deprecated clientids;
	**$n@!ke** for testing, hlstats fix idea;
	Asmodai for help with commands order;
	Chuvi for voice init solution;
	PRoSToTeM@ for deltas processing bugfix, user info filtering and other good ideas;
	S0m3Th1nG_AwFul for testing, bugreporting;
	coolman for testing, bugreporting;
	Sanlerus (aka Freedo.m) for reproducing bug with hanging clients and testing
	Valve for good games ;)
	All people from this (http://cs.rin.ru/forum/viewtopic.php?f=10&t=50689) thread
	And all other people whom I forgot
