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

Programmer RE task

kor

PHP ziom
Premium User
Joined
Jul 12, 2008
Messages
252
Solutions
13
Reaction score
410
Location
Bialystok, Poland
GitHub
rookgaard
YouTube
Rookgaard
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 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:
oiZsYTb.png

DrawItem method

FkalyRe.png

call of DrawItem method inside some code responsible for drawing equipment items.
 
Back
Top