Table was made with CE 6.4
I cannot guarantee that it will work for other versions.
I cannot even guarantee that it will work for you at all, it does work for me though.
Terminology
Quote:
Mcguffin:
Although Azra’s character class is displayed as “Librarian” in game, her character class is referred to throughout the code and game data as “mcguffin.” This is because she is the “Tower Defense McGuffin”, ie the thing you have to arbitrarily defend.
Table contains:
- Main McGuffin's HP
- Psi
- Selected Defender's
* HP
* Max HP
* Skill Recharge Speed Multiplier
- Selected Enemy's
* HP
* Max HP
* Armor
* Speed Multiplier
- Script:
* Invincible Defenders
* 1-Hit Kills (InstaKill)
Some notes:
* Even if you set your McGuffin's health to max after getting hit by a creep, it will not become a perfect run!
* All defender stats will be reset when you re-summon it
* Skill recharge speed multiplier does not work for the McGuffin's spells
* Enemy's Max HP also determines how much damage it does to McGuffin
* Setting enemy's armor to 0 does not remove the armor visually, it does however set the damage reduction to 0
* Enemy's Speed Multiplier seemingly only affects walking speed, nor does it affect base speed. If an enemy McGuffin (Zelemir or Eztli-Tenoch) decides to frenzy the creeps, it will be reset
* 1-Hit Kills works great in conjuction with "The Book of Plague", there are however some creeps that seem unaffected by it:
- Sometimes creeps that spawn from the death of another
- Bosses
Make sure to set out at least 1 defender to kill those unaffected by plague.
* 1-Hit Kill has been tested on more or less all of the special enemies
- Zelemir needs to be hit 1 time (for example: Lightning Strike)
- Boosting Azra to full strength is enough to beat Eztli-Tenoch (no spells or defenders needed)
- Does not work on High Priest since he's scripted to be invincible, doesn't matter much though, it's a story-event.
Both script parts are enabled by default, disable them by changing the respective values to 0.
AOB Injection script:
Code:
{ Game : DefendersQuest.exe
Version: STEAM v.1.1.47
Date : 2015-03-03
Author : Ambj?rn
This script does blah blah blah
}
[ENABLE]
aobscan(INJECT,66 0F D6 80 E0 00 00 00 F3 0F 7E 80) // should be unique
alloc(newmem,$1000)
label(start)
label(friendly)
label(bInvincible)
registersymbol(bInvincible)
label(hostile)
label(bInstaKill)
registersymbol(bInstaKill)
label(code)
label(return)
newmem:
bInvincible:
dd 1
bInstaKill:
dd 1
start:
cmp [eax+190],1
je friendly
jmp hostile
friendly:
cmp dword ptr [bInvincible],1
jne code
movq xmm0,[eax+00000278]
jmp code
hostile:
cmp dword ptr [bInstaKill],1
jne code
subsd xmm0,xmm0
jmp code
code:
movq [eax+000000E0],xmm0
jmp return
INJECT:
jmp start
nop
nop
nop
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 66 0F D6 80 E0 00 00 00
unregistersymbol(INJECT)
unregistersymbol(bInvincible)
unregistersymbol(bInstaKill)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 2E44EA6A
2E44EA39: 83 C4 10 - add esp,10
2E44EA3C: 8B 45 BC - mov eax,[ebp-44]
2E44EA3F: EB 0A - jmp 2E44EA4B
2E44EA41: C7 80 D8 01 00 00 01 00 00 00 - mov [eax+000001D8],00000001
2E44EA4B: F3 0F 7E 88 E0 00 00 00 - movq xmm1,[eax+000000E0]
2E44EA53: F3 0F 7E 45 D8 - movq xmm0,[ebp-28]
2E44EA58: 66 0F 2E C8 - ucomisd xmm1,xmm0
2E44EA5C: 7A 02 - jp 2E44EA60
2E44EA5E: 74 0A - je 2E44EA6A
2E44EA60: C7 80 18 02 00 00 01 00 00 00 - mov [eax+00000218],00000001
// ---------- INJECTING HERE ----------
2E44EA6A: 66 0F D6 80 E0 00 00 00 - movq [eax+000000E0],xmm0
// ---------- DONE INJECTING ----------
2E44EA72: F3 0F 7E 80 E0 00 00 00 - movq xmm0,[eax+000000E0]
2E44EA7A: 66 0F D6 80 00 03 00 00 - movq [eax+00000300],xmm0
2E44EA82: 8B 50 08 - mov edx,[eax+08]
2E44EA85: 8B 8A 48 02 00 00 - mov ecx,[edx+00000248]
2E44EA8B: 8D 55 CC - lea edx,[ebp-34]
2E44EA8E: 89 45 CC - mov [ebp-34],eax
2E44EA91: 8B 41 04 - mov eax,[ecx+04]
2E44EA94: 83 EC 04 - sub esp,04
2E44EA97: 52 - push edx
2E44EA98: 6A 00 - push 00
}
Please bear in mind that this is my first time making an AOB injection script, and also my first time that I'm uploading something to CE
PS. Spell cooldowns can be changed via modding, steam workshop already has an entry which removes all spell cooldowns
Made by Ambjoorn
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1