1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- --[[
- Script Name : SpawnScripts/Lavastorm/najenaElevatorcontrol.lua
- Script Author : smash
- Script Date : 2016.01.14 09:01:52
- Script Purpose :
- :
- --]]
- function spawn(NPC)
- end
- function casted_on(NPC, Caster, SpellName)
- --Say(NPC, SpellName)
- MoveElevator(NPC, SpellName)
- end
- --There are three possible locations for this Elevator - top, middle, bottom - it can be raised or lowered
- function MoveElevator(NPC, Direction)
- local Elevator = GetSpawn(NPC, 1710230)
- if GetTempVariable(Elevator, "moving") == "true" then
- return
- end
-
- local current_pos = GetTempVariable(Elevator, "current_pos")
- if Direction == "Raise Elevator" then
- if current_pos == "middle" then
- AddTimer(NPC, 3000, "MoveElevatorToTop", 1, Elevator)
- SetElevatorMoving(NPC, Elevator)
- elseif current_pos == "bottom" then
- AddTimer(NPC, 3000, "MoveElevatorToMiddle", 1, Elevator)
- SetElevatorMoving(NPC, Elevator)
- end
- elseif Direction == "Lower Elevator" then
- --Say(NPC, "Lower Elevator branch")
- if current_pos == "top" then
- --Say(NPC, "Lower - top")
- AddTimer(NPC, 3000, "MoveElevatorToMiddle", 1, Elevator)
- SetElevatorMoving(NPC, Elevator)
- elseif current_pos == "middle" then
- --Say(NPC, "Lower - middle")
- AddTimer(NPC, 3000, "MoveElevatorToBottom", 1, Elevator)
- SetElevatorMoving(NPC, Elevator)
- end
- end
- end
- --The trip from top->middle takes about 18 seconds, middle->bottom about 17 seconds - add 3 seconds to account for delay
- function MoveElevatorToTop(NPC, Elevator)
- MoveToLocation(Elevator, -37.9433, -127.518, 205.8)
- SetTempVariable(Elevator, "current_pos", "top")
- AddTimer(NPC, 21000, "SetElevatorNotMoving", 1, Elevator)
- end
- function MoveElevatorToMiddle(NPC, Elevator)
- --Say(NPC, "MoveElevatorToMiddle function")
- local current_pos = GetTempVariable(Elevator, "current_pos")
- MoveToLocation(Elevator, -37.9433, -212.726, 205.8)
- SetTempVariable(Elevator, "current_pos", "middle")
- if current_pos == "top" then
- AddTimer(NPC, 21000, "SetElevatorNotMoving", 1, Elevator)
- else
- AddTimer(NPC, 20000, "SetElevatorNotMoving", 1, Elevator)
- end
- end
- function MoveElevatorToBottom(NPC, Elevator)
- MoveToLocation(Elevator, -37.9433, -294.3962, 205.8)
- SetTempVariable(Elevator, "current_pos", "bottom")
- AddTimer(NPC, 20000, "SetElevatorNotMoving", 1, Elevator)
- end
- function SetElevatorMoving(NPC, Elevator)
- SetTempVariable(Elevator, "moving", "true")
- end
- function SetElevatorNotMoving(NPC, Elevator)
- --Say(NPC, "Done moving")
- SetTempVariable(Elevator, "moving", nil)
- end
|