• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

How and what I need for modify the Cipsoft files code? (RealOTS)?

BananaJuice

New Member
Joined
Oct 5, 2021
Messages
61
Reaction score
4
Hello, I am trying to recreate a real 7.4 server with all features with the CipSoft files (No OTS engine) but I am at a point where in order to advance this project I must modify the game code.

For example; I need to recreate overspawn, monsters don't move if you're not near or on the same floor, don't walk +2 parcel, boxes, chairs... Old rope system, UH trap, No exhausted using cast attack spell + UH, change the amount of mana required to create SD (220), remove soulpoints and a very long etc.

Where should I start? What program or how can I edit the game code? At the moment thanks to the help of people on the forum I have been able to change these things:

-Removed worms on the fishing rod.
-Removed anti-luring system.
-Removed the furniture packages

and a few more minor features like removal of worms, rods, wands from monster loot, from NPC sales, changing the price of mana in magic shops from 55 to 100 and other small changes.

Thanks and kind regards.

P.S: I am using Ubuntu 21.10.
 
Last edited:
Hello, I am trying to recreate a real 7.4 server with all features with the CipSoft files (No OTS engine) but I am at a point where in order to advance this project I must modify the game code.

For example; I need to recreate overspawn, monsters don't move if you're not near or on the same floor, don't walk +2 parcel, boxes, chairs... Old rope system, UH trap, No exhausted using cast attack spell + UH, change the amount of mana required to create SD (220), remove soulpoints and a very long etc.

Where should I start? What program or how can I edit the game code? I am using Ubuntu 21.10. Thanks and kind regards.
you can't do that unless you have a big knowleadge of hex and i really dont think is is possible to do all that
 
Last edited:
You can use a software decompiler (IDA, Ghidra, BinaryNinja) to decompile the code, edit it using assembly and try to "compile" again.

The challenge is that the decompilation is not that easy, so you would need a hard knowlegde on C++ and how the compilers transform the code on assembly code. As long as how to revert it to a minimum readable/understandable code to edit it.

After that you would need to understand how the cipsoft engineers made the software architecture to know where you should edit.

Another approach would be to hook the cipsoft binary, made trampoline calls to a custom code, which will do what you want...

I don't know much more about this. I know it is kind of possible but I think it would not be worthy to do so, as it would be a pain to make modifications every time. It would be hard to track bugs and this kind of stuff.
 
You can use a software decompiler (IDA, Ghidra, BinaryNinja) to decompile the code, edit it using assembly and try to "compile" again.

The challenge is that the decompilation is not that easy, so you would need a hard knowlegde on C++ and how the compilers transform the code on assembly code. As long as how to revert it to a minimum readable/understandable code to edit it.

After that you would need to understand how the cipsoft engineers made the software architecture to know where you should edit.

Another approach would be to hook the cipsoft binary, made trampoline calls to a custom code, which will do what you want...

I don't know much more about this. I know it is kind of possible but I think it would not be worthy to do so, as it would be a pain to make modifications every time. It would be hard to track bugs and this kind of stuff.

I agree but i think thats lack of tutorials and people sharing they knowledge with the files.
It could be more way easy to work with them, i have asked many people, most of them just ignore you

the only dudes that "I saw" willing to help is @Olddies and @neptuno
 
The user @Ezzz did not manage to do something similar or equal to what I intend to do, does anyone know about this? Thank you (@Ezzz sorry if it bothered you that I mentioned you in this post).
you can't do that unless you have a big knowleadge of hex and i really dont think is is possible to do all that
Has there really been no user to date who has been able to do something like this? Thank you very much for your attention and response @Olddies :)
You can use a software decompiler (IDA, Ghidra, BinaryNinja) to decompile the code, edit it using assembly and try to "compile" again.

The challenge is that the decompilation is not that easy, so you would need a hard knowlegde on C++ and how the compilers transform the code on assembly code. As long as how to revert it to a minimum readable/understandable code to edit it.

After that you would need to understand how the cipsoft engineers made the software architecture to know where you should edit.

Another approach would be to hook the cipsoft binary, made trampoline calls to a custom code, which will do what you want...

I don't know much more about this. I know it is kind of possible but I think it would not be worthy to do so, as it would be a pain to make modifications every time. It would be hard to track bugs and this kind of stuff.
I think I'm going to try some of those programs that you mention @danilopucci and I'm not going to deceive them, their words seem abstract to me due to my lack of knowledge in C++ which is null, I mean the part that you mention about " compile the code on assembly code". On the other hand, I'm intrigued by what you say about connecting to the "cipsoft binary, making trampoline calls" to custom code. Could you tell me what this is to give me an idea? Thank you very much for your response and attention.
Thank you for that mention, for your attention and response @Adposatnr I hope they are not too busy and can help me where to continue or where to start a project like this.
I doubt there is a reason to tag them, @danilopucci pretty much exhausted the topic.
Hope is the last thing you lose. And perhaps their perspectives and answers can bring something different to this whole issue. Thank you very much for your attention and reply @0x666
I agree but i think thats lack of tutorials and people sharing they knowledge with the files.
It could be more way easy to work with them, i have asked many people, most of them just ignore you

the only dudes that "I saw" willing to help is @Olddies and @neptuno
I agree that there is a lack of shared knowledge on this topic. And I also agree that many people ignore when asked about this, but I would not like to generalize since there are some people who are willing to help. @Olddies and @neptuno I have been able to observe that they are very active users and they are willing to help, although there are also many kind people in the forum who have helped me in recent weeks with some things and I thank them too. Thak you very much for your attention and reply @murilow1
 
Last edited:
@BananaJuice you will really need to know how everything work in elf binary like this. You will need to use a lot of code caves, trampolines,extend stacks in some functions, rewrite a lot of code in pure assembly. As mentioned before @danilopucci explained it very well. Also the truth is that without C/C++ skills on higher level than CTRL+C CTRL+V same as ASM skills you will just waste your time so I agree with @kor

Worth to mention, leaked Cipsoft engine also contain critical bugs which you need to fix too
 
Thank you very much for your answer @LordCompi it is always a pleasure to have the opinion of someone as experienced as you. I will start to study some C++ language at least to have some minimal basic notions of this language. For the big changes in the game code I will have no choice but to hire an advanced programmer to make those changes. A pleasure to exchange words with you and a cordial greeting.
 
@BananaJuice you will really need to know how everything work in elf binary like this. You will need to use a lot of code caves, trampolines,extend stacks in some functions, rewrite a lot of code in pure assembly. As mentioned before @danilopucci explained it very well. Also the truth is that without C/C++ skills on higher level than CTRL+C CTRL+V same as ASM skills you will just waste your time so I agree with @kor

Worth to mention, leaked Cipsoft engine also contain critical bugs which you need to fix too
You wouldn't have to have ASM skills though it would help a lot. You could probably find the addresses of function, ect. from the client and hook onto them with a dll using c++. Its possible to obtain the architecture of the methods and modify them though a lot of the method would act the same so you would be adding extra stuff to reverse what they do if you wanted it to not do certain things it already does.

Very possible if the time was taken to find all the addresses of methods and their parameter structures.

If you also do the same for the client it would be easier to modify everything as you can tell the client to send whatever data you want to the server (using existing method addresses)

I guess the majority of ASM would come from reverse engineering it if you the main tools for this kind of thing.
 
You wouldn't have to have ASM skills though it would help a lot. You could probably find the addresses of function, ect. from the client and hook onto them with a dll using c++. Its possible to obtain the architecture of the methods and modify them though a lot of the method would act the same so you would be adding extra stuff to reverse what they do if you wanted it to not do certain things it already does.

Very possible if the time was taken to find all the addresses of methods and their parameter structures.

If you also do the same for the client it would be easier to modify everything as you can tell the client to send whatever data you want to the server (using existing method addresses)

I guess the majority of ASM would come from reverse engineering it if you the main tools for this kind of thing.
So, we have the opinion of a person who has actually "been there and done that" (LordCompi), yet here comes the otland guy who wants to instruct that person to find addresses of the server functions in the client (?) in order to hook them with a microsoft shared library linked to an elf file (??) without any ASM knowledge (???). Hilarious

For example; I need to recreate overspawn, monsters don't move if you're not near or on the same floor, don't walk +2 parcel, boxes, chairs... Old rope system, UH trap, No exhausted using cast attack spell + UH, change the amount of mana required to create SD (220), remove soulpoints and a very long etc.
Changing mana for spell and removing soulpoints is fairly easy, you just need to find its address and replace one int with another in some hex editor. The "no exhausted" was on UH + spell, not the way around, and it's already there. Old rope system you can get by removing ForceUse flag for all rope spots in objects.srv. Though this won't bring back the old move-use mechanics where you could use/retrieve stuff from the bottom of the stack, so the trick to rope lootbag won't work. For that, and all the other things you mentioned, you need to edit the binary, which is possible, but not an easy task.
 
Last edited:
Thank you very much for your answer @LordCompi it is always a pleasure to have the opinion of someone as experienced as you. I will start to study some C++ language at least to have some minimal basic notions of this language. For the big changes in the game code I will have no choice but to hire an advanced programmer to make those changes. A pleasure to exchange words with you and a cordial greeting.
You will sadly have to hire someone, but in my humble opinion please do not hire Mr Bullshit aka Itutorial.
 
You will sadly have to hire someone, but in my humble opinion please do not hire Mr Bullshit aka Itutorial.
Thanks for your advice @LordCompi I'll keep it in mind! A cordial greeting :)
So, we have the opinion of a person who has actually "been there and done that" (LordCompi), yet here comes the otland guy who wants to instruct that person to find addresses of the server functions in the client (?) in order to hook them with a microsoft shared library linked to an elf file (??) without any ASM knowledge (???). Hilarious


Changing mana for spell and removing soulpoints is fairly easy, you just need to find its address and replace one int with another in some hex editor. The "no exhausted" was on UH + spell, not the way around, and it's already there. Old rope system you can get by removing ForceUse flag for all rope spots in objects.srv. Though this won't bring back the old move-use mechanics where you could use/retrieve stuff from the bottom of the stack, so the trick to rope lootbag won't work. For that, and all the other things you mentioned, you need to edit the binary, which is possible, but not an easy task.
Thank you very much for your answer Kay, I really appreciate and value it very much. I'm going to do some research and see if I can make any changes to the server now. A cordial greeting!

edit: you're right its UH + spell and its included in 7.7 version. Very thank you. You're the fucking master!
 
Last edited:
So, we have the opinion of a person who has actually "been there and done that" (LordCompi), yet here comes the otland guy who wants to instruct that person to find addresses of the server functions in the client (?) in order to hook them with a microsoft shared library linked to an elf file (??) without any ASM knowledge (???). Hilarious


Changing mana for spell and removing soulpoints is fairly easy, you just need to find its address and replace one int with another in some hex editor. The "no exhausted" was on UH + spell, not the way around, and it's already there. Old rope system you can get by removing ForceUse flag for all rope spots in objects.srv. Though this won't bring back the old move-use mechanics where you could use/retrieve stuff from the bottom of the stack, so the trick to rope lootbag won't work. For that, and all the other things you mentioned, you need to edit the binary, which is possible, but not an easy task.
You hook the client to modify data sent to the server which you also hook to change what that data does. That's if you want to actually be able to modify the server however you want. ASM is really only needed to find the addresses/datatypes, ect. for things which there are other ways. The rest can be done with C++ dll injection.

You will sadly have to hire someone, but in my humble opinion please do not hire Mr Bullshit aka Itutorial.
No need to be a bitch.
 
Back
Top