jerrywu0128 发表于 2011-10-15 11:55

2个好用的修改器.....比版主的好用(因为是同个人写的)....支持1.1.........因为无Z版,有正版的试试联网修改

本帖最后由 jerrywu0128 于 2011-10-15 12:28 编辑

有些基于CE


Might & Magic Heroes VI Version 1.1.31785



- Minimum Resources;
- Unlimited Movement;
- Troop Minimum Size;
- Heron's Minimum XP;
- Some Useful Pointers;



下面是代码.........................如果版本修改,可自行自己修正修改器

{
===========================================
Game Title : Might&Magic Heroes VI
Game Version : 1.1.31785
Script Version: 1.0
CE Version : 6.1
Release date : 12-Oct-2011
Author : Recifense
Features:
- Minimum Resources
- Unlimited Movement
- Minimum Troop Size for player's moving Army (minimum value can be defined by user)
- Minimum XP for player's moving hero (minimum value can be defined by user)
===========================================
}


//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded

assert("Might & Magic Heroes VI.exe"+00047396,8b 75 c0 83 c6 04)
assert("Might & Magic Heroes VI.exe"+0124f1ca,f3 0f 11 41 0c)

//=========================================
alloc(MyCode,1024)
//=========================================
// Declaration section
label(_MonResources)
label(_MonR0)
label(_MonR1)
label(_MonR2)
label(_BackMR)
label(_ExitMR)
label(_MonMovement)
label(_MonM0)
label(_MonM1)
label(_MonM2)
label(_MonM3)
label(_BackMM)
label(_ExitMM)
label(pRes)
label(pUnit)
label(pHero)
label(iEnableMR)
label(iEnableMM)
label(iEnableMS)
label(iEnableMX)
label(iMinSize)
label(iMinXP)
label(fSaveSS)

//=========================================
// Registering Symbols
registersymbol(MyCode)
registersymbol(pUnit)
registersymbol(pRes)
registersymbol(pHero)
registersymbol(iEnableMR)
registersymbol(iEnableMM)
registersymbol(iEnableMS)
registersymbol(iEnableMX)
registersymbol(iMinSize)
registersymbol(iMinXP)

//=========================================
MyCode:
//=========================================
_MonResources:
mov esi, // Original code
lea edi, // Adjust pointer
mov ,edi // Save it for further use

cmp dword ptr ,0
je _ExitMR // Jump if feature is disabled

mov ecx,#50000
mov edi,
xor edi,
cmp ecx,edi // Gold
jle _MonR0

mov edi,ecx
xor edi,
mov ,edi

_MonR0:
mov ecx,#5000

mov edi,
xor edi,
cmp ecx,edi // Wood
jle _MonR1

mov edi,ecx
xor edi,
mov ,edi

_MonR1:
mov edi,
xor edi,
cmp ecx,edi // Ore
jle _MonR2

mov edi,ecx
xor edi,
mov ,edi

_MonR2:
mov edi,
xor edi,
cmp ecx,edi // Blood Crystal
jle _ExitMR

mov edi,ecx
xor edi,
mov ,edi

_ExitMR:
mov esi, // Original code
add esi,04 // Original code
jmp _BackMR // Back to main code

//=========================================
_MonMovement:
push eax
push ebx
push edi
push esi

mov eax,
mov ,eax // Save ptr for debugging

mov edx,
cmp edx,
jne _ExitMM

mov ,eax

mov edx, // Get pArmy
test edx,edx
jz _MonM2

mov ebx, // Get # troops
test ebx,ebx
jz _MonM2

cmp dword ptr ,0 // Troop Size
je _MonM2 // Jump if feature is disabled

mov edx, // get pTroopList
test edx,edx
jz _MonM2

mov eax,

_MonM0:
dec ebx

mov esi, // Get Troop
mov edi,
xor edi,
cmp eax,edi
jle _MonM1

mov edi,eax
xor edi,
mov ,edi

_MonM1:
test ebx,ebx
jnz _MonM0

_MonM2:
cmp dword ptr ,0
je _MonM3 // Jump if feature is disabled

mov eax,
mov esi, // Get pXP
test esi,esi
jz _MonM3

mov eax,
mov edi,
xor edi,
cmp eax,edi
jle _MonM3

mov edi,eax
xor edi,
mov ,edi

_MonM3:
cmp dword ptr ,0
je _ExitMM // Jump if feature is disabled

movss ,xmm0

mov eax,
cmp eax,
jge _ExitMM

movss xmm0, // Get current MP

_ExitMM:
pop esi
pop edi
pop ebx
pop eax

movss ,xmm0 // Original code
jmp _BackMM // Back to main code

//=========================================
db '=====================>'
db 'CE6.1 Script by Recifense 101211'
//=========================================
// Variables
iEnableMR:
dd 1
iEnableMM:
dd 1
iEnableMS:
dd 1
iEnableMX:
dd 1
pUnit:
dd 0
pRes:
dd 0
pHero:
dd 0
iMinSize:
dd #1000
iMinXP:
dd #10000
fSaveSS:
dd 00

//=========================================
// Hacking Points
"Might & Magic Heroes VI.exe"+00047396:
jmp _MonResources
nop
_BackMR:

"Might & Magic Heroes VI.exe"+0124f1ca:
jmp _MonMovement
_BackMM:

//=========================================
// Script for Restoring Original Codes

"Might & Magic Heroes VI.exe"+00047396:
// mov esi,
// add esi,04
db 8b 75 c0 83 c6 04

"Might & Magic Heroes VI.exe"+0124f1ca:
// movss ,xmm0
db f3 0f 11 41 0c

//=========================================
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(pUnit)
unregistersymbol(pRes)
unregistersymbol(pHero)
unregistersymbol(iEnableMR)
unregistersymbol(iEnableMM)
unregistersymbol(iEnableMS)
unregistersymbol(iEnableMX)
unregistersymbol(iMinSize)
unregistersymbol(iMinXP)

//=========================================
dealloc(MyCode)
//============= Scripts End ===============

// ****************************************
// NOTES
// ****************************************
{
Heroes of Might & Magic VI:
V1.1.31785

struct HERO:
0000 = 01d22a90
000c = 01fd3164
0010 = pArmy
0120 = pPoints
0128 = pMovePoints
0134 = pXP
0140 = fBaseMightPower
0154 = fBaseMightDefense
0168 = fBaseMightMagic
017c = fBaseMightDefense
0190 = fBaseLeadership
01A4 = fBaseDestiny
0280 = fBaseMovePoints
0288 = fAdditionalMovePoints
05f0 = fTearsReputation
05f0 = fBloodReputation

struct ARMY:
0000 = i0
0004 = pTroopList
000c = i#Troops
001c = pHero

struct TROOPLIST:
0000 = pTroop#1
0004 = pTroop#2
0008 = pTroop#3
000c = pTroop#4
0010 = pTroop#5
0014 = pTroop#6
0018 = pTroop#7

struct TROOP:
0000 = 01d251e0
0024 = 01c43418
0028 = iTroopType (Encrypted)
002c = iTroopType (XOR)
0054 = iTroopSize (Encrypted)
0058 = iTroopSize (XOR)

struct ABILITY_POINTS:
0000 = 01d241bc
0018 = iPoints

struct MOVE_POINTS:
0000 = f1
000c = fcMP
0010 = pHero

struct XP:
000c = iXP (Encrypted)
0010 = iXP (XOR)
0014 = iLevel (Encrypted)
0018 = iLevel (XOR)

struct RESOURCES:
0000 = 01d2094c
0004 = 01fd3164
0028 = 01c43418
002c = iGold (Encrypted)
0030 = iGold (XOR)
0034 = iWood (Encrypted)
0038 = iWood (XOR)
003c = iOre (Encrypted)
0040 = iOre (XOR)
0044 = iCrystal (Encrypted)
0048 = iCrystal (XOR)
}




Code:


_MonResources:

sl = AOBScan("8b 75 c0 83 c6 04 8d 7d cc");

00447369 - 8B 0D 0433FD01 - mov ecx, :
0044736F - E8 7C690100 - call 0045DCF0
00447374 - 50 - push eax
00447375 - A1 5471FD01 - mov eax, :
0044737A - 8B 88 D0000000 - mov ecx,
00447380 - E8 3BBE1E01 - call 016331C0
00447385 - 8B C8 - mov ecx,eax
00447387 - E8 04531B01 - call 015FC690
0044738C - 89 45 C0 - mov ,eax
0044738F - C7 45 C8 1834C401 - mov ,01C43418 :
00447396 - 8B 75 C0 - mov esi, <--- HP
00447399 - 83 C6 04 - add esi,04
0044739C - 8D 7D CC - lea edi,
0044739F - B9 08000000 - mov ecx,00000008
004473A4 - F3 A5 - repe movsd
004473A6 - C7 45 FC 00000000 - mov ,00000000
004473AD - E8 EEE20C01 - call 015156A0
004473B2 - 89 45 BC - mov ,eax
004473B5 - 8B 4D BC - mov ecx,
004473B8 - 8B 11 - mov edx,
004473BA - 89 55 EC - mov ,edx
004473BD - 8B 45 EC - mov eax,
004473C0 - 83 E8 08 - sub eax,08
004473C3 - 50 - push eax
004473C4 - FF 15 A0A2B101 - call dword ptr
004473CA - C6 45 FC 01 - mov byte ptr ,01
004473CE - 8B 4D 08 - mov ecx,
004473D1 - 89 8D DCFEFFFF - mov ,ecx
004473D7 - 83 BD DCFEFFFF 03 - cmp dword ptr ,03
004473DE - 0F87 DE010000 - ja 004475C2
004473E4 - 8B 95 DCFEFFFF - mov edx,
004473EA - FF 24 95 FC754400 - jmp dword ptr
004473F1 - B8 01000000 - mov eax,00000001
004473F6 - 8D 4C C5 CCE8 - lea ecx,



Code:


_MonMovement:

sl = AOBScan("8b 4d e4 f3 0f 10 45 08 f3 0f 11 41 0c 0f b6");
+08

0164F192 - 8B 4D E4 - mov ecx,
0164F195 - 8B 49 10 - mov ecx,
0164F198 - E8 8351FCFF - call 01614320
0164F19D - 8B 88 4C1C0000 - mov ecx,
0164F1A3 - E8 C805F3FF - call 0157F770
0164F1A8 - 8B 4D E4 - mov ecx,
0164F1AB - E8 D0FDFFFF - call 0164EF80
0164F1B0 - 50 - push eax
0164F1B1 - 8B 15 5471FD01 - mov edx, :
0164F1B7 - 8B 8A D0000000 - mov ecx,
0164F1BD - E8 2E53FEFF - call 016344F0
0164F1C2 - 8B 4D E4 - mov ecx, <-- SL
0164F1C5 - F3 0F10 45 08 - movss xmm0,
0164F1CA - F3 0F11 41 0C - movss ,xmm0 <--- HP
0164F1CF - 0FB6 15 C935FD01 - movzx edx,byte ptr :
0164F1D6 - 85 D2 - test edx,edx
0164F1D8 - 74 02 - je 0164F1DC
0164F1DA - EB 7B - jmp 0164F257
0164F1DC - 0FB6 45 14 - movzx eax,byte ptr
0164F1E0 - 85 C0 - test eax,eax
0164F1E2 - 74 02 - je 0164F1E6
0164F1E4 - EB 71 - jmp 0164F257
0164F1E6 - 8B 4D E4 - mov ecx,
0164F1E9 - 8B 49 10 - mov ecx,
0164F1EC - E8 EF7BFCFF - call 01616DE0
0164F1F1 - 89 45 EC - mov ,eax
0164F1F4 - 8B 55 EC - mov edx,
0164F1F7 - 8A 42 10 - mov al,
0164F1FA - 88 45 EB - mov ,al
0164F1FD - 0FB6 75 EB - movzx esi,byte ptr
0164F201 - 6A 00 - push 00
0164F203 - 8B 0D 0433FD01 - mov ecx, :
0164F209 - E8 E2EAE0FE - call 0045DCF0
0164F20E - 3B F0 - cmp esi,eax
0164F210 - 75 45 - jne 0164F257


..........................................................修改器2分隔..........................

tested with v1.0.31758 and v1.1.31758


http://dl.dbank.com/c0ppxf4eb0


1. Add resources with CTRL+F1-F4
2. Add units with CTRL+F5-F7
3. Unlimited Movement Points
4. Add ability points
5. Add EXP with CTRL+F8-F9

passion220 发表于 2011-10-15 12:11

这是什么写的,看不懂啊

zer233276 发表于 2011-10-15 21:39

看不懂{:3_166:}

superllinjin 发表于 2011-10-15 21:40

天书啊,

shehxception 发表于 2011-10-16 15:04

看不懂本人专业级的小白

ww3367542 发表于 2011-10-16 15:08

..............看不懂 怎么试?

asasasddd 发表于 2011-10-19 10:51

楼主不如提高阅读权限并且写明情况好些

SOMEHOW1314 发表于 2011-10-16 15:18

虽然看上去好像很厉害的样子,但是不知道楼主在说什么
页: [1]
查看完整版本: 2个好用的修改器.....比版主的好用(因为是同个人写的)....支持1.1.........因为无Z版,有正版的试试联网修改