mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 14:04:41 +02:00
Merge remote-tracking branch 'origin/ioncannon/quest_system' into Jorge/quest_system
# Conflicts: # Data/scripts/commands/EmoteSitCommand.lua - Resolved using Theirs
This commit is contained in:
commit
e94c037fb5
73 changed files with 1096 additions and 212 deletions
|
@ -1,17 +1,37 @@
|
|||
function init(npc)
|
||||
require("global");
|
||||
|
||||
--[[
|
||||
|
||||
PrivateAreaPastExit
|
||||
|
||||
This object contains the player inside a PrivateAreaPast, stopping them from escaping it's bounds. It is the
|
||||
object that generates the circle graphic on the minimap. This object always has two push triggers, an inner
|
||||
and outer inverted circle. The inner one is named "caution" and the outer one is named "exit". When the player
|
||||
leaves the inner circle a warning is shown and when they leave the outer circle they either leave the instance
|
||||
or get warped back to the center.
|
||||
|
||||
]]
|
||||
|
||||
function init(privAreaExit)
|
||||
return false, false, 0, 0;
|
||||
end
|
||||
|
||||
function onEventStarted(player, npc, eventType, eventName)
|
||||
function onEventStarted(player, privAreaExit, eventType, eventName)
|
||||
player:EndEvent();
|
||||
|
||||
if (eventName == "caution") then
|
||||
player:SendGameMessage(player, GetWorldMaster(), 34109, 0x20);
|
||||
player:SendGameMessage(player, GetWorldMaster(), 34109, MESSAGE_TYPE_SYSTEM); -- You are about to leave the instance.
|
||||
elseif (eventName == "exit") then
|
||||
local activeQuests = player:GetQuestsForNpc(npc);
|
||||
print(tostring(#activeQuests));
|
||||
if (#activeQuests >= 1) then
|
||||
activeQuests[1]:OnPush(player, npc, eventName);
|
||||
local area = privAreaExit.CurrentArea;
|
||||
if (area.IsPrivate()) then
|
||||
-- If you can leave, warp to public zone and show message.
|
||||
if (area.CanExitPrivateArea()) then
|
||||
player:SendGameMessage(player, GetWorldMaster(), 34110, MESSAGE_TYPE_SYSTEM); -- You have left the instance.
|
||||
GetWorldManager():WarpToPublicArea(player);
|
||||
-- Otherwise warp back to the center of the zone.
|
||||
else
|
||||
GetWorldManager():WarpToCharaPosition(player, privAreaExit);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue