From d50bfef2e555d060615fc95b689bbb4ef2b1677c Mon Sep 17 00:00:00 2001 From: CuriousJorge Date: Sun, 3 Apr 2022 00:57:24 -0400 Subject: [PATCH] Minor script revision + new quest warp.lua - Switched to warp type 0x16 for flipping between city zones. Zero gameplay interruption with this type. etc5u1 - Added in a spawn location for privateArea etc5g1 - Scripted, aside from the means of accepting the quest which requires special handling to trigger the intro CS for it. --- Data/scripts/commands/gm/warp.lua | 2 +- Data/scripts/quests/etc/etc5g1.lua | 72 +++++++++++++++++++++++------- Data/scripts/quests/etc/etc5u1.lua | 2 +- 3 files changed, 59 insertions(+), 17 deletions(-) diff --git a/Data/scripts/commands/gm/warp.lua b/Data/scripts/commands/gm/warp.lua index dd22653d..eb421800 100644 --- a/Data/scripts/commands/gm/warp.lua +++ b/Data/scripts/commands/gm/warp.lua @@ -77,7 +77,7 @@ function onTrigger(player, argc, p1, p2, p3, p4, privateArea, privateAreaType, n } if (player_zone == zones[player_zone][1]) then - worldManager:DoZoneChange(player, zones[player_zone][2], "", 0, 0x02, player_x, player_y, player_z, player_rot); + worldManager:DoZoneChange(player, zones[player_zone][2], "", 0, 0x16, player_x, player_y, player_z, player_rot); player:SendMessage(messageID, sender, string.format("setting coordinates X:%d Y:%d Z:%d to new zone (%d) private area:%s", player_x, player_y, player_z, zones[player_zone][2], privateArea or "unspecified")); end else diff --git a/Data/scripts/quests/etc/etc5g1.lua b/Data/scripts/quests/etc/etc5g1.lua index dcfa21c1..c15432ec 100644 --- a/Data/scripts/quests/etc/etc5g1.lua +++ b/Data/scripts/quests/etc/etc5g1.lua @@ -19,14 +19,14 @@ SEQ_010 = 10; -- Actor Class Ids OTOPA_POTTOPA = 1000864; VKOROLON = 1000458; -NICOLIAUX = 1000409; +NICOLIAUX = 1002071; -- 1000409: Can't use his public area id, otherwise a ! shows on him there also POWLE = 1000238; AUNILLIE = 1000410; GAUWYN_THE_GANNET = 1002065; HILDIBRAND = 1002067; NASHU_MHAKARACCA = 1001996; -PRIVATE_AREA_ENTRANCE = 0; -PRIVATE_AREA_EXIT = 0; +PRIVATE_AREA_ENTRANCE = 1090086; -- Check that this ID is free to use before merge +PRIVATE_AREA_EXIT = 1290002; -- DefaultTalk NPCs? SANSA = 1000239; @@ -60,13 +60,25 @@ function onStateChange(player, quest, sequence) end quest:SetENpc(OTOPA_POTTOPA, otopaFlag); quest:SetENpc(VKOROLON, QFLAG_NORM); -- Always shows despite interaction - end - - if (sequence == SEQ_000) then - + elseif (sequence == SEQ_000) then + quest:SetENpc(VKOROLON); + quest:SetENpc(NICOLIAUX, QFLAG_NORM); + quest:SetENpc(POWLE); + quest:SetENpc(AUNILLIE); + quest:SetENpc(GAUWYN_THE_GANNET); + quest:SetENpc(HILDIBRAND); + quest:SetENpc(NASHU_MHAKARACCA); + quest:SetENpc(PRIVATE_AREA_ENTRANCE, QFLAG_MAP, false, true, false, true); + elseif (sequence == SEQ_010) then - + quest:SetENpc(VKOROLON, QFLAG_REWARD); + quest:SetENpc(NICOLIAUX); + quest:SetENpc(POWLE); + quest:SetENpc(AUNILLIE); + quest:SetENpc(GAUWYN_THE_GANNET); + quest:SetENpc(HILDIBRAND); + quest:SetENpc(NASHU_MHAKARACCA); end end @@ -88,14 +100,42 @@ function onTalk(player, quest, npc) player:SendGameMessage(player, GetWorldMaster(), 51148, MESSAGE_TYPE_SYSTEM, 10011243, 2075); -- Log out in The Roost w/ item. elseif (classId == VKOROLON) then - -- This retail accurate. No dialog functions called. + -- This is retail accurate. No dialog functions called. player:SendGameMessage(player, GetWorldMaster(), 51148, MESSAGE_TYPE_SYSTEM, 10011243, 2075); end - elseif (sequence == SEQ_000) then - - elseif (sequence == SEQ_010) then + elseif (sequence >= SEQ_000) then + if (classId == VKOROLON) then + if (sequence == SEQ_010) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_020"); + callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 500, 1, 1); + player:CompleteQuest(quest); + -- Log out in Mizzenmast Inn w/ item. + player:SendGameMessage(player, GetWorldMaster(), 51148, MESSAGE_TYPE_SYSTEM, 10011243, 1070); + else + callClientFunction(player, "delegateEvent", player, quest, "processEvent_000_1"); -- Educated guess + end + elseif (classId == NICOLIAUX) then + if (sequence == SEQ_010) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_1"); -- Educated guess + else + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010"); + attentionMessage(player, 25225, quest.GetQuestId()); -- objectives complete! + quest:UpdateENPCs(); -- Band-aid for a QFLAG_NORM issue + quest:StartSequence(SEQ_010); + end + elseif (classId == POWLE) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_5"); + elseif (classId == AUNILLIE) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_6"); + elseif (classId == GAUWYN_THE_GANNET) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_2"); + elseif (classId == HILDIBRAND) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_3"); + elseif (classId == NASHU_MHAKARACCA) then + callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_4"); + end end player:EndEvent() @@ -103,19 +143,21 @@ function onTalk(player, quest, npc) end + function onPush(player, quest, npc) local npcClassId = npc.GetActorClassId(); player:EndEvent(); if (npcClassId == PRIVATE_AREA_ENTRANCE) then - GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 9999); -- Temp - elseif (npcClassId == PRIVATE_AREA_EXIT) then - GetWorldManager():WarpToPublicArea(player); + GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 5, -33.709, 7.810, -1272.337, -0.810); end end + + + function getJournalInformation(player, quest) end diff --git a/Data/scripts/quests/etc/etc5u1.lua b/Data/scripts/quests/etc/etc5u1.lua index 3d4e0174..23e3b4fa 100644 --- a/Data/scripts/quests/etc/etc5u1.lua +++ b/Data/scripts/quests/etc/etc5u1.lua @@ -135,7 +135,7 @@ function onPush(player, quest, npc) player:EndEvent(); if (npcClassId == PRIVATE_AREA_ENTRANCE) then --TO-DO: Fill in the # below for the privateArea when it's made - --GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", #, -206.712, 195.148, 151.064, 1.821); + GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 5, -206.712, 195.148, 151.064, 1.821); end end