Daenks/Meridian59_103 — pull request #638 by skittles1 (2014-09-15 21:01:11+00:00)
Title: Fix Phase non-removal under rare conditions, interactions between freeze/reactivate enchantments in Player/Phase.

Last (hopefully) PE timer/Phase fix. When everyone is kicked off during a server reboot, they are saved in the state they are in; e.g. if a player is phased out they are kept that way. When the server reboots it tries to log the user off, but because the spell table in system.kod isn't loaded yet it can't remove the Phase enchantment as user.kod uses FindSpellByNum which needs to access this table. Instead, it now runs through the user's enchantments (possibly a fraction of a second slower than the spell lookup?) and checks for Phase by class. This successfully finds and removes the Phase enchantment during server reboot.

Fixed up a bad interaction due to my previous attempts at fixing the Phase/PE issues. Also included a timer check in ReactivateAllEnchantments, so in the future any incorrect interaction with enchantments switching between integer and timer gets caught and logged with meaningful information.