From b9ab842fdd9430e75d7f4162d3eaebb205b02323 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 24 Feb 2022 19:31:32 -0500 Subject: [PATCH] Added Spores on the Brain --- Data/scripts/quests/wld/wld0g3.lua | 4 +- Data/scripts/quests/wld/wld0g4.lua | 104 +++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 Data/scripts/quests/wld/wld0g4.lua diff --git a/Data/scripts/quests/wld/wld0g3.lua b/Data/scripts/quests/wld/wld0g3.lua index c3cd8740..e7577ccb 100644 --- a/Data/scripts/quests/wld/wld0g3.lua +++ b/Data/scripts/quests/wld/wld0g3.lua @@ -12,8 +12,8 @@ Prereq: Level 17, Any Class ]] -- Sequence Numbers -SEQ_000 = 0; -- Kill Sabletooth Spriggans. -SEQ_001 = 1; -- Talk to Marcette. +SEQ_000 = 0; -- Kill Oilbugs. +SEQ_001 = 1; -- Talk to Eugenaire. -- Actor Class Ids ENPC_EUGENAIRE = 1001190; diff --git a/Data/scripts/quests/wld/wld0g4.lua b/Data/scripts/quests/wld/wld0g4.lua new file mode 100644 index 00000000..ddf27916 --- /dev/null +++ b/Data/scripts/quests/wld/wld0g4.lua @@ -0,0 +1,104 @@ +require ("global") + +--[[ + +Quest Script + +Name: Spores on the Brain +Code: Wld0g4 +Id: 110765 +Prereq: Level 11, Any Class, Requires "In the Name of Science" + +]] + +-- Sequence Numbers +SEQ_000 = 0; -- Kill Mature Funguars. +SEQ_001 = 1; -- Talk to Marcette. + +-- Actor Class Ids +ENPC_MARCETTE = 1001583; +BNPC_MATURE_FUNGUAR = 2105916; + +-- Quest Markers +MRKR_MARCETTE = 11120302; +MRKR_FUNGUAR_AREA = 11120301; + +-- Counters +COUNTER_SPORESAC = 0; + +-- Quest Details +OBJECTIVE_SPORESAC = 8; + +function onStart(player, quest) + quest:StartSequence(SEQ_000); +end + +function onFinish(player, quest) +end + +function onStateChange(player, quest, sequence) + if (sequence == SEQ_ACCEPT) then + quest:SetENpc(ENPC_MARCETTE, QFLAG_PLATE); + elseif (sequence == SEQ_000) then + quest:SetENpc(ENPC_MARCETTE); + quest:SetENpc(BNPC_MATURE_FUNGUAR); + elseif (sequence == SEQ_001) then + quest:SetENpc(ENPC_MARCETTE, QFLAG_REWARD); + end +end + +function onTalk(player, quest, npc, eventName) + local npcClassId = npc.GetActorClassId(); + local seq = quest:GetSequence(); + + -- Offer the quest + if (npcClassId == ENPC_MARCETTE and seq == SEQ_ACCEPT) then + local questAccepted = callClientFunction(player, "delegateEvent", player, quest, "processEventMarcetteStart"); + if (questAccepted == 1) then + player:AcceptQuest(quest); + end + player:EndEvent(); + return; + -- Quest Progress + elseif (seq == SEQ_000) then + if (npcClassId == ENPC_MARCETTE) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent000_2"); + end + --Quest Complete + elseif (seq == SEQ_001) then + if (npcClassId == ENPC_MARCETTE) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent010"); + callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9); + player:CompleteQuest(quest); + end + end + + quest:UpdateENPCs(); + player:EndEvent(); +end + +-- TODO FINISH THIS +function onKillBNpc(player, quest, bnpc) + if (bnpc == BNPC_MATURE_FUNGUAR) then + local counterAmount = quest:GetData():IncCounter(COUNTER_SPORESAC); + attentionMessage(player, 51062, 0, counterAmount, 4); -- You obtain + if (counterAmount >= OBJECTIVE_SPORESAC) then + attentionMessage(player, 25225, quest:GetQuestId()); -- Objectives complete! + quest:StartSequence(SEQ_001); + end + end +end + +function getJournalInformation(player, quest) + return quest:GetData():GetCounter(COUNTER_SPORESAC); +end + +function getJournalMapMarkerList(player, quest) + local sequence = quest:getSequence(); + + if (sequence == SEQ_000) then + return MRKR_FUNGUAR_AREA; + elseif (sequence == SEQ_001) then + return MRKR_MARCETTE; + end +end \ No newline at end of file