- Joined
- Jun 22, 2012
- Messages
- 124
- Reaction score
- 19
I adapted it to work in 1.02C main.
Feel free to use.
.h
.cppCode:#ifndef __CUSTOM_H__ #define __CUSTOM_H__ const int ITEM_ID = 0x246; #define GET_ITEM(x, y) (x * 512 + y) + ITEM_ID class cCustom { public: void Init(); static __declspec() void SetItensColorEffect(); static __declspec() void AllowItemEffect(); //Set Effects const int HDK_ALLOW_ITEM_EFFECT = 0x0052F106; const int HDK_SET_COLOR_EFFECT = 0x0052F162; const int HDK_ITEM_EFFECT_ALLOW = 0x0052F127; const int HDK_ITEM_EFFECT_NOT_ALLOW = 0x0052F76D; const int HDK_NEXT_ITEM_COLOR = 0x0052F191; private: const BYTE CustomEffects = 1; }; extern cCustom gCustom; #endif
Code:#include "StdAfx.h" #include "Custom.h" cCustom gCustom; void cCustom::Init() { if (this->CustomEffects) { SetOp(reinterpret_cast<LPVOID>(gCustom.HDK_ALLOW_ITEM_EFFECT), reinterpret_cast<LPVOID>(this->AllowItemEffect), ASM::JMP); SetNop(0x0052F10B, 28); SetOp(reinterpret_cast<LPVOID>(gCustom.HDK_SET_COLOR_EFFECT), reinterpret_cast<LPVOID>(this->SetItensColorEffect), ASM::JMP); SetNop(0x0052F167, 42); } } __declspec(naked) void cCustom::AllowItemEffect() { DWORD pItemType; _asm MOV pItemType, EAX; switch (pItemType) { //Dark Phoenix case GET_ITEM(11, 17): { __asm { MOV ESI, gCustom.HDK_ITEM_EFFECT_ALLOW; JMP ESI; } break; } //Great Dragon case GET_ITEM(11, 21): { __asm { MOV ESI, gCustom.HDK_ITEM_EFFECT_ALLOW; JMP ESI; } break; } } _asm { CMP EAX, 0x1863; JL NOT_ALLOW; CMP EAX, 0x1867; JG NOT_ALLOW; JMP ALLOW; NOT_ALLOW: MOV ESI, gCustom.HDK_ITEM_EFFECT_NOT_ALLOW; JMP ESI; ALLOW: MOV ESI, gCustom.HDK_ITEM_EFFECT_ALLOW; JMP ESI; } } __declspec(naked) void cCustom::SetItensColorEffect() { DWORD pItemType; _asm MOV pItemType, ECX; switch (pItemType) { //Dragon Knight Original case GET_ITEM(11, 29): { __asm { MOV EDX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [EDX + 0x128], 0x3F266666; MOV EAX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [EAX + 0x12C], 0x3E99999A; MOV ECX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [ECX + 0x130], 0x3DCCCCCD; } break; } //Dark Phoenix case GET_ITEM(11, 17): { _asm { MOV EDX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [EDX + 0x128], 0x0; MOV EAX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [EAX + 0x12C], 0x3F800000; MOV ECX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [ECX + 0x130], 0x3F800000; } break; } //Great Dragon case GET_ITEM(11, 21): { _asm { MOV EDX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [EDX + 0x128], 0x3F800000; MOV EAX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [EAX + 0x12C], 0x0; MOV ECX, DWORD PTR SS : [EBP + 0xC]; MOV DWORD PTR DS : [ECX + 0x130], 0x0; } break; } } __asm { MOV ESI, gCustom.HDK_NEXT_ITEM_COLOR; JMP ESI; } }
How can i define setop funtion .. i cant find it