91 lines
4.6 KiB
Lua
91 lines
4.6 KiB
Lua
|
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
|