Browse Source

Crash fixes for quests

Image 4 years ago
parent
commit
e97475c1aa
2 changed files with 12 additions and 2 deletions
  1. 2 1
      EQ2/source/WorldServer/Player.cpp
  2. 10 1
      EQ2/source/WorldServer/WorldDatabase.cpp

+ 2 - 1
EQ2/source/WorldServer/Player.cpp

@@ -3842,7 +3842,8 @@ bool Player::GetQuestStepComplete(int32 quest_id, int32 step_id){
 	MPlayerQuests.lock();
 	if(player_quests.count(quest_id) > 0){
 		Quest* quest = player_quests[quest_id];
-		ret = quest->GetQuestStepCompleted(step_id);
+		if ( quest != NULL )
+			ret = quest->GetQuestStepCompleted(step_id);
 	}
 	MPlayerQuests.unlock();
 	return ret;

+ 10 - 1
EQ2/source/WorldServer/WorldDatabase.cpp

@@ -4551,7 +4551,16 @@ int32 WorldDatabase::LoadQuests(){
 				LogWrite(QUEST__DEBUG, 5, "Quests", "\tLoading Quest: '%s' (%u)", name, id);
 
 				LoadQuestDetails(quest);
-				quest->SetCompletedDescription(string(completed_description));
+				string compDescription;
+				if (completed_description == NULL)
+				{
+					compDescription = string("Missing! Notify Developer");
+					LogWrite(QUEST__WARNING, 5, "Quests", "\tLoading Quest MISSING completed_text in quests table for: '%s' (%u)", name, id);
+				}
+				else
+					compDescription = string(completed_description);
+
+				quest->SetCompletedDescription(string(compDescription));
 				quest->SetQuestReturnNPC(return_npc_id);
 				quest->SetEncounterLevel(enc_level);
 				total++;