Logo

CS.RIN.RU - Steam Underground Community

Act on our announcement about attachments.
It is currently Friday, 26 Aug 2016, 12:22

English | Русский




Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1698 posts ] 
Author Message

Post Post subject: dproto - double protocol for HL1 based games [ARCHIVE]   
Posted: Saturday, 06 Jun 2009, 09:59   Reply with quote
Forum ghost Местное привидение
User avatar
Joined: Tuesday, 09 Dec 2008, 18:46
Posts: 268
ImagedprotoImage is a plugin for metamod that allows protocol 47 and 48 no-steam clients to join the server.

FEATURES:
    - Server accepts all known clients based on 47 and 48 protocols;
    - Customizable SteamIDs for clients;
    - Works with latest version of hlds;
    - built-in server-side emulation support.

Current version: 0.4.8
Attachment:
dproto_0_4_8.rar


Previous stable:
Attachment:
dproto_0_3_7.rar



CHANGELOG:
    0.4.8:
      - fixed problem with dropping clients with "Unknown HLTV Type" message
      - fix in anti-svc_bad code, it should work fine now

    0.4.7:
      - fixed: old WON clients (CS patch 21 and lower) unable to join server

    0.4.6:
      - fixed NET_SendPacket error that appears when server tried to drop deprecated client

    0.4.5:
      - implemented fix for "Server failed to transmit file AY&SY" kind of svc_bad's
      - UTF8 Chat/Nicknames support completely removed (will add it to another plugin)
      - Userinfo filter removed because it does not needed anymore (it was a temporary fix for svc_bad's)
      - added separate AuthProvider (dp_r_id_provider cvar) constant for HLTV (check amxx/dp_test.sma)
      - fixed GameNameChanger plugins under Windows.
      - There are a lot of changes in dproto.cfg. Old configs won't work with this version.

    0.4.3:
      - Using on-the-fly offsets searching for patching.
      - dproto now supports all existing (and hopefully future) p48 engines for Windows and Linux (including engine_amd.so/engine_i486.so).
      - Fixed vulnerability in SV_ParseVoiceData() used by hlds_vcrash exploit.

Chengelog for older versions:
Spoiler
    0.4.1:
      - hlds_fuck exploit fixed.
      - temporary fix for hlds_vcrash exploit: Patched swds.dll/engine_i686.so, uploaded here and here.

    0.3.7:
      - possible DoS exploit fixed
      - added Subserver_IP option in dproto.cfg, used to set interface for subserver; subserver code will be rewrititten in next versions.


    0.3.6:
      - implemented cid_Setti clientid type (for Setti server scanner). Default value is 3 (STEAM_x:x:x generated by ip). This is workaround for situation when server disappears from Setti's serverlist (because Setti scanner can't join the server) when cid_NoSteam47=5 is used.
      - Plugins changing game description (adding timeleft for example) should work correctly now.

    0.3.5:
      - Fixed server response for very old clients (thx to Rulzy)
      - Fixed bug when server drops HLTV if cid_NoSteam47/48 is deprecated(5)

    0.3.4:
      - Added server-side emulation support. Currently supported emus are: revEmu, old revEmu ( <= 9.73), hCupa's SteamEmu
      - eSTEAMATiON support removed
      - local banlist should work correctly
      - completely rewritten client authorization code. All problems with UNKNOWN steamids and not working "deprecated" clientids may be fixed.
      - there are a lot of changes in dproto.cfg. Old configs won't work with this version


    0.3.3:
      - Fixed: "deprecated" (5) ClientID did not work on cid_SteamPending (STEAM_0:0:0) clients
      - Added: Various cvars for customizing reject messages for deprecated clients. Check the "HOW TO CHANGE REJECT MESSAGES WHEN CLIENTID IS 5 (DEPRECATED)" section of Readme for more details.
      - Added: dp_version cvar that keeps current dproto version. It is exported to server rules by default, but you can turn the exporting off using ExportVesion option in dproto.cfg
      - Added: Capability mode for steamIds generated by eST (to make it as in <= 0.3.0) versions, option OldEstCompatMode in dproto.cfg

    0.3.2:
      - Fixed: "STEAM userid keysize is bogus" on build 4554 (May, 2009) under windows (broken in 0.3.1 version)
      - Fixed: Annoying #18 and #19 warnings under windows

    0.3.1:
      - Fixed: dproto gets wrong steamids from eSTEAMATiON.

    0.3.0:
      - Fixed bug with steamid corruption for some no-steam clients


    0.2.9:
      - Added dp_clientinfo command which can be used to get inforamtion about client's protocol. Check the Readme.txt and amxx directory for more info.

    0.2.8:
      - Added support for new engines: 4617 for Linux and 4554 (15 Jun 2009) for Windows.

    0.2.7:
      - Redirection fixed for subserver (thx to GoD2.0);
      - Subserver now correctly works with broadcast queries;
      - Hybrid serverinfo answer type discovered by ineya, fixes visibility for all clients. Check dproto.cfg

    0.2.6:
      - some compilation problems for linux fixed


FAQ
(in development)

Spoiler
    Q: What is dproto?
    A: Dproto was made as replace for cbooster on double-protocoling solutions area. dproto designed to work for new p.48 HLDS, so all steam features can be used with it. Dproto has one primary goal - to allow old clients to join new servers, all another features are secondary and they were added by users requests.

    Q: How to install dproto?
    A:
    Quote:
    1. Go to <gamedir>/addons/ and make new directory named dproto
    <gamedir> - its 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.3 ini Start Never
    [ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.1.3 ini Start ANY
    2 plugins, 2 running
    6. Enjoy :)


    Q: I installed dproto, but it does not work. meta list says this:
    1. Currently loaded plugins:
    2.       description      stat pend  file              vers      src   load  unlod
    3.  [ 1] dproto           fail load  dproto_i386.so    v0.3.4    ini   Start Never

    A: Start server with -console +log on +mp_logecho 1 parameters and look through console output. You'll find the reason there.

    Q: AmxModX admins could not authorize using their password.
    A: Just replace _pw in dproto.cfg:
    Quote:
    ValidInfoFields_Engine = \name\bottomcolor\topcolor\model\cl_lc\cl_lw\cl_updaterate\cl_dlmax\rate\_pw\*hltv\password

    to field that you using for keep admin password.

    Q: I dont see my server in steam favorites!
    A: Set ServerInfoAnswerType to 0 or 2 in dproto.cfg

    Q: My server is invisible in favorites in cs v24!
    A: Set ServerInfoAnswerType to 1 or 2 in dproto.cfg ::D

    Q: How to make my server visible both in old no steam clients and steam?
    A: Set ServerInfoAnswerType to 2 in dproto.cfg :YAHOO:

    Q: I'm getting "Error verifying STEAM UserID Ticket(server was
    unable to contact the authentication server)" error when playing on legit client.
    Q: Bans for legit SteamID do not work. Users with banned IDs are able to play on server.
    A: Your server can't conect/lost connection to steam servers. I dont know universal method to check connection to steam servers (if someone know it - pls tell me). If you have VAC secured server, use stat command. If it shows version as "insecure" or "insecure (secure mode enabled, disconnected from Steam3)" it means that connection to steam servers lost. This problem is not related to dproto, but i can give some tips to fix it:
    1. Check if outgoing TCP connections are allowed to destination port 27030
    2. Check if outgoing UDP datagrams are allowed from local ports 2690x
    3. If you using linux, you should add +ip <server ip> parameter to command line. I'm using +ip 0.0.0.0 for example and it works fine.

    Q: My server could not be displayed in monitoring system.
    A: It's because of hybrid answer type, some monitoring scripts cannot handle it correctly. There is 3 way to solve the problem: use standart answers (ServerInfoAnswerType = 1 or 0) or try to fix it by yourself, or write to script developers.I dont guarantee correct work of third-party stuff.

    Q: I'm using latest engine and my server is not visible in internet list.
    A: Forward this question to Valve

    Q: I'm using latest engine and my server is not visible in Setti serverlist.
    A: Register your server here

    Q: My server crashes sometimes after N days of work...
    A: Forward this question to Valve

    Q: My server crashes when i installed mod X on it.
    A: Forward this question to mod X developers and check if you haven't missed something.

    Q: I have players with same steamids on my server. They're recognized as SteamEmu (dp_SteamEmu)
    A: Steamid could be easily spoofed in SteamEmu auth algorithm. Deprecate these clients or set not-numeric id to them (STEAM_ID_LAN for example)


Before posting bugreports and questions...
  • Make sure that dproto is reason of the bug. You can check it by disabling dproto.
  • Please, don't post there questions about HLDS engine bugs that were known before release of dproto. I'm not going to spend my time for analyzing engine for free.
  • Post all "My server does not displayed in internet list" questions in Valve's forums. Native Master-Client located in steamclient.dll (steamclient.so) and dproto could not be a reason because it does not patch this library.

Bugreport MUST contain:

  • Detailed explanation of bug.
  • A way how to reproduce it (if possible)
  • Full startup log from server console; server should be started with "+log on +mp_logecho 1" parameters
  • Contents of dproto.cfg
  • MD5 hashes of all files from server root directory (use RapidCRC for Windows or md5sum for Linux)
I won't consider bugreports without these points because I don't want to spend my time to search possible reasons of your problems. Thanks for understanding.

Post all problems/bugs you have found in this topic.

Russian thread on CSMania

2Guys from AlliedMods: 95% people from this topic are Image's! They should be banned immediately!!!11


You do not have the required permissions to view the files attached to this post.


Last edited by Crock on Wednesday, 14 Apr 2010, 11:08, edited 51 times in total.

Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 12:05   Reply with quote
User Редкий гость
User avatar
Joined: Thursday, 26 Mar 2009, 10:41
Posts: 23
Great job crock! Ur da best!!! :DDDD


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 13:14   Reply with quote
Super flooder Почетный графоман
User avatar
Joined: Wednesday, 02 Aug 2006, 01:04
Posts: 1055
thanks ::)


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 13:23   Reply with quote
Forum ghost Местное привидение
Joined: Thursday, 18 Dec 2008, 03:40
Posts: 291
Really COOL stuff!!!
Thanks!!
::)


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 19:51   Reply with quote
Beginner Без звания
Joined: Wednesday, 06 May 2009, 15:06
Posts: 2
Yesssssssss..!
daTs whaT m looking for, thats what im talking about..;]
Yuhooooooo
i searched whoool GOOGLE.COM didn't find it even downloaded some ready mad servers uhahaha.
Thanks much my friend, GOD bless you.=]


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 20:29   Reply with quote
Advanced forumer Завсегдатай
User avatar
Joined: Friday, 14 Nov 2008, 21:01
Posts: 54
Great! I was wondering why Dproto did'nt have his own thread.

Now lets just wait till some mod moves this to the releases forum.


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 21:25   Reply with quote
I live here Три раза сломал клаву :)
User avatar
Joined: Tuesday, 08 Jan 2008, 11:25
Posts: 3782
Good job.
This is better than the both protocol thread.

_________________
Too many games...


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 22:27   Reply with quote
Beginner Без звания
Joined: Wednesday, 13 May 2009, 01:22
Posts: 4
Works like a charm! Had problems with NoSteam players not displaying - none such sort anymore! U cROCK !!! :D

UPDATE
well, almost perfect ;) I cannot add the server to favotites in STEAM application (not in-game) - it finds the server on specified IP, but won't add it. Any ideas?


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Saturday, 06 Jun 2009, 23:14   Reply with quote
User Редкий гость
User avatar
Joined: Thursday, 18 Dec 2008, 14:33
Posts: 43
Really appreciate your work Crock. ::D
Im using your release from 0.1.5 till new version, but currently using the 0.1.5
Im wondering, why on the 0.1.8, till ~ 0.2.5 not show steam player on 'shift+tab', 'player'.
avatars working fine.
But ver. 0.1.5 the 'player tab' working.
Or only me have the problem? just curious.
Ps: Sorry for the blurry explanation, bad english though.


Last edited by imSpartan on Tuesday, 25 Aug 2009, 01:58, edited 2 times in total.

Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Sunday, 07 Jun 2009, 00:37   Reply with quote
Beginner Без звания
Joined: Tuesday, 29 Jul 2008, 05:21
Posts: 18
There is a strange bug in the SubServer redirect code. Whatever i try to send in the exec command the player connecting receives:

  1.  
  2. Connecting to 80.96.216.207:23015...
  3. Connection accepted by 80.96.216.207:23015
  4. Server tried to send invalid command:"alias d_red "connect 84.38.95.197:27020"
  5. "* Redirecting...
  6. * Redirectin
  7.  


I studied the code in subserver.cpp and it does not use the ExecCmd specified, but some static predefined values that the client cannot understand

  1.  
  2.     cbuf = SBuf;
  3.     res = sprintf(cbuf, "%c%c%c%c%c%c%c%c", 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0);
  4.     cbuf += res;
  5.     res = sprintf(cbuf, "%c%s\n", 0x9, "echo \"* Redirecting...\"");
  6.     cbuf += res + 1;
  7.     //*(cbuf++) = 0;
  8.     res = sprintf(cbuf, "%c%s\n", 0x9, "alias d_red \"connect 84.38.95.197:27020\"");
  9.     cbuf += res + 1;
  10.  
  11.     res = sprintf(cbuf, "%c%s\n", 0x9, "echo \"* Redirecting...\"");
  12.     cbuf += res + 1;


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Sunday, 07 Jun 2009, 00:41   Reply with quote
Администратор CS.RIN.RU
User avatar
Joined: Sunday, 26 Sep 2004, 08:29
Posts: 7609
Location: Россия Московъ ЗАО
CSDM servers no work on this module =( 30 seconds and all clients crash :roll: Public servers work is normal...

_________________
Image
Oдно только есть учение, которое требует не выделения, а воссоединения, ставит себе не искусственные цели, а одну общую, совершенно естественную цель для всех — это учение о родстве, т.е. о том, чего, можно сказать, не коснулось даже наказание "смешения языков", ибо названия, относящиеся к родству, и теперь почти одинаковы у всех народов. Не заключается ли в этом указания на истинную цель человеческого рода, ибо не самосохранение, а возвращение жизни отцам должно быть целью?
Н.Ф. Федоров.


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Sunday, 07 Jun 2009, 02:30   Reply with quote
Super flooder Почетный графоман
User avatar
Joined: Thursday, 26 Mar 2009, 20:15
Posts: 729
MadMouSe wrote:
Great! I was wondering why Dproto did'nt have his own thread.

Now lets just wait till some mod moves this to the releases forum.

lets hope not.


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Sunday, 07 Jun 2009, 05:59   Reply with quote
Forum ghost Местное привидение
Joined: Thursday, 18 Dec 2008, 03:40
Posts: 291
Kobra
Look here for steam favorites info: http://cs.rin.ru/forum/viewtopic.php?p=596698#p596698


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Sunday, 07 Jun 2009, 12:00   Reply with quote
Super flooder Почетный графоман
Joined: Wednesday, 08 Aug 2007, 08:44
Posts: 540
Location: Somewhere obviously..
shmelle
Sadly, it happened already (you did realize that you are in the Releases section, did you? :D)

All
I still don't get this, why people still use outdated protocol and implement a newer one into it? Why they are using outdated standalones? And of course outdated dedicated server patches. What's the advantage of using protocol 47 and 48? Protocol 47 had many bugs and problems, mostly which are really vulnerable. Protocol 48 fixes most of them, and also no more WON support for it (finally, no more outdated crap used in goldsource). WON is dead since 2003, since Steam was released (not the beta). And one more thing I don't get, how are these Counter-Strike 1.6 standalones numbered, and why they got those numbers, like V9, V19, V35, V40. Every small Counter-Strike update is considered a version up for standalones, or what?
What are the advantages to use those old standalones which are patched to play the latest version (p48, or p47/p48)? Isn't safer to create a clean standalone for latest Counter-Strike 1.6 and install RevEmu to it? Using old craps is like running a horse (p47) and an elephant is pulling that horse to go (p48).
Just keep this in mind: This is the Steam era now and already WON died.


Top
 Profile  

Post Post subject: Re: dproto - double protocol for HL1 based games   
Posted: Sunday, 07 Jun 2009, 13:20   Reply with quote
Super flooder Почетный графоман
Joined: Sunday, 02 Nov 2008, 16:22
Posts: 1235
Location: Norway
Couldnt agree more with aTr.

Crock, I respect you as a developer, but I seriously think keeping P47 alive is shit.
The only thing keeping P47 alive is russian who likes outdated stuff and this plugin.
Having this in the release section will make even more people use multiprotocol.
Let P47 die. Its so old and outdated.
There is no real good reason to still use P47, since RevEmu's serverbrowser works and there is no problem with cracked steam.
And please dont come here with "but the favorites isnt working :( :( :( :( :( :( :(".
Favorites isnt that important, but if you really want them working use cracked steam. Just let the 'nonsteam extreme gamers' update their version.
Steam users have no problems with P48 as for as I know. So why shouldn't 'nonsteamers' use it?

I'm just wating for someone to say that 'most of my players use P47'.
Hex edit the "This server use a newer protocol than your client" to "Your standalone is old. Stop using it and update."
All your problems are now solved.

Seriously stop supporting this.
PS: This post was not meant to flame, I just hate that darn P47 thing so much.

_________________
Image
- Counter-Strike Protocol 47 must die.
- Password protected archive? - > cs.rin.ru
- Stop writing "Sorry for my bad english, Im from "insert random country here". Noone cares. Almost noone here speaks native english.
- If you cant read this properly due to other forum style: Sucks to be you.


Top
 Profile  
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1698 posts ]  Go to page 1, 2, 3, 4, 5 ... 114  Next


Who is online

Users browsing this forum: No registered users and 10 guests


Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum




Powered by phpBB® Forum Software © phpBB Group