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

91 lines
4.6 KiB
Lua
Raw Normal View History

2025-01-04 23:00:19 +08:00
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)
-- 清除玩家所有BuffPS玩家死亡也可调用且玩家死亡会自动清除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