mirror of
https://gitlab.com/YuukiPS/GSServer-CBT.git
synced 2025-08-02 09:50:11 +03:00
melon
This commit is contained in:
27
soggy_resources/lua/Actor/ActorCommon.lua
Normal file
27
soggy_resources/lua/Actor/ActorCommon.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
---Actor全局通用参数
|
||||
-- @module ActorCommon
|
||||
common = common or require('Base/Common')
|
||||
require('Config/DefineCommon')
|
||||
|
||||
sceneData = sceneData or require('Base/SceneData')
|
||||
currSceneData = nil
|
||||
|
||||
actorData = actorData or require('Actor/ActorData')
|
||||
|
||||
actorMgr = actorMgr or require('Actor/ActorManager')
|
||||
|
||||
actorUtils = CS.MoleMole.ActorUtils
|
||||
|
||||
luaTaskUtils = CS.MoleMole.LuaTaskUtils
|
||||
|
||||
curtainUtils = CS.MoleMole.CurtainUtils
|
||||
|
||||
campHelper = CS.MoleMole.CampHelper
|
||||
|
||||
gadgetFactory = gadgetFactory or require('Actor/Gadget/GadgetFactory')
|
||||
|
||||
globalActor = nil
|
||||
|
||||
globalCfg = globalCfg or require('Actor/GlobalActorConfig')
|
||||
|
||||
npcMode = npcMode or require('Actor/Npc/NpcMode/NpcModeType')
|
68
soggy_resources/lua/Actor/ActorData.lua
Normal file
68
soggy_resources/lua/Actor/ActorData.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
----------------------
|
||||
-- 这是Lua端ActorData,包含了创建和管理Actor所使用的数据的接口
|
||||
-- @module ActorData
|
||||
local ActorData = {}
|
||||
|
||||
function ActorData:GetByNpcRewindData(data)
|
||||
local sceneID = data.scene_id
|
||||
if sceneID == nil then
|
||||
sceneID = sceneData.DefaultSceneID
|
||||
end
|
||||
|
||||
local roomID = data.room_id or 0
|
||||
|
||||
local dummyPoint = sceneData:GetDummyPoint(sceneID, data.pos)
|
||||
if dummyPoint == nil then
|
||||
print("Dummy Point " .. data.pos .. " is nil")
|
||||
return
|
||||
end
|
||||
|
||||
local actorData = {
|
||||
alias = data.alias,
|
||||
metaPath = data.script,
|
||||
configID = data.id,
|
||||
dataIndex = data.data_index,
|
||||
bornPos = dummyPoint.pos,
|
||||
bornEuler = dummyPoint.rot,
|
||||
isNetwork = true,
|
||||
isAutoStart = true,
|
||||
sceneID = sceneID,
|
||||
roomID = roomID,
|
||||
noPerform = false,
|
||||
}
|
||||
|
||||
return actorData
|
||||
end
|
||||
|
||||
function ActorData:GetByGadgetRewindData(data)
|
||||
local sceneID = data.scene_id
|
||||
if sceneID == nil then
|
||||
sceneID = sceneData.DefaultSceneID
|
||||
end
|
||||
|
||||
local roomID = data.room_id or 0
|
||||
|
||||
local dummyPoint = sceneData:GetDummyPoint(sceneID, data.pos)
|
||||
if dummyPoint == nil then
|
||||
print("Dummy Point " .. data.pos .. " is nil")
|
||||
return
|
||||
end
|
||||
|
||||
local actorData = {
|
||||
alias = data.alias,
|
||||
metaPath = data.script,
|
||||
configID = data.id,
|
||||
dataIndex = data.data_index,
|
||||
bornPos = dummyPoint.pos,
|
||||
bornEuler = dummyPoint.rot,
|
||||
isNetwork = false,
|
||||
isAutoStart = false,
|
||||
sceneID = sceneID,
|
||||
roomID = roomID,
|
||||
noPerform = false,
|
||||
}
|
||||
|
||||
return actorData
|
||||
end
|
||||
|
||||
return ActorData
|
497
soggy_resources/lua/Actor/ActorManager.lua
Normal file
497
soggy_resources/lua/Actor/ActorManager.lua
Normal file
@@ -0,0 +1,497 @@
|
||||
----------------------
|
||||
-- 这是Lua端ActorManager,包含了创建和管理Actor的方法,可通关全局唯一的引用actorMgr访问
|
||||
-- @module ActorManager
|
||||
local ActorManager = {}
|
||||
|
||||
ActorManager.ActorDic = {}
|
||||
ActorManager.Alias2EntityIDDic = {}
|
||||
|
||||
ActorManager.dummyActor = require('Actor/DummyActorProxy')
|
||||
ActorManager.tempDefaultAlias = "Temp"
|
||||
|
||||
ActorManager.OnTest1 = function()
|
||||
print("Test1")
|
||||
actorMgr:CreateActor(actorMgr, "test", "Actor/Npc/Npc001Test")
|
||||
end
|
||||
|
||||
ActorManager.OnTest2 = function()
|
||||
print("Test2")
|
||||
local actor = actorMgr:GetActor("test")
|
||||
if actor ~= nil then
|
||||
actor:Test()
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.OnTest3 = function()
|
||||
print("Test3")
|
||||
end
|
||||
|
||||
ActorManager.InitGlobal = function()
|
||||
print("Actor Manager Init")
|
||||
globalActor = actorMgr:CreateActor("global", "Actor/GlobalActorProxy")
|
||||
end
|
||||
|
||||
ActorManager.InitSubGlobal = function()
|
||||
for i = 1, #globalCfg.initSubActors do
|
||||
local subGActorCfg = globalCfg.initSubActors[i]
|
||||
if subGActorCfg ~= nil and subGActorCfg.alias ~= nil and subGActorCfg.metaPath ~= nil then
|
||||
actorMgr:CreateActor(subGActorCfg.alias, subGActorCfg.metaPath)
|
||||
end
|
||||
end
|
||||
for i = 1, #globalCfg.initAddSubActors do
|
||||
local subGActorCfg = globalCfg.initAddSubActors[i]
|
||||
if subGActorCfg ~= nil and subGActorCfg.alias ~= nil and subGActorCfg.metaPath ~= nil then
|
||||
actorMgr:CreateActor(subGActorCfg.alias, subGActorCfg.metaPath)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.RegisteSubGlobal = function(self, inputAlias, inputPath)
|
||||
for i = 1, #globalCfg.initAddSubActors do
|
||||
local subGActorCfg = globalCfg.initAddSubActors[i]
|
||||
if subGActorCfg ~= nil and subGActorCfg.alias == inputAlias then
|
||||
return
|
||||
end
|
||||
end
|
||||
local subGActorCfg = {
|
||||
alias = inputAlias,
|
||||
metaPath = inputPath,
|
||||
}
|
||||
globalCfg.initAddSubActors[#globalCfg.initAddSubActors + 1] = subGActorCfg
|
||||
if subGActorCfg ~= nil and subGActorCfg.alias ~= nil and subGActorCfg.metaPath ~= nil then
|
||||
actorMgr:CreateActor(subGActorCfg.alias, subGActorCfg.metaPath)
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.UnregisteSubGlobal = function(self, alias)
|
||||
for i = 1, #globalCfg.initAddSubActors do
|
||||
local subGActorCfg = globalCfg.initAddSubActors[i]
|
||||
if subGActorCfg ~= nil and subGActorCfg.alias == alias then
|
||||
globalCfg.initAddSubActors[i] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- actorMgr 创建一个Actor,一般actor已有在c#端的核心实例
|
||||
-- @param self ActorManager实例本身
|
||||
-- @tparam string alias 指定的别名
|
||||
-- @tparam string metaPath 脚本路径
|
||||
-- @tparam bool isAutoStart 是否自动开始
|
||||
ActorManager.CreateActor = function(self, alias, metaPath, isAutoStart)
|
||||
print("create actor called " .. tostring(alias))
|
||||
print(tostring(metaPath))
|
||||
|
||||
local actor = ActorManager.GetActorInternal(self, alias)
|
||||
|
||||
if actor == nil then
|
||||
local metaActor = require(metaPath)
|
||||
actor = metaActor:new()
|
||||
actor.metaPath = metaPath
|
||||
actor:OnPreInit()
|
||||
if alias == nil or alias == '' then
|
||||
alias = actor.defaultAlias
|
||||
end
|
||||
ActorManager.ActorDic[alias] = actor
|
||||
actor:OnInit(alias)
|
||||
actor:OnPostInit()
|
||||
end
|
||||
|
||||
if isAutoStart == nil then
|
||||
isAutoStart = true
|
||||
end
|
||||
|
||||
if isAutoStart then
|
||||
actor:Start()
|
||||
end
|
||||
|
||||
return actor
|
||||
end
|
||||
--- actorMgr 创建一个Actor,包含出身点,一般用于创建EntityActor
|
||||
-- @param self ActorManager实例本身
|
||||
-- @tparam string alias 指定的别名
|
||||
-- @tparam string metaPath 脚本路径
|
||||
-- @tparam uint configID 配置ID
|
||||
-- @tparam uint dataIndex 数据索引
|
||||
-- @tparam Vector3 bornPos 出生点
|
||||
-- @tparam Vector3 bornDir 出生朝向(euler
|
||||
-- @tparam bool isNetwork 是否服务器参与,一般用于需要移动很远、任务交互等的NPC
|
||||
-- @tparam bool isAutoStart 是否自动开始
|
||||
-- @tparam uint sceneID 场景ID,默认大世界3
|
||||
ActorManager.CreateActorWithPos = function(self, alias, metaPath, configID, dataIndex, bornPos, bornDir,
|
||||
isNetwork, isAutoStart, sceneID, noPerform, roomID)
|
||||
if sceneID == nil then
|
||||
sceneID = sceneData.DefaultSceneID
|
||||
end
|
||||
|
||||
if roomID == nil then
|
||||
if sceneID == 3 then
|
||||
roomID = 0
|
||||
else roomID = 1
|
||||
end
|
||||
end
|
||||
|
||||
if sceneID ~= sceneData.currSceneID and sceneData.currSceneID ~= 1001 then
|
||||
if isNetwork and sceneData.currSceneID ~= -1 then
|
||||
actorUtils.NotifyActorPreCreate(alias)
|
||||
local metaActor = require(metaPath)
|
||||
actorUtils.NotifyActorCreate(metaActor.actorType, alias, metaPath, configID, bornPos, bornDir,
|
||||
sceneID, roomID)
|
||||
end
|
||||
self.dummyActor.alias = alias
|
||||
return self.dummyActor
|
||||
end
|
||||
|
||||
if noPerform == nil then
|
||||
noPerform = true
|
||||
end
|
||||
|
||||
print("create actor called " .. tostring(alias))
|
||||
print(tostring(metaPath))
|
||||
local actor = ActorManager.GetActorInternal(self, alias)
|
||||
if actor ~= nil and actor:IsValid() ~= true then
|
||||
ActorManager.ClearActor(self, alias)
|
||||
actor = nil
|
||||
end
|
||||
|
||||
if actor ~= nil then
|
||||
if actor.defaultAlias == ActorManager.tempDefaultAlias then
|
||||
local metaActor = require(metaPath)
|
||||
if metaActor.defaultAlias ~= actor.defaultAlias then
|
||||
ActorManager.ClearActor(self, alias)
|
||||
actor = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if actor == nil then
|
||||
actorUtils.NotifyActorPreCreate(alias)
|
||||
local metaActor = require(metaPath)
|
||||
actor = metaActor:new()
|
||||
actor.configID = configID
|
||||
actor.dataIndex = dataIndex
|
||||
actor.bornSceneID = sceneID
|
||||
actor.bornRoomID = roomID
|
||||
actor.bornPos = bornPos
|
||||
actor.bornDir = bornDir
|
||||
actor.isNetwork = isNetwork
|
||||
actor.isAutoStart = true
|
||||
actor.dontDestroyOnClear = false
|
||||
if isAutoStart ~= nil then
|
||||
actor.isAutoStart = isAutoStart
|
||||
end
|
||||
local preAlias = actor:PreGetAlias()
|
||||
actor:OnPreInit()
|
||||
if alias == nil or alias == '' then
|
||||
if preAlias ~= nil then
|
||||
alias = preAlias
|
||||
else
|
||||
alias = actor.defaultAlias
|
||||
end
|
||||
end
|
||||
actor.alias = alias
|
||||
actor.metaPath = metaPath
|
||||
ActorManager.ActorDic[alias] = actor
|
||||
actor:OnInit(alias)
|
||||
if actor.uActor == nil then
|
||||
ActorManager.ActorDic[alias] = nil
|
||||
self.dummyActor.alias = alias
|
||||
return self.dummyActor
|
||||
else
|
||||
actor:OnPostInit()
|
||||
if actor.CheckShow ~= nil then
|
||||
actor:CheckShow()
|
||||
end
|
||||
end
|
||||
else
|
||||
actorUtils.NotifyActorPreCreate(alias)
|
||||
local metaActor = require(metaPath)
|
||||
actor:ClearAllTask()
|
||||
actor.bornSceneID = sceneID
|
||||
actor.bornRoomID = roomID
|
||||
if actor.SetPosAndTurnTo ~= nil then
|
||||
actor:SetPosAndTurnTo(bornPos, M.Euler2DirXZ(bornDir), noPerform)
|
||||
else
|
||||
if actor.SetPos ~= nil then
|
||||
actor:SetPos(bornPos, noPerform)
|
||||
end
|
||||
if actor.TurnTo ~= nil then
|
||||
actor:TurnTo(M.Euler2DirXZ(bornDir))
|
||||
end
|
||||
end
|
||||
if actor.CheckShow ~= nil then
|
||||
actor:CheckShow()
|
||||
end
|
||||
actor:ClearActor()
|
||||
if actor.SyncPos ~= nil then
|
||||
actor:SyncPos(0)
|
||||
actorUtils.NotifyActorCreateSoft(metaActor.actorType, alias, metaPath, configID, bornPos, bornDir,
|
||||
sceneID, roomID)
|
||||
end
|
||||
if isAutoStart then
|
||||
actor:Start()
|
||||
end
|
||||
end
|
||||
return actor
|
||||
end
|
||||
--- actorMgr 通过ActorInfoData创建一个Actor
|
||||
-- @param self ActorManager实例本身
|
||||
-- @tparam ActorInfoData data 创建Actor需要的数据
|
||||
ActorManager.CreateActorWithData = function(self, data)
|
||||
local sceneID = data.sceneID
|
||||
if sceneID == -1 and sceneID == nil then
|
||||
sceneID = sceneData.DefaultSceneID
|
||||
end
|
||||
local roomID = data.roomID
|
||||
if roomID == nil then
|
||||
roomID = 0
|
||||
end
|
||||
|
||||
local alias = data.alias
|
||||
local metaPath = data.metaPath
|
||||
local configID = data.configID
|
||||
local dataIndex = data.dataIndex
|
||||
local bornPos = data.bornPos
|
||||
local bornDir = data.bornEuler
|
||||
local isNetwork = data.isNetwork
|
||||
local isAutoStart = data.isAutoStart
|
||||
local isCheckHide = data.checkHide
|
||||
local dontDestroyOnClear = data.dontDestroyOnClear
|
||||
|
||||
if sceneID ~= sceneData.currSceneID and sceneData.currSceneID ~= 1001 then
|
||||
if isNetwork and sceneData.currSceneID ~= -1 then
|
||||
actorUtils.NotifyActorPreCreate(alias)
|
||||
local metaActor = require(metaPath)
|
||||
actorUtils.NotifyActorCreate(metaActor.actorType, alias, metaPath, configID, bornPos, bornDir,
|
||||
sceneID, roomID)
|
||||
end
|
||||
self.dummyActor.alias = alias
|
||||
return self.dummyActor
|
||||
end
|
||||
|
||||
local noPerform = data.noPerform
|
||||
if noPerform == nil then
|
||||
noPerform = true
|
||||
end
|
||||
|
||||
local actor = ActorManager.GetActorInternal(self, alias)
|
||||
if actor ~= nil and actor:IsValid() ~= true then
|
||||
ActorManager.ClearActor(self, alias)
|
||||
actor = nil
|
||||
end
|
||||
|
||||
if actor ~= nil then
|
||||
if actor.defaultAlias == ActorManager.tempDefaultAlias then
|
||||
local metaActor = require(metaPath)
|
||||
if metaActor.defaultAlias ~= actor.defaultAlias then
|
||||
ActorManager.ClearActor(self, alias)
|
||||
actor = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if actor == nil then
|
||||
actorUtils.NotifyActorPreCreate(alias)
|
||||
local metaActor = require(metaPath)
|
||||
actor = metaActor:new()
|
||||
actor.configID = configID
|
||||
actor.dataIndex = dataIndex
|
||||
actor.bornSceneID = sceneID
|
||||
actor.bornRoomID = roomID
|
||||
actor.bornPos = bornPos
|
||||
actor.bornDir = bornDir
|
||||
actor.isNetwork = isNetwork
|
||||
actor.isAutoStart = true
|
||||
actor.actorData = data
|
||||
actor.dontDestroyOnClear = dontDestroyOnClear
|
||||
if isAutoStart ~= nil then
|
||||
actor.isAutoStart = isAutoStart
|
||||
end
|
||||
local preAlias = actor:PreGetAlias()
|
||||
actor:OnPreInit()
|
||||
if alias == nil or alias == '' then
|
||||
if preAlias ~= nil then
|
||||
alias = preAlias
|
||||
else
|
||||
alias = actor.defaultAlias
|
||||
end
|
||||
end
|
||||
actor.alias = alias
|
||||
actor.metaPath = metaPath
|
||||
ActorManager.ActorDic[alias] = actor
|
||||
actor:OnInit(alias)
|
||||
if actor.uActor == nil then
|
||||
ActorManager.ActorDic[alias] = nil
|
||||
self.dummyActor.alias = alias
|
||||
return self.dummyActor
|
||||
else
|
||||
actor:OnPostInit()
|
||||
if not isCheckHide then
|
||||
if actor.CheckShow ~= nil then
|
||||
actor:CheckShow()
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
actorUtils.NotifyActorPreCreate(alias)
|
||||
actor:ClearAllTask()
|
||||
actor.bornSceneID = sceneID
|
||||
actor.bornRoomID = roomID
|
||||
if actor.SetPosAndTurnTo ~= nil then
|
||||
actor:SetPosAndTurnTo(bornPos, M.Euler2DirXZ(bornDir), noPerform)
|
||||
else
|
||||
if actor.SetPos ~= nil then
|
||||
actor:SetPos(bornPos, noPerform)
|
||||
end
|
||||
if actor.TurnTo ~= nil then
|
||||
actor:TurnTo(M.Euler2DirXZ(bornDir))
|
||||
end
|
||||
end
|
||||
if not isCheckHide then
|
||||
if actor.CheckShow ~= nil then
|
||||
actor:CheckShow()
|
||||
end
|
||||
end
|
||||
actor:ClearActor()
|
||||
if actor.SyncPos ~= nil then
|
||||
actor:SyncPos(0)
|
||||
end
|
||||
if isAutoStart then
|
||||
actor:Start()
|
||||
end
|
||||
end
|
||||
return actor
|
||||
end
|
||||
|
||||
--- actorMgr 创建一个QuestActor, 一般不需要主动调用
|
||||
-- @param self ActorManager实例本身
|
||||
-- @tparam string alias 指定的别名
|
||||
-- @tparam string metaPath 脚本路径
|
||||
-- @tparam uint mainID 主任务ID
|
||||
ActorManager.CreateQuestActor = function(self, alias, metaPath, mainID)
|
||||
print("create quest actor called " .. tostring(alias) .. " . " .. tostring(mainID))
|
||||
print(tostring(metaPath))
|
||||
local metaActor = require(metaPath)
|
||||
local actor = metaActor:new()
|
||||
actor.mainQuestID = mainID
|
||||
actor.metaPath = metaPath
|
||||
print(actor.mainQuestID)
|
||||
actor:OnPreInit()
|
||||
if alias == nil or alias == '' then
|
||||
alias = tostring(mainID)
|
||||
end
|
||||
ActorManager.ActorDic[alias] = actor
|
||||
actor:OnDataLoad()
|
||||
actor:OnHandlerBuild()
|
||||
actor:OnInit(alias)
|
||||
actor:OnPostInit()
|
||||
return actor
|
||||
end
|
||||
--- actorMgr 获取一个Actor
|
||||
-- @tparam string alias Actor别名
|
||||
ActorManager.GetActor = function(self, alias)
|
||||
local actor = ActorManager.ActorDic[alias]
|
||||
if actor == nil then
|
||||
ActorManager.dummyActor.alias = alias
|
||||
return ActorManager.dummyActor
|
||||
end
|
||||
return actor
|
||||
end
|
||||
|
||||
--- actorMgr 销毁一个EntityActor
|
||||
-- @param self ActorManager实例本身
|
||||
-- @tparam string alias Actor别名
|
||||
-- @tparam bool isActorOnly 只销毁Actor
|
||||
ActorManager.DestroyEntityActor = function(self, alias, isActorOnly)
|
||||
if isActorOnly == nil then
|
||||
isActorOnly = false
|
||||
end
|
||||
|
||||
local actor = self:GetActorInternal(alias)
|
||||
if isActorOnly and actor == nil then
|
||||
return
|
||||
end
|
||||
|
||||
if actor ~= nil then
|
||||
actor:Destroy(isActorOnly)
|
||||
else
|
||||
actorUtils.NotifyActorDestroy(alias)
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.GetActorInternal = function(self, alias)
|
||||
local actor = ActorManager.ActorDic[alias]
|
||||
return actor
|
||||
end
|
||||
|
||||
ActorManager.ClearActor = function(self, alias)
|
||||
ActorManager.ActorDic[alias] = nil
|
||||
end
|
||||
|
||||
ActorManager.DestroyActor = function(self, alias, isActorOnly)
|
||||
local actor = ActorManager.GetActorInternal(self, alias)
|
||||
if actor ~= nil then
|
||||
actor:Destroy(isActorOnly)
|
||||
end
|
||||
ActorManager.ActorDic[alias] = nil
|
||||
end
|
||||
|
||||
ActorManager.DestroyActorMeta = function(self, alias)
|
||||
local actor = ActorManager.GetActorInternal(self, alias)
|
||||
if actor ~= nil then
|
||||
local metaPath = actor.metaPath
|
||||
actor:Destroy(false)
|
||||
if metaPath ~= nil then
|
||||
util.unrequire(metaPath)
|
||||
end
|
||||
end
|
||||
ActorManager.ActorDic[alias] = nil
|
||||
end
|
||||
|
||||
ActorManager.Destroy = function(self)
|
||||
for alias, actor in pairs(ActorManager.ActorDic) do
|
||||
local metaPath = nil
|
||||
if actor ~= nil then
|
||||
metaPath = actor.metaPath
|
||||
end
|
||||
ActorManager.DestroyActor(ActorManager, alias, false)
|
||||
if metaPath ~= nil then
|
||||
util.unrequire(metaPath)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.DestroySoft = function(self)
|
||||
for alias, actor in pairs(ActorManager.ActorDic) do
|
||||
if actor ~= nil and not actor.dontDestroyOnClear then
|
||||
local metaPath = nil
|
||||
if actor ~= nil then
|
||||
metaPath = actor.metaPath
|
||||
end
|
||||
ActorManager.DestroyActor(ActorManager, alias, false)
|
||||
if metaPath ~= nil then
|
||||
util.unrequire(metaPath)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.StartActor = function(self, alias)
|
||||
local actor = ActorManager.GetActorInternal(self, alias)
|
||||
if actor ~= nil then
|
||||
actor:Start()
|
||||
end
|
||||
end
|
||||
|
||||
ActorManager.SetEntityHandler = function(self, alias, runtimeID)
|
||||
ActorManager.Alias2EntityIDDic[alias] = runtimeID
|
||||
end
|
||||
|
||||
ActorManager.GetEntityHandler = function(self, alias)
|
||||
return ActorManager.Alias2EntityIDDic[alias]
|
||||
end
|
||||
|
||||
ActorManager.DestroyEntityHandler = function(self, alias)
|
||||
ActorManager.Alias2EntityIDDic[alias] = nil
|
||||
end
|
||||
|
||||
return ActorManager
|
23
soggy_resources/lua/Actor/BaseActorMode.lua
Normal file
23
soggy_resources/lua/Actor/BaseActorMode.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
----------------------
|
||||
-- 这是Lua端ActorMode的基类,包含了一些Actor在特殊情况下的模式定义.
|
||||
-- @classmod BaseActorMode
|
||||
require('Base/Class')
|
||||
|
||||
local BaseActorMode = class("BaseActorMode", nil)
|
||||
|
||||
--- 切换Mode
|
||||
function BaseActorMode:SwitchMode(alias)
|
||||
local actor = actorMgr:GetActorInternal(alias)
|
||||
if actor == nil then
|
||||
return
|
||||
end
|
||||
|
||||
local modeFunc = self[alias]
|
||||
if modeFunc == nil then
|
||||
return
|
||||
end
|
||||
|
||||
modeFunc(actor)
|
||||
end
|
||||
|
||||
return BaseActorMode
|
1339
soggy_resources/lua/Actor/BaseActorProxy.lua
Normal file
1339
soggy_resources/lua/Actor/BaseActorProxy.lua
Normal file
File diff suppressed because it is too large
Load Diff
45
soggy_resources/lua/Actor/ConfigCommon.lua
Normal file
45
soggy_resources/lua/Actor/ConfigCommon.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local ConfigCommon = {}
|
||||
|
||||
ConfigCommon.InterConfig = {}
|
||||
ConfigCommon.InterConfig.default_start =
|
||||
{
|
||||
{
|
||||
type = InteractionType.STEER_TO,
|
||||
steerType = DialogSteerType.TO_LOCAL_AVATAR,
|
||||
duration = 1.0
|
||||
},
|
||||
{
|
||||
type = InteractionType.CAMERA_MOVE,
|
||||
cameraPosType = StoryCameraPosType.RELATIVE_TO_INTER,
|
||||
camPosOffset = {x = 0, y = 0.5, z = 0},
|
||||
nearLength = 2,
|
||||
camTargetType = StoryCameraTargetType.TO_INTEE,
|
||||
camForwardTargetOffset = {x = 0, y = 0.5, z = 0},
|
||||
duration = 1.0,
|
||||
lerpRatio = 5.0,
|
||||
lerpPattern = 0
|
||||
}
|
||||
}
|
||||
ConfigCommon.InterConfig.default_finish =
|
||||
{
|
||||
{
|
||||
type = InteractionType.STEER_TO,
|
||||
steerType = DialogSteerType.RETURN,
|
||||
duration = 1.0
|
||||
},
|
||||
{
|
||||
type = InteractionType.CAMERA_MOVE,
|
||||
cameraPosType = StoryCameraPosType.EXIT,
|
||||
camPosOffset = {x = 0, y = 0, z = 0},
|
||||
nearLength = 0,
|
||||
camTargetType = StoryCameraTargetType.TO_INTEE,
|
||||
camForwardTargetOffset = {x = 0, y = 0, z = 0},
|
||||
duration = 1.0,
|
||||
lerpRatio = 5.0,
|
||||
lerpPattern = 1
|
||||
}
|
||||
}
|
||||
|
||||
return ConfigCommon
|
29
soggy_resources/lua/Actor/Cutscene/CutsceneActorProxy.lua
Normal file
29
soggy_resources/lua/Actor/Cutscene/CutsceneActorProxy.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
----------------------
|
||||
-- 这是Lua端CutsceneActorProxy的基类,包含一些全局控制函数。继承自SubGlobalActorProxy
|
||||
-- @classmod CutsceneActorProxy
|
||||
require('Actor/ActorCommon')
|
||||
local subGlobalActorProxy = require('Actor/SubGlobal/SubGlobalActorProxy')
|
||||
|
||||
local CutsceneActorProxy = class("CutsceneActorProxy", subGlobalActorProxy)
|
||||
|
||||
CutsceneActorProxy.actorType = ActorType.CUTSCENE_ACTOR
|
||||
|
||||
--- SubGlobalActorProxy alias
|
||||
CutsceneActorProxy.defaultAlias = "Cutscene"
|
||||
|
||||
local super = nil
|
||||
|
||||
function CutsceneActorProxy:OnPreInit()
|
||||
super = self.__super
|
||||
super:OnPreInit()
|
||||
end
|
||||
|
||||
function CutsceneActorProxy:CreateUActor(alias)
|
||||
local uActor = actorUtils.CreateActor(self, ActorType.CUTSCENE_ACTOR, alias, self.metaPath)
|
||||
return uActor
|
||||
end
|
||||
|
||||
function CutsceneActorProxy:Start()
|
||||
end
|
||||
|
||||
return CutsceneActorProxy
|
@@ -0,0 +1,20 @@
|
||||
require('Actor/ActorCommon')
|
||||
local cutsceneActorProxy = require('Actor/Cutscene/CutsceneActorProxy')
|
||||
|
||||
local CutsceneActor_Goddess1201 = class("CutsceneActor_Goddess1201", cutsceneActorProxy)
|
||||
|
||||
function CutsceneActor_Goddess1201:Start()
|
||||
print("spawn local monster for goddess 1201")
|
||||
self:SpawnLocalMonster("show101", 21010201, 1, M.Pos(2404, 206, -5385), 0, 0, 1.0)
|
||||
self:SpawnLocalMonster("show102", 21010201, 1, M.Pos(2406, 206, -5386), 0, 0, 1.0)
|
||||
self:SpawnLocalMonster("show103", 21010301, 1, M.Pos(2406, 206, -5388), 0, 0, 1.0)
|
||||
end
|
||||
|
||||
function CutsceneActor_Goddess1201:OnDestroy()
|
||||
print("unspawn local mosnter for goddess 1201")
|
||||
self:UnSpawn("show101")
|
||||
self:UnSpawn("show102")
|
||||
self:UnSpawn("show103")
|
||||
end
|
||||
|
||||
return CutsceneActor_Goddess1201
|
@@ -0,0 +1,34 @@
|
||||
require('Actor/ActorCommon')
|
||||
local cutsceneActorProxy = require('Actor/Cutscene/CutsceneActorProxy')
|
||||
|
||||
local CutsceneActor_GoddessLvup = class("CutsceneActor_GoddessLvup", cutsceneActorProxy)
|
||||
|
||||
local alias = "mywind"
|
||||
local airFlowActor
|
||||
|
||||
local function PlayEffect()
|
||||
local effctPos = airFlowActor:GetPos()
|
||||
airFlowActor:PlayEffect("FlyRace_Marker_Active_AS", effctPos)
|
||||
end
|
||||
|
||||
function CutsceneActor_GoddessLvup:Start()
|
||||
print("****************CutsceneActor_GoddessLvup:Start*******************")
|
||||
airFlowActor = actorMgr:GetActor(alias)
|
||||
if airFlowActor == nil or airFlowActor == actorMgr.dummyActor then
|
||||
airFlowActor = nil
|
||||
print("can not find " .. alias)
|
||||
else
|
||||
airFlowActor:SetActive(false)
|
||||
self:CallDelay(1, PlayEffect)
|
||||
end
|
||||
end
|
||||
|
||||
function CutsceneActor_GoddessLvup:OnDestroy()
|
||||
print("#################CutsceneActor_GoddessLvup:OnDestroy()##################")
|
||||
if airFlowActor ~= nil then
|
||||
airFlowActor:SetActive(true)
|
||||
airFlowActor = nil
|
||||
end
|
||||
end
|
||||
|
||||
return CutsceneActor_GoddessLvup
|
@@ -0,0 +1,66 @@
|
||||
require('Actor/ActorCommon')
|
||||
local cutsceneActorProxy = require('Actor/Cutscene/CutsceneActorProxy')
|
||||
|
||||
local CutsceneActor_GoddessLvup = class("CutsceneActor_GoddessLvup", cutsceneActorProxy)
|
||||
|
||||
local airFlowActor
|
||||
local alias = {"WindField_Vertical_01", "WindField_Horizontal_01", "WindField_Horizontal_02", "WindField_Horizontal_03"}
|
||||
|
||||
function CutsceneActor_GoddessLvup:CreateWindLocal()
|
||||
if airFlowActor ~= nil then
|
||||
local pos = airFlowActor:GetPos()
|
||||
actorMgr:CreateActorWithPos("localWind", "Actor/Gadget/AirflowFieldActor", 70610101, 0, pos, {x=0,y=0,z=0}, true, false)
|
||||
end
|
||||
end
|
||||
|
||||
function CutsceneActor_GoddessLvup:DestroyWindLocal()
|
||||
local localWind = actorMgr:GetActor("localWind")
|
||||
if localWind == nil or localWind == actorMgr.dummyActor then
|
||||
print("can not find localWind")
|
||||
else
|
||||
localWind:DestroySelf()
|
||||
end
|
||||
end
|
||||
|
||||
function CutsceneActor_GoddessLvup:ShowEffect()
|
||||
if airFlowActor ~= nil then
|
||||
local effctPos = airFlowActor:GetPos()
|
||||
self:PlayEffect("WindSource01_PowerUp", effctPos)
|
||||
--self:CallDelay(2, self.CreateWindLocal)
|
||||
end
|
||||
end
|
||||
|
||||
function CutsceneActor_GoddessLvup:Start()
|
||||
print("****************CutsceneActor_GoddessLvup:Start*******************")
|
||||
for i,v in ipairs(alias) do
|
||||
local actor = actorMgr:GetActor(v)
|
||||
if actor == nil or actor == actorMgr.dummyActor then
|
||||
print("can not find " .. v)
|
||||
else
|
||||
--print(i)
|
||||
if i == 1 then
|
||||
airFlowActor = actor
|
||||
end
|
||||
actor:SetActive(false)
|
||||
end
|
||||
end
|
||||
|
||||
if airFlowActor ~= nil then
|
||||
self:CallDelay(9, self.ShowEffect)
|
||||
end
|
||||
end
|
||||
|
||||
function CutsceneActor_GoddessLvup:OnDestroy()
|
||||
print("#################CutsceneActor_GoddessLvup:OnDestroy()##################")
|
||||
self:DestroyWindLocal()
|
||||
|
||||
for _,v in ipairs(alias) do
|
||||
local actor = actorMgr:GetActor(v)
|
||||
if actor ~= nil and actor ~= actorMgr.dummyActor then
|
||||
actor:SetActive(true)
|
||||
end
|
||||
end
|
||||
airFlowActor = nil
|
||||
end
|
||||
|
||||
return CutsceneActor_GoddessLvup
|
16
soggy_resources/lua/Actor/Cutscene/TestCutsceneActor.lua
Normal file
16
soggy_resources/lua/Actor/Cutscene/TestCutsceneActor.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
require('Actor/ActorCommon')
|
||||
local cutsceneActorProxy = require('Actor/Cutscene/CutsceneActorProxy')
|
||||
|
||||
local TestCutsceneActor = class("TestCutsceneActor", cutsceneActorProxy)
|
||||
|
||||
function TestCutsceneActor:Start()
|
||||
print("***********************************")
|
||||
self:SpawnLocalMonster("show102", 21010301, 1, M.Pos(371.25, 205.46, -258.35), 0, 0, 1.0)
|
||||
end
|
||||
|
||||
function TestCutsceneActor:OnDestroy()
|
||||
print("###################################")
|
||||
self:UnSpawn("show102")
|
||||
end
|
||||
|
||||
return TestCutsceneActor
|
73
soggy_resources/lua/Actor/DailyNPCManager.lua
Normal file
73
soggy_resources/lua/Actor/DailyNPCManager.lua
Normal file
@@ -0,0 +1,73 @@
|
||||
local DailyNpcManager={}
|
||||
|
||||
local NpcEventTypeLua = require('Actor/Npc/NPCEventType')
|
||||
local NpcModeType = require('Actor/Npc/NpcMode/NpcModeType')
|
||||
local CfgMengdeDayPatrol = require('Actor/Npc/Config/CfgMengdeDayPatrol')
|
||||
local CfgMengdeInsomniaPatrol = require('Actor/Npc/Config/CfgMengdeInsomniaPatrol')
|
||||
local CfgMengdeDayStand = require('Actor/Npc/Config/CfgMengdeDayStand')
|
||||
local CfgMengdeNightStand = require('Actor/Npc/Config/CfgMengdeNightStand')
|
||||
local CfgMengdeNightSit = require('Actor/Npc/Config/CfgMengdeNightSit')
|
||||
local CfgMengdeInsomniaStand = require('Actor/Npc/Config/CfgMengdeInsomniaStand')
|
||||
local CfgMengdeDaySit = require('Actor/Npc/Config/CfgMengdeDaySit')
|
||||
|
||||
DailyNpcManager.NpcEventType = NpcEventTypeLua.DailyNpcEventType
|
||||
|
||||
--得到蒙德城所有NPC信息,返回值为一个table
|
||||
DailyNpcManager.GetMengdeNpcList= function()
|
||||
local list={}
|
||||
for i=1, #CfgMengdeDayPatrol.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeDayPatrol" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeInsomniaPatrol.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeInsomniaPatrol" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeDayStand.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeDayStand" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeNightStand.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeNightStand" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeNightSit.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeNightSit" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeInsomniaStand.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeInsomniaStand" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeDaySit.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeDaySit" .. '_' .. tostring(i))
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
--得到蒙德城所有NPC信息(除去个别),返回值为一个table
|
||||
DailyNpcManager.GetMengdeNpcListSpecial= function()
|
||||
local list={}
|
||||
for i=1, #CfgMengdeDayPatrol.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeDayPatrol" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeInsomniaPatrol.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeInsomniaPatrol" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeDayStand.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeDayStand" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeNightStand.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeNightStand" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeNightSit.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeNightSit" .. '_' .. tostring(i))
|
||||
end
|
||||
for i=1, #CfgMengdeInsomniaStand.DummyPointData.NpcID do
|
||||
if i~=15 and i~=18 then
|
||||
table.insert(list,"MengdeInsomniaStand" .. '_' .. tostring(i))
|
||||
end
|
||||
end
|
||||
for i=1, #CfgMengdeDaySit.DummyPointData.NpcID do
|
||||
table.insert(list,"MengdeDaySit" .. '_' .. tostring(i))
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
|
||||
|
||||
return DailyNpcManager
|
4121
soggy_resources/lua/Actor/DummyActorProxy.lua
Normal file
4121
soggy_resources/lua/Actor/DummyActorProxy.lua
Normal file
File diff suppressed because it is too large
Load Diff
836
soggy_resources/lua/Actor/EntityActorProxy.lua
Normal file
836
soggy_resources/lua/Actor/EntityActorProxy.lua
Normal file
@@ -0,0 +1,836 @@
|
||||
----------------------
|
||||
-- 这是Lua端EntityActor的基类,包含了控制Entity行为的方法。继承自BaseActorProxy
|
||||
-- @classmod EntityActorProxy
|
||||
require('Actor/ActorCommon')
|
||||
local baseActorProxy = require('Actor/BaseActorProxy')
|
||||
|
||||
local EntityActorProxy = class("EntityActorProxy", baseActorProxy)
|
||||
|
||||
local super = nil
|
||||
|
||||
function EntityActorProxy:OnPreInit()
|
||||
super = self.__super
|
||||
end
|
||||
|
||||
function EntityActorProxy:PreGetAlias()
|
||||
return nil
|
||||
end
|
||||
|
||||
--- EntityActor操作的Entity的configID
|
||||
EntityActorProxy.configID = nil
|
||||
--- Entity的出生位置
|
||||
EntityActorProxy.bornPos = nil
|
||||
--- Entity的出生朝向
|
||||
EntityActorProxy.bornDir = nil
|
||||
--- Entity是否为网络单位
|
||||
EntityActorProxy.isNetwork = false
|
||||
|
||||
EntityActorProxy.actorType = ActorType.BASE_ENTITY
|
||||
|
||||
function EntityActorProxy:OnInit(alias)
|
||||
super:OnInit(alias)
|
||||
local uActor = self:CreateUActor(alias)
|
||||
self.uActor = uActor
|
||||
|
||||
self:Register()
|
||||
end
|
||||
|
||||
--- Actor C#端Actor对象创建,如果需要走不同的创建流程则需要重写这个方法
|
||||
function EntityActorProxy:CreateUActor(alias)
|
||||
local uActor = actorUtils.CreateActor(self, ActorType.BASE_ENTITY, alias, self.metaPath)
|
||||
return uActor
|
||||
end
|
||||
|
||||
function EntityActorProxy:Register()
|
||||
--print("here register your callback")
|
||||
end
|
||||
|
||||
function EntityActorProxy:Start()
|
||||
--print("here start")
|
||||
end
|
||||
|
||||
--- EntityActor 属性相关的方法
|
||||
-- @section prop
|
||||
|
||||
--- EntityActor通过propTyoe来获取当前属性
|
||||
-- @tparam PropType propType属性的类型
|
||||
-- @treturn float 属性数值
|
||||
function EntityActorProxy:GetPropValue(propType)
|
||||
return self.uActor:GetPropValue(propType)
|
||||
end
|
||||
|
||||
--- EntityActor 移动相关的方法
|
||||
-- @section move
|
||||
|
||||
--- EntityActor行走到一个坐标
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
function EntityActorProxy:WalkTo(pos)
|
||||
self.uActor:WalkTo(pos)
|
||||
end
|
||||
--- EntityActor沿着路点行走到一个坐标
|
||||
-- @tparam List<Vector3> posList 路点链表
|
||||
function EntityActorProxy:WalkToRoute(posList)
|
||||
self.uActor:WalkToRoute(posList)
|
||||
end
|
||||
|
||||
--- EntityActor沿着路点行走到一个坐标
|
||||
-- @tparam ConfigRoute routeConfig 路点Config
|
||||
function EntityActorProxy:WalkToRouteByData(routeConfig)
|
||||
self.uActor:WalkToRouteByData(routeConfig)
|
||||
end
|
||||
|
||||
--- EntityActor跑动到一个坐标
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
function EntityActorProxy:RunTo(pos)
|
||||
self.uActor:RunTo(pos)
|
||||
end
|
||||
--- EntityActor沿着路点跑动到一个坐标
|
||||
-- @tparam List<Vector3> posList 路点链表
|
||||
function EntityActorProxy:RunToRoute(posList)
|
||||
self.uActor:RunToRoute(posList)
|
||||
end
|
||||
|
||||
--- EntityActor沿着路点跑动到一个坐标
|
||||
-- @tparam ConfigRoute routeConfig 路点Config
|
||||
function EntityActorProxy:RunToRouteByData(routeConfig)
|
||||
self.uActor:RunToRouteByData(routeConfig)
|
||||
end
|
||||
|
||||
--- EntityActor原地暂停
|
||||
function EntityActorProxy:Standby()
|
||||
self.uActor:Standby(false)
|
||||
end
|
||||
|
||||
--- EntityActor原地待机(不会恢复寻路)
|
||||
function EntityActorProxy:StandbyNoResume()
|
||||
self.uActor:Standby(true)
|
||||
end
|
||||
|
||||
--- EntityActor恢复移动
|
||||
function EntityActorProxy:ResumeMove()
|
||||
self.uActor:ResumeMove()
|
||||
end
|
||||
|
||||
--- EntityActor主动同步当前位置
|
||||
-- @tparam int state 状态0:standby, 1:walk, 2:run
|
||||
function EntityActorProxy:SyncPos(state)
|
||||
self.uActor:SyncPos(state)
|
||||
end
|
||||
--- EntityActor是否再执行freeStyle
|
||||
function EntityActorProxy:DoingFreeStyle()
|
||||
return self.uActor:DoingFreeStyle()
|
||||
end
|
||||
--- EntityActor执行自定义的动作,需要预先在状态机里配置
|
||||
-- @tparam int freeStyleType 状态机里切换到某个状态的对应参数
|
||||
-- @tparam bool freeStyleForceInterrupt 强制打断当前行为
|
||||
function EntityActorProxy:DoFreeStyle(freeStyleType, freeStyleForceInterrupt)
|
||||
if freeStyleForceInterrupt == nil then
|
||||
freeStyleForceInterrupt = true
|
||||
end
|
||||
self.uActor:DoFreeStyle(freeStyleType, freeStyleForceInterrupt)
|
||||
end
|
||||
--- EntityActor执行自定义的动作继续,需要于现在状态机里配置FreeStateTrigger
|
||||
function EntityActorProxy:DoFreeStateTrigger()
|
||||
self.uActor:DoFreeStateTrigger()
|
||||
end
|
||||
--- EntityActor做完一个FreeStyle的回调
|
||||
function EntityActorProxy:InvokeOnResetFreeStyle(freeStyleType)
|
||||
end
|
||||
--- EntityActor转向一个方向
|
||||
-- @tparam Vector3 dir 这是一个forward,如果是euler旋转角要通过M.Euler2DirXZ转换一下
|
||||
function EntityActorProxy:TurnTo(dir)
|
||||
self.uActor:TurnTo(dir)
|
||||
end
|
||||
--- EntityActor获取当前坐标
|
||||
-- @treturn Vector3 所在坐标绝对值
|
||||
function EntityActorProxy:GetPos()
|
||||
return self.uActor:GetPos()
|
||||
end
|
||||
--- EntityActor获取当前GetEuler
|
||||
-- @treturn Vector3 所在坐标绝对值
|
||||
function EntityActorProxy:GetEuler()
|
||||
return self.uActor:GetEuler()
|
||||
end
|
||||
--- EntityActor获取当前朝向
|
||||
-- @treturn Vector3 所在坐标绝对值
|
||||
function EntityActorProxy:GetForward()
|
||||
return self.uActor:GetForward()
|
||||
end
|
||||
--- EntityActor获取当前是否Standby
|
||||
-- @treturn bool 是否站立
|
||||
function EntityActorProxy:IsInIdle()
|
||||
return self.uActor:IsInIdle()
|
||||
end
|
||||
--- EntityActor瞬移到一个点并转向
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
-- @tparam Vector3 dir 方向向量
|
||||
-- @tparam bool 不需要演出
|
||||
function EntityActorProxy:SetPosAndTurnTo(pos, dir, noPerform)
|
||||
if noPerform == nil then
|
||||
noPerform = true
|
||||
end
|
||||
self.uActor:SetPosAndTurnTo(pos, dir, noPerform)
|
||||
end
|
||||
--- EntityActor瞬移到一个点
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
-- @tparam bool 不需要演出
|
||||
function EntityActorProxy:SetPos(pos, noPerform)
|
||||
if noPerform == nil then
|
||||
noPerform = true
|
||||
end
|
||||
self.uActor:SetPos(pos, noPerform)
|
||||
end
|
||||
--- EntityActor获取当前欧拉角
|
||||
-- @treturn Vector3 当前相对于世界的欧拉角
|
||||
function EntityActorProxy:GetEuler()
|
||||
return self.uActor:GetEuler()
|
||||
end
|
||||
--- EntityActor隐藏
|
||||
-- @tparam bool value 是否隐藏
|
||||
function EntityActorProxy:Hide(value)
|
||||
self.uActor:Hide(value)
|
||||
end
|
||||
--- EntityActor标准隐藏
|
||||
function EntityActorProxy:HideSelf()
|
||||
self:Stop()
|
||||
self:Standby()
|
||||
self:Hide(true)
|
||||
end
|
||||
--- EntityActor标准出现
|
||||
function EntityActorProxy:ShowSelf()
|
||||
self:Hide(false)
|
||||
end
|
||||
--- EntityActor非Daily的检查出现
|
||||
function EntityActorProxy:CheckShow()
|
||||
self.uActor:CheckShow()
|
||||
end
|
||||
--- EntityActor找椅子坐下
|
||||
function EntityActorProxy:SitOnChair()
|
||||
self.uActor:SitOnChair()
|
||||
end
|
||||
--- EntityActor从椅子上站起
|
||||
function EntityActorProxy:StandFromChair()
|
||||
self.uActor:StandFromChair()
|
||||
end
|
||||
--- EntityActor开启整个AI
|
||||
-- @tparam bool value 是否开启AI
|
||||
function EntityActorProxy:EnableAI(value)
|
||||
self.uActor:EnableAI(value)
|
||||
end
|
||||
--- EntityActor开启交互
|
||||
-- @tparam bool value 是否开启交互
|
||||
function EntityActorProxy:EnableInteraction(value)
|
||||
self.uActor:EnableInteraction(value)
|
||||
end
|
||||
|
||||
EntityActorProxy.targetPos = nil
|
||||
EntityActorProxy.routePoints = nil
|
||||
EntityActorProxy.routeConfig = nil
|
||||
function EntityActorProxy:StartWalkTo(task)
|
||||
self:WalkTo(self.targetPos)
|
||||
end
|
||||
function EntityActorProxy:StartWalkToRoute(task)
|
||||
self:WalkToRoute(self.routePoints)
|
||||
end
|
||||
function EntityActorProxy:StartWalkToRouteByData(task)
|
||||
self:WalkToRouteByData(self.routeConfig)
|
||||
end
|
||||
function EntityActorProxy:StartRunTo(task)
|
||||
self:RunTo(self.targetPos)
|
||||
end
|
||||
function EntityActorProxy:StartRunToRoute(task)
|
||||
self:RunToRoute(self.routePoints)
|
||||
end
|
||||
function EntityActorProxy:StartRunToRouteByData(task)
|
||||
self:RunToRouteByData(self.routeConfig)
|
||||
end
|
||||
function EntityActorProxy:StartFollowRunTo(task)
|
||||
if self.BeFollowState == BeFollowState.ING then
|
||||
self:RunTo(self.targetPos)
|
||||
end
|
||||
end
|
||||
function EntityActorProxy:StartFollowRunToRoute(task)
|
||||
if self.BeFollowState == BeFollowState.ING then
|
||||
self:RunToRoute(self.routePoints)
|
||||
end
|
||||
end
|
||||
function EntityActorProxy:StartFollowRunToRouteByData(task)
|
||||
if self.BeFollowState == BeFollowState.ING then
|
||||
self:RunToRouteByData(self.routeConfig)
|
||||
end
|
||||
end
|
||||
function EntityActorProxy:CheckArrived(task, deltaTime)
|
||||
if self.targetPos == nil then
|
||||
task:FinishTask()
|
||||
end
|
||||
end
|
||||
|
||||
EntityActorProxy.BeFollowLen = 10
|
||||
EntityActorProxy.BeFollowFailedLen = 20
|
||||
EntityActorProxy.BeFollowState = BeFollowState.ING
|
||||
EntityActorProxy.BeFollowFailed = nil
|
||||
EntityActorProxy.OnTransFinishCallback = nil
|
||||
EntityActorProxy.OnTransPreCallback = nil
|
||||
EntityActorProxy.TransOffset = 1
|
||||
EntityActorProxy.IsBeLocked = false
|
||||
EntityActorProxy.BeLockTransLen = 30
|
||||
EntityActorProxy.OnFinishCB = nil
|
||||
EntityActorProxy.OnMovePauseCB = nil
|
||||
EntityActorProxy.OnMoveResumeCB = nil
|
||||
EntityActorProxy.OnMoveFailedCB = nil
|
||||
|
||||
|
||||
function EntityActorProxy:FinishFollow(task)
|
||||
print("FinishFollow", self.OnFinishCB, self.BeFollowLen, self.BeFollowState)
|
||||
|
||||
self.BeFollowState = BeFollowState.SUCCESS
|
||||
if self.OnFinishCB ~= nil then
|
||||
self:OnFinishCB(task)
|
||||
end
|
||||
end
|
||||
function EntityActorProxy:CheckBeFollow(task, deltaTime)
|
||||
if self.targetPos == nil then
|
||||
task:FinishTask()
|
||||
end
|
||||
|
||||
local selfPos = self:GetPos()
|
||||
local avatarPos = actorUtils.GetAvatarPos()
|
||||
local currLen = M.Dist(selfPos, avatarPos)
|
||||
|
||||
--print("CheckBeFollow", self.targetPos, currLen, self.BeFollowLen, self.BeFollowState)
|
||||
|
||||
if self.BeFollowFailedLen >= 0 and currLen > self.BeFollowFailedLen then
|
||||
print("Failed")
|
||||
self.BeFollowState = BeFollowState.FAILED
|
||||
task:FinishTask()
|
||||
elseif currLen > self.BeFollowLen then
|
||||
if self.BeFollowState ~= BeFollowState.WAITING then
|
||||
self.BeFollowState = BeFollowState.WAITING
|
||||
self:Standby()
|
||||
end
|
||||
else
|
||||
if self.BeFollowState == BeFollowState.WAITING then
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
self:RunTo(self.targetPos)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function EntityActorProxy:DisappearFollow(task)
|
||||
self.BeFollowState = BeFollowState.FAILED
|
||||
task:FinishTask()
|
||||
end
|
||||
|
||||
function EntityActorProxy:CheckBeFollowRoute(task, deltaTime)
|
||||
if self.targetPos == nil then
|
||||
task:FinishTask()
|
||||
end
|
||||
|
||||
local selfPos = self:GetPos()
|
||||
local avatarPos = actorUtils.GetAvatarPos()
|
||||
local currLen = M.Dist(selfPos, avatarPos)
|
||||
|
||||
--print("CheckBeFollow", self.targetPos, currLen, self.BeFollowLen, self.BeFollowState)
|
||||
|
||||
if self.BeFollowFailedLen >= 0 and currLen > self.BeFollowFailedLen then
|
||||
print("Failed")
|
||||
self.BeFollowState = BeFollowState.FAILED
|
||||
if self.OnFinishCB ~= nil then
|
||||
self:OnFinishCB(task)
|
||||
end
|
||||
if self.OnMoveFailedCB ~= nil then
|
||||
self:OnMoveFailedCB()
|
||||
end
|
||||
elseif currLen > self.BeFollowLen then
|
||||
if self.BeFollowState ~= BeFollowState.WAITING then
|
||||
self.BeFollowState = BeFollowState.WAITING
|
||||
if self.OnMovePauseCB == nil then
|
||||
self:Standby()
|
||||
else
|
||||
self:OnMovePauseCB()
|
||||
end
|
||||
end
|
||||
else
|
||||
if self.BeFollowState == BeFollowState.WAITING then
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
if self.OnMoveResumeCB == nil then
|
||||
self:ResumeMove()
|
||||
else
|
||||
self:OnMoveResumeCB()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function EntityActorProxy:DisappearFollowRoute(task)
|
||||
self.BeFollowState = BeFollowState.FAILED
|
||||
if self.OnFinishCB ~= nil then
|
||||
self:OnFinishCB(task)
|
||||
end
|
||||
if self.OnMoveFailedCB ~= nil then
|
||||
self:OnMoveFailedCB()
|
||||
end
|
||||
end
|
||||
|
||||
function EntityActorProxy:CheckBeLock(task, deltaTime)
|
||||
local selfPos = self:GetPos()
|
||||
local avatarPos = actorUtils.GetAvatarPos()
|
||||
|
||||
local currLen = M.Dist(selfPos, avatarPos)
|
||||
|
||||
if self.BeLockTransLen >= 0 and currLen > self.BeLockTransLen then
|
||||
if self.IsBeLocked == false then
|
||||
self.IsBeLocked = true
|
||||
self:Standby()
|
||||
local avatarEular = M.Dir2Euler(selfPos - avatarPos)
|
||||
local newPos = nil
|
||||
if type(self.TransOffset) == "number" then
|
||||
newPos = selfPos - self.TransOffset * self:GetForward()
|
||||
else
|
||||
newPos = self.TransOffset
|
||||
end
|
||||
self:SyncPos(0)
|
||||
if self:TransmitPlayer(0, newPos, avatarEular, function(actor)
|
||||
self:OnTransFinishCallback()
|
||||
end,
|
||||
function(actor)
|
||||
self:OnTransPreCallback()
|
||||
end) == false then
|
||||
self.IsBeLocked = false
|
||||
end
|
||||
end
|
||||
elseif currLen <= self.BeLockTransLen then
|
||||
if self.IsBeLocked == true then
|
||||
self.IsBeLocked = false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor走到一个点的Task
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:WalkToTask(pos, OnFinish, OnPause, OnResume)
|
||||
--print("Walk to task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = pos
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartWalkTo)
|
||||
task:TickEvent('+', self.CheckArrived)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor沿着指定路点走到一个点的Task
|
||||
-- @tparam List<Vector3> points 路点序列
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:WalkToRouteTask(points, OnFinish, OnPause, OnResume)
|
||||
print("Walk to route task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = points[#points]
|
||||
self.routePoints = points
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartWalkToRoute)
|
||||
task:TickEvent('+', self.CheckArrived)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor沿着路点配置中的路点走到最后的Task
|
||||
-- @tparam ConfigRoute routeConfig 路点序列配置
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:WalkToRouteByDataTask(routeConfig, OnFinish, OnPause, OnResume)
|
||||
print("Walk to route by data task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = routeConfig.points[#routeConfig.points]
|
||||
self.routeConfig = routeConfig
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartWalkToRouteByData)
|
||||
task:TickEvent('+', self.CheckArrived)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor跑到一个点的Task
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:RunToTask(pos, OnFinish, OnPause, OnResume)
|
||||
--print("Run to task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = pos
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartRunTo)
|
||||
task:TickEvent('+', self.CheckArrived)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor沿着指定路点跑到一个点的Task
|
||||
-- @tparam List<Vector3> points 路点序列
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:RunToRouteTask(points, OnFinish, OnPause, OnResume)
|
||||
print("Run to route task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = points[#points]
|
||||
self.routePoints = points
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartRunToRoute)
|
||||
task:TickEvent('+', self.CheckArrived)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor沿着路点配置中的路点跑到最后的Task
|
||||
-- @tparam ConfigRoute routeConfig 路点序列配置
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:RunToRouteByDataTask(routeConfig, OnFinish, OnPause, OnResume)
|
||||
print("Run to route by data task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = routeConfig.points[#routeConfig.points]
|
||||
self.routeConfig = routeConfig
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartRunToRouteByData)
|
||||
task:TickEvent('+', self.CheckArrived)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor走向一个点,并让玩家跟随,如果距离小远则等待,大远则失败
|
||||
-- @tparam Vector3 pos 坐标绝对值
|
||||
-- @tparam float beFollowLen 小于这个值则继续走向预设点,否则等待
|
||||
-- @tparam float beFollowFailed 小于这个值则等待, 否则失败,如果是负数则一直等待不会失败
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:BeFollowTask(pos, beFollowLen, beFollowFailed,
|
||||
OnFinish, OnPause, OnResume)
|
||||
print("Be follow task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = pos
|
||||
self.BeFollowLen = beFollowLen
|
||||
self.BeFollowFailedLen = beFollowFailed
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
self.OnFinishCB = OnFinish
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartFollowRunTo)
|
||||
task:TickEvent('+', self.CheckBeFollow)
|
||||
task:FinishEvent('+', self.FinishFollow)
|
||||
task:DisappearEvent('+', self.DisappearFollow)
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor走向一个点,并让玩家跟随,如果距离小远则等待,大远则失败
|
||||
-- @tparam table data 包含必要参数
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
function EntityActorProxy:BeFollowTaskByData(data,
|
||||
OnFinish, OnPause, OnResume)
|
||||
self:BeFollowTask(data.pos, data.beFollowLen, data.beFollowFailed, OnFinish, OnPause, OnResume)
|
||||
end
|
||||
|
||||
--- EntityActor走过一组路径点,并让玩家跟随,如果距离小远则等待,大远则失败
|
||||
-- @tparam List<Vector3> points 路点序列
|
||||
-- @tparam float beFollowLen 小于这个值则继续走向预设点,否则等待
|
||||
-- @tparam float beFollowFailed 小于这个值则等待, 否则失败,如果是负数则一直等待不会失败
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
-- @tparam function OnMovePause 跟随中暂停时执行的回调,如果为nil,则调用Standby()
|
||||
-- @tparam function OnMoveResume 跟随中继续时执行的回调,如果为nil,则调用Resume()
|
||||
-- @tparam function OnMoveFailed 跟随中失败的回调
|
||||
function EntityActorProxy:BeFollowTaskByRoutePoints(points, beFollowLen, beFollowFailed,
|
||||
OnFinish, OnPause, OnResume, OnMovePause, OnMoveResume, OnMoveFailed)
|
||||
print("Be follow task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = points[#points]
|
||||
self.routePoints = points
|
||||
self.BeFollowLen = beFollowLen
|
||||
self.BeFollowFailedLen = beFollowFailed
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
self.OnFinishCB = OnFinish
|
||||
self.OnMovePauseCB = OnMovePause
|
||||
self.OnMoveResumeCB = OnMoveResume
|
||||
self.OnMoveFailedCB = OnMoveFailed
|
||||
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartFollowRunToRoute)
|
||||
task:TickEvent('+', self.CheckBeFollowRoute)
|
||||
task:FinishEvent('+', self.FinishFollow)
|
||||
task:DisappearEvent('+', self.DisappearFollowRoute)
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor走过一组配置的路径点,并让玩家跟随,如果距离小远则等待,大远则失败
|
||||
-- @tparam ConfigRoute routeConfig 路点序列配置
|
||||
-- @tparam float beFollowLen 小于这个值则继续走向预设点,否则等待
|
||||
-- @tparam float beFollowFailed 小于这个值则等待, 否则失败,如果是负数则一直等待不会失败
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
-- @tparam function OnPause task暂停时执行的回调
|
||||
-- @tparam function OnResume task继续时执行的回调,如果为nil,则执行Start即走到原定的点
|
||||
-- @tparam function OnMovePause 跟随中暂停时执行的回调,如果为nil,则调用Standby()
|
||||
-- @tparam function OnMoveResume 跟随中继续时执行的回调,如果为nil,则调用Resume()
|
||||
-- @tparam function OnMoveFailed 跟随中失败的回调
|
||||
function EntityActorProxy:BeFollowTaskByRouteConfig(routeConfig, beFollowLen, beFollowFailed,
|
||||
OnFinish, OnPause, OnResume, OnMovePause, OnMoveResume, OnMoveFailed)
|
||||
print("Be follow task")
|
||||
self:ClearFollowTask()
|
||||
self.targetPos = routeConfig.points[#routeConfig.points]
|
||||
self.routeConfig = points
|
||||
self.BeFollowLen = beFollowLen
|
||||
self.BeFollowFailedLen = beFollowFailed
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
self.OnFinishCB = OnFinish
|
||||
self.OnMovePauseCB = OnMovePause
|
||||
self.OnMoveResumeCB = OnMoveResume
|
||||
self.OnMoveFailedCB = OnMoveFailed
|
||||
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.MOVE, "Move")
|
||||
task:StartEvent('+', self.StartFollowRunToRouteByData)
|
||||
task:TickEvent('+', self.CheckBeFollowRoute)
|
||||
task:FinishEvent('+', self.FinishFollow)
|
||||
task:DisappearEvent('+', self.DisappearFollowRoute)
|
||||
if OnPause ~= nil then
|
||||
task:PauseEvent('+', OnPause)
|
||||
end
|
||||
if OnResume ~= nil then
|
||||
task:ResumeEvent('+', OnResume)
|
||||
end
|
||||
end
|
||||
|
||||
function EntityActorProxy:ClearBeLockTask()
|
||||
self:ClearTask(TaskID.LOCK_TASK_ID)
|
||||
end
|
||||
|
||||
--- EntityActor让玩家跟随,大远则拉回
|
||||
-- @tparam float beFollowLen 大宇于这个值则传送
|
||||
-- @tparam float transOffset 传送位置偏移
|
||||
-- @tparam function onTransFinishCB 传送完以后干的事情
|
||||
-- @tparam function onTransPreCB 传送黑屏时候干的事情
|
||||
function EntityActorProxy:BeLockTask(beLockTransLen, transOffset, onTransFinishCB, onTransPreCB)
|
||||
print("Be lock task ")
|
||||
self:ClearBeLockTask()
|
||||
self.IsBeLocked = false
|
||||
self.BeLockTransLen = beLockTransLen
|
||||
self.TransOffset = transOffset
|
||||
self.OnTransFinishCallback = onTransFinishCB
|
||||
self.OnTransPreCallback = onTransPreCB
|
||||
local task = self:CreateTask(TaskID.LOCK_TASK_ID, LuaTaskType.NORMAL, "Lock")
|
||||
task:TickEvent('+', self.CheckBeLock)
|
||||
end
|
||||
|
||||
--- EntityActor走向一个点,并让玩家跟随,如果距离小远则等待, 中距离则提示,大远则拉回
|
||||
-- @tparam table data 包含必要参数
|
||||
-- @tparam function onTransFinishCB 传送完以后干的事情
|
||||
function EntityActorProxy:BeLockTaskByData(data, onTransFinishCB)
|
||||
self:BeLockTask(data.beLockTransLen, data.transOffset, onTransFinishCB)
|
||||
end
|
||||
|
||||
EntityActorProxy.freeStyleType = -1
|
||||
EntityActorProxy.freeStyleForceInterrupt = false
|
||||
function EntityActorProxy:StartFreeStyle(task)
|
||||
self:DoFreeStyle(self.freeStyleType, self.freeStyleForceInterrupt)
|
||||
end
|
||||
|
||||
function EntityActorProxy:ResumeFreeStyle(task)
|
||||
task:FinishTask()
|
||||
end
|
||||
|
||||
--- EntityActor做一个动作,并且有结束回调
|
||||
-- @tparam int freeStyleType 对应状态机中的type条件
|
||||
-- @tparam bool freeStyleForceInterrupt 强制打断当前行为
|
||||
-- @tparam function OnFinish task结束后执行的回调
|
||||
function EntityActorProxy:DoFreeStyleTask(freeStyleType, freeStyleForceInterrupt, OnFinish)
|
||||
if not freeStyleForceInterrupt then
|
||||
if self:DoingFreeStyle() then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
self:ClearFollowTask()
|
||||
self.freeStyleType = freeStyleType
|
||||
self.freeStyleForceInterrupt = true
|
||||
local task = self:CreateTask(TaskID.MOVE_TASK_ID, LuaTaskType.FREE_STYLE, "Idle")
|
||||
task:SetFreeStyleType(freeStyleType)
|
||||
task:StartEvent('+', self.StartFreeStyle)
|
||||
task:ResumeEvent('+', self.ResumeFreeStyle)
|
||||
if OnFinish ~= nil then
|
||||
task:FinishEvent('+', OnFinish)
|
||||
end
|
||||
end
|
||||
|
||||
--- EntityActor切换到飞行
|
||||
-- @tparam bool value 是否飞行
|
||||
function EntityActorProxy:SwitchAirMode(value)
|
||||
self.uActor:SwitchAirMode(value)
|
||||
end
|
||||
|
||||
function EntityActorProxy:ClearActor()
|
||||
self.uActor:ClearActor()
|
||||
|
||||
self.targetPos = nil
|
||||
self.routePoints = nil
|
||||
self.routeConfig = nil
|
||||
|
||||
self.BeFollowLen = 10
|
||||
self.BeFollowFailedLen = 20
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
self.BeFollowFailed = nil
|
||||
self.IsBeLocked = false
|
||||
end
|
||||
|
||||
--Move End
|
||||
|
||||
--Render相关方法
|
||||
-- @section Render
|
||||
|
||||
--- Entity渐隐渐现
|
||||
-- @tparam bool enable true时候显现,false隐掉
|
||||
-- @tparam float duration 变化时长
|
||||
-- @tparam function finishCallback 变化结束时候回调
|
||||
function EntityActorProxy:PerformDither(enable, duration, finishCallback)
|
||||
self.uActor:PerformDither(enable, duration, finishCallback)
|
||||
end
|
||||
|
||||
--- Entity可见或不可见
|
||||
-- @tparam bool value true可见,false不可见
|
||||
function EntityActorProxy:SetVisible(value)
|
||||
self.uActor:SetVisible(value)
|
||||
end
|
||||
|
||||
--- Entity渐隐销毁
|
||||
-- @tparam bool isActorOnly只销毁Actor不销毁Entity
|
||||
-- @tparam float duration 渐隐时长
|
||||
function EntityActorProxy:DestroyWithDither(isActorOnly, duration)
|
||||
self:OnDestroy()
|
||||
self.uActor:DestroyWithDither(isActorOnly, duration)
|
||||
end
|
||||
|
||||
--- Entity消失
|
||||
-- @tparam function finishCallback 消失后的回掉
|
||||
function EntityActorProxy:Disappear(finishCallback)
|
||||
self.uActor:Disappear(finishCallback)
|
||||
end
|
||||
|
||||
--- Entity消失销毁
|
||||
-- @tparam bool isActorOnly只销毁Actor不销毁Entity
|
||||
-- @tparam function finishCallback 消失后的回掉
|
||||
function EntityActorProxy:DestroyWithDisappear(isActorOnly, finishCallback)
|
||||
self.uActor:DestroyWithDisappear(isActorOnly, finishCallback)
|
||||
end
|
||||
|
||||
--- Entity直接消失/显示
|
||||
function EntityActorProxy:SetActive(active)
|
||||
self.uActor:SetActive(active)
|
||||
end
|
||||
|
||||
--Render End
|
||||
|
||||
--AI相关方法
|
||||
-- @section AI
|
||||
|
||||
function EntityActorProxy:ClearThreatTask()
|
||||
self:ClearTask(TaskID.THREAD_TASK_ID)
|
||||
end
|
||||
|
||||
--- 创建一个监测仇恨值的Task
|
||||
-- @tparam function OnThreatInfo Alert(100%)时候的回调
|
||||
-- @tparam function OnThreatAware Aware时候的回调
|
||||
-- @tparam function OnThreatUnaware Unaware时候的回调
|
||||
-- @tparam function OnThreatInfo info更新时候的回调,会包含一个整合了一帧内所有信息的数据 function XXX:OnThreatInfo(task, info) info.hasSound info.soundPos info.volume
|
||||
function EntityActorProxy:ThreatTask(OnThreatAlert, OnThreatAware, OnThreatUnaware, OnThreatInfo)
|
||||
self:ClearThreatTask()
|
||||
local task = self:CreateTask(TaskID.THREAD_TASK_ID, LuaTaskType.THREAT)
|
||||
if OnThreatAlert ~= nil then
|
||||
task:ThreatAlert('+', OnThreatAlert)
|
||||
end
|
||||
if OnThreatAware ~= nil then
|
||||
task:ThreatAware('+', OnThreatAware)
|
||||
end
|
||||
if OnThreatUnaware ~= nil then
|
||||
task:ThreatUnaware('+', OnThreatUnaware)
|
||||
end
|
||||
if OnThreatInfo ~= nil then
|
||||
task:ThreatInfo('+', OnThreatInfo)
|
||||
end
|
||||
end
|
||||
|
||||
--- 创建一个监测仇恨值的Task
|
||||
-- @tparam function dir 方向
|
||||
-- @tparam function time 转向时间
|
||||
-- @tparam function isAnime 是否启用动画
|
||||
-- @tparam function isbreak 是否打断
|
||||
function EntityActorProxy:SteerToTask(dir,time,isAnime,isbreak)
|
||||
local task=self:CreateTask(TaskID.MOVE_TASK_ID,LuaTaskType.STEER)
|
||||
task:StartSteer(dir,time,isAnime,isbreak)
|
||||
task:FinishEvent('+',self.DoFreeStateTrigger)
|
||||
end
|
||||
|
||||
|
||||
|
||||
--Method End
|
||||
|
||||
return EntityActorProxy
|
12
soggy_resources/lua/Actor/Gadget/AirflowFieldActor.lua
Normal file
12
soggy_resources/lua/Actor/Gadget/AirflowFieldActor.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local AirflowFieldActor = class("AirflowFieldActor", gadgetActorProxy)
|
||||
|
||||
function AirflowFieldActor:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function AirflowFieldActor:OnPostComponentPrepare()
|
||||
end
|
||||
|
||||
return AirflowFieldActor
|
35
soggy_resources/lua/Actor/Gadget/CoinTest.lua
Normal file
35
soggy_resources/lua/Actor/Gadget/CoinTest.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local CoinTest = class("CoinTest", gadgetActorProxy)
|
||||
|
||||
CoinTest.defaultAlias = "CoinTest"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q406Cfg = require('Actor/Quest/Q406/Q406Config')
|
||||
|
||||
function CoinTest:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function CoinTest:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(3, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function CoinTest:TriggerIn()
|
||||
q406Cfg.CoinNum = q406Cfg.CoinNum + 1
|
||||
self:CountNumUIUpdate(q406Cfg.CoinNum)
|
||||
local effctPos = self:GetPos()
|
||||
self:PlayEffect("FlyRace_Marker_Active_AS", effctPos)
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function CoinTest:TriggerOut()
|
||||
outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return CoinTest
|
30
soggy_resources/lua/Actor/Gadget/DragonTrigger.lua
Normal file
30
soggy_resources/lua/Actor/Gadget/DragonTrigger.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local DragonTrigger = class("DragonTrigger", gadgetActorProxy)
|
||||
|
||||
DragonTrigger.defaultAlias = "DragonTrigger"
|
||||
|
||||
local q361Cfg = require('Quest/Client/Q361ClientConfig')
|
||||
|
||||
function DragonTrigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function DragonTrigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(57, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function DragonTrigger:TriggerIn()
|
||||
end
|
||||
|
||||
function DragonTrigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out DragonTrigger")
|
||||
local quest = actorMgr:GetActor(q361Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
end
|
||||
|
||||
return DragonTrigger
|
139
soggy_resources/lua/Actor/Gadget/GadgetActorProxy.lua
Normal file
139
soggy_resources/lua/Actor/Gadget/GadgetActorProxy.lua
Normal file
@@ -0,0 +1,139 @@
|
||||
----------------------
|
||||
-- 这是Lua端GadgetActor的基类,用于自定义实现本地行为的Gadget。继承自EntityActorProxy
|
||||
-- @classmod GadgetActorProxy
|
||||
require('Actor/ActorCommon')
|
||||
local entityActorProxy = require('Actor/EntityActorProxy')
|
||||
|
||||
local GadgetActorProxy = class("GadgetActorProxy", entityActorProxy)
|
||||
|
||||
GadgetActorProxy.actorType = ActorType.GADGET_ACTOR
|
||||
|
||||
local super = nil
|
||||
|
||||
function GadgetActorProxy:OnPreInit()
|
||||
super = self.__super
|
||||
super:OnPreInit()
|
||||
end
|
||||
|
||||
function GadgetActorProxy:PreGetAlias()
|
||||
return nil
|
||||
end
|
||||
|
||||
function GadgetActorProxy:CreateGadgetUActor(alias)
|
||||
local uActor = actorUtils.CreateActor(self, ActorType.GADGET_ACTOR, alias, self.metaPath)
|
||||
if self.bornPos == nil then
|
||||
self.bornPos = M.Pos(0, 0, 0)
|
||||
end
|
||||
if self.bornDir == nil then
|
||||
self.bornDir = M.Pos(0, 0, 0)
|
||||
end
|
||||
uActor = actorUtils.CreateGadgeActor(self.configID, self.bornPos, self.bornDir, uActor, self.actorData)
|
||||
return uActor
|
||||
end
|
||||
|
||||
function GadgetActorProxy:CreateUActor(alias)
|
||||
return self:CreateGadgetUActor(alias)
|
||||
end
|
||||
|
||||
function GadgetActorProxy:OnPostInit()
|
||||
if self.uActor ~= nil then
|
||||
self.uActor:TryStartActor()
|
||||
end
|
||||
self:OnPostDataPrepare()
|
||||
self:OnPostComponentPrepare()
|
||||
self:OnUActorPostInit()
|
||||
end
|
||||
function GadgetActorProxy:OnPostComponentPrepare()
|
||||
end
|
||||
function GadgetActorProxy:OnUActorPostInit()
|
||||
if self.uActor ~= nil then
|
||||
actorUtils.PostInitGadgetActor(self.uActor)
|
||||
end
|
||||
end
|
||||
|
||||
--- GadgetActor添加组件的方法
|
||||
-- @section component
|
||||
|
||||
GadgetActorProxy.isTriggerIn = false
|
||||
GadgetActorProxy.checkTimeGap = 0.1
|
||||
GadgetActorProxy.timeCnt = 0
|
||||
GadgetActorProxy.targetTime = 0
|
||||
GadgetActorProxy.triggerInHandler = nil
|
||||
GadgetActorProxy.triggerOutHandler = nil
|
||||
GadgetActorProxy.triggerTickHandler = nil
|
||||
function GadgetActorProxy:DefaultTriggerIn()
|
||||
self.isTriggerIn = true
|
||||
if self.triggerInHandler ~= nil then
|
||||
self:triggerInHandler()
|
||||
end
|
||||
end
|
||||
function GadgetActorProxy:DefaultTriggerOut()
|
||||
self.isTriggerIn = false
|
||||
if self.triggerOutHandler ~= nil then
|
||||
self:triggerOutHandler()
|
||||
end
|
||||
end
|
||||
|
||||
GadgetActorProxy.triggerDelayOutHandler = nil
|
||||
function GadgetActorProxy:DefaultTriggerDelayOut()
|
||||
if self.triggerDelayOutHandler ~= nil then
|
||||
self:triggerDelayOutHandler()
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
function GadgetActorProxy:CheckDelayTimeOut()
|
||||
if self.isTriggerIn then
|
||||
self.timeCnt = 0
|
||||
else
|
||||
self.timeCnt = self.timeCnt + self.checkTimeGap
|
||||
if self.timeCnt >= self.targetTime then
|
||||
self:DefaultTriggerDelayOut()
|
||||
self.timeCnt = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- 添加一个简单的Trigger组件
|
||||
-- @tparam float dist 距离多少内算触发
|
||||
-- @tparam DistType distType 距离类型,参考DistType
|
||||
-- @tparam Vector3 offset 角色脚底偏移多少作为核心去计算
|
||||
-- @tparam function triggerIn 进入时候触发的函数
|
||||
-- @tparam function triggerOut 出来时候触发的函数
|
||||
-- @tparam function triggerTick 帧Tick时候的触发的函数
|
||||
function GadgetActorProxy:AddComponentTrigger(dist, distType, offset, triggerIn, triggerOut, triggerTick)
|
||||
self.uActor:AddSimpleTrigger(dist, distType, offset, triggerIn, triggerOut, triggerTick)
|
||||
end
|
||||
|
||||
--- 添加一个超区域会有计时逻辑的Trigger组件
|
||||
-- @tparam float dist 距离多少内算触发
|
||||
-- @tparam DistType distType 距离类型,参考DistType
|
||||
-- @tparam Vector3 offset 角色脚底偏移多少作为核心去计算
|
||||
-- @tparam float delayTime 延迟的秒数
|
||||
-- @tparam function triggerIn 进入时候触发的函数
|
||||
-- @tparam function triggerOut 出来时候触发的函数
|
||||
function GadgetActorProxy:AddTimeDelayOutTrigger(dist, distType, delayTime, offset, triggerIn, triggerOut, triggerDelayOut)
|
||||
self.timeCnt = 0
|
||||
self.targetTime = delayTime
|
||||
self.triggerInHandler = triggerIn
|
||||
self.triggerOutHandler = triggerOut
|
||||
self.triggerDelayOutHandler = triggerDelayOut
|
||||
self.uActor:AddSimpleTrigger(dist, distType, offset, self.DefaultTriggerIn, self.DefaultTriggerOut, self.CheckDelayTimeOut)
|
||||
end
|
||||
|
||||
--- 添加一个功能齐全的Trigger组件
|
||||
-- @tparam ShapeData shapeData
|
||||
-- @tparam function triggerIn 进入时候触发的函数
|
||||
-- @tparam function triggerOut 出来时候触发的函数
|
||||
-- @tparam function triggerTick 每次更新周期触发的函数
|
||||
function GadgetActorProxy:AddCommonTrigger(shapeData, triggerIn, triggerOut, triggerTick)
|
||||
self.uActor:AddCommonTrigger(shapeData, triggerIn, triggerOut, triggerTick)
|
||||
end
|
||||
|
||||
--- 销毁Gadget
|
||||
function GadgetActorProxy:DestroySelf()
|
||||
self:ClearInfo()
|
||||
self:Destroy(false)
|
||||
actorMgr:ClearActor(self.alias)
|
||||
end
|
||||
|
||||
return GadgetActorProxy
|
52
soggy_resources/lua/Actor/Gadget/GadgetFactory.lua
Normal file
52
soggy_resources/lua/Actor/Gadget/GadgetFactory.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
----------------------
|
||||
-- 这是Lua端GadgetFactory,包含了创建特殊GadgetActor的方法
|
||||
-- @module GadgetFactory
|
||||
actorMgr = actorMgr or require('Actor/ActorManager')
|
||||
|
||||
local GadgetFactory = {}
|
||||
|
||||
GadgetFactory.PATH_QUEST_AREA = "Actor/Gadget/QuestArea"
|
||||
|
||||
GadgetFactory.PostProcessCreateActor = function(alias, actor)
|
||||
local preAlias = actor:PreGetAlias()
|
||||
actor:OnPreInit()
|
||||
if alias == nil or alias == '' then
|
||||
if preAlias ~= nil then
|
||||
alias = preAlias
|
||||
else
|
||||
alias = actor.defaultAlias
|
||||
end
|
||||
end
|
||||
|
||||
actor.alias = alias
|
||||
actorMgr.ActorDic[alias] = actor
|
||||
|
||||
actor:OnInit(alias)
|
||||
actor:OnPostInit()
|
||||
end
|
||||
|
||||
--- 创建任务区域
|
||||
GadgetFactory.CreateQuestArea = function(alias, configID, bornPos, areaRadius, delayTime, OnAreaIn, OnAreaOut, OnAreaDelayOut)
|
||||
local actor = actorMgr:GetActor(alias)
|
||||
if actor == nil then
|
||||
local metaActor = require(GadgetFactory.PATH_QUEST_AREA)
|
||||
actor = metaActor:new()
|
||||
actor.configID = configID
|
||||
actor.bornPos = bornPos
|
||||
actor.areaRadius = areaRadius
|
||||
actor.targetTime = delayTime
|
||||
actor.questAreaInHandler = OnAreaIn
|
||||
actor.questAreaOutHandler = OnAreaOut
|
||||
actor.questAreaDelayOutHandler = OnAreaDelayOut
|
||||
actor.isAutoStart = true
|
||||
|
||||
GadgetFactory.PostProcessCreateActor(alias, actor)
|
||||
else
|
||||
if actor.SetPos ~= nil then
|
||||
actor:SetPos(bornPos)
|
||||
end
|
||||
end
|
||||
return actor
|
||||
end
|
||||
|
||||
return GadgetFactory
|
44
soggy_resources/lua/Actor/Gadget/GoalMarker404.lua
Normal file
44
soggy_resources/lua/Actor/Gadget/GoalMarker404.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local GoalMarker404 = class("GoalMarker404", gadgetActorProxy)
|
||||
|
||||
GoalMarker404.defaultAlias = "GoalMarker404"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q404Cfg = require('Actor/Quest/Q404/Q404Config')
|
||||
|
||||
function GoalMarker404:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function GoalMarker404:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(4, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function GoalMarker404:TriggerIn()
|
||||
print("Enter Goal")
|
||||
local goalMarkerAS = actorMgr:CreateActorWithPos("GoalMarkerAs404", "Actor/Gadget/GoalMarkerAS", 70300005, 0, q404Cfg.KeyPos, q404Cfg.KeyDir, false, false)
|
||||
goalMarkerAS:CallDelay(5, goalMarkerAS.DestroySelf)
|
||||
local goalMarkerAS2 = actorMgr:CreateActorWithPos("GoalMarkerAs4042", "Actor/Gadget/GoalMarkerAS", 70300005, 0, q404Cfg.KeyPos2, q404Cfg.KeyDir2, false, false)
|
||||
goalMarkerAS2:CallDelay(5, goalMarkerAS2.DestroySelf)
|
||||
local effctPos = self:GetPos()
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
q404Cfg.gotKey = true
|
||||
local quest = actorMgr:GetActor(q404Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
print("Finished Fly")
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function GoalMarker404:TriggerOut()
|
||||
outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return GoalMarker404
|
42
soggy_resources/lua/Actor/Gadget/GoalMarker405.lua
Normal file
42
soggy_resources/lua/Actor/Gadget/GoalMarker405.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local GoalMarker405 = class("GoalMarker405", gadgetActorProxy)
|
||||
|
||||
GoalMarker405.defaultAlias = "GoalMarker405"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q405Cfg = require('Actor/Quest/Q405/Q405Config')
|
||||
|
||||
function GoalMarker405:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function GoalMarker405:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(4, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function GoalMarker405:TriggerIn()
|
||||
print("Enter Goal")
|
||||
local goalMarkerAS = actorMgr:CreateActorWithPos("GoalMarkerAs405", "Actor/Gadget/GoalMarkerAS", 70300005, 0, q405Cfg.KeyPos, q405Cfg.KeyDir, true, false)
|
||||
goalMarkerAS:CallDelay(5, goalMarkerAS.DestroySelf)
|
||||
local effctPos = self:GetPos()
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
q405Cfg.gotKey = true
|
||||
local quest = actorMgr:GetActor(q405Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
print("Finished Fly")
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function GoalMarker405:TriggerOut()
|
||||
outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return GoalMarker405
|
40
soggy_resources/lua/Actor/Gadget/GoalMarker408.lua
Normal file
40
soggy_resources/lua/Actor/Gadget/GoalMarker408.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local GoalMarker408 = class("GoalMarker408", gadgetActorProxy)
|
||||
|
||||
GoalMarker408.defaultAlias = "GoalMarker408"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q408Cfg = require('Actor/Quest/Q408/Q408Config')
|
||||
|
||||
function GoalMarker408:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function GoalMarker408:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(4, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function GoalMarker408:TriggerIn()
|
||||
print("Enter Goal")
|
||||
local goalMarkerAS = actorMgr:CreateActorWithPos("GoalMarkerAs408", "Actor/Gadget/GoalMarkerAS", 70300005, 0, q408Cfg.KeyPos, q408Cfg.KeyDir, true, false)
|
||||
goalMarkerAS:CallDelay(5, goalMarkerAS.DestroySelf)
|
||||
local effctPos = self:GetPos()
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
q408Cfg.gotKey = true
|
||||
local quest = actorMgr:GetActor(q408Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
print("Finished RiverRun")
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function GoalMarker408:TriggerOut()
|
||||
outCnt = outCnt + 1
|
||||
end
|
||||
|
||||
return GoalMarker408
|
53
soggy_resources/lua/Actor/Gadget/GoalMarker409.lua
Normal file
53
soggy_resources/lua/Actor/Gadget/GoalMarker409.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local GoalMarker409 = class("GoalMarker409", gadgetActorProxy)
|
||||
|
||||
GoalMarker409.defaultAlias = "GoalMarker409"
|
||||
|
||||
GoalMarker409.shapeData =
|
||||
{
|
||||
shapeName = "CircleR2",
|
||||
shapePosOffset = {x = 0, y = 0, z = 0},
|
||||
shapeEulerOffset = {x = 0, y = 0, z = 0},
|
||||
shapeHeight = 0.0,
|
||||
campID = campHelper.CAMP_PLAYER,
|
||||
targetType = TargetType.AllExceptSelf,
|
||||
liftType = TimerLimitType.Infinite,
|
||||
liftTime = 0.0,
|
||||
triggerType = TimerLimitType.Infinite,
|
||||
checkCD = 0.15,
|
||||
}
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q409Cfg = require('Actor/Quest/Q409/Q409Config')
|
||||
|
||||
function GoalMarker409:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function GoalMarker409:OnPostComponentPrepare()
|
||||
self:AddCommonTrigger(self.shapeData, self.TriggerIn, self.TriggerOut, self.TriggerTick)
|
||||
end
|
||||
|
||||
function GoalMarker409:TriggerIn(configID, alias)
|
||||
print("**************GoalMarker409:TriggerIn")
|
||||
if configID == q409Cfg.BallMonsterID then
|
||||
q409Cfg.Score = q409Cfg.Score + 1
|
||||
self:CountNumUIUpdate(q409Cfg.Score)
|
||||
local effctPos = self:GetPos()
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
end
|
||||
end
|
||||
|
||||
function GoalMarker409:TriggerOut(configID, alias)
|
||||
print("TriggerOut")
|
||||
end
|
||||
|
||||
function GoalMarker409:TriggerTick(configID, alias)
|
||||
print("TriggerTick")
|
||||
end
|
||||
|
||||
return GoalMarker409
|
34
soggy_resources/lua/Actor/Gadget/GoalMarkerAS.lua
Normal file
34
soggy_resources/lua/Actor/Gadget/GoalMarkerAS.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local GoalMarkerAS = class("GoalMarkerAS", gadgetActorProxy)
|
||||
|
||||
GoalMarkerAS.defaultAlias = "GoalMarkerAS"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
|
||||
function GoalMarkerAS:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function GoalMarkerAS:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(2, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function GoalMarkerAS:TriggerIn()
|
||||
--inCnt = inCnt + 1
|
||||
-- q406Cfg.CoinNum = q406Cfg.CoinNum + 1
|
||||
-- self:CountNumUIUpdate(q406Cfg.CoinNum)
|
||||
-- self:DestroySelf()
|
||||
--print("Enter " .. tostring(inCnt))
|
||||
end
|
||||
|
||||
function GoalMarkerAS:TriggerOut()
|
||||
outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return GoalMarkerAS
|
30
soggy_resources/lua/Actor/Gadget/Q351Trigger1.lua
Normal file
30
soggy_resources/lua/Actor/Gadget/Q351Trigger1.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q351Trigger1 = class("Q351Trigger1", gadgetActorProxy)
|
||||
|
||||
Q351Trigger1.defaultAlias = "Q351Trigger1"
|
||||
|
||||
local q351Cfg = require('Quest/Client/Q351ClientConfig')
|
||||
|
||||
function Q351Trigger1:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q351Trigger1:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(2, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q351Trigger1:TriggerIn()
|
||||
end
|
||||
|
||||
function Q351Trigger1:TriggerOut()
|
||||
print("Exit " .. tostring(outCnt))
|
||||
print("Out Q351Trigger1")
|
||||
local quest = actorMgr:GetActor(q351Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 35100)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q351Trigger1
|
33
soggy_resources/lua/Actor/Gadget/Q353Trigger1.lua
Normal file
33
soggy_resources/lua/Actor/Gadget/Q353Trigger1.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q353Trigger1 = class("Q353Trigger1", gadgetActorProxy)
|
||||
|
||||
Q353Trigger1.defaultAlias = "Q353Trigger1"
|
||||
|
||||
local q353Cfg = require('Quest/Client/Q353ClientConfig')
|
||||
|
||||
function Q353Trigger1:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q353Trigger1:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(30, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q353Trigger1:TriggerIn()
|
||||
end
|
||||
|
||||
function Q353Trigger1:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out Q353Trigger1")
|
||||
-- actorUtils.ShowMessage("已离开任务区域,任务失败")
|
||||
self:TransmitPlayer(3, sceneData:GetDummyPoint(3, "Q353SetAvatar").pos, sceneData:GetDummyPoint(3, "Q353SetAvatar").rot)
|
||||
-- local quest = actorMgr:GetActor(q353Cfg.ActorAlias)
|
||||
-- if quest ~= nil then
|
||||
-- quest:FinishQuestID(true, 35312)
|
||||
-- end
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q353Trigger1
|
28
soggy_resources/lua/Actor/Gadget/Q353Trigger2.lua
Normal file
28
soggy_resources/lua/Actor/Gadget/Q353Trigger2.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q353Trigger2 = class("Q353Trigger2", gadgetActorProxy)
|
||||
|
||||
Q353Trigger2.defaultAlias = "Q353Trigger2"
|
||||
|
||||
local q353Cfg = require('Quest/Client/Q353ClientConfig')
|
||||
|
||||
function Q353Trigger2:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q353Trigger2:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(25, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q353Trigger2:TriggerIn()
|
||||
end
|
||||
|
||||
function Q353Trigger2:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out Q353Trigger2")
|
||||
--actorUtils.ShowMessage("正在离开任务区域,请尽快返回")
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q353Trigger2
|
30
soggy_resources/lua/Actor/Gadget/Q354Trigger1.lua
Normal file
30
soggy_resources/lua/Actor/Gadget/Q354Trigger1.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q354Trigger1 = class("Q354Trigger1", gadgetActorProxy)
|
||||
|
||||
Q354Trigger1.defaultAlias = "Q354Trigger1"
|
||||
|
||||
local q354Cfg = require('Quest/Client/Q354ClientConfig')
|
||||
|
||||
function Q354Trigger1:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q354Trigger1:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(2, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q354Trigger1:TriggerIn()
|
||||
end
|
||||
|
||||
function Q354Trigger1:TriggerOut()
|
||||
print("Exit " .. tostring(outCnt))
|
||||
print("Out Q354Trigger1")
|
||||
local quest = actorMgr:GetActor(q354Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 35405)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q354Trigger1
|
30
soggy_resources/lua/Actor/Gadget/Q371Trigger.lua
Normal file
30
soggy_resources/lua/Actor/Gadget/Q371Trigger.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q371Trigger = class("Q371Trigger", gadgetActorProxy)
|
||||
|
||||
Q371Trigger.defaultAlias = "Q371Trigger"
|
||||
|
||||
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
|
||||
function Q371Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q371Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(8, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q371Trigger:TriggerIn()
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q371Trigger:TriggerOut()
|
||||
end
|
||||
|
||||
return Q371Trigger
|
36
soggy_resources/lua/Actor/Gadget/Q377Trigger.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/Q377Trigger.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q377Trigger = class("Q377Trigger", gadgetActorProxy)
|
||||
|
||||
Q377Trigger.defaultAlias = "Q377Trigger"
|
||||
|
||||
local q377Cfg = require('Quest/Client/Q377ClientConfig')
|
||||
|
||||
-- local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||||
-- local Questnew = class("Questnew", questActorProxy)
|
||||
-- Questnew.defaultAlias = "Questnew"
|
||||
-- local Quest377 = require('Quest/MQ377')
|
||||
|
||||
function Q377Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q377Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(5, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q377Trigger:TriggerIn()
|
||||
print("Out Q377Trigger")
|
||||
local quest = actorMgr:GetActor(q377Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q377Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q377Trigger
|
36
soggy_resources/lua/Actor/Gadget/Q378Trigger.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/Q378Trigger.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q378Trigger = class("Q378Trigger", gadgetActorProxy)
|
||||
|
||||
Q378Trigger.defaultAlias = "Q378Trigger"
|
||||
|
||||
local q378Cfg = require('Quest/Client/Q378ClientConfig')
|
||||
|
||||
-- local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||||
-- local Questnew = class("Questnew", questActorProxy)
|
||||
-- Questnew.defaultAlias = "Questnew"
|
||||
-- local Quest378 = require('Quest/MQ378')
|
||||
|
||||
function Q378Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q378Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(8, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q378Trigger:TriggerIn()
|
||||
print("Out Q378Trigger")
|
||||
local quest = actorMgr:GetActor(q378Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q378Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q378Trigger
|
31
soggy_resources/lua/Actor/Gadget/Q380TriggerArea.lua
Normal file
31
soggy_resources/lua/Actor/Gadget/Q380TriggerArea.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q380Trigger = class("Q380Trigger", gadgetActorProxy)
|
||||
|
||||
Q380Trigger.defaultAlias = "Q380Trigger"
|
||||
|
||||
local q380Cfg = require('Quest/Client/Q380ClientConfig')
|
||||
|
||||
function Q380Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q380Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(70, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q380Trigger:TriggerIn()
|
||||
print("Out Q380Trigger")
|
||||
local quest = actorMgr:GetActor(q380Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q380Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q380Trigger
|
31
soggy_resources/lua/Actor/Gadget/Q381Trigger.lua
Normal file
31
soggy_resources/lua/Actor/Gadget/Q381Trigger.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q381Trigger = class("Q381Trigger", gadgetActorProxy)
|
||||
|
||||
Q381Trigger.defaultAlias = "Q381Trigger"
|
||||
|
||||
local q381Cfg = require('Quest/Client/Q381ClientConfig')
|
||||
|
||||
function Q381Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q381Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(5, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q381Trigger:TriggerIn()
|
||||
print("Out Q381Trigger")
|
||||
local quest = actorMgr:GetActor(q381Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q381Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q381Trigger
|
31
soggy_resources/lua/Actor/Gadget/Q382Trigger.lua
Normal file
31
soggy_resources/lua/Actor/Gadget/Q382Trigger.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q382Trigger = class("Q382Trigger", gadgetActorProxy)
|
||||
|
||||
Q382Trigger.defaultAlias = "Q382Trigger"
|
||||
|
||||
local q382Cfg = require('Quest/Client/Q382ClientConfig')
|
||||
|
||||
function Q382Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q382Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(5, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q382Trigger:TriggerIn()
|
||||
print("Out Q382Trigger")
|
||||
local quest = actorMgr:GetActor(q382Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q382Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q382Trigger
|
36
soggy_resources/lua/Actor/Gadget/Q384Trigger.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/Q384Trigger.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q384Trigger = class("Q384Trigger", gadgetActorProxy)
|
||||
|
||||
Q384Trigger.defaultAlias = "Q384Trigger"
|
||||
|
||||
local q384Cfg = require('Quest/Client/Q384ClientConfig')
|
||||
|
||||
-- local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||||
-- local Questnew = class("Questnew", questActorProxy)
|
||||
-- Questnew.defaultAlias = "Questnew"
|
||||
-- local Quest384 = require('Quest/MQ384')
|
||||
|
||||
function Q384Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q384Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(30, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q384Trigger:TriggerIn()
|
||||
print("Out Q384Trigger")
|
||||
local quest = actorMgr:GetActor(q384Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q384Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q384Trigger
|
36
soggy_resources/lua/Actor/Gadget/Q384TriggerSP.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/Q384TriggerSP.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q384TriggerSP = class("Q384TriggerSP", gadgetActorProxy)
|
||||
|
||||
Q384TriggerSP.defaultAlias = "Q384TriggerSP"
|
||||
|
||||
local q384Cfg = require('Quest/Client/Q384ClientConfig')
|
||||
|
||||
-- local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||||
-- local Questnew = class("Questnew", questActorProxy)
|
||||
-- Questnew.defaultAlias = "Questnew"
|
||||
-- local Quest384 = require('Quest/MQ384')
|
||||
|
||||
function Q384TriggerSP:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q384TriggerSP:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(6, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q384TriggerSP:TriggerIn()
|
||||
print("Out Q384TriggerSP")
|
||||
local quest = actorMgr:GetActor(q384Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q384TriggerSP:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q384TriggerSP
|
36
soggy_resources/lua/Actor/Gadget/Q395Trigger.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/Q395Trigger.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q395Trigger = class("Q395Trigger", gadgetActorProxy)
|
||||
|
||||
Q395Trigger.defaultAlias = "Q395Trigger"
|
||||
|
||||
local q395Cfg = require('Quest/Client/Q395ClientConfig')
|
||||
|
||||
-- local questActorProxy = require('Actor/Quest/QuestActorProxy')
|
||||
-- local Questnew = class("Questnew", questActorProxy)
|
||||
-- Questnew.defaultAlias = "Questnew"
|
||||
-- local Quest395 = require('Quest/MQ395')
|
||||
|
||||
function Q395Trigger:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q395Trigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(8, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q395Trigger:TriggerIn()
|
||||
print("Out Q395Trigger")
|
||||
local quest = actorMgr:GetActor(q395Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function Q395Trigger:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return Q395Trigger
|
75
soggy_resources/lua/Actor/Gadget/Q427FlyCoins.lua
Normal file
75
soggy_resources/lua/Actor/Gadget/Q427FlyCoins.lua
Normal file
@@ -0,0 +1,75 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q427FlyCoins = class("Q427FlyCoins", gadgetActorProxy)
|
||||
|
||||
Q427FlyCoins.defaultAlias = "Q427FlyCoins"
|
||||
|
||||
-- local q427Cfg = require('Quest/Client/Q427ClientConfig')
|
||||
|
||||
-- local function EndGame()
|
||||
|
||||
-- end
|
||||
|
||||
local function CreateNext()
|
||||
if q427Cfg.NowBatchNum <= q427Cfg.BatchNum then
|
||||
for i=1, #q427Cfg.FlyCoins[q427Cfg.NowBatchNum] do
|
||||
actorMgr:CreateActorWithPos("Q427FlyCoins" .. tostring(i), "Actor/Gadget/Q427FlyCoins", 70300064, 0, q427Cfg.FlyCoins[q427Cfg.NowBatchNum][i].pos, q427Cfg.FlyCoins[q427Cfg.NowBatchNum][i].rot, true, false)
|
||||
end
|
||||
-- else
|
||||
-- for i=1, #q427Cfg.Flyline2-1 do
|
||||
-- local AccDir = { x = q427Cfg.Flyline2[i+1].x-q427Cfg.Flyline2[i].x, y = q427Cfg.Flyline2[i+1].y-q427Cfg.Flyline2[i].y, z = q427Cfg.Flyline2[i+1].z-q427Cfg.Flyline2[i].z }
|
||||
-- actorMgr:SpawnGadget(70690001, q427Cfg.Flyline2[i], M.Dir2Euler(AccDir), "Acc6" .. tostring(i))
|
||||
-- end
|
||||
end
|
||||
end
|
||||
|
||||
function Q427FlyCoins:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q427FlyCoins:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(3, DistType.EULER, M.Pos(0, 0, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q427FlyCoins:TriggerIn()
|
||||
print("TotalGetNum is", q427Cfg.TotalGetNum)
|
||||
print("CoinNum is", q427Cfg.CoinNum)
|
||||
print("NowBatchNum is", q427Cfg.NowBatchNum)
|
||||
|
||||
q427Cfg.TotalGetNum = q427Cfg.TotalGetNum +1
|
||||
if q427Cfg.TotalGetNum == 1 then
|
||||
self:CountNumUIStart()
|
||||
end
|
||||
self:CountNumUIUpdate(q427Cfg.TotalGetNum)
|
||||
|
||||
local effctPos = self:GetPos()
|
||||
if q427Cfg.TotalGetNum < q427Cfg.CoinNum then
|
||||
self:PlayEffect("FlyRace_Marker_Active_AS", effctPos)
|
||||
else
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
self:CountNumUITerminate()
|
||||
local quest = actorMgr:GetActor(q427Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 42702)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
self:DestroySelf()
|
||||
|
||||
q427Cfg.EachGetNum = q427Cfg.EachGetNum +1
|
||||
if q427Cfg.EachGetNum == #q427Cfg.FlyCoins[q427Cfg.NowBatchNum] then
|
||||
q427Cfg.EachGetNum = 0
|
||||
q427Cfg.NowBatchNum = q427Cfg.NowBatchNum +1
|
||||
CreateNext()
|
||||
else
|
||||
-- dosth
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function Q427FlyCoins:TriggerOut()
|
||||
|
||||
end
|
||||
|
||||
return Q427FlyCoins
|
75
soggy_resources/lua/Actor/Gadget/Q427FlyCoins2.lua
Normal file
75
soggy_resources/lua/Actor/Gadget/Q427FlyCoins2.lua
Normal file
@@ -0,0 +1,75 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q427FlyCoins2 = class("Q427FlyCoins2", gadgetActorProxy)
|
||||
|
||||
Q427FlyCoins2.defaultAlias = "Q427FlyCoins2"
|
||||
|
||||
-- local q427Cfg = require('Quest/Client/Q427ClientConfig')
|
||||
|
||||
-- local function EndGame()
|
||||
|
||||
-- end
|
||||
|
||||
local function CreateNext()
|
||||
if q427Cfg.NowBatchNum2 <= q427Cfg.BatchNum2 then
|
||||
for i=1, #q427Cfg.FlyCoins2[q427Cfg.NowBatchNum2] do
|
||||
actorMgr:CreateActorWithPos("Q427FlyCoins2" .. tostring(i), "Actor/Gadget/Q427FlyCoins2", 70300064, 0, q427Cfg.FlyCoins2[q427Cfg.NowBatchNum2][i].pos, q427Cfg.FlyCoins2[q427Cfg.NowBatchNum2][i].rot, true, false)
|
||||
end
|
||||
-- else
|
||||
-- for i=1, #q427Cfg.Flyline2-1 do
|
||||
-- local AccDir = { x = q427Cfg.Flyline2[i+1].x-q427Cfg.Flyline2[i].x, y = q427Cfg.Flyline2[i+1].y-q427Cfg.Flyline2[i].y, z = q427Cfg.Flyline2[i+1].z-q427Cfg.Flyline2[i].z }
|
||||
-- actorMgr:SpawnGadget(70690001, q427Cfg.Flyline2[i], M.Dir2Euler(AccDir), "Acc6" .. tostring(i))
|
||||
-- end
|
||||
end
|
||||
end
|
||||
|
||||
function Q427FlyCoins2:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q427FlyCoins2:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(3, DistType.EULER, M.Pos(0, 0, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q427FlyCoins2:TriggerIn()
|
||||
print("TotalGetNum2 is", q427Cfg.TotalGetNum2)
|
||||
print("CoinNum2 is", q427Cfg.CoinNum2)
|
||||
print("NowBatchNum2 is", q427Cfg.NowBatchNum2)
|
||||
|
||||
q427Cfg.TotalGetNum2 = q427Cfg.TotalGetNum2 +1
|
||||
if q427Cfg.TotalGetNum2 == 1 then
|
||||
self:CountNumUIStart()
|
||||
end
|
||||
self:CountNumUIUpdate(q427Cfg.TotalGetNum2)
|
||||
|
||||
local effctPos = self:GetPos()
|
||||
if q427Cfg.TotalGetNum2 < q427Cfg.CoinNum2 then
|
||||
self:PlayEffect("FlyRace_Marker_Active_AS", effctPos)
|
||||
else
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
self:CountNumUITerminate()
|
||||
local quest = actorMgr:GetActor(q427Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 42705)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
self:DestroySelf()
|
||||
|
||||
q427Cfg.EachGetNum2 = q427Cfg.EachGetNum2 +1
|
||||
if q427Cfg.EachGetNum2 == #q427Cfg.FlyCoins2[q427Cfg.NowBatchNum2] then
|
||||
q427Cfg.EachGetNum2 = 0
|
||||
q427Cfg.NowBatchNum2 = q427Cfg.NowBatchNum2 +1
|
||||
CreateNext()
|
||||
else
|
||||
-- dosth
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function Q427FlyCoins2:TriggerOut()
|
||||
|
||||
end
|
||||
|
||||
return Q427FlyCoins2
|
30
soggy_resources/lua/Actor/Gadget/Q466Trigger1.lua
Normal file
30
soggy_resources/lua/Actor/Gadget/Q466Trigger1.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q466Trigger1 = class("Q466Trigger1", gadgetActorProxy)
|
||||
|
||||
Q466Trigger1.defaultAlias = "Q466Trigger1"
|
||||
|
||||
local q466Cfg = require('Quest/Client/Q466ClientConfig')
|
||||
|
||||
function Q466Trigger1:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q466Trigger1:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(60, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q466Trigger1:TriggerIn()
|
||||
end
|
||||
|
||||
function Q466Trigger1:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out Q466Trigger1")
|
||||
local quest = actorMgr:GetActor(q466Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(true, nil)
|
||||
end
|
||||
end
|
||||
|
||||
return Q466Trigger1
|
30
soggy_resources/lua/Actor/Gadget/Q466Trigger2.lua
Normal file
30
soggy_resources/lua/Actor/Gadget/Q466Trigger2.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q466Trigger2 = class("Q466Trigger2", gadgetActorProxy)
|
||||
|
||||
Q466Trigger2.defaultAlias = "Q466Trigger2"
|
||||
|
||||
local q466Cfg = require('Quest/Client/Q466ClientConfig')
|
||||
|
||||
function Q466Trigger2:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q466Trigger2:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(65, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q466Trigger2:TriggerIn()
|
||||
end
|
||||
|
||||
function Q466Trigger2:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out Q466Trigger2")
|
||||
local quest = actorMgr:GetActor(q466Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(true, nil)
|
||||
end
|
||||
end
|
||||
|
||||
return Q466Trigger2
|
31
soggy_resources/lua/Actor/Gadget/Q466Trigger3.lua
Normal file
31
soggy_resources/lua/Actor/Gadget/Q466Trigger3.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q466trigger3 = class("Q466trigger3", gadgetActorProxy)
|
||||
|
||||
Q466trigger3.defaultAlias = "Q466trigger3"
|
||||
|
||||
local q466Cfg = require('Quest/Client/Q466ClientConfig')
|
||||
|
||||
function Q466trigger3:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q466trigger3:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(50, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q466trigger3:TriggerIn()
|
||||
end
|
||||
|
||||
function Q466trigger3:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out Q466trigger3")
|
||||
self:NarratorOnlyTask(q466Cfg.NarratorData.Story6)
|
||||
--[[ local quest = actorMgr:GetActor(q466Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(true, nil)
|
||||
end ]]
|
||||
end
|
||||
|
||||
return Q466trigger3
|
31
soggy_resources/lua/Actor/Gadget/Q466Trigger4.lua
Normal file
31
soggy_resources/lua/Actor/Gadget/Q466Trigger4.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local Q466trigger4 = class("Q466trigger4", gadgetActorProxy)
|
||||
|
||||
Q466trigger4.defaultAlias = "Q466trigger4"
|
||||
|
||||
local q466Cfg = require('Quest/Client/Q466ClientConfig')
|
||||
|
||||
function Q466trigger4:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function Q466trigger4:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(60, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function Q466trigger4:TriggerIn()
|
||||
end
|
||||
|
||||
function Q466trigger4:TriggerOut()
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
print("Out Q466trigger4")
|
||||
self:NarratorOnlyTask(q466Cfg.NarratorData.Story6)
|
||||
--[[ local quest = actorMgr:GetActor(q466Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(true, nil)
|
||||
end ]]
|
||||
end
|
||||
|
||||
return Q466trigger4
|
40
soggy_resources/lua/Actor/Gadget/QuestArea.lua
Normal file
40
soggy_resources/lua/Actor/Gadget/QuestArea.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local QuestArea = class("QuestArea", gadgetActorProxy)
|
||||
|
||||
QuestArea.defaultAlias = "QuestArea"
|
||||
QuestArea.areaRadius = 100
|
||||
QuestArea.areaDistType = DistType.EULER_XZ
|
||||
QuestArea.avatarOffset = M.Pos(0, 0, 0)
|
||||
QuestArea.questAreaInHandler = nil
|
||||
QuestArea.questAreaOutHandler = nil
|
||||
QuestArea.questAreaDelayOutHandler = nil
|
||||
|
||||
function QuestArea:OnPostComponentPrepare()
|
||||
self:AddTimeDelayOutTrigger(self.areaRadius, self.areaDistType, self.targetTime, self.avatarOffset,
|
||||
self.questTriggerInHandler, self.questTriggerOutHandler, self.questTriggerDelayOutHandler)
|
||||
end
|
||||
|
||||
function QuestArea:questTriggerInHandler()
|
||||
print("show quest area in ui")
|
||||
if self.questAreaInHandler ~= nil then
|
||||
self:questAreaInHandler()
|
||||
end
|
||||
end
|
||||
|
||||
function QuestArea:questTriggerOutHandler()
|
||||
print("show quest area out ui")
|
||||
if self.questAreaOutHandler ~= nil then
|
||||
self:questAreaOutHandler()
|
||||
end
|
||||
end
|
||||
|
||||
function QuestArea:questTriggerDelayOutHandler()
|
||||
print("show delay quest area out ui")
|
||||
if self.questAreaDelayOutHandler ~= nil then
|
||||
self:questAreaDelayOutHandler()
|
||||
end
|
||||
end
|
||||
|
||||
return QuestArea
|
85
soggy_resources/lua/Actor/Gadget/RunCoinStart.lua
Normal file
85
soggy_resources/lua/Actor/Gadget/RunCoinStart.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local RunCoinStart = class("RunCoinStart", gadgetActorProxy)
|
||||
|
||||
RunCoinStart.defaultAlias = "RunCoinStart"
|
||||
|
||||
local q416Cfg = require('Quest/Client/Q416ClientConfig')
|
||||
|
||||
local function EndGame()
|
||||
globalActor:CountNumUITerminate()
|
||||
local currentCoin = actorMgr:GetActor("RunCoinStart")
|
||||
if currentCoin ~= nil then
|
||||
currentCoin:DestroySelf()
|
||||
end
|
||||
local quest = actorMgr:GetActor(q416Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
q416Cfg.NextNum = 1
|
||||
end
|
||||
|
||||
local function CreateNext()
|
||||
if q416Cfg.NextNum < q416Cfg.CoinNum +1 then
|
||||
actorMgr:CreateActorWithPos("RunCoinStart", "Actor/Gadget/RunCoinStart", 70300004, 0, q416Cfg.CoinPos[q416Cfg.NextNum].pos, q416Cfg.CoinPos[q416Cfg.NextNum].rot, true, false)
|
||||
local currentCoin = actorMgr:GetActor("RunCoinStart")
|
||||
if currentCoin ~= nil then
|
||||
currentCoin:CallDelay(3, EndGame)
|
||||
end
|
||||
else
|
||||
-- local quest = actorMgr:GetActor(q416Cfg.ActorAlias)
|
||||
-- if quest ~= nil then
|
||||
-- quest:FinishQuest(false, nil)
|
||||
-- end
|
||||
for i=1, q416Cfg.CoinNum do
|
||||
globalActor:SpawnItem(104011, q416Cfg.CoinPos[i].pos, nil, "BigApple" .. tostring(i))
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
function RunCoinStart:OnPostDataPrepare()
|
||||
end
|
||||
|
||||
function RunCoinStart:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(1, DistType.EULER, M.Pos(0, 0, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function RunCoinStart:TriggerIn()
|
||||
-- local quest = actorMgr:GetActor(q416Cfg.ActorAlias)
|
||||
-- if quest ~= nil then
|
||||
-- quest:FinishQuest(false, nil)
|
||||
-- end
|
||||
if q416Cfg.NextNum == 1 then
|
||||
local quest = actorMgr:GetActor(q416Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
|
||||
self:CountNumUIStart()
|
||||
else
|
||||
self:UnCallFunc(EndGame)
|
||||
end
|
||||
|
||||
local effctPos = self:GetPos()
|
||||
if q416Cfg.NextNum < q416Cfg.CoinNum then
|
||||
self:PlayEffect("FlyRace_Marker_Active_AS", effctPos)
|
||||
else
|
||||
self:PlayEffect("FlyRace_Goal_Marker_AS", effctPos)
|
||||
self:CountNumUITerminate()
|
||||
end
|
||||
|
||||
self:CountNumUIUpdate(q416Cfg.NextNum)
|
||||
q416Cfg.NextNum = q416Cfg.NextNum + 1
|
||||
self:DestroySelf()
|
||||
CreateNext()
|
||||
end
|
||||
|
||||
function RunCoinStart:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return RunCoinStart
|
40
soggy_resources/lua/Actor/Gadget/SneakTreasure.lua
Normal file
40
soggy_resources/lua/Actor/Gadget/SneakTreasure.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local SneakTreasure = class("SneakTreasure", gadgetActorProxy)
|
||||
|
||||
SneakTreasure.defaultAlias = "SneakTreasure"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q424Cfg = require('Quest/Client/Q424ClientConfig')
|
||||
|
||||
function SneakTreasure:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function SneakTreasure:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(1.5, DistType.EULER, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function SneakTreasure:TriggerIn()
|
||||
-- q424Cfg.Score = q424Cfg.Score + 10
|
||||
-- self:CountNumUIUpdate(q424Cfg.Score)
|
||||
local quest = actorMgr:GetActor(q424Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
print("Got A Treasure")
|
||||
quest:GetTreasure()
|
||||
end
|
||||
local effctPos = self:GetPos()
|
||||
self:PlayEffect("FlyRace_Marker_Active_AS", effctPos)
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function SneakTreasure:TriggerOut()
|
||||
outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return SneakTreasure
|
42
soggy_resources/lua/Actor/Gadget/TriggerTest.lua
Normal file
42
soggy_resources/lua/Actor/Gadget/TriggerTest.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local TriggerTest = class("TriggerTest", gadgetActorProxy)
|
||||
|
||||
TriggerTest.defaultAlias = "TriggerTest"
|
||||
|
||||
TriggerTest.shapeData =
|
||||
{
|
||||
shapeName = "CircleR5",
|
||||
shapePosOffset = {x = 0, y = 0, z = 0},
|
||||
shapeEulerOffset = {x = 0, y = 0, z = 0},
|
||||
shapeHeight = 0.0,
|
||||
campID = campHelper.CAMP_PLAYER,
|
||||
targetType = TargetType.AllExceptSelf,
|
||||
liftType = TimerLimitType.Infinite,
|
||||
liftTime = 0.0,
|
||||
triggerType = TimerLimitType.Infinite,
|
||||
checkCD = 0.15,
|
||||
}
|
||||
|
||||
function TriggerTest:OnPostDataPrepare()
|
||||
|
||||
end
|
||||
|
||||
function TriggerTest:OnPostComponentPrepare()
|
||||
self:AddCommonTrigger(self.shapeData, self.TriggerIn, self.TriggerOut, self.TriggerTick)
|
||||
end
|
||||
|
||||
function TriggerTest:TriggerIn(configID, alias)
|
||||
print("TriggerIn")
|
||||
end
|
||||
|
||||
function TriggerTest:TriggerOut(configID, alias)
|
||||
print("TriggerOut")
|
||||
end
|
||||
|
||||
function TriggerTest:TriggerTick(configID, alias)
|
||||
print("TriggerTick")
|
||||
end
|
||||
|
||||
return TriggerTest
|
42
soggy_resources/lua/Actor/Gadget/WalkArea.lua
Normal file
42
soggy_resources/lua/Actor/Gadget/WalkArea.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WalkArea = class("WalkArea", gadgetActorProxy)
|
||||
|
||||
WalkArea.defaultAlias = "WalkArea"
|
||||
|
||||
WalkArea.shapeData =
|
||||
{
|
||||
shapeName = "CircleR5",
|
||||
shapePosOffset = {x = 0, y = 0, z = 0},
|
||||
shapeEulerOffset = {x = 0, y = 0, z = 0},
|
||||
shapeHeight = 0.0,
|
||||
campID = campHelper.CAMP_PLAYER,
|
||||
targetType = TargetType.AllExceptSelf,
|
||||
liftType = TimerLimitType.Infinite,
|
||||
liftTime = 0.0,
|
||||
triggerType = TimerLimitType.Infinite,
|
||||
checkCD = 0.15,
|
||||
}
|
||||
|
||||
function WalkArea:OnPostDataPrepare()
|
||||
|
||||
end
|
||||
|
||||
function WalkArea:OnPostComponentPrepare()
|
||||
self:AddCommonTrigger(self.shapeData, self.TriggerIn, self.TriggerOut, self.TriggerTick)
|
||||
end
|
||||
|
||||
function WalkArea:TriggerIn(configID, alias)
|
||||
self:TryShowMoveToggle(true)
|
||||
end
|
||||
|
||||
function WalkArea:TriggerOut(configID, alias)
|
||||
self:TryShowMoveToggle(false)
|
||||
end
|
||||
|
||||
function WalkArea:TriggerTick(configID, alias)
|
||||
|
||||
end
|
||||
|
||||
return WalkArea
|
35
soggy_resources/lua/Actor/Gadget/WendyTrackTrigger.lua
Normal file
35
soggy_resources/lua/Actor/Gadget/WendyTrackTrigger.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WendyTrackTrigger = class("WendyTrackTrigger", gadgetActorProxy)
|
||||
|
||||
WendyTrackTrigger.defaultAlias = "WendyTrackTrigger"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
function WendyTrackTrigger:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function WendyTrackTrigger:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(12, DistType.EULER_XZ, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function WendyTrackTrigger:TriggerIn()
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuest(false, nil)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function WendyTrackTrigger:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return WendyTrackTrigger
|
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WendyTrackTriggersp = class("WendyTrackTriggersp", gadgetActorProxy)
|
||||
|
||||
WendyTrackTriggersp.defaultAlias = "WendyTrackTriggersp"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
function WendyTrackTriggersp:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(12, DistType.EULER_XZ, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp:TriggerIn()
|
||||
print("Exit 37109")
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 37109)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return WendyTrackTriggersp
|
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp1.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp1.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WendyTrackTriggersp1 = class("WendyTrackTriggersp1", gadgetActorProxy)
|
||||
|
||||
WendyTrackTriggersp1.defaultAlias = "WendyTrackTriggersp1"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
function WendyTrackTriggersp1:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp1:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(12, DistType.EULER_XZ, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp1:TriggerIn()
|
||||
print("Exit 37110")
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 37110)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp1:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return WendyTrackTriggersp1
|
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp2.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp2.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WendyTrackTriggersp2 = class("WendyTrackTriggersp2", gadgetActorProxy)
|
||||
|
||||
WendyTrackTriggersp2.defaultAlias = "WendyTrackTriggersp2"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
function WendyTrackTriggersp2:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp2:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(12, DistType.EULER_XZ, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp2:TriggerIn()
|
||||
print("Exit 37111")
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 37111)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp2:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return WendyTrackTriggersp2
|
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp3.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp3.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WendyTrackTriggersp3 = class("WendyTrackTriggersp3", gadgetActorProxy)
|
||||
|
||||
WendyTrackTriggersp3.defaultAlias = "WendyTrackTriggersp3"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
function WendyTrackTriggersp3:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp3:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(12, DistType.EULER_XZ, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp3:TriggerIn()
|
||||
print("Exit 37112")
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 37112)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp3:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return WendyTrackTriggersp3
|
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp4.lua
Normal file
36
soggy_resources/lua/Actor/Gadget/WendyTrackTriggersp4.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
require('Actor/ActorCommon')
|
||||
local gadgetActorProxy = require('Actor/Gadget/GadgetActorProxy')
|
||||
|
||||
local WendyTrackTriggersp4 = class("WendyTrackTriggersp4", gadgetActorProxy)
|
||||
|
||||
WendyTrackTriggersp4.defaultAlias = "WendyTrackTriggersp4"
|
||||
|
||||
local inCnt = 0
|
||||
local outCnt = 0
|
||||
local q371Cfg = require('Quest/Client/Q371ClientConfig')
|
||||
|
||||
function WendyTrackTriggersp4:OnPostDataPrepare()
|
||||
inCnt = 0
|
||||
outCnt = 0
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp4:OnPostComponentPrepare()
|
||||
self:AddComponentTrigger(12, DistType.EULER_XZ, M.Pos(0, 0.8, 0), self.TriggerIn, self.TriggerOut)
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp4:TriggerIn()
|
||||
print("Exit 37113")
|
||||
local quest = actorMgr:GetActor(q371Cfg.ActorAlias)
|
||||
if quest ~= nil then
|
||||
quest:FinishQuestID(false, 37113)
|
||||
end
|
||||
self:DestroySelf()
|
||||
end
|
||||
|
||||
function WendyTrackTriggersp4:TriggerOut()
|
||||
-- outCnt = outCnt + 1
|
||||
--print("Exit " .. tostring(outCnt))
|
||||
--self:DestroySelf()
|
||||
end
|
||||
|
||||
return WendyTrackTriggersp4
|
22
soggy_resources/lua/Actor/GlobalActorConfig.lua
Normal file
22
soggy_resources/lua/Actor/GlobalActorConfig.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
---GlobalActor全局配置
|
||||
-- @module GlobalActorConfig
|
||||
|
||||
local GlobalActorConfig = {}
|
||||
|
||||
GlobalActorConfig.initSubActors =
|
||||
{
|
||||
{
|
||||
alias = "WindTestGlobal11",
|
||||
metaPath = "Actor/SubGlobal/WindTestGlobalActor",
|
||||
},
|
||||
{
|
||||
alias = "LimitRegionGlobal",
|
||||
metaPath = "Actor/SubGlobal/LimitRegionGlobalActor",
|
||||
}
|
||||
}
|
||||
|
||||
GlobalActorConfig.initAddSubActors =
|
||||
{
|
||||
}
|
||||
|
||||
return GlobalActorConfig
|
265
soggy_resources/lua/Actor/GlobalActorProxy.lua
Normal file
265
soggy_resources/lua/Actor/GlobalActorProxy.lua
Normal file
@@ -0,0 +1,265 @@
|
||||
----------------------
|
||||
-- 这是Lua端GlobalActor,作为全局的代理,负责一些全局的调用。继承自BaseActorProxy
|
||||
-- @classmod GlobalActorProxy
|
||||
require('Actor/ActorCommon')
|
||||
local baseActorProxy = require('Actor/BaseActorProxy')
|
||||
|
||||
local GlobalActorProxy = class("GlobalActorProxy", baseActorProxy)
|
||||
|
||||
GlobalActorProxy.actorType = ActorType.GLOBAL_ACTOR
|
||||
|
||||
local this = nil
|
||||
local super = nil
|
||||
local uActor = nil
|
||||
|
||||
function GlobalActorProxy:OnPreInit()
|
||||
this = self
|
||||
super = self.__super
|
||||
end
|
||||
function GlobalActorProxy:OnPostInit()
|
||||
uActor = self.uActor
|
||||
end
|
||||
|
||||
function GlobalActorProxy:OnInit(alias)
|
||||
super:OnInit(alias)
|
||||
uActor = self:CreateUActor(alias)
|
||||
self.uActor = uActor
|
||||
|
||||
self:Register()
|
||||
end
|
||||
|
||||
--- 是否是白天
|
||||
GlobalActorProxy.isDay = false
|
||||
--- 是否是黑夜
|
||||
GlobalActorProxy.isNight = false
|
||||
--- 当前的天气类型 WeatherType
|
||||
GlobalActorProxy.currWeather = 0
|
||||
|
||||
local function EnterDay()
|
||||
print("enter day")
|
||||
this.isDay = true
|
||||
this.isNight = false
|
||||
end
|
||||
|
||||
local function EnterNight()
|
||||
print("enter night")
|
||||
this.isDay = false
|
||||
this.isNight = true
|
||||
end
|
||||
|
||||
local function WeatherChange(weatherType)
|
||||
print("enter weather " .. weatherType)
|
||||
this.currWeather = weatherType
|
||||
end
|
||||
|
||||
function GlobalActorProxy:CreateUActor(alias)
|
||||
local uActor = actorUtils.CreateActor(self, ActorType.GLOBAL_ACTOR, alias, self.metaPath)
|
||||
uActor = actorUtils.CreateGlobalActor(uActor)
|
||||
return uActor
|
||||
end
|
||||
|
||||
function GlobalActorProxy:Register()
|
||||
this:RegisterDayCallback(EnterDay)
|
||||
this:RegisterNightCallback(EnterNight)
|
||||
this:RegisterWeatherCallback(WeatherChange)
|
||||
end
|
||||
|
||||
function GlobalActorProxy:Destroy(isActorOnly)
|
||||
this:UnregisterDayCallback(EnterDay)
|
||||
this:UnregisterNightCallback(EnterNight)
|
||||
this:UnregisterWeatherCallback(WeatherChange)
|
||||
uActor:Destroy(isActorOnly)
|
||||
end
|
||||
|
||||
--- GlobalActor昼夜相关方法
|
||||
-- @section daynight
|
||||
|
||||
--- GlobalActor注册到白天了的回调
|
||||
-- @tparam function dayCallback 到白天了的调用方法
|
||||
function GlobalActorProxy:RegisterDayCallback(dayCallback)
|
||||
uActor:RegisterDayCallback(dayCallback)
|
||||
end
|
||||
--- GlobalActor取消注册到白天了的回调
|
||||
-- @tparam function dayCallback 到白天了的调用方法
|
||||
function GlobalActorProxy:UnregisterDayCallback(dayCallback)
|
||||
uActor:UnregisterDayCallback(dayCallback)
|
||||
end
|
||||
--- GlobalActor注册到晚上了的回调
|
||||
-- @tparam function nightCallback 到晚上了的调用方法
|
||||
function GlobalActorProxy:RegisterNightCallback(nightCallback)
|
||||
uActor:RegisterNightCallback(nightCallback)
|
||||
end
|
||||
--- GlobalActor取消注册到晚上了的回调
|
||||
-- @tparam function nightCallback 到晚上了的调用方法
|
||||
function GlobalActorProxy:UnregisterNightCallback(nightCallback)
|
||||
uActor:UnregisterNightCallback(nightCallback)
|
||||
end
|
||||
--- GlobalActor注册小时的回调
|
||||
-- @tparam function hourCallback 小时回调
|
||||
function GlobalActorProxy:RegisterHourCallback(hourCallback)
|
||||
uActor:RegisterHourCallback(hourCallback)
|
||||
end
|
||||
--- GlobalActor取消注册小时的回调
|
||||
-- @tparam function nightCallback 小时回调
|
||||
function GlobalActorProxy:UnregisterHourCallback(hourCallback)
|
||||
uActor:UnregisterHourCallback(hourCallback)
|
||||
end
|
||||
|
||||
--- GlobalActor天气相关方法
|
||||
-- @section weather
|
||||
|
||||
--- GlobalActor注册天气变化的回调
|
||||
-- @tparam function weatherCallback 天气变化的回调,回调需接受一个WeathType类型的参数
|
||||
function GlobalActorProxy:RegisterWeatherCallback(weatherCallback)
|
||||
uActor:RegisterWeatherCallback(weatherCallback)
|
||||
end
|
||||
--- GlobalActor取消注册天气变化的回调
|
||||
-- @tparam function weatherCallback 天气变化的回调,回调需接受一个WeathType类型的参数
|
||||
function GlobalActorProxy:UnregisterWeatherCallback(weatherCallback)
|
||||
uActor:UnregisterWeatherCallback(weatherCallback)
|
||||
end
|
||||
--- GlobalActor改变默认天气
|
||||
-- @tparam string weatherName 天气配置的名字
|
||||
function GlobalActorProxy:ChangeDefaultWeather(weatherName)
|
||||
uActor:ChangeDefaultWeahter(weatherName)
|
||||
end
|
||||
--- GlobalActor改变天气
|
||||
-- @tparam string weatherName 天气配置的名字
|
||||
function GlobalActorProxy:ChangeWeather(weatherName)
|
||||
uActor:ChangeWeather(weatherName)
|
||||
end
|
||||
--- GlobalActor恢复天气到服务器当前
|
||||
function GlobalActorProxy:LeaveWeather()
|
||||
uActor:LeaveWeather()
|
||||
end
|
||||
--- GlobalActor获取当前是黑天还是白天
|
||||
function GlobalActorProxy:GetIsNight()
|
||||
local isNight = uActor:GetIsNight()
|
||||
this.isDay = (not isNight)
|
||||
this.isNight = isNight
|
||||
end
|
||||
|
||||
--- GlobalActor修改时间的函数
|
||||
-- @tparam float daytime24 小时数
|
||||
function GlobalActorProxy:ChangeDay24Time(daytime24, force)
|
||||
uActor:ChangeDay24Time(daytime24, force)
|
||||
end
|
||||
|
||||
--- 开始某个引导
|
||||
-- @tparam string name 引导的名称
|
||||
function GlobalActorProxy:StartGuide(name)
|
||||
uActor:StartGuide(name)
|
||||
end
|
||||
--- 结束某个引导
|
||||
-- @tparam string name 引导的名称
|
||||
function GlobalActorProxy:EndGuide(name)
|
||||
uActor:EndGuide(name)
|
||||
end
|
||||
|
||||
--- GlobalActor控制角色
|
||||
-- @section avatar ctrl
|
||||
|
||||
--- 停止当前控制角色移动
|
||||
function GlobalActorProxy:StopLocalAvatar()
|
||||
uActor:StopLocalAvatar()
|
||||
end
|
||||
|
||||
--- 开始某个引导
|
||||
-- @tparam string name 引导的名称
|
||||
function GlobalActorProxy:LoadSectorByPos(pos, callbak)
|
||||
uActor:LoadSectorByPos(pos, callbak)
|
||||
end
|
||||
|
||||
--- 设置当前角色坐标
|
||||
-- @tparam Vector3 pos
|
||||
function GlobalActorProxy:SetAvatarPos(pos)
|
||||
actorUtils.SetAvatarPos(pos)
|
||||
end
|
||||
|
||||
--- 设置当前角色欧拉角
|
||||
-- @tparam Vector3 euler
|
||||
function GlobalActorProxy:SetAvatarEuler(euler)
|
||||
actorUtils.SetAvatarEuler(euler)
|
||||
end
|
||||
|
||||
--- 切换回主角
|
||||
function GlobalActorProxy:ChangeToHero()
|
||||
uActor:ChangeToHero()
|
||||
end
|
||||
|
||||
--- 判断是否是男的主角
|
||||
function GlobalActorProxy:IsHeroMale()
|
||||
return uActor:IsHeroMale()
|
||||
end
|
||||
|
||||
--- 控制全局task
|
||||
-- @section task
|
||||
|
||||
--- 停止所有旁白
|
||||
function GlobalActorProxy:FinishAllNarrator()
|
||||
uActor:FinishAllNarratorTask()
|
||||
end
|
||||
|
||||
GlobalActorProxy.BtnTransmitData =
|
||||
{
|
||||
btnTransId = 0,
|
||||
btnTransSceneId = 0,
|
||||
btnTransDummyPos = nil,
|
||||
btnTransDummyEuler = nil,
|
||||
btnTransRange = 0.0,
|
||||
btnTransPriority = 0
|
||||
}
|
||||
|
||||
--- 弹出传送到任务的按钮
|
||||
-- @tparam int id 用于区分不同的sub task
|
||||
-- @tparam uint sceneId 点了以后传送到sceneId
|
||||
-- @tparam string dummyPoint dummyPoint的名字
|
||||
-- @tparam float range 触发按钮的范围
|
||||
-- @tparam int priority 优先级
|
||||
function GlobalActorProxy:PlayerBackButtonOn(id, sceneId, dummyPoint, range, priority)
|
||||
if priority == nil then
|
||||
priority = 0
|
||||
end
|
||||
|
||||
local dummyPoint = sceneData:GetDummyPoint(sceneId, dummyPoint)
|
||||
if dummyPoint == nil then
|
||||
print("dummy point " .. dummyPoint .. " invalid")
|
||||
return
|
||||
end
|
||||
|
||||
local dummyPos = dummyPoint.pos
|
||||
local dummyEuler = dummyPoint.rot
|
||||
|
||||
local btnTransmitData = self.BtnTransmitData
|
||||
btnTransmitData.btnTransId = id
|
||||
btnTransmitData.btnTransSceneId = sceneId
|
||||
btnTransmitData.btnTransDummyPos = dummyPos
|
||||
btnTransmitData.btnTransDummyEuler = dummyEuler
|
||||
btnTransmitData.btnTransRange = range
|
||||
btnTransmitData.btnTransPriority = priority
|
||||
|
||||
self.uActor:PlayerBackButtonOn(btnTransmitData)
|
||||
end
|
||||
|
||||
--- 隐藏传送到任务的按钮
|
||||
-- @tparam int id 用于区分不同的sub task
|
||||
function GlobalActorProxy:PlayerBackButtonOff(id)
|
||||
local btnTransmitData = self.BtnTransmitData
|
||||
btnTransmitData.btnTransId = id
|
||||
|
||||
self.uActor:PlayerBackButtonOff(btnTransmitData)
|
||||
end
|
||||
|
||||
--- 进入一个副本
|
||||
-- @tparam uint pointId 入口点id
|
||||
-- @tparam uint dungeonId 副本id
|
||||
function GlobalActorProxy:PlayerEnterDungeon(pointId, dungeonId)
|
||||
self.uActor:PlayerEnterDungeon(pointId, dungeonId)
|
||||
end
|
||||
|
||||
|
||||
function GlobalActorProxy:Start()
|
||||
this:GetIsNight()
|
||||
end
|
||||
|
||||
return GlobalActorProxy
|
56
soggy_resources/lua/Actor/InterLua/Q304Feather.lua
Normal file
56
soggy_resources/lua/Actor/InterLua/Q304Feather.lua
Normal file
@@ -0,0 +1,56 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
local q304Cfg = require('Actor/Quest/Q304/Q304Config')
|
||||
local featherData = q304Cfg.FeatherData
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
local Qin = actorMgr:GetActor("1006")
|
||||
local Wendy = actorMgr:GetActor("1001")
|
||||
local Paimon = actorMgr:GetActor("1005")
|
||||
if interCnt == 2 then
|
||||
globalActor:SpawnGadget(featherData.FeatherGadgetID, featherData.feather1Pos, featherData.feather1Dir, "Feather1")
|
||||
end
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
80
soggy_resources/lua/Actor/InterLua/Q305Knight.lua
Normal file
80
soggy_resources/lua/Actor/InterLua/Q305Knight.lua
Normal file
@@ -0,0 +1,80 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
local Qin = actorMgr:GetActor("1006")
|
||||
local Wendy = actorMgr:GetActor("1001")
|
||||
local Paimon = actorMgr:GetActor("1005")
|
||||
if interCnt == 1 then
|
||||
print_r(actorMgr.ActorDic)
|
||||
Qin:SetPos(sceneData:GetDummyPoint(3,"Q305KnightDoor").pos)
|
||||
Qin:TurnTo(M.Euler2DirXZ(sceneData:GetDummyPoint(3,"Q305KnightDoor").rot))
|
||||
-- Qin:DoFreeStyle(1)
|
||||
elseif interCnt == 2 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Qin:Standby()
|
||||
Qin:WalkTo(sceneData:GetDummyPoint(3,"Q411QinBorn").pos)
|
||||
elseif interCnt == 5 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Wendy:DoFreeStyle(0)
|
||||
Wendy:CallDelay(2,Wendy.Standby)
|
||||
Qin:SetPos(sceneData:GetDummyPoint(3,"Q411QinBorn").pos)
|
||||
-- elseif interCnt == 8 then
|
||||
-- -- CS.UnityEngine.Debug.Log('hello world111')
|
||||
-- print_r(actorMgr.ActorDic)
|
||||
-- Wendy:RunTo(sceneData:GetDummyPoint(3,"Q306KnightVanish").pos)
|
||||
-- -- Wendy:Destroy(false)
|
||||
-- Paimon:RunTo(sceneData:GetDummyPoint(3,"Q306KnightVanish").pos)
|
||||
elseif interCnt == 25 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Wendy:SetPos(sceneData:GetDummyPoint(3,"Q301Hidden").pos)
|
||||
-- Wendy:Destroy(false)
|
||||
Paimon:SetPos(sceneData:GetDummyPoint(3,"Q301Hidden").pos)
|
||||
end
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
80
soggy_resources/lua/Actor/InterLua/Q353Slime.lua
Normal file
80
soggy_resources/lua/Actor/InterLua/Q353Slime.lua
Normal file
@@ -0,0 +1,80 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
local this = nil
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
local Qin = actorMgr:GetActor("Qin")
|
||||
local Wendy = actorMgr:GetActor("Wendy")
|
||||
local Paimon = actorMgr:GetActor("Paimon")
|
||||
this = self
|
||||
|
||||
--[[ if interCnt == 1 then
|
||||
print_r(actorMgr.ActorDic)
|
||||
Qin:SetPos(sceneData:GetDummyPoint(3,"Q305KnightDoor").pos)
|
||||
Qin:TurnTo(M.Euler2DirXZ(sceneData:GetDummyPoint(3,"Q305KnightDoor").rot))
|
||||
-- Qin:DoFreeStyle(1)
|
||||
elseif interCnt == 2 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Qin:Standby()
|
||||
Qin:WalkTo(sceneData:GetDummyPoint(3,"Q411QinBorn").pos)
|
||||
elseif interCnt == 5 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Wendy:DoFreeStyle(0)
|
||||
Wendy:CallDelay(2,Wendy.Standby)
|
||||
Qin:SetPos(sceneData:GetDummyPoint(3,"Q411QinBorn").pos)
|
||||
-- elseif interCnt == 8 then
|
||||
-- -- CS.UnityEngine.Debug.Log('hello world111')
|
||||
-- print_r(actorMgr.ActorDic)
|
||||
-- Wendy:RunTo(sceneData:GetDummyPoint(3,"Q306KnightVanish").pos)
|
||||
-- -- Wendy:Destroy(false)
|
||||
-- Paimon:RunTo(sceneData:GetDummyPoint(3,"Q306KnightVanish").pos) ]]
|
||||
--[[ if interCnt == 9 then
|
||||
print("Spawn Slime")
|
||||
globalActor:SpawnMonster(20010302, 1, sceneData:GetDummyPoint(3,"Q353Monster1").pos)
|
||||
end ]]
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
59
soggy_resources/lua/Actor/InterLua/Q370SDragonTears.lua
Normal file
59
soggy_resources/lua/Actor/InterLua/Q370SDragonTears.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
local this = nil
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
local Qin = actorMgr:GetActor("1006")
|
||||
local Wendy = actorMgr:GetActor("1001")
|
||||
local Paimon = actorMgr:GetActor("1005")
|
||||
this = self
|
||||
|
||||
-- if interCnt == 41 then
|
||||
-- print("Spawn Tears")
|
||||
-- globalActor:SpawnGadget(70300038, sceneData:GetDummyPoint(1004,"Q370Tears").pos, sceneData:GetDummyPoint(1004,"Q370Tears").rot, "Tears", 1004)
|
||||
|
||||
-- end
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
58
soggy_resources/lua/Actor/InterLua/Q37604.lua
Normal file
58
soggy_resources/lua/Actor/InterLua/Q37604.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
local this = nil
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
local Wendy = actorMgr:GetActor("1001")
|
||||
local Paimon = actorMgr:GetActor("1005")
|
||||
this = self
|
||||
|
||||
if interCnt == 8 then
|
||||
print("NPC Destroy")
|
||||
-- Wendy:HideSelf()
|
||||
-- Paimon:HideSelf()
|
||||
end
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
84
soggy_resources/lua/Actor/InterLua/Q414_41400.lua
Normal file
84
soggy_resources/lua/Actor/InterLua/Q414_41400.lua
Normal file
@@ -0,0 +1,84 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
local Wendy = actorMgr:GetActor("1001")
|
||||
local Paimon = actorMgr:GetActor("1005")
|
||||
local q414Cfg = require('Actor/Quest/Q414/Q414Config')
|
||||
local PaimonData = q414Cfg.PaimonData
|
||||
|
||||
if interCnt == 2 then
|
||||
print_r(actorMgr.ActorDic)
|
||||
--Paimon:CreateActorWithPos(paimonData.Paimon, paimonData.PaimonScript, paimonData.PaimonID, 0, paimonData.bornPos, paimonData.bornDir, true, false)
|
||||
--Paimon:SetPos(sceneData:GetDummyPoint(3,"Q414Paimon1").pos)
|
||||
--Paimon:TurnTo(M.Euler2DirXZ(sceneData:GetDummyPoint(3,"Q414Paimon1").rot))
|
||||
Paimon:DoFreeStyle(10)
|
||||
elseif interCnt == 4 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
Paimon:DoFreeStyle(1)
|
||||
elseif interCnt == 23 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
Paimon:DoFreeStyle(3)
|
||||
--[[ elseif interCnt == 5 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Wendy:DoFreeStyle(0)
|
||||
Wendy:CallDelay(2,Wendy.Standby)
|
||||
Qin:SetPos(sceneData:GetDummyPoint(3,"Q411QinBorn").pos)
|
||||
-- elseif interCnt == 8 then
|
||||
-- -- CS.UnityEngine.Debug.Log('hello world111')
|
||||
-- print_r(actorMgr.ActorDic)
|
||||
-- Wendy:RunTo(sceneData:GetDummyPoint(3,"Q306KnightVanish").pos)
|
||||
-- -- Wendy:Destroy(false)
|
||||
-- Paimon:RunTo(sceneData:GetDummyPoint(3,"Q306KnightVanish").pos)
|
||||
elseif interCnt == 25 then
|
||||
-- CS.UnityEngine.Debug.Log('hello world111')
|
||||
print_r(actorMgr.ActorDic)
|
||||
Wendy:SetPos(sceneData:GetDummyPoint(3,"Q301Hidden").pos)
|
||||
-- Wendy:Destroy(false)
|
||||
Paimon:SetPos(sceneData:GetDummyPoint(3,"Q301Hidden").pos) ]]
|
||||
end
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
56
soggy_resources/lua/Actor/InterLua/TempPreview.lua
Normal file
56
soggy_resources/lua/Actor/InterLua/TempPreview.lua
Normal file
@@ -0,0 +1,56 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
|
||||
function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do count = count + 1 end
|
||||
return count
|
||||
end
|
||||
|
||||
function print_r ( t )
|
||||
local print_r_cache={}
|
||||
local function sub_print_r(t,indent)
|
||||
if (print_r_cache[tostring(t)]) then
|
||||
CS.UnityEngine.Debug.Log(indent.."*"..tostring(t))
|
||||
else
|
||||
print_r_cache[tostring(t)]=true
|
||||
if (type(t)=="table") then
|
||||
for pos,val in pairs(t) do
|
||||
if (type(val)=="table") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(t).." {")
|
||||
sub_print_r(val,indent..string.rep(" ",string.len(pos)+8))
|
||||
CS.UnityEngine.Debug.Log(indent..string.rep(" ",string.len(pos)+6).."}")
|
||||
elseif (type(val)=="string") then
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos..'] => "'..val..'"')
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent.."["..pos.."] => "..tostring(val))
|
||||
end
|
||||
end
|
||||
else
|
||||
CS.UnityEngine.Debug.Log(indent..tostring(t))
|
||||
end
|
||||
end
|
||||
end
|
||||
if (type(t)=="table") then
|
||||
CS.UnityEngine.Debug.Log(tostring(t).." {")
|
||||
sub_print_r(t," ")
|
||||
CS.UnityEngine.Debug.Log("}")
|
||||
else
|
||||
sub_print_r(t," ")
|
||||
end
|
||||
end
|
||||
|
||||
function TestInteractionActor:OnInterStart(interCnt)
|
||||
if interCnt == 1 then
|
||||
print_r(actorMgr.ActorDic)
|
||||
local Gaia = actorMgr:GetActor("1005")
|
||||
Gaia:SetPos(M.Pos(1, 2, 3))
|
||||
elseif interCnt == 2 then
|
||||
CS.UnityEngine.Debug.Log('hello world111')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
@@ -0,0 +1,49 @@
|
||||
----------------------
|
||||
-- 这是Lua端InteractionActorProxy的基类,包含一些全局控制函数。继承自SubGlobalActorProxy
|
||||
-- @classmod InteractionActorProxy
|
||||
local subGlobalActorProxy = require('Actor/SubGlobal/SubGlobalActorProxy')
|
||||
|
||||
local InteractionActorProxy = class("InteractionActorProxy", subGlobalActorProxy)
|
||||
|
||||
InteractionActorProxy.actorType = ActorType.INTERACTION_ACTOR
|
||||
|
||||
InteractionActorProxy.defaultAlias = "Interaction"
|
||||
|
||||
local super = nil
|
||||
|
||||
function InteractionActorProxy:OnPreInit()
|
||||
super = self.__super
|
||||
super:OnPreInit()
|
||||
end
|
||||
|
||||
function InteractionActorProxy:CreateUActor(alias)
|
||||
local uActor = actorUtils.CreateActor(self, ActorType.INTERACTION_ACTOR, alias, self.metaPath)
|
||||
return uActor
|
||||
end
|
||||
|
||||
--- InterActor当交互组开始时的回调
|
||||
-- @tparam int interCnt 执行的InterGroup顺次,从1开始
|
||||
function InteractionActorProxy:OnInterStart(interCnt)
|
||||
print("inter start cnt" .. tostring(interCnt))
|
||||
end
|
||||
|
||||
--- InterActor当交互组结束时的回调
|
||||
-- @tparam int interCnt 执行的InterGroup顺次,从1开始
|
||||
function InteractionActorProxy:OnInterFinish(interCnt)
|
||||
print("inter finish cnt" .. tostring(interCnt))
|
||||
end
|
||||
|
||||
function InteractionActorProxy:Register()
|
||||
self.uActor:RegisterStartInterCallback(self.OnInterStart)
|
||||
self.uActor:RegisterFinishInterCallback(self.OnInterFinish)
|
||||
end
|
||||
|
||||
function InteractionActorProxy:Unregister()
|
||||
self.uActor:UnregisterStartInterCallback(self.OnInterStart)
|
||||
self.uActor:UnregisterStartInterCallback(self.OnInterFinish)
|
||||
end
|
||||
|
||||
function InteractionActorProxy:Start()
|
||||
end
|
||||
|
||||
return InteractionActorProxy
|
@@ -0,0 +1,9 @@
|
||||
require('Actor/ActorCommon')
|
||||
local interactionActorProxy = require('Actor/Interaction/InteractionActorProxy')
|
||||
|
||||
local TestInteractionActor = class("TestInteractionActor", interactionActorProxy)
|
||||
|
||||
function InteractionActorProxy:OnInterStart(interCnt)
|
||||
end
|
||||
|
||||
return TestInteractionActor
|
121
soggy_resources/lua/Actor/Npc/BaseDailyNpc.lua
Normal file
121
soggy_resources/lua/Actor/Npc/BaseDailyNpc.lua
Normal file
@@ -0,0 +1,121 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local BaseDailyNpc = class("BaseDailyNpc", NpcActorProxy)
|
||||
|
||||
|
||||
--@region Handlers
|
||||
--- 碰撞反馈回调
|
||||
BaseDailyNpc.OnCollisionEnter = nil
|
||||
--- 事件回调
|
||||
BaseDailyNpc.OnEvent = nil
|
||||
--- 白天回调
|
||||
BaseDailyNpc.StartDay = nil
|
||||
function BaseDailyNpc:CallStartDay()
|
||||
if self.StartDay ~= nil then
|
||||
self:StartDay()
|
||||
end
|
||||
end
|
||||
--- 黑夜回调
|
||||
BaseDailyNpc.StartNight = nil
|
||||
function BaseDailyNpc:CallStartNight()
|
||||
if self.StartNight ~= nil then
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
--- 小时回调
|
||||
BaseDailyNpc.HourBehave = nil
|
||||
|
||||
function BaseDailyNpc:RegisterDailyHandler()
|
||||
if self.OnCollisionEnter ~= nil then
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
end
|
||||
if self.OnEvent ~= nil then
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
end
|
||||
if self.StartDay ~= nil then
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
end
|
||||
if self.StartNight ~= nil then
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
end
|
||||
if self.HourBehave ~= nil then
|
||||
self:RegisterSelfHour(self.HourBehave)
|
||||
end
|
||||
end
|
||||
function BaseDailyNpc:UnregisterDailyHandler()
|
||||
if self.OnCollisionEnter ~= nil then
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
end
|
||||
-- don't clear event that can be still notified in any mode
|
||||
-- if self.OnEvent ~= nil then
|
||||
-- self:UnregisterActorEvent(self.OnEvent)
|
||||
-- end
|
||||
if self.StartDay ~= nil then
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
end
|
||||
if self.StartNight ~= nil then
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
end
|
||||
if self.HourBehave ~= nil then
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
end
|
||||
end
|
||||
--@endregion
|
||||
|
||||
--@region Default Method
|
||||
function BaseDailyNpc:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
function BaseDailyNpc:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
--@endregion
|
||||
|
||||
--@region Mode
|
||||
BaseDailyNpc.modeDic = {}
|
||||
function BaseDailyNpc:RegisterMode(modeType)
|
||||
local mode = npcMode:GetMode(modeType)
|
||||
if mode ~= nil then
|
||||
self.modeDic[modeType] = mode
|
||||
end
|
||||
end
|
||||
--@endregion
|
||||
|
||||
--@region Default Start
|
||||
function BaseDailyNpc:Start()
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function BaseDailyNpc:StartDaily()
|
||||
self:RegisterDailyHandler()
|
||||
if globalActor.isDay then
|
||||
self:CallStartDay()
|
||||
else
|
||||
self:CallStartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function BaseDailyNpc:ResetDaily()
|
||||
self:Stop()
|
||||
self:UnregisterDailyHandler()
|
||||
end
|
||||
|
||||
function BaseDailyNpc:SwitchMode(modeType)
|
||||
local mode = self.modeDic[modeType]
|
||||
local modeFunc = nil
|
||||
if mode ~= nil then
|
||||
modeFunc = mode[self.alias]
|
||||
if modeFunc == nil then
|
||||
modeFunc = mode.DefaultAction
|
||||
end
|
||||
end
|
||||
|
||||
if modeFunc ~= nil then
|
||||
self:ResetDaily()
|
||||
modeFunc(self)
|
||||
end
|
||||
end
|
||||
--@endregion
|
||||
|
||||
return BaseDailyNpc
|
248
soggy_resources/lua/Actor/Npc/Config/CfgMengdeDayPatrol.lua
Normal file
248
soggy_resources/lua/Actor/Npc/Config/CfgMengdeDayPatrol.lua
Normal file
@@ -0,0 +1,248 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeDayPatrol = {}
|
||||
|
||||
CfgMengdeDayPatrol.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeDayPatrol",
|
||||
PosData={
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos07").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos08").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos09").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos10").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos11").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos12").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos13").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos06").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos07").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos08").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos09").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos10").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos11").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos12").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos07").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos07").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos08").pos,
|
||||
},
|
||||
},
|
||||
DirData={
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos07").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos08").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos09").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos10").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos11").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos12").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos13").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos06").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos07").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos08").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos09").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos10").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos11").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos12").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos07").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos07").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos08").rot,
|
||||
},
|
||||
},
|
||||
TimeData={
|
||||
{
|
||||
25,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
25,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{
|
||||
10,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
20,
|
||||
20,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
},
|
||||
{
|
||||
15,
|
||||
0,
|
||||
20,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{
|
||||
15,
|
||||
0,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
},
|
||||
Pos01Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos01").pos,
|
||||
},
|
||||
Pos02Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos02").pos,
|
||||
},
|
||||
Pos03Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos03").pos,
|
||||
},
|
||||
Pos04Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos04").pos,
|
||||
},
|
||||
Pos05Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos05").pos,
|
||||
},
|
||||
Pos06Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol05Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol10Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol13Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayPatrol18Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayPatrol14Pos06").pos,
|
||||
},
|
||||
NpcID =
|
||||
{
|
||||
1421,
|
||||
1431,
|
||||
1455,
|
||||
1461,
|
||||
1463,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015142199,
|
||||
4015143199,
|
||||
4015145599,
|
||||
4015146199,
|
||||
4015146399,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeDayPatrol
|
20
soggy_resources/lua/Actor/Npc/Config/CfgMengdeDaySit.lua
Normal file
20
soggy_resources/lua/Actor/Npc/Config/CfgMengdeDaySit.lua
Normal file
@@ -0,0 +1,20 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeDaySit = {}
|
||||
|
||||
CfgMengdeDaySit.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeDaySit",
|
||||
NpcID =
|
||||
{
|
||||
1475,
|
||||
1477,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015147599,
|
||||
4015147799,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeDaySit
|
63
soggy_resources/lua/Actor/Npc/Config/CfgMengdeDayStand.lua
Normal file
63
soggy_resources/lua/Actor/Npc/Config/CfgMengdeDayStand.lua
Normal file
@@ -0,0 +1,63 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeDayStand = {}
|
||||
|
||||
CfgMengdeDayStand.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeDayStand",
|
||||
BornDir =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand01Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand01Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand02Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand03Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand04Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand05Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand08Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand09Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand15Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand12Born").rot,
|
||||
},
|
||||
BornPos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand01Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand01Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand02Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand03Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand04Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand05Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand08Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand09Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleDayStand15Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleDayStand12Born").pos,
|
||||
},
|
||||
NpcID =
|
||||
{
|
||||
1401,
|
||||
1403,
|
||||
1405,
|
||||
1409,
|
||||
1411,
|
||||
1413,
|
||||
1427,
|
||||
1429,
|
||||
1451,
|
||||
1453,
|
||||
1453,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015140199,
|
||||
4015140399,
|
||||
4015140599,
|
||||
4015140999,
|
||||
4015141199,
|
||||
4015141399,
|
||||
4015142799,
|
||||
4015142999,
|
||||
4015145199,
|
||||
4015145399,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeDayStand
|
189
soggy_resources/lua/Actor/Npc/Config/CfgMengdeInsomniaPatrol.lua
Normal file
189
soggy_resources/lua/Actor/Npc/Config/CfgMengdeInsomniaPatrol.lua
Normal file
@@ -0,0 +1,189 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeInsomniaPatrol = {}
|
||||
|
||||
CfgMengdeInsomniaPatrol.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeInsomniaPatrol",
|
||||
PosData={
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos07").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos08").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos07").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos08").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos06").pos,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos07").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos08").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos09").pos,
|
||||
},
|
||||
},
|
||||
DirData={
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos07").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos08").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos07").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos08").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos06").rot,
|
||||
},
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos01").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos02").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos03").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos04").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos05").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos06").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos07").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos08").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos09").rot,
|
||||
},
|
||||
},
|
||||
TimeData={
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
},
|
||||
Pos01Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos01").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos01").pos,
|
||||
},
|
||||
Pos02Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos02").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos02").pos,
|
||||
},
|
||||
Pos03Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos03").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos03").pos,
|
||||
},
|
||||
Pos04Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos04").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos04").pos,
|
||||
},
|
||||
Pos05Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos05").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos05").pos,
|
||||
},
|
||||
Pos06Pos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol07Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol12Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol13Pos06").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaPatrol14Pos06").pos,
|
||||
},
|
||||
NpcID =
|
||||
{
|
||||
1433,
|
||||
1445,
|
||||
1447,
|
||||
1449,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015143399,
|
||||
4015144599,
|
||||
4015144799,
|
||||
4015144999,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeInsomniaPatrol
|
115
soggy_resources/lua/Actor/Npc/Config/CfgMengdeInsomniaStand.lua
Normal file
115
soggy_resources/lua/Actor/Npc/Config/CfgMengdeInsomniaStand.lua
Normal file
@@ -0,0 +1,115 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeInsomniaStand = {}
|
||||
|
||||
CfgMengdeInsomniaStand.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeInsomniaStand",
|
||||
BornDir =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand06Born").rot, --弃用
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand06Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand04Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand06Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand07Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand11Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand08Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand09Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand10Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand11Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand16Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand17Born").rot,
|
||||
sceneData:GetDummyPoint(1009, "NpcMaleInsomniaStand19Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand20Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand15Born").rot,
|
||||
sceneData:GetDummyPoint(1008, "NpcFemaleInsomniaStand16Born").rot,
|
||||
sceneData:GetDummyPoint(1008, "NpcFemaleInsomniaStand17Born").rot,
|
||||
sceneData:GetDummyPoint(3, "Q467Lynn1").rot,
|
||||
},
|
||||
BornPos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand06Born").pos, --弃用
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand06Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand04Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand06Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand07Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand11Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand08Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand09Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand10Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand11Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand16Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand17Born").pos,
|
||||
sceneData:GetDummyPoint(1009, "NpcMaleInsomniaStand19Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleInsomniaStand20Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcFemaleInsomniaStand15Born").pos,
|
||||
sceneData:GetDummyPoint(1008, "NpcFemaleInsomniaStand16Born").pos,
|
||||
sceneData:GetDummyPoint(1008, "NpcFemaleInsomniaStand17Born").pos,
|
||||
sceneData:GetDummyPoint(3, "Q467Lynn1").pos,
|
||||
},
|
||||
NpcID =
|
||||
{
|
||||
1415,
|
||||
1417,
|
||||
1419,
|
||||
1423,
|
||||
1425,
|
||||
1435,
|
||||
1437,
|
||||
1439,
|
||||
1441,
|
||||
1443,
|
||||
1457,
|
||||
1459,
|
||||
1465,
|
||||
1467,
|
||||
1469,
|
||||
1471,
|
||||
1473,
|
||||
1479,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015141599,
|
||||
4015141799,
|
||||
4015141999,
|
||||
4015142399,
|
||||
4015142599,
|
||||
4015143599,
|
||||
4015143799,
|
||||
4015143999,
|
||||
4015144199,
|
||||
4015144399,
|
||||
4015145799,
|
||||
4015145999,
|
||||
4015146599,
|
||||
4015146799,
|
||||
4015146999,
|
||||
4015147199,
|
||||
4015147399,
|
||||
4015148001,
|
||||
},
|
||||
BubbleCtrl =
|
||||
{
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeInsomniaStand
|
@@ -0,0 +1,28 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeNightConfuse = {}
|
||||
|
||||
CfgMengdeNightConfuse.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeNightConfuse",
|
||||
Pos01Pos =
|
||||
{
|
||||
},
|
||||
Pos02Pos =
|
||||
{
|
||||
},
|
||||
Pos03Pos =
|
||||
{
|
||||
},
|
||||
Pos04Pos =
|
||||
{
|
||||
},
|
||||
NpcID =
|
||||
{
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeNightConfuse
|
22
soggy_resources/lua/Actor/Npc/Config/CfgMengdeNightSit.lua
Normal file
22
soggy_resources/lua/Actor/Npc/Config/CfgMengdeNightSit.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeNightSit = {}
|
||||
|
||||
CfgMengdeNightSit.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeNightSit",
|
||||
NpcID =
|
||||
{
|
||||
1404,
|
||||
1410,
|
||||
1414,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015140499,
|
||||
4015141099,
|
||||
4015141499,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeNightSit
|
34
soggy_resources/lua/Actor/Npc/Config/CfgMengdeNightStand.lua
Normal file
34
soggy_resources/lua/Actor/Npc/Config/CfgMengdeNightStand.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
require('Actor/ActorCommon')
|
||||
|
||||
local CfgMengdeNightStand = {}
|
||||
|
||||
CfgMengdeNightStand.DummyPointData =
|
||||
{
|
||||
Npc = "MengdeNightStand",
|
||||
BornDir =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleNightStand02Born").rot,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleNightStand04Born").rot,
|
||||
sceneData:GetDummyPoint(1008, "NpcFemaleNightStand09Born").rot,
|
||||
},
|
||||
BornPos =
|
||||
{
|
||||
sceneData:GetDummyPoint(3, "NpcMaleNightStand02Born").pos,
|
||||
sceneData:GetDummyPoint(3, "NpcMaleNightStand04Born").pos,
|
||||
sceneData:GetDummyPoint(1008, "NpcFemaleNightStand09Born").pos,
|
||||
},
|
||||
NpcID =
|
||||
{
|
||||
1408,
|
||||
1412,
|
||||
1430,
|
||||
},
|
||||
DialogID =
|
||||
{
|
||||
4015140899,
|
||||
4015141299,
|
||||
4015143099,
|
||||
},
|
||||
}
|
||||
|
||||
return CfgMengdeNightStand
|
168
soggy_resources/lua/Actor/Npc/JohnDoe01.lua
Normal file
168
soggy_resources/lua/Actor/Npc/JohnDoe01.lua
Normal file
@@ -0,0 +1,168 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe01 = class("JohnDoe01", NpcActorProxy)
|
||||
|
||||
JohnDoe01.defaultAlias = "JohnDoe01"
|
||||
JohnDoe01.pointID = 1
|
||||
JohnDoe01.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe01Data =
|
||||
{
|
||||
BornPos = sceneData:GetDummyPoint(3, "JohnDoe01Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe01Born").rot,
|
||||
HomePos = sceneData:GetDummyPoint(3, "JohnDoe01Home").pos,
|
||||
HomeDir = sceneData:GetDummyPoint(3, "JohnDoe01Home").rot,
|
||||
Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe01Pos01").pos,
|
||||
Pos01Dir = sceneData:GetDummyPoint(3, "JohnDoe01Pos01").rot,
|
||||
Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe01Pos02").pos,
|
||||
Pos02Dir = sceneData:GetDummyPoint(3, "JohnDoe01Pos02").rot,
|
||||
Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe01Pos03").pos,
|
||||
Pos03Dir = sceneData:GetDummyPoint(3, "JohnDoe01Pos03").rot,
|
||||
Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe01Pos04").pos,
|
||||
Pos04Dir = sceneData:GetDummyPoint(3, "JohnDoe01Pos04").rot,
|
||||
ScaredPos = sceneData:GetDummyPoint(3, "NPCScaredPoint01").pos,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe01:Start()
|
||||
--print("start!JohnDoe01")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe01:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe01:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe01:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:StartDaily()
|
||||
--print("JohnDoe01 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfHour(self.HourBehave)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe01Data.BornDir))
|
||||
self:PerformDither(true, 2, self.GoChat)
|
||||
end
|
||||
|
||||
function JohnDoe01:GoChat()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(JohnDoe01Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe01Data.Pos02Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(JohnDoe01Data.Pos03Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(JohnDoe01Data.Pos04Pos, self.Chat, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:SelfPointUpdate()
|
||||
if globalActor.isDay then
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoChat()
|
||||
else
|
||||
self.pointID = self.pointID - 1
|
||||
self:GoHome()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:Chat()
|
||||
if self.pointID < 2 then
|
||||
self:GoChat()
|
||||
elseif self.pointID == 2 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe01Data.Pos02Dir))
|
||||
elseif self.pointID == 3 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe01Data.Pos03Dir))
|
||||
elseif self.pointID == 4 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe01Data.Pos04Dir))
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:HourBehave(Hour)
|
||||
if Hour == 9 or Hour == 12 or Hour == 15 then
|
||||
self.pointID = 3
|
||||
self:GoChat()
|
||||
elseif Hour == 10 or Hour == 13 or Hour == 16 then
|
||||
self.pointID = 4
|
||||
self:GoChat()
|
||||
elseif Hour == 11 or Hour == 14 or Hour == 17 then
|
||||
self.pointID = 2
|
||||
self:GoChat()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
self:GoHome()
|
||||
end
|
||||
|
||||
function JohnDoe01:GoHome()
|
||||
if self.pointID == 1 then
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe01Data.HomeDir))
|
||||
self:DoDisappear()
|
||||
else
|
||||
self:GoHomeRoute()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:GoHomeRoute()
|
||||
if self.pointID > 2 then
|
||||
self.pointID = 3
|
||||
self:WalkToTask(JohnDoe01Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe01Data.HomePos, self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe01:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:DoAppear()
|
||||
self:SetPos(JohnDoe01Data.ScaredPos)
|
||||
self:DoFreeStyle(362)
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe01
|
171
soggy_resources/lua/Actor/Npc/JohnDoe02.lua
Normal file
171
soggy_resources/lua/Actor/Npc/JohnDoe02.lua
Normal file
@@ -0,0 +1,171 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe02 = class("JohnDoe02", NpcActorProxy)
|
||||
|
||||
JohnDoe02.defaultAlias = "JohnDoe02"
|
||||
JohnDoe02.pointID = 1
|
||||
JohnDoe02.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe02Data =
|
||||
{
|
||||
BornPos = sceneData:GetDummyPoint(3, "JohnDoe02Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe02Born").rot,
|
||||
HomePos = sceneData:GetDummyPoint(3, "JohnDoe02Home").pos,
|
||||
HomeDir = sceneData:GetDummyPoint(3, "JohnDoe02Home").rot,
|
||||
Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe02Pos01").pos,
|
||||
Pos01Dir = sceneData:GetDummyPoint(3, "JohnDoe02Pos01").rot,
|
||||
Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe02Pos02").pos,
|
||||
Pos02Dir = sceneData:GetDummyPoint(3, "JohnDoe02Pos02").rot,
|
||||
Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe02Pos03").pos,
|
||||
Pos03Dir = sceneData:GetDummyPoint(3, "JohnDoe02Pos03").rot,
|
||||
Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe02Pos04").pos,
|
||||
Pos04Dir = sceneData:GetDummyPoint(3, "JohnDoe02Pos04").rot,
|
||||
ScaredPos = sceneData:GetDummyPoint(3, "NPCScaredPoint02").pos,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe02:Start()
|
||||
--print("start!JohnDoe02")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe02:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe02:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe02:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:StartDaily()
|
||||
--print("JohnDoe02 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfHour(self.HourBehave)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe02Data.BornDir))
|
||||
self:PerformDither(true, 2, self.GoChat)
|
||||
end
|
||||
|
||||
function JohnDoe02:GoChat()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(JohnDoe02Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe02Data.Pos02Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(JohnDoe02Data.Pos03Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(JohnDoe02Data.Pos04Pos, self.Chat, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:SelfPointUpdate()
|
||||
if globalActor.isDay then
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoChat()
|
||||
else
|
||||
self.pointID = self.pointID - 1
|
||||
self:GoHome()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:Chat()
|
||||
if self.pointID < 2 then
|
||||
self:GoChat()
|
||||
elseif self.pointID == 2 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe02Data.Pos02Dir))
|
||||
elseif self.pointID == 3 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe02Data.Pos03Dir))
|
||||
elseif self.pointID == 4 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe02Data.Pos04Dir))
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:HourBehave(Hour)
|
||||
if Hour == 9 or Hour == 12 or Hour == 15 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 3
|
||||
self:GoChat()
|
||||
elseif Hour == 10 or Hour == 13 or Hour == 16 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 4
|
||||
self:GoChat()
|
||||
elseif Hour == 11 or Hour == 14 or Hour == 17 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 2
|
||||
self:GoChat()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
self:GoHome()
|
||||
end
|
||||
|
||||
function JohnDoe02:GoHome()
|
||||
if self.pointID == 1 then
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe02Data.HomeDir))
|
||||
self:DoDisappear()
|
||||
else
|
||||
self:GoHomeRoute()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:GoHomeRoute()
|
||||
if self.pointID > 2 then
|
||||
self.pointID = 3
|
||||
self:WalkToTask(JohnDoe02Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe02Data.HomePos, self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe02:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:DoAppear()
|
||||
self:SetPos(JohnDoe02Data.ScaredPos)
|
||||
self:DoFreeStyle(362)
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe02
|
171
soggy_resources/lua/Actor/Npc/JohnDoe03.lua
Normal file
171
soggy_resources/lua/Actor/Npc/JohnDoe03.lua
Normal file
@@ -0,0 +1,171 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe03 = class("JohnDoe03", NpcActorProxy)
|
||||
|
||||
JohnDoe03.defaultAlias = "JohnDoe03"
|
||||
JohnDoe03.pointID = 1
|
||||
JohnDoe03.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe03Data =
|
||||
{
|
||||
BornPos = sceneData:GetDummyPoint(3, "JohnDoe03Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe03Born").rot,
|
||||
HomePos = sceneData:GetDummyPoint(3, "JohnDoe03Home").pos,
|
||||
HomeDir = sceneData:GetDummyPoint(3, "JohnDoe03Home").rot,
|
||||
Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe03Pos01").pos,
|
||||
Pos01Dir = sceneData:GetDummyPoint(3, "JohnDoe03Pos01").rot,
|
||||
Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe03Pos02").pos,
|
||||
Pos02Dir = sceneData:GetDummyPoint(3, "JohnDoe03Pos02").rot,
|
||||
Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe03Pos03").pos,
|
||||
Pos03Dir = sceneData:GetDummyPoint(3, "JohnDoe03Pos03").rot,
|
||||
Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe03Pos04").pos,
|
||||
Pos04Dir = sceneData:GetDummyPoint(3, "JohnDoe03Pos04").rot,
|
||||
ScaredPos = sceneData:GetDummyPoint(3, "NPCScaredPoint03").pos,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe03:Start()
|
||||
--print("start!JohnDoe03")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe03:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe03:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe03:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:StartDaily()
|
||||
--print("JohnDoe03 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfHour(self.HourBehave)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe03Data.BornDir))
|
||||
self:PerformDither(true, 2, self.GoChat)
|
||||
end
|
||||
|
||||
function JohnDoe03:GoChat()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(JohnDoe03Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe03Data.Pos02Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(JohnDoe03Data.Pos03Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(JohnDoe03Data.Pos04Pos, self.Chat, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:SelfPointUpdate()
|
||||
if globalActor.isDay then
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoChat()
|
||||
else
|
||||
self.pointID = self.pointID - 1
|
||||
self:GoHome()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:Chat()
|
||||
if self.pointID < 2 then
|
||||
self:GoChat()
|
||||
elseif self.pointID == 2 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe03Data.Pos02Dir))
|
||||
elseif self.pointID == 3 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe03Data.Pos03Dir))
|
||||
elseif self.pointID == 4 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe03Data.Pos04Dir))
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:HourBehave(Hour)
|
||||
if Hour == 9 or Hour == 12 or Hour == 15 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 3
|
||||
self:GoChat()
|
||||
elseif Hour == 10 or Hour == 13 or Hour == 16 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 4
|
||||
self:GoChat()
|
||||
elseif Hour == 11 or Hour == 14 or Hour == 17 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 2
|
||||
self:GoChat()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
self:GoHome()
|
||||
end
|
||||
|
||||
function JohnDoe03:GoHome()
|
||||
if self.pointID == 1 then
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe03Data.HomeDir))
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
else
|
||||
self:GoHomeRoute()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:GoHomeRoute()
|
||||
if self.pointID > 2 then
|
||||
self.pointID = 3
|
||||
self:WalkToTask(JohnDoe03Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe03Data.HomePos, self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe03:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:DoAppear()
|
||||
self:SetPos(JohnDoe03Data.ScaredPos)
|
||||
self:DoFreeStyle(362)
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe03
|
171
soggy_resources/lua/Actor/Npc/JohnDoe04.lua
Normal file
171
soggy_resources/lua/Actor/Npc/JohnDoe04.lua
Normal file
@@ -0,0 +1,171 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe04 = class("JohnDoe04", NpcActorProxy)
|
||||
|
||||
JohnDoe04.defaultAlias = "JohnDoe04"
|
||||
JohnDoe04.pointID = 1
|
||||
JohnDoe04.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe04Data =
|
||||
{
|
||||
BornPos = sceneData:GetDummyPoint(3, "JohnDoe04Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe04Born").rot,
|
||||
HomePos = sceneData:GetDummyPoint(3, "JohnDoe04Home").pos,
|
||||
HomeDir = sceneData:GetDummyPoint(3, "JohnDoe04Home").rot,
|
||||
Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe04Pos01").pos,
|
||||
Pos01Dir = sceneData:GetDummyPoint(3, "JohnDoe04Pos01").rot,
|
||||
Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe04Pos02").pos,
|
||||
Pos02Dir = sceneData:GetDummyPoint(3, "JohnDoe04Pos02").rot,
|
||||
Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe04Pos03").pos,
|
||||
Pos03Dir = sceneData:GetDummyPoint(3, "JohnDoe04Pos03").rot,
|
||||
Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe04Pos04").pos,
|
||||
Pos04Dir = sceneData:GetDummyPoint(3, "JohnDoe04Pos04").rot,
|
||||
ScaredPos = sceneData:GetDummyPoint(3, "NPCScaredPoint04").pos,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe04:Start()
|
||||
--print("start!JohnDoe04")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe04:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe04:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe04:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:StartDaily()
|
||||
--print("JohnDoe04 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfHour(self.HourBehave)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe04Data.BornDir))
|
||||
self:PerformDither(true, 2, self.GoChat)
|
||||
end
|
||||
|
||||
function JohnDoe04:GoChat()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(JohnDoe04Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe04Data.Pos02Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(JohnDoe04Data.Pos03Pos, self.Chat, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(JohnDoe04Data.Pos04Pos, self.Chat, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:SelfPointUpdate()
|
||||
if globalActor.isDay then
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoChat()
|
||||
else
|
||||
self.pointID = self.pointID - 1
|
||||
self:GoHome()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:Chat()
|
||||
if self.pointID < 2 then
|
||||
self:GoChat()
|
||||
elseif self.pointID == 2 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe04Data.Pos02Dir))
|
||||
elseif self.pointID == 3 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe04Data.Pos03Dir))
|
||||
elseif self.pointID == 4 then
|
||||
self:DoFreeStyle(51)
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe04Data.Pos04Dir))
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:HourBehave(Hour)
|
||||
if Hour == 9 or Hour == 12 or Hour == 15 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 3
|
||||
self:GoChat()
|
||||
elseif Hour == 10 or Hour == 13 or Hour == 16 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 4
|
||||
self:GoChat()
|
||||
elseif Hour == 11 or Hour == 14 or Hour == 17 then
|
||||
self:DoFreeStateTrigger()
|
||||
self.pointID = 2
|
||||
self:GoChat()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
self:GoHome()
|
||||
end
|
||||
|
||||
function JohnDoe04:GoHome()
|
||||
if self.pointID == 1 then
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe04Data.HomeDir))
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
else
|
||||
self:GoHomeRoute()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:GoHomeRoute()
|
||||
if self.pointID > 2 then
|
||||
self.pointID = 3
|
||||
self:WalkToTask(JohnDoe04Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe04Data.HomePos, self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe04:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:DoAppear()
|
||||
self:SetPos(JohnDoe04Data.ScaredPos)
|
||||
self:DoFreeStyle(362)
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe04
|
150
soggy_resources/lua/Actor/Npc/JohnDoe05.lua
Normal file
150
soggy_resources/lua/Actor/Npc/JohnDoe05.lua
Normal file
@@ -0,0 +1,150 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe05 = class("JohnDoe05", NpcActorProxy)
|
||||
|
||||
JohnDoe05.defaultAlias = "JohnDoe05"
|
||||
-- JohnDoe05.pointID = 1
|
||||
-- JohnDoe05.targetPos = sceneData:GetDummyPoint(3, "JohnDoe05Born").pos
|
||||
JohnDoe05.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe05Data =
|
||||
{
|
||||
-- BornPos = sceneData:GetDummyPoint(3, "JohnDoe05Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe05Born").rot,
|
||||
-- HomePos = sceneData:GetDummyPoint(3, "JohnDoe05Home").pos,
|
||||
-- HomeDir = sceneData:GetDummyPoint(3, "JohnDoe05Home").rot,
|
||||
-- Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe05Pos01").pos,
|
||||
-- Pos01Dir = sceneData:GetDummyPoint(3, "JohnDoe05Pos01").rot,
|
||||
-- Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe05Pos02").pos,
|
||||
-- Pos02Dir = sceneData:GetDummyPoint(3, "JohnDoe05Pos02").rot,
|
||||
-- Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe05Pos03").pos,
|
||||
-- Pos03Dir = sceneData:GetDummyPoint(3, "JohnDoe05Pos03").rot,
|
||||
-- Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe05Pos04").pos,
|
||||
-- Pos04Dir = sceneData:GetDummyPoint(3, "JohnDoe05Pos04").rot,
|
||||
-- Pos05Pos = sceneData:GetDummyPoint(3, "JohnDoe05Pos05").pos,
|
||||
-- Pos05Dir = sceneData:GetDummyPoint(3, "JohnDoe05Pos05").rot,
|
||||
-- Pos06Pos = sceneData:GetDummyPoint(3, "JohnDoe05Pos06").pos,
|
||||
-- Pos06Dir = sceneData:GetDummyPoint(3, "JohnDoe05Pos06").rot,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe05:Start()
|
||||
-- print("start!JohnDoe05")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe05:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe05:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe05:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe05:StartDaily()
|
||||
-- print("JohnDoe05 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe05:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe05:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe05Data.BornDir))
|
||||
self:PerformDither(true, 2, self.Chat)
|
||||
end
|
||||
|
||||
-- function JohnDoe05:RandomStand()
|
||||
-- self:TargetDect()
|
||||
-- print("self.pointID = "..self.pointID)
|
||||
-- self:WalkToTask(JohnDoe05.targetPos, self.NextMove, self.Standby)
|
||||
-- end
|
||||
|
||||
-- function JohnDoe05:TargetDect()
|
||||
-- self.pointID = math.random(1,6)
|
||||
-- if self.pointID == 1 then
|
||||
-- JohnDoe05.targetPos = JohnDoe05Data.Pos01Pos
|
||||
-- elseif self.pointID == 2 then
|
||||
-- JohnDoe05.targetPos = JohnDoe05Data.Pos02Pos
|
||||
-- elseif self.pointID == 3 then
|
||||
-- JohnDoe05.targetPos = JohnDoe05Data.Pos03Pos
|
||||
-- elseif self.pointID == 4 then
|
||||
-- JohnDoe05.targetPos = JohnDoe05Data.Pos04Pos
|
||||
-- elseif self.pointID == 5 then
|
||||
-- JohnDoe05.targetPos = JohnDoe05Data.Pos05Pos
|
||||
-- elseif self.pointID == 6 then
|
||||
-- JohnDoe05.targetPos = JohnDoe05Data.Pos06Pos
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- function JohnDoe05:NextMove()
|
||||
-- self:CallDelay(math.random(3,7), self.RandomStand)
|
||||
-- end
|
||||
|
||||
-- function JohnDoe05:StartDay()
|
||||
-- self:ClearFollowTask()
|
||||
-- self:ShowSelf()
|
||||
-- self:TurnTo(M.Euler2DirXZ(JohnDoe05Data.BornDir))
|
||||
-- self:PerformDither(true, 2, self.DelayChat)
|
||||
-- self:RandomTest()
|
||||
-- end
|
||||
|
||||
-- function JohnDoe05:DelayChat()
|
||||
-- self:CallDelay(7, self.Chat)
|
||||
-- end
|
||||
|
||||
function JohnDoe05:Chat()
|
||||
self:DoFreeStyle(52)
|
||||
end
|
||||
|
||||
function JohnDoe05:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
-- self:GoHome()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
-- function JohnDoe05:GoHome()
|
||||
-- self:TurnTo(M.Euler2DirXZ(JohnDoe05Data.HomeDir))
|
||||
-- self:PerformDither(false, 2, self.HideSelf)
|
||||
-- end
|
||||
|
||||
function JohnDoe05:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe05
|
150
soggy_resources/lua/Actor/Npc/JohnDoe06.lua
Normal file
150
soggy_resources/lua/Actor/Npc/JohnDoe06.lua
Normal file
@@ -0,0 +1,150 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe06 = class("JohnDoe06", NpcActorProxy)
|
||||
|
||||
JohnDoe06.defaultAlias = "JohnDoe06"
|
||||
-- JohnDoe06.pointID = 1
|
||||
-- JohnDoe06.targetPos = sceneData:GetDummyPoint(3, "JohnDoe06Born").pos
|
||||
JohnDoe06.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe06Data =
|
||||
{
|
||||
-- BornPos = sceneData:GetDummyPoint(3, "JohnDoe06Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe05Home").rot,
|
||||
-- HomePos = sceneData:GetDummyPoint(3, "JohnDoe06Home").pos,
|
||||
-- HomeDir = sceneData:GetDummyPoint(3, "JohnDoe06Home").rot,
|
||||
-- Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe06Pos01").pos,
|
||||
-- Pos01Dir = sceneData:GetDummyPoint(3, "JohnDoe06Pos01").rot,
|
||||
-- Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe06Pos02").pos,
|
||||
-- Pos02Dir = sceneData:GetDummyPoint(3, "JohnDoe06Pos02").rot,
|
||||
-- Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe06Pos03").pos,
|
||||
-- Pos03Dir = sceneData:GetDummyPoint(3, "JohnDoe06Pos03").rot,
|
||||
-- Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe06Pos04").pos,
|
||||
-- Pos04Dir = sceneData:GetDummyPoint(3, "JohnDoe06Pos04").rot,
|
||||
-- Pos05Pos = sceneData:GetDummyPoint(3, "JohnDoe06Pos05").pos,
|
||||
-- Pos05Dir = sceneData:GetDummyPoint(3, "JohnDoe06Pos05").rot,
|
||||
-- Pos06Pos = sceneData:GetDummyPoint(3, "JohnDoe06Pos06").pos,
|
||||
-- Pos06Dir = sceneData:GetDummyPoint(3, "JohnDoe06Pos06").rot,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe06:Start()
|
||||
-- print("start!JohnDoe06")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe06:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe06:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe06:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe06:StartDaily()
|
||||
-- print("JohnDoe06 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe06:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe06:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe06Data.BornDir))
|
||||
self:PerformDither(true, 2, self.Chat)
|
||||
end
|
||||
|
||||
-- function JohnDoe06:RandomStand()
|
||||
-- self:TargetDect()
|
||||
-- print("self.pointID = "..self.pointID)
|
||||
-- self:WalkToTask(JohnDoe06.targetPos, self.NextMove, self.Standby)
|
||||
-- end
|
||||
|
||||
-- function JohnDoe06:TargetDect()
|
||||
-- self.pointID = math.random(1,6)
|
||||
-- if self.pointID == 1 then
|
||||
-- JohnDoe06.targetPos = JohnDoe06Data.Pos01Pos
|
||||
-- elseif self.pointID == 2 then
|
||||
-- JohnDoe06.targetPos = JohnDoe06Data.Pos02Pos
|
||||
-- elseif self.pointID == 3 then
|
||||
-- JohnDoe06.targetPos = JohnDoe06Data.Pos03Pos
|
||||
-- elseif self.pointID == 4 then
|
||||
-- JohnDoe06.targetPos = JohnDoe06Data.Pos04Pos
|
||||
-- elseif self.pointID == 5 then
|
||||
-- JohnDoe06.targetPos = JohnDoe06Data.Pos05Pos
|
||||
-- elseif self.pointID == 6 then
|
||||
-- JohnDoe06.targetPos = JohnDoe06Data.Pos06Pos
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- function JohnDoe06:NextMove()
|
||||
-- self:CallDelay(math.random(3,7), self.RandomStand)
|
||||
-- end
|
||||
|
||||
-- function JohnDoe06:StartDay()
|
||||
-- self:ClearFollowTask()
|
||||
-- self:ShowSelf()
|
||||
-- self:TurnTo(M.Euler2DirXZ(JohnDoe06Data.BornDir))
|
||||
-- self:PerformDither(true, 2, self.DelayChat)
|
||||
-- self:RandomTest()
|
||||
-- end
|
||||
|
||||
-- function JohnDoe06:DelayChat()
|
||||
-- self:CallDelay(7, self.Chat)
|
||||
-- end
|
||||
|
||||
function JohnDoe06:Chat()
|
||||
self:DoFreeStyle(52)
|
||||
end
|
||||
|
||||
function JohnDoe06:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
-- self:GoHome()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
-- function JohnDoe06:GoHome()
|
||||
-- self:TurnTo(M.Euler2DirXZ(JohnDoe06Data.HomeDir))
|
||||
-- self:PerformDither(false, 2, self.HideSelf)
|
||||
-- end
|
||||
|
||||
function JohnDoe06:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe06
|
147
soggy_resources/lua/Actor/Npc/JohnDoe07.lua
Normal file
147
soggy_resources/lua/Actor/Npc/JohnDoe07.lua
Normal file
@@ -0,0 +1,147 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe07 = class("JohnDoe07", NpcActorProxy)
|
||||
|
||||
JohnDoe07.defaultAlias = "JohnDoe07"
|
||||
JohnDoe07.pointID = 1
|
||||
JohnDoe07.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe07Data =
|
||||
{
|
||||
BornPos = sceneData:GetDummyPoint(3, "JohnDoe07Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe07Born").rot,
|
||||
HomePos = sceneData:GetDummyPoint(3, "JohnDoe07Home").pos,
|
||||
HomeDir = sceneData:GetDummyPoint(3, "JohnDoe07Home").rot,
|
||||
Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos01").pos,
|
||||
Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos02").pos,
|
||||
Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos03").pos,
|
||||
Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos04").pos,
|
||||
Pos05Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos05").pos,
|
||||
Pos06Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos06").pos,
|
||||
Pos07Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos07").pos,
|
||||
Pos08Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos08").pos,
|
||||
Pos09Pos = sceneData:GetDummyPoint(3, "JohnDoe07Pos09").pos,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe07:Start()
|
||||
--print("start!JohnDoe07")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe07:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe07:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe07:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe07:StartDaily()
|
||||
--print("JohnDoe07 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe07:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe07:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe07Data.BornDir))
|
||||
self:PerformDither(true, 2, self.GoPatrol)
|
||||
end
|
||||
|
||||
function JohnDoe07:GoPatrol()
|
||||
if self.pointID == 10 then
|
||||
self.pointID = 1
|
||||
end
|
||||
self:GoPatrolRoute()
|
||||
end
|
||||
|
||||
function JohnDoe07:GoPatrolRoute()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos02Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos03Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos04Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 5 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos05Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 6 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos06Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 7 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos07Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 8 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos08Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 9 then
|
||||
self:WalkToTask(JohnDoe07Data.Pos09Pos, self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe07:SelfPointUpdate()
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoPatrol()
|
||||
end
|
||||
|
||||
function JohnDoe07:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
self:GoHome()
|
||||
end
|
||||
|
||||
function JohnDoe07:GoHome()
|
||||
if self.pointID == 1 then
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe07Data.HomeDir))
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
else
|
||||
self:GoHomeRoute()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe07:GoHomeRoute()
|
||||
if self.pointID > 1 then
|
||||
self.pointID = 1
|
||||
self:WalkToTask(JohnDoe07Data.HomePos, self.GoHome, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe07:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe07
|
147
soggy_resources/lua/Actor/Npc/JohnDoe08.lua
Normal file
147
soggy_resources/lua/Actor/Npc/JohnDoe08.lua
Normal file
@@ -0,0 +1,147 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local JohnDoe08 = class("JohnDoe08", NpcActorProxy)
|
||||
|
||||
JohnDoe08.defaultAlias = "JohnDoe08"
|
||||
JohnDoe08.pointID = 1
|
||||
JohnDoe08.currWeather = WeatherType.ClearSky
|
||||
|
||||
local JohnDoe08Data =
|
||||
{
|
||||
BornPos = sceneData:GetDummyPoint(3, "JohnDoe08Born").pos,
|
||||
BornDir = sceneData:GetDummyPoint(3, "JohnDoe08Born").rot,
|
||||
HomePos = sceneData:GetDummyPoint(3, "JohnDoe08Home").pos,
|
||||
HomeDir = sceneData:GetDummyPoint(3, "JohnDoe08Home").rot,
|
||||
Pos01Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos01").pos,
|
||||
Pos02Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos02").pos,
|
||||
Pos03Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos03").pos,
|
||||
Pos04Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos04").pos,
|
||||
Pos05Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos05").pos,
|
||||
Pos06Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos06").pos,
|
||||
Pos07Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos07").pos,
|
||||
Pos08Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos08").pos,
|
||||
Pos09Pos = sceneData:GetDummyPoint(3, "JohnDoe08Pos09").pos,
|
||||
}
|
||||
|
||||
|
||||
function JohnDoe08:Start()
|
||||
--print("start!JohnDoe08")
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function JohnDoe08:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function JohnDoe08:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function JohnDoe08:InvokeOnResetFreeStyle(freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 or freeStyleType == 142 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe08:StartDaily()
|
||||
--print("JohnDoe08 StartDaily")
|
||||
self:CallOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe08:OnCollisionEnter(targetInfo)
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
self:DoFreeStyleTask(42, true, self.StartDaily)
|
||||
else
|
||||
self:DoFreeStyleTask(71, true, self.StartDaily)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe08:StartDay()
|
||||
self:ClearFollowTask()
|
||||
self:ShowSelf()
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe08Data.BornDir))
|
||||
self:PerformDither(true, 2, self.GoPatrol)
|
||||
end
|
||||
|
||||
function JohnDoe08:GoPatrol()
|
||||
if self.pointID == 10 then
|
||||
self.pointID = 1
|
||||
end
|
||||
self:GoPatrolRoute()
|
||||
end
|
||||
|
||||
function JohnDoe08:GoPatrolRoute()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos01Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos02Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos03Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos04Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 5 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos05Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 6 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos06Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 7 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos07Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 8 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos08Pos, self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 9 then
|
||||
self:WalkToTask(JohnDoe08Data.Pos09Pos, self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe08:SelfPointUpdate()
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoPatrol()
|
||||
end
|
||||
|
||||
function JohnDoe08:StartNight()
|
||||
self:ClearFollowTask()
|
||||
self:DoFreeStateTrigger()
|
||||
self:GoHome()
|
||||
end
|
||||
|
||||
function JohnDoe08:GoHome()
|
||||
if self.pointID == 1 then
|
||||
self:TurnTo(M.Euler2DirXZ(JohnDoe08Data.HomeDir))
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
else
|
||||
self:GoHomeRoute()
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe08:GoHomeRoute()
|
||||
if self.pointID > 1 then
|
||||
self.pointID = 1
|
||||
self:WalkToTask(JohnDoe08Data.HomePos, self.GoHome, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function JohnDoe08:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:ClearOnCollisionEnter(self.OnCollisionEnter)
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return JohnDoe08
|
81
soggy_resources/lua/Actor/Npc/MengdeSample01.lua
Normal file
81
soggy_resources/lua/Actor/Npc/MengdeSample01.lua
Normal file
@@ -0,0 +1,81 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local MengdeSample01 = class("MengdeSample01", NpcActorProxy)
|
||||
|
||||
MengdeSample01.defaultAlias = "MengdeSample01"
|
||||
MengdeSample01.currWeather = WeatherType.ClearSky
|
||||
|
||||
function MengdeSample01:Start()
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function MengdeSample01:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function MengdeSample01:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeSample01:StartDaily()
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
self:ShowBubble()
|
||||
end
|
||||
|
||||
function MengdeSample01:StartNight()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2, self.Play)
|
||||
end
|
||||
|
||||
function MengdeSample01:ShowBubble()
|
||||
self:TriggerNpcSpeechBubble(915, 4016412)
|
||||
self:BubbleTime()
|
||||
end
|
||||
|
||||
function MengdeSample01:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeSample01:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(915)
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeSample01:BubbleGap()
|
||||
self:CallDelay(5, self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeSample01:StartDay()
|
||||
self:PerformDither(false, 2, self.Home)
|
||||
end
|
||||
|
||||
function MengdeSample01:Play()
|
||||
self:ShowSelf()
|
||||
end
|
||||
|
||||
function MengdeSample01:Home()
|
||||
self:HideSelf()
|
||||
end
|
||||
|
||||
function MengdeSample01:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return MengdeSample01
|
78
soggy_resources/lua/Actor/Npc/MengdeSample02.lua
Normal file
78
soggy_resources/lua/Actor/Npc/MengdeSample02.lua
Normal file
@@ -0,0 +1,78 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local MengdeSample02 = class("MengdeSample02", NpcActorProxy)
|
||||
|
||||
MengdeSample02.defaultAlias = "MengdeSample02"
|
||||
MengdeSample02.currWeather = WeatherType.ClearSky
|
||||
|
||||
function MengdeSample02:Start()
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function MengdeSample02:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function MengdeSample02:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeSample02:StartDaily()
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeSample02:StartDay()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2, self.Play)
|
||||
end
|
||||
|
||||
function MengdeSample02:ShowBubble()
|
||||
self:TriggerNpcSpeechBubble(916, 4016510)
|
||||
self:BubbleTime()
|
||||
end
|
||||
|
||||
function MengdeSample02:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeSample02:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(916)
|
||||
self:NotifyTo("MengdeSample04", 4016509)
|
||||
end
|
||||
|
||||
function MengdeSample02:StartNight()
|
||||
self:PerformDither(false, 2, self.Home)
|
||||
end
|
||||
|
||||
function MengdeSample02:Play()
|
||||
self:ShowSelf()
|
||||
end
|
||||
|
||||
function MengdeSample02:Home()
|
||||
self:HideSelf()
|
||||
end
|
||||
|
||||
function MengdeSample02:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
elseif evt.evtType == 4016510 then
|
||||
self:ShowBubble()
|
||||
end
|
||||
end
|
||||
|
||||
return MengdeSample02
|
62
soggy_resources/lua/Actor/Npc/MengdeSample03.lua
Normal file
62
soggy_resources/lua/Actor/Npc/MengdeSample03.lua
Normal file
@@ -0,0 +1,62 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local MengdeSample03 = class("MengdeSample03", NpcActorProxy)
|
||||
|
||||
MengdeSample03.defaultAlias = "MengdeSample03"
|
||||
MengdeSample03.currWeather = WeatherType.ClearSky
|
||||
|
||||
function MengdeSample03:Start()
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function MengdeSample03:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function MengdeSample03:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeSample03:StartDaily()
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeSample03:StartDay()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2, self.Play)
|
||||
end
|
||||
|
||||
function MengdeSample03:StartNight()
|
||||
self:PerformDither(false, 2, self.Home)
|
||||
end
|
||||
|
||||
function MengdeSample03:Play()
|
||||
self:ShowSelf()
|
||||
end
|
||||
|
||||
function MengdeSample03:Home()
|
||||
self:HideSelf()
|
||||
end
|
||||
|
||||
function MengdeSample03:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return MengdeSample03
|
80
soggy_resources/lua/Actor/Npc/MengdeSample04.lua
Normal file
80
soggy_resources/lua/Actor/Npc/MengdeSample04.lua
Normal file
@@ -0,0 +1,80 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local MengdeSample04 = class("MengdeSample04", NpcActorProxy)
|
||||
|
||||
MengdeSample04.defaultAlias = "MengdeSample04"
|
||||
MengdeSample04.currWeather = WeatherType.ClearSky
|
||||
|
||||
function MengdeSample04:Start()
|
||||
self:StartDaily()
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
end
|
||||
|
||||
function MengdeSample04:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function MengdeSample04:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeSample04:StartDaily()
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
self:ShowBubble()
|
||||
end
|
||||
|
||||
function MengdeSample04:StartDay()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2, self.Play)
|
||||
end
|
||||
|
||||
function MengdeSample04:ShowBubble()
|
||||
self:TriggerNpcSpeechBubble(918, 4016509)
|
||||
self:BubbleTime()
|
||||
end
|
||||
|
||||
function MengdeSample04:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeSample04:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(918)
|
||||
self:NotifyTo("MengdeSample02", 4016510)
|
||||
end
|
||||
|
||||
function MengdeSample04:StartNight()
|
||||
self:PerformDither(false, 2, self.Home)
|
||||
end
|
||||
|
||||
function MengdeSample04:Play()
|
||||
self:ShowSelf()
|
||||
end
|
||||
|
||||
function MengdeSample04:Home()
|
||||
self:HideSelf()
|
||||
end
|
||||
|
||||
function MengdeSample04:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
elseif evt.evtType == 4016509 then
|
||||
self:ShowBubble()
|
||||
end
|
||||
end
|
||||
|
||||
return MengdeSample04
|
64
soggy_resources/lua/Actor/Npc/MengdeSample05.lua
Normal file
64
soggy_resources/lua/Actor/Npc/MengdeSample05.lua
Normal file
@@ -0,0 +1,64 @@
|
||||
require('Actor/ActorCommon')
|
||||
local NpcActorProxy = require('Actor/Npc/NpcActorProxy')
|
||||
local MengdeSample05 = class("MengdeSample05", NpcActorProxy)
|
||||
|
||||
MengdeSample05.defaultAlias = "MengdeSample05"
|
||||
MengdeSample05.currWeather = WeatherType.ClearSky
|
||||
|
||||
function MengdeSample05:Start()
|
||||
self:HideSelf()
|
||||
self:SitOnChair()
|
||||
self:CallDelay(3, self.StartDaily)
|
||||
end
|
||||
|
||||
function MengdeSample05:DoAppear()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
end
|
||||
|
||||
function MengdeSample05:DoDisappear()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeSample05:StartDaily()
|
||||
self:RegisterSelfDayTime(self.StartDay)
|
||||
self:RegisterSelfNightTime(self.StartNight)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
if globalActor.isDay then
|
||||
self:StartDay()
|
||||
else
|
||||
self:StartNight()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeSample05:StartNight()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2, self.Play)
|
||||
|
||||
end
|
||||
|
||||
function MengdeSample05:StartDay()
|
||||
self:PerformDither(false, 2, self.Home)
|
||||
end
|
||||
|
||||
function MengdeSample05:Play()
|
||||
end
|
||||
|
||||
function MengdeSample05:Home()
|
||||
self:HideSelf()
|
||||
end
|
||||
|
||||
function MengdeSample05:OnEvent(evt)
|
||||
if evt.evtType == 35701 then
|
||||
self:ClearAllTask()
|
||||
self:UnregisterSelfDayTime(self.StartDay)
|
||||
self:UnregisterSelfHour(self.HourBehave)
|
||||
self:UnregisterSelfNightTime(self.StartNight)
|
||||
self:UnregisterActorEvent(self.OnEvent)
|
||||
self:HideSelf()
|
||||
elseif evt.evtType == 35702 then
|
||||
self:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
return MengdeSample05
|
17
soggy_resources/lua/Actor/Npc/NPCEventType.lua
Normal file
17
soggy_resources/lua/Actor/Npc/NPCEventType.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
local EventType = {}
|
||||
|
||||
EventType.DailyNpcEventType =
|
||||
{
|
||||
--@region EventType List
|
||||
--恢复日常巡逻模式
|
||||
STARTDAILY = 0,
|
||||
--隐藏自身
|
||||
HIDESELF = 1,
|
||||
--屏蔽日常行为
|
||||
BANDAILY = 2,
|
||||
|
||||
--@endregion
|
||||
}
|
||||
|
||||
|
||||
return EventType
|
105
soggy_resources/lua/Actor/Npc/NpcActorProxy.lua
Normal file
105
soggy_resources/lua/Actor/Npc/NpcActorProxy.lua
Normal file
@@ -0,0 +1,105 @@
|
||||
----------------------
|
||||
-- 这是Lua端NpcActor的基类,包含了控制Npc行为的方法。继承自EntityActorProxy
|
||||
-- @classmod NpcActorProxy
|
||||
require('Actor/ActorCommon')
|
||||
local entityActorProxy = require('Actor/EntityActorProxy')
|
||||
|
||||
local NpcActorProxy = class("NpcActorProxy", entityActorProxy)
|
||||
|
||||
NpcActorProxy.actorType = ActorType.NPC_ACTOR
|
||||
|
||||
local super = nil
|
||||
|
||||
function NpcActorProxy:OnPreInit()
|
||||
super = self.__super
|
||||
super:OnPreInit()
|
||||
end
|
||||
|
||||
-- local param begin
|
||||
-- local param end
|
||||
|
||||
function NpcActorProxy:CreateNpcUActor(alias)
|
||||
local uActor = actorUtils.CreateActor(self, ActorType.NPC_ACTOR, alias, self.metaPath)
|
||||
if self.bornPos == nil then
|
||||
self.bornPos = M.Pos(0,0,0)
|
||||
end
|
||||
if self.bornDir == nil then
|
||||
self.bornDir = M.Pos(0,0,0)
|
||||
end
|
||||
uActor = actorUtils.CreateNpcActor(self.configID, self.bornPos, self.bornDir, uActor, self.bornSceneID, self.bornRoomID)
|
||||
return uActor
|
||||
end
|
||||
|
||||
function NpcActorProxy:CreateUActor(alias)
|
||||
return self:CreateNpcUActor(alias)
|
||||
end
|
||||
|
||||
--- NpcActor内部交互行为方法
|
||||
-- @section interaction
|
||||
|
||||
--- NpcActor添加交互行为,会截断内置的行为
|
||||
-- @tparam InterTimingType timingType 交互时机
|
||||
-- @tparam table interCfg 交互配置表
|
||||
function NpcActorProxy:AddPriorityInter(timingType, interCfg)
|
||||
self.uActor:AddPriorityInter(timingType, interCfg)
|
||||
end
|
||||
--- NpcActor清除交互行为,根据时机
|
||||
-- @tparam InterTimingType timingType 交互时机
|
||||
function NpcActorProxy:ClearPriorityInter(timingType)
|
||||
self.uActor:ClearPriorityInter(timingType)
|
||||
end
|
||||
--- NpcActor检查是否有对话项
|
||||
function NpcActorProxy:CheckNpcTalk()
|
||||
self.uActor:CheckNpcTalk()
|
||||
end
|
||||
|
||||
--- NpcActor注册碰撞回调
|
||||
function NpcActorProxy:CallOnCollisionEnter(onCollision)
|
||||
self.uActor:CallOnCollisionEnter(onCollision)
|
||||
end
|
||||
function NpcActorProxy:ClearOnCollisionEnter(onCollision)
|
||||
self.uActor:ClearOnCollisionEnter(onCollision)
|
||||
end
|
||||
|
||||
--- NpcActor临时关闭打开控头
|
||||
-- @tparam bool value flase是关,true是开
|
||||
function NpcActorProxy:EnableHeadCtrl(value)
|
||||
self.uActor:EnableHeadCtrl(value)
|
||||
end
|
||||
|
||||
function NpcActorProxy:OnDestroy()
|
||||
|
||||
end
|
||||
|
||||
function NpcActorProxy:Destroy(isActorOnly)
|
||||
self:OnDestroy()
|
||||
self:ClearCoroutine()
|
||||
if self.uActor ~= nil then
|
||||
self.uActor:Destroy(isActorOnly)
|
||||
end
|
||||
actorMgr:ClearActor(self.alias)
|
||||
self.uActor = nil
|
||||
self.actorData = nil
|
||||
end
|
||||
|
||||
function NpcActorProxy:ClearActor()
|
||||
self.uActor:ClearActor()
|
||||
|
||||
self.targetPos = nil
|
||||
self.routePoints = nil
|
||||
|
||||
self.BeFollowLen = 10
|
||||
self.BeFollowFailedLen = 20
|
||||
self.BeFollowState = BeFollowState.ING
|
||||
self.BeFollowFailed = nil
|
||||
|
||||
self.CurrDialogList = nil
|
||||
self.CurrDialogIndex = 1
|
||||
self.CurrDuration = 0
|
||||
self.CurrDurationCnt = 0
|
||||
self.NarratorPauseLen = 10
|
||||
self.NarratorResumeLen = 5
|
||||
self.NarratorState = NarratorState.ING
|
||||
end
|
||||
|
||||
return NpcActorProxy
|
64
soggy_resources/lua/Actor/Npc/NpcDailyCommon.lua
Normal file
64
soggy_resources/lua/Actor/Npc/NpcDailyCommon.lua
Normal file
@@ -0,0 +1,64 @@
|
||||
local DailyNpcCommon={}
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
local NpcModeType = require('Actor/Npc/NpcMode/NpcModeType')
|
||||
|
||||
local NpcEventType = NpcEventType.DailyNpcEventType
|
||||
|
||||
DailyNpcCommon.Register= function(actor)
|
||||
actor:RegisterMode(NpcModeType.MODE_HIDE)
|
||||
actor:RegisterMode(NpcModeType.MODE_BANDAILY)
|
||||
end
|
||||
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle= function(actor,freeStyleType)
|
||||
if freeStyleType == 361 or freeStyleType == 141 then
|
||||
actor:RecoverFromFreeStyle()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
DailyNpcCommon.OnEvent= function(evt,actor)
|
||||
if evt.evtType == NpcEventType.STARTDAILY then
|
||||
actor:StartDaily()
|
||||
elseif evt.evtType == NpcEventType.HIDESELF then
|
||||
actor:SwitchMode(NpcModeType.MODE_HIDE)
|
||||
elseif evt.evtType == NpcEventType.BANDAILY then
|
||||
actor:SwitchMode(NpcModeType.MODE_BANDAILY)
|
||||
end
|
||||
end
|
||||
|
||||
DailyNpcCommon.OnCollisionEnter= function(targetInfo,actor)
|
||||
if actor.OnAction==1 then
|
||||
return
|
||||
end
|
||||
if targetInfo.isSprint or targetInfo.isRun then
|
||||
if targetInfo.isFromBack then
|
||||
--actor:AddPriorityInter(InterTimingType.BTN, NoReplyInter)
|
||||
actor.OnAction=1
|
||||
local avatarPos = actorUtils.GetAvatarPos()
|
||||
local selfPos = actor:GetPos()
|
||||
local TurnDir = { x = selfPos.x-avatarPos.x, y = selfPos.y,-avatarPos.y, z = selfPos.z-avatarPos.z}
|
||||
actor:Standby()
|
||||
actor:TurnTo(TurnDir)
|
||||
actor:DoFreeStyleTask(9010, true, actor.RecoverFromCollisionEnter)
|
||||
--[[actor:CallDelay(0,
|
||||
function(actor)
|
||||
actor:DoFreeStyleTask(9010, true, actor.RecoverFromCollisionEnter)
|
||||
end)]]--
|
||||
else
|
||||
actor.OnAction=1
|
||||
local avatarPos = actorUtils.GetAvatarPos()
|
||||
local selfPos = actor:GetPos()
|
||||
local TurnDir = { x = avatarPos.x-selfPos.x, y = avatarPos.y-selfPos.y, z = avatarPos.z-selfPos.z}
|
||||
actor:Standby()
|
||||
actor:TurnTo(TurnDir)
|
||||
--[[actor:CallDelay(0,
|
||||
afunction(actor)
|
||||
actor:DoFreeStyleTask(9020, true, actor.RecoverFromCollisionEnter)
|
||||
end)]]--
|
||||
actor:DoFreeStyleTask(9020, true,actor.RecoverFromCollisionEnter)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return DailyNpcCommon
|
169
soggy_resources/lua/Actor/Npc/NpcMengdeDayPatrol.lua
Normal file
169
soggy_resources/lua/Actor/Npc/NpcMengdeDayPatrol.lua
Normal file
@@ -0,0 +1,169 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeDayPatrol = class("MengdeDayPatrol", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeDayPatrol.defaultAlias = "MengdeDayPatrol"
|
||||
MengdeDayPatrol.pointID = 1
|
||||
|
||||
|
||||
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeDayPatrol')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
|
||||
|
||||
function MengdeDayPatrol:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:RecoverFromFreeStyle()
|
||||
print("RecoverFromFreeStyle")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:RecoverFromCollisionEnter()
|
||||
print("RecoverFromCollisionEnter")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:Recover()
|
||||
self.OnAction=0
|
||||
self:GoPatrol1()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:InvokeOnResetFreeStyle(freeStyleType)
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle(self,freeStyleType)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:OnCollisionEnter(targetInfo)
|
||||
DailyNpcCommon.OnCollisionEnter(targetInfo,self)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:DataInit()
|
||||
self.Data=DummyPointData.PosData[self.dataIndex]
|
||||
self.Count=#DummyPointData.PosData[self.dataIndex]
|
||||
self.Time=DummyPointData.TimeData[self.dataIndex]
|
||||
self.Dir=DummyPointData.DirData[self.dataIndex]
|
||||
self.pointID=math.random(1,self.Count)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:StartDay()
|
||||
--print("start day"..tostring(self.dataIndex))
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
--self:GoPatrol()
|
||||
--self:CallDelay(2,self.GoPatrol1)
|
||||
self:GoPatrol1()
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:Start()
|
||||
--print("start!!!!!!!!!!!!!!!!!!!!!"..tostring(self.dataIndex))
|
||||
self:DataInit()
|
||||
self:SetPos(self.Data[self.pointID],true)
|
||||
--self:CallDelay(5,self.StartDaily)
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:GoPatrol1()
|
||||
if self.pointID == self.Count+1 then
|
||||
self.pointID = 1
|
||||
end
|
||||
--self:CallDelay(math.random(10,20), self.GoPatrolRoute1)
|
||||
self:GoPatrolRoute1()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:GoPatrolRoute1()
|
||||
--print("npc"..tostring(self.dataIndex).."walkto"..tostring(self.pointID))
|
||||
self:WalkToTask(self.Data[self.pointID], self.SelfPointUpdate1, self.Standby)
|
||||
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:SelfPointUpdate1()
|
||||
local time=self.Time[self.pointID]
|
||||
local dir=self.Dir[self.pointID]
|
||||
self.pointID = self.pointID + 1
|
||||
if time==0 then
|
||||
self:GoPatrol1()
|
||||
else
|
||||
self:Standby()
|
||||
--self:TurnTo(M.Euler2DirXZ(dir))
|
||||
self:SteerToTask(M.Euler2DirXZ(dir),1,true,true)
|
||||
self:CallDelay(time, self.GoPatrol1)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function MengdeDayPatrol:GoPatrol()
|
||||
if self.pointID == 7 then
|
||||
self.pointID = 1
|
||||
end
|
||||
self:GoPatrolRoute()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:GoPatrolRoute()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(DummyPointData.Pos01Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(DummyPointData.Pos02Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(DummyPointData.Pos03Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(DummyPointData.Pos04Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 5 then
|
||||
self:WalkToTask(DummyPointData.Pos05Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 6 then
|
||||
self:WalkToTask(DummyPointData.Pos06Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:SelfPointUpdate()
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoPatrol()
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:StartNight()
|
||||
self:Standby()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeDayPatrol:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeDayPatrol
|
68
soggy_resources/lua/Actor/Npc/NpcMengdeDaySit.lua
Normal file
68
soggy_resources/lua/Actor/Npc/NpcMengdeDaySit.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeDaySit = class("MengdeDaySit", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeDaySit.defaultAlias = "MengdeDaySit"
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeDaySit')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
function MengdeDaySit:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeDaySit:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeDaySit:StartDay()
|
||||
self:SitOnChair()
|
||||
self:CallDelay(4, self.AfterSit)
|
||||
end
|
||||
|
||||
function MengdeDaySit:AfterSit()
|
||||
self:DoFreeStateTrigger()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeDaySit:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeDaySit:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeDaySit:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeDaySit:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeDaySit:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeDaySit:StartNight()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeDaySit:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeDaySit
|
112
soggy_resources/lua/Actor/Npc/NpcMengdeDayStand.lua
Normal file
112
soggy_resources/lua/Actor/Npc/NpcMengdeDayStand.lua
Normal file
@@ -0,0 +1,112 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeDayStand = class("MengdeDayStand", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeDayStand.defaultAlias = "MengdeDayStand"
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeDayStand')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
|
||||
|
||||
function MengdeDayStand:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeDayStand:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeDayStand:InvokeOnResetFreeStyle(freeStyleType)
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle(self,freeStyleType)
|
||||
end
|
||||
|
||||
function MengdeDayStand:OnCollisionEnter(targetInfo)
|
||||
DailyNpcCommon.OnCollisionEnter(targetInfo,self)
|
||||
end
|
||||
|
||||
function MengdeDayStand:WalkBack()
|
||||
print("walkback")
|
||||
self:WalkToTask(DummyPointData.BornPos[self.dataIndex],self.Recover)
|
||||
--self:StartDay()
|
||||
end
|
||||
|
||||
function MengdeDayStand:RecoverFromFreeStyle()
|
||||
print("RecoverFromFreeStyle")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeDayStand:RecoverFromCollisionEnter()
|
||||
print("RecoverFromCollisionEnter")
|
||||
--self:ClearAllTask()
|
||||
self:Recover()
|
||||
--self:CallDelay(0.5,self.WalkBack)
|
||||
end
|
||||
|
||||
function MengdeDayStand:Recover()
|
||||
self.OnAction=0
|
||||
self:Standby()
|
||||
--self:TurnTo(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]))
|
||||
self:SteerToTask(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]),1,true,true)
|
||||
self:DoFreeStateTrigger()
|
||||
end
|
||||
|
||||
function MengdeDayStand:StartDay()
|
||||
self:Standby()
|
||||
self:TurnTo(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]))
|
||||
self:DoFreeStateTrigger()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeDayStand:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function MengdeDayStand:StartBubble()
|
||||
--print("startbubble")
|
||||
--if self.bubble~=1 then
|
||||
--print("startbubble1")
|
||||
self:ShowBubble()
|
||||
--self.bubble=1
|
||||
--end
|
||||
end
|
||||
|
||||
function MengdeDayStand:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function MengdeDayStand:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeDayStand:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeDayStand:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeDayStand:StartNight()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeDayStand:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeDayStand
|
163
soggy_resources/lua/Actor/Npc/NpcMengdeInsomniaPatrol.lua
Normal file
163
soggy_resources/lua/Actor/Npc/NpcMengdeInsomniaPatrol.lua
Normal file
@@ -0,0 +1,163 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeInsomniaPatrol = class("MengdeInsomniaPatrol", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeInsomniaPatrol.defaultAlias = "MengdeInsomniaPatrol"
|
||||
MengdeInsomniaPatrol.pointID = 1
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeInsomniaPatrol')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
function MengdeInsomniaPatrol:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:RecoverFromFreeStyle()
|
||||
print("RecoverFromFreeStyle")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:RecoverFromCollisionEnter()
|
||||
print("RecoverFromCollisionEnter")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:Recover()
|
||||
self.OnAction=0
|
||||
self:GoPatrol1()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:InvokeOnResetFreeStyle(freeStyleType)
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle(self,freeStyleType)
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:OnCollisionEnter(targetInfo)
|
||||
DailyNpcCommon.OnCollisionEnter(targetInfo,self)
|
||||
end
|
||||
|
||||
|
||||
|
||||
function MengdeInsomniaPatrol:DataInit()
|
||||
self.Data=DummyPointData.PosData[self.dataIndex]
|
||||
self.Count=#DummyPointData.PosData[self.dataIndex]
|
||||
self.Time=DummyPointData.TimeData[self.dataIndex]
|
||||
self.Dir=DummyPointData.DirData[self.dataIndex]
|
||||
self.pointID=math.random(1,self.Count)
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:StartDay()
|
||||
print("start day"..tostring(self.dataIndex))
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
--self:GoPatrol()
|
||||
--self:CallDelay(2,self.GoPatrol1)
|
||||
self:GoPatrol1()
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:Start()
|
||||
print("start!!!!!!!!!!!!!!!!!!!!!"..tostring(self.dataIndex))
|
||||
self:DataInit()
|
||||
self:SetPos(self.Data[self.pointID],true)
|
||||
--self:CallDelay(5,self.StartDaily)
|
||||
self:StartDaily()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:GoPatrol1()
|
||||
if self.pointID == self.Count+1 then
|
||||
self.pointID = 1
|
||||
end
|
||||
--self:CallDelay(math.random(10,20), self.GoPatrolRoute1)
|
||||
self:GoPatrolRoute1()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:GoPatrolRoute1()
|
||||
print("npc"..tostring(self.dataIndex).."walkto"..tostring(self.pointID))
|
||||
self:WalkToTask(self.Data[self.pointID], self.SelfPointUpdate1, self.Standby)
|
||||
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:SelfPointUpdate1()
|
||||
local time=self.Time[self.pointID]
|
||||
local dir=self.Dir[self.pointID]
|
||||
self.pointID = self.pointID + 1
|
||||
if time==0 then
|
||||
self:GoPatrol1()
|
||||
else
|
||||
self:Standby()
|
||||
--self:TurnTo(M.Euler2DirXZ(dir))
|
||||
self:SteerToTask(M.Euler2DirXZ(dir),1,true,true)
|
||||
self:CallDelay(time, self.GoPatrol1)
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:GoPatrol()
|
||||
if self.pointID == 7 then
|
||||
self.pointID = 1
|
||||
end
|
||||
self:GoPatrolRoute()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:GoPatrolRoute()
|
||||
if self.pointID == 1 then
|
||||
self:WalkToTask(DummyPointData.Pos01Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 2 then
|
||||
self:WalkToTask(DummyPointData.Pos02Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 3 then
|
||||
self:WalkToTask(DummyPointData.Pos03Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 4 then
|
||||
self:WalkToTask(DummyPointData.Pos04Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 5 then
|
||||
self:WalkToTask(DummyPointData.Pos05Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
elseif self.pointID == 6 then
|
||||
self:WalkToTask(DummyPointData.Pos06Pos[self.dataIndex], self.SelfPointUpdate, self.Standby)
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:SelfPointUpdate()
|
||||
self.pointID = self.pointID + 1
|
||||
self:GoPatrol()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:StartNight()
|
||||
self:StartDay()
|
||||
end
|
||||
|
||||
function MengdeInsomniaPatrol:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeInsomniaPatrol
|
105
soggy_resources/lua/Actor/Npc/NpcMengdeInsomniaStand.lua
Normal file
105
soggy_resources/lua/Actor/Npc/NpcMengdeInsomniaStand.lua
Normal file
@@ -0,0 +1,105 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeInsomniaStand = class("MengdeInsomniaStand", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeInsomniaStand.defaultAlias = "MengdeInsomniaStand"
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeInsomniaStand')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
BubbleCtrl_NpcMengdeInsomniaStand = DummyPointData.BubbleCtrl
|
||||
|
||||
function MengdeInsomniaStand:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:InvokeOnResetFreeStyle(freeStyleType)
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle(self,freeStyleType)
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:OnCollisionEnter(targetInfo)
|
||||
DailyNpcCommon.OnCollisionEnter(targetInfo,self)
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:WalkBack()
|
||||
print("walkback")
|
||||
self:WalkToTask(DummyPointData.BornPos[self.dataIndex],self.Recover)
|
||||
--self:StartDay()
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:RecoverFromFreeStyle()
|
||||
print("RecoverFromFreeStyle")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:RecoverFromCollisionEnter()
|
||||
print("RecoverFromCollisionEnter")
|
||||
--self:ClearAllTask()
|
||||
self:Recover()
|
||||
--self:CallDelay(0.5,self.WalkBack)
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:Recover()
|
||||
self.OnAction=0
|
||||
self:Standby()
|
||||
self:SteerToTask(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]),1,true,true)
|
||||
--self:TurnTo(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]))
|
||||
self:DoFreeStateTrigger()
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:StartDay()
|
||||
self:Standby()
|
||||
self:TurnTo(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]))
|
||||
self:DoFreeStateTrigger()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:StartBubble()
|
||||
--print("start bubble")
|
||||
if self.bubble~=1 then
|
||||
--print("bubble!=1")
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function MengdeInsomniaStand:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
if BubbleCtrl_NpcMengdeInsomniaStand[self.dataIndex] ~= -1 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
end
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:StartNight()
|
||||
self:StartDay()
|
||||
end
|
||||
|
||||
function MengdeInsomniaStand:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeInsomniaStand
|
110
soggy_resources/lua/Actor/Npc/NpcMengdeNightConfuse.lua
Normal file
110
soggy_resources/lua/Actor/Npc/NpcMengdeNightConfuse.lua
Normal file
@@ -0,0 +1,110 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeNightConfuse = class("MengdeNightConfuse", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeNightConfuse.defaultAlias = "MengdeNightConfuse"
|
||||
MengdeNightConfuse.pointID = 1
|
||||
MengdeNightConfuse.nightConfuseTargetPos = nil
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeNightConfuse')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
function MengdeNightConfuse:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:RecoverFromFreeStyle()
|
||||
print("RecoverFromFreeStyle")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:RecoverFromCollisionEnter()
|
||||
print("RecoverFromCollisionEnter")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:Recover()
|
||||
self:RandomStand()
|
||||
end
|
||||
|
||||
|
||||
function MengdeNightConfuse:InvokeOnResetFreeStyle(freeStyleType)
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle(self,freeStyleType)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:OnCollisionEnter(targetInfo)
|
||||
DailyNpcCommon.OnCollisionEnter(targetInfo,self)
|
||||
end
|
||||
|
||||
|
||||
function MengdeNightConfuse:StartDay()
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:StartNight()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
self:RandomStand()
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:RandomStand()
|
||||
self:ChooseRandomPos()
|
||||
self:WalkToTask(self.nightConfuseTargetPos, self.NextMove, self.Standby)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:ChooseRandomPos()
|
||||
self.pointID = math.random(1,4)
|
||||
if self.pointID == 1 then
|
||||
self.nightConfuseTargetPos = DummyPointData.Pos01Pos[self.dataIndex]
|
||||
elseif self.pointID == 2 then
|
||||
self.nightConfuseTargetPos = DummyPointData.Pos02Pos[self.dataIndex]
|
||||
elseif self.pointID == 3 then
|
||||
self.nightConfuseTargetPos = DummyPointData.Pos03Pos[self.dataIndex]
|
||||
elseif self.pointID == 4 then
|
||||
self.nightConfuseTargetPos = DummyPointData.Pos04Pos[self.dataIndex]
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:NextMove()
|
||||
self:CallDelay(math.random(3,10), self.RandomStand)
|
||||
end
|
||||
|
||||
function MengdeNightConfuse:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeNightConfuse
|
68
soggy_resources/lua/Actor/Npc/NpcMengdeNightSit.lua
Normal file
68
soggy_resources/lua/Actor/Npc/NpcMengdeNightSit.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeNightSit = class("MengdeNightSit", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeNightSit.defaultAlias = "MengdeNightSit"
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeNightSit')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
function MengdeNightSit:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeNightSit:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeNightSit:StartNight()
|
||||
self:SitOnChair()
|
||||
self:CallDelay(4, self.AfterSit)
|
||||
end
|
||||
|
||||
function MengdeNightSit:AfterSit()
|
||||
self:DoFreeStateTrigger()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeNightSit:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightSit:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightSit:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeNightSit:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeNightSit:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeNightSit:StartDay()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeNightSit:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeNightSit
|
100
soggy_resources/lua/Actor/Npc/NpcMengdeNightStand.lua
Normal file
100
soggy_resources/lua/Actor/Npc/NpcMengdeNightStand.lua
Normal file
@@ -0,0 +1,100 @@
|
||||
require('Actor/ActorCommon')
|
||||
local BaseDailyNpc = require('Actor/Npc/BaseDailyNpc')
|
||||
local MengdeNightStand = class("MengdeNightStand", BaseDailyNpc)
|
||||
local DailyNpcCommon = require('Actor/Npc/NpcDailyCommon')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
MengdeNightStand.defaultAlias = "MengdeNightStand"
|
||||
|
||||
local Config = require('Actor/Npc/Config/CfgMengdeNightStand')
|
||||
local DummyPointData = Config.DummyPointData
|
||||
|
||||
function MengdeNightStand:PreGetAlias()
|
||||
local NpcAlias = DummyPointData.Npc .. '_' .. tostring(self.dataIndex)
|
||||
return NpcAlias
|
||||
end
|
||||
|
||||
function MengdeNightStand:Register()
|
||||
DailyNpcCommon.Register(self)
|
||||
end
|
||||
|
||||
function MengdeNightStand:InvokeOnResetFreeStyle(freeStyleType)
|
||||
DailyNpcCommon.InvokeOnResetFreeStyle(self,freeStyleType)
|
||||
end
|
||||
|
||||
function MengdeNightStand:OnCollisionEnter(targetInfo)
|
||||
DailyNpcCommon.OnCollisionEnter(targetInfo,self)
|
||||
end
|
||||
|
||||
function MengdeNightStand:WalkBack()
|
||||
print("walkback")
|
||||
self:WalkToTask(DummyPointData.BornPos[self.dataIndex],self.Recover)
|
||||
--self:StartDay()
|
||||
end
|
||||
|
||||
function MengdeNightStand:RecoverFromFreeStyle()
|
||||
print("RecoverFromFreeStyle")
|
||||
self:Recover()
|
||||
end
|
||||
|
||||
function MengdeNightStand:RecoverFromCollisionEnter()
|
||||
print("RecoverFromCollisionEnter")
|
||||
self:ClearAllTask()
|
||||
self:Recover()
|
||||
--self:CallDelay(0.5,self.WalkBack)
|
||||
end
|
||||
|
||||
function MengdeNightStand:Recover()
|
||||
self.OnAction=0
|
||||
self:Standby()
|
||||
--self:TurnTo(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]))
|
||||
self:SteerToTask(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]),1,true,true)
|
||||
self:DoFreeStateTrigger()
|
||||
end
|
||||
|
||||
|
||||
function MengdeNightStand:StartDay()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:PerformDither(false, 2, self.HideSelf)
|
||||
end
|
||||
|
||||
function MengdeNightStand:StartNight()
|
||||
self:Standby()
|
||||
self:TurnTo(M.Euler2DirXZ(DummyPointData.BornDir[self.dataIndex]))
|
||||
self:DoFreeStateTrigger()
|
||||
self:ShowSelf()
|
||||
self:PerformDither(true, 2)
|
||||
self:StartBubble()
|
||||
end
|
||||
|
||||
function MengdeNightStand:StartBubble()
|
||||
if self.bubble~=1 then
|
||||
self:ShowBubble()
|
||||
self.bubble=1
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightStand:ShowBubble()
|
||||
if DummyPointData.DialogID[self.dataIndex] ~= 0 then
|
||||
self:TriggerNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex], DummyPointData.DialogID[self.dataIndex])
|
||||
self:BubbleTime()
|
||||
end
|
||||
end
|
||||
|
||||
function MengdeNightStand:BubbleTime()
|
||||
self:CallDelay(5, self.CloseBubble)
|
||||
end
|
||||
|
||||
function MengdeNightStand:CloseBubble()
|
||||
self:ClearNpcSpeechBubble(DummyPointData.NpcID[self.dataIndex])
|
||||
self:BubbleGap()
|
||||
end
|
||||
|
||||
function MengdeNightStand:BubbleGap()
|
||||
self:CallDelay(math.random(7,8), self.ShowBubble)
|
||||
end
|
||||
|
||||
function MengdeNightStand:OnEvent(evt)
|
||||
DailyNpcCommon.OnEvent(evt,self)
|
||||
end
|
||||
|
||||
return MengdeNightStand
|
26
soggy_resources/lua/Actor/Npc/NpcMode/NpcModeType.lua
Normal file
26
soggy_resources/lua/Actor/Npc/NpcMode/NpcModeType.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
local NpcModeType =
|
||||
{
|
||||
--@region ModeType List
|
||||
--隐藏自身
|
||||
MODE_HIDE = 1,
|
||||
MODE_BANDAILY = 2,
|
||||
|
||||
--@endregion
|
||||
}
|
||||
|
||||
NpcModeType.ModeScript =
|
||||
{
|
||||
'Actor/Npc/NpcMode/NpcMode_MengdeHide',
|
||||
'Actor/Npc/NpcMode/NpcMode_BanDaily',
|
||||
}
|
||||
|
||||
function NpcModeType:GetMode(modeType)
|
||||
local modeScript = self.ModeScript[modeType]
|
||||
if modeScript ~= nil then
|
||||
local mode = require(modeScript)
|
||||
return mode
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
return NpcModeType
|
27
soggy_resources/lua/Actor/Npc/NpcMode/NpcMode_BanDaily.lua
Normal file
27
soggy_resources/lua/Actor/Npc/NpcMode/NpcMode_BanDaily.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
local BaseMode = require('Actor/BaseActorMode')
|
||||
local NpcEventType = require('Actor/Npc/NPCEventType')
|
||||
local NpcMode_Hide = class("NpcMode_MengdeHide", BaseMode)
|
||||
|
||||
--@region Default
|
||||
NpcMode_Hide.DefaultAction = function(self)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
self:StartDay()
|
||||
end
|
||||
--@endregion
|
||||
|
||||
|
||||
NpcMode_Hide.OnEvent=function(actor,evt)
|
||||
if evt.evtType == NpcEventType.STARTDAILY then
|
||||
print("NpcMode_Hide STARTDAILY")
|
||||
actor:StartDaily()
|
||||
end
|
||||
end
|
||||
|
||||
--@region PatrolInsomnia
|
||||
NpcMode_Hide["MengdeDayPatrol_1"] = function(self)
|
||||
self:RegisterActorEvent(self.OnEvent)
|
||||
end
|
||||
|
||||
|
||||
|
||||
return NpcMode_Hide
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user