mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Refactored how zones work. Cleaned out a lot of duplciations and smoothed out how Zones/PrivateAreas work.
This commit is contained in:
		| @@ -1,84 +0,0 @@ | ||||
| --[[ | ||||
|  | ||||
| PopulaceSpecialEventCryer Script | ||||
|  | ||||
| Actor Class script to handle the 6 NPCs (technically 3, the actors were duped) involved in the Foundation Day 2011 & 2012 events.   | ||||
| In 2011 they appear to be used for recruitment information for their respective Grand Company. | ||||
| In 2012, they were used for exchanging Over-aspected Crystals/Clusters for GC seals as part of the ongoing Atomos event. | ||||
|  | ||||
| Functions: | ||||
|  | ||||
| For 2011. | ||||
| eventTalkStep0(joined)      - NPC dialog about joining their cause to fight back Imperials. joined = 0 or 1. Function has hardcoded actor IDs, won't work with 2012 versions | ||||
| eventTalkNotGCmenber(npcGC) - NPC dialog when you're not part of their grand company. | ||||
|  | ||||
| For 2012. | ||||
| eventTalkCrystalExchange(player, npcGC, hasCrystal) - NPC dialog explaining they want over-aspected crystals. Brings up crystal exchange prompt if hasCrystal = 1. | ||||
| eventTalkCsOverflow(player, npcGC)                  - Error message that you can't hold the seals being offered. | ||||
| eventTalkCrystalExchange2(player, npcGC)            - NPC dialog for accepting exchange of crystals for seals | ||||
|  | ||||
| --]] | ||||
|  | ||||
| require ("global") | ||||
|  | ||||
| function init(npc) | ||||
| 	return false, false, 0, 0;	 | ||||
| end | ||||
|  | ||||
|  | ||||
| local gcRep = {  | ||||
|     [1001619] = 1, -- Maelstrom Representative 2011 | ||||
|     [1002105] = 1, -- Maelstrom Representative 2012 | ||||
|     [1001623] = 2, -- Adder Representative 2011 | ||||
|     [1002109] = 2, -- Adder Representative 2012 | ||||
|     [1001627] = 3, -- Flame Representative 2011 | ||||
|     [1002113] = 3, -- Flame Representative 2012 | ||||
| } | ||||
|  | ||||
|  | ||||
| function onEventStarted(player, npc, triggerName) | ||||
|     local playerGC = player.gcCurrent; | ||||
|     local npcId = npc:GetActorClassId(); | ||||
|     local npcGC = gcRep[npcId];  | ||||
|     local npcGCSeal = 1000200 + npcGC; | ||||
|     local hasCrystal = 1; | ||||
|     local crystal = 3020537; | ||||
|     local cluster = 3020413; | ||||
|     local eventMode = 2012; | ||||
|      | ||||
|      | ||||
|     if eventMode == 2011 then | ||||
|         if playerGC == 0 then | ||||
|             callClientFunction(player, "eventTalkStep0", 0); | ||||
|         elseif playerGC == npcGC then | ||||
|             callClientFunction(player, "eventTalkStep0", 1);  | ||||
|         else | ||||
|             callClientFunction(player, "eventTalkNotGCmenber", npcGC); | ||||
|         end | ||||
|      | ||||
|     elseif eventMode == 2012 then | ||||
|         choice = callClientFunction(player, "eventTalkCrystalExchange", player, npcGC, hasCrystal); | ||||
|          | ||||
|         if choice == 1 then | ||||
|             --callClientFunction(player, "eventTalkCsOverflow", player, npcGC); | ||||
|             player:SendMessage(0x20, "", "You pretend to hand over four over-aspected crystals."); | ||||
|             callClientFunction(player, "eventTalkCrystalExchange2", player, npcGC);  | ||||
|             | ||||
|             local invCheck = player:GetItemPackage(INVENTORY_CURRENCY):AddItem(npcGCSeal, 1000, 1); | ||||
|             if invCheck == INV_ERROR_SUCCESS then | ||||
|                 player:SendGameMessage(player, GetWorldMaster(), 25071, MESSAGE_TYPE_SYSTEM, crystal, 1, npcGCSeal, 1, 4, 1000); | ||||
|             end | ||||
|         elseif choice == 2 then | ||||
|             player:SendMessage(0x20, "", "You pretend to hand over an over-aspected cluster."); | ||||
|             --callClientFunction(player, "eventTalkCsOverflow", player, npcGC); | ||||
|             callClientFunction(player, "eventTalkCrystalExchange2", player, npcGC);  | ||||
|              | ||||
|             local invCheck = player:GetItemPackage(INVENTORY_CURRENCY):AddItem(npcGCSeal, 3000, 1); | ||||
|             if invCheck == INV_ERROR_SUCCESS then | ||||
|                 player:SendGameMessage(player, GetWorldMaster(), 25071, MESSAGE_TYPE_SYSTEM, cluster, 1, npcGCSeal, 1, 1, 3000); | ||||
|             end             | ||||
|         end | ||||
|     end | ||||
| 	 | ||||
| 	player:EndEvent(); | ||||
| end | ||||
| @@ -20,8 +20,8 @@ function onBeginLogin(player) | ||||
| 	end | ||||
|  | ||||
| 	--For Opening. Set Director and reset position incase d/c | ||||
| 	if (player:HasQuest(110001) == true and player:GetZoneID() == 193) then | ||||
| 		director = player:GetZone():CreateDirector("OpeningDirector", false);		 | ||||
| 	if (player:HasQuest(110001) == true and player.CurrentArea.ZoneId == 193) then | ||||
| 		director = player.CurrentArea:CreateDirector("OpeningDirector", false);		 | ||||
| 		player:AddDirector(director); | ||||
| 		director:StartDirector(true); | ||||
| 		player:SetLoginDirector(director);		 | ||||
| @@ -32,8 +32,8 @@ function onBeginLogin(player) | ||||
| 		player.positionZ = -36.91; | ||||
| 		player.rotation = 0.025; | ||||
| 		player:GetQuest(110001):ClearData(); | ||||
| 	elseif (player:HasQuest(110005) == true and player:GetZoneID() == 166) then  | ||||
| 		director = player:GetZone():CreateDirector("OpeningDirector", false);		 | ||||
| 	elseif (player:HasQuest(110005) == true and player.CurrentArea.ZoneId == 166) then  | ||||
| 		director = player.CurrentArea:CreateDirector("OpeningDirector", false);		 | ||||
| 		player:AddDirector(director); | ||||
| 		director:StartDirector(false);		 | ||||
| 		player:SetLoginDirector(director);		 | ||||
| @@ -45,8 +45,8 @@ function onBeginLogin(player) | ||||
| 		player.rotation = -1.26721; | ||||
| 		player:GetQuest(110005):ClearQuestData(); | ||||
| 		player:GetQuest(110005):ClearQuestFlags(); | ||||
| 	elseif (player:HasQuest(110009) == true and player:GetZoneID() == 184) then | ||||
| 		--director = player:GetZone():CreateDirector("OpeningDirector", false);		 | ||||
| 	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);		 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user