Changing an outfit into another by changing assets?

Evil Puncker

I'd rather kiss a rattlesnake
Joined
May 30, 2009
Messages
5,799
Best answers
26
Reaction score
1,788
Location
160,54,7
Is it possible to change an outfit into another by messing with the assets files? I really like some of the news outfits (store) but they are expensive AF, so I would like to know if anyone tried to exchange outfit files in order to achieve it, for example: changing knight outfit into void master outfit


yeah I'm aware that only I'll be able to see it, and everyone with the same outfit will appear as well
 

fabian766

Active Member
Joined
Apr 22, 2008
Messages
48
Best answers
7
Reaction score
36
Yes, it is possible.
(I could leave this question at this answer but I'll write you tutorial to change knight outfit to void master outfit by messing with appearances file using hex editor)
Search for knight bytes:
Code:
12 E0 0B 08 83 01
change them so knight outfi will now have void master id to:
Code:
12 E0 0B 08 B2 09
Search for void master bytes:
Code:
12 88 1A 08 B2 09
change them so void master oufit will now have knight id to:
Code:
12 88 1A 08 83 01
It is really simple changes that swap knight and void master outfit but with hex editor this is mostly the only changes you can do without understanding how protobuf save bytes. If you want more complex changes you'll need to pay someone to made you program that edit appearances file(Maybe in the future I'll write support for protobuf appearances file to object builder).
 
OP
Evil Puncker

Evil Puncker

I'd rather kiss a rattlesnake
Joined
May 30, 2009
Messages
5,799
Best answers
26
Reaction score
1,788
Location
160,54,7
It is really simple changes that swap knight and void master outfit but with hex editor this is mostly the only changes you can do without understanding how protobuf save bytes. If you want more complex changes you'll need to pay someone to made you program that edit appearances file(Maybe in the future I'll write support for protobuf appearances file to object builder).
it is not finding the hex strings, maybe our clients are not the same or am I doing something really wrong
 

fabian766

Active Member
Joined
Apr 22, 2008
Messages
48
Best answers
7
Reaction score
36
It isn't hex strings it is hex bytes so if you search for strings you of course don't find anything.
I'm used the newest 12.20.9260 client as a reference because I thought you need it for real tibia, if it isn't for that version then yes there might be differences.
 
OP
Evil Puncker

Evil Puncker

I'd rather kiss a rattlesnake
Joined
May 30, 2009
Messages
5,799
Best answers
26
Reaction score
1,788
Location
160,54,7
It isn't hex strings it is hex bytes so if you search for strings you of course don't find anything.
I'm used the newest 12.20.9260 client as a reference because I thought you need it for real tibia, if it isn't for that version then yes there might be differences.
yes real tibia:

 

fabian766

Active Member
Joined
Apr 22, 2008
Messages
48
Best answers
7
Reaction score
36
OP
Evil Puncker

Evil Puncker

I'd rather kiss a rattlesnake
Joined
May 30, 2009
Messages
5,799
Best answers
26
Reaction score
1,788
Location
160,54,7
I writed that you need to edit appearances file(this file is in folder assets) not the Tibia.exe(how do you even get that you need to edit this file xD btw it is launcher so if I meant to really edit client it wouldn't work either...)
If you want here is download for edited appearances file: MEGA (https://mega.nz/#!8II3xayY!1IzDsv2PWx7pQRTjAS-pGZWvZ8rGQaskhWOFvyg-DgY)
man you are the best <3



now 3 questions (sorry for the abuse):

  1. is there a way to enable full addon with edits?
  2. is it also possible to change rented (3 variants) horses into some other mount? i.e: jousting eagle
  3. how do I get the outfit bytes list (both male and female) so I can change them without bothering for help? 😬
and thanks again, I loved it
 

fabian766

Active Member
Joined
Apr 22, 2008
Messages
48
Best answers
7
Reaction score
36
1. Yes, but it require to modify sprites so that the displayed outfit will have addons always displayed.
2. Yes, you can just swap theirs id like I did with knight<->void master.
3. There aren't any easy way to get it, you will need to understand protobuf structure and depend on it.
 
OP
Evil Puncker

Evil Puncker

I'd rather kiss a rattlesnake
Joined
May 30, 2009
Messages
5,799
Best answers
26
Reaction score
1,788
Location
160,54,7
1. Yes, but it require to modify sprites so that the displayed outfit will have addons always displayed.
2. Yes, you can just swap theirs id like I did with knight<->void master.
3. There aren't any easy way to get it, you will need to understand protobuf structure and depend on it.
2019-11-23 11_31_41-Window.png

does that knight byte having the same id as knight outfit (in decimal) just a coincidence? (yes I'm really trying to hex things by trial and error lmao)
 

fabian766

Active Member
Joined
Apr 22, 2008
Messages
48
Best answers
7
Reaction score
36
View attachment 40460

does that knight byte having the same id as knight outfit (in decimal) just a coincidence? (yes I'm really trying to hex things by trial and error lmao)
No it isn't a coincidence it is just how protobuf saves int's let me just try to illustrate you how it is:
12 E0 0B 08 83 01
12 - is protobuf tag which identifies as repeated .tibia.protobuf.appearances.Appearance outfit = 2;
E0 0B(1504) - is size of protobuf.Appearance class
08 - is protobuf tag to identify the next value as optional uint32 id = 1;
83 01(131) - is outfit id

so how to read protobuf values?:
Code:
uint32_t result = firstByte;
if(result < 128)
    return ressult;

uint32_t readSecond = secondByte;
result += (readSecond - 1) << 7;
if(readSecond < 128)
    return result;
and you're going this way until the last byte has value < 128.
If you are interested I can write simple program that will swap outfit ids.

Edit:

if it is a for fun project, yes, if too much hassle (money involved/time consumption) then there is no need, but thanks a lot for taking your time already to explain this to me
Yes, I have done it for fun and for free.
Here are download for this tool: MEGA (https://mega.nz/#!oIIV2ahZ!hyEDZoHPaRezsnIEPBUId4ryvTQHPPrypehAKcqJVWg)
As you can see in source it is really simple tool that are meant to swap outfit ids in protobuf structure.
Example usage(can be done with ids too but I added string hash map for outfits that I have on my pc(surely there's lacking few outfits)):
Code:
swap "male knight" "orc warlord"
compile appearances-c6e3edc34874850404d474bff8d73228326c12e9dca425e15acb059e12622777.dat
exit
(I recommend using it on clean appearances file otherwise it'll swap already swapped outfits)
How it looks ingame:
 
Last edited:
OP
Evil Puncker

Evil Puncker

I'd rather kiss a rattlesnake
Joined
May 30, 2009
Messages
5,799
Best answers
26
Reaction score
1,788
Location
160,54,7
If you are interested I can write simple program that will swap outfit ids.
if it is a for fun project, yes, if too much hassle (money involved/time consumption) then there is no need, but thanks a lot for taking your time already to explain this to me
 
Top