Para quienes lo querΓan ordenado, si falta algo avisen que en cuento pueda lo coloco aca
Funciona en main 1.04e (Muemu)
Los detalles que faltaban tambiΓ©n los dejo acΓ‘
El dragon a los lados no lo pidan que no lo tengo
Inter3.h
#pragma once
#define pDrawInterfaceNumBer ((double(__stdcall*)(float X, float Y, int num, float size)) 0x854FE0)
enum iInterface
{
iNewCharacter = 0x7A48,
iNewInventory = 0x7A49,
iNewWinpush = 0x7A4A,
iNewFastMenu = 0x7A4B,
iNewSkillBox = 0x7A50,
iNewParty = 0x910,
};
void InitInter3();
static void DrawCoord();
Inter3.cpp
#include "stdafx.h"
#include "Inter3.h"
#include "Defines.h"
#include "TMemory.h"
#include "User.h"
#include "Offset.h"
#include "Import.h"
__declspec(naked) void AGPosition()
{
static float AGPositionW = 13.0f;
static float AGPositionH = 39.0f;
static float AGPositionX = 552.0f;
static float AGPositionY = 435.0f;
static DWORD AGPosition_buff = 0x008102AD;
_asm
{
FLD DWORD PTR DS:[AGPositionW]
FSTP DWORD PTR SS:[EBP-0x18]
FLD DWORD PTR DS:[AGPositionH]
FSTP DWORD PTR SS:[EBP-0x14]
FLD DWORD PTR DS:[AGPositionX]
FSTP DWORD PTR SS:[EBP-0x10]
FLD DWORD PTR DS:[AGPositionY]
FSTP DWORD PTR SS:[EBP-0x0C]
jmp [AGPosition_buff]
}
}
__declspec(naked) void SDPosition()
{
static float SDPositionW = 14.0f;
static float SDPositionH = 39.0f;
static float SDPositionX = 73.0f;
static float SDPositionY = 435.0f;
static DWORD SDPosition_buff = 0x0081057D;
_asm
{
FLD DWORD PTR DS:[SDPositionW]
FSTP DWORD PTR SS:[EBP-0x20]
FLD DWORD PTR DS:[SDPositionH]
FSTP DWORD PTR SS:[EBP-0x1C]
FLD DWORD PTR DS:[SDPositionX]
FSTP DWORD PTR SS:[EBP-0x10]
FLD DWORD PTR DS:[SDPositionY]
FSTP DWORD PTR SS:[EBP-0x0C]
jmp [SDPosition_buff]
}
}
__declspec(naked) void MANAPosition()
{
static float MANAPositionW = 52.0f;
static float MANAPositionX = 489.0f;
static float MANAPositionH = 48.0f;
static float MANAPositionY = 429.0f;
static DWORD MANAPosition_buff = 0x0080FFD0;
_asm
{
FLD DWORD PTR DS:[MANAPositionW]
FSTP DWORD PTR SS:[EBP-0x20]
FLD DWORD PTR DS:[MANAPositionX]
FSTP DWORD PTR SS:[EBP-0x0C]
FLD DWORD PTR DS:[MANAPositionH]
FSTP DWORD PTR SS:[EBP-0x1C]
FLD DWORD PTR DS:[MANAPositionY]
FSTP DWORD PTR SS:[EBP-0x8]
jmp [MANAPosition_buff]
}
}
__declspec(naked) void HPPosition()
{
static float HPPositionW = 52.0f;
static float HPPositionX = 98.0f;
static float HPPositionH = 48.0f;
static float HPPositionY = 429.0f;
static DWORD HPPosition_buff = 0x0080FD7C;
_asm
{
FLD DWORD PTR DS:[HPPositionW]
FSTP DWORD PTR SS:[EBP-0x20]
FLD DWORD PTR DS:[HPPositionX]
FSTP DWORD PTR SS:[EBP-0x0C]
FLD DWORD PTR DS:[HPPositionH]
FSTP DWORD PTR SS:[EBP-0x1C]
FLD DWORD PTR DS:[HPPositionY]
FSTP DWORD PTR SS:[EBP-0x8]
jmp [HPPosition_buff]
}
}
__declspec(naked) void UsingSkillPosition()
{
static float UsingSkillPositionX = 311.0f;
static float UsingSkillPositionY = 448.0f;
static float UsingSkillPositionW = 20.0f;
static float UsingSkillPositionH = 28.0f;
static DWORD UsingSkillPosition_buff = 0x00813900;
_asm
{
FLD DWORD PTR DS:[UsingSkillPositionX]
FSTP DWORD PTR SS:[EBP-0x8]
FLD DWORD PTR DS:[UsingSkillPositionY]
FSTP DWORD PTR SS:[EBP-0x4]
FLD DWORD PTR DS:[UsingSkillPositionW]
FSTP DWORD PTR SS:[EBP-0x18]
FLD DWORD PTR DS:[UsingSkillPositionH]
FSTP DWORD PTR SS:[EBP-0x14]
jmp [UsingSkillPosition_buff]
}
}
__declspec(naked) void SkillClickPosition()
{
static float SkillClickPositionX = 310.0f;
static float SkillClickPositionY = 431.0f;
static float SkillClickPositionW = 32.0f;
static float SkillClickPositionH = 38.0f;
static DWORD SkillClickPosition_buff = 0x00812734;
_asm
{
FLD DWORD PTR DS:[SkillClickPositionX]
FSTP DWORD PTR SS:[EBP-0x8]
FLD DWORD PTR DS:[SkillClickPositionY]
FSTP DWORD PTR SS:[EBP-0x4]
FLD DWORD PTR DS:[SkillClickPositionW]
FSTP DWORD PTR SS:[EBP-0x20]
FLD DWORD PTR DS:[SkillClickPositionH]
FSTP DWORD PTR SS:[EBP-0x1C]
jmp [SkillClickPosition_buff]
}
}
__declspec(naked) void SkillBarDrawPosition()
{
static float SkillBarDrawPositionX = 222.0f;
static float SkillBarDrawPositionY = 480.0f;
static float SkillBarDrawPositionW = 160.0f;
static float SkillBarDrawPositionH = 38.0f;
static DWORD SkillBarDrawPosition_buff = 0x00812968;
_asm
{
FLD DWORD PTR DS:[SkillBarDrawPositionX]
FSTP DWORD PTR SS:[EBP-0x8]
FLD DWORD PTR DS:[SkillBarDrawPositionY]
FSTP DWORD PTR SS:[EBP-0x4]
FLD DWORD PTR DS:[SkillBarDrawPositionW]
FSTP DWORD PTR SS:[EBP-0x20]
FLD DWORD PTR DS:[SkillBarDrawPositionH]
FSTP DWORD PTR SS:[EBP-0x1C]
jmp [SkillBarDrawPosition_buff]
}
}
__declspec(naked) void SkillSwitchDraw()
{
static float SkillSwitchDrawX = 385.0f;
static float SkillSwitchDrawY = 380.0f;
static float SkillSwitchDrawW = 32.0f;
static float SkillSwitchDrawH = 38.0f;
static float SkillSwitchDrawMW = 385.0f;
static DWORD SkillSwitchDraw_buff = 0x008139CA;
_asm
{
FLD DWORD PTR DS:[SkillSwitchDrawX]
FSTP DWORD PTR SS:[EBP-0x8]
FLD DWORD PTR DS:[SkillSwitchDrawY]
FSTP DWORD PTR SS:[EBP-0x4]
FLD DWORD PTR DS:[SkillSwitchDrawW]
FSTP DWORD PTR SS:[EBP-0x18]
FLD DWORD PTR DS:[SkillSwitchDrawH]
FSTP DWORD PTR SS:[EBP-0x14]
FLD DWORD PTR DS:[SkillSwitchDrawMW]
FSTP DWORD PTR SS:[EBP-0x24]
jmp [SkillSwitchDraw_buff]
}
}
__declspec(naked) void SkillSwitchClick()
{
static float SkillSwitchDrawX = 385.0f;
static float SkillSwitchDrawY = 380.0f;
static float SkillSwitchDrawW = 32.0f;
static float SkillSwitchDrawH = 38.0f;
static float SkillSwitchDrawMW = 385.0f;
static DWORD SkillSwitchClick_buff = 0x00812D69;
_asm
{
FLD DWORD PTR DS:[SkillSwitchDrawX]
FSTP DWORD PTR SS:[EBP-0x8]
FLD DWORD PTR DS:[SkillSwitchDrawY]
FSTP DWORD PTR SS:[EBP-0x4]
FLD DWORD PTR DS:[SkillSwitchDrawW]
FSTP DWORD PTR SS:[EBP-0x20]
FLD DWORD PTR DS:[SkillSwitchDrawH]
FSTP DWORD PTR SS:[EBP-0x1C]
FLD DWORD PTR DS:[SkillSwitchDrawMW]
FSTP DWORD PTR SS:[EBP-0x14]
jmp [SkillSwitchClick_buff]
}
}
__declspec(naked) void QPosition1()
{
static float BarNumberY = 445.0f;
static DWORD QPosition1_buff = 0x00895A4F;
_asm
{
FLD DWORD PTR DS:[BarNumberY]
FSTP DWORD PTR SS:[ESP]
jmp [QPosition1_buff]
}
}
__declspec(naked) void QPosition2()
{
static float QPosition2X = 227.0f;
static DWORD QPosition2_buff = 0x00895A59;
_asm
{
FLD DWORD PTR DS:[QPosition2X]
FSTP DWORD PTR SS:[ESP]
jmp [QPosition2_buff]
}
}
__declspec(naked) void QPosition3()
{
static float BarPotionY = 453.0f;
static DWORD QPosition3_buff = 0x00895A63;
_asm
{
FLD DWORD PTR DS:[BarPotionY]
FSTP DWORD PTR SS:[ESP]
jmp [QPosition3_buff]
}
}
__declspec(naked) void QPosition4()
{
static float QPosition4X = 210.0f;
static DWORD QPosition4_buff = 0x00895A6D;
_asm
{
FLD DWORD PTR DS:[QPosition4X]
FSTP DWORD PTR SS:[ESP]
jmp [QPosition4_buff]
}
}
__declspec(naked) void WPosition1()
{
static float BarNumberY = 445.0f;
static DWORD WPosition1_buff = 0x00895AC4;
_asm
{
FLD DWORD PTR DS:[BarNumberY]
FSTP DWORD PTR SS:[ESP]
jmp [WPosition1_buff]
}
}
__declspec(naked) void WPosition2()
{
static float WPosition2X = 257.0f;
static DWORD WPosition2_buff = 0x00895ACE;
_asm
{
FLD DWORD PTR DS:[WPosition2X]
FSTP DWORD PTR SS:[ESP]
jmp [WPosition2_buff]
}
}
__declspec(naked) void WPosition3()
{
static float BarPotionY = 453.0f;
static DWORD WPosition3_buff = 0x00895AD8;
_asm
{
FLD DWORD PTR DS:[BarPotionY]
FSTP DWORD PTR SS:[ESP]
jmp [WPosition3_buff]
}
}
__declspec(naked) void WPosition4()
{
static float WPosition4X = 240.0f;
static DWORD WPosition4_buff = 0x00895AE2;
_asm
{
FLD DWORD PTR DS:[WPosition4X]
FSTP DWORD PTR SS:[ESP]
jmp [WPosition4_buff]
}
}
__declspec(naked) void EPosition1()
{
static float BarNumberY = 445.0f;
static DWORD EPosition1_buff = 0x00895B39;
_asm
{
FLD DWORD PTR DS:[BarNumberY]
FSTP DWORD PTR SS:[ESP]
jmp [EPosition1_buff]
}
}
__declspec(naked) void EPosition2()
{
static float EPosition2X = 287.0f;
static DWORD EPosition2_buff = 0x00895B43;
_asm
{
FLD DWORD PTR DS:[EPosition2X]
FSTP DWORD PTR SS:[ESP]
jmp [EPosition2_buff]
}
}
__declspec(naked) void EPosition3()
{
static float BarPotionY = 453.0f;
static DWORD EPosition3_buff = 0x00895B4D;
_asm
{
FLD DWORD PTR DS:[BarPotionY]
FSTP DWORD PTR SS:[ESP]
jmp [EPosition3_buff]
}
}
__declspec(naked) void EPosition4()
{
static float EPosition4X = 270.0f;
static DWORD EPosition4_buff = 0x00895B57;
_asm
{
FLD DWORD PTR DS:[EPosition4X]
FSTP DWORD PTR SS:[ESP]
jmp [EPosition4_buff]
}
}
__declspec(naked) void NopRShortKey()
{
static DWORD RButtonAddress = 0x00895C0C;
_asm{jmp RButtonAddress}
}
__declspec(naked) void HPNumberPosition()
{
DrawCoord();
static float HPNumberPositionX = 45.0f;
static DWORD HPNumberPosition_buff = 0x0080FF1E;
_asm
{
FADD DWORD PTR DS:[HPNumberPositionX]
FSTP DWORD PTR SS:[EBP-0x19C]
FLD DWORD PTR SS:[EBP-0x19C]
jmp [HPNumberPosition_buff]
}
}
__declspec(naked) void MasterButton()
{
static DWORD MasterButtonAddress1 = 0x0077ED20;
_asm
{
jmp [MasterButtonAddress1]
}
}
__declspec(naked) void HelperAll()
{
static DWORD HelperStopAddress1 = 0x007D28B4;
_asm
{
jmp [HelperStopAddress1]
}
}
//EXP
__declspec(naked) void EXP1()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXP1_buff = 0x00811408;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD DWORD PTR SS:[EBP-0x1B0]
FMUL QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXP1_buff]
}
}
__declspec(naked) void EXP2()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXP2_buff = 0x00811552;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD DWORD PTR SS:[EBP-0x1C4]
FMUL QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXP2_buff]
}
}
__declspec(naked) void EXP3()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXP3_buff = 0x00811719;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD DWORD PTR SS:[EBP-0x1B0]
FMUL QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXP3_buff]
}
}
__declspec(naked) void EXP4()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXP4_buff = 0x0081181F;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
FLD QWORD PTR SS:[EBP-0x20]
jmp [EXP4_buff]
}
}
//EXP MASTER
__declspec(naked) void EXPMASTER1()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXPMASTER1_buff = 0x00810B6E;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD QWORD PTR SS:[EBP-0x58]
FMUL QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXPMASTER1_buff]
}
}
__declspec(naked) void EXPMASTER2()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXPMASTER2_buff = 0x00810CB5;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD QWORD PTR SS:[EBP-0x88]
FMUL QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXPMASTER2_buff]
}
}
__declspec(naked) void EXPMASTER3()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXPMASTER3_buff = 0x00810E79;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD QWORD PTR SS:[EBP-0x58]
FMUL QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXPMASTER3_buff]
}
}
__declspec(naked) void EXPMASTER4()
{
static double Ancho = 221.0f;
static double Alto = 435.9f;
static double AnchoTex = 198.0f;
static double AltoTex = 4.0f;
static DWORD EXPMASTER4_buff = 0x00810F73;
_asm
{
FLD QWORD PTR DS:[Ancho]
FSTP QWORD PTR SS:[EBP-0x10]
FLD QWORD PTR DS:[Alto]
FSTP QWORD PTR SS:[EBP-0x8]
FLD QWORD PTR DS:[AnchoTex]
FSTP QWORD PTR SS:[EBP-0x28]
FLD QWORD PTR DS:[AltoTex]
FSTP QWORD PTR SS:[EBP-0x20]
jmp [EXPMASTER4_buff]
}
}
void DrawCoord()
{
lpCharObj lpObj = (lpCharObj)oUserObjectStruct;
if (*(DWORD*)MAIN_SCREEN_STATE == 5)
{
glColor3f(1.0f, 1.0f, 1.0f);
pDrawInterfaceNumBer(23, 460, gObjUser.lpViewPlayer->MapPosX, 1);
pDrawInterfaceNumBer(46, 460, gObjUser.lpViewPlayer->MapPosY, 1);
}
}
void InitInter3()
{
SetRange((LPVOID)0x0080F270, 0x4D1, ASM::NOP);//-> Interface -> Draw Button
//-
SetByte((PVOID)(0x008137AF + 3), 0);
SetByte((PVOID)(0x008119A7), 0xEB);
SetRange((LPVOID)0x00811AC0, 0xAC, ASM::NOP);
//-
SetRange((LPVOID)0x0081028C, 0x24, ASM::NOP);
SetOp((LPVOID)0x0081028C, (LPVOID)AGPosition, ASM::JMP);
//-
SetRange((LPVOID)0x0081055C, 0x24, ASM::NOP);
SetOp((LPVOID)0x0081055C, (LPVOID)SDPosition, ASM::JMP);
//-
SetRange((LPVOID)0x0080FFAF, 0x24, ASM::NOP);
SetOp((LPVOID)0x0080FFAF, (LPVOID)MANAPosition, ASM::JMP);
//-
SetRange((LPVOID)0x0080FD5B, 0x24, ASM::NOP);
SetOp((LPVOID)0x0080FD5B, (LPVOID)HPPosition, ASM::JMP);
//-
SetRange((LPVOID)0x008138DF, 0x24, ASM::NOP);
SetOp((LPVOID)0x008138DF, (LPVOID)UsingSkillPosition, ASM::JMP);
//-
SetRange((LPVOID)0x00812713, 0x24, ASM::NOP);
SetOp((LPVOID)0x00812713, (LPVOID)SkillClickPosition, ASM::JMP);
//-
SetRange((LPVOID)0x00812947, 0x24, ASM::NOP);
SetOp((LPVOID)0x00812947, (LPVOID)SkillBarDrawPosition, ASM::JMP);
//-
SetRange((LPVOID)0x008139A0, 0x2D, ASM::NOP);
SetOp((LPVOID)0x008139A0, (LPVOID)SkillSwitchDraw, ASM::JMP);
//-
SetRange((LPVOID)0x00812D3F, 0x2D, ASM::NOP);
SetOp((LPVOID)0x00812D3F, (LPVOID)SkillSwitchClick, ASM::JMP);
//-
SetRange((LPVOID)0x0080FF12, 0x12, ASM::NOP);
SetOp((LPVOID)0x0080FF12, (LPVOID)HPNumberPosition, ASM::JMP);
//-
SetRange((LPVOID)0x0077EC97, 0x88, ASM::NOP);
SetOp((LPVOID)0x0077EC97, (LPVOID)MasterButton, ASM::JMP);
//-
//->Q
SetRange((LPVOID)0x00895A49, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895A49, (LPVOID)QPosition1, ASM::JMP);
//-
SetRange((LPVOID)0x00895A53, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895A53, (LPVOID)QPosition2, ASM::JMP);
//-
SetRange((LPVOID)0x00895A5D, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895A5D, (LPVOID)QPosition3, ASM::JMP);
//-
SetRange((LPVOID)0x00895A67, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895A67, (LPVOID)QPosition4, ASM::JMP);
//->W
SetRange((LPVOID)0x00895ABE, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895ABE, (LPVOID)WPosition1, ASM::JMP);
//-
SetRange((LPVOID)0x00895AC8, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895AC8, (LPVOID)WPosition2, ASM::JMP);
//-
SetRange((LPVOID)0x00895AD2, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895AD2, (LPVOID)WPosition3, ASM::JMP);
//-
SetRange((LPVOID)0x00895ADC, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895ADC, (LPVOID)WPosition4, ASM::JMP);
//-
//->E
SetRange((LPVOID)0x00895B33, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895B33, (LPVOID)EPosition1, ASM::JMP);
//-
SetRange((LPVOID)0x00895B3D, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895B3D, (LPVOID)EPosition2, ASM::JMP);
//-
SetRange((LPVOID)0x00895B47, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895B47, (LPVOID)EPosition3, ASM::JMP);
//-
SetRange((LPVOID)0x00895B51, 0x9, ASM::NOP);
SetOp((LPVOID)0x00895B51, (LPVOID)EPosition4, ASM::JMP);
//-
//->R
SetRange((LPVOID)0x00895B8D, 0x7E, ASM::NOP);
SetOp((LPVOID)0x00895B8D, (LPVOID)NopRShortKey, ASM::JMP);
/*SetRange((LPVOID)0x007D25C3, 0x2F0, ASM::NOP);
SetOp((LPVOID)0x007D25C3, (LPVOID)HelperAll, ASM::JMP);*/
//EXP
SetRange((LPVOID)0x008113DE, 5, ASM::NOP);
SetOp((LPVOID)0x008113DE, (LPVOID)EXP1, ASM::JMP);
SetRange((LPVOID)0x00811528, 5, ASM::NOP);
SetOp((LPVOID)0x00811528, (LPVOID)EXP2, ASM::JMP);
SetRange((LPVOID)0x008116EF, 5, ASM::NOP);
SetOp((LPVOID)0x008116EF, (LPVOID)EXP3, ASM::JMP);
SetRange((LPVOID)0x008117F8, 5, ASM::NOP);
SetOp((LPVOID)0x008117F8, (LPVOID)EXP4, ASM::JMP);
//EXPMASTER
SetRange((LPVOID)0x00810B47, 5, ASM::NOP);
SetOp((LPVOID)0x00810B47, (LPVOID)EXPMASTER1, ASM::JMP);
SetRange((LPVOID)0x00810C8B, 5, ASM::NOP);
SetOp((LPVOID)0x00810C8B, (LPVOID)EXPMASTER2, ASM::JMP);
SetRange((LPVOID)0x00810E52, 5, ASM::NOP);
SetOp((LPVOID)0x00810E52, (LPVOID)EXPMASTER3, ASM::JMP);
SetRange((LPVOID)0x00810F4F, 5, ASM::NOP);
SetOp((LPVOID)0x00810F4F, (LPVOID)EXPMASTER4, ASM::JMP);
//Posicion Numero Exp
SetDouble((PVOID)(0x00D461C0), 425);
SetDouble((PVOID)(0x00D461B8), 431);
}
Import.h
//CashShop
#define sub_944E50_Addr ((char(*)()) 0x944E50)
#define sub_93F370_Addr ((void*(*)()) 0x93F370)
#define sub_93FCA0_Addr ((bool(__thiscall*)(int a1)) 0x93FCA0)
#define sub_93F600_Addr ((char(__thiscall*)(char* a1)) 0x93F600)
#define sub_93FD10_Addr ((bool(__thiscall*)(int a1)) 0x93FD10)
#define sub_93F950_Addr ((char(__thiscall*)(char* a1)) 0x93F950)
#define sub_941030_Addr ((int(__thiscall*)(BYTE* a1)) 0x941030)
#define sub_941000_Addr ((int(__thiscall*)(BYTE* a1)) 0x941000)
#define sub_944FE0_Addr ((void(__thiscall*)(BYTE *This, int a2, BYTE *a3)) 0x944FE0)
#define sub_9406C0_Addr ((char(__thiscall*)(BYTE* a1)) 0x9406C0)
#define sub_9406A0_Addr ((BYTE*(__thiscall*)(BYTE* a1, char a2)) 0x9406A0)
#define sub_8611E0_Addr ((int(__thiscall*)(DWORD* a1)) 0x8611E0)
#define sub_815130_Addr ((int(__thiscall*)(char *This, int a2, char a3)) 0x815130)
#define sub_861900_Addr ((int(__thiscall*)(int This)) 0x861900)
Protocol.h
bool CashShopSwitchState();
Protocol.cpp
Debe incluir Import.h
//Cashshop Fix
struct PMSG_CASH_SHOP_OPEN_RECV
{
#pragma pack(1)
PSBMSG_HEAD header; // C1:D2:02
BYTE OpenType;
#pragma pack()
};
void OpenCashShopSend(BYTE type)
{
PMSG_CASH_SHOP_OPEN_RECV pMsg;
pMsg.OpenType = type;
pMsg.header.set(0xD2,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,sizeof(pMsg));
}
bool CashShopSwitchState()
{
sub_861900_Addr((int)pWindowThis());
if ( !sub_944E50_Addr() )
return 0;
void* v48 = sub_93F370_Addr();
if ( sub_93FCA0_Addr((int)v48) == 1 )
{
if ( !sub_93F600_Addr((CHAR *)sub_93F370_Addr()) )
return 0;
}
if ( sub_93FD10_Addr((int)sub_93F370_Addr()) == 1 )
{
if ( sub_93F950_Addr((CHAR *)sub_93F370_Addr()) == 1 )
{
BYTE* v53 = (BYTE *)sub_941030_Addr((BYTE*)sub_93F370_Addr());
int v55 = sub_941000_Addr((BYTE*)sub_93F370_Addr());
BYTE* v57 = (BYTE *)sub_861900_Addr((int)pWindowThis());
sub_944FE0_Addr(v57, v55, v53);
}
}
if ( pCheckWindow(pWindowThis(), 65) )
{
OpenCashShopSend(1);
pCloseWindow(pWindowThis(), 65);
}
else
{
if ( !sub_9406C0_Addr((BYTE*)sub_93F370_Addr()) )
{
OpenCashShopSend(0);
sub_9406A0_Addr((BYTE*)sub_93F370_Addr(), 1);
char* v62 = (char *)sub_8611E0_Addr((DWORD*)pWindowThis());
sub_815130_Addr(v62, 0, 1);
}
}
}
Interface.cpp
En void Interface::Load() agregan
this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eShop, 0x908, 25, 25, 440, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
this->BindObject(eGuild, 0x904, 54, 20, 581, 454);
//=================
En void Interface::LoadImages() agregan
pLoadImage("Interface\\Custom\\MenuS3_left.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Interface\\Custom\\MenuS3_middle.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Interface\\Custom\\MenuS3_right.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Interface\\Custom\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Interface\\Custom\\MenuS3_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Interface\\Custom\\MenuS3_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Interface\\Custom\\MenuS3_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Interface\\Custom\\MenuS3_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Interface\\Custom\\MenuS3_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Interface\\Custom\\MenuS3_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Interface\\Custom\\MenuS3_friend.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Interface\\Custom\\MenuS3_fastmenu.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Interface\\Custom\\MenuS3_CashShop.jpg", 0x908, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Interface\\Custom\\MenuS3_Guild.jpg", 0x904, GL_LINEAR, GL_CLAMP, 1, 0);
//=================
En Work() agregar
gInterface.DrawMenuButton();
//=================
void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 420, "Party");
}
if (this->CheckWindow(Party))
{
gInterface.DrawButton(eParty, 348, 449, 0.0, 0.0);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 420, "Character");
}
if (this->CheckWindow(Character))
{
gInterface.DrawButton(eCharacter, 378.5f, 449, 0.0, 0.0);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 420, "Inventory");
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawButton(eInventory, 409, 449, 0.0, 0.0);
}
if (IsWorkZone(eShop))
{
this->DrawToolTip(430, 420, "CashShop");
}
if (this->CheckWindow(CashShop))
{
gInterface.DrawButton(eShop, 439.5f, 449, 0.0, 0.0);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, "Friends");
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawButton(eFriend, 581, 432, 0.0, 0.0);
}
if (IsWorkZone(eGuild))
{
this->DrawToolTip(580, 444, "Guild");
}
if (this->CheckWindow(Guild))
{
gInterface.DrawButton(eGuild, 581, 454, 0.0, 0.0);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, "System");
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawButton(eFastMenu, 5, 432, 0.0, 0.0);
}
}
//=================
void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}
if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
else if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eShop))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eShop].OnClick = true;
return;
}
this->Data[eShop].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eShop].EventTick = GetTickCount();
CashShopSwitchState();
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eGuild))
{
DWORD Delay = (CurrentTick - this->Data[eGuild].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eGuild].OnClick = true;
return;
}
this->Data[eGuild].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eGuild].EventTick = GetTickCount();
if (this->CheckWindow(Guild)) {
this->CloseWindow(Guild);
}
else {
this->OpenWindow(Guild);
}
}
}
Interface.h
En enum ObjectID agregan
eSkillBox,
eDragonLeft,
eDragonRight,
eCharacter,
eInventory,
eParty,
eFriend,
eFastMenu,
eShop,
eGuild,
//=================
En class Interface en lo public agregan
void EventMenuButton(DWORD Event);
void DrawMenuButton();
Controller.cpp
En LRESULT Controller::Mouse agregan
gInterface.EventMenuButton(wParam);
Main.cpp
Archivos de la interface
Password
tuservermu.com.ve