49 lines
1.8 KiB
Lua
49 lines
1.8 KiB
Lua
SkillConfig = SkillConfig or {}
|
|
|
|
SkillConfig.ESkillType = {
|
|
DetectPlayer = 1;
|
|
}
|
|
|
|
-- 玩家的技能冷却
|
|
SkillConfig.PlayerCooling = {} -- {[ESkillType] = {PlayerKey = LastSkillTime}, }
|
|
SkillConfig.SkillInfo = {
|
|
[SkillConfig.ESkillType.DetectPlayer] = {
|
|
SkillID = 120,
|
|
CoolingTime = 0,
|
|
OtherEffect = function(PlayerPawn)
|
|
end
|
|
},
|
|
|
|
}
|
|
|
|
|
|
function SkillConfig.ExeSkill(SkillType, InPawn)
|
|
if UE.IsValid(InPawn) and InPawn.PlayerKey then
|
|
local TargetSkillInfo = SkillConfig.SkillInfo[SkillType]
|
|
if TargetSkillInfo then
|
|
if SkillConfig.PlayerCooling[SkillType] == nil then
|
|
SkillConfig.PlayerCooling[SkillType] = {}
|
|
end
|
|
local NowTime = UGCSystemLibrary.GetGameTime()
|
|
local LastSkillTime = SkillConfig.PlayerCooling[SkillType][InPawn.PlayerKey]
|
|
if LastSkillTime == nil or NowTime - LastSkillTime > TargetSkillInfo.CoolingTime then
|
|
SkillConfig.PlayerCooling[SkillType][InPawn.PlayerKey] = NowTime
|
|
local SkillManager = InPawn:GetSkillManagerComponent()
|
|
if SkillManager ~= nil then
|
|
SkillManager:TriggerEvent(TargetSkillInfo.SkillID, UTSkillEventType.SET_KEY_DOWN)
|
|
if TargetSkillInfo.OtherEffect then
|
|
TargetSkillInfo.OtherEffect(InPawn)
|
|
end
|
|
return true
|
|
else
|
|
UGCLogSystem.LogError("[SkillConfig_ExeSkill] SkillManager is nil")
|
|
end
|
|
end
|
|
else
|
|
UGCLogSystem.LogError("[SkillConfig_ExeSkil] Exe SkillType:%s is Error", tostring(SkillType))
|
|
end
|
|
else
|
|
UGCLogSystem.LogError("[SkillConfig_ExeSkill] InPawn is nil")
|
|
end
|
|
return false
|
|
end |