private void UpdateSkillCD(SkillNode node) { if (node == null) { return; } SkillNode head = GetHead(node.Category); SkillInfo head_info = m_Owner.GetSkillStateInfo().GetSkillInfoById(head.SkillId); if (head.SkillId == node.SkillId) { head_info.BeginCD(); if (node.IsAlreadyPressUp) { head_info.CalcuteCastTime(TimeUtility.GetLocalMilliseconds() / 1000f, head_info.SkillId); } } else { SkillInfo node_info = m_Owner.GetSkillStateInfo().GetSkillInfoById(node.SkillId); if (node.IsAlreadyPressUp) { head_info.AddCD(node_info.ConfigData.CoolDownTime); } else { head_info.AddCD(node_info.ConfigData.CoolDownTime + node_info.ConfigData.CastTime); } } }
private void NpcSkill(NpcInfo npc, int skillId) { if (null != npc) { if (npc.SkillController != null) { SkillInfo skillInfo = npc.GetSkillStateInfo().GetSkillInfoById(skillId); if (null != skillInfo) { long curTime = TimeUtility.GetServerMilliseconds(); if (!skillInfo.IsInCd(curTime / 1000.0f)) { npc.SkillController.ForceStartSkill(skillId); skillInfo.BeginCD(); } } } } }