Goal
Step by step tutorial to update an outdated client source.
We want to compare two decompiled clients to find modifications and update our own client source.
IDEA Ultimate is IDE to develop software. We'll use it to update our source and compile/run it.
Please note that both Trillix and Intelij are paid softwares. Trillix is not essential. Intelij is, but you can get FlashDevelop for free.
Tutorial
1. Download the clients (new and old)
Scroll at the bottom of static.drips.pw/rotmg to see all the released clients.
Download the two clients you want to compare and put them on your Desktop.
2. Download the source from ****** and get it running
You can use any Client source you want, but I recommend you use mine. ******, iobsidian, realmclient. Download ZIP. Put on to desktop.
Make sure you have the Flex SDK installed on your machine. Put it in C:\Flex.
Open the project in Intellij IDEA Ultimate.
Sometimes, IDEA can be a real pain. If you see errors, go in
File > Project Structure > Module > Depencies > Select Flex
and set Flex everywhere you can. Keep IDEA openned.
3. Decompile and compare
Great. Now the hard work is done.
Open JPEXS, open the two clients, and right click > export selection for both 'scripts' folder. Put those in those folders, I.E. 'New' and 'Old'. Close JPEXS.
Great. Now Open WinMerge, file, open, select the two folders to compare.
Optional : Right click on the filename/folder bar, customize columns, select differences, click O.K.
You will see how many files have changed. For this current build, there is 5 files that have changed.
Open the file with the most changes first.
Right click on the top where it says 'C:\Users\VaypeNaysh\Desktop\Clients\new\scripts\k abam\rotmg\messaging\impl\GameServerConnection.as' and copy the filename.
4. Update the source
Keep WinMerge openned. Go in Intellij IDEA Ultimate and press CTRL+SHIFT+F and search for ''GameServerConnection" (without the .as)
Ctrl+Click on the first result. Now you can begin updating the code. You can copy and paste the modified sections or update the values and code manually.
You're almost done. Sometimes, errors will emerge. This is because of differences between the source and the decompiled client.
You could figure it out by yourself, but variable names like arg becomes param and loc becomes local. Just rename the variables.
Repeat the process for every files with differences in WinMerge.
5. Updating the assets
Now that we're done updating the source code, we want to update the assets. Sometimes the assets don't change so this step is optionnal but recommended.
Open the new client in Trillix. At the top, press 'export source'. Go in kabam/rotmg/assets and paste the images to your source folder.
That's it!
I want to give a special thanks to our lord and savior 059.
Thanks and happy coding.
JPEXS is a paid flash decompiler used to decompile the assets of the new client
Other than that, nice !
Originally Posted by BurgerLoverMx
Other than that, nice !
Thanks for pointing it out, it's now fixed.
Thanks for the tutorial!
Dude, thanks man
Thank you
/
Thank's, I will be doing this on next update. +
Can u send me updated client source on skype ?
yo is it possible to update something that aint necessarily a client? ie clientless tradebot? its kind of a program or something but not a swf client as such
Hey what do I do if i want to update a client from before 2014? On the list of released clients the oldest is from 2014, but i want to update your stream / recording friendly client from 2013. What do I do?
Currently I have the scripts folder updated with a few things of my own.. So how do I compile it back to swf?
Originally Posted by Johncasd
Currently I have the scripts folder updated with a few things of my own.. So how do I compile it back to swf?
Have you just exported the client with jpex? That won't work, you need to fix things to get it working correctly.
Download a client source and update it to the current version and then add your changes.. or do them in the bytecode editor in jpex.
Originally Posted by lolpot132
Have you just exported the client with jpex? That won't work, you need to fix things to get it working correctly.
Download a client source and update it to the current version and then add your changes.. or do them in the bytecode editor in jpex.
jepx has an expertimental feature of editing scripts before export, or compile.