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

I spent May building on OTHire 7.72 - What distro to use next?

swashed

Member
Joined
Jul 9, 2023
Messages
116
Reaction score
15
I've learned what I needed to know about starting an OT, now it's time to move on to bigger things. Help me pick my next distro so that I can make a simple old school server.

Requirements:
-Old school 7.4 (or emulating 7.4)
-Old school Tibia client UI (Otclient can do this?)

I think sabrehaven looks like it would be good, as this is based on Nostalrius, which was OTHire's successor. It has a 7.4 version.

I heard Avesta is too buggy.

TibiaCore looks really promising, but looks like it might be buggy.
 
Avesta is a downgrade, it's older and worse than OTHire. For true 7.4-7.72 it's either Nostarius or some fork of it, or OTHire.
 
I've learned what I needed to know about starting an OT, now it's time to move on to bigger things. Help me pick my next distro so that I can make a simple old school server.

Requirements:
-Old school 7.4 (or emulating 7.4)
-Old school Tibia client UI (Otclient can do this?)

I think sabrehaven looks like it would be good, as this is based on Nostalrius, which was OTHire's successor. It has a 7.4 version.

I heard Avesta is too buggy.

TibiaCore looks really promising, but looks like it might be buggy.
you can downgrade sabreheaven, needs a lot work, but it is stable.
 
Avesta is a downgrade, it's older and worse than OTHire. For true 7.4-7.72 it's either Nostarius or some fork of it, or OTHire.
I really like OTHire but the source for it doesn't have working auto-stacking but the release has it
 
I really like OTHire but the source for it doesn't have working auto-stacking but the release has it
Weird, u sure didn't fucked up config.lua? Autostacking was working.
 
OTHire is an engine I made long time ago, in 2014, I dropped support due to it being based on OTServ SVN and let Peonso work on it.
Nostalrius was released later in 2017 due to it being leaked in the first place.

Nostalrius is not compatible with TFS, with items and maps (unless you convert them), and it also is harder to work with if you're all into using TFS stuff, you'd have to work yourself a bit in order for some stuff to work, e.g: custom weapons.
 
I've learned what I needed to know about starting an OT, now it's time to move on to bigger things. Help me pick my next distro so that I can make a simple old school server.

Requirements:
-Old school 7.4 (or emulating 7.4)
-Old school Tibia client UI (Otclient can do this?)

I think sabrehaven looks like it would be good, as this is based on Nostalrius, which was OTHire's successor. It has a 7.4 version.

I heard Avesta is too buggy.

TibiaCore looks really promising, but looks like it might be buggy.
You want something closer to 7.4 open source? Nostalrius.
You want something that resembles 7.4 but customized? Othire.

Othire is VERY OFF of the real thing, items, mechanics, monster AI, formulas, everything is off. Nostalrius in the other hand as Ezz told above, was made doing RE to the leaked files of the real thing of 7.72, so it is much more closer to the real thing than Othire, however it's harder to customize.

It's hard to estimate how long it would take you to build up othire the closest to 7.4, considering your skill level, 7.4 knowledge, time into it and your RE skills (or having the RE sources of the binary).
I've been working on it for 4 years (almost finished tho) and thought it would take me roughly 2 years as most.
 
I'm honestly leaning towards picking up this OTHire server I worked on because I got a lot of stuff working the way I like. There were some key features I wanted to add that required changing some of the source, but I got a lot of pushback from the players about wanting that auto-stacking working above any new features.

I spent this week trying to get TibiaCore working with retro ui otclient and am facing a really annoying disconnect problem that kicks every 30 seconds.

I am going to have to figure out how to get a client working that has retro UI + auto updating working before I do any real work on the server. I plan to add custom items and stuff and I'll need an updating client to make this dream come true.
 
I'm honestly leaning towards picking up this OTHire server I worked on because I got a lot of stuff working the way I like. There were some key features I wanted to add that required changing some of the source, but I got a lot of pushback from the players about wanting that auto-stacking working above any new features.

I spent this week trying to get TibiaCore working with retro ui otclient and am facing a really annoying disconnect problem that kicks every 30 seconds.

I am going to have to figure out how to get a client working that has retro UI + auto updating working before I do any real work on the server. I plan to add custom items and stuff and I'll need an updating client to make this dream come true.
What Linux distribution u using? I had an issue (traps were healing instead of doing damage) while running on new Ubuntu and end up using old Debian and my issue was solved. It's ancient C++ and not using compatible stuff might break something. I had it working with autostack.
 
What Linux distribution u using? I had an issue (traps were healing instead of doing damage) while running on new Ubuntu and end up using old Debian and my issue was solved. It's ancient C++ and not using compatible stuff might break something. I had it working with autostack.
I’m running it on windows
 
How you compiled it?
I used this method:

Post automatically merged:

What Linux distribution u using? I had an issue (traps were healing instead of doing damage) while running on new Ubuntu and end up using old Debian and my issue was solved. It's ancient C++ and not using compatible stuff might break something. I had it working with autostack.
I hadn't even considered that it could be compiling incorrectly... When I was doing this, I compiled it two times and the auto stack wasn't working. I just recompiled it again and now it seems to be working... Is this normal?! That the compiler just wont compile it right sometimes?!

stacking working release version.gif
 
Last edited:
Here you can see it's not working when conjuring. I remember going super deep into the playerAddItem functions through and through and couldn't how to get it register the auto stacking code


stacking not working release version.gif
Post automatically merged:

The closest I got to finding a solution was to maybe change something in this game.cpp function:
 
C++:
if(item->isStackable() && toItem){
            uint32_t n = 0;
            uint32_t m = std::min((uint32_t)item->getItemCount(), maxQueryCount);

            if(toItem->getID() == item->getID()){
                n = std::min((uint32_t)100 - toItem->getItemCount(), m);
                toCylinder->__updateThing(toItem, toItem->getID(), toItem->getItemCount() + n);
            }

            if(m - n > 0){
                if(m - n != item->getItemCount()){
                    Item* remainderItem = Item::CreateItem(item->getID(), m - n);
                    if(internalAddItem(origToCylinder, remainderItem, INDEX_WHEREEVER, flags, false) != RET_NOERROR){
                        FreeThing(remainderItem);
                        remainderCount = m - n;
                    }
                }
                else{
                    toCylinder->__addThing(index, item);

                    int32_t itemIndex = toCylinder->__getIndexOfThing(item);
                    if(itemIndex != -1){
                        toCylinder->postAddNotification(item, NULL, itemIndex);
                    }
                }
            }
            else{
                //fully merged with toItem, item will be destroyed
                item->onRemoved();
                FreeThing(item);
            }
        }
        else{
            toCylinder->__addThing(index, item);

            int32_t itemIndex = toCylinder->__getIndexOfThing(item);
            if(itemIndex != -1){
                toCylinder->postAddNotification(item, NULL, itemIndex);
            }
        }
    }

Something about this isn’t registering stackable items (gold, arrows, etc) when additem is used to put an item in player’s inventory.
 
It’s not just with conjure but anything that uses the additem function (convert gold to plat doesn’t stack the plat, autoloot gold doesn’t stack the gold).

I’ve even tried a workaround to additemx that had the same result.

I compiled it under the exact instructions given since these environments can be so particular.

I had someone chime in on this to give their opinions in a different post a few months ago


This guy also has the exact same issue

 
It’s not just with conjure but anything that uses the additem function (convert gold to plat doesn’t stack the plat, autoloot gold doesn’t stack the gold).

I’ve even tried a workaround to additemx that had the same result.

I compiled it under the exact instructions given since these environments can be so particular.

I had someone chime in on this to give their opinions in a different post a few months ago


This guy also has the exact same issue

I was checking your thread and got confused, you have auto stacking working and you added some custom auto loot where auto stack doesn't work and the fault is in the auto stack? That doesn't make sense in my head, I would say you should check that auto loot implementation. I asked how you compiled because I did not even know MSVC 2010 would run on current Windows.
 
It doesn’t have anything to do with the autoloot script. That script just uses playerAddItem, which is bypassing the auto stack. Conjuring ammo also uses playerAddItem. So the issue seems to lie in that function.
 
Back
Top