mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2025-01-26 06:59:22 +03:00
190 lines
7.1 KiB
Lua
190 lines
7.1 KiB
Lua
require('Actor/ActorCommon')
|
|
local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
|
local Quest407 = class("Quest407", questActorProxy)
|
|
Quest407.defaultAlias = "Quest407"
|
|
|
|
local this = nil
|
|
local super = nil
|
|
local uActor = nil
|
|
local questID = 0
|
|
|
|
function Quest407:OnPreInit()
|
|
this = self
|
|
super = self.__super
|
|
questID = this.mainQuestID
|
|
super:OnPreInit()
|
|
end
|
|
function Quest407:OnPostInit()
|
|
uActor = self.uActor
|
|
super:OnPostInit()
|
|
end
|
|
|
|
-- local config begin
|
|
local q407Cfg = require('Actor/Quest/Q407/Q407Config')
|
|
local subIDs = q407Cfg.SubIDs
|
|
local JudgeData = q407Cfg.JudgeData
|
|
|
|
-- local config end
|
|
|
|
function Quest407:CreateUActor(alias)
|
|
local uActor = actorUtils.CreateActor(self, ActorType.QUEST_ACTOR, alias)
|
|
uActor = actorUtils.CreateQuestActor(questID, uActor)
|
|
return uActor
|
|
end
|
|
|
|
|
|
-- local method begin
|
|
local function CricketDestroy(i)
|
|
print("CricketDestroy" .. tostring(i))
|
|
globalActor:UnSpawn("Sound" .. tostring(i))
|
|
globalActor:UnSpawn("Cricket" .. tostring(i))
|
|
end
|
|
|
|
local function CricketStart(self, i)
|
|
print(i)
|
|
CricketDestroy(i)
|
|
math.randomseed(os.time())
|
|
if q407Cfg.GameRunning == true then
|
|
print("CricketStart" .. tostring(i))
|
|
local RandomHole = math.random(1, q407Cfg.HoleNum)
|
|
local RandomDuration = math.random(1, 4)
|
|
local RandomSound = math.random(1, 100)
|
|
local RandomDir = { x = 0, y = 0, z = 0 }
|
|
if RandomSound >= 1 and RandomSound < 20 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[1], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[1], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 20 and RandomSound < 30 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[1], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[2], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 30 and RandomSound < 40 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[1], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[3], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 40 and RandomSound < 50 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[2], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[1], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 50 and RandomSound < 60 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[2], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[3], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 60 and RandomSound < 70 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[2], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[4], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 70 and RandomSound < 80 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[3], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[1], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 80 and RandomSound < 87 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[3], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[4], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 87 and RandomSound < 93 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[3], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[5], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 93 and RandomSound < 97 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[4], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[1], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
elseif RandomSound >= 97 and RandomSound <= 100 then
|
|
globalActor:SpawnGadget(q407Cfg.SoundGadgetID[4], q407Cfg.HolePos[RandomHole], M.Dir2Euler(RandomDir), "Sound" .. tostring(i))
|
|
globalActor:SpawnItem(q407Cfg.CricketItemID[5], q407Cfg.HolePos[RandomHole], nil, "Cricket" .. tostring(i))
|
|
end
|
|
print("$$$$$$$$$$" .. tostring(i))
|
|
this:CallDelay(RandomDuration, CricketStart, i)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
local function CountDown()
|
|
print("CountDown Finished")
|
|
q407Cfg.GameRunning = false
|
|
for i=1, q407Cfg.CricketNum do
|
|
CricketDestroy(i)
|
|
end
|
|
if q407Cfg.GotCricket == false then
|
|
local quest = actorMgr:GetActor(q407Cfg.ActorAlias)
|
|
if quest ~= nil then
|
|
print("isFinished == false")
|
|
quest:FinishQuest(true, nil)
|
|
end
|
|
end
|
|
end
|
|
|
|
local function StartCount(actor)
|
|
print("StartCount")
|
|
this:CountDownUIStart(q407Cfg.MatchTime, 10, 3)
|
|
CricketStart(this, 1)
|
|
this:CallDelay(15, CricketStart, 2)
|
|
-- this:CallDelay(14, CricketStart, 3)
|
|
-- this:CallDelay(21, CricketStart, 4)
|
|
this:CallDelay(q407Cfg.MatchTime+4, CountDown)
|
|
end
|
|
|
|
local function OnStart40701(quest)
|
|
this:ActionSafeCall(
|
|
function (this)
|
|
actorMgr:CreateActorWithPos(JudgeData.Judge, JudgeData.JudgeScript, JudgeData.JudgeID, 0, JudgeData.JudgePos, JudgeData.JudgeDir, true, false)
|
|
end
|
|
)
|
|
end
|
|
|
|
local function OnStart40702(quest)
|
|
print("OnStart40702")
|
|
q407Cfg.GameRunning = true
|
|
q407Cfg.GotCricket = false
|
|
this:ActionSafeCall(StartCount)
|
|
end
|
|
|
|
local function OnFinished40702()
|
|
q407Cfg.GameRunning = false
|
|
q407Cfg.GotCricket = true
|
|
this:CountDownUITerminate()
|
|
this:UnCallFunc(CountDown)
|
|
this:UnCallFunc(CricketStart)
|
|
for i=1, q407Cfg.CricketNum do
|
|
CricketDestroy(i)
|
|
end
|
|
end
|
|
|
|
local function OnStart40705()
|
|
print("40705 start: fail the task")
|
|
local quest = actorMgr:GetActor(q407Cfg.ActorAlias)
|
|
if quest ~= nil then
|
|
quest:FinishQuest(true, nil)
|
|
end
|
|
end
|
|
|
|
|
|
-- local method end
|
|
|
|
function Quest407:OnMainStart(quest)
|
|
|
|
end
|
|
|
|
function Quest407:OnSubStart(quest)
|
|
local questID = quest.QuestId
|
|
if questID == subIDs.q40701 then
|
|
OnStart40701(quest)
|
|
elseif questID == subIDs.q40702 then
|
|
OnStart40702(quest)
|
|
elseif questID == subIDs.q40705 then
|
|
OnStart40705(quest)
|
|
end
|
|
end
|
|
|
|
function Quest407:OnSubFinished(quest)
|
|
local questID = quest.QuestId
|
|
if questID == subIDs.q40702 then
|
|
OnFinished40702(quest)
|
|
end
|
|
end
|
|
|
|
function Quest407:OnRewind(quest)
|
|
end
|
|
|
|
function Quest407:OnMainFinished(quest)
|
|
end
|
|
|
|
function Quest407:Start()
|
|
end
|
|
|
|
function Quest407:OnDestroy()
|
|
end
|
|
|
|
return Quest407 |