• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook pagefor updates, or we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.)

Runes Of Magic - Network Protocol

Initiate Mage
Joined
Jun 19, 2015
Messages
2
Reaction score
0
Hello Guys,

i am needing some information about the data that is transfered over the tcp socket from Runes Of Magic. Are there any library that i can use for implementing the data transfer from runes of magic into another application? Or could someone give me some information about the used technologies in runes of magic ?

Maybe there is also a sourcecode variant from the Rom-Server Application?
 
Junior Spellweaver
Joined
Jul 9, 2014
Messages
168
Reaction score
53
As for code - just look into client code, it's not too hard.
Also, you can use dll-inject instead of packets dumping and hook SendToLocal function(it would have 2 args, as I remember - packet number(enum) and data struct).
As for resending to another app - you can use proxy and send all traffic via your app, you can dll-inject + any variant of app communications(shared memory, pipes, sockets, blah-blah-blah) etc.
 
Initiate Mage
Joined
Jun 19, 2015
Messages
2
Reaction score
0
Heyho Turmalin,

first thank you for your answer. I analyzed a bit the sourcecode of runes, my problem is that my c++ exp is not very high (near NULL). I found the CliNetWaker is this the relevant part, or should i search deeper?

I'm only needi the network relevant classes compiled into a library.

I want to implement it into a web-project (btw. i am a Web-Dev), to access some data over the network.
 
Junior Spellweaver
Joined
Jul 9, 2014
Messages
168
Reaction score
53
Ok, let's look on code.
SendToLocal is wrapper for _NetBattle.SendToSrv and _Net.SendToSrv. You wanna skip 1st one, if wouldn't work with BG.
So, for packet sending you would need CliNetWakerClass::SendToGSrv function(CliNewWakerClass.cpp).
This func accept 3 args - server id(look inside all sources, if I remember correctly, it's 1-29 IDs for world and 30 for bg servers), size(packet size) and void* data - structs serialized to binary. Those structs are look like PG_NewBillboard_CtoL_SearchRank, for zone servers contains _CtoL_ prefix(_ClienttoLocal_) and placed in files named like PG_Billboard(you would need to find all SendToLocal functions and look for 2nd argument, usually used as &Send).
This is part for local server sending. There are auth at least, that have another funcs(didn't remember) and also you would need to accept packets, ofc(which is another part of question).



As for web part, you can look onto node.js(https://gist.github.com/tedmiston/5935757, for ex.), as variant. Btw, it wouldn't be easy work.
 
Initiate Mage
Joined
Jan 3, 2017
Messages
2
Reaction score
0
Hello,

maybe someone knows things about Patches and SQL? Please send me a message !!
 
Back
Top