Baofu wrote: ↑Tue Mar 05, 2024 3:26 am
StinVec wrote: ↑Sat Mar 02, 2024 4:24 pm
Baofu wrote: ↑Sat Mar 02, 2024 7:22 am
Thanks once again! I wonder if there's a way to get more rare loot since it looks like the crucible pointers aren't yet updated, least from my minimal testing. Well, at any rate they might not be too hard to find.
You're welcome!
Crucible:
I had loaded into Crucible on 1.2.0.4 and 1.2.0.5 to test those and make sure those worked. Score, multiplier, wave, Tributes, Timer - all are working for me still. Nothing in the Crucible section needed updating for me. Are you on game version 1.2.0.5a and those options are broken? I haven't updated to that version yet to test and see if anything needs updating.
More rare/better loot:
Every few game updates I try out a couple trainers that claim to give better loot. However, they really never seem to do anything at all and there was no noticeable change to loot for me. Same amount of the same rarity items still drop for me while those options are on versus when they are off.
I even got the changes to memory that those option in those trainers make and it looks like it should be doing something to make loot better. It just doesn't seem to actually give better loot for me so I did not include that "reverse-engineered" option in the table.
Do those 'better loot' options actually work for others? And I mean actually work, not just seem to work as they activate, but no real noticeable changes to loot quality happens.
I'm not entirely sure but I did see a lot more purples. I'm not on 1.2.0.5a so I'm not sure about that yet.
I have a cheat engine script that still seems to be working that changes the rare drop frequency still. I tested it by pulling up my old amalgamated script and copying it to the new one provided above. My new veteran play through character is level 12, I have just cleared the second fixed TP point in the wilderness, and I am looking at nine early level unique items on the ground after the fight. So it definitely changes something.
I actually don't know how it works, as when you trigger it, it has a sub menu setting with a numeric value that I think you can change to 'shift' the loot table rng favourably, but even when I originally found the post that the OP dropped with it in, there wasn't really a good explanation for how any number you put in there changed the rarity rates. In any case, the 'seed' value seems to change by itself and I have never actually changed the value from whatever is in there when I turn it on, and it obviously works anyway. I'm just not sure if there is a way to trigger 'perfect' drops, or only sets, and so on, like some of the Diablo 2 mods use to do.
Here it is below. Just copy it as a new script into whatever your favourite table is currently, and then save it. I recommend the one above as it seems to be working pretty well. FYI for anyone reading this far, I am using the GoG 1.2.0.5a version and everything seems to be working fine. Also, I am not claiming to have written this, and I don't know who did, or else I would credit/link them.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>136986</ID>
<Description>"Loot Randomizer"</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Grim Dawn.exe
Version:
Date : 2021-03-16
Author : 009
This script does blah blah blah
}
[ENABLE]
aobscan(ucrt1rand,48 83 EC 28 E8 77 25 FF FF)
aobscanmodule(INJECT,Game.dll,FF 50 38 8B D8 85 C0 0F) // should be unique
alloc(newmem,$1000,INJECT)
alloc(newdata,256)
label(code)
label(return)
label(seed1)
registersymbol(seed1)
newdata:
seed1:
dd #1
newmem:
code:
call qword ptr [rax+38]
call ucrt1rand //call random number generator and put result into eax (delete line to manually enter seed number)
mov [seed1],eax
mov eax,[seed1]
mov ebx,eax
jmp return
INJECT:
jmp newmem
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db FF 50 38 8B D8
dealloc(*)
unregistersymbol(*)
{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::LootLoader::Load+AC
Game.GAME::LootLoader::Load+81: 48 03 F9 - add rdi,rcx
Game.GAME::LootLoader::Load+84: 48 69 F0 A8 00 00 00 - imul rsi,rax,000000A8
Game.GAME::LootLoader::Load+8B: 48 8D 05 2E 5A 35 00 - lea rax,[Game.GAME::LootItemTableRandomizer::TableIterations+121C]
Game.GAME::LootLoader::Load+92: 48 03 F0 - add rsi,rax
Game.GAME::LootLoader::Load+95: 44 8B AC 24 D0 00 00 00 - mov r13d,[rsp+000000D0]
Game.GAME::LootLoader::Load+9D: 0F 1F 00 - nop dword ptr [rax]
Game.GAME::LootLoader::Load+A0: 49 8B 06 - mov rax,[r14]
Game.GAME::LootLoader::Load+A3: 45 33 C0 - xor r8d,r8d
Game.GAME::LootLoader::Load+A6: 48 8B D6 - mov rdx,rsi
Game.GAME::LootLoader::Load+A9: 49 8B CE - mov rcx,r14
// ---------- INJECTING HERE ----------
Game.GAME::LootLoader::Load+AC: FF 50 38 - call qword ptr [rax+38]
// ---------- DONE INJECTING ----------
Game.GAME::LootLoader::Load+AF: 8B D8 - mov ebx,eax
Game.GAME::LootLoader::Load+B1: 85 C0 - test eax,eax
Game.GAME::LootLoader::Load+B3: 0F 8E AC 00 00 00 - jng Game.GAME::LootLoader::Load+165
Game.GAME::LootLoader::Load+B9: 4D 8B 16 - mov r10,[r14]
Game.GAME::LootLoader::Load+BC: 48 8D 05 2B 46 25 00 - lea rax,[Game.GAME::GameEngine::MaxExpansion1TransferSacks+13C2]
Game.GAME::LootLoader::Load+C3: 48 89 44 24 20 - mov [rsp+20],rax
Game.GAME::LootLoader::Load+C8: 45 8B CD - mov r9d,r13d
Game.GAME::LootLoader::Load+CB: 4C 8B C7 - mov r8,rdi
Game.GAME::LootLoader::Load+CE: 48 8D 54 24 38 - lea rdx,[rsp+38]
Game.GAME::LootLoader::Load+D3: 49 8B CE - mov rcx,r14
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>136987</ID>
<Description>"Seed number"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>seed1</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>