Hello.
I'm trying to recreate some features I made on my 8.60 server (
,
) but on 10.98/10.00 client. I've found all needed addresses, I'm able to print texts, draw skins or outfits. Last missing thing is DrawItem which I need for modals with Tibia item sprites like Supply Stash for example. Main differences between older and newer clients are:
I've created simple repository rookgaard/draw-item (https://github.com/rookgaard/draw-item) where I hooked into call for DrawItem in equipment items (which can be seen in
So, I'm looking for someone who can explain (or create paid solution) how structure is created and how I can code it and use with rookgaard/draw-item (https://github.com/rookgaard/draw-item/blob/master/dllmain.cpp#L97). My code (where also I added released dll) can be used in any 10.00 client (for example Gunzodus - Download Client (https://www.gunzodus.net/custom/download_client)) and will generate log similar to
Here are also some images representing what's going on there:
DrawItem method
call of DrawItem method inside some code responsible for drawing equipment items.
I'm trying to recreate some features I made on my 8.60 server (
- function calls which was just simple call versus fastcall where first two arguments are stored in registers in current client
- DrawItem arguments, you had something like ianobermiller/tibiaapi (https://github.com/ianobermiller/tibiaapi/blob/master/tibiaapi/InjectedDLL/Core.h#L52) and rwxsu/tibianic-dll (https://github.com/rwxsu/tibianic-dll/blob/master/gui/painter.h#L11) where
int itemId, int itemData1, int itemData2
was responsible for ID and count versus someitemPointer
rookgaard/draw-item (https://github.com/rookgaard/draw-item/blob/master/dllmain.cpp#L86) which holds some structure with this
I've created simple repository rookgaard/draw-item (https://github.com/rookgaard/draw-item) where I hooked into call for DrawItem in equipment items (which can be seen in
dll.log
after loggin on to any server) and I'm able to pass all argument using my own function in rookgaard/draw-item (https://github.com/rookgaard/draw-item/blob/master/dllmain.cpp#L93) (code is in __asm
because I had troubles with "normal" C++ way), but I don't know how to create item structure which can be used inside rookgaard/draw-item (https://github.com/rookgaard/draw-item/blob/master/dllmain.cpp#L73)So, I'm looking for someone who can explain (or create paid solution) how structure is created and how I can code it and use with rookgaard/draw-item (https://github.com/rookgaard/draw-item/blob/master/dllmain.cpp#L97). My code (where also I added released dll) can be used in any 10.00 client (for example Gunzodus - Download Client (https://www.gunzodus.net/custom/download_client)) and will generate log similar to
Code:
HookedDrawItem - x: 1763, y: 170, size: 32, itemPointer: 3860248, edgeR: 0, edgeG: 0, edgeB: 0, clipX: 1763, clipY: 170, clipW: 32, clipH: 32
HookedDrawItem - x: 1726, y: 193, size: 32, itemPointer: 3860248, edgeR: 0, edgeG: 0, edgeB: 0, clipX: 1726, clipY: 193, clipW: 32, clipH: 32
HookedDrawItem - x: 1763, y: 207, size: 32, itemPointer: 3860248, edgeR: 0, edgeG: 0, edgeB: 0, clipX: 1763, clipY: 207, clipW: 32, clipH: 32
HookedDrawItem - x: 1689, y: 207, size: 32, itemPointer: 3860248, edgeR: 0, edgeG: 0, edgeB: 0, clipX: 1689, clipY: 207, clipW: 32, clipH: 32
HookedDrawItem - x: 1726, y: 267, size: 32, itemPointer: 3860248, edgeR: 0, edgeG: 0, edgeB: 0, clipX: 1726, clipY: 267, clipW: 32, clipH: 32
Here are also some images representing what's going on there:
DrawItem method
call of DrawItem method inside some code responsible for drawing equipment items.