BuffManagerUserManual = {} BuffManagerUserManual.BuffDuration = 10. BuffManagerUserManual.AddBuffDuration = 5. BuffManagerUserManual.RemoveBuffDelayTime = 20. ---------------------------------------------- UserManual ---------------------------------------------- --- 该函数作用于函数使用说明及测试 ---@param PlayerKey : uint32 ---@param ParticlePath : string 为nil则不创建Particle ---@param BuffPath : string ---@param ... : param Buff所需要的参数 function BuffManagerUserManual.UserManual(BuffTag, PlayerKey, BuffType, ...) -- 获取BuffManager local BuffManager = BP_BuffManager.GetBuffManager() -- 给玩家添加Buff local AddBuffResult, BuffID = BuffManager:AddBuff(BuffTag, PlayerKey, BuffType, ...) -- 判断Buff是否使用成功, 成功则返回 BP_BuffManager.EResult.Succeed。可通过该返回值判断使用失败原因 UGCLogSystem.Log("[BuffManagerUserManual_UserManual] AddBuffResult: %s, BuffID: %s", AddBuffResult, tostring(BuffID)) -- 给Buff加个自动延迟移除效果,该设置可被覆盖 local SetBuffDurationResult = BuffManager:SetBuffDuration(BuffID, BuffManagerUserManual.BuffDuration) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] SetBuffDurationResult: %s", SetBuffDurationResult) -- 若重复获取想要增加该效果时长可以通过该函数增加,若没有设置延迟移除,也会自动设置延迟移除 local AddBuffDurationResult = BuffManager:AddBuffDuration(BuffID, BuffManagerUserManual.AddBuffDuration) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] AddBuffDurationResult: %s", AddBuffDurationResult) -- 获取Buff总持续时间 local BuffDurationResult, Duration = BuffManager:GetBuffDuration(BuffID) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffDurationTypeResult: %s, Duration: %f", BuffDurationResult, Duration) -- 获取Buff剩余持续时间 local BuffRemainingDurationResult, RemainingDuration = BuffManager:GetBuffRemainingDuration(BuffID) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffRemainingDurationResult: %s, RemainingDuration: %f", BuffRemainingDurationResult, RemainingDuration) UGCEventSystem.SetTimer( BuffManager, function () -- 移除玩家Buff local BuffRemoveResult = BuffManager:RemoveBuffFromBuffID(BuffID) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffRemoveResult: %s", BuffRemoveResult) -- 清除玩家所有Buff(PS:玩家死亡也可调用,且玩家死亡会自动清除Buff缓存) BuffManager:ClearPlayerOwnedBuff(PlayerKey) end, BuffManagerUserManual.RemoveBuffDelayTime ) -- 获取BuffAction默认参数 local BuffColor = BP_BuffManager.GetBuffDefaultParam(BuffType, "BuffColor") if type(BuffColor) == "table" then log_tree("[BuffManagerUserManual_UserManual] BuffColor: ", BuffColor) else UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffColor: nil") end local BuffIconPath = BP_BuffManager.GetBuffDefaultParam(BuffType, "BuffIconPath") UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffIconPath: %s", tostring(BuffIconPath)) local BuffParticlePath = BP_BuffManager.GetBuffDefaultParam(BuffType, "BuffParticlePath") UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffParticlePath: %s", tostring(BuffParticlePath)) local BuffDesc = BP_BuffManager.GetBuffDefaultParam(BuffType, "BuffDesc") UGCLogSystem.Log("[BuffManagerUserManual_UserManual] BuffDesc: %s", tostring(BuffDesc)) -- 获取Buff拥有者 local OwnerPlayerKey = BP_BuffManager.GetBuffOwner(BuffID) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] OwnerPlayerKey: %s", tostring(OwnerPlayerKey)) -- 获得BuffID对应的BuffType local TargetBuffType = BP_BuffManager.GetBuffTypeFromBuffID(BuffID) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] TargetBuffType: %s", tostring(TargetBuffType)) -- 获取玩家拥有的Buff local OwnedBuffIDs = BP_BuffManager.BuffFilter(PlayerKey) log_tree("[BuffManagerUserManual_UserManual] OwnedBuffIDs: ", OwnedBuffIDs) -- 获取玩家拥有的BuffType对应的BuffID local PlayerOwnedBuffFromBuffType = BP_BuffManager.BuffFilter(PlayerKey, BuffType) log_tree("[BuffManagerUserManual_UserManual] PlayerOwnedBuffFromBuffType: ", PlayerOwnedBuffFromBuffType) UGCLogSystem.Log("[BuffManagerUserManual_UserManual] Buff:%s Finish", tostring(BuffID)) end -------------------------------------------- UserManual End -------------------------------------------- return BuffManagerUserManual