From b345521f799af1e90cba93757325b6de6e3009a1 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Tue, 21 Mar 2017 00:43:30 -0400 Subject: [PATCH] callClientFunction now returns ALL results. Fixed some scripts, finished fixing up Gridania opening script. --- .../chara/npc/monster/Wolf/WolfStandard.lua | 5 +++ .../base/chara/npc/object/MarketEntrance.lua | 4 +- .../commands/RequestInformationCommand.lua | 2 +- .../commands/RequestQuestJournalCommand.lua | 4 +- data/scripts/directors/OpeningDirector.lua | 4 +- data/scripts/global.lua | 3 +- data/scripts/quests/etc/etc3g0.lua | 19 +++++++++ data/scripts/quests/man/man0g0.lua | 8 +--- .../PopulaceStandard/papalymo.lua | 2 +- .../fst0Battle03/PopulaceStandard/yda.lua | 6 +-- .../fst0Town01a/PopulaceStandard/kinnison.lua | 42 +++++++++++++++++++ 11 files changed, 80 insertions(+), 19 deletions(-) create mode 100644 data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua create mode 100644 data/scripts/quests/etc/etc3g0.lua create mode 100644 data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua diff --git a/data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua b/data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua new file mode 100644 index 00000000..525bb8fc --- /dev/null +++ b/data/scripts/base/chara/npc/monster/Wolf/WolfStandard.lua @@ -0,0 +1,5 @@ +require ("global") + +function init(npc) + return true, true, 10, 0, 1, true, false, false, false, false, false, false, false, 0; +end \ No newline at end of file diff --git a/data/scripts/base/chara/npc/object/MarketEntrance.lua b/data/scripts/base/chara/npc/object/MarketEntrance.lua index 9a26d2d2..fb4deadc 100644 --- a/data/scripts/base/chara/npc/object/MarketEntrance.lua +++ b/data/scripts/base/chara/npc/object/MarketEntrance.lua @@ -12,11 +12,11 @@ eventPushStepPrvMarket(?, ?, ?) - require ("global") function init(npc) - return false, false, 0, 0; + return false, false, 0, 0; end function onEventStarted(player, npc, triggerName) - callClientFunction(player, "eventPushChoiceAreaOrQuest", 0xc13, 0xc1a, 0xdba,0, false, 0)); + callClientFunction(player, "eventPushChoiceAreaOrQuest", 0xc13, 0xc1a, 0xdba,0, false, 0); player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/commands/RequestInformationCommand.lua b/data/scripts/commands/RequestInformationCommand.lua index d46527c6..0681da49 100644 --- a/data/scripts/commands/RequestInformationCommand.lua +++ b/data/scripts/commands/RequestInformationCommand.lua @@ -4,6 +4,6 @@ --]] function onEventStarted(player, actor, questId) - player:SendRequestedInfo("requestedData", "activegl", 7, nil, nil, nil, nil, nil, nil, nil); + player:SendDataPacket("requestedData", "activegl", 7, nil, nil, nil, nil, nil, nil, nil); -- player:SendRequestedInfo("requestedData", "glHist", 10, 0x1D4F2, 1009, 12464, 11727, 12485, 12526); end diff --git a/data/scripts/commands/RequestQuestJournalCommand.lua b/data/scripts/commands/RequestQuestJournalCommand.lua index bb979a15..5fb64a6b 100644 --- a/data/scripts/commands/RequestQuestJournalCommand.lua +++ b/data/scripts/commands/RequestQuestJournalCommand.lua @@ -13,10 +13,10 @@ function onEventStarted(player, actor, trigger, questId, mapCode) end if (mapCode == nil) then - player:SendRequestedInfo("requestedData", "qtdata", quest:GetQuestId(), quest:GetPhase()); + player:SendDataPacket("requestedData", "qtdata", quest:GetQuestId(), 0); player:EndEvent(); else - player:SendRequestedInfo("requestedData", "qtmap", quest:GetQuestId()); + player:SendDataPacket("requestedData", "qtmap", quest:GetQuestId()); player:EndEvent(); end diff --git a/data/scripts/directors/OpeningDirector.lua b/data/scripts/directors/OpeningDirector.lua index b7e141e3..b9952fad 100644 --- a/data/scripts/directors/OpeningDirector.lua +++ b/data/scripts/directors/OpeningDirector.lua @@ -39,10 +39,10 @@ function onTalkEvent(player, npc) end elseif (player:HasQuest(110005) == true) then man0g0Quest = player:GetQuest("man0g0"); - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_TUTORIAL1_DONE) and man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == false) then + if (man0g0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == true and man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == false) then papalymo = GetWorldManager():GetActorInWorldByUniqueId("papalymo"); papalymo:SetQuestGraphic(player, 0x2); - elseif (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then + elseif (man0g0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == true and man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then yda = GetWorldManager():GetActorInWorldByUniqueId("yda"); yda:SetQuestGraphic(player, 0x2); end diff --git a/data/scripts/global.lua b/data/scripts/global.lua index 43cc44b5..57d415d3 100644 --- a/data/scripts/global.lua +++ b/data/scripts/global.lua @@ -60,8 +60,7 @@ end function callClientFunction(player, functionName, ...) player:RunEventFunction(functionName, ...); - result = coroutine.yield("_WAIT_EVENT", player); - return result; + return coroutine.yield("_WAIT_EVENT", player); end function wait(seconds) diff --git a/data/scripts/quests/etc/etc3g0.lua b/data/scripts/quests/etc/etc3g0.lua new file mode 100644 index 00000000..9fdf3736 --- /dev/null +++ b/data/scripts/quests/etc/etc3g0.lua @@ -0,0 +1,19 @@ +--Quest Flags +TALKED_1 = 0; +TALKED_2 = 1; +TALKED_3 = 2; +TALKED_4 = 4; +TALKED_5 = 8; + +function checkNextPhase(player) + ownedQuest = player:GetQuest("Etc3g0"); + if ( + ownedQuest:GetQuestFlag(TALKED_1) == false and + ownedQuest:GetQuestFlag(TALKED_2) == false and + ownedQuest:GetQuestFlag(TALKED_3) == false and + ownedQuest:GetQuestFlag(TALKED_4) == false and + ownedQuest:GetQuestFlag(TALKED_5) == false + ) then + ownedQuest:NextPhase(243); + end +end \ No newline at end of file diff --git a/data/scripts/quests/man/man0g0.lua b/data/scripts/quests/man/man0g0.lua index e237eb10..833c8ec4 100644 --- a/data/scripts/quests/man/man0g0.lua +++ b/data/scripts/quests/man/man0g0.lua @@ -1,7 +1,3 @@ --Quest Flags -MAN0G0_FLAG_TUTORIAL1_DONE = 0; -MAN0G0_FLAG_TUTORIAL2_DONE = 1; - -MAN0G0_FLAG_MINITUT_DONE1 = 4; -MAN0G0_FLAG_MINITUT_DONE2 = 8; -MAN0G0_FLAG_MINITUT_DONE3 = 16; +MAN0L0_FLAG_STARTED_TALK_TUT = 0; +MAN0G0_FLAG_MINITUT_DONE1 = 1; diff --git a/data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua b/data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua index 160624b3..eed6a648 100644 --- a/data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua +++ b/data/scripts/unique/fst0Battle03/PopulaceStandard/papalymo.lua @@ -10,7 +10,7 @@ function onEventStarted(player, npc, triggerName) man0g0Quest:SetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1, true); man0g0Quest:SaveData(); npc:SetQuestGraphic(player, 0x0); - player:GetDirector():OnTalked(npc); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); else callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_2", nil, nil, nil); end diff --git a/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua b/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua index 46247bd0..3d128789 100644 --- a/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua +++ b/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua @@ -14,13 +14,13 @@ function onEventStarted(player, npc, triggerName) callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal002", nil, nil, nil); elseif (triggerName == "talkDefault") then --Is doing talk tutorial? - if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_TUTORIAL1_DONE) == false) then + if (man0g0Quest:GetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT) == false) then callClientFunction(player, "delegateEvent", player, man0g0Quest, "processTtrNomal003", nil, nil, nil); player:SetEventStatus(npc, "pushDefault", false, 0x2); npc:SetQuestGraphic(player, 0x0); - player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); - man0g0Quest:SetQuestFlag(MAN0G0_FLAG_TUTORIAL1_DONE, true); + man0g0Quest:SetQuestFlag(MAN0L0_FLAG_STARTED_TALK_TUT, true); man0g0Quest:SaveData(); + player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); --Was she talked to after papalymo? else if (man0g0Quest:GetQuestFlag(MAN0G0_FLAG_MINITUT_DONE1) == true) then diff --git a/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua b/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua new file mode 100644 index 00000000..83a3ad36 --- /dev/null +++ b/data/scripts/unique/fst0Town01a/PopulaceStandard/kinnison.lua @@ -0,0 +1,42 @@ +require ("global") +require ("quests/etc/etc3g0") + +function onSpawn(player, npc) + + if (player:HasQuest("Etc3g0") == false and player:GetQuest("Etc3g0"):GetQuestFlag(TALKED_4)) then + npc:SetQuestGraphic(player, 0x2); + else + npc:SetQuestGraphic(player, 0x0); + end + +end + +function onEventStarted(player, npc) + defaultFst = GetStaticActor("DftFst"); + quest = GetStaticActor("Etc3g0"); + + unknown, result = callClientFunction(player, "switchEvent", defaultFst, quest, nil, nil, 1, 1, 0x3f1); + + if (result == 1) then + callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithKinnison_001", -1, -1); + elseif (result == 2) then + if (player:HasQuest("Etc3g0") == false) then + offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventOffersStart"); + if (offerQuestResult == 1) then + player:AddQuest("Etc3g0"); + npc:SetQuestGraphic(player, 0x0); + end + else + ownedQuest = player:GetQuest("Etc3g0"); + if (ownedQuest:GetPhase() == 1) then + callClientFunction(player, "delegateEvent", player, quest, "processEventClear"); + callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9); + player:CompleteQuest("Etc3g0"); + else + callClientFunction(player, "delegateEvent", player, quest, "processEventOffersAfter"); + end + end + end + + player:endEvent(); +end \ No newline at end of file