

NPC.cpp
Code: [Select]
#include "stdafx.h"
#include "Defines.h"
#include "TMemory.h"
#include "NPC.h"
NPC gNPC;
void NPC::Load() {
SetRange((LPVOID)0x005891C8, 5, ASM::NOP);
SetOp((LPVOID)0x005891C8, (LPVOID) this->ElfSoldier, ASM::JMP);
}
__declspec(naked) void NPC::ElfSoldier() {
_asm {
MOV EAX, 0x1D0C//0x1CE9 //ALI
MOV ECX, [EBP + 0x8]
MOV WORD PTR DS:[ECX + 0x218], AX
MOV EAX, 0x1305//0x12FE //ELMO
MOV ECX, [EBP + 0x8]
MOV WORD PTR DS:[ECX + 0x11C], AX
MOV EAX, 0x1505//0x14FE //ARMATURA
MOV ECX, [EBP + 0x8]
MOV WORD PTR DS:[ECX + 0x140], AX
MOV EAX, 0x1705//0x16FE //PANTALONI
MOV ECX, [EBP + 0x8]
MOV WORD PTR DS:[ECX + 0x164], AX
MOV EAX, 0x1905//0x18FE //GUANTI
MOV ECX, [EBP + 0x8]
MOV WORD PTR DS:[ECX + 0x188], AX
MOV EAX, 0x1B05//0x1AFE //STIVALI
MOV ECX, [EBP + 0x8]
MOV WORD PTR DS:[ECX + 0x1AC], AX
MOV EAX, DWORD PTR SS : [EBP + 0x8]
MOV BYTE PTR DS : [EAX + 0x11E] , 15
MOV EAX, DWORD PTR SS : [EBP + 0x8]
MOV BYTE PTR DS : [EAX + 0x142] , 15
MOV EAX, DWORD PTR SS : [EBP + 0x8]
MOV BYTE PTR DS : [EAX + 0x166] , 15
MOV EAX, DWORD PTR SS : [EBP + 0x8]
MOV BYTE PTR DS : [EAX + 0x18A] , 15
MOV EAX, DWORD PTR SS : [EBP + 0x8]
MOV BYTE PTR DS : [EAX + 0x1AE] , 15
MOV ECX, 0x0058925C
JMP ECX
}
}
NPC.h
Code: [Select]
#pragma once
class NPC {
public:
void Load();
// ----
static void ElfSoldier();
// ----
}; extern NPC gNPC;
