Current setup for gaining an item to maximum level:
Code: Select all
executeCodeEx( 0, nil, GiveItem, hash, quantity, 1, -1, 3, 1, 2 )
-- rcx rdx r8 r9 20 28 30
-- qw dw b b dw b dw
Namely:
Code: Select all
ACValhalla.exe+2D52C80 - 48 83 EC 48 - sub rsp,48
ACValhalla.exe+2D52C84 - 8B 52 10 - mov edx,[rdx+10]
ACValhalla.exe+2D52C87 - 85 D2 - test edx,edx // edx == quantity (1)
ACValhalla.exe+2D52C89 - 74 27 - je ACValhalla.exe+2D52CB2
ACValhalla.exe+2D52C8B - 48 8B 0D 7E30D202 - mov rcx,[ACValhalla.exe+5A75D10] // rcx == hash (e.g.: 000001B91B791DD5 // Valkyrie Bracers)
ACValhalla.exe+2D52C92 - 45 33 C9 - xor r9d,r9d // this has to be set to -1 to get item leveled up to max
ACValhalla.exe+2D52C95 - C7 44 24 30 0D000000 - mov [rsp+30],0000000D // this is set to 2 to indicate loot
ACValhalla.exe+2D52C9D - 45 33 C0 - xor r8d,r8d // for auto-scaling of level, set to 1
ACValhalla.exe+2D52CA0 - C6 44 24 28 01 - mov byte ptr [rsp+28],1 // indicates if item is base or from an event
ACValhalla.exe+2D52CA5 - C7 44 24 20 00000000 - mov [rsp+20],00000000 // quality (max. is 0x3, so don't use random crap or crash)
ACValhalla.exe+2D52CAD - E8 1E80FDFF - call ACValhalla.exe+2D2ACD0 // GetItem
ACValhalla.exe+2D52CB2 - 48 83 C4 48 - add rsp,48
ACValhalla.exe+2D52CB6 - C3 - ret
Even with the above, if you go to main menu and back in-game, you will still lose them. So the above is
not a fix for Helix items getting removed from your inventory. It is a fix for the calling convention, which you'll have to adjust in the Inventory Editor code.
BR,
Sun