pink_panther
Excellent OT User
The idea wasn't to publish it, but to play with my team but be able to use a guidhouse. Today we play and he is better than almost all OTS, but he has this problem with houses
In what way is it better than most ots?
The idea wasn't to publish it, but to play with my team but be able to use a guidhouse. Today we play and he is better than almost all OTS, but he has this problem with houses
you can try by yourself, difference is very clearIn what way is it better than most ots?
In what way is it better than most ots?
He just asked a question, not like he is claiming anything lolif u ever played the 7.~ at its times, its WAY noticeable the difference, stability, behaviors, everything! its the original thing, the only downside that its very limited to modify and i think thats why cip made this way, to be very robust, solid.
He just asked a question, not like he is claiming anything lol
In what way is it better than most ots?
It is very stable i have it running almost 2 months without any maintenance 24/7.if u ever played the 7.~ at its times, its WAY noticeable the difference, stability, behaviors, everything! its the original thing, the only downside that its very limited to modify and i think thats why cip made this way, to be very robust, solid.
This happens because at startup the server compares owners.dat to the database, via the querymanager. If the querymanager reports that a given character does not exist in the database, then the game server will clean their house anyways.Hello guys, I managed to put the server online, but I couldn't make it save the modified items in houses. Whenever I close and open the server it restarts to the same point it was. Has anyone managed to solve this?
It's not really meant to be a "working" server in that regard... more so for fun or exploring in this Tibia time capsule.
Would be quite difficult to modify this server i think, probably not worth the time.
I might be wrong though![]()
In what way is it better than most ots?
This happens because at startup the server compares owners.dat to the database, via the querymanager. If the querymanager reports that a given character does not exist in the database, then the game server will clean their house anyways.
The game server always holds the 'real' data. At StartAuctions the server compares owners.dat against QueryManager. If the data does not match, then TQueryManagerConnection::deleteHouseOwner, TQueryManagerConnection::insertHouseOwner or TQueryManagerConnection::updateHouseOwner will be called.As far as I remember, if a character isn't loaded its house would become free with the items staying in it, because the game server wouldn't know where to put them. Items would be sent to depot if the owner (from owners.dat) character was loaded but not reported as an owner by querymanager.
I think what that guy meant was that his map didn't save upon closing the server. It's probably because he closes it with ctrl+c, while closing wth map save needs a specific signal. I don't remember the exact number, 15 or 30 maybe. @brunoofgod
The game server always holds the 'real' data. At StartAuctions the server compares owners.dat against QueryManager. If the data does not match, then TQueryManagerConnection::deleteHouseOwner, TQueryManagerConnection::insertHouseOwner or TQueryManagerConnection::updateHouseOwner will be called.
The server commits owners.dat to the database through the QueryManager. Not the other way around.But I believe the guy meant saving the map anyway because if he hadn't had house owners in the database, game server wouldn't ever put an owner and he'd notice it on the first launch.
Edit: If the QueryManager notices a given character exists in owners.dat, but not in the database, it will be listed as a deleted character, and therefore evicted along with free accounts and ex guild leaders. Here:
You're wrong, try sending parcel or adding to viplist a character that wasn't loaded by querymanager but has the .usr file. Try removing all records regarding certain character from the database, but keep its .usr file in place and the entry in owners.dat - you'll see game server set the owner to nobody, leaving items in the house. Only characters that were received from querymanager actually exist for the game server. During launch or new login, both require their presence in the database either way.@kay If the actual .usr file exists, then the character exists for the game server. It doesn't care about the database. Check AssignPlayerPoolSlot and see if it messes with the querymanager or the database.
This is PlayerIndex you're talking about. It allows mapping character names to character ids.You're wrong, try sending parcel or adding to viplist a character that wasn't loaded by querymanager but has the .usr file. Try removing all records regarding certain character from the database, but keep its .usr file in place and the entry in owners.dat - you'll see game server set the owner to nobody, leaving items in the house. Only the characters that were received from the querymanager actually exist for the game server. Either during launch or new login, both require their presence in the database.
This is PlayerIndex you're talking about. It allows mapping character names to character ids.
Just look at the console message after TQueryManagerConnection::loadPlayers:
"%d Spielernamen gelesen", literally "%d Playernames loaded".
This is not like OpenTibia where everything is stored in the database. The server only shows the database what needs to be seen by the website.
Most of the info* yes, not any info though. The info that it sets by itself to be specific. What isn't set by game server has to be loaded from databse each time, even though game also has it stored. That means names, which are needed for loading characters, or sex for example.But, when the server is running in trusted space, the database is completely ignored. RealOTS trusts so much on its data, that any info is commited FROM the server's files TO the database and not the other way around
You seem like the one trying to prove something, but are just ignoring facts, and rejecting to use common sense. Think what CIP wanted to achieve when writing this code. Read the decompiled code for yourself and see how the server interacts with the database through the QM.It may say spielernamen, yet the method is named "loadPlayers". It also doesn't only load names, but all the rights that need to be read from database. I don't know what you're trying to prove honestly, you're kinda making it a semantic problem now. The .usr files contain names as well, but they have to be loaded from database. You won't be able to login without it either (unless you hardcode it in querymanager, but that's not the point). I never said it was like opentibia, it's not, but the database isn't just for showoff.
You seem like the one trying to prove something, but are just ignoring facts, and rejecting to use common sense. Think what CIP wanted to achieve when writing this code. Read the decompiled code for yourself and see how the server interacts with the database through the QM.