mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2025-01-26 06:59:22 +03:00
254 lines
8.8 KiB
Lua
254 lines
8.8 KiB
Lua
require('Actor/ActorCommon')
|
|
local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
|
|
|
local Quest301 = class("Quest301", questActorProxy)
|
|
|
|
Quest301.defaultAlias = "Quest301"
|
|
|
|
local this = nil
|
|
local super = nil
|
|
local uActor = nil
|
|
local questID = 0
|
|
|
|
function Quest301:OnPreInit()
|
|
this = self
|
|
super = self.__super
|
|
questID = this.mainQuestID
|
|
super:OnPreInit()
|
|
end
|
|
function Quest301:OnPostInit()
|
|
uActor = self.uActor
|
|
super:OnPostInit()
|
|
end
|
|
|
|
-- local config begin
|
|
local q301Cfg = require('Actor/Quest/Q301/Config/Q301Config')
|
|
local subIDs = q301Cfg.SubIDs
|
|
local wendyData = q301Cfg.WendyData
|
|
local gaiaData = q301Cfg.GaiaData
|
|
local robamData = q301Cfg.RobamData
|
|
local amborData = q301Cfg.AmborData
|
|
local extrasData = q301Cfg.ExtrasData
|
|
local monsterData = q301Cfg.MonsterData
|
|
local meiData = q301Cfg.MeiData
|
|
local testData = q301Cfg.TestData
|
|
-- local config end
|
|
|
|
function Quest301:CreateUActor(alias)
|
|
local uActor = actorUtils.CreateActor(self, ActorType.QUEST_ACTOR, alias)
|
|
uActor = actorUtils.CreateQuestActor(questID, uActor)
|
|
return uActor
|
|
end
|
|
|
|
-- local param begin
|
|
-- local param end
|
|
|
|
-- local method begin
|
|
local function OnStart30100()
|
|
--print("30101 start: show begin")
|
|
local wendy = actorMgr:CreateActorWithPos(wendyData.Wendy, wendyData.WendyScript, wendyData.WendyID, 0, wendyData.bornPos, wendyData.bornDir, true, false)
|
|
local robam = actorMgr:CreateActorWithPos(robamData.Robam, robamData.RobamScript, robamData.RobamID, 0, robamData.arguePos, robamData.argueDir, true, false)
|
|
robam:UnregisterSelfDayTime(robam.StartDay)
|
|
robam:UnregisterSelfNightTime(robam.StartNight)
|
|
for i=1, #extrasData.ExtrasIDs do
|
|
local extras = actorMgr:CreateActorWithPos(extrasData.Extras .. tostring(i), extrasData.ExtrasAudience, extrasData.ExtrasIDs[i], i, extrasData.ExtrasSeatPos[i], extrasData.ExtrasSeatDir[i], true, false)
|
|
extras:UnregisterSelfDayTime(extras.StartDay)
|
|
extras:UnregisterSelfNightTime(extras.StartNight)
|
|
extras:UnregisterSelfWeatherChange(extras.OnWeather)
|
|
-- extras.seatPos = extrasData.ExtrasSeatPos[i]
|
|
-- extras.seatDir = extrasData.ExtrasSeatDir[i]
|
|
-- extras.bornPos = extrasData.ExtrasOriginPos[i]
|
|
-- extras.bornDir = extrasData.ExtrasOriginDir[i]
|
|
-- extras.returnCallback = extrasData.ExtrasReturnCallback[i]
|
|
-- extras.extrasIndex = i
|
|
end
|
|
end
|
|
local function OnFinished30100()
|
|
-- globalActor:StopLocalAvatar()
|
|
-- this:PlayCutscene(q301Cfg.Mq1TimeCfg)
|
|
end
|
|
|
|
local function OnStart30101()
|
|
--print("30101 start: show begin")
|
|
local wendy = actorMgr:CreateActorWithPos(wendyData.Wendy, wendyData.WendyScript, wendyData.WendyID, 0, wendyData.bornPos, wendyData.bornDir, true, false)
|
|
wendy:StartDance()
|
|
wendy:CallDelay(10, wendy.FinishDance)
|
|
-- local robam = actorMgr:CreateActorWithPos(robamData.Robam, robamData.RobamScript, robamData.RobamID, 0, robamData.arguePos, robamData.argueDir, true, false)
|
|
-- robam:ShowStart()
|
|
local ambor = actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.bornPos, amborData.bornDir, true, false)
|
|
ambor:ShowStart()
|
|
-- for i=1, #extrasData.ExtrasIDs do
|
|
-- local extras = actorMgr:CreateActorWithPos(extrasData.Extras .. tostring(i), extrasData.ExtrasAudience, extrasData.ExtrasIDs[i], i, extrasData.ExtrasOriginPos[i], extrasData.ExtrasOriginDir[i], true, false)
|
|
-- extras:ShowStart()
|
|
-- -- extras.seatPos = extrasData.ExtrasSeatPos[i]
|
|
-- -- extras.seatDir = extrasData.ExtrasSeatDir[i]
|
|
-- -- extras.bornPos = extrasData.ExtrasOriginPos[i]
|
|
-- -- extras.bornDir = extrasData.ExtrasOriginDir[i]
|
|
-- -- extras.returnCallback = extrasData.ExtrasReturnCallback[i]
|
|
-- -- extras.extrasIndex = i
|
|
-- end
|
|
end
|
|
|
|
local function OnFinished30101()
|
|
--print("30101 finish: show begin")
|
|
for i=1, #extrasData.ExtrasIDs do
|
|
local extras = actorMgr:GetActor(extrasData.Extras .. tostring(i))
|
|
extras:StartDaily()
|
|
end
|
|
end
|
|
|
|
local function OnStart30105()
|
|
--print("30105 start: Wendy escape")
|
|
local wendy = actorMgr:GetActor(wendyData.Wendy)
|
|
wendy:Escape()
|
|
end
|
|
|
|
local function OnStart30107()
|
|
--print("30107 start: Gaia appear")
|
|
local gaia = actorMgr:CreateActorWithPos(gaiaData.Gaia, gaiaData.GaiaScript, gaiaData.GaiaID, 0, gaiaData.bornPos, gaiaData.bornDir, true, false)
|
|
gaia:Show()
|
|
-- globalActor:ChangeWeather ("Storm")
|
|
end
|
|
local function OnStart30109()
|
|
--print("30109 start: Gaia follow")
|
|
local gaia = actorMgr:GetActor(gaiaData.Gaia)
|
|
gaia:StartBeFollow1()
|
|
local robam = actorMgr:GetActor(robamData.Robam)
|
|
robam:StartDaily()
|
|
end
|
|
local function OnStart30111()
|
|
--print("30111 start: Gaia follow")
|
|
local gaia = actorMgr:GetActor(gaiaData.Gaia)
|
|
gaia:StartBeFollow2()
|
|
end
|
|
local function OnStart30113()
|
|
--print("30113 start: Gaia follow")
|
|
local gaia = actorMgr:GetActor(gaiaData.Gaia)
|
|
gaia:StartBeFollow5()
|
|
end
|
|
local function OnStart30115()
|
|
--print("30115 start: Spawn Monsters")
|
|
local avatarPos = actorUtils.GetAvatarPos()
|
|
for i=1, #monsterData.MonsterIDs do
|
|
local monsterID = monsterData.MonsterIDs[i]
|
|
local xRand = math.random(-2, 2)
|
|
local zRand = math.random(-2, 2)
|
|
local bornPos = avatarPos
|
|
bornPos.x = bornPos.x + xRand;
|
|
bornPos.z = bornPos.z + zRand;
|
|
this:SpawnMonster(monsterID, 1, bornPos)
|
|
end
|
|
end
|
|
local function OnStart30117()
|
|
--print("30117 start: Gaia follow")
|
|
local gaia = actorMgr:GetActor(gaiaData.Gaia)
|
|
gaia:StartBeFollow6()
|
|
end
|
|
|
|
local function OnRewind30101()
|
|
print("30104 rewind: Show Start")
|
|
local wendy = actorMgr:CreateActorWithPos(wendyData.Wendy, wendyData.WendyScript, wendyData.WendyID, 0, wendyData.bornPos, wendyData.bornDir, true, false)
|
|
local robam = actorMgr:CreateActorWithPos(robamData.Robam, robamData.RobamScript, robamData.RobamID, 0, robamData.arguePos, robamData.argueDir, true, false)
|
|
robam:UnregisterSelfDayTime(robam.StartDay)
|
|
robam:UnregisterSelfNightTime(robam.StartNight)
|
|
for i=1, #extrasData.ExtrasIDs do
|
|
local extras = actorMgr:CreateActorWithPos(extrasData.Extras .. tostring(i), extrasData.ExtrasAudience, extrasData.ExtrasIDs[i], i, extrasData.ExtrasSeatPos[i], extrasData.ExtrasSeatDir[i], true, false)
|
|
extras:UnregisterSelfDayTime(extras.StartDay)
|
|
extras:UnregisterSelfNightTime(extras.StartNight)
|
|
extras:UnregisterSelfWeatherChange(extras.OnWeather)
|
|
end
|
|
end
|
|
|
|
local function OnRewind30104()
|
|
print("30104 rewind: before Wendy run")
|
|
actorMgr:CreateActorWithPos(wendyData.Wendy, wendyData.WendyScript, wendyData.WendyID, 0, wendyData.bornPos, wendyData.bornDir, true, false)
|
|
actorMgr:CreateActorWithPos(robamData.Robam, robamData.RobamScript, robamData.RobamID, 0, robamData.arguePos, robamData.argueDir, true, false)
|
|
actorMgr:CreateActorWithPos(amborData.Ambor, amborData.AmborScript, amborData.AmborID, 0, amborData.arguePos, amborData.argueDir, true,false)
|
|
end
|
|
|
|
local function OnRewind30108()
|
|
print("30108 rewind: before follow Gaia")
|
|
actorMgr:CreateActorWithPos(robamData.Robam, robamData.RobamScript, robamData.RobamID, 0, robamData.arguePos, robamData.argueDir, true, false)
|
|
actorMgr:CreateActorWithPos(gaiaData.Gaia, gaiaData.GaiaScript, gaiaData.GaiaID, 0, gaiaData.showPos, gaiaData.showDir, true, false)
|
|
-- globalActor:ChangeWeather ("Storm")
|
|
end
|
|
-- local method end
|
|
function Quest301:OnMainStart(quest)
|
|
end
|
|
|
|
function Quest301:OnSubStart(quest)
|
|
--print("sub start 301 " .. tostring(quest.QuestId))
|
|
local questID = quest.QuestId
|
|
if questID == subIDs.q30101 then
|
|
OnStart30101()
|
|
elseif questID == subIDs.q30105 then
|
|
OnStart30105()
|
|
elseif questID == subIDs.q30107 then
|
|
OnStart30107()
|
|
elseif questID == subIDs.q30109 then
|
|
OnStart30109()
|
|
elseif questID == subIDs.q30111 then
|
|
OnStart30111()
|
|
elseif questID == subIDs.q30113 then
|
|
OnStart30113()
|
|
elseif questID == subIDs.q30115 then
|
|
OnStart30115()
|
|
elseif questID == subIDs.q30117 then
|
|
OnStart30117()
|
|
elseif questID == subIDs.q30119 then
|
|
OnStart30119()
|
|
elseif questID == subIDs.q30100 then
|
|
OnStart30100()
|
|
end
|
|
end
|
|
|
|
function Quest301:OnSubFinished(quest)
|
|
--print("sub finished 31 " .. tostring(quest.QuestId))
|
|
local questID = quest.QuestId
|
|
if questID == subIDs.q30100 then
|
|
OnFinished30100()
|
|
elseif questID == subIDs.q30101 then
|
|
OnFinished30101()
|
|
end
|
|
end
|
|
|
|
function Quest301:OnRewind(quest)
|
|
--print("sub rewind 301 " .. tostring(quest.QuestId))
|
|
local questID = quest.QuestId
|
|
if questID == subIDs.q30104 then
|
|
OnRewind30104()
|
|
elseif questID == subIDs.q30108 then
|
|
OnRewind30108()
|
|
elseif questID == subIDs.q30101 then
|
|
OnRewind30101()
|
|
end
|
|
end
|
|
|
|
function Quest301:OnMainFinished(quest)
|
|
--print("main finished 301 " .. tostring(quest.QuestMainId))
|
|
end
|
|
|
|
function Quest301:Start()
|
|
--print("here 301 quest start")
|
|
end
|
|
|
|
function Quest301:OnDestroy()
|
|
-- local wendy = actorMgr:GetActor(wendyData.Wendy)
|
|
-- if wendy ~= nil then
|
|
-- wendy:Destroy(false)
|
|
-- end
|
|
-- local gaia = actorMgr:GetActor(gaiaData.Gaia)
|
|
-- if gaia ~= nil then
|
|
-- gaia:Destroy(false)
|
|
-- end
|
|
-- local robam = actorMgr:GetActor(robamData.Robam)
|
|
-- if robam ~= nil then
|
|
-- robam:Destroy(false)
|
|
-- end
|
|
-- local amber = actorMgr:GetActor(amborData.Ambor)
|
|
-- if amber ~= nil then
|
|
-- amber:Destroy(false)
|
|
-- end
|
|
end
|
|
|
|
return Quest301 |