Loot quality--at least for non-epics and non-leggies--in this game seem to be controlled by dynamic tables as evidenced by the item DBRs in the game files. If you just want to force double rarity, you can hijack the Game.GAME::LootItemTableRandomizer_Dyn::SetWeightModifiers function.
Notable offsets are as follows:
r11 + A8 - double rare (rare prefix + rare suffix)
r11 + AC - rare prefix, no suffix
r11 + B0 - no prefix, rare suffix
r11 + B4 - rare prefix, normal suffix
r11 + B8 - normal prefix, rare suffix
I won't bother with the others anymore as they can screw the game up, based on what I see (drop no affixes, etc) because the game for some reason uses the concept of broken items (e.g. monsters can equip items as well that devs don't want them to drop, for example).
Since the values are weighted, throwing a high amount on one of the above will skew the table to that rarity. Something like below should work to force double rares for example.
Code: Select all
[ENABLE]
aobscanmodule(rares,Game.dll,41 89 93 A8 00 00 00) // should be unique
alloc(newmem,$1000,rares)
label(code)
label(return)
newmem:
code:
mov [r11+000000A8],edx
mov [r11+000000A8],#1000000000 // 1 billion should be sufficiently high.
jmp return
rares:
jmp newmem
nop 2
return:
registersymbol(rares)
[DISABLE]
rares:
db 41 89 93 A8 00 00 00
unregistersymbol(rares)
dealloc(newmem)
EDIT: Actually, combined with the code provided a few posts before mine, this just drops virtually every single rare item in the game. I keep seeing green and blues and purples everywhere.
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