mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Merge branch 'Jorge/quest_system' into ioncannon/quest_system
This commit is contained in:
		| @@ -0,0 +1,3 @@ | ||||
| function init(npc) | ||||
| 	return false, false, 0, 0, 0, 0;	 | ||||
| end | ||||
							
								
								
									
										18
									
								
								Data/scripts/base/chara/npc/object/OpeningStoperW0B1.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Data/scripts/base/chara/npc/object/OpeningStoperW0B1.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| require("global"); | ||||
|  | ||||
| function init(npc) | ||||
| 	return false, false, 0, 0;	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, eventType, eventName) | ||||
|  | ||||
|     if (eventType == ETYPE_PUSH) then | ||||
|         if (eventName == "caution") then | ||||
|             worldMaster = GetWorldMaster(); | ||||
|             player:SendGameMessage(player, worldMaster, 34109, 0x20); | ||||
|         elseif (eventName == "exit") then | ||||
|             GetWorldManager():DoPlayerMoveInZone(player, 5.36433, 196, 133.656, -2.84938); | ||||
|         end | ||||
|     end | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -49,8 +49,9 @@ function init(npc) | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName)	 | ||||
|     local classId = npc:GetActorClassId(); | ||||
| 	local curLevel = 20; -- TODO: pull from character | ||||
| 	local hasIssuance = player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(gcIssuances[npc:GetActorClassId()]); | ||||
| 	local hasIssuance = player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(gcIssuances[classId]); | ||||
| 	local hasChocobo = player.hasChocobo; | ||||
| 	 | ||||
| 	if (hasChocobo == false) then -- Let GMs auto have the issuance for debugging  | ||||
| @@ -58,50 +59,64 @@ function onEventStarted(player, npc, triggerName) | ||||
| 	end	 | ||||
|  | ||||
| 	local hasFunds = (player:GetCurrentGil() >= rentalPrice); | ||||
|  | ||||
| 	callClientFunction(player, "eventTalkWelcome", player); | ||||
| 	 | ||||
| 	local menuChoice = callClientFunction(player, "eventAskMainMenu", player, curLevel, hasFunds, hasIssuance, hasChocobo, hasChocobo, 0); | ||||
|  | ||||
| 	if (menuChoice == 1) then -- Issuance option | ||||
| 	 | ||||
| 		callClientFunction(player, "eventTalkMyChocobo", player); | ||||
| 		local nameResponse = callClientFunction(player, "eventSetChocoboName", true); | ||||
|  | ||||
| 		if (nameResponse == "") then -- Cancel Chocobo naming | ||||
| 			callClientFunction(player, "eventCancelChocoboName", player); | ||||
| 			callClientFunction(player, "eventTalkStepBreak", player); | ||||
| 			player:EndEvent(); | ||||
| 			return; | ||||
| 		else		 | ||||
| 			local appearance = startAppearances[npc:GetActorClassId()];			 | ||||
| 			player:IssueChocobo(appearance, nameResponse); | ||||
| 			 | ||||
| 			callClientFunction(player, "eventAfterChocoboName", player);			 | ||||
|  | ||||
| 			--Add Chocobo License and remove issuance | ||||
| 			if (player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(2001007) == false) then | ||||
| 				player:GetItemPackage(INVENTORY_KEYITEMS):AddItem(2001007); | ||||
| 			end | ||||
| 			player:GetItemPackage(INVENTORY_KEYITEMS):RemoveItem(gcIssuances[npc:GetActorClassId()], 1); | ||||
| 			 | ||||
| 			--Warp with the special chocobo warp mode. | ||||
| 			mountChocobo(player);			 | ||||
| 			GetWorldManager():DoZoneChange(player, cityExits[npc:GetActorClassId()][1], nil, 0, SPAWN_CHOCOBO_GET, cityExits[npc:GetActorClassId()][2], cityExits[npc:GetActorClassId()][3], cityExits[npc:GetActorClassId()][4], cityExits[npc:GetActorClassId()][5]);		 | ||||
| 		end | ||||
| 				 | ||||
| 	elseif(menuChoice == 2) then -- Summon Bird | ||||
| 		mountChocobo(player); | ||||
| 		GetWorldManager():DoZoneChange(player, cityExits[npc:GetActorClassId()][1], nil, 0, SPAWN_NO_ANIM, cityExits[npc:GetActorClassId()][2], cityExits[npc:GetActorClassId()][3], cityExits[npc:GetActorClassId()][4], cityExits[npc:GetActorClassId()][5]);		 | ||||
| 	elseif(menuChoice == 3) then -- Change Barding | ||||
| 		callClientFunction(player, "eventTalkStepBreak", player); | ||||
| 	elseif(menuChoice == 5) then -- Rent Bird | ||||
| 		mountChocobo(player, true, 1); | ||||
| 		GetWorldManager():DoZoneChange(player, cityExits[npc:GetActorClassId()][1], nil, 0, SPAWN_CHOCOBO_RENTAL, cityExits[npc:GetActorClassId()][2], cityExits[npc:GetActorClassId()][3], cityExits[npc:GetActorClassId()][4], cityExits[npc:GetActorClassId()][5]); | ||||
| 	else | ||||
| 		callClientFunction(player, "eventTalkStepBreak", player); | ||||
| 	end | ||||
|  | ||||
|      | ||||
|      | ||||
|      | ||||
|     if ((classId == 1000840) and (player:HasQuest(110009))) then -- Cross-script Man0u0 dialog | ||||
|         local sequence = player:GetQuest(110009):getSequence(); | ||||
|          | ||||
|         if (sequence == 0) then | ||||
|             callClientFunction(player, "delegateEvent", player, GetStaticActor("Man0u0"), "processEvent000_13");  | ||||
|         elseif (sequence == 10) then | ||||
|             callClientFunction(player, "delegateEvent", player, GetStaticActor("Man0u0"), "processEvent020_7");  | ||||
|         else | ||||
|             player:EndEvent(); | ||||
|         end | ||||
|     else | ||||
|         callClientFunction(player, "eventTalkWelcome", player); | ||||
|          | ||||
|         local menuChoice = callClientFunction(player, "eventAskMainMenu", player, curLevel, hasFunds, hasIssuance, hasChocobo, hasChocobo, 0); | ||||
|      | ||||
|         if (menuChoice == 1) then -- Issuance option | ||||
|          | ||||
|             callClientFunction(player, "eventTalkMyChocobo", player); | ||||
|             local nameResponse = callClientFunction(player, "eventSetChocoboName", true); | ||||
|      | ||||
|             if (nameResponse == "") then -- Cancel Chocobo naming | ||||
|                 callClientFunction(player, "eventCancelChocoboName", player); | ||||
|                 callClientFunction(player, "eventTalkStepBreak", player); | ||||
|                 player:EndEvent(); | ||||
|                 return; | ||||
|             else		 | ||||
|                 local appearance = startAppearances[classId];			 | ||||
|                 player:IssueChocobo(appearance, nameResponse); | ||||
|                  | ||||
|                 callClientFunction(player, "eventAfterChocoboName", player);			 | ||||
|      | ||||
|                 --Add Chocobo License and remove issuance | ||||
|                 if (player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(2001007) == false) then | ||||
|                     player:GetItemPackage(INVENTORY_KEYITEMS):AddItem(2001007); | ||||
|                 end | ||||
|                 player:GetItemPackage(INVENTORY_KEYITEMS):RemoveItem(gcIssuances[classId], 1); | ||||
|                  | ||||
|                 --Warp with the special chocobo warp mode. | ||||
|                 mountChocobo(player);			 | ||||
|                 GetWorldManager():DoZoneChange(player, cityExits[classId][1], nil, 0, SPAWN_CHOCOBO_GET, cityExits[classId][2], cityExits[classId][3], cityExits[classId][4], cityExits[classId][5]);		 | ||||
|             end | ||||
|                      | ||||
|         elseif(menuChoice == 2) then -- Summon Bird | ||||
|             mountChocobo(player); | ||||
|             GetWorldManager():DoZoneChange(player, cityExits[classId][1], nil, 0, SPAWN_NO_ANIM, cityExits[classId][2], cityExits[classId][3], cityExits[classId][4], cityExits[classId][5]);		 | ||||
|         elseif(menuChoice == 3) then -- Change Barding | ||||
|             callClientFunction(player, "eventTalkStepBreak", player); | ||||
|         elseif(menuChoice == 5) then -- Rent Bird | ||||
|             mountChocobo(player, true, 1); | ||||
|             GetWorldManager():DoZoneChange(player, cityExits[classId][1], nil, 0, SPAWN_CHOCOBO_RENTAL, cityExits[classId][2], cityExits[classId][3], cityExits[classId][4], cityExits[classId][5]); | ||||
|         else | ||||
|             callClientFunction(player, "eventTalkStepBreak", player); | ||||
|         end | ||||
|     end | ||||
|      | ||||
| 	player:EndEvent(); | ||||
| end | ||||
|  | ||||
| @@ -115,6 +130,6 @@ function mountChocobo(player, isRental, rentalMinutes) | ||||
| 	 | ||||
| 	player:SendMountAppearance(); | ||||
| 	player:SetMountState(1); | ||||
| 	player:ChangeSpeed(0.0, 5.0, 10.0, 10.0); | ||||
| 	player:ChangeSpeed(0.0, 3.6, 9.0, 9.0); | ||||
| 	player:ChangeState(15);	 | ||||
| end | ||||
| @@ -4,10 +4,10 @@ PopulaceCompanyWarp Script | ||||
|  | ||||
| Functions: | ||||
|  | ||||
| eventTalkWelcome(player) - Start Text | ||||
| eventTalkWelcome(player)        - Start Text | ||||
| eventAskMainMenu(player, index) - Shows teleport menu, hides the teleport location at index value to prevent warping to the spot you're at | ||||
| eventAfterWarpOtherZone(player) - Fades out for warp | ||||
| eventTalkStepBreak() - Ends talk | ||||
| eventTalkStepBreak()            - Holds the client up for whatever reason? | ||||
| --]] | ||||
|  | ||||
| require ("global") | ||||
| @@ -82,39 +82,50 @@ function onEventStarted(player, npc, triggerName) | ||||
|     npcId = npc:GetActorClassId(); | ||||
|     city = warpNpc[npcId][2]; | ||||
|      | ||||
|      | ||||
|     if city == 1 then | ||||
|     if (city == 1) then | ||||
|         if player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(passLimsa) then | ||||
|             passCheck = 1; | ||||
|         else | ||||
|             if passCheck == 0 then callClientFunction(player, "eventTalkWelcome", player); end | ||||
|             if (passCheck == 0) then callClientFunction(player, "eventTalkWelcome", player); end | ||||
|         end; | ||||
|     elseif city == 2 then | ||||
|         if player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(passGrid) then | ||||
|     elseif (city == 2) then | ||||
|       --  if player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(passGrid) then | ||||
|             passCheck = 1; | ||||
|        -- else | ||||
|          --  if passCheck == 0 then callClientFunction(player, "eventTalkWelcome", player); end | ||||
|         --end; | ||||
|     elseif (city == 3) then | ||||
|         if (player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(passUldah)) then | ||||
|             passCheck = 1; | ||||
|         else | ||||
|            if passCheck == 0 then callClientFunction(player, "eventTalkWelcome", player); end | ||||
|         end; | ||||
|     elseif city == 3 then | ||||
|         if player:GetItemPackage(INVENTORY_KEYITEMS):HasItem(passUldah) then | ||||
|             passCheck = 1; | ||||
|         else | ||||
|             if passCheck == 0 then callClientFunction(player, "eventTalkWelcome", player); end | ||||
|             if (passCheck == 0) then callClientFunction(player, "eventTalkWelcome", player); end | ||||
|         end | ||||
|     end | ||||
|      | ||||
|     if passCheck == 1 then | ||||
|      | ||||
|     if (passCheck == 1) then | ||||
|         choice = callClientFunction(player, "eventAskMainMenu", player, warpNpc[npcId][1]); | ||||
|      | ||||
|         if choice == 0 then | ||||
|             --callClientFunction(player, "playereventTalkStepBreak"); | ||||
|             player:EndEvent(); | ||||
|         else | ||||
|          --   callClientFunction(player, "eventAfterWarpOtherZone", player);   -- Commented out for now to prevent double fade-to-black for warp | ||||
|          | ||||
|         if (choice ~= 0) then | ||||
|              | ||||
|              | ||||
|             | ||||
|            callClientFunction(player, "eventAfterWarpOtherZone", player); | ||||
|            wait(1); | ||||
|            player:EndEvent(); | ||||
|            GetWorldManager():DoZoneChange(player, aethernet[city][choice].zone, nil, 0, 15, aethernet[city][choice].x, aethernet[city][choice].y, aethernet[city][choice].z, aethernet[city][choice].r);     | ||||
|             local player_zone = player:GetPos()[5]; | ||||
|             spawnType = 0x0A; | ||||
|             if (player_zone == aethernet[city][choice].zone) then | ||||
|                  | ||||
|                 GetWorldManager():DoPlayerMoveInZone(player, aethernet[city][choice].x, aethernet[city][choice].y, aethernet[city][choice].z, aethernet[city][choice].r, spawnType);     | ||||
|             else | ||||
|                 GetWorldManager():DoZoneChange(player, aethernet[city][choice].zone, nil, 0, spawnType, aethernet[city][choice].x, aethernet[city][choice].y, aethernet[city][choice].z, aethernet[city][choice].r);     | ||||
|             end; | ||||
|         else | ||||
|             player:EndEvent(); | ||||
|         end | ||||
|     end | ||||
|      | ||||
|     player:EndEvent(); | ||||
|      | ||||
| end | ||||
|   | ||||
| @@ -6,8 +6,50 @@ Handles mounting and dismounting the Chocobo and Goobbue | ||||
|  | ||||
| --]] | ||||
|  | ||||
| require ("global") | ||||
|  | ||||
| function onEventStarted(player, actor, triggerName, isGoobbue) | ||||
|  | ||||
| <<<<<<< HEAD | ||||
|     if (player:GetState() == 0) then         | ||||
|                  | ||||
|         worldMaster = GetWorldMaster();      | ||||
|          | ||||
|         if (isGoobbue ~= true) then | ||||
|             player:ChangeMusic(83, MUSIC_FADEIN); | ||||
|             player:SendGameMessage(player, worldMaster, 26001, 0x20); | ||||
|             player:SetMountState(1); | ||||
|         else | ||||
|             player:ChangeMusic(98, MUSIC_FADEIN); | ||||
|             player:SendGameMessage(player, worldMaster, 26019, 0x20); | ||||
|             player:SetMountState(2); | ||||
|         end | ||||
|          | ||||
|         player:ChangeSpeed(0.0, 3.6, 9.0, 9.0); | ||||
|         player:ChangeState(15); | ||||
|     else | ||||
|         player:ChangeMusic(player:GetZone().bgmDay, MUSIC_FADEIN); | ||||
|          | ||||
|         worldMaster = GetWorldMaster(); | ||||
|          | ||||
|         if (player.rentalExpireTime != 0) then | ||||
|             player:SendGameMessage(player, worldMaster, 26004, 0x20); --You dismount. | ||||
|         else | ||||
|             if (player:GetMountState() == 1) then | ||||
|                 player:SendGameMessage(player, worldMaster, 26003, 0x20); --You dismount X. | ||||
|             else | ||||
|                 player:SendGameMessage(player, worldMaster, 26021, 0x20); --You dismount your Gobbue. | ||||
|             end | ||||
|         end | ||||
|          | ||||
|         player:SetMountState(0); | ||||
|         player:ChangeSpeed(0.0, 2.0, 5.0, 5.0) | ||||
|         player:ChangeState(0);  | ||||
|     end | ||||
|      | ||||
|     player:EndEvent(); | ||||
|      | ||||
| ======= | ||||
| 	if (player:GetState() == 0) then		 | ||||
| 				 | ||||
| 		worldMaster = GetWorldMaster();		 | ||||
| @@ -46,4 +88,5 @@ function onEventStarted(player, actor, triggerName, isGoobbue) | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| 	 | ||||
| >>>>>>> ioncannon/quest_system | ||||
| end | ||||
| @@ -6,7 +6,7 @@ Functions: | ||||
|  | ||||
| eventRegion(numAnima) | ||||
| eventAetheryte(region, animaCost1, animaCost2, animaCost3, animaCost4, animaCost5, animaCost6) | ||||
| eventConfirm(isReturn, isInBattle, cityReturnNum, 138821, forceAskReturnOnly) | ||||
| eventConfirm(isReturn, isInBattle, HomePointInn, HomePoint, forceAskReturnOnly) | ||||
|  | ||||
| --]] | ||||
|  | ||||
| @@ -15,112 +15,189 @@ require ("aetheryte") | ||||
| require ("utils") | ||||
|  | ||||
| teleportMenuToAetheryte = { | ||||
| 	[1] = { | ||||
| 		[1] = 1280001, | ||||
| 		[2] = 1280002, | ||||
| 		[3] = 1280003, | ||||
| 		[4] = 1280004, | ||||
| 		[5] = 1280005, | ||||
| 		[6] = 1280006 | ||||
| 	}, | ||||
| 	[2] = { | ||||
| 		[1] = 1280092, | ||||
| 		[2] = 1280093, | ||||
| 		[3] = 1280094, | ||||
| 		[4] = 1280095, | ||||
| 		[5] = 1280096 | ||||
| 	}, | ||||
| 	[3] = { | ||||
| 		[1] = 1280061, | ||||
| 		[2] = 1280062, | ||||
| 		[3] = 1280063, | ||||
| 		[4] = 1280064, | ||||
| 		[5] = 1280065, | ||||
| 		[6] = 1280066 | ||||
| 	}, | ||||
| 	[4] = { | ||||
| 		[1] = 1280031, | ||||
| 		[2] = 1280032, | ||||
| 		[3] = 1280033, | ||||
| 		[4] = 1280034, | ||||
| 		[5] = 1280035, | ||||
| 		[6] = 1280036 | ||||
| 	}, | ||||
| 	[5] = { | ||||
| 		[1] = 1280121, | ||||
| 		[2] = 1280122		 | ||||
| 	} | ||||
|     [1] = { | ||||
|         [1] = 1280001, | ||||
|         [2] = 1280002, | ||||
|         [3] = 1280003, | ||||
|         [4] = 1280004, | ||||
|         [5] = 1280005, | ||||
|         [6] = 1280006 | ||||
|     }, | ||||
|     [2] = { | ||||
|         [1] = 1280092, | ||||
|         [2] = 1280093, | ||||
|         [3] = 1280094, | ||||
|         [4] = 1280095, | ||||
|         [5] = 1280096 | ||||
|     }, | ||||
|     [3] = { | ||||
|         [1] = 1280061, | ||||
|         [2] = 1280062, | ||||
|         [3] = 1280063, | ||||
|         [4] = 1280064, | ||||
|         [5] = 1280065, | ||||
|         [6] = 1280066 | ||||
|     }, | ||||
|     [4] = { | ||||
|         [1] = 1280031, | ||||
|         [2] = 1280032, | ||||
|         [3] = 1280033, | ||||
|         [4] = 1280034, | ||||
|         [5] = 1280035, | ||||
|         [6] = 1280036 | ||||
|     }, | ||||
|     [5] = { | ||||
|         [1] = 1280121, | ||||
|         [2] = 1280122 | ||||
|     } | ||||
| } | ||||
|  | ||||
| zoneIdToRegionChoice = | ||||
| { | ||||
|     [128] = 1, [129] = 1, [130] = 1, [131] = 1, [132] = 1, [133] = 1, [134] = 1, [135] = 1, [230] = 1, | ||||
|     [143] = 2, [144] = 2, [145] = 2, [147] = 2, [148] = 2, | ||||
|     [150] = 3, [151] = 3, [152] = 3, [153] = 3, [154] = 3, [155] = 3, [157] = 3, [158] = 3, [159] = 3, [160] = 3, [206] = 3, | ||||
|     [170] = 4, [171] = 4, [172] = 4, [173] = 4, [174] = 4, [175] = 4, [176] = 4, [178] = 4, [180] = 4, [181] = 4, [209] = 4, | ||||
|     [190] = 5 | ||||
| } | ||||
|  | ||||
|  | ||||
| function onEventStarted(player, actor, eventType, eventName, isTeleport) | ||||
|  | ||||
| 	local worldMaster = GetWorldMaster(); | ||||
|     local worldMaster = GetWorldMaster(); | ||||
|     local playerState = player:GetState(); | ||||
|     local currentAnima = 100; | ||||
|     local baseAnimaCost = 6; | ||||
|     local animaCost = 0; | ||||
|     local favoredLocation = {1280003, 1280005, 1280062}; | ||||
|     local currentRegion = zoneIdToRegionChoice[player:GetPos()[5]] or 0; | ||||
|     local isCity = {[1280001] = true, [1280061] = true, [1280031] = true}; | ||||
|     local isFavoredDesination = false; | ||||
|     local destination = 0; | ||||
|  | ||||
| 	if (isTeleport == 0) then		 | ||||
| 		while (true) do | ||||
| 			regionChoice = callClientFunction(player, "delegateCommand", actor, "eventRegion", 100); | ||||
| 			 | ||||
| 			if (regionChoice == nil) then break	end | ||||
| 		 | ||||
| 			while (true) do | ||||
| 				aetheryteChoice = callClientFunction(player, "delegateCommand", actor, "eventAetheryte", regionChoice, 2, 2, 2, 4, 4, 4); | ||||
| 				 | ||||
| 				if (aetheryteChoice == nil) then break end | ||||
| 				 | ||||
| 				player:PlayAnimation(0x4000FFA); | ||||
| 				player:SendGameMessage(worldMaster, 34101, 0x20, 2, teleportMenuToAetheryte[regionChoice][aetheryteChoice], 100, 100);	 | ||||
| 				confirmChoice = callClientFunction(player, "delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false);				 | ||||
| 				if (confirmChoice == 1) then | ||||
| 					player:PlayAnimation(0x4000FFB); | ||||
| 					player:SendGameMessage(worldMaster, 34105, 0x20);			 | ||||
| 					--Do teleport		 | ||||
| 					destination = aetheryteTeleportPositions[teleportMenuToAetheryte[regionChoice][aetheryteChoice]];			 | ||||
| 					if (destination ~= nil) then						 | ||||
| 						randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); | ||||
| 						rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); | ||||
| 						GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); | ||||
| 					end | ||||
| 				end | ||||
| 				player:endEvent(); | ||||
| 				return; | ||||
| 			end | ||||
| 			 | ||||
| 		end | ||||
| 	else | ||||
| 		player:PlayAnimation(0x4000FFA); | ||||
| 		local choice, isInn = callClientFunction(player, "delegateCommand", actor, "eventConfirm", true, false, player:GetHomePointInn(), player:GetHomePoint(), false);		 | ||||
| 		if (choice == 1) then | ||||
| 			player:PlayAnimation(0x4000FFB); | ||||
| 			player:SendGameMessage(worldMaster, 34104, 0x20); | ||||
|  | ||||
| 			--bandaid fix for returning while dead, missing things like weakness and the heal number | ||||
| 			if (player:GetHP() == 0) then | ||||
| 				player:SetHP(player.GetMaxHP()); | ||||
| 				player:ChangeState(0); | ||||
| 				player:PlayAnimation(0x01000066); | ||||
| 			end | ||||
|     if (isTeleport == 0) then -- Teleport hit | ||||
|         while (true) do | ||||
|             regionChoice = callClientFunction(player, "delegateCommand", actor, "eventRegion", currentAnima); | ||||
|              | ||||
|             if (regionChoice == nil) then break end | ||||
|          | ||||
|             while (true) do | ||||
|                 if (regionChoice > 0 and regionChoice < 6) then -- If Region selected | ||||
|  | ||||
| 			if (isInn) then | ||||
| 				--Return to Inn		 | ||||
| 				if (player:GetHomePointInn() == 1) then | ||||
| 					GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, -160.048, 0, -165.737, 0); | ||||
| 				elseif (player:GetHomePointInn() == 2) then | ||||
| 					GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 160.048, 0, 154.263, 0); | ||||
| 				elseif (player:GetHomePointInn() == 3) then | ||||
| 					GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 0.048, 0, -5.737, 0); | ||||
| 				end			 | ||||
| 			elseif (choice == 1 and isInn == nil) then			 | ||||
| 				--Return to Homepoint | ||||
| 				destination = aetheryteTeleportPositions[player:GetHomePoint()]; | ||||
| 				if (destination ~= nil) then | ||||
| 					randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); | ||||
| 					rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); | ||||
| 					GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); | ||||
|                     if (regionChoice == currentRegion) then -- Check if selected region matches player's region, reduce cost if so. | ||||
|                         baseAnimaCost = baseAnimaCost - 2; | ||||
|                     else | ||||
|                         baseAnimaCost = 6; | ||||
|                     end | ||||
|                      | ||||
|                     -- Assign anima cost to the six possible slots after factoring in same region or not. | ||||
|                     animaCost = {baseAnimaCost, baseAnimaCost, baseAnimaCost, baseAnimaCost, baseAnimaCost, baseAnimaCost}; | ||||
|      | ||||
|                     if (isCity[teleportMenuToAetheryte[regionChoice][1]] == true) then | ||||
|                         -- Halve the cost of applicable city aetheryte | ||||
|                         animaCost[1] = animaCost[1] / 2; | ||||
|                     end | ||||
|  | ||||
| 				end | ||||
| 			end | ||||
| 		end | ||||
| 	end	 | ||||
|                 elseif (regionChoice == 6) then -- Favored Destinations selected. | ||||
|                     -- Dummy info.  Favored would be half price after factoring in same region cost or not. | ||||
|                     animaCost = {2, 3, 3, favoredLocation[1], favoredLocation[2], favoredLocation[3]}; | ||||
|                     isFavoredDesination = true; | ||||
|                 end | ||||
|  | ||||
|  | ||||
|                 aetheryteChoice = callClientFunction( | ||||
|                                                 player,  | ||||
|                                                 "delegateCommand",  | ||||
|                                                 actor,  | ||||
|                                                 "eventAetheryte",  | ||||
|                                                 regionChoice,  | ||||
|                                                 animaCost[1], | ||||
|                                                 animaCost[2], | ||||
|                                                 animaCost[3], | ||||
|                                                 animaCost[4], | ||||
|                                                 animaCost[5], | ||||
|                                                 animaCost[6] | ||||
|                                                 ); | ||||
|                  | ||||
|                  | ||||
|                 if (aetheryteChoice == nil) then break end | ||||
|                  | ||||
|                 player:PlayAnimation(0x4000FFA); | ||||
|                  | ||||
|                 if (isFavoredDesination == true) then | ||||
|                     destination = aetheryteTeleportPositions[favoredLocation[aetheryteChoice]]; | ||||
|                     player:SendGameMessage(worldMaster, 34101, 0x20, 2, favoredLocation[aetheryteChoice], animaCost[aetheryteChoice], currentAnima);                 | ||||
|                 else | ||||
|                     destination = aetheryteTeleportPositions[teleportMenuToAetheryte[regionChoice][aetheryteChoice]]; | ||||
|                     player:SendGameMessage(worldMaster, 34101, 0x20, 2, teleportMenuToAetheryte[regionChoice][aetheryteChoice], animaCost[aetheryteChoice], currentAnima);   | ||||
|                 end | ||||
|                  | ||||
|                 confirmChoice = callClientFunction(player, "delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false);                | ||||
|                      | ||||
|                 if (confirmChoice == 1) then | ||||
|                     player:PlayAnimation(0x4000FFB); | ||||
|                     player:SendGameMessage(worldMaster, 34105, 0x20);            | ||||
|  | ||||
|                     if (destination ~= 0) then                         | ||||
|                         randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); | ||||
|                         rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); | ||||
|                         if (playerState == ACTORSTATE_MOUNTED) then  | ||||
|                             player:SetMountState(0); | ||||
|                             player:ChangeSpeed(0.0, 2.0, 5.0, 5.0) | ||||
|                             player:ChangeState(ACTORSTATE_PASSIVE); | ||||
|                         end | ||||
|                          | ||||
|                         GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); | ||||
|                     end | ||||
|                 end | ||||
|                      | ||||
|             player:endEvent(); | ||||
|             return; | ||||
|             end | ||||
|         end | ||||
|          | ||||
|     else -- Return hit | ||||
|         player:PlayAnimation(0x4000FFA); | ||||
|         local choice, isInn = callClientFunction(player, "delegateCommand", actor, "eventConfirm", true, false, player:GetHomePointInn(), player:GetHomePoint(), false);         | ||||
|         if (choice == 1) then | ||||
|             player:PlayAnimation(0x4000FFB); | ||||
|             player:SendGameMessage(worldMaster, 34104, 0x20); | ||||
|  | ||||
|             --bandaid fix for returning while dead, missing things like weakness and the heal number | ||||
|             if (player:GetHP() == 0) then | ||||
|                 player:SetHP(player.GetMaxHP()); | ||||
|                 player:ChangeState(0); | ||||
|                 player:PlayAnimation(0x01000066); | ||||
|             end | ||||
|  | ||||
|             if (isInn) then | ||||
|                 --Return to Inn      | ||||
|                 if (player:GetHomePointInn() == 1) then | ||||
|                     GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, -160.048, 0, -165.737, 0); | ||||
|                 elseif (player:GetHomePointInn() == 2) then | ||||
|                     GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 160.048, 0, 154.263, 0); | ||||
|                 elseif (player:GetHomePointInn() == 3) then | ||||
|                     GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 0.048, 0, -5.737, 0); | ||||
|                 end          | ||||
|             elseif (choice == 1 and isInn == nil) then           | ||||
|                 --Return to Homepoint | ||||
|                 destination = aetheryteTeleportPositions[player:GetHomePoint()]; | ||||
|                 if (destination ~= nil) then | ||||
|                     randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5); | ||||
|                     rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]); | ||||
|                     if (playerState == ACTORSTATE_MOUNTED) then  | ||||
|                         player:SetMountState(0); | ||||
|                         player:ChangeSpeed(0.0, 2.0, 5.0, 5.0) | ||||
|                         player:ChangeState(ACTORSTATE_PASSIVE); | ||||
|                     end | ||||
|                      | ||||
|                     GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation); | ||||
|                 end | ||||
|             end | ||||
|         end | ||||
|     end  | ||||
|  | ||||
|     player:endEvent(); | ||||
| end | ||||
|  | ||||
| 	player:endEvent(); | ||||
| end | ||||
| @@ -1,14 +1,17 @@ | ||||
| properties = { | ||||
|     permissions = 0, | ||||
|     parameters = "s", | ||||
|     parameters = "ss", | ||||
|     description = | ||||
| [[ | ||||
| Plays music <id> to player. | ||||
| !music <id> | ||||
| !music <id> <transition_type> | ||||
| ]], | ||||
| } | ||||
|  | ||||
| function onTrigger(player, argc, music) | ||||
| function onTrigger(player, argc, music, transition) | ||||
|     music = tonumber(music) or 0; | ||||
|     player:ChangeMusic(music); | ||||
|     transition = tonumber(transition) or nil; | ||||
|     player:SendMessage(0x20, "", tostring(argc).." "..tostring(music).." "..tostring(transition)); | ||||
|     player:ChangeMusic(music, transition); | ||||
| end; | ||||
| @@ -22,6 +22,5 @@ function onTrigger(player, argc, actorClassId) | ||||
|     if actor then | ||||
|         actor:ChangeNpcAppearance(actorClassId); | ||||
|         player:SendMessage(messageID, sender,  string.format("appearance %u", actorClassId)); | ||||
|     end; | ||||
|             | ||||
| end; | ||||
|     end | ||||
| end | ||||
| @@ -29,7 +29,7 @@ function onTrigger(player, argc, actorClassId, width, height) | ||||
|         --local x, y, z = player.GetPos(); | ||||
|         for i = 0, w do | ||||
|             for j = 0, h do | ||||
| 				actor = player.CurrentArea:SpawnActor(actorClassId, "test", pos[0] + (i - (w / 2) * 3), pos[1], pos[2] + (j - (h / 2) * 3), pos[3]); | ||||
| 				actor = player.CurrentArea:SpawnActor(actorClassId, "test", x + (i - (w / 2) * 3), y, z + (j - (h / 2) * 3), rot); | ||||
| 				actor.SetAppearance(1001149) | ||||
| 			end | ||||
| 		end | ||||
|   | ||||
| @@ -56,7 +56,8 @@ function onTrigger(player, argc, p1, p2, p3, p4, privateArea, privateAreaType, n | ||||
|             local x = tonumber(applyPositionOffset(p2, player_x)) or player_x; | ||||
|             local y = tonumber(applyPositionOffset(p3, player_y)) or player_y; | ||||
|             local z = tonumber(applyPositionOffset(p4, player_z)) or player_z; | ||||
|             if privateArea == "" then privateArea = nil end; | ||||
|             if privateArea == nil then privateArea = nil end; | ||||
|             if privateAreaType == nila then privateAreaType = 0 end; | ||||
|             player:SendMessage(messageID, sender, string.format("setting coordinates X:%d Y:%d Z:%d to new zone (%d) private area:%s", x, y, z, zone, privateArea or "unspecified")); | ||||
|             worldManager:DoZoneChange(player, zone, privateArea, tonumber(privateAreaType), 0x02, x, y, z, 0.00); | ||||
|         end | ||||
|   | ||||
| @@ -18,22 +18,23 @@ function onTrigger(player, argc, uID) | ||||
|     end;  | ||||
|      | ||||
|     actor = GetWorldManager():GetActorInWorldByUniqueId(uID);         | ||||
|  | ||||
|     actorId = actor:GetActorClassId(); | ||||
|     if (actor ~= nil) then | ||||
|         local actorPos = actor:GetPos(); | ||||
|         local playerPos = player:GetPos(); | ||||
|  | ||||
|         if actorPos[4] == playerPos[4] then | ||||
|             worldManager:DoPlayerMoveInZone(player, actorPos[0], actorPos[1], actorPos[2], actorPos[3], 0x00); | ||||
|         if actorPos[5] == playerPos[5] then | ||||
|             worldManager:DoPlayerMoveInZone(player, actorPos[1], actorPos[2], actorPos[3], actorPos[4], 0x00); | ||||
|         else | ||||
|             worldManager:DoZoneChange(player, actorPos[4], nil, 0, 0x02, actorPos[0], actorPos[1], actorPos[2], actorPos[3]);   | ||||
|             worldManager:DoZoneChange(player, actorPos[5], nil, 0, 0x02, actorPos[1], actorPos[2], actorPos[3], actorPos[4]);   | ||||
|         end | ||||
|          | ||||
|         message =  string.format("Moving to %s 's coordinates @ zone %s, %.3f %.3f %.3f ", uID, actorPos[4], actorPos[0], actorPos[1], actorPos[2]); | ||||
|         message =  string.format("Moving to %s 's coordinates @ zone %s, %.3f %.3f %.3f ", uID, actorPos[5], actorPos[1], actorPos[2], actorPos[3]); | ||||
| 	end	; | ||||
|  | ||||
|     player:SendMessage(messageID, sender, message); | ||||
|      | ||||
|     player:SendMessage(0x20, "", "Actor Class Id: "..actorId); | ||||
|  | ||||
| end | ||||
|  | ||||
|      | ||||
| @@ -11,7 +11,28 @@ function init() | ||||
| 	return "/Director/Quest/QuestDirectorMan0u001"; | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, actor, triggerName)	 | ||||
|  | ||||
| function onCreateContentArea(players, director, contentArea, contentGroup) | ||||
| 	 | ||||
| 	niellefresne = contentArea:SpawnActor(2290003, "niellefresne", -11.86, 192, 35.06, -0.8); | ||||
| 	thancred = contentArea:SpawnActor(2290004, "thancred", -26.41, 192, 39.52, 1.2); | ||||
| 	thancred:ChangeState(2); | ||||
| 	 | ||||
| 	mob1 = contentArea:SpawnActor(2203301, "mob1", -6.193, 192, 47.658, -2.224); | ||||
|  | ||||
| 	openingStoper = contentArea:SpawnActor(1090385, "openingstoper", -24.34, 192, 34.22, 0); | ||||
| 	 | ||||
| 	for _, player in pairs(players) do | ||||
|         contentGroup:AddMember(player); | ||||
|     end; | ||||
|      | ||||
| 	contentGroup:AddMember(director); | ||||
| 	contentGroup:AddMember(niellefresne); | ||||
| 	contentGroup:AddMember(thancred); | ||||
| 	contentGroup:AddMember(mob1); | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, director, triggerName)	 | ||||
|  | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
| 	startTutorialMode(player); | ||||
| @@ -19,7 +40,8 @@ function onEventStarted(player, actor, triggerName) | ||||
| 	player:EndEvent(); | ||||
| 	waitForSignal("playerActive"); | ||||
| 	wait(1); --If this isn't here, the scripts bugs out. TODO: Find a better alternative. | ||||
| 	kickEventContinue(player, actor, "noticeEvent", "noticeEvent");	 | ||||
| 	kickEventContinue(player, director, "noticeEvent", "noticeEvent");	 | ||||
|      | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBtl002", nil, nil, nil); | ||||
| 	player:EndEvent(); | ||||
| 	wait(4); | ||||
| @@ -40,7 +62,7 @@ function onEventStarted(player, actor, triggerName) | ||||
| 	wait(7); | ||||
| 	player:ChangeMusic(7); | ||||
| 	player:ChangeState(0);  | ||||
| 	kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); | ||||
| 	kickEventContinue(player, director, "noticeEvent", "noticeEvent"); | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020", nil, nil, nil);	 | ||||
| 	 | ||||
| 	--[[ | ||||
| @@ -56,9 +78,8 @@ function onEventStarted(player, actor, triggerName) | ||||
| 		OpenWidget (DEFEAT ENEMY)			 | ||||
| 	]] | ||||
| 	 | ||||
| 	man0u0Quest:NextPhase(10);	 | ||||
| 	player:EndEvent();	 | ||||
| 	 | ||||
| 	man0u0Quest:StartSequence(10);		 | ||||
| 	player.CurrentArea:ContentFinished(); | ||||
| 	GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); | ||||
|     player:EndEvent(); | ||||
| end | ||||
|   | ||||
| @@ -164,6 +164,14 @@ QFLAG_NONE = 0; | ||||
| QFLAG_PLATE = 2; | ||||
| QFLAG_MAP = 3; | ||||
|  | ||||
| -- MUSIC | ||||
| MUSIC_IMMEDIATE = 1; | ||||
| MUSIC_CROSSFADE = 2; | ||||
| MUSIC_LAYER = 3; | ||||
| MUSIC_FADEIN = 4; | ||||
| MUSIC_NORMAL_CHANNEL = 5; | ||||
| MUSIC_BATTLE_CHANNEL = 6; | ||||
|  | ||||
| -- Common Helper Functions | ||||
| function attentionMessage(player, textId, ...) | ||||
| 	player:SendGameMessage(GetWorldMaster(), textId, 0x20, ...); | ||||
|   | ||||
| @@ -46,18 +46,17 @@ function onBeginLogin(player) | ||||
| 		player:GetQuest(110005):ClearQuestData(); | ||||
| 		player:GetQuest(110005):ClearQuestFlags(); | ||||
| 	elseif (player:HasQuest(110009) == true and player.CurrentArea.ZoneId == 184) then | ||||
| 		--director = player.CurrentArea:CreateDirector("OpeningDirector", false);		 | ||||
| 		--player:AddDirector(director); | ||||
| 		--director:StartDirector(false);		 | ||||
| 		--player:SetLoginDirector(director);		 | ||||
| 		--player:KickEvent(director, "noticeEvent", true); | ||||
| 		-- | ||||
| 		director = player.CurrentArea:CreateDirector("OpeningDirector", false);		 | ||||
| 		player:AddDirector(director); | ||||
| 		director:StartDirector(true); | ||||
| 		player:SetLoginDirector(director);		 | ||||
| 		player:KickEvent(director, "noticeEvent", true); | ||||
| 		 | ||||
| 		player.positionX = 5.364327; | ||||
| 		player.positionY = 196.0; | ||||
| 		player.positionZ = 133.6561; | ||||
| 		player.rotation = -2.849384; | ||||
| 		player:GetQuest(110009):ClearQuestData(); | ||||
| 		player:GetQuest(110009):ClearQuestFlags(); | ||||
| 		player:GetQuest(110009):ClearClearData(); | ||||
| 	end	 | ||||
| end | ||||
|  | ||||
|   | ||||
| @@ -18,13 +18,22 @@ local defaultTalkFst = { | ||||
| 	[1001081] = "defaultTalkWithKhumamoshroca_001",			-- Khuma Moshroca | ||||
| 	[1001103] = "defaultTalkWithMestonnaux_001", 			-- Mestonnaux | ||||
| 	[1001396] = "defaultTalkWithLefwyne_001",				-- Lefwyne | ||||
| 	[1001430] = "defaultTalkWithKinnison_001",				-- Kinnison | ||||
| 	[1001437] = "defaultTalkWithSybell_001", 				-- Sybell	 | ||||
| 	[1001430] = "defaultTalkWithKinnison_001",				-- Kinnison             - Two args (nil errors client).  If either >= 0, dialog mentions you've met Kan-E-Senna. | ||||
| 	[1001437] = "defaultTalkWithSybell_001" 				-- Sybell	 | ||||
|  --   [1000458] = "defaultTalkWithInn_Desk" | ||||
| } | ||||
|  | ||||
| function onTalk(player, quest, npc, eventName) | ||||
| 	local clientFunc = defaultTalkFst[npc:GetActorClassId()]; | ||||
| 	callClientFunction(player, "delegateEvent", player, quest, clientFunc); | ||||
|  | ||||
|     local npcId = npc:GetActorClassId(); | ||||
| 	local clientFunc = defaultTalkFst[npcId]; | ||||
|      | ||||
|     if (npcId == 1001430) then -- Kinnison | ||||
|         callClientFunction(player, "delegateEvent", player, quest, clientFunc, -1,-1); | ||||
|     else | ||||
|         callClientFunction(player, "delegateEvent", player, quest, clientFunc); | ||||
|     end | ||||
|      | ||||
| 	player:EndEvent(); | ||||
| end | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,270 @@ Contains all default lines for talkable npcs in the Sea Region (aka La Noscea). | ||||
| -- [ActorClassId] = "client_function_name" | ||||
| local defaultTalkSea = { | ||||
| 	[1234] = "defaultTalkWithLefchild_001" -- Lefchild | ||||
|  | ||||
| --[[ | ||||
|  | ||||
| defaultTalkStartMan(A0_1, A1_2, A2_3) | ||||
| defaultTalkOiSAM(A0_4, A1_5, A2_6) | ||||
| defaultTalkMLinhbo(A0_7, A1_8, A2_9) | ||||
| defaultTalkWithMytesyn_001(A0_10, A1_11, A2_12) | ||||
| defaultTalkWithUrsulie_001(A0_13, A1_14, A2_15) | ||||
| defaultTalkWithAshakkal_001(A0_16, A1_17, A2_18) | ||||
| defaultTalkWithPiralnaut_001(A0_19, A1_20, A2_21) | ||||
| defaultTalkWithBaderon_001(A0_22, A1_23, A2_24) | ||||
| defaultTalkWithCharlys_001(A0_25, A1_26, A2_27) | ||||
| defaultTalkWithNoline_001(A0_28, A1_29, A2_30) | ||||
| defaultTalkWithJossy_001(A0_31, A1_32, A2_33) | ||||
| defaultTalkWithPrudentia_001(A0_34, A1_35, A2_36) | ||||
| defaultTalkWithPulmia_001(A0_37, A1_38, A2_39) | ||||
| defaultTalkWithAentfoet_001(A0_40, A1_41, A2_42) | ||||
| defaultTalkWithKikichua_001(A0_43, A1_44, A2_45) | ||||
| defaultTalkWithGerulf_001(A0_46, A1_47, A2_48) | ||||
| defaultTalkWithHobriaut_001(A0_49, A1_50, A2_51) | ||||
| defaultTalkWithRsushmo_001(A0_52, A1_53, A2_54) | ||||
| defaultTalkWithFrailoise_001(A0_55, A1_56, A2_57) | ||||
| defaultTalkWithIsaudorel_001(A0_58, A1_59, A2_60) | ||||
| defaultTalkWithTotoruto_001(A0_61, A1_62, A2_63) | ||||
| defaultTalkWithChaunollet_001(A0_64, A1_65, A2_66) | ||||
| defaultTalkWithRaragun_001(A0_67, A1_68, A2_69) | ||||
| defaultTalkWithMynadaeg_001(A0_70, A1_71, A2_72) | ||||
| defaultTalkWithTefhmoshroca_001(A0_73, A1_74, A2_75) | ||||
| defaultTalkWithGinnade_001(A0_76, A1_77, A2_78) | ||||
| defaultTalkWithArthurioux_001(A0_79, A1_80, A2_81) | ||||
| defaultTalkWithBodenolf_001(A0_82, A1_83, A2_84) | ||||
| defaultTalkWithBodenolf_002(A0_85, A1_86, A2_87) | ||||
| defaultTalkWithQhaschalahko_001(A0_88, A1_89, A2_90) | ||||
| defaultTalkWithJoellaut_001(A0_91, A1_92, A2_93) | ||||
| defaultTalkWithIofa_001(A0_94, A1_95, A2_96) | ||||
| defaultTalkWithSyngsmyd_001(A0_97, A1_98, A2_99) | ||||
| defaultTalkWithMartiallais_001(A0_100, A1_101, A2_102) | ||||
| defaultTalkWithFaucillien_001(A0_103, A1_104, A2_105) | ||||
| defaultTalkWithNnmulika_001(A0_106, A1_107, A2_108) | ||||
| defaultTalkWithLouviaune_001(A0_109, A1_110, A2_111) | ||||
| defaultTalkWithClifton_001(A0_112, A1_113, A2_114) | ||||
| defaultTalkWithUndsatz_001(A0_115, A1_116, A2_117) | ||||
| defaultTalkWithRerenasu_001(A0_118, A1_119, A2_120) | ||||
| defaultTalkWithDacajinjahl_001(A0_121, A1_122, A2_123) | ||||
| defaultTalkWithBloemerl_001(A0_124, A1_125, A2_126) | ||||
| defaultTalkWithXavalien_001(A0_127, A1_128, A2_129) | ||||
| defaultTalkWithAstrid_001(A0_130, A1_131, A2_132) | ||||
| defaultTalkWithWaekbyrt_001(A0_133, A1_134, A2_135) | ||||
| defaultTalkWithWaekbyrt_002(A0_136, A1_137, A2_138) | ||||
| defaultTalkWithNunuba_001(A0_139, A1_140, A2_141) | ||||
| defaultTalkWithSraemha_001(A0_142, A1_143, A2_144) | ||||
| defaultTalkWithOsitha_001(A0_145, A1_146, A2_147) | ||||
| defaultTalkWithNeale_001(A0_148, A1_149, A2_150) | ||||
| defaultTalkWithBayard_001(A0_151, A1_152, A2_153) | ||||
| defaultTalkWithTriaine_001(A0_154, A1_155, A2_156) | ||||
| defaultTalkWithWyrakhamazom_001(A0_157, A1_158, A2_159) | ||||
| defaultTalkWithDhemsunn_001(A0_160, A1_161, A2_162) | ||||
| defaultTalkWithNanapiri_001(A0_163, A1_164, A2_165) | ||||
| defaultTalkWithMharelak_001(A0_166, A1_167, A2_168) | ||||
| defaultTalkWithHasthwab_001(A0_169, A1_170, A2_171) | ||||
| defaultTalkWithIghiimoui_001(A0_172, A1_173, A2_174) | ||||
| defaultTalkWithMimiroon_001(A0_175, A1_176, A2_177) | ||||
| defaultTalkWithJojoroon_001(A0_178, A1_179, A2_180) | ||||
| defaultTalkWithChichiroon_001(A0_181, A1_182, A2_183) | ||||
| defaultTalkWithBuburoon_001(A0_184, A1_185, A2_186) | ||||
| defaultTalkWithHaldberk_001(A0_187, A1_188, A2_189) | ||||
| defaultTalkWithP_tahjha_001(A0_190, A1_191, A2_192) | ||||
| defaultTalkWithElilwaen_001(A0_193, A1_194, A2_195) | ||||
| defaultTalkWithDodoroba_001(A0_196, A1_197, A2_198) | ||||
| defaultTalkWithIvan_001(A0_199, A1_200, A2_201) | ||||
| defaultTalkWithLilina_001(A0_202, A1_203, A2_204) | ||||
| defaultTalkWithThosinbaen_001(A0_205, A1_206, A2_207) | ||||
| defaultTalkWithRubh_epocan_001(A0_208, A1_209, A2_210) | ||||
| defaultTalkWithRubh_hob_001(A0_211, A1_212, A2_213) | ||||
| defaultTalkWithMaunie_001(A0_214, A1_215, A2_216) | ||||
| defaultTalkWithMaunie_002(A0_217, A1_218, A2_219) | ||||
| defaultTalkWithMaunie_003(A0_220, A1_221, A2_222) | ||||
| defaultTalkWithGigirya_001(A0_223, A1_224, A2_225) | ||||
| defaultTalkWithGigirya_002(A0_226, A1_227, A2_228) | ||||
| defaultTalkWithGigirya_003(A0_229, A1_230, A2_231) | ||||
| defaultTalkWithKokoto_001(A0_232, A1_233, A2_234) | ||||
| defaultTalkWithKokoto_002(A0_235, A1_236, A2_237) | ||||
| defaultTalkWithKokoto_003(A0_238, A1_239, A2_240) | ||||
| defaultTalkWithTirauland_001(A0_241, A1_242, A2_243) | ||||
| defaultTalkWithTirauland_010(A0_244, A1_245, A2_246) | ||||
| defaultTalkWithTirauland_002(A0_247, A1_248, A2_249) | ||||
| defaultTalkWithTirauland_003(A0_250, A1_251, A2_252) | ||||
| defaultTalkWithEstrilda_001(A0_253, A1_254, A2_255) | ||||
| defaultTalkWithEstrilda_002(A0_256, A1_257, A2_258) | ||||
| defaultTalkWithEstrilda_003(A0_259, A1_260, A2_261) | ||||
| defaultTalkWithGregory_001(A0_262, A1_263, A2_264) | ||||
| defaultTalkWithGregory_002(A0_265, A1_266, A2_267) | ||||
| defaultTalkWithGregory_003(A0_268, A1_269, A2_270) | ||||
| defaultTalkWithChantine_001(A0_271, A1_272, A2_273) | ||||
| defaultTalkWithChantine_002(A0_274, A1_275, A2_276) | ||||
| defaultTalkWithChantine_003(A0_277, A1_278, A2_279) | ||||
| defaultTalkWithNanaka_001(A0_280, A1_281, A2_282) | ||||
| defaultTalkWithNanaka_002(A0_283, A1_284, A2_285) | ||||
| defaultTalkWithNanaka_003(A0_286, A1_287, A2_288) | ||||
| defaultTalkWithKakamehi_001(A0_289, A1_290, A2_291) | ||||
| defaultTalkWithKakamehi_002(A0_292, A1_293, A2_294) | ||||
| defaultTalkWithKakamehi_003(A0_295, A1_296, A2_297) | ||||
| defaultTalkWithStephannot_001(A0_298, A1_299, A2_300) | ||||
| defaultTalkWithStephannot_002(A0_301, A1_302, A2_303) | ||||
| defaultTalkWithStephannot_003(A0_304, A1_305, A2_306) | ||||
| defaultTalkWithJosias_001(A0_307, A1_308, A2_309) | ||||
| defaultTalkWithJosias_002(A0_310, A1_311, A2_312) | ||||
| defaultTalkWithJosias_003(A0_313, A1_314, A2_315) | ||||
| defaultTalkWithFrithuric_001(A0_316, A1_317, A2_318) | ||||
| defaultTalkWithFrithuric_002(A0_319, A1_320, A2_321) | ||||
| defaultTalkWithFrithuric_003(A0_322, A1_323, A2_324) | ||||
| defaultTalkWithLauda_001(A0_325, A1_326, A2_327) | ||||
| defaultTalkWithLauda_002(A0_328, A1_329, A2_330) | ||||
| defaultTalkWithLauda_003(A0_331, A1_332, A2_333) | ||||
| defaultTalkWithH_lahono_001(A0_334, A1_335, A2_336) | ||||
| defaultTalkWithWyrstmann_001(A0_337, A1_338, A2_339) | ||||
| defaultTalkWithTraveler030_001(A0_340, A1_341, A2_342) | ||||
| defaultTalkWithTraveler031_001(A0_343, A1_344, A2_345) | ||||
| defaultTalkWithTraveler032_001(A0_346, A1_347, A2_348) | ||||
| defaultTalkWithYouty001_001(A0_349, A1_350, A2_351) | ||||
| defaultTalkWithMerchant002_001(A0_352, A1_353, A2_354) | ||||
| defaultTalkWithPirate030_001(A0_355, A1_356, A2_357) | ||||
| defaultTalkWithLady002_001(A0_358, A1_359, A2_360) | ||||
| defaultTalkWithSlaiboli_001(A0_361, A1_362, A2_363) | ||||
| defaultTalkWithSyhrdaeg_001(A0_364, A1_365, A2_366) | ||||
| defaultTalkWithPfynhaemr_001(A0_367, A1_368, A2_369) | ||||
| defaultTalkWithMzimzizi_001(A0_370, A1_371, A2_372) | ||||
| defaultTalkWithCarrilaut_001(A0_373, A1_374, A2_375) | ||||
| defaultTalkWithGautzelin_001(A0_376, A1_377, A2_378) | ||||
| defaultTalkWithZonggo_001(A0_379, A1_380, A2_381) | ||||
| defaultTalkWithAdventurer032_001(A0_382, A1_383, A2_384) | ||||
| defaultTalkWithKob031_001(A0_385, A1_386, A2_387) | ||||
| defaultTalkWithJainelette_001(A0_388, A1_389, A2_390) | ||||
| defaultTalkWithBrictt_001(A0_391, A1_392, A2_393) | ||||
| defaultTalkWithLiautroix_001(A0_394, A1_395, A2_396) | ||||
| defaultTalkWithLaniaitte_001(A0_397, A1_398, A2_399) | ||||
| defaultTalkWithNyaalamo_001(A0_400, A1_401, A2_402) | ||||
| defaultTalkWithFaezbroes_001(A0_403, A1_404, A2_405) | ||||
| defaultTalkWithIsleen_001(A0_406, A1_407, A2_408) | ||||
| defaultTalkWithSundhimal_001(A0_409, A1_410, A2_411) | ||||
| defaultTalkWithEugennoix_001(A0_412, A1_413, A2_414) | ||||
| defaultTalkWithRyssfloh_001(A0_415, A1_416, A2_417, A3_418) | ||||
| defaultTalkWithKihtgamduhla_001(A0_419, A1_420, A2_421, A3_422) | ||||
| defaultTalkWithFabodji_001(A0_423, A1_424, A2_425) | ||||
| defaultTalkWithRobairlain_001(A0_426, A1_427, A2_428) | ||||
| defaultTalkWithNorman_001(A0_429, A1_430, A2_431) | ||||
| defaultTalkWithBaenskylt_001(A0_432, A1_433, A2_434) | ||||
| defaultTalkWithAimiliens_001(A0_435, A1_436, A2_437) | ||||
| defaultTalkWithFongho_001(A0_438, A1_439, A2_440, A3_441) | ||||
| defaultTalkWithBaenryss_001(A0_442, A1_443, A2_444) | ||||
| defaultTalkWithChachapi_001(A0_445, A1_446, A2_447) | ||||
| defaultTalkWithForchetaix_001(A0_448, A1_449, A2_450) | ||||
| defaultTalkWithSosoze_001(A0_451, A1_452, A2_453) | ||||
| defaultTalkWithColson_001(A0_454, A1_455, A2_456) | ||||
| defaultTalkWithHihine_001(A0_457, A1_458, A2_459) | ||||
| defaultTalkWithTrinne_001(A0_460, A1_461, A2_462) | ||||
| defaultTalkWithSailor031_001(A0_463, A1_464, A2_465) | ||||
| defaultTalkWithPorter001_001(A0_466, A1_467, A2_468) | ||||
| defaultTalkWithAdventurer030_001(A0_469, A1_470, A2_471) | ||||
| defaultTalkWithPirate031_001(A0_472, A1_473, A2_474) | ||||
| defaultTalkWithLady001_001(A0_475, A1_476, A2_477) | ||||
| defaultTalkWithAdventurer031_001(A0_478, A1_479, A2_480) | ||||
| defaultTalkWithSolelle_001(A0_481, A1_482, A2_483) | ||||
| defaultTalkWithZanthael_001(A0_484, A1_485, A2_486) | ||||
| defaultTalkWithJghonako_001(A0_487, A1_488, A2_489) | ||||
| defaultTalkWithAhldskyff_001(A0_490, A1_491, A2_492) | ||||
| defaultTalkWithSkarnwaen_001(A0_493, A1_494, A2_495) | ||||
| defaultTalkWithGnibnpha_001(A0_496, A1_497, A2_498) | ||||
| defaultTalkWithAudaine_001(A0_499, A1_500, A2_501) | ||||
| defaultTalkWithCeadda_001(A0_502, A1_503, A2_504) | ||||
| defaultTalkWithZehrymm_001(A0_505, A1_506, A2_507) | ||||
| defaultTalkWithTatasako_001(A0_508, A1_509, A2_510) | ||||
| defaultTalkWithDympna_001(A0_511, A1_512, A2_513) | ||||
| defaultTalkWithBmallpa_001(A0_514, A1_515, A2_516) | ||||
| defaultTalkWithFerdillaix_001(A0_517, A1_518, A2_519) | ||||
| defaultTalkWithFufuna_001(A0_520, A1_521, A2_522) | ||||
| defaultTalkWithDavyd_001(A0_523, A1_524, A2_525) | ||||
| defaultTalkWithOrtolf_001(A0_526, A1_527, A2_528) | ||||
| defaultTalkWithMaetistym_001(A0_529, A1_530, A2_531) | ||||
| defaultTalkWithFzhumii_001(A0_532, A1_533, A2_534) | ||||
| defaultTalkWithShoshoma_001(A0_535, A1_536, A2_537) | ||||
| defaultTalkWithArnegis_001(A0_538, A1_539, A2_540) | ||||
| defaultTalkWithRbaharra_001(A0_541, A1_542, A2_543) | ||||
| defaultTalkWithAergwynt_001(A0_544, A1_545, A2_546) | ||||
| defaultTalkWithKakalan_001(A0_547, A1_548, A2_549) | ||||
| defaultTalkWithSathzant_001(A0_550, A1_551, A2_552) | ||||
| defaultTalkWithNnagali_001(A0_553, A1_554, A2_555) | ||||
| defaultTalkWithVhynho_001(A0_556, A1_557, A2_558) | ||||
| defaultTalkWithZuzule_001(A0_559, A1_560, A2_561) | ||||
| defaultTalkWithFuzakanzak_001(A0_562, A1_563, A2_564) | ||||
| defaultTalkWithBnhapla_001(A0_565, A1_566, A2_567) | ||||
| defaultTalkWithMerlzirn_001(A0_568, A1_569, A2_570) | ||||
| defaultTalkWithMerlzirn_002(A0_571, A1_572, A2_573) | ||||
| defaultTalkWithNinianne_001(A0_574, A1_575, A2_576) | ||||
| defaultTalkWithNheujawantal_001(A0_577, A1_578, A2_579) | ||||
| defaultTalkWithMaisie_001(A0_580, A1_581, A2_582) | ||||
| defaultTalkWithWhahtoa_001(A0_583, A1_584, A2_585) | ||||
| defaultTalkWithGnanghal_001(A0_586, A1_587, A2_588) | ||||
| defaultTalkWithKehdamujuuk_001(A0_589, A1_590, A2_591) | ||||
| defaultTalkWithGert_001(A0_592, A1_593, A2_594) | ||||
| defaultTalkWithLorhzant_001(A0_595, A1_596, A2_597) | ||||
| defaultTalkWithNahctahr_001(A0_598, A1_599, A2_600) | ||||
| defaultTalkWithKokomui_001(A0_601, A1_602, A2_603) | ||||
| defaultTalkWithEptolmi_001(A0_604, A1_605, A2_606) | ||||
| defaultTalkWithZabinie_001(A0_607, A1_608, A2_609) | ||||
| defaultTalkWithDeladomadalado_001(A0_610, A1_611, A2_612) | ||||
| defaultTalkWithSkoefmynd_001(A0_613, A1_614, A2_615) | ||||
| defaultTalkWithBubusha_001(A0_616, A1_617, A2_618) | ||||
| defaultTalkWithFupepe_001(A0_619, A1_620, A2_621) | ||||
| defaultTalkWithOadebh_001(A0_622, A1_623, A2_624) | ||||
| defaultTalkWithMyndeidin_001(A0_625, A1_626, A2_627) | ||||
| defaultTalkWithModestmouse_001(A0_628, A1_629, A2_630) | ||||
| defaultTalkWithDuchesnelt_001(A0_631, A1_632, A2_633) | ||||
| defaultTalkWithSkribskoef_001(A0_634, A1_635, A2_636) | ||||
| defaultTalkWithYalabali_001(A0_637, A1_638, A2_639) | ||||
| defaultTalkWithSyzfrusk_001(A0_640, A1_641, A2_642) | ||||
| defaultTalkWithInairoh_001(A0_643, A1_644, A2_645) | ||||
| defaultTalkWithMagaswyn_001(A0_646, A1_647, A2_648) | ||||
| defaultTalkWithSenahchalahko_001(A0_649, A1_650, A2_651) | ||||
| defaultTalkWithWaldibert_001(A0_652, A1_653, A2_654) | ||||
| defaultTalkWithEbandala_001(A0_655, A1_656, A2_657) | ||||
| defaultTalkWithGuidingstar_001(A0_658, A1_659, A2_660) | ||||
| defaultTalkWithHundredeyes_001(A0_661, A1_662, A2_663) | ||||
| defaultTalkWithSizhaepocan_001(A0_664, A1_665, A2_666) | ||||
| defaultTalkWithMareillie_001(A0_667, A1_668, A2_669) | ||||
| defaultTalkWithAngryriver_001(A0_670, A1_671, A2_672) | ||||
| defaultTalkWithSyntberk_001(A0_673, A1_674, A2_675) | ||||
| defaultTalkWithBibiraka_001(A0_676, A1_677, A2_678) | ||||
| defaultTalkWithThatakhamazom_001(A0_679, A1_680, A2_681) | ||||
| defaultTalkWithRoostingcrow_001(A0_682, A1_683, A2_684) | ||||
| defaultTalkWithZentsa_001(A0_685, A1_686, A2_687) | ||||
| defaultTalkWithAldyet_001(A0_688, A1_689, A2_690) | ||||
| defaultTalkWithAjinZukajin_001(A0_691, A1_692, A2_693) | ||||
| defaultTalkWithRaplulu_001(A0_694, A1_695, A2_696) | ||||
| defaultTalkWithMurlskylt_001(A0_697, A1_698, A2_699) | ||||
| defaultTalkWith_Aenore001(A0_700, A1_701, A2_702) | ||||
| defaultTalkWithANSGOR_100(A0_703, A1_704, A2_705) | ||||
| defaultTalkWithImania_001(A0_706, A1_707, A2_708) | ||||
| defaultTalkWithSweetnix_001(A0_709, A1_710, A2_711) | ||||
| defaultTalkWithLolojo_001(A0_712, A1_713, A2_714) | ||||
| defaultTalkWithQmolosi_001(A0_715, A1_716, A2_717) | ||||
| defaultTalkWithBran_001(A0_718, A1_719, A2_720) | ||||
| defaultTalkWithTutumoko_001(A0_721, A1_722, A2_723) | ||||
| defaultTalkWithBrianna_001(A0_724, A1_725, A2_726) | ||||
| defaultTalkWithFaine_001(A0_727, A1_728, A2_729) | ||||
| defaultTalkWithAerghaemr_001(A0_730, A1_731, A2_732) | ||||
| defaultTalkWithWalcher_001(A0_733, A1_734, A2_735) | ||||
| defaultTalkWithKurtz_001(A0_736, A1_737, A2_738) | ||||
| defaultTalkWithAlain_001(A0_739, A1_740, A2_741) | ||||
| defaultTalkCaravanChocoboLim_001(A0_742, A1_743, A2_744) | ||||
| downTownTalk(A0_745, A1_746, A2_747, A3_748, A4_749, A5_750) | ||||
| tribeTalk(A0_752, A1_753, A2_754) | ||||
| talkIdayCap(A0_755, A1_756, A2_757) | ||||
| talkIday1(A0_758, A1_759, A2_760) | ||||
| talkIday2(A0_761, A1_762, A2_763) | ||||
| defaultTalkWithInn_Desk(A0_764, A1_765, A2_766) | ||||
| defaultTalkWithInn_ExitDoor(A0_767, A1_768, A2_769) | ||||
| defaultTalkWithExit01(A0_770, A1_771, A2_772) | ||||
| defaultTalkWithMarketNpc(A0_773, A1_774, A2_775) | ||||
| defaultTalkWithHamletGuardLim_001(A0_776, A1_777, A2_778) | ||||
| --]] | ||||
|      | ||||
|      | ||||
|      | ||||
| } | ||||
|  | ||||
| function onTalk(player, quest, npc, eventName) | ||||
|   | ||||
| @@ -4,9 +4,9 @@ require ("global") | ||||
|  | ||||
| Quest Script | ||||
|  | ||||
| Name: 	Small Talk | ||||
| Code: 	DftWil | ||||
| Id: 	110543 | ||||
| Name:   Small Talk | ||||
| Code:   DftWil | ||||
| Id:     110543 | ||||
|  | ||||
| Contains all default lines for talkable npcs in the Wilderness Region (aka Thanalan). | ||||
| * NOTE: This quest is active for all players at all times. | ||||
| @@ -14,12 +14,14 @@ Contains all default lines for talkable npcs in the Wilderness Region (aka Thana | ||||
|  | ||||
| -- [ActorClassId] = "client_function_name" | ||||
| local defaultTalkWil = { | ||||
|      | ||||
|     [1000046] = "defaultTalkWithGogofu_001",            -- Gogofu | ||||
|     [1000047] = "defaultTalkWithHahayo_001",            -- Hahayo | ||||
|     [1000070] = "defaultTalkWithKukumuko_001",          -- Kukumuko | ||||
|     [1000293] = "defaultTalkWithDeaustie_001",          -- Deaustie     - defaultTalkWithDeaustie_002 (flavor for being on WVR?) | ||||
|     [1000293] = "defaultTalkWithDeaustie_001",          -- Deaustie     - defaultTalkWithDeaustie_002 (her dialog after unlocking WVR?) | ||||
|     [1000374] = "defaultTalkWithRorojaru_001",          -- Rorojaru | ||||
|     [1000597] = "defaultTalkWithNogeloix_001",          -- Nogeloix | ||||
|     [1000635] = "defaultTalkWithHnaufrid_001",          -- Hnaufrid     - Will not fire since he isn't PplStd | ||||
|     [1000638] = "defaultTalkWithHawazizowazi_001",      -- Hawazi Zowazi | ||||
|     [1000639] = "defaultTalkWithIsabella_001",          -- Isabella | ||||
|     [1000640] = "defaultTalkWithCiceroix_001",          -- Ciceroix | ||||
| @@ -31,6 +33,8 @@ local defaultTalkWil = { | ||||
|     [1000646] = "defaultTalkWithRinhmaimhov_001",       -- Rinh Maimhov | ||||
|     [1000647] = "defaultTalkWithLyngwaek_001",          -- Lyngwaek | ||||
|     [1000648] = "defaultTalkWithWawaton_001",           -- Wawaton | ||||
|     [1000649] = "defaultTalkWithDyalwann_001",          -- <<<NOT IMPLEMENTED>>> - D'yalwann - Empty function.  No wiki info, likely unused.  Has book prop. | ||||
|     [1000650] = "defaultTalkWithSedemode_001",          -- <<<NOT IMPLEMENTED>>> - Sedemode  - Empty function.  No wiki info, likely unused. | ||||
|     [1000651] = "defaultTalkWithPopori_001",            -- Popori | ||||
|     [1000652] = "defaultTalkWithMamaza_001",            -- Mamaza | ||||
|     [1000653] = "defaultTalkWithNhagiamariyo_001",      -- Nhagi Amariyo | ||||
| @@ -42,24 +46,29 @@ local defaultTalkWil = { | ||||
|     [1000665] = "defaultTalkWithRosalind_001",          -- Rosalind | ||||
|     [1000666] = "defaultTalkWithOcoco_001",             -- Ococo | ||||
|     [1000668] = "defaultTalkWithUbokhn_001",            -- U'bokhn | ||||
|     [1000780] = "defaultTalkWithKiora_001",             -- Kiora | ||||
|     [1000781] = "defaultTalkWithOpondhao_001",          -- O'pondhao | ||||
|     [1000782] = "defaultTalkWithBertram_001",           -- Bertram | ||||
|     [1000783] = "defaultTalkWithMinerva_001",           -- Minvera | ||||
|     [1000784] = "defaultTalkWithZoengterbin_001",       -- Zoengterbin  - defaultTalkWithZoengterbin_002 / defaultTalkWithZoengterbin_003 (informs about LNC guild) | ||||
|     [1000785] = "defaultTalkWithStyrmoeya_001",         -- Styrmoeya | ||||
|     [1000786] = "defaultTalkWithYhahamariyo_001",       -- Yhah Amariyo | ||||
|     [1000787] = "defaultTalkWithHildie_001",            -- Hildie | ||||
|     [1000788] = "defaultTalkWithLettice_001",           -- Lettice | ||||
|     [1000789] = "defaultTalkWithTyon_001",              -- Tyon         - defaultTalkWithTyon_002 / defaultTalkWithTyon_003 (informs about BTN guild) | ||||
|     [1000672] = "defaultTalkWithBlandhem_001",          -- <<<NOT IMPLEMENTED>>> - Blandhem (Camp Black Brush: X:56.089 Y:199.983 Z:-462.182 rough estimate) | ||||
|     [1000673] = "defaultTalkWithChechedoba_001",        -- <<<NOT IMPLEMENTED>>> - Chechedoba (Camp Black Brush: X:8.436 Y:199.973 Z:-484.073 rough estimate) | ||||
|     [1000674] = "defaultTalkWithZllayan_001",           -- <<<NOT IMPLEMENTED>>> - Z'llayan (Camp Drybone) | ||||
|     [1000780] = "defaultTalkWithKiora_001",             -- Kiora        - defaultTalkWithKiora_002 / 003 (informs about MRD guild) | ||||
|     [1000781] = "defaultTalkWithOpondhao_001",          -- O'pondhao    - defaultTalkWithOpondhao_002 / 003 (informs about FSH guild) | ||||
|     [1000782] = "defaultTalkWithBertram_001",           -- Bertram      - defaultTalkWithBertram_002 / 003 (informs about CUL guild) | ||||
|     [1000783] = "defaultTalkWithMinerva_001",           -- Minvera      - defaultTalkWithMinerva_002 / 003 / 004 (informs about BSM guild. Extra dialog also if you're on a DoW/M?) | ||||
|     [1000784] = "defaultTalkWithZoengterbin_001",       -- Zoengterbin  - defaultTalkWithZoengterbin_002 / 003 (informs about LNC guild) | ||||
|     [1000785] = "defaultTalkWithStyrmoeya_001",         -- Styrmoeya    - defaultTalkWithStyrmoeya_002 / 003 (informs about ARC guild) | ||||
|     [1000786] = "defaultTalkWithYhahamariyo_001",       -- Yhah Amariyo - defaultTalkWithYhahamariyo_002 / 003 (informs about CNJ guild) | ||||
|     [1000787] = "defaultTalkWithHildie_001",            -- Hildie       - defaultTalkWithHildie_002 / 003 (informs about CRP guild) | ||||
|     [1000788] = "defaultTalkWithLettice_001",           -- Lettice      - defaultTalkWithLettice_002 / 003 (informs about LTW guild) | ||||
|     [1000789] = "defaultTalkWithTyon_001",              -- Tyon         - defaultTalkWithTyon_002 / 003 (informs about BTN guild) | ||||
|     [1000840] = "defaultTalkWithRururaji_001",          -- Rururaji     - Presumably dialog pre-Chocobo update. Will not fire due to actor class change since then. | ||||
|     [1000841] = "defaultTalkWithMomodi_001",            -- Momodi | ||||
|     [1000846] = "defaultTalkWithYayake_001",            -- Yayake | ||||
|     [1000846] = "defaultTalkWithYayake_001",            -- Yayake       - defaultTalkWithYayake_002 (her dialog after unlocking THM?) | ||||
|     [1000847] = "defaultTalkWithIllofii_001",           -- I'llofii | ||||
|     [1000861] = "defaultTalkWithLinette_001",           -- Linette | ||||
|     [1000862] = "defaultTalkWithGagaruna_001",          -- Gagaruna | ||||
|     [1000863] = "defaultTalkWithLulutsu_001",           -- Lulutsu | ||||
|     [1000864] = "defaultTalkWithInn_Desk",              -- Otopa Pottopa | ||||
|     [1000864] = "defaultTalkWithInn_Desk",              -- Otopa Pottopa - defaultTalkWithOtopapottopa_001 (pre-Inn unlock?) | ||||
|     [1000865] = "defaultTalkWithThaisie_001",           -- Thaisie      - Mentions retainers, but will not fire since she's not PplStd. | ||||
|     [1000887] = "defaultTalkWithZssapa_001",            -- <<<NOT IMPLEMENTED>>> - Z'ssapa  (Central Thanalan: Black Brush: 92.779999 183.837 -1030.310059) alt actor ID: 1001217 (used in a quest presumably, different outfit from wiki image) | ||||
|     [1000915] = "defaultTalkWithCahernaut_001",         -- Cahernaut | ||||
|     [1000916] = "defaultTalkWithAspipi_001",            -- Aspipi | ||||
|     [1000917] = "defaultTalkWithGloiucen_001",          -- Gloiucen | ||||
| @@ -89,6 +98,10 @@ local defaultTalkWil = { | ||||
|     [1001143] = "defaultTalkWithTotono_001",            -- Totono | ||||
|     [1001144] = "defaultTalkWithFyrilsunn_001",         -- Fyrilsunn | ||||
|     [1001145] = "defaultTalkWithSinette_001",           -- Sinette | ||||
|     [1001146] = "defaultTalkWithZirnbyrt_001",          -- <<<NOT IMPLEMENTED>>> - Zirnbyrt - Entry Denier Guard (East Thanalan: X:1831.565 Y:248.576 Z:448.872 Educated guess from wiki picture.  Guards unused dun01) | ||||
|     [1001147] = "defaultTalkWithVhasotayuun_001",       -- <<<NOT IMPLEMENTED>>> - Vhaso Tayuun - (Entry Denier?  No wiki info) | ||||
|     [1001148] = "defaultTalkWithPulbeiyalbei_001",      -- <<<NOT IMPLEMENTED>>> - Pulbei Yalbei - (Entry Denier?  No wiki info) | ||||
|     [1001149] = "defaultTalkWithGembert_001",           -- <<<NOT IMPLEMENTED>>> - Gembert - Entry Denier Guard (South Thanalan: X:1707.143 Y:238.150 Z:1617.570 Rough estimate. Guards unused dun06) | ||||
|     [1001165] = "defaultTalkWithMumukiya_001",          -- Mumukiya | ||||
|     [1001166] = "defaultTalkWithYuyubesu_001",          -- Yuyubesu | ||||
|     [1001167] = "defaultTalkWithChachai_001",           -- Chachai | ||||
| @@ -106,6 +119,34 @@ local defaultTalkWil = { | ||||
|     [1001256] = "defaultTalkWithMaginfred_001",         -- Gunnulf | ||||
|     [1001257] = "defaultTalkWithOrisic_001",            -- Heibert | ||||
|     [1001260] = "defaultTalkWithKlamahni_001",          -- I'paghlo | ||||
|     [1001295] = "defaultTalkWithChamberlain_001",       -- <<<NOT IMPLEMENTED>>> - Chamberlain (Entry Denier?  No wiki info) | ||||
|     [1001296] = "defaultTalkWithWyntkelt_001",          -- <<<NOT IMPLEMENTED>>> - Wyntkelt (Entry Denier?  No wiki info) | ||||
|     [1001297] = "defaultTalkWithAudrye_001",            -- <<<NOT IMPLEMENTED>>> - Audrye (Entry Denier?  No wiki info) | ||||
|     [1001314] = "defaultTalkWithFromelaut_001",         -- <<<NOT IMPLEMENTED>>> - Fromelaut (Eastern Thanalan: The Golden Bazaar) | ||||
|     [1001315] = "defaultTalkWithZilili_001",            -- <<<NOT IMPLEMENTED>>> - Zilili (Eastern Thanalan: The Golden Bazaar) - Dialog doesn't match wiki, but wiki dialog isn't addressed by any function.  Changed in an update perhaps. | ||||
|     [1001316] = "defaultTalkWithPapala_001",            -- <<<NOT IMPLEMENTED>>> - Papala (Eastern Thanalan: The Golden Bazaar: 1099.540039, 312.674, -1145.719971) | ||||
|     [1001317] = "defaultTalkWithSasapano_001",          -- <<<NOT IMPLEMENTED>>> - Sasapano (Eastern Thanalan: The Golden Bazaar: 1134.599976, 312.193, -1128.23999) | ||||
|     [1001318] = "defaultTalkWithBibiroku_001",          -- <<<NOT IMPLEMENTED>>> - Bibiroku (Eastern Thanalan: The Golden Bazaar) | ||||
|     [1001319] = "defaultTalkWithBernier_001",           -- <<<NOT IMPLEMENTED>>> - Bernier (Eastern Thanalan: The Golden Bazaar) | ||||
|     [1001320] = "defaultTalkWithJajaba_001",            -- <<<NOT IMPLEMENTED>>> - Jajaba (Eastern Thanalan: The Golden Bazaar) | ||||
|     [1001321] = "defaultTalkWithJujuya_001",            -- <<<NOT IMPLEMENTED>>> - Jujuya (Eastern Thanalan: The Golden Bazaar) | ||||
|     [1001322] = "defaultTalkWithKikinori_001",          -- <<<NOT IMPLEMENTED>>> - Kikinori (Western Thanalan: The Silver Bazaar) | ||||
|     [1001323] = "defaultTalkWithCelie_001",             -- <<<NOT IMPLEMENTED>>> - Celie (Western Thanalan: The Silver Bazaar) | ||||
|     [1001324] = "defaultTalkWithAgzurungzu_001",        -- <<<NOT IMPLEMENTED>>> - Agzu Rungzu (Western Thanalan: The Silver Bazaar) | ||||
|     [1001325] = "defaultTalkWithDarimbeh_001",          -- <<<NOT IMPLEMENTED>>> - D'arimbeh (Western Thanalan: The Silver Bazaar) | ||||
|     [1001326] = "defaultTalkWithIudprost_001",          -- <<<NOT IMPLEMENTED>>> - Iudprost (Western Thanalan: The Silver Bazaar) | ||||
|     [1001327] = "defaultTalkWithTatafu_001",            -- <<<NOT IMPLEMENTED>>> - Tatafu (Western Thanalan: The Silver Bazaar) | ||||
|     [1001328] = "defaultTalkWithAthalwolf_001",         -- <<<NOT IMPLEMENTED>>> - Athalwolf (Western Thanalan: The Silver Bazaar) | ||||
|     [1001329] = "defaultTalkWithPadakusondaku_001",     -- <<<NOT IMPLEMENTED>>> - Padaku Sondaku (Western Thanalan: The Silver Bazaar) | ||||
|     [1001330] = "defaultTalkWithBellinda_001",          -- <<<NOT IMPLEMENTED>>> - Bellinda (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001331] = "defaultTalkWithRonthfohc_001",         -- <<<NOT IMPLEMENTED>>> - Ronthfohc (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001332] = "defaultTalkWithBerahthraben_001",      -- <<<NOT IMPLEMENTED>>> - Berahthraben (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001333] = "defaultTalkWithOtho_001",              -- <<<NOT IMPLEMENTED>>> - Otho (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001334] = "defaultTalkWithRadulf_001",            -- <<<NOT IMPLEMENTED>>> - Radulf (Eastern Thanalan, Little Ala Mhigo: 1131.75, 251.29, 206.339996) | ||||
|     [1001335] = "defaultTalkWithHonmeme_001",           -- <<<NOT IMPLEMENTED>>> - Honmeme (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001336] = "defaultTalkWithCatriona_001",          -- <<<NOT IMPLEMENTED>>> - Catriona (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001337] = "defaultTalkWithGrifiud_001",           -- <<<NOT IMPLEMENTED>>> - Grifiud (Eastern Thanalan, Little Ala Mhigo) | ||||
|     [1001392] = "defaultTalkWithNomomo_001",            -- <<<NOT IMPLEMENTED>>> - Nomomo (Camp Black Brush: X:24.274 Y:200.003 Z:-473.548 rough estimate) - If arg1=true, says different dialog. | ||||
|     [1001415] = "defaultTalkWithAnthoinette_001",       -- Anthoinette | ||||
|     [1001416] = "defaultTalkWithWisemoon_001",          -- Wise Moon | ||||
|     [1001417] = "defaultTalkWithApachonaccho_001",      -- Apacho Naccho | ||||
| @@ -116,6 +157,7 @@ local defaultTalkWil = { | ||||
|     [1001422] = "defaultTalkWithMilgogo_001",           -- Milgogo | ||||
|     [1001423] = "defaultTalkWithMumutano_001",          -- Mumutano | ||||
|     [1001424] = "defaultTalkWithGegeissa_001",          -- Gegeissa | ||||
|     [1001425] = "defaultTalkWithGdatnan_001",           -- G'datnan  | ||||
|     [1001426] = "defaultTalkWithHehena_001",            -- Hehena | ||||
|     [1001427] = "defaultTalkWithGuillaunaux_001",       -- Guillaunaux | ||||
|     [1001428] = "defaultTalkWithYuyuhase_001",          -- Yuyuhase | ||||
| @@ -128,6 +170,11 @@ local defaultTalkWil = { | ||||
|     [1001443] = "defaultTalkWithJudithe_001",           -- Judithe | ||||
|     [1001444] = "defaultTalkWithRobyn_001",             -- Robyn | ||||
|     [1001445] = "defaultTalkWithSingleton_001",         -- Singleton | ||||
|     [1001446] = "defaultTalkWithFiachre_001",           -- <<<NOT IMPLEMENTED>>> - Fiachre (Western Thanalan Ferry Docks) | ||||
|     [1001447] = "defaultTalkWithTaylor_001",            -- <<<NOT IMPLEMENTED>>> - Taylor (Western Thanalan Ferry Docks: -2195.070068, 14.495, -417.200012) | ||||
|     [1001448] = "defaultTalkWithWalhbert_001",          -- <<<NOT IMPLEMENTED>>> - Walhbert (Western Thanalan Ferry Docks) | ||||
|     [1001449] = "defaultTalkWithSpiralingpath_001",     -- <<<NOT IMPLEMENTED>>> - Spiraling Path (Western Thanalan Ferry Docks) | ||||
|     [1001450] = "defaultTalkWithSasapiku_001",          -- <<<NOT IMPLEMENTED>>> - Sasapiku (Western Thanalan Ferry Docks) | ||||
|     [1001451] = "defaultTalkWithDoll001_001",           -- Mammet (Eshtaime's Lapidaries [GSM]) | ||||
|     [1001452] = "defaultTalkWithDoll002_001",           -- Mammet (Eshtaime's Lapidaries [GSM] #2) | ||||
|     [1001453] = "defaultTalkWithDoll003_001",           -- Mammet (Sunsilk Tapestries [WVR]) | ||||
| @@ -144,29 +191,81 @@ local defaultTalkWil = { | ||||
|     [1001476] = "defaultTalkWithCrhabye_001",           -- C'rhabye | ||||
|     [1001471] = "downTownTalk",                         -- Kokobi | ||||
|     [1001472] = "defaultTalkWithMimishu_001",           -- Mimishu | ||||
|     [1001503] = "defaultTalkWithGerland_001",           -- <<<NOT IMPLEMENTED>>> - Gerland (Western Thanalan Ferry Docks) | ||||
|     [1001565] = "defaultTalkWithEleanor_001",           -- Eleanor | ||||
|     [1001596] = "defaultTalkWithAbelard_001",           -- <<<NOT IMPLEMENTED>>> - Abelard (Western Thanalan: The Coffer & Coffin: -1726, 56.625, -317 | ||||
|     [1001597] = "defaultTalkWithHaipoeipo_001",         -- <<<NOT IMPLEMENTED>>> - Haipo Eipo (Western Thanalan: The Coffer & Coffin) | ||||
|     [1001598] = "defaultTalkWithBartholomew_001",       -- <<<NOT IMPLEMENTED>>> - Bartholomew (Western Thanalan: The Coffer & Coffin) | ||||
|     [1001599] = "defaultTalkWithKokofubu_001",          -- <<<NOT IMPLEMENTED>>> - Kokofubu (Eastern Thanalan: Mythril Pit T-8) | ||||
|     [1001600] = "defaultTalkWithBertouaint_001",        -- <<<NOT IMPLEMENTED>>> - Bertouaint (Eastern Thanalan: Mythril Pit T-8) | ||||
|     [1001601] = "defaultTalkWithAldebrand_001",         -- <<<NOT IMPLEMENTED>>> - Aldebrand (Eastern Thanalan: Mythril Pit T-8) | ||||
|     [1001602] = "defaultTalkWithPyhajawantal_001",      -- <<<NOT IMPLEMENTED>>> - Pyha Jawantal (Eastern Thanalan: Mythril Pit T-8) | ||||
|     [1001624] = "talkIdayCap",                          -- <<<NOT IMPLEMENTED>>> - Flame Lieutenant Somber Meadow   (Foundation Day 2011 Dialog) - OLD EVENT NPC: Replaced by 2012 version | ||||
|     [1001625] = "talkIday1",                            -- <<<NOT IMPLEMENTED>>> - Flame Sergeant Mimio Mio         (Foundation Day 2011 Dialog) - OLD EVENT NPC: Replaced by 2012 version | ||||
|     [1001626] = "talkIday2",                            -- <<<NOT IMPLEMENTED>>> - Flame Private Sisimuza Tetemuza  (Foundation Day 2011 Dialog) - OLD EVENT NPC: Replaced by 2012 version | ||||
|     [1001630] = "defaultTalkWithChocobo_001",           -- <<<NOT IMPLEMENTED>>> - Chocobo (Western Thanalan: The Coffer & Coffin) - Stands beside Haipo Eipo | ||||
|     [1001685] = "defaultTalkWithAdalbert_001",          -- <<<NOT IMPLEMENTED>>> - Flame Sergeant Cotter (Ul'dah: Merchant Strip: -0.92 196.100 126.32) - Double check caps. | ||||
|     [1001699] = "defaultTalkWithJandonaut_001",         -- <<<NOT IMPLEMENTED>>> - Flame Sergeant Fouillel (Southern Thanalan: Camp Broken Water: 1704 296.001 999) | ||||
|     [1001712] = "defaultTalkWithGuillestet_001",        -- Guillestet | ||||
|     [1001713] = "defaultTalkWithHCidjaa_001",           -- H'cidjaa | ||||
|     [1001714] = "defaultTalkWithAutgar_001",            -- <<<NOT IMPLEMENTED>>> - Autgar (Ul'dah: Airship Landing) | ||||
|     [1001715] = "defaultTalkWithAhldbyrt_001",          -- <<<NOT IMPLEMENTED>>> - Ahldbyrt (Ul'dah: Airship Landing) | ||||
|     [1001716] = "defaultTalkWithNeymiFunomi_001",       -- <<<NOT IMPLEMENTED>>> - Neymi Funomi (Ul'dah: Airship Landing) | ||||
|     [1001717] = "defaultTalkWithGoodife_001",           -- Goodife | ||||
|     [1001726] = "defaultTalkWithAistan_001",            -- Aistan | ||||
|     [1001727] = "defaultTalkWithMateria_001",           -- <<<NOT IMPLEMENTED>>> - Mutamix Bubblypots (Central Thanalan: 243.858002, 247.8, -1030.136963) - Check feet clipping @ pos | ||||
|     [1001728] = "defaultTalkWithSWYNBROES_001",         -- <<<NOT IMPLEMENTED>>> - Swynbroes (Central Thanalan: 242.641006, 247.6, -1024.494019) | ||||
|     [1001729] = "defaultTalkWithKokosamu_001",          -- <<<NOT IMPLEMENTED>>> - Kokosamu (Central Thanalan: 255.651001, 248.5, -1030.152954) - Check feet clipping @ pos | ||||
|     [1001730] = "defaultTalkWithF_HOBHAS_001",          -- <<<NOT IMPLEMENTED>>> - F'hobhas (Central Thanalan: 258.665009, 248, -1021.666992) | ||||
|     [1001753] = "defaultTalkWithPelhiEpocan_001",       -- <<<NOT IMPLEMENTED>>> - Pelhi Epocan (Ul'dah: Airship Landing) | ||||
|     [1001754] = "defaultTalkWithViolenne_001",          -- <<<NOT IMPLEMENTED>>> - Violenne (Ul'dah: Airship Landing) | ||||
|     [1001770] = "defaultTalkWithEara_001",              -- Eara | ||||
|     [1001771] = "defaultTalkWithLiaime_001",            -- Liaime | ||||
|     [1001834] = "defaultTalkWithLUDOLD_001",            -- <<<NOT IMPLEMENTED>>> - Flame Commander Ashdale - (Eastern Thanalan: 1410, 256, 187) | ||||
|     [1001840] = "defaultTalkWithPAHJAZHWAN_001",        -- <<<NOT IMPLEMENTED>>> - Pahja Zhwan - (Ul'dah: Miner's Guild: -113.190002 194.2 324.25) - Double check caps. | ||||
|     [1001894] = "defaultTalkWithDonner_001",            -- <<<NOT IMPLEMENTED>>> - Flame Private Greave - (North Thanalan: Bluefog) | ||||
|     [1001911] = "defaultTalkWithLolomaya_001",          -- <<<NOT IMPLEMENTED>>> - Lolomaya - (North Thanalan: Camp Bluefog) Has unused argument. Dialog doesn't match wiki, but dftwil doesn't call it anywhere.  Update change perhaps. | ||||
|     [1001925] = "defaultTalkWithHortwann_001",          -- <<<NOT IMPLEMENTED>>> - Flame Private Hanskalsyn - (North Thanalan: Camp Bluefog) | ||||
|     [1001932] = "defaultTalkWithSIBOLD_001",            -- Sibold | ||||
|     [1001953] = "defaultTalkWithBerndan_001",           -- Berndan | ||||
|     [1002047] = "defaultTalkWithInn_Desk_2",            -- Kopuru Fupuru - Inn NPC. | ||||
|     [1002047] = "defaultTalkWithInn_Desk_2",            -- Kopuru Fupuru - Inn NPC. -  defaultTalkWithKopuruFupuru_001 (pre-Inn unlock?) | ||||
|     [1002101] = "defaultTalkWithDuraltharal_001",       -- Dural Tharal | ||||
|     [1002116] = "defaultTalkWithHAVAK_ALVAK_001",       -- <<<NOT IMPLEMENTED>>> - Havak Alvak (Ul'dah: Milvaneth Sacrarium) | ||||
|     [1060028] = "defaultTalkWithCURIOUS_001",           -- <<<NOT IMPLEMENTED>>> - Curious Gorge (Western Thanalan: -1116.040039, 53.2, 285.48999)? - defaultTalkWithCURIOUS_002 | ||||
|     [1060029] = "defaultTalkWithSarra_001",             -- <<<NOT IMPLEMENTED>>> - Sarra (Location unknown) defaultTalkWithSarra_002 / 003 | ||||
|     [1060032] = "defaultTalkWithWidargeli_001",         -- <<<NOT IMPLEMENTED>>> - Widargelt (Eastern Thanalan: Little Ala Mhigo: 1213.670044, 251.439, 107.290001) - defaultTalkWithWidargeli_002 | ||||
|     [1060033] = "defaultTalkWithErik_001",              -- <<<NOT IMPLEMENTED>>> - Erik  (Ul'dah: -32.75 192.1 45.810001) - defaultTalkWithErik_002 | ||||
|     [1060035] = "defaultTalkWithLalai_001",             -- <<<NOT IMPLEMENTED>>> - Lalai (Ul'dah: Milvaneth Sacrarium: 18.16, 206, 283.670013)        defaultTalkWithLalai_002 / 003 / 004 / 005 / 006 / 007 / 101 | ||||
|     [1060036] = "defaultTalkWithKazagg_001",            -- <<<NOT IMPLEMENTED>>> - Kazagg Chah (Western Thalanan: -1506.540039, 10.241, -233.970001)  defaultTalkWithKazagg_002 / 003 / 004 / 005 / 006 / 007 | ||||
|     [1060037] = "defaultTalkWithHateli_001",            -- <<<NOT IMPLEMENTED>>> - Dozol Meloc (Western Thanalan: -1513.660034, 10.617, -235.220001)  defaultTalkWithHateli_002 / 003 / 004 / 005 / 006 / 007 | ||||
|     [1060038] = "defaultTalkWithDaza_001",              -- <<<NOT IMPLEMENTED>>> - 269th Order Mendicant Da Za (Western Thanalan: Somewhere in the cave around -1567, 25, -170) -  defaultTalkWithDaza_002 / 003 / 004 / 005 / 006 / 007 | ||||
|     [1060042] = "defaultTalkWithJenlyns_001",           -- Jenlyns      - defaultTalkWithJenlyns_002 (PLD-unlocked specific dialog?) | ||||
|     [1200120] = "bookTalk",                             -- Dusty Tomes - - Will not fire since it isn't PplStd.  Identical dialog regardless. | ||||
|     [1500059] = "defaultTalkWithLdhakya_001",           -- <<<NOT IMPLEMENTED>>> - L'dhakya (Western Thanalan Ferry Docks) | ||||
|     [1500109] = "defaultTalkWithSylviel_001",           -- <<<NOT IMPLEMENTED>>> - Sylviel (Western Thanalan Ferry Docks) | ||||
|     [1500110] = "defaultTalkWithSamigamduhla_001",      -- <<<NOT IMPLEMENTED>>> - Sami Gamduhla (Western Thanalan Ferry Docks) | ||||
|     [1500126] = "tribeTalk",                            -- Vavaki | ||||
|     [1500129] = "defaultTalkWithYayatoki_001",          -- Yayatoki | ||||
|     [1700039] = "defaultTalkWithBATERICH_100"           -- Baterich | ||||
|   | ||||
| --[[ Fix Later | ||||
|     [1002110] = "processEventSOMBER", arg1,             -- Flame Lieutenant Somber Meadow   - uses Spl000 staticactor not dftWil | ||||
|     [1002111] = "processEventMIMIO",                    -- Flame Sergeant Mimio Mio         - uses Spl000 staticactor not dftWil | ||||
|     [1002112] = "processEventSISIMUZA",                 -- Flame Private Sisimuza Tetemuza  - uses Spl000 staticactor not dftWil | ||||
| --]]   | ||||
|     [1700039] = "defaultTalkWithBATERICH_100",          -- Baterich | ||||
|          | ||||
|     [1000001] = "defaultTalkWithHamletGuardUld_001"            -- TEST TEST TEST | ||||
|      | ||||
| }     | ||||
|     --[1090549] = "defaultTalkWithInn_ExitDoor"         -- Ul'dah Inn Exit Door pushEvent - "Leave your room?" | ||||
|     --[1200336] = "defaultTalkWithInn_ExitDoor"         -- Ul'dah Inn Exit Door talkEvent - "Leave your room?" | ||||
|      | ||||
| --[[ Need sourcing | ||||
|     [???] = "defaultTalkCaravanChocoboUld_001"           -- Presumably used on the Caravan Chocobo escorts? Does a little animation. | ||||
|     [???] = "defaultTalkWithExit01"                      -- "Leave this place?" - For quest locations like that four-bedroom room perhaps? | ||||
|     [???] = "defaultTalkWithMarketNpc"                   -- NPC in the middle of the market wards that lets you port around I'm guessing? | ||||
|     [???] = "defaultTalkWithHamletGuardUld_001"          --  | ||||
| --]] | ||||
|      | ||||
|     -- [1002110] = "processEventSOMBER", arg1,          -- Flame Lieutenant Somber Meadow   (Foundation Day 2012 Dialog) Spl000 staticactor | ||||
|     -- [1002111] = "processEventMIMIO"                  -- Flame Sergeant Mimio Mio         (Foundation Day 2012 Dialog) Spl000 staticactor | ||||
|     -- [1002112] = "processEventSISIMUZA"               -- Flame Private Sisimuza Tetemuza  (Foundation Day 2012 Dialog) Spl000 staticactor | ||||
|  | ||||
|      | ||||
|     } | ||||
|   | ||||
|      | ||||
|  | ||||
| @@ -174,28 +273,35 @@ local defaultTalkWil = { | ||||
| function onTalk(player, quest, npc, eventName) | ||||
|  | ||||
|     local npcId = npc:GetActorClassId(); | ||||
| 	local clientFunc = defaultTalkWil[npcId]; | ||||
|     local clientFunc = defaultTalkWil[npcId]; | ||||
|      | ||||
|     if (npcId == 1002047) then -- Kopuru Fupuru - Inn NPC | ||||
|         local choice = callClientFunction(player, "delegateEvent", player, quest, clientFunc); | ||||
|          | ||||
|         if (choice == 1) then | ||||
|             GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 0.048, 0, -5.737, 0); | ||||
|         elseif (choice == 2) then | ||||
|             if (player:GetHomePointInn() ~= 3) then | ||||
|                 player:SetHomePointInn(3); | ||||
|                 player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 3071); --Secondary homepoint set to the Hourglass | ||||
|             else			 | ||||
|                 player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint | ||||
|             end | ||||
|         end | ||||
|         defaultTalkWithInn(player, quest, clientFunc); | ||||
|     else | ||||
|         callClientFunction(player, "delegateEvent", player, quest, clientFunc); | ||||
|     end | ||||
|      | ||||
| 	player:EndEvent(); | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
| function IsQuestENPC(player, quest, npc) | ||||
| 	return defaultTalkWil[npc:GetActorClassId()] ~= nil; | ||||
|     return defaultTalkWil[npc:GetActorClassId()] ~= nil; | ||||
| end | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| function defaultTalkWithInn(player, quest, clientFunc) | ||||
|     local choice = callClientFunction(player, "delegateEvent", player, quest, clientFunc); | ||||
|          | ||||
|     if (choice == 1) then | ||||
|         GetWorldManager():DoZoneChange(player, 244, nil, 0, 15, 0.048, 0, -5.737, 0); | ||||
|     elseif (choice == 2) then | ||||
|         if (player:GetHomePointInn() ~= 3) then | ||||
|             player:SetHomePointInn(3); | ||||
|             player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 3071); --Secondary homepoint set to the Hourglass | ||||
|         else             | ||||
|             player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint | ||||
|         end | ||||
|     end | ||||
| end | ||||
| @@ -38,6 +38,9 @@ FLAG_TALKED_NELLAURE 		= 2; | ||||
| FLAG_TALKED_KHUMA_MOSHROCA 	= 3; | ||||
| FLAG_TALKED_LEFWYNE 		= 4; | ||||
|  | ||||
| -- Quest Counters | ||||
| COUNTER_TALKED              = 0; | ||||
|  | ||||
| --offerQuestResult = callClientFunction(player, "delegateEvent", player, quest, "processEventOffersStart"); | ||||
|  | ||||
| function onStart(player, quest)	 | ||||
| @@ -48,33 +51,32 @@ function onFinish(player, quest) | ||||
| end | ||||
|  | ||||
| function onSequence(player, quest, sequence)	 | ||||
| 	quest:ClearENpcs();	 | ||||
| 	 | ||||
| 	if (sequence == SEQ_000) then | ||||
| 		quest:AddENpc(SYBELL, qflag(quest, FLAG_TALKED_SYBELL)); | ||||
| 		quest:AddENpc(KHUMA_MOSHROCA, qflag(quest, FLAG_TALKED_KHUMA_MOSHROCA)); | ||||
| 		quest:AddENpc(NELLAURE, qflag(quest, FLAG_TALKED_NELLAURE)); | ||||
| 		quest:AddENpc(MESTONNAUX, qflag(quest, FLAG_TALKED_MESTONNAUX)); | ||||
| 		quest:AddENpc(LEFWYNE, qflag(quest, FLAG_TALKED_LEFWYNE)); | ||||
|         quest:AddENpc(KINNISON); | ||||
| 		quest:AddENpc(SYBELL,           (not quest:GetFlag(FLAG_TALKED_SYBELL) and QFLAG_PLATE or QFLAG_NONE)); | ||||
| 		quest:AddENpc(KHUMA_MOSHROCA,   (not quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA) and QFLAG_PLATE or QFLAG_NONE)); | ||||
| 		quest:AddENpc(NELLAURE,         (not quest:GetFlag(FLAG_TALKED_NELLAURE) and QFLAG_PLATE or QFLAG_NONE)); | ||||
| 		quest:AddENpc(MESTONNAUX,       (not quest:GetFlag(FLAG_TALKED_MESTONNAUX) and QFLAG_PLATE or QFLAG_NONE)); | ||||
| 		quest:AddENpc(LEFWYNE,          (not quest:GetFlag(FLAG_TALKED_LEFWYNE) and QFLAG_PLATE or QFLAG_NONE)); | ||||
| 	elseif (sequence == SEQ_001) then | ||||
| 		quest:AddENpc(KINNISON); | ||||
| 		quest:AddENpc(KINNISON, QFLAG_PLATE); | ||||
| 	end	 | ||||
| end | ||||
|  | ||||
| function qflag(quest, flag) | ||||
| 	return quest:GetFlag(flag) and QFLAG_ALL or QFLAG_NONE; | ||||
| end | ||||
|  | ||||
| function onTalk(player, quest, npc, eventName) | ||||
| 	local npcClassId = npc.GetActorClassId(); | ||||
| 	local seq = quest:GetSequence(); | ||||
| 	 | ||||
| 	local incCounter = false; | ||||
|      | ||||
| 	if (seq == SEQ_000) then | ||||
| 		if (npcClassId == SYBELL) then | ||||
|         if (npcClassId == KINNISON) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEventOffersAfter"); | ||||
| 		elseif (npcClassId == SYBELL) then | ||||
| 			if (not quest:GetFlag(FLAG_TALKED_SYBELL)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeak"); | ||||
| 				quest:SetFlag(FLAG_TALKED_SYBELL); | ||||
| 				--quest:UpdateENpc(SYBELL, QFLAG_NONE);				 | ||||
|                 incCounter = true; | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventSybellSpeakAfter"); | ||||
| 			end | ||||
| @@ -82,15 +84,15 @@ function onTalk(player, quest, npc, eventName) | ||||
| 			if (not quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeak"); | ||||
| 				quest:SetFlag(FLAG_TALKED_KHUMA_MOSHROCA); | ||||
| 				--quest:UpdateENpc(KHUMA_MOSHROCA, QFLAG_NONE);				 | ||||
|                incCounter = true; | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventKhumaSpeakAfter"); | ||||
| 			end | ||||
| 		elseif (npcClassId == NELLAURE) then | ||||
| 			if (not quest:GetFlag(FLAG_TALKED_NELLAURE)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeak"); | ||||
| 				quest:SetFlag(FLAG_TALKED_NELLAURE); | ||||
| 				--quest:UpdateENpc(NELLAURE, QFLAG_NONE);				 | ||||
| 				quest:SetFlag(FLAG_TALKED_NELLAURE);	 | ||||
|                 incCounter = true; | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventNellaureSpeakAfter"); | ||||
| 			end | ||||
| @@ -98,35 +100,48 @@ function onTalk(player, quest, npc, eventName) | ||||
| 			if (not quest:GetFlag(FLAG_TALKED_MESTONNAUX)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeak"); | ||||
| 				quest:SetFlag(FLAG_TALKED_MESTONNAUX); | ||||
| 				--quest:UpdateENpc(MESTONNAUX, QFLAG_NONE);				 | ||||
|                 incCounter = true;                 | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventMestonnauxSpeakAfter"); | ||||
| 			end | ||||
| 		elseif (npcClassId == LEFWYNE) then | ||||
| 			if (not quest:GetFlag(FLAG_TALKED_LEFWYNE)) then | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeak"); | ||||
| 				quest:SetFlag(FLAG_TALKED_LEFWYNE); | ||||
| 				--quest:UpdateENpc(LEFWYNE, QFLAG_NONE);				 | ||||
| 				quest:SetFlag(FLAG_TALKED_LEFWYNE);	 | ||||
|                 incCounter = true; | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, quest, "processEventLefwyneSpeakAfter"); | ||||
| 			end | ||||
| 		end | ||||
| 		 | ||||
| 		-- Check condition to go to the next sequence | ||||
| 		if (seq000_checkCondition(quest)) then | ||||
| 			quest:StartSequence(SEQ_001); | ||||
| 		end | ||||
|          | ||||
| 		-- Increase objective counter & play relevant messages | ||||
| 		if (incCounter == true) then | ||||
|             quest:IncCounter(COUNTER_TALKED); | ||||
|             local counterAmount = quest:GetCounter(COUNTER_TALKED); | ||||
|  | ||||
|             attentionMessage(player, 51061, 0, counterAmount, 5); -- You have heard word of the Seedseers. (... of 5) | ||||
|              | ||||
|             if (seq000_checkCondition(quest)) then -- All Seers spoken to | ||||
|                 attentionMessage(player, 25225, 110674); -- "Seeing the Seers" objectives complete! | ||||
|                 quest:UpdateENPCs(); -- Band-aid for a QFLAG_PLATE issue | ||||
|                 quest:StartSequence(SEQ_001); | ||||
|             end | ||||
|         end | ||||
|          | ||||
| 	elseif (seq == SEQ_001) then | ||||
| 		--Quest Complete | ||||
| 		if (npcClassId == KINNISON) then | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "processEventClear"); | ||||
| 			callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1, 1, 9); | ||||
|             player:CompleteQuest(quest:GetQuestId()); | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| 	quest:UpdateENPCs();	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
|  | ||||
|  | ||||
| -- Check if all seers are talked to | ||||
| function seq000_checkCondition(quest) | ||||
| 	return (quest:GetFlag(FLAG_TALKED_SYBELL) and | ||||
| @@ -136,14 +151,20 @@ function seq000_checkCondition(quest) | ||||
| 			quest:GetFlag(FLAG_TALKED_LEFWYNE)); | ||||
| end | ||||
|  | ||||
| -- This is called by the RequestQuestJournalCommand when map markers are request. | ||||
| -- Check quest_marker for valid values. This should return a table of map markers. | ||||
|  | ||||
| function getJournalMapMarkerList(player, quest) | ||||
| 	local seq = quest:GetSequence(); | ||||
| 	 | ||||
| 	if (seq == SEQ_000) then | ||||
| 		return MRKR_SYBELL, MRKR_KHUMA_MOSHROCA, MRKR_NELLAURE, MRKR_MESTONNAUX, MRKR_LEFWYNE; | ||||
| 	elseif (seq == SEQ_001) then | ||||
| 		return MRKR_KINNISON; | ||||
| 	end | ||||
|     local sequence = quest:getSequence(); | ||||
|     local possibleMarkers = {}; | ||||
|      | ||||
|     if (sequence == SEQ_000) then | ||||
|         if (not quest:GetFlag(FLAG_TALKED_SYBELL)) then table.insert(possibleMarkers, MRKR_SYBELL); end | ||||
|         if (not quest:GetFlag(FLAG_TALKED_KHUMA_MOSHROCA)) then table.insert(possibleMarkers, MRKR_KHUMA_MOSHROCA); end | ||||
|         if (not quest:GetFlag(FLAG_TALKED_NELLAURE)) then table.insert(possibleMarkers, MRKR_NELLAURE); end | ||||
|         if (not quest:GetFlag(FLAG_TALKED_MESTONNAUX)) then table.insert(possibleMarkers, MRKR_MESTONNAUX); end | ||||
|         if (not quest:GetFlag(FLAG_TALKED_LEFWYNE)) then table.insert(possibleMarkers, MRKR_LEFWYNE); end | ||||
|     elseif (sequence == SEQ_001) then | ||||
|         table.insert(possibleMarkers, MRKR_KINNISON); | ||||
|     end | ||||
|      | ||||
|     return unpack(possibleMarkers) | ||||
| end | ||||
| @@ -1,21 +1,103 @@ | ||||
| --Quest Flags | ||||
| TALKED_PFARAHR = 0; | ||||
| require("global"); | ||||
|  | ||||
| function canAcceptQuest(player) | ||||
| 	return (player:HasQuest("etc5g0") == false and player:IsQuestCompleted("Etc5g0") == false and player:GetHighestLevel() >= 1); | ||||
| --[[ | ||||
|  | ||||
| Quest Script | ||||
|  | ||||
| Name:   Waste Not Want Not | ||||
| Code:   Etc5g0 | ||||
| Id:     110828 | ||||
| Prereq: Level 1 on any class.  Second MSQ completed. (110002 Man0l1 / 110006 Man0g1 / 110010 Man0u1) | ||||
| Notes:  Rewards 200 gil | ||||
|  | ||||
| ]] | ||||
|  | ||||
| -- Sequence Numbers | ||||
| SEQ_000 = 0;  -- Talk to Pfarahr | ||||
| SEQ_001 = 1;  -- Return to V'korolon | ||||
|  | ||||
| -- Actor Class Ids | ||||
| VKOROLON                = 1000458; | ||||
| PFARAHR                 = 1001707; | ||||
|  | ||||
| -- Quest Item | ||||
| ITEM_WELL_WORN_BAG      = 11000224; | ||||
|  | ||||
| -- Quest Markers | ||||
| MRKR_PFARAHR            = 11082001; | ||||
| MRKR_VKOROLON           = 11082002; | ||||
|  | ||||
|  | ||||
|  | ||||
| function onStart(player, quest) | ||||
|     -- processEventVKOROLONStart -- No means of properly accepting quests yet | ||||
|     quest:StartSequence(SEQ_000); | ||||
|     player:SendGameMessage(GetWorldMaster(), 25246, MESSAGE_TYPE_SYSTEM, ITEM_WELL_WORN_BAG, 1); | ||||
| end | ||||
|  | ||||
| function isObjectivesComplete(player, quest) | ||||
| 	return (quest:GetPhase() == 2); | ||||
| function onFinish(player, quest) | ||||
| end | ||||
|  | ||||
| function onAbandonQuest(player, quest)	 | ||||
| 	vkorolon = GetWorldManager():GetActorInWorldByUniqueId("vkorolon"); | ||||
| 	pfarahr = GetWorldManager():GetActorInWorldByUniqueId("pfarahr"); | ||||
| 	if (vkorolon ~= nil and canAcceptQuest(player)) then | ||||
| 		vkorolon:SetQuestGraphic(player, 0x2);		 | ||||
| 	end	 | ||||
| 	if (pfarahr ~= nil) then | ||||
| 		pfarahr:SetQuestGraphic(player, 0x0); | ||||
| 	end | ||||
| end | ||||
|  | ||||
|  | ||||
| function onSequence(player, quest, sequence) | ||||
|     if (sequence == SEQ_000) then | ||||
|         quest:AddENpc(VKOROLON); | ||||
|         quest:AddENpc(PFARAHR, QFLAG_PLATE); | ||||
|     elseif (sequence == SEQ_001) then  | ||||
|         quest:AddENpc(VKOROLON, QFLAG_PLATE); | ||||
|         quest:AddENpc(PFARAHR); | ||||
|     end | ||||
| end | ||||
|  | ||||
| function onTalk(player, quest, npc) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local classId = npc:GetActorClassId(); | ||||
|      | ||||
|     if (sequence == SEQ_000) then | ||||
|         if (classId == VKOROLON) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEvent_000_1"); | ||||
|         elseif (classId == PFARAHR) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEvent_010"); | ||||
|             quest:StartSequence(SEQ_001); | ||||
|             quest:DoComplete(); -- Need ref since it feels out of place. Just placing it here since original script had it. | ||||
|         end | ||||
|         | ||||
|     elseif (sequence == SEQ_001) then | ||||
|         if (classId == VKOROLON) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEvent_020"); | ||||
|             --callClientFunction(player, "delegateEvent", player, quest, "sqrwa", 200, 1); -- Reward window, shouldn't be handled by quest script | ||||
| 			player:CompleteQuest(quest:GetQuestId()); | ||||
|         elseif (classId == PFARAHR) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEvent_010_1"); | ||||
|         end   | ||||
|     end | ||||
|     player:EndEvent() | ||||
| 	quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
|  | ||||
| function getJournalInformation(player, quest) | ||||
|     local sequence = quest:getSequence(); | ||||
|      | ||||
|     if (sequence == SEQ_000) then | ||||
|         return ITEM_WELL_WORN_BAG; | ||||
|     end | ||||
| end | ||||
|  | ||||
|  | ||||
| function getJournalMapMarkerList(player, quest) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local possibleMarkers = {}; | ||||
|      | ||||
|     if (sequence == SEQ_000) then | ||||
|         table.insert(possibleMarkers, MRKR_PFARAHR); | ||||
|     elseif (sequence == SEQ_001) then | ||||
|         table.insert(possibleMarkers, MRKR_VKOROLON); | ||||
|     end | ||||
|      | ||||
|     return unpack(possibleMarkers) | ||||
| end | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,331 @@ | ||||
| --Quest Flags | ||||
| MAN0U0_FLAG_TUTORIAL1_DONE = 0; | ||||
| MAN0U0_FLAG_TUTORIAL2_DONE = 1; | ||||
| MAN0U0_FLAG_TUTORIAL3_DONE = 2; | ||||
| require("global"); | ||||
|  | ||||
| --[[ | ||||
|  | ||||
| Quest Script | ||||
|  | ||||
| Name:   Flowers for All | ||||
| Code:   Man0u0 | ||||
| Id:     110009 | ||||
| Prereq: None (Given on chara creation) | ||||
| Notes: RURURAJI scripting handled via PopulaceChocoboLender.lua | ||||
| TO-DO: Sequence 000 - Crowd NPCs. | ||||
|        Sequence 010 - Adv. Guild NPCs | ||||
|  | ||||
|  | ||||
| https://www.youtube.com/watch?v=XXGrSFrfYo4 | ||||
|  | ||||
| ]] | ||||
|  | ||||
| -- Sequence Numbers | ||||
| SEQ_000 = 0;  -- On the Merchant Strip in Ul'dah; contains the basic tutorial. | ||||
| SEQ_005 = 5;  -- Combat on the Sapphire Avenue Exchange | ||||
| SEQ_010 = 10; -- Back on the Merchant Strip in Ul'dah | ||||
|  | ||||
| -- Actor Class Ids | ||||
| ASCILIA                 = 1000042; | ||||
| WARBURTON               = 1000186; | ||||
| RURURAJI                = 1000840; | ||||
| BIG_BELLIED_BARKER      = 1001490; | ||||
| FRETFUL_FARMHAND        = 1001491; | ||||
| DEBAUCHED_DEMONESS      = 1001492; | ||||
| DAPPER_DAN              = 1001493; | ||||
| LOUTISH_LAD             = 1001494; | ||||
| GIL_DIGGING_MISTRESS    = 1001495; | ||||
| TWITTERING_TOMBOY       = 1001496; | ||||
| STOCKY_STRANGER         = 1001644; | ||||
| EXIT_TRIGGER            = 1090372; | ||||
| OPENING_STOPER_ULDAH    = 1090373; | ||||
|  | ||||
|  | ||||
|  | ||||
| KEEN_EYED_MERCHANT      = 1000401; | ||||
| --MUMPISH_MIQOTE          = 1000992; -- Unused on this client version.  Calls processEvent020_6 | ||||
| HIGH_SPIRITED_FELLOW    = 1001042; | ||||
| DISREPUTABLE_MIDLANDER  = 1001044; | ||||
| LONG_LEGGED_LADY        = 1001112; | ||||
| LARGE_LUNGED_LABORER    = 1001645; | ||||
| TOOTH_GRINDING_TRAVELER = 1001646; | ||||
| FULL_LIPPED_FILLE       = 1001647; | ||||
| YAYATOKI                = 1500129; | ||||
|  | ||||
| BLOCKER                 = 1090372; | ||||
| ULDAH_OPENING_EXIT      = 1099046; | ||||
|  | ||||
| -- Non-interactive NPCs | ||||
| CROWD_HYUR_M            = 1001114; | ||||
| CROWD_HYUR_F            = 1001115; | ||||
| CROWD_ELEZEN_M          = 1001116; | ||||
| CROWD_ELEZEN_F          = 1001117; | ||||
| CROWD_LALAFELL_M        = 1001118; | ||||
| CROWD_LALAFELL_F        = 1001119; | ||||
| CROWD_MIQOTE            = 1001120; | ||||
| CROWD_ROEGADYN          = 1001121; | ||||
| GUILD_KIORA             = 1000780; | ||||
| GUILD_OPONDHAO          = 1000781; | ||||
| GUILD_BERTRAM           = 1000782; | ||||
| GUILD_MINERVA           = 1000783; | ||||
| GUILD_ZOENGTERBIN       = 1000784; | ||||
| GUILD_STYRMOEYA         = 1000785; | ||||
| GUILD_YHAH_AMARIYO      = 1000786; | ||||
| GUILD_HILDIE            = 1000787; | ||||
| GUILD_LETTICE           = 1000788; | ||||
| GUILD_TYON              = 1000789; | ||||
| GUILD_OTOPA_POTTOPA     = 1000864; | ||||
| GUILD_THAISIE           = 1000865; | ||||
| GUILD_SESEBARU          = 1001182; | ||||
| GUILD_TOTONAWA          = 1001371; | ||||
| GUILD_EUSTACE           = 1001372; | ||||
|  | ||||
|  | ||||
| -- Quest Markers | ||||
| MRKR_YAYATOKI               = 11000901; | ||||
| MRKR_ASCILIA                = 11000902; | ||||
| MRKR_FRETFUL_FARMHAND       = 11000903; | ||||
| MRKR_GIL_DIGGING_MISTRESS   = 11000904; | ||||
| MRKR_COMBAT_TUTORIAL        = 11000905; | ||||
| MRKR_ADV_GUILD              = 11000906; | ||||
|  | ||||
|  | ||||
| -- Quest Flags | ||||
| FLAG_SEQ000_MINITUT0    = 0; -- PushEvent ASCILIA | ||||
| FLAG_SEQ000_MINITUT1    = 1; -- TalkEvent ASCILIA | ||||
| FLAG_SEQ000_MINITUT2    = 2; -- TalkEvent FRETFUL_FARMHAND | ||||
| FLAG_SEQ000_MINITUT3    = 3; -- TalkEvent GIL_DIGGING_MISTRESS | ||||
|  | ||||
| FLAG_SEQ010_TALK0       = 0; -- TalkEvent YAYATOKI | ||||
|  | ||||
|  | ||||
| function onStart(player, quest) | ||||
|     quest:StartSequence(SEQ_000); | ||||
| end | ||||
|  | ||||
| function onFinish(player, quest) | ||||
| end | ||||
|  | ||||
| function onSequence(player, quest, sequence) | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         -- Setup states incase we loaded in. | ||||
|         local asciliaCanPush = not quest:GetFlag(FLAG_SEQ000_MINITUT0); | ||||
|         local asciliaFlag = quest:GetFlag(FLAG_SEQ000_MINITUT1) and QFLAG_NONE or QFLAG_PLATE; | ||||
|         local fretfulfarmhandFlag = quest:GetFlag(FLAG_SEQ000_MINITUT2) and QFLAG_NONE or QFLAG_PLATE; | ||||
|         local gildiggingmistressFlag = quest:GetFlag(FLAG_SEQ000_MINITUT3) and QFLAG_NONE or QFLAG_PLATE; | ||||
|  | ||||
|         local exitFlag = quest:GetFlags() == 0xF and QFLAG_MAP or QFLAG_NONE; | ||||
|  | ||||
|         if (asciliaCanPush) then | ||||
|             fretfulfarmhandFlag = QFLAG_NONE; | ||||
|             gildiggingmistressFlag = QFLAG_NONE; | ||||
|         end | ||||
|  | ||||
|         --AddENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned) | ||||
|         quest:AddENpc(ASCILIA, asciliaFlag, true, asciliaCanPush); | ||||
|         quest:AddENpc(WARBURTON); | ||||
|         quest:AddENpc(RURURAJI); | ||||
|         quest:AddENpc(BIG_BELLIED_BARKER); | ||||
|         quest:AddENpc(FRETFUL_FARMHAND, fretfulfarmhandFlag); | ||||
|         quest:AddENpc(DEBAUCHED_DEMONESS); | ||||
|         quest:AddENpc(DAPPER_DAN); | ||||
|         quest:AddENpc(LOUTISH_LAD); | ||||
|         quest:AddENpc(GIL_DIGGING_MISTRESS, gildiggingmistressFlag); | ||||
|         quest:AddENpc(TWITTERING_TOMBOY); | ||||
|         quest:AddENpc(STOCKY_STRANGER); | ||||
|         quest:AddENpc(EXIT_TRIGGER, exitFlag, false, true); | ||||
|         quest:AddENpc(OPENING_STOPER_ULDAH, QFLAG_NONE, false, false, true); | ||||
|  | ||||
|     elseif (sequence == SEQ_010) then | ||||
|         local yayatokiFlag = quest:GetFlag(FLAG_SEQ010_TALK0) and QFLAG_NONE or QFLAG_PLATE; | ||||
|         local uldahopeningexitFlag = QFLAG_MAP; | ||||
|         quest:AddENpc(KEEN_EYED_MERCHANT); | ||||
|         quest:AddENpc(HIGH_SPIRITED_FELLOW); | ||||
|         quest:AddENpc(DISREPUTABLE_MIDLANDER); | ||||
|         quest:AddENpc(LONG_LEGGED_LADY); | ||||
|         quest:AddENpc(LARGE_LUNGED_LABORER); | ||||
|         quest:AddENpc(TOOTH_GRINDING_TRAVELER); | ||||
|         quest:AddENpc(FULL_LIPPED_FILLE); | ||||
|         quest:AddENpc(YAYATOKI, yayatokiFlag); | ||||
|         quest:AddENpc(BLOCKER, QFLAG_NONE, false, true); | ||||
|         quest:AddENpc(ULDAH_OPENING_EXIT, uldahopeningexitFlag, false, true); | ||||
|     end | ||||
| end | ||||
|  | ||||
| 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_010) then | ||||
|         seq010_onTalk(player, quest, npc, classId); | ||||
|     end | ||||
|     quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
| function onPush(player, quest, npc) | ||||
|  | ||||
|     local sequence = quest:getSequence(); | ||||
|     local classId = npc:GetActorClassId(); | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         if (classId == ASCILIA) then | ||||
|            callClientFunction(player, "delegateEvent", player, quest, "processTtrNomal002"); | ||||
|            player:EndEvent(); | ||||
|         elseif (classId == EXIT_TRIGGER) then | ||||
|             if (quest:GetFlags() == 0xF) then | ||||
|                 doExitTrigger(player, quest, npc); | ||||
|                 return; | ||||
|             else | ||||
|                 callClientFunction(player, "delegateEvent", player, quest, "processTtrBlkNml001"); | ||||
|                 GetWorldManager():DoPlayerMoveInZone(player, -22, 196, 87, 2.4, 0x11) | ||||
|                 player:EndEvent(); | ||||
|             end | ||||
|         end | ||||
|     elseif (sequence == SEQ_010) then | ||||
|         if (classId == BLOCKER) then | ||||
|  | ||||
|             posz = player:GetPos()[3]; | ||||
|  | ||||
|             if (posz >= 71 and posz <= 95) then | ||||
|                 callClientFunction(player, "delegateEvent", player, quest, "processTtrBlkNml002"); | ||||
|                 GetWorldManager():DoPlayerMoveInZone(player, -22.81, 196, 87.82, 2.98, 0x11); | ||||
|             else | ||||
|                 callClientFunction(player, "delegateEvent", player, quest, "processTtrBlkNml003"); | ||||
|                 GetWorldManager():DoPlayerMoveInZone(player, -0.3, 196, 116, -2.7, 0x11); | ||||
|             end | ||||
|         elseif (classId == ULDAH_OPENING_EXIT) then | ||||
|             player:ReplaceQuest(quest, "Man0u1") | ||||
|             return; | ||||
|         end | ||||
|     end | ||||
|     quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
| function onNotice(player, quest, target) | ||||
|     callClientFunction(player, "delegateEvent", player, quest, "processTtrNomal001withHQ"); | ||||
|     player:EndEvent(); | ||||
|     quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
| function seq000_onTalk(player, quest, npc, classId) | ||||
|  | ||||
|     if (classId == ASCILIA) then | ||||
|  | ||||
|         if (not quest:GetFlag(FLAG_SEQ000_MINITUT0)) then -- If Talk tutorial | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processTtrNomal003"); | ||||
|             quest:SetFlag(FLAG_SEQ000_MINITUT0); -- Used to disable her PushEvent / Allow for her next TalkEvent | ||||
|         else | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processTtrMini001"); | ||||
|             quest:SetFlag(FLAG_SEQ000_MINITUT1); -- Ascilia has now been talked to. | ||||
|         end | ||||
|  | ||||
|     elseif (classId == FRETFUL_FARMHAND) then | ||||
|         if (not quest:GetFlag(FLAG_SEQ000_MINITUT2)) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processTtrMini002_first"); | ||||
|             quest:SetFlag(FLAG_SEQ000_MINITUT2); | ||||
|         else | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processTtrMini002"); | ||||
|         end | ||||
|  | ||||
|     elseif (classId == GIL_DIGGING_MISTRESS) then | ||||
|         if (not quest:GetFlag(FLAG_SEQ000_MINITUT3)) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processTtrMini003_first"); | ||||
|             quest:SetFlag(FLAG_SEQ000_MINITUT3); | ||||
|         else | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processTtrMini003"); | ||||
|         end | ||||
|  | ||||
|     elseif (classId == WARBURTON) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_3"); | ||||
|     elseif (classId == RURURAJI) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_13"); | ||||
|     elseif (classId == BIG_BELLIED_BARKER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_6"); | ||||
|     elseif (classId == DEBAUCHED_DEMONESS) then | ||||
|          callClientFunction(player, "delegateEvent", player, quest, "processEvent000_8"); | ||||
|     elseif (classId == DAPPER_DAN) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_9"); | ||||
|     elseif (classId == LOUTISH_LAD) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_10"); | ||||
|     elseif (classId == TWITTERING_TOMBOY) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_12"); | ||||
|     elseif (classId == STOCKY_STRANGER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_6_2"); | ||||
|     end | ||||
|  | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
| function seq010_onTalk(player, quest, npc, classId) | ||||
|  | ||||
|     if (classId == KEEN_EYED_MERCHANT) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent020_2"); | ||||
|     elseif (classId == HIGH_SPIRITED_FELLOW) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent020_3"); | ||||
|     elseif (classId == DISREPUTABLE_MIDLANDER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent020_4"); | ||||
|     elseif (classId == LONG_LEGGED_LADY) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_14"); | ||||
|     elseif (classId == LARGE_LUNGED_LABORER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEtc003"); | ||||
|     elseif (classId == TOOTH_GRINDING_TRAVELER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEtc001"); | ||||
|     elseif (classId == FULL_LIPPED_FILLE) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEtc002"); | ||||
|     elseif (classId == YAYATOKI) then | ||||
|         if (not quest:GetFlag(FLAG_SEQ010_TALK0)) then | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEvent020_8"); | ||||
|             quest:SetFlag(FLAG_SEQ010_TALK0); | ||||
|         else | ||||
|             callClientFunction(player, "delegateEvent", player, quest, "processEvent020_8"); | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
| function getJournalMapMarkerList(player, quest) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local possibleMarkers = {}; | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         if (quest:GetFlag(FLAG_SEQ000_MINITUT0)) then | ||||
|             if (not quest:GetFlag(FLAG_SEQ000_MINITUT1)) then table.insert(possibleMarkers, MRKR_ASCILIA); end | ||||
|             if (not quest:GetFlag(FLAG_SEQ000_MINITUT2)) then table.insert(possibleMarkers, MRKR_FRETFUL_FARMHAND); end | ||||
|             if (not quest:GetFlag(FLAG_SEQ000_MINITUT3)) then table.insert(possibleMarkers, MRKR_GIL_DIGGING_MISTRESS); end | ||||
|         end | ||||
|  | ||||
|     elseif (sequence == SEQ_010) then | ||||
|         if (not quest:GetFlag(FLAG_SEQ010_TALK0)) then | ||||
|             table.insert(possibleMarkers, MRKR_YAYATOKI) | ||||
|         end | ||||
|             table.insert(possibleMarkers, MRKR_ADV_GUILD); | ||||
|     end | ||||
|  | ||||
|     return unpack(possibleMarkers) | ||||
| end | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| function doExitTrigger(player, quest, npc) | ||||
|     quest:ClearData(); | ||||
|     quest:StartSequence(SEQ_005); | ||||
|     contentArea = player.CurrentArea:CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0u01", "SimpleContent30079", "Quest/QuestDirectorMan0u001"); | ||||
|  | ||||
|     if (contentArea == nil) then | ||||
|         return; | ||||
|     end | ||||
|  | ||||
|     director = contentArea:GetContentDirector(); | ||||
|     player:AddDirector(director); | ||||
|     director:StartDirector(false); | ||||
|  | ||||
|     player:KickEvent(director, "noticeEvent", true); | ||||
|     player:SetLoginDirector(director); | ||||
|  | ||||
|     GetWorldManager():DoZoneChangeContent(player, contentArea, -24.34, 192, 34.22, 0.78, 16); | ||||
|     return; | ||||
| end | ||||
|  | ||||
|  | ||||
| MAN0U0_FLAG_MINITUT_DONE1 = 4; | ||||
| MAN0U0_FLAG_MINITUT_DONE2 = 8; | ||||
| MAN0U0_FLAG_MINITUT_DONE3 = 16; | ||||
|   | ||||
							
								
								
									
										240
									
								
								Data/scripts/quests/man/man0u1.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										240
									
								
								Data/scripts/quests/man/man0u1.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,240 @@ | ||||
| require("global"); | ||||
|  | ||||
| --[[ | ||||
|  | ||||
| Quest Script | ||||
|  | ||||
| Name:   Court in the Sands  | ||||
| Code:   Man0u1 | ||||
| Id:     110010 | ||||
| Prereq: Flowers for All (Man0u0 - 110009) | ||||
| Notes: | ||||
|  | ||||
|  | ||||
| Vid refs -  | ||||
| https://www.youtube.com/watch?v=WNRLrwZ3BJY&t=284s | ||||
| https://www.youtube.com/watch?v=eZgcq-FMpfw&t=504s | ||||
|  | ||||
| Coliseum fight - https://www.youtube.com/watch?v=Jcv9I2Bk46w | ||||
|  | ||||
| A LOT - https://www.youtube.com/watch?v=gySHO1Be9OM | ||||
|  | ||||
| ]] | ||||
|  | ||||
|  | ||||
| --[[  | ||||
|  | ||||
| Phase: | ||||
|          | ||||
| 45  (Miner's Guild) | ||||
|         Linette   processEvent050 (initial CS) | ||||
|         Change phase to 50 after interaction | ||||
|          | ||||
| 50  (Miner's Guild Instance #1) | ||||
|         Name                    DisplayName             ActorClass                          Event | ||||
|         Linette                 1100016                 1000861                             processEvent050_2 | ||||
|         Corguevais              1200025                 1000043/1001054                     processEvent050_11 | ||||
|         Nittma Guttma           1400127                 1001286                             processEvent050_10 | ||||
|         Nortmoen                1600127                 1600042 | ||||
|         F'lhaminn               1900054                 1000038/1000842/1001514/2290008     processEvent051_1 | ||||
|         Tyago Moui              1900130                 1001203                             processEvent050_12 | ||||
|         Shilgen                 2200216                 1000637 | ||||
|         Muscular Miner          4000202                 1000690/1700013                     processEvent050_7 | ||||
|         Close-fisted Woman      4000366                 1000981                             processEvent050_8 | ||||
|         Astonished Adventurer   4000377                 1000895                             processEvent050_9 | ||||
|         Manic Miner             4000444                 1001283                             processEvent050_13 | ||||
|         Maddened Miner          4000445                 1001284                             processEvent050_14 | ||||
|         Maudlin Miner           4000446                 1001287                             processEvent050_3 | ||||
|         Mocking Miner           4000447                 1001288                             processEvent050_4 | ||||
|         Monitoring Miner        4000448                 1001289                             processEvent050_5 | ||||
|         Displeased Dancer       4000449                 1001290                             processEvent050_6 | ||||
|          | ||||
|         Emotes 103, 108, 121, 125, 140, 135  in that order @ F'lhaminn, then change phase to 51 | ||||
| 51 | ||||
|         Emotes 108 @ Maddened Miner | ||||
|         Emotes 135, 103, 121 @ Manic Miner    | ||||
|         Check both for clear state after each interaction and change phase to 55 | ||||
|          | ||||
| 55  (Miner's Guild Instance #2) | ||||
|  | ||||
| --]] | ||||
|  | ||||
|  | ||||
|  | ||||
| -- Sequence Numbers | ||||
| SEQ_000 = 0; -- Ul'dah Adventurer's Guild | ||||
| SEQ_005 = 5; -- Run to Camp Black Brush & Attune | ||||
| SEQ_010 = 10; -- Return to the Guild | ||||
| SEQ_012 = 12; -- Speak to Momodi | ||||
| SEQ_015 = 15; -- Visiting guilds (GSM, GLD) | ||||
| SEQ_045 = 45; | ||||
| SEQ_050 = 50; | ||||
| SEQ_057 = 57; | ||||
| SEQ_058 = 58; | ||||
| SEQ_060 = 60; | ||||
| SEQ_065 = 65; | ||||
| SEQ_070 = 70; | ||||
| SEQ_075 = 75; | ||||
| SEQ_080 = 80; | ||||
| SEQ_085 = 85; | ||||
| SEQ_090 = 90; | ||||
| SEQ_095 = 95; | ||||
| SEQ_100 = 100; | ||||
| SEQ_105 = 105; | ||||
| SEQ_110 = 110; | ||||
|  | ||||
|  | ||||
| -- Actor Class Ids | ||||
| OVERCOMPETITIVE_ADVENTURER  = 1000807; | ||||
| MOMODI                      = 1000841; | ||||
| OTOPA_POTTOPA               = 1000864; | ||||
| UNDAUNTED_ADVENTURER        = 1000936; | ||||
| GREEDY_MERCHANT             = 1000937; | ||||
| LIONHEARTED_ADVENTURER      = 1000938; | ||||
| SPRY_SALESMAN               = 1000939; | ||||
|  | ||||
|  | ||||
|  | ||||
| UPBEAT_ADVENTURER           = 1000940; | ||||
| SEEMINGLY_CALM_ADVENTURER   = 1000941; | ||||
| UNKNOWN1 = 0; | ||||
| UNKNOWN2 = 0; | ||||
|  | ||||
| THANCRED = 1000948; -- 1000010 | ||||
|  | ||||
|  | ||||
| -- Quest Markers | ||||
| MRKR_MOMODI             = 11001001; | ||||
| MRKR_CAMP_BLACK_BRUSH   = 11001002; | ||||
|  | ||||
| -- Quest Items | ||||
| ITEM_VELODYNA_COSMOS = 0; -- Seq_000 : 2nd journal arg.    >=5 doesn't have. | ||||
| ITEM_COLISEUM_PASS   = 0; -- Seq_015 : 3rd journal arg.    >=5 doesn't have | ||||
|  | ||||
| -- Quest Flags | ||||
| FLAG_SEQ000     = 0;  | ||||
|  | ||||
| function onStart(player, quest)  | ||||
|     quest:StartSequence(SEQ_000); | ||||
|      | ||||
|     -- Immediately move to the Adventurer's Guild private area | ||||
| 	callClientFunction(player, "delegateEvent", player, quest, "processEventMomodiStart"); | ||||
|     GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 4, 15, -75.242, 195.009, 74.572, -0.046);	 | ||||
|     player:SendGameMessage(quest, 329, 0x20); | ||||
| 	player:SendGameMessage(quest, 330, 0x20); | ||||
| end | ||||
|  | ||||
| function onFinish(player, quest) | ||||
| end | ||||
|  | ||||
| function onSequence(player, quest, sequence) | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         -- Setup states incase we loaded in. | ||||
|  | ||||
|         --AddENpc(classId, byte flagType=0,isTalkEnabled, isPushEnabled, isEmoteEnabled, isSpawned) | ||||
|         quest:AddENpc(MOMODI, QFLAG_PLATE); | ||||
|         quest:AddENpc(OTOPA_POTTOPA); | ||||
|  | ||||
|     elseif (sequence == SEQ_005) then  | ||||
|         quest:AddENpc(MOMODI); | ||||
|     end | ||||
| end | ||||
|  | ||||
| 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) | ||||
|     callClientFunction(player, "delegateEvent", player, quest, "processEvent000_1"); -- Describes what an Instance is | ||||
|     player:EndEvent(); | ||||
| 	quest:UpdateENPCs(); | ||||
| end | ||||
|  | ||||
|  | ||||
|      | ||||
| function seq000_onTalk(player, quest, npc, classId) | ||||
|      | ||||
|     if (classId == MOMODI) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent010"); | ||||
|         player:EndEvent(); | ||||
|         quest:StartSequence(SEQ_005); | ||||
|         GetWorldManager():DoZoneChange(player, 175, nil, 0, 15, player.positionX, player.positionY, player.positionZ, player.rotation); | ||||
|         return; | ||||
|     elseif (classId == UNDAUNTED_ADVENTURER) then | ||||
|         callClientFunction (player, "delegateEvent", player, quest, "processEvent000_2"); | ||||
|     elseif (classId == GREEDY_MERCHANT) then | ||||
|         callClientFunction (player, "delegateEvent", player, quest, "processEvent000_3"); | ||||
|     elseif (classId == SPRY_SALESMAN) then | ||||
|         callClientFunction (player, "delegateEvent", player, quest, "processEvent000_4"); | ||||
|     elseif (classId == LIONHEARTED_ADVENTURER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_5"); | ||||
|     elseif (classId == UPBEAT_ADVENTURER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_6"); | ||||
|     elseif (classId == SEEMINGLY_CALM_ADVENTURER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_7"); | ||||
|     elseif (classId == OVERCOMPETITIVE_ADVENTURER) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_8");         | ||||
|     elseif (classId == OTOPA_POTTOPA) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_9"); | ||||
|     elseif (classId == THANCRED) then | ||||
|         callClientFunction(player, "delegateEvent", player, quest, "processEvent000_10");         | ||||
|     end | ||||
|  | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
| function seq005_onTalk(player, quest, npc, classId)  | ||||
|     if (classId == MOMODI) then | ||||
| 		callClientFunction(player, "delegateEvent", player, quest, "processEvent010_2"); | ||||
|     end | ||||
|  | ||||
|     player:EndEvent(); | ||||
| end | ||||
|  | ||||
|  | ||||
| function getJournalInformation(player, quest) | ||||
| 	return 0, ITEM_VELODYNA_COSMOS, ITEM_COLISEUM_PASS; | ||||
| end | ||||
|  | ||||
|  | ||||
| function getJournalMapMarkerList(player, quest) | ||||
|     local sequence = quest:getSequence(); | ||||
|     local possibleMarkers = {}; | ||||
|  | ||||
|     if (sequence == SEQ_000) then | ||||
|         table.insert(possibleMarkers, MRKR_MOMODI); | ||||
|     elseif (sequence == SEQ_010) then | ||||
|         if (not quest:GetFlag(FLAG_SEQ010_TALK0)) then  | ||||
|             table.insert(possibleMarkers, MRKR_YAYATOKI) | ||||
|         else | ||||
|             table.insert(possibleMarkers, MRKR_ADV_GUILD); | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     return unpack(possibleMarkers) | ||||
| end | ||||
|  | ||||
|  | ||||
| @@ -0,0 +1,3 @@ | ||||
| function init(npc) | ||||
| 	return false, false, 0, 0, 0x1A5, 4289; | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_13", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,52 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onSpawn(player, npc) | ||||
| 	npc:SetQuestGraphic(player, 0x2);	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
| 	 | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == false) then | ||||
| 			npc:SetQuestGraphic(player, 0x2); | ||||
| 		end | ||||
| 		 | ||||
| 		if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_TUTORIAL3_DONE) == true) then | ||||
| 			player:SetEventStatus(npc, "pushDefault", false, 0x2);		 | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		if (triggerName == "pushDefault") then		 | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrNomal002", nil, nil, nil);			 | ||||
| 		elseif (triggerName == "talkDefault") then		 | ||||
| 			--Is doing talk tutorial? | ||||
| 			if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_TUTORIAL3_DONE) == false) then | ||||
| 				player:SetEventStatus(npc, "pushDefault", false, 0x2); | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrNomal003", nil, nil, nil); | ||||
| 				man0u0Quest:SetQuestFlag(MAN0U0_FLAG_TUTORIAL3_DONE, true);				 | ||||
| 				npc:SetQuestGraphic(player, 0x2); | ||||
| 				man0u0Quest:SaveData(); | ||||
| 				 | ||||
| 				player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); | ||||
| 			--Was he talked to for the mini tutorial? | ||||
| 			else				 | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini001", nil, nil, nil); | ||||
| 				if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == false) then | ||||
| 					npc:SetQuestGraphic(player, 0x0); | ||||
| 					man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1, true); | ||||
| 					man0u0Quest:SaveData();										 | ||||
| 				end | ||||
|  | ||||
| 			end | ||||
|  | ||||
| 			player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); | ||||
| 		else | ||||
| 			player:EndEvent(); | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_6", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_9", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_8", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,46 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onSpawn(player, npc) | ||||
|  | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
| 	 | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		player:SetEventStatus(npc, "pushDefault", true, 0x2); | ||||
| 		if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0U0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then			 | ||||
| 			npc:SetQuestGraphic(player, 0x3); | ||||
| 		else			 | ||||
| 			npc:SetQuestGraphic(player, 0x0); | ||||
| 		end | ||||
| 	end | ||||
| 	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName)		 | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	 | ||||
| 	if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) ~= true) then | ||||
| 		print "AAAA" | ||||
| 	end | ||||
| 	 | ||||
| 	if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then		 | ||||
| 		player:EndEvent(); | ||||
| 		 | ||||
| 		contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0u01", "SimpleContent30079", "Quest/QuestDirectorMan0u001"); | ||||
| 		 | ||||
| 		if (contentArea == nil) then | ||||
| 			player:EndEvent(); | ||||
| 			return; | ||||
| 		end | ||||
| 		 | ||||
| 		director = contentArea:GetContentDirector();		 | ||||
| 		player:AddDirector(director);		 | ||||
| 		director:StartDirector(false); | ||||
| 		 | ||||
| 		player:KickEvent(director, "noticeEvent", true); | ||||
| 		player:SetLoginDirector(director);		 | ||||
| 					 | ||||
| 		GetWorldManager():DoZoneChangeContent(player, contentArea, -24.34, 192, 34.22, 0.78, 16); | ||||
| 	end | ||||
| 	 | ||||
| end | ||||
| @@ -1,31 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onSpawn(player, npc) | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
|  | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == false) then | ||||
| 			npc:SetQuestGraphic(player, 0x2); | ||||
| 		end | ||||
| 	end	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
|  | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		if (triggerName == "talkDefault") then | ||||
| 			if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == false) then | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini002_first", nil, nil, nil); | ||||
| 				npc:SetQuestGraphic(player, 0x0); | ||||
| 				man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2, true); | ||||
| 				man0u0Quest:SaveData();				 | ||||
| 				player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini002", nil, nil, nil); | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,31 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onSpawn(player, npc) | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
|  | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == false) then | ||||
| 			npc:SetQuestGraphic(player, 0x2); | ||||
| 		end | ||||
| 	end	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = player:GetQuest("Man0u0"); | ||||
|  | ||||
| 	if (man0u0Quest ~= nil) then | ||||
| 		if (triggerName == "talkDefault") then | ||||
| 			if (man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == false) then | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini003_first", nil, nil, nil); | ||||
| 				npc:SetQuestGraphic(player, 0x0); | ||||
| 				man0u0Quest:SetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3, true); | ||||
| 				man0u0Quest:SaveData();				 | ||||
| 				player:GetDirector("OpeningDirector"):onTalkEvent(player, npc); | ||||
| 			else | ||||
| 				callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrMini003", nil, nil, nil); | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_10", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_13", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_6_2", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_12", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0"); | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_3", nil, nil, nil);	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,13 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName)		 | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	 | ||||
| 	if (man0u0Quest ~= nil) then		 | ||||
| 		callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBlkNml002", nil, nil, nil); | ||||
| 		GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent();	 | ||||
| end | ||||
| @@ -1,14 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName)		 | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	 | ||||
| 	if (man0u0Quest ~= nil) then		 | ||||
| 		callClientFunction(player, "delegateEvent", player, man0u0Quest, "processTtrBlkNml003", nil, nil, nil); | ||||
| 		GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| 	 | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_4");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEtc002");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_3");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_2");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEtc003");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent000_14");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_6");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_7");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,8 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEtc001");	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,16 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onSpawn(player, npc)	 | ||||
| 	npc:SetQuestGraphic(player, 0x3);	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc)	 | ||||
| 	man0u1Quest = GetStaticActor("Man0u1");		 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u1Quest, "processEventMomodiStart"); | ||||
| 	player:ReplaceQuest(110009, 110010); | ||||
| 	player:SendGameMessage(GetStaticActor("Man0u1"), 329, 0x20); | ||||
| 	player:SendGameMessage(GetStaticActor("Man0u1"), 330, 0x20); | ||||
| 	GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 4, 15, -75.242, 195.009, 74.572, -0.046);	 | ||||
| 	player:endEvent(); | ||||
| end | ||||
| @@ -1,13 +0,0 @@ | ||||
| require ("global") | ||||
| require ("quests/man/man0u0") | ||||
|  | ||||
| function onSpawn(player, npc)	 | ||||
| 	npc:SetQuestGraphic(player, 0x2);	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	man0u0Quest = GetStaticActor("Man0u0");	 | ||||
| 	callClientFunction(player, "delegateEvent", player, man0u0Quest, "processEvent020_8");	 | ||||
| 	npc:SetQuestGraphic(player, 0x0); | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -1,26 +0,0 @@ | ||||
| require ("global") | ||||
|  | ||||
| function onSpawn(player, npc)	 | ||||
| 	npc:SetQuestGraphic(player, 0x2);	 | ||||
| end | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
| 	local man0u1Quest = player:GetQuest("Man0u1"); | ||||
| 	local pos = player:GetPos(); | ||||
| 	 | ||||
| 	if (man0u1Quest ~= nil) then	 | ||||
| 		callClientFunction(player, "delegateEvent", player, man0u1Quest, "processEvent010"); | ||||
| 		player:EndEvent(); | ||||
| 		 | ||||
| 		--[[director = player:GetZone():CreateDirector("AfterQuestWarpDirector"); | ||||
| 		player:KickEvent(director, "noticeEvent", true); | ||||
| 		player:AddDirector(director); | ||||
| 		player:SetLoginDirector(director); | ||||
| 		--]] | ||||
| 		GetWorldManager():DoZoneChange(player, 175, nil, 0, 15, pos[0], pos[1], pos[2], pos[3]); | ||||
| 		return; | ||||
| 	end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| 	 | ||||
| end | ||||
		Reference in New Issue
	
	Block a user