diff --git a/Data/scripts/quests/etc/etc1g5.lua b/Data/scripts/quests/etc/etc1g5.lua new file mode 100644 index 00000000..3a3bba1e --- /dev/null +++ b/Data/scripts/quests/etc/etc1g5.lua @@ -0,0 +1,104 @@ +require ("global") + +--[[ + +Quest Script + +Name: The Search for Sicksa +Code: Etc1g5 +Id: 110659 +Prereq: Level 10, Any Class + +]] + +-- Sequence Numbers +SEQ_000 = 0; -- Kill Bristletail Marmots. +SEQ_001 = 1; -- Talk to Beli. + +-- Actor Class Ids +ENPC_BELI = 1001077; +BNPC_BRISTLETAIL_MARMOT = 2104022; + +-- Quest Markers +MRKR_BRISTLETAIL_AREA = 11065901; +MRKR_BELI = 11065902; + +-- Counters +COUNTER_MARMOTHIDE = 0; + +-- Quest Details +OBJECTIVE_MARMOTHIDE = 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_BELI, QFLAG_PLATE); + elseif (sequence == SEQ_000) then + quest:SetENpc(ENPC_BELI); + quest:SetENpc(BNPC_BRISTLETAIL_MARMOT); + elseif (sequence == SEQ_001) then + quest:SetENpc(ENPC_BELI, QFLAG_REWARD); + end +end + +function onTalk(player, quest, npc, eventName) + local npcClassId = npc.GetActorClassId(); + local seq = quest:GetSequence(); + + -- Offer the quest + if (npcClassId == ENPC_BELI and seq == SEQ_ACCEPT) then + local questAccepted = callClientFunction(player, "delegateEvent", player, quest, "processEventLahonoStart"); + if (questAccepted == 1) then + player:AcceptQuest(quest); + end + player:EndEvent(); + return; + -- Quest Progress + elseif (seq == SEQ_000) then + if (npcClassId == ENPC_BELI) then + callClientFunction(player, "delegateEvent", player, quest, "processEventFree"); + end + --Quest Complete + elseif (seq == SEQ_001) then + if (npcClassId == ENPC_BELI) then + callClientFunction(player, "delegateEvent", player, quest, "processEventAfter"); + 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_BRISTLETAIL_MARMOT) then + local counterAmount = quest:GetData():IncCounter(COUNTER_MARMOTHIDE); + attentionMessage(player, 51062, 0, counterAmount, 4); -- You obtain + if (counterAmount >= OBJECTIVE_MARMOTHIDE) then + attentionMessage(player, 25225, quest:GetQuestId()); -- Objectives complete! + quest:StartSequence(SEQ_001); + end + end +end + +function getJournalInformation(player, quest) + return quest:GetData():GetCounter(COUNTER_MARMOTHIDE); +end + +function getJournalMapMarkerList(player, quest) + local sequence = quest:getSequence(); + + if (sequence == SEQ_000) then + return MRKR_BRISTLETAIL_AREA; + elseif (sequence == SEQ_001) then + return MRKR_BELI; + end +end \ No newline at end of file diff --git a/Data/scripts/quests/etc/etc1l1.lua b/Data/scripts/quests/etc/etc1l1.lua new file mode 100644 index 00000000..4a9cbe04 --- /dev/null +++ b/Data/scripts/quests/etc/etc1l1.lua @@ -0,0 +1,104 @@ +require ("global") + +--[[ + +Quest Script + +Name: Bridging the Gap +Code: Etc1l1 +Id: 110634 +Prereq: Level 10, Any Class + +]] + +-- Sequence Numbers +SEQ_000 = 0; -- Kill Toll Puks. +SEQ_001 = 1; -- Talk to Hihine. + +-- Actor Class Ids +ENPC_HIHINE = 1000267; +BNPC_TOLL_PUK = 2100113; + +-- Quest Markers +MRKR_TOLLPUK_AREA = 11063401; +MRKR_HIHINE = 11063402; + +-- Counters +COUNTER_KILLS = 0; + +-- Quest Details +OBJECTIVE_KILLS = 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_HIHINE, QFLAG_PLATE); + elseif (sequence == SEQ_000) then + quest:SetENpc(ENPC_HIHINE); + quest:SetENpc(BNPC_TOLL_PUK); + elseif (sequence == SEQ_001) then + quest:SetENpc(ENPC_HIHINE, QFLAG_REWARD); + end +end + +function onTalk(player, quest, npc, eventName) + local npcClassId = npc.GetActorClassId(); + local seq = quest:GetSequence(); + + -- Offer the quest + if (npcClassId == ENPC_HIHINE and seq == SEQ_ACCEPT) then + local questAccepted = callClientFunction(player, "delegateEvent", player, quest, "processEventHihineStart"); + if (questAccepted == 1) then + player:AcceptQuest(quest); + end + player:EndEvent(); + return; + -- Quest Progress + elseif (seq == SEQ_000) then + if (npcClassId == ENPC_HIHINE) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent005_2"); + end + --Quest Complete + elseif (seq == SEQ_001) then + if (npcClassId == ENPC_HIHINE) 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_TOLL_PUK) then + local counterAmount = quest:GetData():IncCounter(COUNTER_SLUMBERNUT); + attentionMessage(player, 51062, 0, counterAmount, 4); -- You obtain + if (counterAmount >= OBJECTIVE_SLUMBERNUT) then + attentionMessage(player, 25225, quest:GetQuestId()); -- Objectives complete! + quest:StartSequence(SEQ_001); + end + end +end + +function getJournalInformation(player, quest) + return quest:GetData():GetCounter(COUNTER_SLUMBERNUT); +end + +function getJournalMapMarkerList(player, quest) + local sequence = quest:getSequence(); + + if (sequence == SEQ_000) then + return MRKR_TOLLPUK_AREA; + elseif (sequence == SEQ_001) then + return MRKR_HIHINE; + end +end \ No newline at end of file diff --git a/Data/scripts/quests/etc/etc1u1.lua b/Data/scripts/quests/etc/etc1u1.lua new file mode 100644 index 00000000..d5c13804 --- /dev/null +++ b/Data/scripts/quests/etc/etc1u1.lua @@ -0,0 +1,104 @@ +require ("global") + +--[[ + +Quest Script + +Name: Sleepless in Eorzea +Code: Etc1u1 +Id: 110676 +Prereq: Level 10, Any Class + +]] + +-- Sequence Numbers +SEQ_000 = 0; -- Kill Nutgrabber Marmots. +SEQ_001 = 1; -- Talk to Kukusi. + +-- Actor Class Ids +ENPC_KUKUSI = 1001463; +BNPC_NUTGRABBER_MARMOT = 2104021; + +-- Quest Markers +MRKR_NUTGRABBER_AREA = 11067601; +MRKR_KUKUSI = 11067602; + +-- Counters +COUNTER_SLUMBERNUT = 0; + +-- Quest Details +OBJECTIVE_SLUMBERNUT = 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_KUKUSI, QFLAG_PLATE); + elseif (sequence == SEQ_000) then + quest:SetENpc(ENPC_KUKUSI); + quest:SetENpc(BNPC_NUTGRABBER_MARMOT); + elseif (sequence == SEQ_001) then + quest:SetENpc(ENPC_KUKUSI, QFLAG_REWARD); + end +end + +function onTalk(player, quest, npc, eventName) + local npcClassId = npc.GetActorClassId(); + local seq = quest:GetSequence(); + + -- Offer the quest + if (npcClassId == ENPC_KUKUSI and seq == SEQ_ACCEPT) then + local questAccepted = callClientFunction(player, "delegateEvent", player, quest, "processEventKukusiStart"); + if (questAccepted == 1) then + player:AcceptQuest(quest); + end + player:EndEvent(); + return; + -- Quest Progress + elseif (seq == SEQ_000) then + if (npcClassId == ENPC_KUKUSI) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent000_2"); + end + --Quest Complete + elseif (seq == SEQ_001) then + if (npcClassId == ENPC_KUKUSI) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent000_3"); + 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_NUTGRABBER_MARMOT) then + local counterAmount = quest:GetData():IncCounter(COUNTER_SLUMBERNUT); + attentionMessage(player, 51062, 0, counterAmount, 4); -- You obtain + if (counterAmount >= OBJECTIVE_SLUMBERNUT) then + attentionMessage(player, 25225, quest:GetQuestId()); -- Objectives complete! + quest:StartSequence(SEQ_001); + end + end +end + +function getJournalInformation(player, quest) + return quest:GetData():GetCounter(COUNTER_SLUMBERNUT); +end + +function getJournalMapMarkerList(player, quest) + local sequence = quest:getSequence(); + + if (sequence == SEQ_000) then + return MRKR_NUTGRABBER_AREA; + elseif (sequence == SEQ_001) then + return MRKR_KUKUSI; + end +end \ No newline at end of file