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

CURRENT VERSION: 0.4.5
For more information and updates please check http://cs.rin.ru/forum/viewtopic.php?f=29&t=52728

ARCHIVE CONTAINS:
	bin directory - Binaries (libraries) for linux and windows.
	src directory - Source code. You need this only if you want to build dproto by youself.
	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
	- 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.4.5    ini   Start Never
		 [ 2] AMX Mod X        RUN   -    amxmodx_mm_i386.  v1.8.1.3  ini   Start ANY
		2 plugins, 2 running
	6. Enjoy :)
	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.
	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 COMPILE DPROTO?
	You need hlsdk and metamod source code to build metamod plugins.

	http://metamod.sourceforge.net/files/sdk/hlsdk-2.3-p3.zip
	http://prdownloads.sourceforge.net/metamod/metamod-1.19-win.src.zip?download

	Download, extract it and make directory hierarchy like this:

	(Some Dir)
	      |
	      | - hlsdk  
	      |     | - singleplayer
	      |     | - multiplayer
	      |
	      | - metamod-1.19
	      |     | - metamod
	      |     | - dproto

	LINUX:
		Use Intel C/C++ Compiler (icc). It could be downloaded there:
		http://software.intel.com/en-us/articles/non-commercial-software-development/
		
		cd to 
			(Some Dir)/metamod-1.19/dproto 
		then use ./compile.sh command (don't forget to chmod +x it)

	WINDOWS:
		You need Microsoft Visual Studio 2008 to compile dproto under windows.
		On Windows, a particular directory layout is not required. Instead, environment variables are used.
		The directions below apply to Windows XP, and are assumed to be similar for other versions of Windows.
			Open the Control Panel (for example, via Start -> Settings).
			Open the System control. If you don't see it, you may need to switch to "Classic view" (either via the left-hand pane or by going to Tools -> Folder Options).
			Click the Advanced tab.
			Click the Environment Variables button.
		You can add your environment variables to either your User settings or your System settings.
		Create a new variable for each item in the list below. The item names are in fixed-width font and their value descriptions follow.
			METAMOD - Path to Metamod headers (where metamod.h resides)
			HLSDK - Path to Half-Life SDK 		
		For example directory layout setup:
			METAMOD=(Some Dir)\metamod-1.19\metamod
			HLSDK=(Some Dir)\hlsdk\multiplayer
		Then just open the (Some Dir)\metamod-1.19\dproto\msvc\dproto.sln Solution.

HOW TO GET CLIENT PROTOCOL IN AMXX:
	check the amxx/dp_test.sma. This is sample plugin that writes protocol number when client connecting.
	NOTE: this is _sample_ plugin and its installation is not necessary.
	
THANKS TO:
 	Armind for testing, bugreporting;
 	bDy for testing on FreeBSD;
	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;
	SISA for hard testing of eST support and deprecated clientids;
	**$n@!ke** for testing, hlstats fix idea;
	Valve for good games ;)
	All people from this (http://cs.rin.ru/forum/viewtopic.php?f=10&t=50689&start=660) thread
	And all other people whom I forgot
