public void SkillSelf(AnimActionParam param, KSkillDisplay skillDisplay, bool isPushStack) { ActionByAnim action = new ActionByAnim(Owner); action.InitParam(param, skillDisplay); action.IsPushStack = isPushStack; if (!action.IsCanActive()) { return; } Owner.DispatchEvent(ControllerCommand.SetActiveAction, action); }
//播放攻击动画 public void PlayFightAnimation(SceneEntity target, uint skillId, Vector3 position) { Owner.AnimCmp.ResetFightingState(); uint jobId = Owner.TabID; KSkillDisplay skillDisplay = KConfigFileManager.GetInstance().GetSkillDisplay(skillId, jobId); KActiveSkill skillSetting = KConfigFileManager.GetInstance().GetActiveSkill(skillId, 1); AnimActionParam param = new AnimActionParam(); param.skillId = (ushort)skillId; if (null != target) { KingSoftCommonFunction.LootAt(Owner.gameObject, target.gameObject); param.targetId = target.property.Id; } param.position = position; param.target = target; if (null != Owner.property.activeAction) { Owner.property.activeAction.FinishImmediate(); } if (skillDisplay.SkillType.CompareTo("MOVINGAOE") == 0) { SkillMovingAOE(param, skillDisplay, false); } else if (skillDisplay.SkillType.CompareTo("ANIM") == 0) { SkillSelf(param, skillDisplay, false); } else if (skillDisplay.SkillType.CompareTo("RUSH") == 0) { SkillRush(param, skillDisplay, false); } else if (skillDisplay.SkillType.CompareTo("SHOT") == 0) { } }
public override void InitParam(AnimActionParam param, KSkillDisplay skillDisplay) { isRandomAnim = false; base.InitParam(param, skillDisplay); }
public virtual void InitParam(AnimActionParam param, KSkillDisplay skillDisplay) { displayInfor = skillDisplay; WeaponPosition = displayInfor.WeaponPosition; skillId = param.skillId; targetId = param.targetId; level = param.level; target = param.target; endPosition = KingSoftCommonFunction.GetGoundHeight(KingSoftCommonFunction.NearPosition(param.position)); activeSkill = KConfigFileManager.GetInstance().GetActiveSkill(skillId, level); FirstAttackTime = 0; animArys = displayInfor.Anim.Split('|'); int [] ids = KingSoftCommonFunction.RandomAry(animArys.Length); beginFxs = displayInfor.BeginEffect.Split('|'); beginFxs = KingSoftCommonFunction.GrowArrays(beginFxs, animArys.Length); if (isRandomAnim) { animArys = KingSoftCommonFunction.RandomAryByList(animArys, ids); beginFxs = KingSoftCommonFunction.RandomAryByList(beginFxs, ids); } if (beginFxs[0].Length > 0) { AssetLoader.GetInstance().PreLoad(URLUtil.GetResourceLibPath() + beginFxs[0]); } if (displayInfor.EndEffect.Length > 0) { AssetLoader.GetInstance().PreLoad(URLUtil.GetResourceLibPath() + displayInfor.EndEffect); } if (displayInfor.BulletEffect.Length > 0) { AssetLoader.GetInstance().PreLoad(URLUtil.GetResourceLibPath() + displayInfor.BulletEffect); } try { string [] AttackTimes = activeSkill.AttackTimeList.Split(';'); if (displayInfor.CameraEffect.CompareTo("SHAKE_ALL") == 0) { foreach (string _t in AttackTimes) { try { shakeTimes.Add((float)System.Convert.ToDouble(_t)); } catch (System.Exception e) { } } if (shakeTimes.Count > 0) { FirstAttackTime = (float)shakeTimes[0]; } } else { if (AttackTimes.Length > 0) { try { FirstAttackTime = (float)System.Convert.ToDouble(AttackTimes[0]); } catch (System.Exception e) { } } } if (activeSkill.ClientCache) { KAminEvent _event = KConfigFileManager.GetInstance().GetAnimEvent(hero.property.tabID, animArys[0]); if (null == _event) { FirstAttackTime = hero.AnimCmp.GetAnimLong(animArys[0]) - 0.3f; } else { FirstAttackTime = _event.time; } } } catch (System.Exception e) { } hitTicker.SetCD(FirstAttackTime); finishTicker.SetCD(FirstAttackTime + displayInfor.hitDelay); }