UGCProjects/ProjectTemp_T/Script/Blueprint/BUFF/BuffAction_Tamplate.lua

55 lines
2.5 KiB
Lua
Raw Normal View History

2025-01-04 23:00:19 +08:00
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