Jump to content

When the ladder will be ready?


WestW00D

Recommended Posts

Hey yo Alex, how much would you charge to make the necessary code? Just curious.

I'd charge 500 € flat for making RA2/YR send game stats in the known GAMERES format.

 

 

Sean claims the server part is already working (I'll take his word for it):

A ladder for YR is ready. We just need the client to start sending results :)

http://tahj.cncnet.org/#/leaderboard/yr

So the only thing missing is making RA2/YR send game results to the server. Since network play doesn't generate game stats this requires some "hacking" to be done and built into the game/client.

 

 

Including support for ladder in the client would be easy, but as Funky stated, right now the game executable itself doesn't have the necessary code for it.

That's not exactly right. The game executable obviously sends stats to the server for online play. What needs to be done is making network play (which CnCNet uses) send game stats too. So how did you achieve this for RA1 and TS, for which working ladders exist already? That's the way to go about it for RA2/YR as well. http://tahj.cncnet.org/#/leaderboard/ra and http://tahj.cncnet.org/#/leaderboard/ts

 

 

Link to comment
Share on other sites

Including support for ladder in the client would be easy, but as Funky stated, right now the game executable itself doesn't have the necessary code for it.

That's not exactly right. The game executable obviously sends stats to the server for online play. What needs to be done is making network play (which CnCNet uses) send game stats too. So how did you achieve this for RA1 and TS, for which working ladders exist already? That's the way to go about it for RA2/YR as well. http://tahj.cncnet.org/#/leaderboard/ra and http://tahj.cncnet.org/#/leaderboard/ts

That's what I meant with the game executable not having the necessary code for it - the necessary code for sending stats in LAN games :P

 

The code for RA1 and TS stats sending was written by Iran, I don't know the specifics related to it. Also, the client handles actually sending the information to the server - the games are written to simply dump the GAMERES packet into a file.

Link to comment
Share on other sites

We will be starting off with just ra1 and ts ladders (at least that was the plan)

Later we can add cnc1, dune 2000 and yuri

 

If iran doesn't return then i'm going to write the patch for yuri, it takes around 20minutes

 

I'd love to see this live! <3

Link to comment
Share on other sites

If iran doesn't return then i'm going to write the patch for yuri, it takes around 20minutes

20 minutes??? Only 20 meesly minutes??? Then why not just do it?... please... Mr. FunkyFr3sh sir. I'll buy you a beer... wait I don't live near you... I'll give you money for a beer, a whole case dammit! Just watch an episode of The Big Bang Theory while you do it. When the episode is finished, so is your patch!

Link to comment
Share on other sites

The code for RA1 and TS stats sending was written by Iran, I don't know the specifics related to it. Also, the client handles actually sending the information to the server - the games are written to simply dump the GAMERES packet into a file.

Writing game stats to a file, really? Can you make it even easier for people to manipulate stats? But yeah, only Iran.  :roll:

 

 

If iran doesn't return then i'm going to write the patch for yuri, it takes around 20minutes

Lol, you talk a lot of crap. If takes only 20 minutes, why hasn't it been done already? Good luck, BTW.  ;)

 

Link to comment
Share on other sites

I have done it in dune 2000 in 20minutes, I also worked on the ra1/ts stats code, this patch is very easy compared to other patches I did (high resolution patches etc.)

 

Hint: I'm the only one here doing patches for CnCNet at the current time, each executable was compiled by me. My client is sending the stats for cnc1 ra1 ts and dune2000 to the server since months

 

I don't have much to do with yuri since I already take care of 4 other games in my client, so yuri has a very low priority for me, I would only do it to help out in case iran doesn't return

Link to comment
Share on other sites

It is easy, normally the game jumps over the gameres function in LAN mode, you just remove the jump and let it call it. Then inside of the stats function where it calls the function to send the results to the server you modify it to write the array to the disk

 

You have to know that all games still collect all stats even in LAN mode, so there is not much to be done to get it working

Link to comment
Share on other sites

You have to know that all games still collect all stats even in LAN mode, so there is not much to be done to get it working

I'm well aware of that. Otherwise it wouldn't be possible to display number of units built/killed at the end of a game.

 

 

It is easy, normally the game jumps over the gameres function in LAN mode, you just remove the jump and let it call it. Then inside of the stats function where it calls the function to send the results to the server you modify it to write the array to the disk

I'm also well aware of the process how to make it work. It certainly is not hard to locate the function where GAMERES is put together, either. But what if there proves to be a bigger obstacle than just patching a JMP? Also making it write the array to disk requires you to write some code - do you do this in ASM or do you inject a DLL? Either way, you're not doing this in 20 minutes.

 

I'm a professional software developer. The workflow described will easily take 8 hours. Testing being a necessary part of it. Run into a brick wall and the time expenditure doubles to 16 or even 24 hours (yes, that's 3 days of work) depending on your skills.

 

I doubt I'd be able to do it in under 8 hours, TBH.

 

Link to comment
Share on other sites

If it doesn't work with removing one jump cause it would execute other unwanted WOL code then you simply insert the function call on another place

 

jmp out

call SendGameResultsToServer

jmp back

 

then in the SendGameResultsToServer you look at the very end, you will see the function that sends the data to the server -> nop it

 

jmp out

fopen

fwrite

jmp back

 

 

i do this all in nasm, no injection (we recompile the whole executable)

Link to comment
Share on other sites

It is easy, normally the game jumps over the gameres function in LAN mode, you just remove the jump and let it call it. Then inside of the stats function where it calls the function to send the results to the server you modify it to write the array to the disk

 

You have to know that all games still collect all stats even in LAN mode, so there is not much to be done to get it working

Do it then, I bet you can't.

 

(See, I can reverse too!^)

Link to comment
Share on other sites

It is easy, normally the game jumps over the gameres function in LAN mode, you just remove the jump and let it call it. Then inside of the stats function where it calls the function to send the results to the server you modify it to write the array to the disk

 

You have to know that all games still collect all stats even in LAN mode, so there is not much to be done to get it working

Do it then, I bet you can't.

 

(See, I can reverse too!^)

 

I will do it if iran doesn't return, no worries :D

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...