local BuffAction_BurningEnchantment = { -- 以下参数信息可以通过manager的 GetBuffDefaultParam(BuffPath, ParamName)来获取 -- -- 默认颜色信息,非必要参数 BuffColor = {R = 0.97, G = 0.88, B = 0.1, A = 1.}; BuffIconPath = "默认Icon路径,非必要参数"; BuffParticlePath = "默认粒子路径,非必要参数"; BuffDesc = "Buff描述信息,非必要参数"; -------------------------------------------------------------------------------- --- PlayeKey = uint, BuffTag = any, Damage = BuffInfos = {} } function BuffAction_BurningEnchantment:Init() if not self.bInitialized then self.bInitialized = true UGCEventSystem.AddListener(EventTypes.PlayerInjuryInfo, self.PlayerInjury, self) end end function BuffAction_BurningEnchantment:PlayerInjury(VictimKey, CauserKey, WeaponID, DamageType, IsHeadShotDamage, Distance, DamageValye) if CauserKey ~= VictimKey then end end --- 必须包含ApplyBuff函数 ---@param BuffTag Any Buff的标签 ---@param ValidPawn UGCPlayerPawn_C ---@param Args ... Any ---@return ApplySucceed:bool function BuffAction_BurningEnchantment:ApplyBuff(BuffTag, ValidPawn) -- 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_BurningEnchantment:RemoveBuff(BuffTag, ValidPawn, ArgParam1, ArgParam2, ArgParam3) end --- 当玩家死亡时会触发该函数,作用于以PlayerKey给玩家Buff的BuffAction,以防UGC的Pawn不删除机制所引发的Bug function BuffAction_BurningEnchantment:PlayerDeathCallBack(PlayerKey) end return BuffAction_BurningEnchantment