mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
95 lines
4.0 KiB
Lua
95 lines
4.0 KiB
Lua
require ("global")
|
|
|
|
--[[
|
|
|
|
Elevator Standard Script
|
|
|
|
Functions:
|
|
|
|
elevatorAskLimsa001(eventNum) - Shows the ask dialog, and plays the event cutscenes for the Crow's Head Lift Lvl 1.
|
|
elevatorAskLimsa002(eventNum) - Shows the ask dialog, and plays the event cutscenes for the Crow's Head Lift Lvl 2.
|
|
elevatorAskLimsa003(eventNum) - Shows the ask dialog, and plays the event cutscenes for the Crow's Head Lift Lvl 3.
|
|
elevatorAskUldah001(eventNum) - Shows the ask dialog, and plays the event cutscenes for the Wellhead Lift Lvl 1.
|
|
elevatorAskUldah002(eventNum) - Shows the ask dialog, and plays the event cutscenes for the Wellhead Lift Lvl 2.
|
|
elevatorAskUldah003(eventNum) - Shows the ask dialog, and plays the event cutscenes for the Wellhead Lift Lvl 3.
|
|
elevatorQuestAskEvent(questId) - Special quest related elevator dialog.
|
|
|
|
Notes:
|
|
|
|
Script to control the elevators in Limsa Lominsa and Ul'dah. Each elevator entrance has a specific event for it's floor.
|
|
The only param is used to either show the ask dialog to the player or player the appropriate cutscene given the choice
|
|
made.
|
|
|
|
--]]
|
|
|
|
function onEventStarted(player, npc, eventType, eventName)
|
|
local actorClassId = npc.GetActorClassId();
|
|
|
|
-- Limsa; Crow's Lift Level 1
|
|
if (actorClassId == 1290007) then
|
|
local floorChoice = callClientFunction(player, "elevatorAskLimsa001", 0);
|
|
if (floorChoice == 1) then
|
|
callClientFunction(player, "elevatorAskLimsa001", 1);
|
|
endEventAndWarp(player, 133, -447, 40, 220, -1.574);
|
|
elseif (floorChoice == 2) then
|
|
callClientFunction(player, "elevatorAskLimsa001", 2);
|
|
endEventAndWarp(player, 133, -458, 92, 175, -0.383);
|
|
end
|
|
-- Limsa; Crow's Lift Level 2
|
|
elseif (actorClassId == 1290008) then
|
|
local floorChoice = callClientFunction(player, "elevatorAskLimsa002", 0);
|
|
if (floorChoice == 1) then
|
|
callClientFunction(player, "elevatorAskLimsa002", 1);
|
|
endEventAndWarp(player, 133, -447, 19, 220, -1.574);
|
|
elseif (floorChoice == 2) then
|
|
callClientFunction(player, "elevatorAskLimsa002", 2);
|
|
endEventAndWarp(player, 133, -458, 92, 175, -0.383);
|
|
end
|
|
-- Limsa; Crow's Lift Level 3
|
|
elseif (actorClassId == 1290009) then
|
|
local floorChoice = callClientFunction(player, "elevatorAskLimsa003", 0);
|
|
if (floorChoice == 1) then
|
|
callClientFunction(player, "elevatorAskLimsa003", 1);
|
|
endEventAndWarp(player, 133, -447, 19, 220, -1.574);
|
|
elseif (floorChoice == 2) then
|
|
callClientFunction(player, "elevatorAskLimsa003", 2);
|
|
endEventAndWarp(player, 133, -447, 40, 220, -1.574);
|
|
end
|
|
-- Ul'dah; Wellhead Lift Level 1
|
|
elseif (actorClassId == 1090460) then
|
|
local floorChoice = callClientFunction(player, "elevatorAskUldah001", 0);
|
|
if (floorChoice == 1) then
|
|
callClientFunction(player, "elevatorAskUldah001", 1);
|
|
endEventAndWarp(player, 209, -116.78, 222, 115.7, 2.85);
|
|
elseif (floorChoice == 2) then
|
|
callClientFunction(player, "elevatorAskUldah001", 2);
|
|
endEventAndWarp(player, 209, -121.60, 269.8, 135.28, -0.268);
|
|
end
|
|
-- Ul'dah; Wellhead Lift Level 2
|
|
elseif (actorClassId == 1090461) then
|
|
local floorChoice = callClientFunction(player, "elevatorAskUldah002", 0);
|
|
if (floorChoice == 1) then
|
|
callClientFunction(player, "elevatorAskUldah002", 1);
|
|
endEventAndWarp(player, 175, -116.78, 198, 115.7, -2.8911);
|
|
elseif (floorChoice == 2) then
|
|
callClientFunction(player, "elevatorAskUldah002", 2);
|
|
endEventAndWarp(player, 209, -121.60, 269.8, 135.28, -0.268);
|
|
end
|
|
-- Ul'dah; Wellhead Lift Level 3
|
|
elseif (actorClassId == 1090462) then
|
|
local floorChoice = callClientFunction(player, "elevatorAskUldah003", 0);
|
|
if (floorChoice == 1) then
|
|
callClientFunction(player, "elevatorAskUldah003", 1);
|
|
endEventAndWarp(player, 175, -116.78, 198, 115.7, -2.8911);
|
|
elseif (floorChoice == 2) then
|
|
callClientFunction(player, "elevatorAskUldah003", 2);
|
|
endEventAndWarp(player, 209, -116.78, 222, 115.7, 2.85);
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
function endEventAndWarp(player, zoneId, x, y, z, rotation)
|
|
player:EndEvent();
|
|
GetWorldManager():DoZoneChange(player, zoneId, nil, 0, 15, x, y, z, rotation);
|
|
end |