Browse Source

Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu

devn00b 4 years ago
parent
commit
73d7b0266d

+ 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++;

BIN
server/EQ2World__Debug_x64.exe


+ 76 - 0
server/Quests/Antonica/SuspiciousActivity.lua

@@ -0,0 +1,76 @@
+--[[
+	Script Name		:	SuspiciousActivity.lua
+	Script Purpose	:	Handles the quest, "Suspicious Activity"
+	Script Author	:	
+	Script Date		:	
+	Script Notes	:	
+
+	Zone			:	Antonica
+	Quest Giver		:	Tyllia Navar
+	Preceded by		:	None
+	Followed by		:	None
+--]]
+
+local QuestID = 3000
+
+function Init(Quest)
+	SetQuestFeatherColor(Quest, 3)
+	AddQuestStepKill(Quest, 1, "I need to kill five Sabertooth runts.", 5, 100, "I need to do what Tyllia has asked of me.", 1221, 121248,120092)
+	AddQuestStepKill(Quest, 2, "I need to kill two Sabertooth neophytes.", 2, 100, "I need to do what Tyllia has asked of me.", 1220, 121269,120123)
+	AddQuestStep(Quest, 3, "I need to inspect the boat on the south shore south west of where Tyllia is.", 1, 100, "I need to do what Tyllia has asked of me.", 830)
+	AddQuestStepCompleteAction(Quest, 1, "Step1Complete")
+	AddQuestStepCompleteAction(Quest, 2, "Step2Complete")
+	AddQuestStepCompleteAction(Quest, 3, "Step3Complete")
+end
+
+function Step1Complete(Quest, QuestGiver, Player)
+	UpdateQuestStepDescription(Quest, 1, "I've killed five Sabertooth runts.")
+	CompleteStage1Check(Quest, Player)
+
+	--AddQuestStepKill(Quest, 2, "I need to kill ten snakes.", 10, 100, "I need to head out into Antonica and kill the vermin that infest the land; rats, snakes and beetles. Knight-Lieutenant Alesso said I should kill about ten of each.", 1908, 120068, 121226, 121347)
+	--AddQuestStepCompleteAction(Quest, 2, "Step2Complete")
+end
+
+function Step2Complete(Quest, QuestGiver, Player)
+	UpdateQuestStepDescription(Quest, 2, "I've killed two Sabertooth neophytes.")
+	CompleteStage1Check(Quest, Player)
+end
+
+function Step3Complete(Quest, QuestGiver, Player)
+	UpdateQuestStepDescription(Quest, 3, "I have inspected the boat and found it mostly empty.")
+	CompleteStage1Check(Quest, Player)
+end
+
+function CompleteStage1Check(Quest, Player)
+	if QuestStepIsComplete(Player, QuestID, 1) and QuestStepIsComplete(Player, QuestID, 2) and QuestStepIsComplete(Player, QuestID, 3) then
+		UpdateQuestTaskGroupDescription(Quest, 1, "I have done what Tyllia asked of me.")
+		AddQuestStep(Quest, 4, "I need to return to Tyllia now that I have done all that she asked.", 1, 100, "I have done what Tyllia asked of me.", 11)
+		AddQuestStepCompleteAction(Quest, 4, "Step4Complete")
+	end
+end
+
+function Step4Complete(Quest, QuestGiver, Player)
+	UpdateQuestStepDescription(Quest, 4, "I have spoken with Tyllia.")
+	UpdateQuestDescription(Quest, "I did as Tyllia asked and slew the gnolls. Unfortunately there was nothing in the boat.")
+	GiveQuestReward(Quest, Player)
+end
+
+function Reload(Quest, QuestGiver, Player, Step)
+	if Step == 1 then
+		Step1Complete(Quest, QuestGiver, Player)
+	elseif Step == 2 then
+		Step2Complete(Quest, QuestGiver, Player)
+	elseif Step == 3 then
+		Step3Complete(Quest, QuestGiver, Player)
+	elseif Step == 4 then
+		QuestComplete(Quest, QuestGiver, Player)
+	end
+end
+
+function Accepted(Quest, QuestGiver, Player)
+	-- Add dialog here for when the quest is accepted
+end
+
+function Declined(Quest, QuestGiver, Player)
+	-- Add dialog here for when the quest is declined
+end

+ 122 - 7
server/SpawnScripts/Antonica/TylliaNavar.lua

@@ -1,24 +1,139 @@
 --[[
-	Script Name		:	TylliaNavar-Say.lua
+	Script Name		:	TylliaNavar.lua
 	Script Purpose	:	Tyllia Navar
-	Script Author	:	Jabantiz
-	Script Date		:	08/29/2019
-	Script Notes	:	Auto-Generated from a chat log using SpawnScriptDesigner, Say()'s ONLY
+	Script Author	:	Emagi
+	Script Date		:	05/14/2020
+	Script Notes	:	Made from General/1028/Antonica-Mar15-v3.log
 --]]
 
-require "SpawnScripts/Generic/DialogModule"
+local QUEST_1 = 3000
 
 function spawn(NPC)
-
+	ProvidesQuest(NPC, QUEST_1)
 end
 
 function respawn(NPC)
 	spawn(NPC)
 end
 
+local greetingsTable = { "voiceover/english/voice_emotes/greetings/greetings_1_1061.mp3",
+						 "voiceover/english/voice_emotes/greetings/greetings_2_1061.mp3",
+						 "voiceover/english/voice_emotes/greetings/greetings_3_1061.mp3"};
+
 function hailed(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	math.randomseed(os.time());
+	conversation = CreateConversation()
+	local introMsg = "Greetings, you are welcome to rest here, but please be quiet and start no fires."
+	local hasSuspiciousActivityQuest = HasQuest(Spawn, QUEST_1)
+	local suspiciousActivityQuestComplete = false
+	if HasCompletedQuest(Spawn, QUEST_1) then
+		suspiciousActivityQuestComplete = true
+		hasSuspiciousActivityQuest = true
+	end
+	if hasSuspiciousActivityQuest == true then
+		introMsg = "What of the boat and the gnolls?"
+		if QuestStepIsComplete(Spawn, QUEST_1, 1) and QuestStepIsComplete(Spawn, QUEST_1, 2) and QuestStepIsComplete(Spawn, QUEST_1, 3) then
+			suspiciousActivityQuestComplete = true
+		end
+	end
+	
+	PlayFlavor(NPC, greetingsTable[math.random(#greetingsTable)], introMsg, "", 0, 0, Spawn)
+	
+	if hasSuspiciousActivityQuest == false and suspiciousActivityQuestComplete == false then
+		AddConversationOption(conversation, "What are you doing up here?", "dlg_0_2")
+		AddConversationOption(conversation, "Why is that?", "dlg_0_1")
+		StartConversation(conversation, NPC, Spawn, introMsg)
+	elseif hasSuspiciousActivityQuest == true and suspiciousActivityQuestComplete == false then
+		AddConversationOption(conversation, "I will return later.", "dlg_complete_0")
+		StartConversation(conversation, NPC, Spawn, introMsg)
+	else
+		AddConversationOption(conversation, "The gnolls are dead. The boat contained nothing, unfortunately.", "dlg_complete_1")
+		AddConversationOption(conversation, "I will return later.", "dlg_complete_0")
+		StartConversation(conversation, NPC, Spawn, introMsg)
+	end
+end
+
+function dlg_0_1(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "What are you doing up here?", "dlg_0_2")
+	StartConversation(conversation, NPC, Spawn, "The gnolls are foolish and unorganized, but they are not stupid. They would drive me away if they knew I was up here.")
+end
+
+function dlg_0_2(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "I am " .. GetName(Spawn) .. ".", "dlg_0_3")
+	StartConversation(conversation, NPC, Spawn, "Observing, of course. I am Tyllia Navar. And you?")
+end
+
+function dlg_0_3(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "What exactly are you observing?", "dlg_0_4")
+	StartConversation(conversation, NPC, Spawn, "It is nice to make your acquaintance, " .. GetName(Spawn) .. ".")
+end
+	
+
+function dlg_0_4(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "Who makes up the unit?", "dlg_0_5")
+	AddConversationOption(conversation, "And what have you found so far?", "dlg_0_6")
+	StartConversation(conversation, NPC, Spawn, "The gnolls of this area. After what has been going on in the lands closer to Qeynos her majesty has commissioned a special unit of the Qeynos Guard to collect intelligence on current and future gnoll threats. I am one third of that unit. This area is my charge.")
+end
+
+function dlg_0_5(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "And what have you found so far?", "dlg_0_6")
+	StartConversation(conversation, NPC, Spawn, "Magnon Baelvurn the former fisherman and Bulvar Rakgam, a self proclaimed \"true Halasian,\" make up the other two thirds of the unit. Magnon and I keep watch on the northern and southern portions of western Antonica, respectively. Magnon alone watches over the east side. We harry the gnolls to keep them from gaining strength. At the same time we watch for signs of concern.")
+end
+
+function dlg_0_6(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "What's so interesting about the cave?", "dlg_0_7")
+	StartConversation(conversation, NPC, Spawn, "The gnolls around here are suddenly more active. I have seen them using a small boat to carry things to and from the islands just south of here. It is a curious thing, and I wish to learn more of it, but right now my attention is on the cave north of here.")
+end
+
+function dlg_0_7(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "How can I help?", "dlg_0_8")
+	StartConversation(conversation, NPC, Spawn, "The gnolls have been hiding in there for some time now. They bring supplies in often, but they never bring anything out. I plan to see what is going on in there soon, but not before I finish collecting my information. You, though... you could help me.")
+end
 
 
-	Say(NPC, "I have heard stories and legends, but I have never seen the gnolls march like an army should.", Spawn)
+function dlg_0_8(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "What would you have me do?", "dlg_0_9")
+	StartConversation(conversation, NPC, Spawn, "It is almost time for me to move against the gnolls of this area. If you set them off balance to begin with--all while collecting information for me--it will set them up better for what I will do. Would you care to help, " .. GetName(Spawn) .. "?")
+end
+
+function dlg_0_9(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	conversation = CreateConversation()
+	AddConversationOption(conversation, "Alright.", "OfferQuest1")
+	StartConversation(conversation, NPC, Spawn, "For starters I'd like you to take out some of the neophytes and runts just south of here. There are far too many for now. While you're down there I'd also like you to check the contents of that small boat they've been using. You'll find it south west of here, on the rocky shore. Check its contents, if we know what they've been moving around we can get a better idea of what they're up to.")
+end
+
+function OfferQuest1(NPC, Spawn)
+	FaceTarget(NPC, Spawn)
+	OfferQuest(NPC, Spawn, QUEST_1)
+end
 
+function dlg_complete_1(NPC, Spawn)
+	if QuestStepIsComplete(Spawn, QUEST_1, 1) and QuestStepIsComplete(Spawn, QUEST_1, 2) and QuestStepIsComplete(Spawn, QUEST_1, 3) then
+		SetStepComplete(Spawn, QUEST_1, 4)
+	end
+	
+	if HasCompletedQuest(Spawn, QUEST_1) then
+		conversation = CreateConversation()
+		AddConversationOption(conversation, "I am willing.", "OfferQuest2")
+		AddConversationOption(conversation, "Not now.", "RejectQuest")
+		StartConversation(conversation, NPC, Spawn, "By Zek, an empty boat is worthless. At least the neophytes and runts have been slain. Their foul stench will soon return, however. I have another task for you if you're willing.")
+	end
 end

+ 28 - 0
server/SpawnScripts/Antonica/gnollboat.lua

@@ -0,0 +1,28 @@
+--[[
+	Script Name		:	SpawnScripts/Antonica/gnollboat.lua
+	Script Purpose	:	Support for quest Suspicious Activity from Tyllia Navar
+	Script Author	:	Emagi
+	Script Date		:	5/14/2020
+	Script Notes	:	
+--]]
+
+local QUEST_ID = 3000
+
+function spawn(NPC)
+end
+
+function respawn(NPC)
+	spawn(NPC)
+end
+
+function casted_on(NPC, Spawn, Message)
+	if Message == "inspect" then
+		Dialog1(NPC, Spawn)
+	end
+end
+
+function Dialog1(NPC, Spawn)
+	local conversation = CreateConversation()
+	StartDialogConversation(conversation, 1, NPC, Spawn, "The boat is empty. Its hull is wet suggesting recent use. There are scratches and claw marks over the entirety of the boat. It has not been properly taken care of, but it looks like it would still float.")
+	SetStepComplete(Spawn, QUEST_ID, 3)
+end