Good evening people... I'm tired of dealing with people who do not understand anything at all in Latino communities. I've come back my real house... RaGEZONE!
Small introduction:
These days I founded 1 new Development Team for MU. and we have developed a few things... but as RaGEZONE is a forum that has really given me a lot (in my early days). I back (to my real home) to want to contribute this little code... (nothing super important)... but perhaps some people may find it useful.
Code:
Hook:Code:#pragma optimize("t",on) void __declspec(naked) DrawPlayerASM() { static DWORD dwReturnLoad = 0x006CAD8E; static DWORD dwRenderColor = 0x005DE75C; // ---- _asm { CMP DWORD PTR DS:[0x8314D4],0x1E // -> Comparing actual MapNumber with Loren Deep (0x1E) and Jump to: Normal Draw or Custom :D JNZ NewMiniMap JE NormalMiniMap // ---- NewMiniMap: // ---- MOV EAX,DWORD PTR SS:[EBP-0x104] // -> Substract EBP-0x104 from EAX Register MOV ECX,DWORD PTR DS:[EAX+0x80] // -> /*+128*/ GLfloat AlphaLevel; PUSH ECX // -> PUSH SEASON3B::CNewUISiegeWarBase *Class PUSH 0 // -> Base 16-Hexadecimal Color Value (Blue) = 0.f PUSH 0x3F800000 // -> Base 16-Hexadecimal Color Value (Green) = 1.f PUSH 0 // -> Base 16-Hexadecimal Color Value (Red) = 0.f CALL DWORD PTR DS:[0x803390] // -> <&OPENGL32.glColor4f> Procedure from Main PUSH 0x40400000 // -> Base 16-Hexadecimal Height Value (PointY) = 3.f PUSH 0x40400000 // -> Base 16-Hexadecimal Width Value (PointX) = 3.f MOV EDX,DWORD PTR SS:[EBP-0x104] // -> Substract EBP-0x104 from EDX Register FILD DWORD PTR DS:[EDX+0x68] // -> EDX+0x68 = /*+104*/ DWORD dwCharPosY; PUSH ECX // -> PUSH ECX Register FSTP DWORD PTR SS:[ESP] // -> I don't know :D MOV EAX,DWORD PTR SS:[EBP-0x104]// -> Substract EBP-0x104 from EAX Register 1st Parameter FILD DWORD PTR DS:[EAX+0x64] // -> EAX+0x64 = /*+100*/ DWORD dwCharPosX; PUSH ECX // -> PUSH ECX (for Class) FSTP DWORD PTR SS:[ESP] // -> I don't know (again) :D CALL dwRenderColor // -> Draw Player Point on Screen :D ADD ESP,0x10 // -> Adition operation for restore ESP register BYTES before of Exit // ---- JMP dwReturnLoad // ---- NormalMiniMap: // ---- MOV EAX,DWORD PTR SS:[EBP-0x104] // -> Substract EBP-0x104 from EAX Register MOV ECX,DWORD PTR DS:[EAX+0x80] // -> /*+128*/ GLfloat AlphaLevel; PUSH ECX // -> PUSH SEASON3B::CNewUISiegeWarBase *Class PUSH 0 // -> Base 16-Hexadecimal Color Value (Blue) = 0.f PUSH 0x3F800000 // -> Base 16-Hexadecimal Color Value (Green) = 1.f PUSH 0x3F800000 // -> Base 16-Hexadecimal Color Value (Red) = 1.f CALL DWORD PTR DS:[0x803390] // -> <&OPENGL32.glColor4f> Procedure from Main PUSH 0x40400000 // -> Base 16-Hexadecimal Height Value (PointY) = 3.f PUSH 0x40400000 // -> Base 16-Hexadecimal Width Value (PointX) = 3.f MOV EDX,DWORD PTR SS:[EBP-0x104] // -> Substract EBP-0x104 from EDX Register FILD DWORD PTR DS:[EDX+0x68] // -> EDX+0x68 = /*+104*/ DWORD dwCharPosY; PUSH ECX // -> PUSH ECX Register FSTP DWORD PTR SS:[ESP] // -> I don't know :D MOV EAX,DWORD PTR SS:[EBP-0x104]// -> Substract EBP-0x104 1st Parameter FILD DWORD PTR DS:[EAX+0x64] // -> EAX+0x64 = /*+100*/ DWORD dwCharPosX; PUSH ECX // -> PUSH ECX (for Class) FSTP DWORD PTR SS:[ESP] // -> I don't know (again) :D CALL dwRenderColor // -> Draw Player Point on Screen :D ADD ESP,0x10 // -> Adition operation for restore ESP register BYTES before of Exit // ---- JMP dwReturnLoad } } #pragma optimize("t",off)
What does this code do? Well 2 pictures are worth more than 2000 words :DCode:gToolKit.SetRange((LPVOID)0x6CAD43,75,ASM::NOP); gToolKit.SetOp((LPVOID)0x6CAD43,DrawPlayerASM,ASM::JMP);
In Game Tests :D
Credits:
Webzen
Nemesis





Reply With Quote



