55 lines
2.5 KiB
Lua
55 lines
2.5 KiB
Lua
|
local BuffAction_Tamplate = {
|
|||
|
|
|||
|
-- 以下参数信息可以通过manager的 GetBuffDefaultParam(BuffPath, ParamName)来获取 --
|
|||
|
-- 默认颜色信息,非必要参数
|
|||
|
BuffColor = {R = 0.97, G = 0.88, B = 0.1, A = 1.};
|
|||
|
BuffIconPath = "默认Icon路径,非必要参数";
|
|||
|
BuffParticlePath = "默认粒子路径,非必要参数";
|
|||
|
BuffDesc = "Buff描述信息,非必要参数";
|
|||
|
--------------------------------------------------------------------------------
|
|||
|
}
|
|||
|
|
|||
|
--- 必须包含ApplyBuff函数
|
|||
|
---@param BuffTag Any Buff的标签
|
|||
|
---@param ValidPawn UGCPlayerPawn_C
|
|||
|
---@param Args ... Any
|
|||
|
---@return ApplySucceed:bool
|
|||
|
function BuffAction_Tamplate:ApplyBuff(BuffTag, ValidPawn, ArgParam1, ArgParam2, ArgParam3)
|
|||
|
-- Apply逻辑
|
|||
|
|
|||
|
-- 通过BuffManager调用RPC
|
|||
|
-- BP_BuffManager.GetBuffFileName()可以获取到当前文件名
|
|||
|
---@param TargetPlayerKey:[为uint32则单独发送], [为table{uint32, ...}则多个发送], [为nil则广播发送]. 若客户端调用则无视该参数
|
|||
|
---@param BuffName:string Buff文件名,BuffAction代码中可使用BP_BuffManager.GetBuffFileName()获取
|
|||
|
---@param TargetFuncName:string 目标BuffAction的函数名
|
|||
|
---@param ...:Args TargetFunc的输入参数
|
|||
|
BP_BuffManager.GetBuffManager():BuffNotifyRPC(ValidPawn.PlayerKey, BP_BuffManager.GetBuffFileName(), "Client_RPCFunc", ValidPawn, ArgParam1, ArgParam3)
|
|||
|
|
|||
|
return true
|
|||
|
end
|
|||
|
|
|||
|
--- 可以包含RemoveBuff,若包含该函数则玩家应用该Buff时会保存Buff信息缓存,作为移除或者获取玩家当前Buff的备份信息
|
|||
|
---@param BuffTag Any Buff的标签
|
|||
|
---@param ValidPawn UGCPlayerPawn_C
|
|||
|
---@param Args ... Any Args顺序必须与ApplyBuff顺序一致
|
|||
|
function BuffAction_Tamplate:RemoveBuff(BuffTag, ValidPawn, ArgParam1, ArgParam2, ArgParam3)
|
|||
|
-- Remove逻辑
|
|||
|
|
|||
|
-- 通过BuffManager调用RPC
|
|||
|
BP_BuffManager.GetBuffManager():BuffNotifyRPC(ValidPawn.PlayerKey, BP_BuffManager.GetBuffFileName(), "Client_RPCFunc", ValidPawn, ArgParam1, ArgParam3)
|
|||
|
end
|
|||
|
|
|||
|
--- Tick函数 服务器客户端均会调用
|
|||
|
function BuffAction_Tamplate:Tick(DeltaTime)
|
|||
|
-- Tick逻辑
|
|||
|
end
|
|||
|
|
|||
|
--- 触发的RPC函数
|
|||
|
function BuffAction_Tamplate:Client_RPCFunc(ValidPawn, RPCArgParam1, RPCArgParam2)
|
|||
|
end
|
|||
|
|
|||
|
--- 当玩家死亡时会触发该函数,作用于以PlayerKey给玩家Buff的BuffAction,以防UGC的Pawn不删除机制所引发的Bug
|
|||
|
function BuffAction_Tamplate:PlayerDeathCallBack(PlayerKey)
|
|||
|
end
|
|||
|
|
|||
|
return BuffAction_Tamplate
|