UGCProjects/ProjectTemp_T/Script/Blueprint/BUFF/BuffManagerUserManual.lua
2025-01-04 23:00:19 +08:00

91 lines
4.6 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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