• 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!

[Italy] [7.7] Realots Testserver (oldschool PvP-E mode; 50% exhaust)

Which PvP mode would you like to see this experimental server in? (private votes)

  • PvP-E (50% exhaust for aggressive runes and spells, no skulls and frags, exp for player kills)

    Votes: 23 41.1%
  • Normal PvP (6 frags/day, 10 frags/week, 20 frags/month for ban and normal exhaust etc)

    Votes: 12 21.4%
  • Normal PvP (10+ frags/day, 20+ frags/week, 40+ frags/month for ban and normal exhaust etc)

    Votes: 11 19.6%
  • Non-PvP (no player killing, normal exhaust)

    Votes: 10 17.9%

  • Total voters
    56
  • Poll closed .
@Players
Looking for interesting in-game screenshots to be used together in a grid on the entire website.
Post your screenshots here.
hx8kVhi.png

Sorry for the quality. It's taken from stream.
Has anyone got the old Realots tool with auto screenshotter?
 
Last edited:
The RSA key has now been changed (small anti-cheat step).
All current players will need to download client from the website again to be able to connect.
To keep your old map, copy all .map files over to the new client folder.
 
gh1acch.png

Try to change "Soul" if you can. I ran out of points after only 2.5 backpack HMM runes, which took about 45 minutes if I'm not mistaken.
 
yeah to runemaker in this server you must need be promoted because i cant even make uhs at the same time i get soul points
 
Non-promo and promo players both get 1 soul point every 15 seconds which means that as a mage you currently receive soul points faster than you can possibly spend them without using manafluids as long as you are killing monsters often enough to be regenerating soul points (currently every 4 minutes).
Specifically a UH rune takes 75 seconds of mana regen time and only 45 seconds of soul point regen time.

I don't know if I want to remove soul points altogether since it's a good measure against large bot/macro-farms.
But I'll likely increase the regeneration speed and/or the regeneration time soon.

Edit: Promo soul regen will be increased to 1 per 3 seconds after SS, meaning that a single monster kill will yield 80 soul points.
 
Last edited:
Really like the project, been following it since the beginning:)
Keep it up!
 
Yeah, the ML multiplier is 1x because I haven't found the address for it yet.
Will change it as soon I find it.
I like you so I will give you a tip. <3 You already know how to change skills right? It's at the same place. And to know what you are looking for, check Wikipedia on the rates and you will find it in no time. I was baffled when I saw how accurate the Wiki is.
 
I like you so I will give you a tip. <3 You already know how to change skills right? It's at the same place. And to know what you are looking for, check Wikipedia on the rates and you will find it in no time. I was baffled when I saw how accurate the Wiki is.
I haven't found the skill rates on my own and I have no idea how Ezzz found them where he found them.
The two lines of pseudocode that each contain a single byte which can be changed to each alter half of the classical skills are gibberish to me.
They look something like this:
Code:
(*((void (__cdecl **)(TPlayer *))v1->baseclass_0._vptr.TCreature + 1))(v1);
Except what the lines actually contain makes it look to me like it can't possibly affect half of the classical skills each...
The functions containing these lines doesn't even appear to be called anywhere by name in the decompiled code.
(Note: I'm also basically on the C/C++ programming level of writing my own Hello World / a bugged Fib calculator; these lines might make at least slightly more sense to someone that knows what a dword and a const actually is :p)

Also I don't know what you mean by check Wikipedia on the rates.
You mean check TWiki for the algorithm(s)?

Really like the project, been following it since the beginning:)
Keep it up!
Thank you very much! :)
 
I haven't found the skill rates on my own and I have no idea how Ezzz found them where he found them.
The two lines of pseudocode that each contain a single byte which can be changed to each alter half of the classical skills are gibberish to me.
They look something like this:
Code:
(*((void (__cdecl **)(TPlayer *))v1->baseclass_0._vptr.TCreature + 1))(v1);
Except what the lines actually contain makes it look to me like it can't possibly affect half of the classical skills each...
The functions containing these lines doesn't even appear to be called anywhere by name in the decompiled code.
(Note: I'm also basically on the C/C++ programming level of writing my own Hello World / a Fib calculator, they might make at least slightly more sense to someone that knows what a dword and a const actually is)

Also I don't know what you mean by check Wikipedia on the rates.
You mean check TWiki for the algorithm(s)?


Thank you very much! :)
Oh yeah, my bad. I ment the Tibiawiki :)
Use IDA Pro, it decompiles it much better than the free variant :) It's amazingly good. If you use that I bet you will find it. Don't remember which class and function which handles it on top of my head tho.
Keep in mind chaning it there wont affect already created players, it will affect players created after the modification. Otherwise you will have to edit the .usr files manually. (They contains rates for every skill)
Edit: It's in TPlayer::SetProfession
 
Oh yeah, my bad. I ment the Tibiawiki :)
Use IDA Pro, it decompiles it much better than the free variant :) It's amazingly good. If you use that I bet you will find it. Don't remember which class and function which handles it on top of my head tho.
Keep in mind chaning it there wont affect already created players, it will affect players created after the modification. Otherwise you will have to edit the .usr files manually. (They contains rates for every skill)
I do, but it's outdated by about 2 years and I've never done any decompiling before.
I've been speculating if it could make a change if I actually had the libs available on the computer that I'm running the decompiling on during the decompiling process, but haven't tested that idea out.
Probably I'm just too newb to have figured enough out yet.
And tho it can be fun, this RE stuff is kinda too time- and energy-consuming for my taste atm considering I'm not too skilled at it either, so I'd like to outsource this kind of work to others when possible and just do the basics "plain text"-stuff myself.

Edit: It's in TPlayer::SetProfession
Alright. I'll take a look later. Thanks for the hint.

Edit: Took a look at it, looks just as gibberish to me.
Almost every line is like this:
Code:
(*(void (__cdecl **)(_DWORD, signed int, signed int))(**(_DWORD **)(prof + 44) + 28))(
        *(_DWORD *)(prof + 44),
        1200,
        50);
No idea how to make much proper sense out of that.
It looks like a poorly/improperly decompiled function call or something, but beyond that...
Couldn't find anything related to setting skill rates in the few function calls I can see in TPlayer::SetProfession either (TCombat::CheckCombatValues and TSkillBase::SetTimer)
@Tony32
Are you seeing the same kinds of lines of code that I'm seeing (quoted above)?
 
Last edited:
I do, but it's outdated by about 2 years and I've never done any decompiling before.
I've been speculating if it could make a change if I actually had the libs available on the computer that I'm running the decompiling on during the decompiling process, but haven't tested that idea out.
Probably I'm just too newb to have figured enough out yet.
And tho it can be fun, this RE stuff is kinda too time- and energy-consuming for my taste atm considering I'm not too skilled at it either, so I'd like to outsource this kind of work to others when possible and just do the basics "plain text"-stuff myself.


Alright. I'll take a look later. Thanks for the hint.

Edit: Took a look at it, looks just as gibberish to me.
Almost every line is like this:
Code:
(*(void (__cdecl **)(_DWORD, signed int, signed int))(**(_DWORD **)(prof + 44) + 28))(
        *(_DWORD *)(prof + 44),
        1200,
        50);
No idea how to make much proper sense out of that.
It looks like a poorly/improperly decompiled function call or something, but beyond that...
Couldn't find anything related to setting skill rates in the few function calls I can see in TPlayer::SetProfession either (TCombat::CheckCombatValues and TSkillBase::SetTimer)
@Tony32
Are you seeing the same kinds of lines of code that I'm seeing (quoted above)?
You are at the right place for sure and it looks just like the decompiled code I have. Just one more thing to do, and that's to figure out what is what. As I said before look at the wiki and you will figure it out for sure :D
I'm handing out a lot on a silver plate here but what the hell :D
Formulae

Not only can you change skillrates, you can also change hp, mp and cap gained per level.

And another way to change how fast you maglvl is to simply increase manaregen ** to 2x which in turn makes you advance twice as fast (because you can cast twice as often)
 
Last edited:
You are at the right place for sure and it looks just like the decompiled code I have. Just one more thing to do, and that's to figure out what is what.
Well, I don't think you can tell me that the code (logic and expressions) are making much sense here.
I think based on pattern recognition I know (can guess) what this kind of structure does now, but only after paying close/exclusive attention to it out of many different structures and looking for patterns.

As I said before look at the wiki and you will figure it out for sure :D
I'm handing out a lot on a silver plate here but what the hell :D
Formulae
C'mon with the exaggerations :)
I've already looked up SetProfession before (tried to search for it on this forum thinking You specifically had brought it up before in some thread, but doesn't look like it, so I don't know who said it where, but I'm absolutely sure both that I've heard someone mention it before and that I've looked at it before), and who working with Realots or on any medium(+) serious OT has never looked up the Formulas on Twiki before? :p
(Dunno why, but I looked them up quite a few times even when I was just an OT player :D)

I think what you mean to say is you can't make it any clearer without literally handing me the answer/addresses, fine, but that's a limitation on both of us.

Not only can you change skillrates, you can also change hp, mp and cap gained per level.
So to be clear, this ^ + the confirmation that I have (at least partially) the same decompiled code is the only new info I've actually got :)
But that last hint is useful, making me realize if what you're saying is true that the answer is not in logical structures (beyond p2), just in numbers and limited pattern recognition.
So I'll probably be able to find it now, thanks.
Edit: Although technically this is still a relatively large amount of work just to change the ML rate in player files I have to say ;)
Edit2: Found the values using existing references, but without them the code makes very little sense.
One voc seem to even be left partially out of the equation according to the code..
Anyway, enough RE talk in here - lets keep this kind of conversation in PM or in other threads from now on. Thanks.

And..
noooo! dont put 2x mana regen... that will over power mages... its already too high
Calm down mate.
 
Last edited:
One voc seem to even be left partially out of the equation according to the code..
It sure seems like it, but that's because two vocs share the same values. I believe sorc and druid has the same skillrates so that's why one seem to be missing :p
 
It sure seems like it, but that's because two vocs share the same values. I believe sorc and druid has the same skillrates so that's why one seem to be missing :p
Yeah. But I didn't mean that. As it turns out my v2015 code both is missing parts and have inaccurate parts that is fixed in the v2017 code.
v2015 code just has a single
Code:
(*(void (__cdecl **)(int *, signed int, signed int))(v4 + 28))(v3, v9, 1600);
line in the entire code, towards the end after most of the loops, and one voc has v5 and v10 defined instead of v3 and v9.
Luckily it was easy to find the missing pieces in ASM.
Anyway, thanks for the hints.
 
Back
Top