I was tracing down the Linkdead/Revive zone crashes stuff when I got tired of waiting 2 minutes for my World to start due to Items/Spells/Spawns, so I pointed it to a new DB, then copied my character* tables to the new empty DB.
Well, my existing Characters tables had Passive spells in them because I was Human and had that set up for testing. However, the new DB has no Spells at all, so this is why I suspect a bug in the new Passive Spells code. If a character has a trait that doesn't exist in the DB, let's catch any crashes that might occur trying to use them.
The risk of this crash is very low, since "real people" won't be copying character* tables like I do. I just don't like crashes, no matter what
Edit: okay, maybe this is a little riskier than I originally thought. Not doing any Revive stuff here, just camping and even on my empty (spawnless, spellless) DB, I am getting zone exceptions.
12:50:52 I ZoneAuth: Access Key: 1342295451, Character Name: John, Account ID: 1
12:50:52 D Player: Loading character for 'John' (char_id: 1)
12:50:52 D World: Classes::GetBaseClass returning base class ID: 1
12:50:52 D World: Classes::GetSecondaryBaseClass returning secondary class ID: 2
12:50:52 D Player: Loading character_details for 'John' (char_id: 1)
12:50:52 D Player: Toggling Character OFFLINE!
12:50:52 D Client: SendLoginInfo to new client...
12:50:52 D World: Increment Server_Accepted_Connection + 1
12:50:52 D Client: Populate Skill Map...
12:50:52 D Client: Toggle Character Online...
12:50:52 D Player: Toggling Character ONLINE!
12:50:52 D Client: Loading Character Skills for player 'John'...
12:50:52 D World: Loading Titles for player 'John'...
12:50:52 D World: Loading Languages for player 'John'...
12:50:52 E Zone: Error Processing SpawnLoop, shutting down zone 'QueensColony'...
12:50:52 D Client: No character languages loaded!
12:50:52 D Client: No character spells found!
12:50:52 D Player: Adding default spells for race: 9, class: 3 for char_id: 1
12:50:52 D World: Classes::GetSecondaryBaseClass returning secondary class ID: 2
12:50:52 D World: Classes::GetBaseClass returning base class ID: 1
12:50:52 D Client: No character recipe books found!
12:50:52 W World: No MOTD set. Sending generic message...
12:50:52 D World: Sending FriendList...
12:50:52 D Player: Loading Player Factions...
12:50:52 D Player: Loading Character Quests...
12:50:52 D Player: Loading Player Mail...
12:50:52 D Client: Send Quest Journal...
12:50:52 D Client: Loading Faction Updates...
12:50:52 D Client: Send Command List...
12:50:52 D Client: Send Language Updates...
12:50:52 D Player: Getting current language for player 'John'...
12:50:52 D Player: Language ID: 0
12:50:52 D Client: SendFriendList
12:50:52 D Client: SendIgnoreList
12:50:52 D Zone: Sending login equipment appearance updates...
12:50:52 D Zone: Calling clients.Remove(client)...
12:50:52 D Zone: Processing RemoveSpawn function...
12:50:52 D Zone: Processing RemoveSpawnSupportFunctions...
12:50:52 D Zone: Processing RemoveDeadEnemyList...
12:50:52 D Zone: Processing RemoveDeadEnemyList...
12:50:52 D Zone: Done processing RemoveSpawn function...
12:50:52 D World: Removing client 'John' (1) due to some mysterious reason...
12:50:52 I Zone: Removing connection for client 'John'.
12:50:52 D Player: Toggling Character OFFLINE!
12:50:52 I Zone: Scheduling client 'John' for removal.
12:50:52 D Player: Toggling Character OFFLINE!
12:50:52 D CClient: Client Disconnect...
12:50:52 I Zone: Initiating zone shutdown of 'QueensColony'
12:51:06 D World: Removing connection...
12:51:12 E Mutex: Possible deadlock attempt by 'ZoneServer::MMasterSpawnLock'!
12:51:56 D Zone: Processing RemoveSpawn function...
12:51:56 D Zone: Processing RemoveSpawnSupportFunctions...
12:51:56 E World: Exception caught in net main loop!