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

Getting tile names from dat file?

pejti

New Member
Joined
Oct 20, 2019
Messages
7
Reaction score
1
Hi guys.
I wonder is it possible to get names of tiles like muddy floor, wooden floor etc?
ObjectBuilder and ItemEditor does not show any names.
 
So, all names of tiles in items.xml were added manually by checking in the game? It's too bad, I thought their names were in game files. Thanks for reply. ; )
 
So, all names of tiles in items.xml were added manually by checking in the game? It's too bad, I thought their names were in game files. Thanks for reply. ; )
a very very long time ago someone made a tool for me (no, I don't remember his name), and this small tool loaded items.xml and items.otb and injected into cip client, so all I needed to do was to walk into the game and "look" at every item (as many as possible) and the program would create its items.xml entry if non existent (with name, weight attack if applicable), and for entries with wrong names/weights it would fix them... I used it for a while to help contribute with 0.3.x items.xml... goods times...

today I don't think it is as easy as it used to be because of this battle eye thing, but we still have geniuses around that would be able to do that (like @fabian766 , @jo3bingham and so on) but I don't think anyone is interested into such a hassle just to complete items.xml entries...
 
today I don't think it is as easy as it used to be because of this battle eye thing, but we still have geniuses around that would be able to do that (like @fabian766 , @jo3bingham and so on) but I don't think anyone is interested into such a hassle just to complete items.xml entries...
Today you can write application that don't even need to log into game, every movable(or most) now have their name in appearance file not only marketable one like on older versions + they for some reason added item descriptions to appearance file in 12.51 update.
Weight, attack, armor etc application can fetch from wiki or fanpages as they have somewhat up-to date info. The only problem are the non-movable items like ground names.
 
Today you can write application that don't even need to log into game, every movable(or most) now have their name in appearance file not only marketable one like on older versions + they for some reason added item descriptions to appearance file in 12.51 update.
Weight, attack, armor etc application can fetch from wiki or fanpages as they have somewhat up-to date info. The only problem are the non-movable items like ground names.
wow that is pretty awesome I think we can just call them ground 😁 but thanks for the info
 
wow that is pretty awesome I think we can just call them ground 😁 but thanks for the info
Yes, that's one possibility 😁
I'll try to write that app somewhere in december if I manage to find time, it'll be useful to keep item files up-to date without any effort for optimized tfs.
 
In addition to what @fabian766 mentioned about the appearance.dat file, you can also abuse the GetObjectInfo client packet. By using my API, sending the GetObjectInfo packet for every valid ID, then dumping what the server sends back in the ObjectInfo server packet you can get the name for every valid object in the game. I did this just now on the current version (12.52.10394), and this is the dump I got: https://gist.github.com/jo3bingham/e06949655e30e9c4e556834286b16982
Wow, this is great! 😲

Does anyone know what the convention is for storing item names nowadays? Should they be stored in items.xml or items.otb (or both...?)?
 
In addition to what @fabian766 mentioned about the appearance.dat file, you can also abuse the GetObjectInfo client packet. By using my API, sending the GetObjectInfo packet for every valid ID, then dumping what the server sends back in the ObjectInfo server packet you can get the name for every valid object in the game. I did this just now on the current version (12.52.10394), and this is the dump I got: https://gist.github.com/jo3bingham/e06949655e30e9c4e556834286b16982
Hi again. Could you (if you will have time) use your api again to get items names from the latest 12.70v update? : )
 
Hi again. Could you (if you will have time) use your api again to get items names from the latest 12.70v update? : )
I was able to get an updated version for the current client (12.70.10971) using the same method as @jo3bingham (big thanks to him for helping me figure it out via DMs!). I've attached the dump for the current client.

If anyone wants to generate their own version, I have a fork of TibiaAPI with my changes here. I made some minor changes to the TibiaAPI library, but most additions are in a new project under Apps/GetItemNames. Also, make sure to read through the README file if you plan on running it.
 

Attachments

  • item_names_12.7.txt
    702.9 KB · Views: 25 · VirusTotal
thanks for sharing @kokokoko, I'll see if I can use this to contribute a consolidate XML version
Nice! Do you know if there is an up to date (latest Tibia version) "official" (serverID, clientID) mapping? Without such a mapping we can't add these names to items.xml, because the ids in the dump are client IDs.
 
Nice! Do you know if there is an up to date (latest Tibia version) "official" (serverID, clientID) mapping? Without such a mapping we can't add these names to items.xml, because the ids in the dump are client IDs.
Yes, opentibiabr guys have such mappings, they use client id's in their xmls and even have a tool for conversion

Edit: @kokokoko I guess this is it tools/Convert MAP to Client ID.zip at master · opentibiabr/tools (https://github.com/opentibiabr/tools/blob/master/Convert%20MAP%20to%20Client%20ID.zip)
 
Last edited:
Yes, opentibiabr guys have such mappings, they use client id's in their xmls and even have a tool for conversion

Edit: @kokokoko I guess this is it tools/Convert MAP to Client ID.zip at master · opentibiabr/tools (https://github.com/opentibiabr/tools/blob/master/Convert%20MAP%20to%20Client%20ID.zip)
Hmm, looks like that tool converts a map from serverIDs to clientIDs? I don't think that solves the problem where CIP might change a client ID and thereby making our old maps incompatible with new versions of Tibia.

I had a look at the otservbr-global items.xml, and it looks like it uses serverIDs. And I think we should be using serverIDs everywhere, because of the aforementioned issue with potentially changing client IDs, right?

The items.otb file contains sprite signatures computed using FFT on each item sprite image to track changes in client IDs so that server IDs can still map to the same item type (e.g. a grass tile), even if CIP were to change its client ID. Do you (or anyone else) know whether this system is still used to keep a consistent (serverID, clientID) mapping? Also, does anyone know whether CIP has ever changed a client ID of an item, or are serverIDs a precautionary measure thus far?
 
Hmm, looks like that tool converts a map from serverIDs to clientIDs? I don't think that solves the problem where CIP might change a client ID and thereby making our old maps incompatible with new versions of Tibia.

I had a look at the otservbr-global items.xml, and it looks like it uses serverIDs. And I think we should be using serverIDs everywhere, because of the aforementioned issue with potentially changing client IDs, right?

The items.otb file contains sprite signatures computed using FFT on each item sprite image to track changes in client IDs so that server IDs can still map to the same item type (e.g. a grass tile), even if CIP were to change its client ID. Do you (or anyone else) know whether this system is still used to keep a consistent (serverID, clientID) mapping? Also, does anyone know whether CIP has ever changed a client ID of an item, or are serverIDs a precautionary measure thus far?
they convert server id to client id for Remeres.
Cip have never changed a client id as far as I know, our server ID is basically an additional (and unnecessary) layer. Even if they change, we would need to remap in items.xml so what's the point?

By the way, you are right. Otservbr still uses server id, they have only updated on canary: Removed unnecessary files and converted to client id by dudantas · Pull Request #1 · opentibiabr/canary (https://github.com/opentibiabr/canary/pull/1)
 
they convert server id to client id for Remeres.
Cip have never changed a client id as far as I know, our server ID is basically an additional (and unnecessary) layer. Even if they change, we would need to remap in items.xml so what's the point?

By the way, you are right. Otservbr still uses server id, they have only updated on canary: Removed unnecessary files and converted to client id by dudantas · Pull Request #1 · opentibiabr/canary (https://github.com/opentibiabr/canary/pull/1)
Ah, right. Interesting that they've maybe never changed the client IDs. I kind of assumed that the FFT signatures were added as a response to CIP changing client IDs from version to version.

No, I think we wouldn't have to remap anything if CIP were to change a bunch of client IDs. As long as everything server side in OT uses serverIDs, I think the only thing that would need to change is the (serverID, clientID) mapping, which could be updated using the FFT signatures.

But then again, this is all meaningless if CIP has never changed Client IDs 😅 If they were to do so in the future, it is always possible to then add the FFT signatures (or something similar) to retain compatibility with maps from older versions.
 
Yeah, I'm not 100% sure either on why we create this serverID -> ClientID mapping, I know that the roadmap of canary/otservbr is to have it all unified in clientids.

We also need to think that we are getting near the time to ditch cip client for good, otc feature based seems pretty much more reliable than "version" based. Mehah is doing incredible improvements in this area, who knows how it might look like in 1~2 years?
 
Yeah, I'm not 100% sure either on why we create this serverID -> ClientID mapping, I know that the roadmap of canary/otservbr is to have it all unified in clientids.

We also need to think that we are getting near the time to ditch cip client for good, otc feature based seems pretty much more reliable than "version" based. Mehah is doing incredible improvements in this area, who knows how it might look like in 1~2 years?
Right, interesting that they are moving in that direction.

Yeah, we seem to be moving away from the CIP client. For me personally, the main reason that I want to stay up to date with the latest client is the access to new sprites. If that is the main reason for most I could definitely see how it would be sensible to use the OTC feature set for versioning rather than following CIP's versions.
 
Back
Top