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 /addons/ and make new directory named dproto - it is a game directory; cstrike for Counter-Strike, valve for Half-Life, etc 2. Copy dproto.dll or dproto_i386.so to /addons/dproto/ 3. Go to metamod installation directory (usually its /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 /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