I am glad it's working for you.
I could easily make it just show the whole number. Just run it through a rounding function (which is already implemented, but not used in the exp funciton).It's more than likely that it still wont come out as the more-user-friendly whole number like the other skills, but it's worth a shot
However I didn't do that, because it would effectively make changes even if you don't make changes there (increasing/decreasing your exp a tiny bit)
and this way it is a little more precise.
Well yeah, I do have some experience. But I haven't done it in a while either and I would still find them fairly easily.True, when you've done it for a while [...]
I'm also just using a flat hex viewer/editor, so I'm essentially wading through every byte each time (often with duplicates of certain items), so getting the precise one I want can be annoying. Also, the way the game sometimes (even there its not always consistant) stores items based on the order acquired/deposited does make it less intuitive than simply comparing them to the displayed order in-game (in-game it's sorted logically when displayed rather than actually reorganizing the actual data. I confirmed this by changing a weapon into a consumable, loadong the game, then re-saving and checking the new save data. The item didn't move despite being displayed under the new appropriate tab in-game).
I also do use a Hex Editor to edit, however I did write an Offset Generation Tool (which was basically the prototype of a function needed for an item editor).
The way storing works is actually fairly easy. It starts at the first slot and then goes in order of storing. But if any slot gets emptied, this slot will be refilled next. Saving and then restarting the game will fix the order and basically shift the items to "clear" empry slots (at least from what I've seen).
My Stuff does auto-backuping anyway (unless turned off). That's a safety function I usually implement.That should be all thats needed. The items (regardless of type) still keep the same general byte order, anyway. Something that simply points to the values for a particular item slot and effectively translates the little-endian floats for defense/attack values, item quantity and item quality would be enough (Doesnt even need to translate the hex values to what they represent in-game). The only extra precaution needs to be people remembering to make their own backups before editing - and that's not really on you.
The Byte structure does change depending on type. Food and similar Items don't have a Quality Byte at all. The "+" is a completely different Item.
And then the Quality Byte also changes position for some types. Same for Dmg/Def Bytes and Effect Bytes. Armors for example have a 2 Byte shift over Weapons.
The conversion wouldn't be a Problem. However this is additional to the normal item stats. If your bow has 12 base damage and you put 1000, expecting to have a 1000 damage Bow you will instead end up with 1012.
And there is no way to actually "fix" that unless I define every single Item.
The Translation of hex values to their respective Item/Effect Names is one of the easiest things. And that was one of the first things I did. (The List Dump includes Hex and Name anyway. So "importing" that dump is not a difficulty. But the types are not included in ram and therefore not easily dumpable. SO unless I go through every item manually to add a type - which I wont - or come up with a 100% way of type detection more than that is not going to happen. So if anyone comes up with a way of detecting the item type (based on the structure in hex) that works at least 95% of the time - let me know.
It currently can perfectly list all Items in Inventory (Names Only) and then load them up in a different window. The User then has to select the Item Type (because there is no automatic byte struct detection).
Afterwards all edits can be made and saved to the item (Includes: Item, Creator, Color, Quality, [M]Dmg/[M]Def, Effect, Quantity -Given the Byte Struct includes these).
Then the edits can be saved and the edited save can be reinjected.
Last edited by TheDeKay,