mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Finished the Souls Gone Wild quest.... mostly
This commit is contained in:
		| @@ -11,15 +11,51 @@ Id:     110006 | ||||
| Prereq: Sundered Skies (Man0g0 - 110005) | ||||
| Notes: | ||||
|  | ||||
|  | ||||
|  | ||||
| ]] | ||||
|  | ||||
| ENABLE_GL_TUTORIAL = false; | ||||
|  | ||||
| -- Sequence Numbers | ||||
| SEQ_000 = 0;  | ||||
| SEQ_003 = 3; | ||||
| SEQ_000 = 0;	-- (Private Area) Roost Echo Scene. | ||||
| SEQ_005 = 5;	-- Go attune at Camp Bentbranch | ||||
| SEQ_010 = 10;	-- Attuned, go back to Miuonne. Info: <param1> If 1, Miounne gave you a tutorial guildleve else 0. | ||||
| SEQ_012 = 12;	-- Talk to Miuonne again. | ||||
| SEQ_015 = 15;	-- Find the LTW and CNJ Guilds. Info: Params 2 and 3 set to 5 and 15 will show the msg that you visited both guilds and to notify Baderon on the LS. | ||||
| SEQ_040 = 40;	-- Go to BTN guild and talk to Opyltyl. | ||||
| SEQ_050 = 50;	-- Learn the dance from the kids. | ||||
| SEQ_055 = 55;	-- Chat with the kids. | ||||
| SEQ_060 = 60;	-- Meet at White Wolf Gate. | ||||
| SEQ_065 = 65;	-- Escort Mission Duty | ||||
| SEQ_070 = 70;	-- Walk to the stump. | ||||
| SEQ_071 = 71;	-- Exit the stump area. | ||||
| SEQ_072 = 72;	-- Return to the BTN guild. | ||||
| SEQ_075 = 75;	-- Contact Miounne on LS | ||||
| SEQ_080 = 80;	-- Visit the LNC guid and talk to Willelda. | ||||
| SEQ_085 = 85;	-- Talk to Buchard. | ||||
| SEQ_090 = 90;	-- Talk to Buchard again. | ||||
| SEQ_095 = 95;	-- Talk to Nuala. | ||||
| SEQ_100 = 100;	-- Contact Miounne on LS | ||||
| SEQ_105 = 105;	-- Return to the Roost and talk to Miounne. | ||||
|  | ||||
| -- Quest Data | ||||
| FLAG_EMOTE_DONE1	= 1; | ||||
| FLAG_EMOTE_DONE2	= 2; | ||||
| FLAG_EMOTE_DONE3	= 3; | ||||
| FLAG_EMOTE_DONE4	= 4; | ||||
| FLAG_EMOTE_DONE5	= 5; | ||||
| FLAG_EMOTE_DONE6	= 6; | ||||
|  | ||||
| CNTR_SEQ15_LTW		= 0; | ||||
| CNTR_SEQ15_CNJ		= 1; | ||||
|  | ||||
| -- Msg packs for the Npc LS | ||||
| NPCLS_MSGS = { | ||||
| 	{330}, | ||||
| 	{332, 333, 334, 335}, | ||||
| 	{131, 132, 133}, | ||||
| 	{210, 211, 212, 213, 214, 215}, | ||||
| 	{322, 323, 324} | ||||
| }; | ||||
|  | ||||
| -- Actor Class Ids | ||||
| MIOUNNE                         = 1000230; | ||||
| @@ -31,17 +67,59 @@ NARROW_EYED_ADVENTURER          = 1001059; | ||||
| BEAMING_ADVENTURER              = 1001062; | ||||
| WELL_BUNDLED_ADVENTURER         = 1001060; | ||||
| UNCONCERNED_PASSERBY            = 1001648; | ||||
| --BLOCKER                         = ; | ||||
| --BLOCKER                       = ; | ||||
|  | ||||
| -- Sequence 015 | ||||
| HEREWARD		= 1000231; | ||||
| SOILEINE		= 1000234; | ||||
| CNJ_TRIG		= 1090200; | ||||
|  | ||||
| -- Echo in the CNJ Guild | ||||
| YDA				= 1000009; | ||||
| PAPALYMO		= 1000010; | ||||
| O_APP_PESI		= 1000033; | ||||
| INGRAM			= 1000372; | ||||
| HETZKIN			= 1000460; | ||||
| GUGULA			= 1000513; | ||||
| SWETHYNA		= 1000680; | ||||
| BIDDY			= 1000737; | ||||
| CHALLINIE		= 1000956; | ||||
|  | ||||
| -- BTN Guild | ||||
| OPYLTYL			= 1000236; | ||||
| FUFUCHA			= 1000237; | ||||
| POWLE			= 1000238; | ||||
| SANSA			= 1000239; | ||||
| NICOLLAUX		= 1000409; | ||||
| AUNILLE			= 1000410; | ||||
| ELYN			= 1000411; | ||||
| RYD				= 1000412; | ||||
| KIDS_TRIGGER	= 1090201; | ||||
| GATE_TRIGGER	= 1090202; | ||||
|  | ||||
| -- Post Escort Duty | ||||
| STUMP_TRIGGER		= 1090203; | ||||
| STUMP_EXIT_TRIGGER	= 1090204; | ||||
| BTN_TRIGGER			= 1090046; | ||||
|  | ||||
| -- LNC Guild | ||||
| WILLELDA		= 1000242; | ||||
| BURCHARD		= 1000243; | ||||
|  | ||||
| -- Echo in the LNC Guild | ||||
| TKEBBE			= 1000015; | ||||
| FARRIMOND		= 1000017; | ||||
| NUALA			= 1000681; | ||||
| MANSEL			= 1000682; | ||||
| CECILIA			= 1000683; | ||||
| TURSTIN			= 1000733; | ||||
| LANGLOISIERT	= 1000734; | ||||
| HELBHANTH		= 1000735; | ||||
| PASDEVILLET		= 1000738; | ||||
| JIJIMAYA		= 1000741; | ||||
|  | ||||
| -- Quest Markers | ||||
| MRKR_MIOUNNE             = 11000601; | ||||
|  | ||||
| -- Quest Items | ||||
| ITEM_VELODYNA_COSMOS = 0; -- Seq_000 : 2nd journal arg.    >=5 doesn't have. | ||||
|  | ||||
|  | ||||
| -- Quest Flags | ||||
| FLAG_SEQ000     = 0;  | ||||
| MRKR_MIOUNNE	= 11000601; | ||||
|  | ||||
| function onStart(player, quest)  | ||||
|     quest:StartSequence(SEQ_000); | ||||
| @@ -56,23 +134,109 @@ function onFinish(player, quest) | ||||
| end | ||||
|  | ||||
| function onStateChange(player, quest, sequence) | ||||
| 	local data = quest:GetData(); | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         -- Setup states incase we loaded in. | ||||
|  | ||||
|         --SetENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned)         | ||||
|     if (sequence == SEQ_000) then       | ||||
|         quest:SetENpc(MIOUNNE, QFLAG_TALK); | ||||
|        -- quest:SetENpc(VKOROLON); | ||||
|         quest:SetENpc(VKOROLON); | ||||
|         quest:SetENpc(WISPILY_WHISKERED_WOODWORKER); | ||||
|         quest:SetENpc(AMIABLE_ADVENTURER); | ||||
|         quest:SetENpc(MOROSE_MERCHANT); | ||||
|         quest:SetENpc(NARROW_EYED_ADVENTURER); | ||||
|         quest:SetENpc(BEAMING_ADVENTURER); | ||||
|         quest:SetENpc(WELL_BUNDLED_ADVENTURER); | ||||
|         quest:SetENpc(UNCONCERNED_PASSERBY); | ||||
|          | ||||
|         quest:SetENpc(UNCONCERNED_PASSERBY);         | ||||
|     elseif (sequence == SEQ_005) then  | ||||
|         quest:SetENpc(MIOUNNE); | ||||
| 	elseif (sequence == SEQ_010) then  | ||||
| 		quest:SetENpc(MIOUNNE, QFLAG_TALK); | ||||
| 	elseif (sequence == SEQ_012) then  | ||||
| 		quest:SetENpc(MIOUNNE, QFLAG_TALK); | ||||
| 	elseif (sequence == SEQ_015) then  | ||||
| 		local subseqLTW = data:GetCounter(CNTR_SEQ15_LTW); | ||||
| 		local subseqCNJ = data:GetCounter(CNTR_SEQ15_CNJ); | ||||
| 		-- Always active in this seqence | ||||
| 		quest:SetENpc(MIOUNNE); | ||||
| 		quest:SetENpc(HEREWARD, (subseqLTW <= 1) and QFLAG_TALK or QFLAG_OFF); | ||||
| 		-- CNJ and In Echo | ||||
| 		quest:SetENpc(SOILEINE, (subseqCNJ == 0) and QFLAG_TALK or QFLAG_OFF); | ||||
| 		quest:SetENpc(CNJ_TRIG, (subseqCNJ == 1) and QFLAG_PUSH or QFLAG_OFF, false, (subseqCNJ == 1)); | ||||
| 		quest:SetENpc(YDA); | ||||
| 		quest:SetENpc(PAPALYMO); | ||||
| 		quest:SetENpc(O_APP_PESI); | ||||
| 		quest:SetENpc(SWETHYNA, (subseqCNJ == 2) and QFLAG_TALK or QFLAG_OFF); | ||||
| 		quest:SetENpc(INGRAM); | ||||
| 		quest:SetENpc(HETZKIN); | ||||
| 		quest:SetENpc(GUGULA); | ||||
| 		quest:SetENpc(BIDDY); | ||||
| 		quest:SetENpc(CHALLINIE); | ||||
| 	elseif (sequence == SEQ_040) then  | ||||
|         quest:SetENpc(OPYLTYL, QFLAG_TALK); | ||||
| 		quest:SetENpc(MIOUNNE); | ||||
| 	elseif (sequence == SEQ_050) then  | ||||
| 		quest:SetENpc(OPYLTYL, QFLAG_TALK); | ||||
|         quest:SetENpc(AUNILLE, not data:GetFlag(FLAG_EMOTE_DONE1) and QFLAG_TALK or QFLAG_OFF, true, false, not data:GetFlag(FLAG_EMOTE_DONE1)); | ||||
| 		quest:SetENpc(NICOLLAUX, not data:GetFlag(FLAG_EMOTE_DONE2) and QFLAG_TALK or QFLAG_OFF, true, false, not data:GetFlag(FLAG_EMOTE_DONE2)); | ||||
| 		quest:SetENpc(SANSA, not data:GetFlag(FLAG_EMOTE_DONE3) and QFLAG_TALK or QFLAG_OFF, true, false, not data:GetFlag(FLAG_EMOTE_DONE3)); | ||||
| 		quest:SetENpc(POWLE, not data:GetFlag(FLAG_EMOTE_DONE4) and QFLAG_TALK or QFLAG_OFF, true, false, not data:GetFlag(FLAG_EMOTE_DONE4)); | ||||
| 		quest:SetENpc(RYD, not data:GetFlag(FLAG_EMOTE_DONE5) and QFLAG_TALK or QFLAG_OFF, true, false, not data:GetFlag(FLAG_EMOTE_DONE5)); | ||||
| 		quest:SetENpc(ELYN, not data:GetFlag(FLAG_EMOTE_DONE6) and QFLAG_TALK or QFLAG_OFF, true, false, not data:GetFlag(FLAG_EMOTE_DONE6)); | ||||
| 		quest:SetENpc(FUFUCHA); | ||||
| 	elseif (sequence == SEQ_055) then | ||||
| 		quest:SetENpc(OPYLTYL, QFLAG_TALK); | ||||
| 		quest:SetENpc(KIDS_TRIGGER, QFLAG_PUSH, false, true); | ||||
|         quest:SetENpc(AUNILLE); | ||||
| 		quest:SetENpc(NICOLLAUX); | ||||
| 		quest:SetENpc(SANSA); | ||||
| 		quest:SetENpc(POWLE); | ||||
| 		quest:SetENpc(RYD); | ||||
| 		quest:SetENpc(ELYN); | ||||
| 		quest:SetENpc(FUFUCHA); | ||||
| 	elseif (sequence == SEQ_060) then | ||||
| 		quest:SetENpc(GATE_TRIGGER, QFLAG_PUSH, false, true); | ||||
| 	elseif (sequence == SEQ_065) then | ||||
| 	elseif (sequence == SEQ_070) then | ||||
| 		quest:SetENpc(STUMP_TRIGGER, QFLAG_PUSH, false, true); | ||||
| 	elseif (sequence == SEQ_071) then		 | ||||
| 		quest:SetENpc(STUMP_EXIT_TRIGGER, QFLAG_PUSH, false, true); | ||||
| 	elseif (sequence == SEQ_072) then | ||||
| 		quest:SetENpc(BTN_TRIGGER, QFLAG_PUSH, false, true); | ||||
| 	elseif (sequence == SEQ_075) then | ||||
| 	elseif (sequence == SEQ_080) then | ||||
| 		quest:SetENpc(WILLELDA, QFLAG_TALK); | ||||
| 		quest:SetENpc(MIOUNNE); | ||||
| 	elseif (sequence == SEQ_085) then | ||||
| 		quest:SetENpc(BURCHARD, QFLAG_TALK); | ||||
| 		quest:SetENpc(WILLELDA); | ||||
| 	elseif (sequence == SEQ_090) then | ||||
| 		quest:SetENpc(BURCHARD, QFLAG_TALK); | ||||
| 		quest:SetENpc(TKEBBE); | ||||
| 		quest:SetENpc(FARRIMOND); | ||||
| 		quest:SetENpc(LANGLOISIERT); | ||||
| 		quest:SetENpc(NUALA); | ||||
| 		quest:SetENpc(MANSEL); | ||||
| 		quest:SetENpc(CECILIA); | ||||
| 		quest:SetENpc(TURSTIN); | ||||
| 		quest:SetENpc(HELBHANTH); | ||||
| 		quest:SetENpc(PASDEVILLET); | ||||
| 		quest:SetENpc(JIJIMAYA); | ||||
| 	elseif (sequence == SEQ_095) then | ||||
| 		quest:SetENpc(NUALA, QFLAG_TALK); | ||||
| 		quest:SetENpc(BURCHARD); | ||||
| 		quest:SetENpc(JIJIMAYA); | ||||
| 		quest:SetENpc(TKEBBE); | ||||
| 		quest:SetENpc(FARRIMOND); | ||||
| 		quest:SetENpc(MANSEL); | ||||
| 		quest:SetENpc(CECILIA); | ||||
| 	elseif (sequence == SEQ_100) then | ||||
| 		quest:SetENpc(NUALA); | ||||
| 		quest:SetENpc(BURCHARD); | ||||
| 		quest:SetENpc(WILLELDA); | ||||
| 	elseif (sequence == SEQ_105) then | ||||
| 		quest:SetENpc(MIOUNNE, QFLAG_REWARD); | ||||
| 		quest:SetENpc(NUALA); | ||||
| 		quest:SetENpc(BURCHARD); | ||||
| 		quest:SetENpc(WILLELDA); | ||||
|     end | ||||
| end | ||||
|  | ||||
| @@ -80,55 +244,153 @@ function onTalk(player, quest, npc) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local classId = npc:GetActorClassId(); | ||||
|      | ||||
|     --if (sequence == SEQ_000) then | ||||
|         seq000_onTalk(player, quest, npc, classId); | ||||
|    -- elseif (sequence == SEQ_005) then | ||||
|     --    seq005_onTalk(player, quest, npc, classId);      | ||||
|    -- end | ||||
| 	quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
| function onPush(player, quest, npc) | ||||
|  | ||||
|     local sequence = quest:getSequence(); | ||||
|     local classId = npc:GetActorClassId();   | ||||
|     player:SendMessage(0x20, "", "Sequence: "..sequence.." Class Id: "..classId); | ||||
|     if (sequence == SEQ_000) then | ||||
|      | ||||
|     elseif (sequence == SEQ_010) then | ||||
|     | ||||
|     end | ||||
| 	quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
|  | ||||
| function onNotice(player, quest, target) | ||||
|     player:EndEvent(); | ||||
|     player:SendMessage(0x20, "", "Test"); | ||||
|     callClientFunction(player, "delegateEvent", player, quest, "processEventTu_001");   | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
|  | ||||
| -- Copy-pasted from man0l1 for now, fix later | ||||
| function onNpcLS(player, quest, npcLSId) | ||||
| 	local sequence = quest:getSequence(); | ||||
| 	 | ||||
| 	if (npcLSId == 1) then | ||||
| 		player:SetNpcLS(1, 1); | ||||
|         player:SendGameMessageLocalizedDisplayName(quest, 330, 39, 1300018, nil); | ||||
|         showTutorialSuccessWidget(player, 9080); | ||||
|         wait(3); | ||||
|         closeTutorialWidget(player); | ||||
|         endTutorialMode(player); | ||||
|          | ||||
|         seq000_onTalk(player, quest, npc, classId); | ||||
|     elseif (sequence == SEQ_005) then | ||||
| 		if (classId == MIOUNNE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent110_2"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_010) then | ||||
| 		if (classId == MIOUNNE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent114"); | ||||
| 			quest:StartSequence(SEQ_012); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_012) then | ||||
| 		if (classId == MIOUNNE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent115"); | ||||
| 			quest:NewNpcLsMsg(1); | ||||
| 			quest:StartSequence(SEQ_015); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_015) then | ||||
| 		if (seq015_onTalk(player, quest, npc, classId) == true) then | ||||
| 			quest:UpdateENPCs(); | ||||
| 			return; | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_040) then | ||||
| 		if (classId == OPYLTYL) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140"); | ||||
| 			quest:StartSequence(SEQ_050); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 1, -223.792, 12, -1498.369, -1.74); | ||||
| 			return; | ||||
| 		elseif (classId == MIOUNNE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent137_2"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_050) then | ||||
| 		if (classId == OPYLTYL) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent1000_3"); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 1, -223.792, 12, -1498.369, -1.74); | ||||
| 			return; | ||||
| 		else | ||||
| 			seq050_onTalk(player, quest, npc, classId); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_055) then | ||||
| 		if (classId == FUFUCHA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent150_2"); | ||||
| 		elseif (classId == OPYLTYL) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent1000_3"); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 2, -231.474, 12, -1500.86, 0.73); | ||||
| 		elseif (classId == AUNILLE or classId == NICOLLAUX or classId == SANSA or classId == POWLE or classId == RYD or classId == ELYN) then | ||||
| 			local randNum = math.random(1, 2); | ||||
| 			if (randNum == 1) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent150_3"); | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent150_4"); | ||||
| 			end | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_060) then | ||||
| 	elseif (sequence == SEQ_065) then | ||||
| 	elseif (sequence == SEQ_070) then | ||||
| 	elseif (sequence == SEQ_071) then | ||||
| 	elseif (sequence == SEQ_072) then | ||||
| 	elseif (sequence == SEQ_075) then | ||||
| 	elseif (sequence == SEQ_080) then | ||||
| 		if (classId == WILLELDA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent190"); | ||||
| 			quest:StartSequence(SEQ_085); | ||||
| 		elseif (classId == MIOUNNE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent185_2"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_085) then | ||||
| 		if (classId == BURCHARD) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200"); | ||||
| 			quest:StartSequence(SEQ_090); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 3, 176.13, 27.5, -1581.84, -1.0); | ||||
| 			return; | ||||
| 		elseif (classId == WILLELDA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent190_2"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_090) then	 | ||||
| 		if (classId == BURCHARD) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent210"); | ||||
| 			quest:StartSequence(SEQ_095); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 4); | ||||
| 			return; | ||||
| 		elseif (classId == NUALA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_2"); | ||||
| 		elseif (classId == TKEBBE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_3"); | ||||
| 		elseif (classId == FARRIMOND) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_4"); | ||||
| 		elseif (classId == MANSEL) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_5"); | ||||
| 		elseif (classId == JIJIMAYA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_6"); | ||||
| 		elseif (classId == LANGLOISIERT) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_7"); | ||||
| 		elseif (classId == CECILIA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_8"); | ||||
| 		elseif (classId == TURSTIN) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_9"); | ||||
| 		elseif (classId == HELBHANTH) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_10"); | ||||
| 		elseif (classId == PASDEVILLET) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent200_11"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_095) then | ||||
| 		if (classId == NUALA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent220"); | ||||
| 			player:EndEvent(); | ||||
| 			quest:NewNpcLsMsg(1); | ||||
| 			quest:StartSequence(SEQ_100); | ||||
| 			GetWorldManager():WarpToPublicArea(player); | ||||
| 			return; | ||||
| 		elseif (classId == BURCHARD) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent210_2"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_100) then | ||||
| 		if (classId == NUALA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent1000_5"); | ||||
| 		elseif (classId == BURCHARD) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent220_3"); | ||||
| 		elseif (classId == WILLELDA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent220_2"); | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_105) then | ||||
| 		if (classId == MIOUNNE) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEventComplete"); | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 300, 1, 1, 2); | ||||
| 			player:EndEvent(); | ||||
| 			player:CompleteQuest(quest); | ||||
| 			return; | ||||
| 		elseif (classId == NUALA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent1000_5"); | ||||
| 		elseif (classId == BURCHARD) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent220_3"); | ||||
| 		elseif (classId == WILLELDA) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent220_2"); | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| 	quest:UpdateENPCs();	 | ||||
| end | ||||
|  | ||||
|  | ||||
|      | ||||
| function seq000_onTalk(player, quest, npc, classId) | ||||
|      | ||||
|     if (classId == MIOUNNE) then | ||||
|          | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent100_1");         | ||||
| @@ -155,7 +417,7 @@ function seq000_onTalk(player, quest, npc, classId) | ||||
|     elseif (classId == NARROW_EYED_ADVENTURER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent100_7"); | ||||
|     elseif (classId == UNCONCERNED_PASSERBY) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processTtrBlkNml001"); --"processEvent100_9"); | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent100_9"); | ||||
|     elseif (classId == VKOROLON) then | ||||
|         callClientFunction(player, "delegateEvent", player, GetStaticActor("DftWil"), "defaultTalkWithVkorolon_001"); | ||||
|     elseif (classId == WELL_BUNDLED_ADVENTURER) then | ||||
| @@ -163,32 +425,363 @@ function seq000_onTalk(player, quest, npc, classId) | ||||
|     elseif (classId == WISPILY_WHISKERED_WOODWORKER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent100_8"); | ||||
|     end | ||||
|  | ||||
|     player:EndEvent(); | ||||
| 	 | ||||
| end | ||||
|  | ||||
| function seq005_onTalk(player, quest, npc, classId)  | ||||
|     if (classId == MOMODI) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent010_2"); | ||||
| function seq015_onTalk(player, quest, npc, classId) | ||||
| 	local data = quest:GetData(); | ||||
| 	local subseqLTW = data:GetCounter(CNTR_SEQ15_LTW); | ||||
| 	local subseqCNJ = data:GetCounter(CNTR_SEQ15_CNJ); | ||||
| 	 | ||||
| 	if (classId == MIOUNNE) then | ||||
| 		if (subseqCNJ == 3) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent135_2"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent115_2"); | ||||
| 		end | ||||
| 	-- LTW Guild Events | ||||
| 	elseif (classId == HEREWARD) then | ||||
| 		if (subseqLTW == 0) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent120"); | ||||
| 			data:IncCounter(CNTR_SEQ15_LTW);	 | ||||
| 			--give 1000g					 | ||||
| 		elseif (subseqLTW == 1) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent120_2"); | ||||
| 			data:IncCounter(CNTR_SEQ15_LTW);	 | ||||
| 			if (subseqCNJ >= 3) then | ||||
| 				seq015_endSequence(player, quest); | ||||
| 			end | ||||
| 		else  | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent120_2"); | ||||
| 		end | ||||
| 	-- CNJ Guild and Echo | ||||
| 	elseif (classId == SOILEINE) then | ||||
| 		if (subseqCNJ == 0) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent125"); | ||||
| 			data:IncCounter(CNTR_SEQ15_CNJ); | ||||
| 		elseif (subseqCNJ == 1) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent125_2"); | ||||
| 		elseif (subseqCNJ == 2) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent125_2"); | ||||
| 		end | ||||
| 	elseif (classId == O_APP_PESI) then | ||||
| 		if (subseqCNJ == 1) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent130"); | ||||
| 			data:IncCounter(CNTR_SEQ15_CNJ); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent130_3"); | ||||
| 		end | ||||
| 	elseif (classId == YDA) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_4"); | ||||
| 	elseif (classId == PAPALYMO) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_5"); | ||||
| 	elseif (classId == GUGULA) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_6"); | ||||
| 	elseif (classId == INGRAM) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_7"); | ||||
| 	elseif (classId == CHALLINIE) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_8"); | ||||
| 	elseif (classId == HETZKIN) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_2");	 | ||||
| 	elseif (classId == BIDDY) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent130_2"); | ||||
| 	elseif (classId == SWETHYNA) then | ||||
| 		if (subseqLTW == 0) then			 | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent135"); | ||||
| 			data:IncCounter(CNTR_SEQ15_CNJ); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent136"); | ||||
| 			data:IncCounter(CNTR_SEQ15_CNJ); | ||||
| 			quest:NewNpcLsMsg(1); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPublicArea(player); | ||||
| 			return true; | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
|  | ||||
| function seq015_endSequence(player, quest) | ||||
| 	callClientFunction(player, "delegateEvent", player, quest, "processEvent123"); | ||||
| end | ||||
|  | ||||
| function seq050_onTalk(player, quest, npc, classId) | ||||
| 	local data = quest:GetData(); | ||||
|  | ||||
| 	if (classId == AUNILLE) then | ||||
| 		if (not data:GetFlag(FLAG_EMOTE_DONE1)) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140_1"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent141_1"); | ||||
| 		end | ||||
| 	elseif (classId == NICOLLAUX) then | ||||
| 		if (not data:GetFlag(FLAG_EMOTE_DONE2)) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140_2"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent141_2"); | ||||
| 		end | ||||
| 	elseif (classId == SANSA) then | ||||
| 		if (not data:GetFlag(FLAG_EMOTE_DONE3)) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140_3"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent141_3"); | ||||
| 		end | ||||
| 	elseif (classId == POWLE) then | ||||
| 		if (not data:GetFlag(FLAG_EMOTE_DONE4)) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140_4"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent141_4"); | ||||
| 		end | ||||
| 	elseif (classId == RYD) then | ||||
| 		if (not data:GetFlag(FLAG_EMOTE_DONE5)) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140_5"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent141_5"); | ||||
| 		end | ||||
| 	elseif (classId == ELYN) then | ||||
| 		if (not data:GetFlag(FLAG_EMOTE_DONE6)) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent140_6"); | ||||
| 		else | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent141_6"); | ||||
| 		end | ||||
| 	elseif (classId == FUFUCHA) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent140_10"); | ||||
| 	end | ||||
| end | ||||
|  | ||||
| function onPush(player, quest, npc) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local classId = npc:GetActorClassId();   | ||||
| 	local data = quest:GetData(); | ||||
| 	local subseqCNJ = data:GetCounter(CNTR_SEQ15_CNJ); | ||||
| 	 | ||||
|     if (sequence == SEQ_000) then     | ||||
|     elseif (sequence == SEQ_015) then | ||||
| 		if (classId == CNJ_TRIG and subseqCNJ == 1) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent130"); | ||||
| 			data:IncCounter(CNTR_SEQ15_CNJ); | ||||
| 			player:EndEvent(); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 0, -353.05, 6.25, -1697.39, 0.774); | ||||
| 			return; | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_055) then | ||||
| 		if (classId == KIDS_TRIGGER) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent160"); | ||||
| 			player:EndEvent(); | ||||
| 			quest:StartSequence(SEQ_060); | ||||
| 			GetWorldManager():WarpToPublicArea(player, -209.817, 18, -1477.372, 1.4); | ||||
| 			return; | ||||
| 		end | ||||
| 	elseif (sequence == SEQ_060) then | ||||
| 		if (classId == GATE_TRIGGER) then | ||||
| 			local result = callClientFunction(player, "delegateEvent", player, quest, "contentsJoinAskInBasaClass"); | ||||
| 			if (result == 1) then | ||||
| 				-- DO ESCORT DUTY HERE | ||||
| 				-- startMan0g1Content(player, quest); | ||||
| 				-- For now just skip the sequence | ||||
| 				quest:StartSequence(SEQ_065); | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent180"); | ||||
| 				player:EndEvent(); | ||||
| 				quest:StartSequence(SEQ_070); | ||||
| 				GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 0, -770.197, 23, -1086.209); | ||||
| 				return; | ||||
| 			end | ||||
| 			player:EndEvent(); | ||||
| 		end	 | ||||
| 	elseif (sequence == SEQ_070) then | ||||
| 		if (classId == STUMP_TRIGGER) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent181"); | ||||
| 			player:EndEvent(); | ||||
| 			quest:StartSequence(SEQ_071); | ||||
| 			GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 1); | ||||
| 			return; | ||||
| 		end		 | ||||
| 	elseif (sequence == SEQ_071) then | ||||
| 		if (classId == STUMP_EXIT_TRIGGER) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent182"); | ||||
| 			player:EndEvent(); | ||||
| 			quest:StartSequence(SEQ_072); | ||||
| 			GetWorldManager():WarpToPublicArea(player, -185, 6, -962, -3); | ||||
| 			return; | ||||
| 		end			 | ||||
| 	elseif (sequence == SEQ_072) then | ||||
| 		if (classId == BTN_TRIGGER) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEvent185"); | ||||
| 			player:EndEvent(); | ||||
| 			quest:NewNpcLsMsg(1); | ||||
| 			quest:StartSequence(SEQ_075); | ||||
| 		end | ||||
|     end | ||||
| 	quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
| function onEmote(player, quest, npc, eventName) | ||||
| 	local data = quest:GetData(); | ||||
| 	local sequence = quest:getSequence(); | ||||
| 	local classId = npc:GetActorClassId();	 | ||||
|  | ||||
| 	-- Play the emote | ||||
| 	if (classId == AUNILLE) then		-- Beckon | ||||
| 		player:DoEmote(npc.Id, 8, 21071); | ||||
| 	elseif (classId == NICOLLAUX) then	-- Clap | ||||
| 		player:DoEmote(npc.Id, 7, 21061); | ||||
| 	elseif (classId == SANSA) then		-- Bow | ||||
| 		player:DoEmote(npc.Id, 5, 21041); | ||||
| 	elseif (classId == POWLE) then 		-- Cheer | ||||
| 		player:DoEmote(npc.Id, 6, 21051); | ||||
| 	elseif (classId == RYD) then		-- Surprised | ||||
| 		player:DoEmote(npc.Id, 1, 21001); | ||||
| 	elseif (classId == ELYN) then		-- Lookout | ||||
| 		player:DoEmote(npc.Id, 22, 21211); | ||||
| 	end | ||||
| 	wait(2.5); | ||||
| 	 | ||||
| 	-- Handle the result | ||||
| 	if (sequence == SEQ_050) then | ||||
| 		if (classId == AUNILLE) then | ||||
| 			if (not data:GetFlag(FLAG_EMOTE_DONE1)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent142_1"); | ||||
| 				data:SetFlag(FLAG_EMOTE_DONE1); | ||||
| 			end | ||||
| 		elseif (classId == NICOLLAUX) then | ||||
| 			if (not data:GetFlag(FLAG_EMOTE_DONE2)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent142_2"); | ||||
| 				data:SetFlag(FLAG_EMOTE_DONE2); | ||||
| 			end | ||||
| 		elseif (classId == SANSA) then | ||||
| 			if (not data:GetFlag(FLAG_EMOTE_DONE3)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent142_3"); | ||||
| 				data:SetFlag(FLAG_EMOTE_DONE3); | ||||
| 			end | ||||
| 		elseif (classId == POWLE) then | ||||
| 			if (not data:GetFlag(FLAG_EMOTE_DONE4)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent142_4"); | ||||
| 				data:SetFlag(FLAG_EMOTE_DONE4); | ||||
| 			end | ||||
| 		elseif (classId == RYD) then | ||||
| 			if (not data:GetFlag(FLAG_EMOTE_DONE5)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent142_5"); | ||||
| 				data:SetFlag(FLAG_EMOTE_DONE5); | ||||
| 			end | ||||
| 		elseif (classId == ELYN) then | ||||
| 			if (not data:GetFlag(FLAG_EMOTE_DONE6)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEvent142_6"); | ||||
| 				data:SetFlag(FLAG_EMOTE_DONE6); | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| 	-- Check result and finish | ||||
| 	if (bit32.band(data:GetFlags(), 0x7E) == 0x7E) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent150"); | ||||
| 		player:EndEvent(); | ||||
| 		quest:StartSequence(SEQ_055); | ||||
| 		GetWorldManager():WarpToPrivateArea(player, "PrivateAreaMasterPast", 2, -231.474, 12, -1500.86, 0.73); | ||||
| 		return | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| 	quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
| function onNotice(player, quest, target) | ||||
|     player:EndEvent(); | ||||
|     player:SendMessage(0x20, "", "Test"); | ||||
|     callClientFunction(player, "delegateEvent", player, quest, "processEventTu_001");   | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
| function onNpcLS(player, quest, from, msgStep) | ||||
| 	local sequence = quest:getSequence(); | ||||
| 	local msgPack; | ||||
|  | ||||
| 	if (from == 1) then | ||||
| 		-- Get the right msg pack | ||||
| 		if (sequence == SEQ_005) then | ||||
| 			msgPack = 1;		 | ||||
| 		elseif (sequence == SEQ_015 and quest:GetData():GetCounter(CNTR_SEQ15_LTW) ~= 1 and quest:GetData():GetCounter(CNTR_SEQ15_CNJ) ~= 3) then | ||||
| 			msgPack = 2; | ||||
| 		elseif ((sequence == SEQ_015 and quest:GetData():GetCounter(CNTR_SEQ15_LTW) >= 1 and quest:GetData():GetCounter(CNTR_SEQ15_CNJ) >= 3) or sequence == SEQ_040) then | ||||
| 			msgPack = 3; | ||||
| 		elseif (sequence == SEQ_075 or sequence == SEQ_080) then | ||||
| 			msgPack = 4; | ||||
| 		elseif (sequence == SEQ_100 or sequence == SEQ_105) then | ||||
| 			msgPack = 5; | ||||
| 		end | ||||
| 		 | ||||
| 		-- Quick way to handle all msgs nicely. | ||||
| 		player:SendGameMessageLocalizedDisplayName(quest, NPCLS_MSGS[msgPack][msgStep], MESSAGE_TYPE_NPC_LINKSHELL, 1300018); | ||||
| 		if (msgStep >= #NPCLS_MSGS[msgPack]) then | ||||
| 			quest:EndOfNpcLsMsgs(); | ||||
| 		else | ||||
| 			quest:ReadNpcLsMsg(); | ||||
| 		end | ||||
| 		 | ||||
| 		-- Handle anything else | ||||
| 		if (sequence == SEQ_005) then | ||||
| 			showTutorialSuccessWidget(player, 9080); | ||||
| 			wait(3); | ||||
| 			closeTutorialWidget(player); | ||||
| 			endTutorialMode(player); | ||||
| 		elseif (sequence == SEQ_015 and quest:GetData():GetCounter(CNTR_SEQ15_LTW) >= 1 and quest:GetData():GetCounter(CNTR_SEQ15_CNJ) >= 3) then | ||||
| 			quest:StartSequenceForNpcLs(SEQ_040); | ||||
| 		elseif (sequence == SEQ_075) then | ||||
| 			quest:StartSequenceForNpcLs(SEQ_080); | ||||
| 		elseif (sequence == SEQ_100) then | ||||
| 			quest:StartSequenceForNpcLs(SEQ_105); | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
|  | ||||
| function getJournalInformation(player, quest) | ||||
| 	return 0, ITEM_VELODYNA_COSMOS, ITEM_COLISEUM_PASS; | ||||
| 	local data = quest:GetData(); | ||||
| 	return ENABLE_GL_TUTORIAL and 1 or 0, data:GetCounter(CNTR_SEQ15_LTW) * 5, data:GetCounter(CNTR_SEQ15_CNJ) * 5; | ||||
| end | ||||
|  | ||||
|  | ||||
| function getJournalMapMarkerList(player, quest) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local possibleMarkers = {}; | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         table.insert(possibleMarkers, MRKR_MIOUNNE); | ||||
|     elseif (sequence == SEQ_010) then | ||||
|  | ||||
| 	 | ||||
|     elseif (sequence == SEQ_005) then  | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_010) then  | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_012) then  | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_015) then  | ||||
| 		local subseqLTW = data:GetCounter(CNTR_SEQ15_LTW); | ||||
| 		local subseqCNJ = data:GetCounter(CNTR_SEQ15_CNJ); | ||||
| 		 | ||||
| 	elseif (sequence == SEQ_040) then  | ||||
|          | ||||
| 	elseif (sequence == SEQ_050) then  | ||||
| 		 | ||||
| 	elseif (sequence == SEQ_055) then | ||||
| 		return MRKR_KID_TRIGGER; | ||||
| 	elseif (sequence == SEQ_060) then | ||||
| 		return MRKR_GATE_TRIGGER; | ||||
| 	elseif (sequence == SEQ_065) then | ||||
| 	elseif (sequence == SEQ_070) then | ||||
| 	elseif (sequence == SEQ_071) then | ||||
| 	elseif (sequence == SEQ_072) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_075) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_080) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_085) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_090) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_095) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_100) then | ||||
| 	 | ||||
| 	elseif (sequence == SEQ_105) then | ||||
| 	 | ||||
|     end | ||||
|  | ||||
|     return unpack(possibleMarkers) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user