This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Menu

Author Topic: RE: Client Versioning...  (Read 2320 times)

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
RE: Client Versioning...
« on: December 28, 2013, 08:34:42 pm »
I know how to make my server accept different versions of the warcraft client, but I don't know how to change the version on the client itself.

I managed to change the version on the client with resource hacker the other day, and put that new file into a patch mpq and everything ran just fine, but on the login screen, it still said that I was running 1.12.1. I am starting work on an entirely new game using the warcraft codebase and would like to make it so that my client only works on my server by using versioning between the client and server.

Does anyone know what I might have overlooked?
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

Swampdog

  • Registred Member
  • Race Changer
  • *****
  • Posts: 28
    • View Profile
Re: RE: Client Versioning...
« Reply #1 on: December 28, 2013, 11:24:34 pm »
Wondering if you may need to patch the xml or lua files for the login screen?

Would love to figure out how to do this..  Would be cool to have an app that we could hexedit the client version based on our server which could run from patch, for those of us planning to build entirely new worlds.  If I'm understanding what I'm reading correctly, I think we are able to trigger executables to run using the patch server method that Stoneharry and Schlumpf came up with and posted in this thread.
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

Swampdog

  • Registred Member
  • Race Changer
  • *****
  • Posts: 28
    • View Profile
Re: RE: Client Versioning...
« Reply #2 on: December 29, 2013, 02:22:08 am »
Actually it looks like the change to change build info on the login screen is another hex change..  Eluo outlines it in the middle of this tutorial:

Changing the Client Build for 3.3.5a

Just look for the picture showing the client build text from screenie and the instructions follow...

Haven't tried this myself yet..  Let us know how it works for you!
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
Re: RE: Client Versioning...
« Reply #3 on: December 29, 2013, 03:07:22 am »
Thank you so very much, guys. I am also working on trying to figure out how to mod the login screen. I'm not entirely positive how I want it to look when I get done with it, but definitely different from the standard 4.3.4 screen. ;)

Would anyone know how to tap the news feed on the login screen? I know how to do it from the servers file in the windows system directories, but not from ingame. :(

I also didn't think of using a hex editor for my dilemma. I was using Resource Hacker for Windows. ;)
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
Re: RE: Client Versioning...
« Reply #4 on: December 29, 2013, 04:02:52 am »
Alright. I managed to change my version information, but it's still acting like it's version 4.3.4 build 15595.

I had it set to 4.3.5 build 15596 and it still let me login, so I figured it was within the forward compatibility parameter in the server.

Then I tried 0.0.1 00001 and it still let me log in. Does anyone have any clue where the other version information is for version 4.3.4 of WoW?

I tried looking allover the ruddy place and it isn't letting me effect the change, past what is shown in the bottom left cornet of the login screen. :(
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

Swampdog

  • Registred Member
  • Race Changer
  • *****
  • Posts: 28
    • View Profile
Re: RE: Client Versioning...
« Reply #5 on: December 29, 2013, 04:22:39 am »
I'll have to take a back seat and let someone else try to answer.  I haven't done this myself yet.  Just going off bookmarks that I made in order to work on it when I got some other things done.

Did you change the version multiple times when you were going through editing wow.exe?  The tutorial from Eluo indicated they had to change it in 4-5  places.  Another thread (which I failed to bookmark) had an edit for the onscreen version but mentioned that it had nothing to do with the version that is sent to the server for server check.

If you didn't edit 4-5 times when you were fixing the exe file, go through Eluo's entire tutorial.  Hopefully that is all it is and you can get it working right!

Edited to add:
Also, did you edit your core?  I know there are a couple of variables in authcode.h file.  That is one of the main reasons I haven't started playing with it yet.  I need to re-setup my development environment.  I'm currently playing around with the Trinity Core Steff bundled with the tutorial.  I haven't messed with core/compiling since before everyone started switching to using Git instead of SVN.  So slowly in process of reinstalling VS and tools so I can start working on stuff that also requires core edits..

At any rate, the code that Stoneharry pointed to in the version of his patch server thread on AC-Web was:

Code: [Select]
#define POST_BC_ACCEPTED_CLIENT_BUILD            {12345}
From my understanding, that will prevent anyone running anything other than a client with a 12345 build from being able to connect to the server (in the case of his thread, trigger a patch download but without patcher code it should just give version error on client)....
« Last Edit: December 29, 2013, 04:32:03 am by Admin »

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
Re: RE: Client Versioning...
« Reply #6 on: December 29, 2013, 04:28:18 am »
Thank you swampdog, and yes, I did edit the build number and the version multiple times, until it said it couldn't find any more references. This is very odd and very frustrating. ;)
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

Swampdog

  • Registred Member
  • Race Changer
  • *****
  • Posts: 28
    • View Profile
Re: RE: Client Versioning...
« Reply #7 on: December 29, 2013, 04:33:50 am »
Quote from: "wolverine79936"
Thank you swampdog, and yes, I did edit the build number and the version multiple times, until it said it couldn't find any more references. This is very odd and very frustrating. ;)

No problem..  threw in a thought as an edit while you were posting..  If you edited them all, starting to wonder if maybe it is actually a serverside core issue...  *ponders*
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
Re: RE: Client Versioning...
« Reply #8 on: December 29, 2013, 04:58:19 am »
Well, since I use MaNGOS Three right now, it would suffice to say that it could very well be an issue with the core. We can't even compile MaNGOS with VS 2013 yet. Some error that I have yet to start working to figure out. ;)

Either way, again, thanks for the information. Now, I need to figure out how to implement the update code on the MaNGOS core and get that up and running for everyone. And myself. ;)

I'll check the authsocket files in the source for realmd and see if I can figure anything out there as well.

Thanks again for all your help. :)

PS: Two things: 1) how did my rank go up so fast and 2) I'm including a screeny of my custom version for posterity sake.

:)[attachment=0:37tc9xp7]WoWScrnShot_122813_205625.jpg[/attachment:37tc9xp7]
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
Re: RE: Client Versioning...
« Reply #9 on: December 29, 2013, 05:02:41 am »
Quote from: "Swampdog"
Code: [Select]
#define POST_BC_ACCEPTED_CLIENT_BUILD            {12345}

Swampdog, it's an awesome idea that the server code could be bunk. I need to download Mangos One and see if this line is in the authsocket as well. Actually, I have to work with Zero anyway to try and get it compatible with VS 2013 so I can nose around that. I'm gonna see what happens if I connect to my server with my 1.12.1 client, since that line is missing from authsocket.h.

[bold][underline]Follow Up:[/underline][/bold]
That's exactly what it is, Swamp. Thank you very much. I was just able to connect with 1.12.1 and it crapped at the char list screen just like I thought it would after I realized I was missing validation code. Now to try and find it in one of the older cores and try to port it over to Three.

Thanks again, Swampdog. :)
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

Swampdog

  • Registred Member
  • Race Changer
  • *****
  • Posts: 28
    • View Profile
Re: RE: Client Versioning...
« Reply #10 on: December 29, 2013, 05:29:32 am »
Np..  Glad to help..  I'm so rusty with all this stuff it is good to be useful with something! :p

Now you have me wanting to hurry and get my development environment setup to see if I can get this working too...  lol
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

schlumpf

  • Administrator
  • Creator of Worlds
  • *****
  • Posts: 2967
    • View Profile
Re: RE: Client Versioning...
« Reply #11 on: December 29, 2013, 06:44:43 pm »
Quote from: "Spam report by wolverine79936"
Alright. First off, none of the cores for Mangos have anything even similar to what you shows from Arc for version validation. We use an entirely different and much longer system. :(

Either way, I'm finding it interesting that I can connect to my Cataclysm server with 1.12.1 but not list characters. And yet, I cannot connect with Cataclysm to a Vanilla server. There is no error, just gets stuck on handshaking.

And my biggest issue is my memory. I remember trying to connect to Vanilla Mangos with client 1.0.0 and being told it wouldn't work, explicitly. I remember trying to compile in support for the Burning Crusade client on the Vanilla server and the server not running because the server side maps were the wrong version.
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

Swampdog

  • Registred Member
  • Race Changer
  • *****
  • Posts: 28
    • View Profile
Re: RE: Client Versioning...
« Reply #12 on: December 29, 2013, 09:57:37 pm »
Quote from: "wolverine79936"
And my biggest issue is my memory. I remember trying to connect to Vanilla Mangos with client 1.0.0 and being told it wouldn't work, explicitly. I remember trying to compile in support for the Burning Crusade client on the Vanilla server and the server not running because the server side maps were the wrong version.

That could be a whole other problem though..  A lot of times with an expansion release the game companies change the opcodes that are passed from the client to the server.  I can't remember how WoW was with this but I recall it being a big deal when I was following / tinkering with EQEmu ten years or so ago.  Your mod patches aren't doing that so I'd guess it is a whole different thing triggering the error that a retail expansion pack would trigger.

Also not sure where Arc came into the picture.  The code I posted was for Trinity which I believe was originally ported from Mangos.  I could be wrong though.  That was a while ago though.  That was around the time I was playing with the cores before... lol  Told ya I was rusty..  Pretty sure that same code was in all the cores back then (Mangos, Ascent, Arcemu, Trinity).  Maybe Mangos got rid of it?
« Last Edit: January 01, 1970, 01:00:00 am by Admin »

wolverine79936

  • Registred Member
  • BLP Convertor
  • *****
  • Posts: 12
    • View Profile
Re: RE: Client Versioning...
« Reply #13 on: December 29, 2013, 10:02:24 pm »
Thanks, Swamp. And I meant trinity, not arc. It was late when I wrote about that for me.

And I was speaking with Antz earlier about the versioning subroutines in MaNGOS and he confirmed what I thought. The versioning subroutines are bunk. We have this little text file in the dbc directory on the server:

Code: [Select]
<componentinfo format="1">
    <component name="wow-engb" version="15595" />
</componentinfo>

And that is how they tell what version to accept. And since it is set for 15595 and I am using 00001, that means that I did in fact miss something while hacking my wow.exe. :(

*extreme pouty face with tears of frustration* ;)
« Last Edit: January 01, 1970, 01:00:00 am by Admin »