03-17-2018, 04:22 PM
Life/mana are stored with 6 hidden bits of precision as a 32-bit little endian number. Monster HP is also stored this way. To convert real data into displayed data, divide by 0n64 (or 0x40). Conversely, to convert displayed data into in-memory data, multiply by 0n64.
Items morph because they are stored on disk (and sent over the network) as the minimum data required to rerun the code that generated the item when it was first dropped. Items are regenerated from that data on receipt over the network or from disk. If you change a derived field, it reverts when the item is regenerated. If you change the data tables (such as modifying qlevels), then subsequent regeneration derives different results, hence the items morph.
If you have other specific questions, post them separate from your speculation and results. I may be able to address them.
Items morph because they are stored on disk (and sent over the network) as the minimum data required to rerun the code that generated the item when it was first dropped. Items are regenerated from that data on receipt over the network or from disk. If you change a derived field, it reverts when the item is regenerated. If you change the data tables (such as modifying qlevels), then subsequent regeneration derives different results, hence the items morph.
If you have other specific questions, post them separate from your speculation and results. I may be able to address them.