[Guide] Using Client (internal) Functions

02/21/2011 18:17 lolkop#1
since many people are asking for sources of my Loaders, here are some asm code pieces directly out of the zszc client.
you should be able to use them in almost all coding languages...

hope this will be useful for coders in the pserv sections. its also possible to send/recyve packets directly through the client, but that would require some hooks in the client, so i won't really explain how to do that in this post (since its not/hardly realizable in scripting languages)...
if u're interested in using the client for packet operations, check drews tutorials in the main sro section.

print text in the chat-window:
Code:
mov ecx, dword ptr ds:[0xCF5CD4]
push 1
push color
push msg
push 1
call 0x5B95C0
print text in the status-window (right side of the chat-window):
Code:
mov ecx, dword pt ds:[0xCF5CD4]
push msg
push 0
call 0x5B9990
change current weather:
where gamma goes from 0-255 and declares the strength of rain or snow
and type can be 1 (sun), 2 (rain), 3 (snow)
Code:
mov eax, 0xCB3300
mov edx, dword pt ds:[eax]
mov edx, dword pt ds:[edx+0xA4]
push gamma
push 4
mov ecx, eax
call edx
		
mov eax, 0xCB3300
mov edx, dword pt ds:[eax]
mov edx, dword pt ds:[edx+0xA4]
push type
push 3
mov ecx, eax
call edx
Use Skillbar:
key (1-40) means the slot in the bar, and keylocation is a special adress of the bar. the keyloactions get stored in 0xCF5AD0.
Code:
mov eax, key
mov esi, keylocation
mov edx, 759
mov ecx, esi
push eax
mov ecx,esi
call 0x916350
mov ecx,eax
call 0x4F92E0
ret
thats all for now... if u're using simple scripting languages like autoit or ahk, you'll be able to use those functions, but you won't be able to hook the main functions in the client to build extended functions with hooks.

if u're using higher level languages (c++/vb), knowing the chat function's adress for example will also enable you to build chatblocks or simple chat commands... knowing the status window display function's adress, will enable you to build nice unique log/alarm tools...