- Joined
- Oct 29, 2007
- Messages
- 1,292
- Reaction score
- 1,314
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:
What does this code do? Well 2 pictures are worth more than 2000 words
In Game Tests
Credits:
Webzen
Nemesis
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:
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)
Hook:
Code:
gToolKit.SetRange((LPVOID)0x6CAD43,75,ASM::NOP);
gToolKit.SetOp((LPVOID)0x6CAD43,DrawPlayerASM,ASM::JMP);
What does this code do? Well 2 pictures are worth more than 2000 words
In Game Tests
Credits:
Webzen
Nemesis