Originally posted by [b]theultramage[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=2211
I need to get rid of this:
CODE
//FIXME: is this neccessary? [ultramage]
for(i=0;i<MAX_SKILL;i++)
if ((p->skill[i].lv != 0) && (p->skill[i].id == 0))
p->skill[i].id = i; // Fix skill tree
this thing is in the sql charserver saving code. It apparently re-enables skills that were 'hidden' by the mapserver (hidden but not forgotten). The trick here is that skill[i].id == i, therefore recovery is possible.
I traced this change to
r700 and
r764. But why is this sort of adjustment even done on the charserver? Also, I am unable to find the equivalent in the TXT charserver code.
Perhaps this thing has been superceded by some followup fix and left forgotten? I'd suggest adding a debug message in there, and doing a few tests to see if the code indeed makes a difference when it's there.