gvargas wrote: ↑Sat Nov 02, 2019 3:29 am
Valatros wrote: ↑Fri Nov 01, 2019 9:22 pm
A minor contribution that I always make for myself in atelier games. The LUA below can be run in cheat engine to generate a nested list of 125 basket slots quality. Set the root value to anything and it'll change the whole basket's quality. Can also do what I do and set the root to 999 and freeze it, making everything that goes into your basket max quality without having to look at it.
Is it possible to make a script or LUA to fill the container with one of each item in the game (excluding key items of course), I used to make this code for the PS4 using SaveWizard but here I'm clueless, I know the added items will not have any Traits or Effects but that can be solved manually as needed, the idea is to have like 5 of each materials at high quality so you can synthesize anything...
I mean... hypothetically? I think doing that via LUA would crash cheat engine and/or the game because that would be producing and editing 5000 codes at once... though I guess we could truncate it down to just however many items there are, but I don't even know how many there are.
I'll go ahead and crank one out real quick, gimme 10 or 15 min and I'll edit it in, but uh... I absolutely super very much do not recommend it.
Edit: Whelp, here it is.
local al = getAddressList()
local base = al.createMemoryRecord()
base.Description = "Container ID Codes (first 800 slots)"
base.IsGroupHeader = true
base.options = "[moActivateChildrenAsWell, moDeactivateChildrenAsWell, moRecursiveSetValue, moAllowManualCollapseAndExpand]"
local addr = "Atelier_Ryza.exe+0139AB08"
local IDValue = 0
local offsetID = 0x98c
local slotnum = 1
for i = 1, 800 do
local recID = al.createMemoryRecord()
local headertxt = string.format("Item ID Slot %d", slotnum)
recID.Description = headertxt
recID.Address = addr
recID.OffsetCount = 1
recID.Offset[0] = offsetID
recID.appendToEntry(base)
recID.type = vtWord
recID.Value = IDValue
IDValue = IDValue + 1
offsetID = offsetID + 0x42
slotnum = slotnum + 1
end
It does run without issue, I shortened it to 800 instead of the entire container since the ID list we have seems to stop at that point, but if you want more just edit the "1, 800" to "1, <Whatever>". First flaw is it doesn't edit from the "beginning" of the container, just the random slot I got the pointer to. I couldn't find the absolutely-certain-"first" slot because the game stores items in a weird way (I think in order found, but with exceptions for key items?). So I just found a pointer to a random slot in my container (but relatively early, my first clear water) and overwrote the next 800 slots from there. Second flaw is it has no concern for whatever its overwriting, and doesn't change a single damn thing about effects. So most of your items will be blank, or carry over whatever the items they replaced used to have. Third flaw I don't think it cares about key items or non-key (I didn't actually play with it much, because that is definitely not something I want to use in my game. Just a quick skim through my container to see that it was in fact full of new things I've never seen before). Fourth flaw is it doesn't add any of the items to your guide. This might change if you use them in a synthesis? Untested and I'm out of time before work.
They're there, though! In all their broken glory. It would be fairly trivial to make it edit effects in order or traits or what have you, but unfortunately effect ID's aren't in order with the item they're meant to appear on, so making it the *right* effects via a script would be impossible. Could make it just apply them all in order over and over again if you want?
All in all I made it because I could but I stand by my original assessment that this is not a good idea, heh.