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.548
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.548    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_secplrlist (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
