We're using the feeding tables from the PMT file, but for some reason, certain mags still have a slight desync, not really sure why that's the case. We'd have to reverse the client to see what we're doing differently than it.
Anyhow, nothing really you can do about it now. I can replace your mag for you, if you want. Just PM me and I'll get on at a time that's convenient for you to do so, thanks.
Sodaboy Thanks but I have begun to feed as it is not so bad. Now this mag is an ila with PB's: M&Y, Estlla and Pilla. In the near future the stats will be 5/5/20/170. Not bad for a mind mag I will keep reporting bugs.
Are you accounting for Mag stat bars with odd values getting rounded down to the previous even value when you bank the Mag or go to the lobby? That can wreak havoc on your Mag, especially if you're using the bank "glitch" to gain as little DEF as possible on your Mag.
No, I don't think we do any rounding down. I didn't know the client did that.
So when mags get banked or a client goes back to the lobby, we're supposed to turn 97 into 96, and 53 into 52?
One thing I noticed, which was odd, I was testing with a generated Sato that had 5 out of 100 defense and feeding it a monomate, which would make it 1/100 defense. On the client, PSO didn't adjust the value at all, but the server did.
The reason I say it's strange is because, with Sato, I did another test with a Trimate, setting dex to 5/100 and feeding it a Trimate, which is -4 to DEX, and the client did that adjustment, bringing dex to 1/100... so why didn't it do def -4?
The client is super strange. Despite rewriting the Mag format for GC, Sega still didn't pick a sane format. For whatever reason, when you're feeding a Mag in your inventory, the bars are represented by 100 points, and items are allowed to give an odd number of points. When you put the Mag in the bank, quit, or go to the lobby, odd values are divided by two and remainders are discarded, because the Mag data stores the bars out of 50 points, rather than 100. When you start the game again, make a new team, or take the Mag out of your bank, PSO doubles the Mag's bar stats to put them back on a scale of 100 for subsequent feeding.
Somehow the client is able to track your feeding bars out of 100 when your data is in limbo (not saved), even though the actual Mag data doesn't support that. You can use this quirk to raise Mags in an insanely slow fashion to get a few extra points of POW or MIND than you could otherwise: if you feed your Mag only one mate or fluid (which likely gives an odd amount of DEF, e.g. 5) and then bank it, the rounding mechanism causes the DEF to decrease by 1, so when you withdraw your Mag, it only gained 4 DEF, rather than 5. Banking your Mag resets the feeding timer, so you can only feed one item every three minutes this way, but it does allow you to get about 3 extra POW or MIND than if you just fed your Mag three items at a time.
As far as I can tell this behaviour is totally insane, but you have to copy it in the server, or you'll never be able to escape Mag feeding desyncs where you withdraw your Mag and find that it either has different stats than it did before or that it didn't evolve the way you thought it did.
That would explain why some people magically have one extra level after raising their mag for so long. Because we're not shaving that off.
I imagine the mag is still in limbo even after you put it in the bank unless you actually exit the bank. 'cuz I know the client doesn't forget about the status of mags unless you put it in the bank, leave the bank, and then ask the server what's in your bank again. That's the only way to tell what was desync'd, other than changing blocks.
So, I'll code whenever we send character data that contains a mag or a bank item, we 'll strip off bit 0 in each value. (Basically what makes any number odd. )
I had a similar issue just now. My mag was a 34 kalki with 1 feed to go, and then when I recreated my game it was already a 35 Ashvinau. But I wanted to evolve it to a Mitra. Could I get these reversed?