134208
"Character Mods"
008000
Auto Assembler Script
[ENABLE]
/*
{
Game.GAME::Character::GetCurrentLifeInt - 83 EC 0C - sub esp,0C
Game.GAME::Character::GetCurrentLifeInt+3- F3 0F10 81 34070000 - movss xmm0,[ecx+00000734]
Game.GAME::Character::GetCurrentLifeInt+B- 0F2F 05 0C952B10 - comiss xmm0,[Game.GAME::TelemetryManager::`vftable'+4784]
Game.GAME::Character::GetCurrentLifeInt+12- F3 0F11 04 24 - movss [esp],xmm0
Game.GAME::Character::GetCurrentLifeInt+17- 76 38 - jna Game.GAME::Character::GetCurrentLifeInt+51
Game.GAME::Character::GetCurrentLifeInt+19- 0F2F 05 80952B10 - comiss xmm0,[Game.GAME::TelemetryManager::`vftable'+47F8]
Game.GAME::Character::GetCurrentLifeInt+20- 76 26 - jna Game.GAME::Character::GetCurrentLifeInt+48
} */
{
Game.GAME::Character::GetCurrentLifeInt - 83 EC 0C - sub esp,0C
Game.GAME::Character::GetCurrentLifeInt+3- F3 0F10 81 34070000 - movss xmm0,[ecx+00000734]
Game.GAME::Character::GetCurrentLifeInt+B- 0F2F 05 84F69B60 - comiss xmm0,[Game.GAME::TelemetryManager::`vftable'+4714]
Game.GAME::Character::GetCurrentLifeInt+12- F3 0F11 04 24 - movss [esp],xmm0
Game.GAME::Character::GetCurrentLifeInt+17- 76 38 - jna Game.GAME::Character::GetCurrentLifeInt+51
}
registersymbol(pHero)
alloc(pHero, 4)
registersymbol(iMaxLife)
alloc(iMaxLife, 4)
registersymbol(iMaxMana)
alloc(iMaxMana, 4)
registersymbol(iAttributesMod)
alloc(iAttributesMod, 4)
registersymbol(iPointsMod)
alloc(iPointsMod, 4)
registersymbol(iGoldMod)
alloc(iGoldMod, 4)
label(GetCurrentLifeInt_Return)
label(SkipMaxLife)
label(SkipMaxMana)
label(SkipAttributesMod)
label(SkipPointsMod)
label(SkipGoldMod)
alloc(GetCurrentLifeInt_New, 2048)
alloc(GetCurrentLifeInt_Temp1,4)
alloc(GetCurrentLifeInt_Temp2,4)
GetCurrentLifeInt_New:
mov [GetCurrentLifeInt_Temp1], ebx
mov [GetCurrentLifeInt_Temp2], edx
mov [pHero], ecx
cmp dword ptr [iMaxLife], #0
je SkipMaxLife
//--Game.GAME::Character::GetLifeLimit+7 - F3 0F10 8E 78070000 - movss xmm1,[esi+00000778]--
//Game.GAME::Character::GetLifeLimit+7 - F3 0F10 8E 90070000 - movss xmm1,[esi+00000790]
fld [ecx+790]
//--Game.GAME::Character::GetCurrentLife+1 - F3 0F10 89 34070000 - movss xmm1,[ecx+00000734]--
//Game.GAME::Character::GetCurrentLife+1 - F3 0F10 89 4C070000 - movss xmm1,[ecx+0000074C]
fstp [ecx+74C]
SkipMaxLife:
cmp dword ptr [iMaxMana], #0
je SkipMaxMana
//--Game.GAME::Character::GetManaLimit+7 - F3 0F10 8E 7C070000 - movss xmm1,[esi+0000077C]
//Game.GAME::Character::GetManaLimit+7 - F3 0F10 8E 94070000 - movss xmm1,[esi+00000794]
fld [ecx+794]
//--Game.GAME::Character::GetCurrentMana+1 - F3 0F10 89 48070000 - movss xmm1,[ecx+00000748]--
//Game.GAME::Character::GetCurrentMana+1 - F3 0F10 89 60070000 - movss xmm1,[ecx+00000760]
fstp [ecx+760]
SkipMaxMana:
// Game.GAME::Character::GetBaseCharAttributes+19 - 8B 96 6C070000 - mov edx,[esi+0000076C]
cmp dword ptr [iAttributesMod], #0
je SkipAttributesMod
// BaseStrength
//mov [ecx+76C], (float)9999999
mov [esi+76c], (float)9999999
// BaseDexterity
//mov [ecx+770], (float)9999999
mov [esi+770], (float)9999999
// BaseIntelligence
//mov [ecx+774], (float)9999999
mov [esi+774], (float)9999999
SkipAttributesMod:
cmp dword ptr [iPointsMod], #0
je SkipPointsMod
// --Game.GAME::Character::AddSkillPoints+4 - 01 81 1C0B0000 - add [ecx+00000B1C],eax
// Game.GAME::Character::AddToSkillPoints+4 - 01 81 400B0000 - add [ecx+00000B40],eax
mov [ecx+B40], #99
// --Game.GAME::Character::AddModifierPoints+4 - 01 81 180B0000 - add [ecx+00000B18],eax
// Game.GAME::Character::AddModifierPoints+4 - 01 81 3C0B0000 - add [ecx+00000B3C],eax
mov [ecx+B3c], #99
SkipPointsMod:
cmp dword ptr [iGoldMod], #0
je SkipGoldMod
// --Game.GAME::Character::AddMoney - 8B 81 CC0A0000 - mov eax,[ecx+00000ACC]
// Game.GAME::Character::AddMoney - 8B 81 F00A0000 - mov eax,[ecx+00000AF0]
mov [ecx+AF0], #9999999
SkipGoldMod:
mov ebx, [GetCurrentLifeInt_Temp1]
mov edx, [GetCurrentLifeInt_Temp2]
movss xmm0,[ecx+0000074C]
jmp GetCurrentLifeInt_Return
Game_DX11.GAME::Character::GetCurrentLifeInt+3:
jmp GetCurrentLifeInt_New
nop
nop
nop
GetCurrentLifeInt_Return:
[DISABLE]
Game_DX11.GAME::Character::GetCurrentLifeInt+3:
// db F3 0F 10 81 34 07 00 00
db F3 0F 10 81 4c 07 00 00
// Game.GAME::Character::GetCurrentLife+1 - F3 0F10 89 4C070000 - movss xmm1,[ecx+0000074C]
// -- Game.GAME::Character::GetCurrentLifeInt+3- F3 0F10 81 34070000 - movss xmm0,[ecx+00000734]
dealloc(GetCurrentLifeInt_New)
dealloc(GetCurrentLifeInt_Temp1)
dealloc(GetCurrentLifeInt_Temp2)
dealloc(pHero)
unregistersymbol(pHero)
dealloc(Character_update_enable)
unregistersymbol(Character_update_enable)
dealloc(iMaxLife)
unregistersymbol(iMaxLife)
dealloc(iMaxMana)
unregistersymbol(iMaxMana)
dealloc(iAttributesMod)
unregistersymbol(iAttributesMod)
dealloc(iPointsMod)
unregistersymbol(iPointsMod)
dealloc(iGoldMod)
unregistersymbol(iGoldMod)
134213
"Mod Attributes : temporary bonus to strength, dexterity, intelligence"
FF0000
Auto Assembler Script
[ENABLE]
iAttributesMod:
dd 1
[DISABLE]
iAttributesMod:
dd 0
134210
"Mod Gold: freeze gold at 9,999,999"
0000FF
Auto Assembler Script
[ENABLE]
iGoldMod:
dd 1
[DISABLE]
iGoldMod:
dd 0
70
"Mod Leveling: quick level up"
FF0000
Auto Assembler Script
[ENABLE]
{
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15B6 - 89 44 24 10 - mov [esp+10],eax
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15BA - F2 0F11 44 24 28 - movsd [esp+28],xmm0
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15C0 - DD 44 24 28 - fld qword ptr [esp+28]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15C4 - D9 6C 24 10 - fldcw [esp+10]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15C8 - DF 7C 24 10 - fistp qword ptr [esp+10]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15CC - 8B 44 24 10 - mov eax,[esp+10]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15D0 - D9 6C 24 0C - fldcw [esp+0C]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15D4 - 39 47 34 - cmp [edi+34],eax
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15D7 - 0F82 3B010000 - jb Game.GAME::EquipmentCtrl::~EquipmentCtrl+1718
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15DD - FF 47 30 - inc [edi+30]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15E0 - 83 7F 30 08 - cmp dword ptr [edi+30],08
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15E4 - 0F85 C5000000 - jne Game.GAME::EquipmentCtrl::~EquipmentCtrl+16AF
}
alloc(LevelUp_New,1024)
registersymbol(LevelUp_New)
label(LevelUp_Return)
label(LevelUp_OriginalCode)
LevelUp_New:
mov eax,[edi+04]
cmp eax,[pHero]
jne LevelUp_OriginalCode
mov eax,[esp+10] // Get next level XP
dec eax
cmp [edi+34],eax
jns LevelUp_OriginalCode
mov [edi+34],eax // Set current XP
LevelUp_OriginalCode:
mov eax,[esp+10]
fldcw [esp+0C]
jmp LevelUp_Return
Game_DX11.GAME::EquipmentCtrl::~EquipmentCtrl+15CC:
jmp LevelUp_New
nop
nop
nop
LevelUp_Return:
[DISABLE]
Game_DX11.GAME::EquipmentCtrl::~EquipmentCtrl+15CC:
db 8B 44 24 10 D9 6C 24 0C
{
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15CC - 8B 44 24 10 - mov eax,[esp+10]
Game.GAME::EquipmentCtrl::~EquipmentCtrl+15D0 - D9 6C 24 0C - fldcw [esp+0C]
}
dealloc(LevelUp_New)
unregistersymbol(LevelUp_New)
Toggle Activation
17
103
0
134209
"Mod Life: freeze life at maximum"
FF0000
Auto Assembler Script
[ENABLE]
iMaxLife:
dd 1
[DISABLE]
iMaxLife:
dd 0
134214
"Mod Mana: freeze mana at maximum"
FF0000
Auto Assembler Script
[ENABLE]
iMaxMana:
dd 1
[DISABLE]
iMaxMana:
dd 0
112594
"Mod Mastery Points: zero mastery points to reset mastery"
0000FF
Auto Assembler Script
[ENABLE]
label(GetNumMasteryPoints_Return)
{
Game.GAME::SkillManager::GetNumMasteryPoints+CF - 8B 87 FC000000 - mov eax,[edi+000000FC]
Game.GAME::SkillManager::GetNumMasteryPoints+D5 - 8B 54 24 10 - mov edx,[esp+10]
Game.GAME::SkillManager::GetNumMasteryPoints+D9 - 8B 04 28 - mov eax,[eax+ebp]
Game.GAME::SkillManager::GetNumMasteryPoints+DC - 03 90 9C000000 - add edx,[eax+0000009C]
Game.GAME::SkillManager::GetNumMasteryPoints+E2 - 89 54 24 10 - mov [esp+10],edx
Game.GAME::SkillManager::GetNumMasteryPoints+E6 - EB 04 - jmp Game.GAME::SkillManager::GetNumMasteryPoints+EC
Game.GAME::SkillManager::GetNumMasteryPoints+E8 - 8B 54 24 10 - mov edx,[esp+10]
Game.GAME::SkillManager::GetNumMasteryPoints+EC - 8B B7 FC000000 - mov esi,[edi+000000FC]
Game.GAME::SkillManager::GetNumMasteryPoints+F2 - 8B 8F 00010000 - mov ecx,[edi+00000100]
}
alloc(GetNumMasteryPoints_New, 1024)
registersymbol(GetNumMasteryPoints_New)
alloc(pSkillManager, 4)
registersymbol(pSkillManager)
GetNumMasteryPoints_New:
mov [pSkillManager], eax
mov [eax+0000009C],#0 // set mastery points
add edx,[eax+0000009C]
jmp GetNumMasteryPoints_Return
Game_DX11.GAME::SkillManager::GetNumMasteryPoints+DC:
jmp GetNumMasteryPoints_New
nop
GetNumMasteryPoints_Return:
[DISABLE]
Game_DX11.GAME::SkillManager::GetNumMasteryPoints+DC:
db 03 90 9C 00 00 00 // Game.GAME::SkillManager::GetNumMasteryPoints+DC - 03 90 9C000000 - add edx,[eax+0000009C]
dealloc(GetNumMasteryPoints_New)
unregistersymbol(GetNumMasteryPoints_New)
unregistersymbol(pSkillManager)
dealloc(pSkillManager)
134211
"Mod Points: freeze attribute and skill points at 99"
0000FF
Auto Assembler Script
[ENABLE]
iPointsMod:
dd 1
[DISABLE]
iPointsMod:
dd 0
112446
"Mod Skill Cooldown: temporary zero cooldown"
FF0000
Auto Assembler Script
[ENABLE]
{
Game.GAME::Skill::Update - 56 - push esi
Game.GAME::Skill::Update+1- 8B F1 - mov esi,ecx
Game.GAME::Skill::Update+3- 8B 86 F0000000 - mov eax,[esi+000000F0]
Game.GAME::Skill::Update+9- 85 C0 - test eax,eax
Game.GAME::Skill::Update+B- 7E 0A - jle Game.GAME::Skill::Update+17
Game.GAME::Skill::Update+D- 2B 44 24 0C - sub eax,[esp+0C]
Game.GAME::Skill::Update+11- 89 86 F0000000 - mov [esi+000000F0],eax
Game.GAME::Skill::Update+17- 8B 4E 24 - mov ecx,[esi+24]
}
alloc(Skill_newmem, 1024)
registersymbol(Skill_newmem)
registersymbol(Skill_basepointer)
alloc(Skill_basepointer, 4)
label(Skill_returnhere)
label(SkillUpdate_OriginalCode)
Skill_newmem:
mov [Skill_basepointer], esi
cmp dword ptr [esi+000000F0], #1000 // exclude some skills (auras?)
jb SkillUpdate_OriginalCode
mov [esi+000000F0], #0 // zero skill cooldown
SkillUpdate_OriginalCode:
mov eax,[esi+000000F0]
jmp Skill_returnhere
Game_DX11.GAME::Skill::Update+3:
jmp Skill_newmem
nop
Skill_returnhere:
[DISABLE]
Game_DX11.GAME::Skill::Update+3:
db 8B 86 F0 00 00 00 // Game.GAME::Skill::Update+3- 8B 86 F0000000 - mov eax,[esi+000000F0]
dealloc(Skill_newmem)
unregistersymbol(Skill_newmem)
134233
"Mod Running Speed: temporary bonus to running speed"
FF0000
Auto Assembler Script
[ENABLE]
{
Game.GAME::Character::GetRunSpeed+D1 - FF D0 - call eax
Game.GAME::Character::GetRunSpeed+D3 - D9 5C 24 04 - fstp dword ptr [esp+04]
Game.GAME::Character::GetRunSpeed+D7 - D9 44 24 04 - fld dword ptr [esp+04]
Game.GAME::Character::GetRunSpeed+DB - 5E - pop esi
Game.GAME::Character::GetRunSpeed+DC - 83 C4 08 - add esp,08
Game.GAME::Character::GetRunSpeed+DF - C3 - ret
}
alloc(GetRunSpeed_New, 1024)
registersymbol(GetRunSpeed_New)
registersymbol(fDesiredRunSpeed)
alloc(fDesiredRunSpeed, 4)
fDesiredRunSpeed:
dd (float)3
label(GetRunSpeed_Return)
label(GetRunSpeed_OriginalCode)
GetRunSpeed_New:
cmp esi,[pHero]
jne GetRunSpeed_OriginalCode
fld [fDesiredRunSpeed]
GetRunSpeed_OriginalCode:
fstp dword ptr [esp+04]
fld dword ptr [esp+04]
jmp GetRunSpeed_Return
Game_DX11.GAME::Character::GetRunSpeed+D3:
jmp GetRunSpeed_New
nop
nop
nop
GetRunSpeed_Return:
[DISABLE]
Game_DX11.GAME::Character::GetRunSpeed+D3:
db D9 5C 24 04 D9 44 24 04
{
Game.GAME::Character::GetRunSpeed+D3 - D9 5C 24 04 - fstp dword ptr [esp+04]
Game.GAME::Character::GetRunSpeed+D7 - D9 44 24 04 - fld dword ptr [esp+04]
}
dealloc(GetRunSpeed_New)
unregistersymbol(GetRunSpeed_New)
dealloc(fDesiredRunSpeed)
unregistersymbol(fDesiredRunSpeed)
134234
"Desired Run Speed"
FF8000
Float
fDesiredRunSpeed
134241
"Mod Attack Speed: temporary bonus to attack speed"
FF0000
Auto Assembler Script
[ENABLE]
{
Game.GAME::Player::CapAttackSpeed+11C - F3 0F11 44 24 18 - movss [esp+18],xmm0
Game.GAME::Player::CapAttackSpeed+122 - D9 44 24 18 - fld dword ptr [esp+18]
Game.GAME::Player::CapAttackSpeed+126 - 5F - pop edi
Game.GAME::Player::CapAttackSpeed+127 - 5E - pop esi
Game.GAME::Player::CapAttackSpeed+128 - 5B - pop ebx
Game.GAME::Player::CapAttackSpeed+129 - 83 C4 08 - add esp,08
Game.GAME::Player::CapAttackSpeed+12C - C2 0400 - ret 0004
}
alloc(CapAttackSpeed_New, 1024)
registersymbol(CapAttackSpeed_New)
registersymbol(fDesiredAttackSpeed)
alloc(fDesiredAttackSpeed, 4)
fDesiredAttackSpeed:
dd (float)3
label(CapAttackSpeed_Return)
label(CapAttackSpeed_Original)
CapAttackSpeed_New:
cmp ebx,[pHero]
jne CapAttackSpeed_Original
movss xmm0,[fDesiredAttackSpeed]
CapAttackSpeed_Original:
movss [esp+18],xmm0
jmp CapAttackSpeed_Return
Game_DX11.GAME::Player::CapAttackSpeed+11C:
jmp CapAttackSpeed_New
nop
CapAttackSpeed_Return:
[DISABLE]
Game_DX11.GAME::Player::CapAttackSpeed+11C:
db F3 0F 11 44 24 18 // Game.GAME::Player::CapAttackSpeed+11C - F3 0F11 44 24 18 - movss [esp+18],xmm0
dealloc(CapAttackSpeed_New)
unregistersymbol(CapAttackSpeed_New)
dealloc(fDesiredAttackSpeed)
unregistersymbol(fDesiredAttackSpeed)
134242
"Desired Attack Speed"
FF8000
Float
fDesiredAttackSpeed
134237
"Mod Cast Speed: temporary bonus to cast speed"
FF0000
Auto Assembler Script
[ENABLE]
{
Game.GAME::Player::CapSpellCastSpeed+11C - F3 0F11 44 24 18 - movss [esp+18],xmm0
Game.GAME::Player::CapSpellCastSpeed+122 - D9 44 24 18 - fld dword ptr [esp+18]
Game.GAME::Player::CapSpellCastSpeed+126 - 5F - pop edi
Game.GAME::Player::CapSpellCastSpeed+127 - 5E - pop esi
Game.GAME::Player::CapSpellCastSpeed+128 - 5B - pop ebx
Game.GAME::Player::CapSpellCastSpeed+129 - 83 C4 08 - add esp,08
Game.GAME::Player::CapSpellCastSpeed+12C - C2 0400 - ret 0004
}
alloc(CapSpellCastSpeed_New, 1024)
registersymbol(CapSpellCastSpeed_New)
registersymbol(fDesiredCastSpeed)
alloc(fDesiredCastSpeed, 4)
fDesiredCastSpeed:
dd (float)8
label(CapSpellCastSpeed_Return)
label(GetRunSpeedUpdate_OriginalCode)
CapSpellCastSpeed_New:
cmp ebx,[pHero]
jne GetRunSpeedUpdate_OriginalCode
movss xmm0,[fDesiredCastSpeed]
GetRunSpeedUpdate_OriginalCode:
movss [esp+18],xmm0
jmp CapSpellCastSpeed_Return
Game_DX11.GAME::Player::CapSpellCastSpeed+11C:
jmp CapSpellCastSpeed_New
nop
CapSpellCastSpeed_Return:
[DISABLE]
Game_DX11.GAME::Player::CapSpellCastSpeed+11C:
db F3 0F 11 44 24 18
{
Game.GAME::Player::CapSpellCastSpeed+11C - F3 0F11 44 24 18 - movss [esp+18],xmm0
}
dealloc(CapSpellCastSpeed_New)
unregistersymbol(CapSpellCastSpeed_New)
dealloc(fDesiredCastSpeed)
unregistersymbol(fDesiredCastSpeed)
134238
"Desired Cast Speed"
FF8000
Float
fDesiredCastSpeed
134223
"SkillMasteriesAllowed"
4 Bytes
pHero
4b4
134219
"Gold"
4 Bytes
pHero
AF0
134228
"Level"
Byte
pHero
B10+24
134218
"Experience"
4 Bytes
pHero
B38
134217
"Attribute Points"
4 Bytes
pHero
B18+24
134216
"Skill Points"
4 Bytes
pHero
B1C+24
134221
"Invincible Flag"
Byte
pHero
C00+24
134222
"God Flag"
Byte
pHero
C01+24
134220
"Omnipotent Flag"
Byte
pHero
C02+24
112533
"Item Mods [To Update: mouseover an item]"
008000
Auto Assembler Script
[ENABLE]
// for seed editing
{
Game.GAME::ItemEquipment::GetUIDisplayText+3F - FF 90 C4010000 - call dword ptr [eax+000001C4]
Game.GAME::ItemEquipment::GetUIDisplayText+45 - 8B B7 A0060000 - mov esi,[edi+000006A0]
Game.GAME::ItemEquipment::GetUIDisplayText+4B - 3B B7 A4060000 - cmp esi,[edi+000006A4]
Game.GAME::ItemEquipment::GetUIDisplayText+51 - 74 17 - je Game.GAME::ItemEquipment::GetUIDisplayText+6A
}
{
Game.GAME::ItemEquipment::GetUIDisplayText+4F - FF 90 C8010000 - call dword ptr [eax+000001C8]
Game.GAME::ItemEquipment::GetUIDisplayText+55 - 8B B7 18070000 - mov esi,[edi+00000718]
Game.GAME::ItemEquipment::GetUIDisplayText+5B - 3B B7 1C070000 - cmp esi,[edi+0000071C]
Game.GAME::ItemEquipment::GetUIDisplayText+61 - 74 17 - je Game.GAME::ItemEquipment::GetUIDisplayText+7A
}
alloc(pItemEquipment, 4)
registersymbol(pItemEquipment)
alloc(GetUIDisplayText_New, 1024)
registersymbol(GetUIDisplayText_New)
label(GetUIDisplayText_Return)
GetUIDisplayText_New:
mov [pItemEquipment], edi
mov esi,[edi+00000718]
jmp GetUIDisplayText_Return
Game_DX11.GAME::ItemEquipment::GetUIDisplayText+55:
jmp GetUIDisplayText_New
nop
GetUIDisplayText_Return:
// for relic completion mod
{
Game.GAME::ItemRelic::GetUIDisplayText+5B - 89 5C 24 1C - mov [esp+1C],ebx
Game.GAME::ItemRelic::GetUIDisplayText+5F - FF 92 3C010000 - call dword ptr [edx+0000013C]
Game.GAME::ItemRelic::GetUIDisplayText+65 - 3B 9E 98040000 - cmp ebx,[esi+00000498]
Game.GAME::ItemRelic::GetUIDisplayText+6B - 73 76 - jae Game.GAME::ItemRelic::GetUIDisplayText+E3
Game.GAME::ItemRelic::GetUIDisplayText+6D - FF 15 E020EB0F - call dword ptr [Game.GAME::WeaponMelee_Mace::WeaponMelee_Mace+3D000] // ->Engine.GAME::LocalizationManager::Instance
Game.GAME::ItemRelic::GetUIDisplayText+5B - 89 5C 24 1C - mov [esp+1C],ebx
Game.GAME::ItemRelic::GetUIDisplayText+5F - FF 92 40010000 - call dword ptr [edx+00000140]
Game.GAME::ItemRelic::GetUIDisplayText+65 - 3B 9E 14050000 - cmp ebx,[esi+00000514]
}
alloc(pItem, 4)
registersymbol(pItem)
alloc(iRelicCompletionMod, 4)
registersymbol(iRelicCompletionMod)
alloc(GetUIGameDescription_New, 1024)
registersymbol(GetUIGameDescription_New)
label(GetUIGameDescription_Return)
label(GetUIGameDescription_OriginalCode)
GetUIGameDescription_New:
mov [pItem], esi
// relic completion mod
push eax
cmp [iRelicCompletionMod],#0
je GetUIGameDescription_OriginalCode
mov eax, [esi+514] // get max completion
dec eax
cmp [esi+514],eax
jns GetUIGameDescription_OriginalCode
mov [esi+514], eax // set completion
GetUIGameDescription_OriginalCode:
pop eax
cmp ebx,[esi+00000514]
jmp GetUIGameDescription_Return
Game_DX11.GAME::ItemRelic::GetUIDisplayText+65:
jmp GetUIGameDescription_New
nop
GetUIGameDescription_Return:
[DISABLE]
// for seed editing
Game_DX11.GAME::ItemEquipment::GetUIDisplayText+55:
db 8B B7 18 07 00 00 // Game.GAME::ItemEquipment::GetUIDisplayText+45 - 8B B7 A0060000 - mov esi,[edi+000006A0]
dealloc(GetUIDisplayText_New)
unregistersymbol(GetUIDisplayText_New)
dealloc(pItemEquipment)
unregistersymbol(pItemEquipment)
// for relic completion mod
Game_DX11.GAME::ItemRelic::GetUIDisplayText+65:
db 3B 9E 14 05 00 00 // Game.GAME::ItemRelic::GetUIDisplayText+65 - 3B 9E 98040000 - cmp ebx,[esi+00000498]
dealloc(GetUIGameDescription_New)
unregistersymbol(GetUIGameDescription_New)
dealloc(iRelicCompletionMod)
unregistersymbol(iRelicCompletionMod)
dealloc(pItem)
unregistersymbol(pItem)
134227
"Mod Relic Completion: only one more relic fragment to complete relic"
FF0000
Auto Assembler Script
[ENABLE]
iRelicCompletionMod:
dd 1
[DISABLE]
iRelicCompletionMod:
dd 0
134243
"Mod Artifact Creation: only a formula is necessary to create an artifact"
FF0000
Auto Assembler Script
[ENABLE]
{
TQ.GAME::TelemetryManager::operator=+B78B3 - FF 15 28714D01 - call dword ptr [TQ.GAME::TelemetryManager::operator=+1535F8] // ->Game.GAME::ItemArtifactFormula::GetReagent3DisplayName
..
TQ.GAME::TelemetryManager::operator=+B7C10 - FF 15 D85E4D01 - call dword ptr [TQ.GAME::TelemetryManager::operator=+1523A8] // ->Game.GAME::Character::GetCurrentMoney
..
TQ.GAME::TelemetryManager::operator=+B7C90 - 75 16 - jne TQ.GAME::TelemetryManager::operator=+B7CA8
TQ.GAME::TelemetryManager::operator=+B7C92 - 8D B7 B0080000 - lea esi,[edi+000008B0]
TQ.GAME::TelemetryManager::operator=+B7C98 - C6 86 E9000000 00 - mov byte ptr [esi+000000E9],00
TQ.GAME::TelemetryManager::operator=+B7C9F - C6 86 EC000000 00 - mov byte ptr [esi+000000EC],00
TQ.GAME::TelemetryManager::operator=+B7CA6 - EB 14 - jmp TQ.GAME::TelemetryManager::operator=+B7CBC
TQ.GAME::TelemetryManager::operator=+B7CA8 - 8D B7 B0080000 - lea esi,[edi+000008B0]
TQ.GAME::TelemetryManager::operator=+B7CAE - C6 86 E9000000 01 - mov byte ptr [esi+000000E9],01 // disable artifact creation button
TQ.GAME::TelemetryManager::operator=+B7CB5 - C6 86 EC000000 01 - mov byte ptr [esi+000000EC],01 //
TQ.GAME::TelemetryManager::operator=+B7CBC - 8B 06 - mov eax,[esi]
TQ.GAME::TelemetryManager::operator=+B7CBE - FF 75 08 - push [ebp+08]
}
alloc(DisableArtifactCreation_New, 1024)
registersymbol(DisableArtifactCreation_New)
label(DisableArtifactCreation_Return)
DisableArtifactCreation_New:
mov byte ptr [esi+000000E9],00
mov byte ptr [esi+000000EC],00
//mov byte ptr [esi+000000E9],00
mov eax,[esi]
push [ebp+08]
jmp DisableArtifactCreation_Return
//TQ.GAME::TelemetryManager::operator=+B7CBC:
TQ_DX11.exe+CB7DE:
jmp DisableArtifactCreation_New
DisableArtifactCreation_Return:
[DISABLE]
// for seed editing
//TQ.GAME::TelemetryManager::operator=+B7CBC:
TQ_DX11.exe+CB7DE:
db 8B 06 FF 75 08 // Game.GAME::ItemEquipment::GetUIDisplayText+45 - 8B B7 A0060000 - mov esi,[edi+000006A0
{
TQ.GAME::TelemetryManager::operator=+B7CBC - 8B 06 - mov eax,[esi]
TQ.GAME::TelemetryManager::operator=+B7CBE - FF 75 08 - push [ebp+08]
}
dealloc(DisableArtifactCreation_New)
unregistersymbol(DisableArtifactCreation_New)
134226
"Relic Completion"
4 Bytes
pItem
514
112545
"Seed ( Usage: Change seed. Put item into stash. Get item back with rerolled stats. )"
4 Bytes
pItemEquipment
31C
134215
"Loot Mods [To Update: restart game from main menu]"
008000
1
134224
"Mod loot from chests: lots of legendaries"
FF0000
Auto Assembler Script
[ENABLE]
// LootLoader for Chests
{
Game.GAME::LootLoader::Load+D6 - 8B 07 - mov eax,[edi]
Game.GAME::LootLoader::Load+D8 - 83 C4 10 - add esp,10
Game.GAME::LootLoader::Load+DB - 8D 4C 24 54 - lea ecx,[esp+54]
Game.GAME::LootLoader::Load+DF - 6A 00 - push 00
Game.GAME::LootLoader::Load+E1 - 51 - push ecx
Game.GAME::LootLoader::Load+E2 - 8B CF - mov ecx,edi
Game.GAME::LootLoader::Load+E4 - FF 50 1C - call dword ptr [eax+20]
Game.GAME::LootLoader::Load+E7 - 8B F8 - mov edi,eax
Game.GAME::LootLoader::Load+E9 - 85 FF - test edi,edi
Game.GAME::LootLoader::Load+EB - 0F8E D1000000 - jng Game.GAME::LootLoader::Load+1C2
Game.GAME::LootLoader::Load+F1 - 56 - push esi
Game.GAME::LootLoader::Load+F2 - FF 74 24 1C - push [esp+1C]
Game.GAME::LootLoader::Load+F6 - 8D 44 24 5C - lea eax,[esp+5C]
Game.GAME::LootLoader::Load+FA - 68 10CE6E0F - push Game.GAME::CharacterMovementManager::closeEnoughToJump+26ED8
Game.GAME::LootLoader::Load+FF - 50 - push eax
Game.GAME::LootLoader::Load+100- FF 15 C4316C0F - call dword ptr [Game.GAME::WeaponMelee_Mace::WeaponMelee_Mace+3E0E4]
Game.GAME::LootLoader::Load+106- 8B 4C 24 20 - mov ecx,[esp+20]
Game.GAME::LootLoader::Load+10A- 83 C4 10 - add esp,10
Game.GAME::LootLoader::Load+10D- 8B 01 - mov eax,[ecx]
}
alloc(ChestLootLoad_New,128)
registersymbol(ChestLootLoad_New)
alloc(ChestLootLoad_Factor,4)
registersymbol(ChestLootLoad_Factor)
label(ChestLootLoad_Return)
ChestLootLoad_New:
// call dword ptr [eax+1C]
call dword ptr [eax+20]
mov eax,[ChestLootLoad_Factor]
mov edi,eax
jmp ChestLootLoad_Return
ChestLootLoad_Factor:
dd #30000
Game_DX11.GAME::LootLoader::Load+E4:
jmp ChestLootLoad_New
ChestLootLoad_Return:
[DISABLE]
Game_DX11.GAME::LootLoader::Load+E4:
db FF 50 20 8B F8
// db FF 50 1C 8B F8
{
Game.GAME::LootLoader::Load+E4 - FF 50 20 - call dword ptr [eax+20]
Game.GAME::LootLoader::Load+E7 - 8B F8 - mov edi,eax
}
dealloc(ChestLootLoad_Factor)
unregistersymbol(ChestLootLoad_Factor)
dealloc(ChestLootLoad_New)
unregistersymbol(ChestLootLoad_New)
Toggle Activation
17
103
0
134225
"ChestLootLoad_Factor"
FF8000
4 Bytes
ChestLootLoad_Factor
134206
"Mod loot from monsters: lots of legendaries"
FF0000
Auto Assembler Script
[ENABLE]
// LootLoader for Monsters
/*{
Game.GAME::LootLoader::Load+DF - 90 - nop
Game.GAME::LootLoader::Load+E0 - 8B 03 - mov eax,[ebx]
Game.GAME::LootLoader::Load+E2 - 6A 00 - push 00
Game.GAME::LootLoader::Load+E4 - 57 - push edi
Game.GAME::LootLoader::Load+E5 - 8B CB - mov ecx,ebx
Game.GAME::LootLoader::Load+E7 - FF 50 1C - call dword ptr [eax+1C]
Game.GAME::LootLoader::Load+EA - 8B D8 - mov ebx,eax
Game.GAME::LootLoader::Load+EC - 85 DB - test ebx,ebx
Game.GAME::LootLoader::Load+EE - 0F8E 08010000 - jng Game.GAME::LootLoader::Load+1FC
Game.GAME::LootLoader::Load+F4 - 8B 4C 24 1C - mov ecx,[esp+1C]
Game.GAME::LootLoader::Load+F8 - 68 9E542E02 - push Game.GAME::WeaponMelee_Mace::WeaponMelee_Mace+403BE
Game.GAME::LootLoader::Load+FD - FF 74 24 2C - push [esp+2C]
Game.GAME::LootLoader::Load+101- 8B 11 - mov edx,[ecx]
Game.GAME::LootLoader::Load+103- 55 - push ebp
} */
// new
{
Game.GAME::LootLoader::Load+DF - 6A 00 - push 00
Game.GAME::LootLoader::Load+E1 - 51 - push ecx
Game.GAME::LootLoader::Load+E2 - 8B CF - mov ecx,edi
Game.GAME::LootLoader::Load+E4 - FF 50 20 - call dword ptr [eax+20]
Game.GAME::LootLoader::Load+E7 - 8B F8 - mov edi,eax
Game.GAME::LootLoader::Load+E9 - 85 FF - test edi,edi
Game.GAME::LootLoader::Load+EB - 0F8E D1000000 - jng Game.GAME::LootLoader::Load+1C2
}
aobscan(MonstersLootLoad_Code, FF 50 20 8B f8 85 ff 0F 8E d1 00 00 00)
//aobScanRegion(MonstersLootLoad_Code,Game.GAME::LootLoader::Load+E1,Game.GAME::LootLoader::Load+F2, FF 50 20 8B F8 85 FF 0F 8E 08 D1 00 00 00)
registersymbol(MonstersLootLoad_Code)
alloc(MonstersLootLoad_New,128)
registersymbol(MonstersLootLoad_New)
alloc(MonstersLootLoad_Factor,4)
registersymbol(MonstersLootLoad_Factor)
label(MonstersLootLoad_Return)
MonstersLootLoad_New:
//call dword ptr [eax+1C]
call dword ptr [eax+20]
mov eax,[MonstersLootLoad_Factor]
mov ebx,eax
jmp MonstersLootLoad_Return
MonstersLootLoad_Factor:
dd #30000
MonstersLootLoad_Code:
jmp MonstersLootLoad_New
MonstersLootLoad_Return:
[DISABLE]
MonstersLootLoad_Code:
db FF 50 20 8B f8
{
Game.GAME::LootLoader::Load+E7 - FF 50 20 - call dword ptr [eax+20]
Game.GAME::LootLoader::Load+EA - 8B f8 - mov ebx,eax
}
dealloc(MonstersLootLoad_Factor)
unregistersymbol(MonstersLootLoad_Factor)
dealloc(MonstersLootLoad_New)
unregistersymbol(MonstersLootLoad_New)
Toggle Activation
17
103
0
134207
"MonstersLootLoad_Factor"
FF8000
4 Bytes
MonstersLootLoad_Factor
134204
"Mod loot affixes: both prefix+suffix always"
FF0000
Auto Assembler Script
[ENABLE]
{
Game.GAME::LootItemTableRandomizer::SetWeightModifiers - 53 - push ebx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+1- 8B D9 - mov ebx,ecx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+3- 56 - push esi
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+4- 57 - push edi
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+5- 8B 7C 24 10 - mov edi,[esp+10]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+9- B8 1F85EB51 - mov eax,51EB851F
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+E- 8B 57 04 - mov edx,[edi+04]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+11- 0FAF 53 6C - imul edx,[ebx+6C]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+15- F7 E2 - mul edx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+17- C1 EA 05 - shr edx,05
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+1A- 01 53 6C - add [ebx+6C],edx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+1D- 8B 0F - mov ecx,[edi]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+1F- 0FAF 4B 70 - imul ecx,[ebx+70]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+23- B8 1F85EB51 - mov eax,51EB851F
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+28- F7 E1 - mul ecx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+2A- C1 EA 05 - shr edx,05
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+2D- 01 53 70 - add [ebx+70],edx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+30- 8B 4F 08 - mov ecx,[edi+08]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+33- 0FAF 4B 74 - imul ecx,[ebx+74]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+37- B8 1F85EB51 - mov eax,51EB851F
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+3C- F7 E1 - mul ecx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+3E- C1 EA 05 - shr edx,05
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+41- 01 53 74 - add [ebx+74],edx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+44- 8B 4F 0C - mov ecx,[edi+0C]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+47- 0FAF 4B 78 - imul ecx,[ebx+78]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+4B- B8 1F85EB51 - mov eax,51EB851F
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+50- F7 E1 - mul ecx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+52- C1 EA 05 - shr edx,05
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+55- 01 53 78 - add [ebx+78],edx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+58- 8B 4F 10 - mov ecx,[edi+10]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+5B- 0FAF 4B 7C - imul ecx,[ebx+7C]
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+5F- B8 1F85EB51 - mov eax,51EB851F
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+64- F7 E1 - mul ecx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+66- 5F - pop edi
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+67- C1 EA 05 - shr edx,05
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+6A- 01 53 7C - add [ebx+7C],edx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+6D- 5E - pop esi
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+6E- 5B - pop ebx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+6F- C2 0400 - ret 0004
}
label(SetWeightModifiers_Return)
registersymbol(SetWeightModifiers_New)
alloc(SetWeightModifiers_New, 2048)
registersymbol(BothPrefixSuffix_Weight)
alloc(BothPrefixSuffix_Weight, 4)
alloc(BothPrefixSuffix_Temp,4)
BothPrefixSuffix_Weight:
dd #30000
SetWeightModifiers_New:
mov [BothPrefixSuffix_Temp], eax
mov eax, [BothPrefixSuffix_Weight]
push ebx
mov ebx,ecx
push esi
push edi
// Game.GAME::LootItemTableRandomizer::SetWeightModifiers+11- 0FAF 53 6C - imul edx,[ebx+6C]
// BothPerfixSuffix
mov [ebx+6C],eax
// Game.GAME::LootItemTableRandomizer::SetWeightModifiers+1F- 0FAF 4B 70 - imul ecx,[ebx+70]
// noPerfixSuffix
mov [ebx+70],#0
// Game.GAME::LootItemTableRandomizer::SetWeightModifiers+33- 0FAF 4B 74 - imul ecx,[ebx+74]
// PerfixOnly
mov [ebx+74],#0
// Game.GAME::LootItemTableRandomizer::SetWeightModifiers+47- 0FAF 4B 78 - imul ecx,[ebx+78]
// SuffixOnly
mov [ebx+78],#0
// Game.GAME::LootItemTableRandomizer::SetWeightModifiers+5B- 0FAF 4B 7C - imul ecx,[ebx+7C]
// BrokenOnly
mov [ebx+7C],#0
mov eax,[BothPrefixSuffix_Temp]
jmp SetWeightModifiers_Return
Game_DX11.GAME::LootItemTableRandomizer::SetWeightModifiers:
jmp SetWeightModifiers_New
SetWeightModifiers_Return:
[DISABLE]
Game_DX11.GAME::LootItemTableRandomizer::SetWeightModifiers:
db 53 8B D9 56 57
{
Game.GAME::LootItemTableRandomizer::SetWeightModifiers - 53 - push ebx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+1- 8B D9 - mov ebx,ecx
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+3- 56 - push esi
Game.GAME::LootItemTableRandomizer::SetWeightModifiers+4- 57 - push edi
}
dealloc(SetWeightModifiers_New)
unregistersymbol(SetWeightModifiers_New)
dealloc(BothPrefixSuffix_Weight)
unregistersymbol(BothPrefixSuffix_Weight)
dealloc(BothPrefixSuffix_Temp)
134205
"BothPrefixSuffix Weight"
FF8000
4 Bytes
BothPrefixSuffix_Weight
Game : Titan Quest Anniversary Edition v1.48 (steam version)
Date : 2017-11-23
Author : mece