public override bool IsSkillInCD(SkillNode node) { if (node == null) { return(false); } SkillNode head = GetHead(node.Category); if (node.SkillId != head.SkillId) { return(false); } SkillInfo head_info = m_Owner.GetSkillStateInfo().GetSkillInfoById(head.SkillId); return(head_info.IsInCd(TimeUtility.GetLocalMilliseconds() / 1000.0f)); }
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(); } } } } }
private int GetCanCastSkillId(UserInfo user, float dis) { if (null == user) { return(-1); } List <int> skillsCanCast = new List <int>(); int start = (int)SkillCategory.kAttack; int end = (int)SkillCategory.kSkillD; for (int i = start; i <= end; i++) { SkillNode node = user.SkillController.GetHead((SkillCategory)i); if (null != node) { SkillInfo skillInfo = user.GetSkillStateInfo().GetSkillInfoById(node.SkillId); if (null != skillInfo) { if (skillInfo.ConfigData.SkillRangeMax >= dis && skillInfo.ConfigData.SkillRangeMin <= dis) { if (!skillInfo.IsInCd(TimeUtility.GetServerMilliseconds())) { skillsCanCast.Add(i); } } } } } int count = skillsCanCast.Count; if (count > 0) { return(skillsCanCast[CrossEngineHelper.Random.Next(count)]); } return(-1); }
public override bool IsSatifyUser(CharacterInfo entity) { List <int> skillList = Converter.ConvertNumericList <int>(Config.ActionParam); long curTime = TimeUtility.GetServerMilliseconds(); for (int i = 0; i < skillList.Count; i++) { if (skillList[i] > 0) { if (entity.GetSkillStateInfo().GetSkillInfoById(skillList[i]) == null) { return(false); } SkillInfo skillInfo = entity.GetSkillStateInfo().GetSkillInfoById(skillList[i]); if (null == skillInfo || skillInfo.IsInCd(curTime / 1000.0f)) { return(false); } } else { AiSkillComboList aiSkillComboConfig = AiSkillComboListProvider.Instance.GetDataById(skillList[i] * -1); if (null != aiSkillComboConfig) { for (int j = 0; j < aiSkillComboConfig.SkillList.Count; j++) { if (entity.GetSkillStateInfo().GetSkillInfoById(aiSkillComboConfig.SkillList[i]) == null) { return(false); } SkillInfo skillInfo = entity.GetSkillStateInfo().GetSkillInfoById(aiSkillComboConfig.SkillList[i]); if (null == skillInfo || skillInfo.IsInCd(curTime / 1000.0f)) { return(false); } } } else { return(false); } } } /* * foreach (int comboId in skillList) { * if (comboId > 0) { * if (entity.GetSkillStateInfo().GetSkillInfoById(comboId) == null) { * return false; * } * } else { * AiSkillComboList aiSkillComboConfig = AiSkillComboListProvider.Instance.GetDataById(comboId * -1); * if (null != aiSkillComboConfig) { * foreach (int skillId in aiSkillComboConfig.SkillList) { * if (entity.GetSkillStateInfo().GetSkillInfoById(skillId) == null) { * return false; * } * } * } else { * return false; * } * } * }*/ return(true); }