mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2025-03-13 21:54:43 +03:00
252 lines
9.6 KiB
Lua
252 lines
9.6 KiB
Lua
require('Actor/ActorCommon')
|
||
local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||
|
||
local Quest465 = class("Quest465", questActorProxy)
|
||
|
||
Quest465.defaultAlias = "Quest465"
|
||
|
||
local q465Cfg = require('Quest/Client/Q465ClientConfig')
|
||
local dilucData = q465Cfg.DilucData
|
||
local hoffmanData = q465Cfg.HoffmanData
|
||
local kaeyaData = q465Cfg.KaeyaData
|
||
local abyssWaterData = q465Cfg.AbyssWaterData
|
||
local SAN = 100
|
||
local ESCAPE = 0
|
||
local WIN = 0
|
||
|
||
-- Generated
|
||
function Quest465:OnSubStartHandlerBuild()
|
||
self.subStartHandlers = {}
|
||
self.subStartHandlers["46501"] = self.OnSubStart46501
|
||
self.subStartHandlers["46502"] = self.OnSubStart46502
|
||
self.subStartHandlers["46503"] = self.OnSubStart46503
|
||
self.subStartHandlers["46504"] = self.OnSubStart46504
|
||
self.subStartHandlers["46505"] = self.OnSubStart46505
|
||
self.subStartHandlers["46506"] = self.OnSubStart46506
|
||
self.subStartHandlers["46507"] = self.OnSubStart46507
|
||
self.subStartHandlers["46508"] = self.OnSubStart46508
|
||
self.subStartHandlers["46509"] = self.OnSubStart46509
|
||
self.subStartHandlers["46510"] = self.OnSubStart46510
|
||
self.subStartHandlers["46511"] = self.OnSubStart46511
|
||
self.subStartHandlers["46512"] = self.OnSubStart46512
|
||
self.subStartHandlers["46513"] = self.OnSubStart46513
|
||
self.subStartHandlers["46514"] = self.OnSubStart46514
|
||
self.subStartHandlers["46515"] = self.OnSubStart46515
|
||
end
|
||
|
||
function Quest465:OnSubFinishHandlerBuild()
|
||
self.subFinishHandlers = {}
|
||
self.subFinishHandlers["46501"] = self.OnSubFinish46501
|
||
self.subFinishHandlers["46502"] = self.OnSubFinish46502
|
||
self.subFinishHandlers["46503"] = self.OnSubFinish46503
|
||
self.subFinishHandlers["46504"] = self.OnSubFinish46504
|
||
self.subFinishHandlers["46505"] = self.OnSubFinish46505
|
||
self.subFinishHandlers["46506"] = self.OnSubFinish46506
|
||
self.subFinishHandlers["46507"] = self.OnSubFinish46507
|
||
self.subFinishHandlers["46508"] = self.OnSubFinish46508
|
||
self.subFinishHandlers["46509"] = self.OnSubFinish46509
|
||
self.subFinishHandlers["46510"] = self.OnSubFinish46510
|
||
self.subFinishHandlers["46511"] = self.OnSubFinish46511
|
||
self.subFinishHandlers["46512"] = self.OnSubFinish46512
|
||
self.subFinishHandlers["46513"] = self.OnSubFinish46513
|
||
self.subFinishHandlers["46514"] = self.OnSubFinish46514
|
||
self.subFinishHandlers["46515"] = self.OnSubFinish46515
|
||
self.subFinishHandlers["46516"] = self.OnSubFinish46516
|
||
self.subFinishHandlers["46517"] = self.OnSubFinish46517
|
||
self.subFinishHandlers["46518"] = self.OnSubFinish46518
|
||
self.subFinishHandlers["46519"] = self.OnSubFinish46519
|
||
end
|
||
|
||
-- local method begin
|
||
-- local method end
|
||
|
||
--@region sub start & finish handlers
|
||
function Quest465:OnSubFinish46502(quest)
|
||
print("46502 Finish: Creat NPC")
|
||
self:NarratorOnlyTask(self.clientData.NarratorData.Story1)
|
||
actorMgr:CreateActorWithPos(hoffmanData.Hoffman, hoffmanData.HoffmanScript, hoffmanData.HoffmanID, 0, hoffmanData.Pos1, hoffmanData.Dir1, true, false, 1004)
|
||
end
|
||
|
||
function Quest465:OnSubFinish46503(quest)
|
||
print("46503 Finish: Creat NPC")
|
||
self:NarratorOnlyTask(self.clientData.NarratorData.Story2)
|
||
actorMgr:CreateActorWithPos(dilucData.Diluc, dilucData.DilucScript, dilucData.DilucID, 0, dilucData.Pos1, dilucData.Dir1, true)
|
||
end
|
||
|
||
function Quest465:OnSubFinish46505(quest)
|
||
print("46505 Finish: Move NPC")
|
||
self:ActionSafeCall(self.Finish46505Do)
|
||
--actorMgr:CreateActorWithPos(dilucData.Diluc, dilucData.DilucScript, dilucData.DilucID, 0, dilucData.Pos2, dilucData.Dir2, true)
|
||
end
|
||
function Quest465:Finish46505Do(quest)
|
||
actorMgr:CreateActorWithPos(dilucData.Diluc, dilucData.DilucScript, dilucData.DilucID, 0, dilucData.Pos2, dilucData.Dir2, true)
|
||
end
|
||
|
||
function Quest465:OnSubFinish46507(quest)
|
||
print("46507 Finish: TempDungeon")
|
||
local TempDungeonData = self.clientData.TempDungeonData
|
||
globalActor:SpawnItem(TempDungeonData.TempDungeonID, TempDungeonData.TempDungeonPos,nil,"TempDungeonData")
|
||
end
|
||
|
||
function Quest465:OnSubFinish46508(quest)
|
||
print("46508 Finish: Monster")
|
||
self:SpawnMonster(22010201, 1, sceneData:GetDummyPoint(3,"Q465DilucDungeon").pos)
|
||
end
|
||
|
||
function Quest465:OnSubFinish46509(quest)
|
||
print("46509 Finish: NPC")
|
||
actorMgr:CreateActorWithPos(abyssWaterData.AbyssWater, abyssWaterData.AbyssWaterScript, abyssWaterData.AbyssWaterID, 0, abyssWaterData.Pos1, abyssWaterData.Dir1, true, false, 3)
|
||
end
|
||
function Quest465:InvokeOnInteraction(param)
|
||
if param == 1 then
|
||
print("SAN-10/30,ESCAPE+20")
|
||
self:SANMinusi()
|
||
-- self:ShowMessage("SAN:" .. SAN)
|
||
-- self:ShowMessage("ESCAPE:" .. ESCAPE)
|
||
elseif param == 2 then
|
||
print("SAN-30/60,ESCAPE+20")
|
||
self:SANMinusj()
|
||
-- self:ShowMessage("SAN:" .. SAN)
|
||
-- self:ShowMessage("ESCAPE:" .. ESCAPE)
|
||
elseif param == 3 then
|
||
print("SAN-0,ESCAPE+20")
|
||
self:SANMinusk()
|
||
-- self:ShowMessage("SAN:" .. SAN)
|
||
-- self:ShowMessage("ESCAPE:" .. ESCAPE)
|
||
end
|
||
end
|
||
function Quest465:SANMinusi()
|
||
local i = math.random(10,30)
|
||
SAN = SAN-i
|
||
ESCAPE = ESCAPE+20
|
||
WIN = 100 - SAN
|
||
self:PlayEffect("Eff_Diluc_FireCross_Aoe", abyssWaterData.Pos1)
|
||
local quest = actorMgr:GetActor(q465Cfg.ActorAlias)
|
||
if quest ~= nil and SAN<=0 then
|
||
quest:FinishQuestID(false, 46517)
|
||
|
||
local AbyssWater = actorMgr:GetActor("AbyssWater")
|
||
AbyssWater:DoFreeStyle(302)
|
||
self:ShowMessage("犯人晕过去了!")
|
||
elseif quest ~= nil and SAN>0 then
|
||
self:ESC()
|
||
end
|
||
end
|
||
function Quest465:SANMinusj()
|
||
local j = math.random(30,60)
|
||
SAN = SAN-j
|
||
ESCAPE = ESCAPE+20
|
||
WIN = 100 - SAN
|
||
self:PlayEffect("Eff_Diluc_FireCross_Aoe", abyssWaterData.Pos1)
|
||
local quest = actorMgr:GetActor(q465Cfg.ActorAlias)
|
||
if quest ~= nil and SAN<=0 then
|
||
quest:FinishQuestID(false, 46517)
|
||
|
||
local AbyssWater = actorMgr:GetActor("AbyssWater")
|
||
AbyssWater:DoFreeStyle(302)
|
||
self:ShowMessage("犯人晕过去了!")
|
||
elseif quest ~= nil and SAN>0 then
|
||
self:ESC()
|
||
end
|
||
end
|
||
function Quest465:SANMinusk()
|
||
SAN = SAN
|
||
ESCAPE = ESCAPE+20
|
||
WIN = 100 - SAN
|
||
local quest = actorMgr:GetActor(q465Cfg.ActorAlias)
|
||
if quest ~= nil and SAN<=0 then
|
||
quest:FinishQuestID(false, 46517)
|
||
|
||
local AbyssWater = actorMgr:GetActor("AbyssWater")
|
||
AbyssWater:DoFreeStyle(302)
|
||
self:ShowMessage("犯人晕过去了!")
|
||
elseif quest ~= nil and SAN>0 then
|
||
self:SUC()
|
||
end
|
||
end
|
||
function Quest465:ESC()
|
||
local esc = math.random(1,100)
|
||
local quest = actorMgr:GetActor(q465Cfg.ActorAlias)
|
||
if quest ~= nil and esc < ESCAPE then
|
||
self:ShowMessage("犯人要逃走了!" .. esc..ESCAPE)
|
||
quest:FinishQuestID(false, 46516)
|
||
else
|
||
self:ShowMessage("犯人尝试逃走,但失败了!")
|
||
self:ShowMessage("犯人坚强度%:" .. SAN)
|
||
self:ShowMessage("犯人逃跑概率%:" .. ESCAPE)
|
||
self:ShowMessage("拷问成功概率%:" .. WIN)
|
||
end
|
||
end
|
||
function Quest465:SUC()
|
||
local suc = math.random(1,100)
|
||
local quest = actorMgr:GetActor(q465Cfg.ActorAlias)
|
||
if quest ~= nil and suc > SAN then
|
||
self:ShowMessage("拷问成功!" .. suc)
|
||
quest:FinishQuestID(false, 46515)
|
||
else
|
||
self:ESC()
|
||
end
|
||
end
|
||
|
||
function Quest465:OnSubStart46510(quest)
|
||
print("46510 Start: Clear data")
|
||
actorMgr:CreateActorWithPos(abyssWaterData.AbyssWater, abyssWaterData.AbyssWaterScript, abyssWaterData.AbyssWaterID, 0, abyssWaterData.Pos1, abyssWaterData.Dir1, true, false, 3)
|
||
SAN = 100
|
||
ESCAPE = 0
|
||
WIN = 0
|
||
end
|
||
|
||
function Quest465:OnSubStart46514(quest)
|
||
print("46514 Start: Show UI")
|
||
self:ShowMessage("犯人坚强度%:" .. SAN)
|
||
self:ShowMessage("犯人逃跑概率%:" .. ESCAPE)
|
||
self:ShowMessage("拷问成功概率%:" .. WIN)
|
||
end
|
||
|
||
function Quest465:OnSubFinish46518(quest)
|
||
print("46516 Finish: prisoner disappear")
|
||
self:ActionSafeCall(
|
||
function(self)
|
||
local AbyssWater = actorMgr:GetActor("AbyssWater")
|
||
if AbyssWater ~= nil then
|
||
AbyssWater:Destroy(false)
|
||
end
|
||
end
|
||
)
|
||
end
|
||
|
||
|
||
function Quest465:OnSubFinish46514(quest)
|
||
print("46514 Finish: Hide NPC")
|
||
self:ActionSafeCall(self.Finish46514Do)
|
||
--actorMgr:CreateActorWithPos(dilucData.Diluc, dilucData.DilucScript, dilucData.DilucID, 0, dilucData.hiddenPos, dilucData.hiddenDir, true)
|
||
end
|
||
function Quest465:Finish46514Do(quest)
|
||
actorMgr:CreateActorWithPos(abyssWaterData.AbyssWater, abyssWaterData.AbyssWaterScript, abyssWaterData.AbyssWaterID, 0, abyssWaterData.hiddenPos, abyssWaterData.hiddenDir, true, false, 3)
|
||
actorMgr:CreateActorWithPos(dilucData.Diluc, dilucData.DilucScript, dilucData.DilucID, 0, dilucData.hiddenPos, dilucData.hiddenDir, true)
|
||
local TempDungeonData = self.clientData.TempDungeonData
|
||
globalActor:SpawnItem(TempDungeonData.TempDungeonID, TempDungeonData.TempDungeonPos,nil,"TempDungeonData")
|
||
end
|
||
|
||
function Quest465:OnSubFinish46512(quest)
|
||
print("46512 Finish: Creat NPC")
|
||
actorMgr:CreateActorWithPos(hoffmanData.Hoffman, hoffmanData.HoffmanScript, hoffmanData.HoffmanID, 0, hoffmanData.Pos1, hoffmanData.Dir1, true, false, 1004)
|
||
end
|
||
|
||
function Quest465:OnSubFinish46513(quest)
|
||
print("46513 Finish: Hide NPC")
|
||
self:ActionSafeCall(self.Finish46513Do)
|
||
--actorMgr:CreateActorWithPos(hoffmanData.Hoffman, hoffmanData.HoffmanScript, hoffmanData.HoffmanID, 0, hoffmanData.hiddenPos, hoffmanData.hiddenDir, true)
|
||
end
|
||
function Quest465:Finish46513Do(quest)
|
||
actorMgr:CreateActorWithPos(hoffmanData.Hoffman, hoffmanData.HoffmanScript, hoffmanData.HoffmanID, 0, hoffmanData.hiddenPos, hoffmanData.hiddenDir, true)
|
||
end
|
||
--@endregion
|
||
|
||
function Quest465:Start()
|
||
end
|
||
|
||
function Quest465:OnDestroy()
|
||
end
|
||
|
||
return Quest465 |