Example #1
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            AttachFxNodeProp prop = m_NodeProp as AttachFxNodeProp;

            if (prop == null)
            {
                return;
            }
            int level = 0;

            if (attacker != null)
            {
                if (attacker.GetSkillPart() != null)
                {
                    level = attacker.GetSkillPart().FxLevel;
                }
            }
            skillMaster = attacker.GetGameObject();
            AddLinkEffect node = new AddLinkEffect();

            node.nFollowType = (int)0;
            node.rotate      = Vector3.zero;
            node.vOffset     = prop.offset_pos;
            node.nLevel      = level;
            //  string effectName = prop.fx_name.Replace( "prefab" , "fx" );
            // node.strEffectName = SkillEffectHelper.FxDir + effectName;
            node.strEffectName = prop.fx_name;
            node.strLinkName   = prop.attach_name;
            if (skillMaster != null)
            {
                effectID = (uint)(int)skillMaster.SendMessage(EntityMessage.EntityCommand_AddLinkEffect, node);
            }
        }
Example #2
0
        //public override string Name { get { return "位置变换"; } }

        //public override void Read(JsonData jsNode)
        //{
        //    base.Read(jsNode);

        //    speed = jsNode.GetFloat("speed", 15.0f);
        //    dist = jsNode.GetFloat("dist", 3.0f);
        //    angle = jsNode.GetFloat("angle", 0.0f);
        //    time_len = jsNode.GetFloat("time_len", 0.2f);
        //}

        //public override void Write(JsonData jsNode)
        //{
        //    base.Write(jsNode);

        //    jsNode["speed"] = speed;
        //    jsNode["dist"] = dist;
        //    jsNode["angle"] = angle;
        //    jsNode["time_len"] = time_len;
        //}

        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            //player.animation.CrossFade(name, 0.2);
            // caster.SendMessage("OnStartSkillMove", this);

            attacker.OnStartSkillMove(this);
        }
Example #3
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            if (attacker == null)
            {
                return;
            }
            IEntity en = attacker.GetGameObject();

            if (en == null)
            {
                return;
            }
            if (!SkillSystem.GetClientGlobal().IsMainPlayer(en))
            {//不是主角不震屏
                return;
            }
            ShakeCameraNodeProp prop = m_NodeProp as ShakeCameraNodeProp;

            if (prop == null)
            {
                return;
            }
            IRenderSystem renderSys = RareEngine.Instance().GetRenderSystem();

            if (renderSys == null)
            {
                Log.Error("RenderSystem is null!");
                return;
            }
            string  camName = "MainCamera";
            ICamera cam     = renderSys.GetCamera(ref camName);

            if (cam != null)
            {
                ICameraCtrl cc = cam.GetCameraCtrl();
                if (cc != null)
                {
                    //   public float duration = 0.2f;//持续时间
                    //   public float strength = 0.5f;//振幅
                    //   public int vibrato = 10;//频率
                    //@brief 开始振动
                    //@param fAmplitude 振幅
                    //@param fFrequency 频率
                    //@param fCycle 周期
                    //@param fTime 持续时间

                    cc.StartShake(prop.strength, prop.vibrato, 1, prop.duration);
                }
            }
            else
            {
                //编辑器代码实现
                Camera.main.DOShakePosition(prop.duration, prop.strength, prop.vibrato, 0);
            }
        }
Example #4
0
 public override void Play(ISkillAttacker attacker, SkillEffect se)
 {
     //player.animation.CrossFade(name, 0.2);
     //通知释法者,计算伤害
     //Debug.Log("OnComputeDamage hit ");
     //caster.SendMessage("OnComputeDamage", id, SendMessageOptions.DontRequireReceiver);
     //skill_id = attacker.GetCurSkillId();
     skill_id    = se.CurSkillID;
     m_uDamageID = attacker.GetDamageID();
     attacker.OnComputeHit(this);
 }
Example #5
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            ScaleTimeNodeProp prop = m_NodeProp as ScaleTimeNodeProp;

            if (prop == null)
            {
                return;
            }

            // 不建议使用直接修改 timeScale的方法
            Time.timeScale = prop.scale;
        }
Example #6
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            m_ef = se;
            SoundNodeProp prop = m_NodeProp as SoundNodeProp;

            if (prop == null)
            {
                return;
            }
            m_NodeProp.only_main_role = true;
            if (prop.snd_name == "")
            {
                return;
            }
            bLoop = prop.bloop;

            m_fAudioEndTime = prop.endTime;
            Engine.IAudio audio = Engine.RareEngine.Instance().GetAudio();
            if (audio == null)
            {
                return;
            }
            if (attacker == null)
            {
                Log.LogGroup("ZDY", "attacker is null");
                return;
            }
            if (attacker.GetGameObject() == null)
            {
                Log.LogGroup("ZDY", "entity is null");
                return;
            }
            if (attacker.GetGameObject().GetNode() == null)
            {
                Log.LogGroup("ZDY", "entity GetNode is null");
                return;
            }
            Transform trans = attacker.GetGameObject().GetTransForm();

            if (trans == null)
            {
                Log.LogGroup("ZDY", "entity GetNode GetTransForm is null");
                return;
            }
            m_audioID = audio.PlayEffect(trans.gameObject, prop.snd_name, bLoop);
            uint stopTime = (uint)(m_fAudioEndTime * 1000);

            if (bLoop)
            {
                TimerAxis.Instance().SetTimer(m_uAuidoStopTimerID, stopTime, this, 1);
            }
        }
Example #7
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            m_ef = se;
            ActionNodeProp prop = m_NodeProp as ActionNodeProp;

            if (prop != null)
            {
                m_attacker = attacker;
                if (attacker != null)
                {
                    attacker.PlaySkillAnim(prop.name, prop.IsAttackSatte, prop.loopCount, prop.speed, prop.offset);
                }
            }
        }
Example #8
0
        void DoCastSkill(uint skill_id)
        {
            if (skillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART)
            {
                PlayerSkillPart playerSkill = skillPart as PlayerSkillPart;
                SkillEffectProp skillEffectProp;
                if (playerSkill.SkillEffectDic.TryGetValue((int)skill_id, out skillEffectProp) == false)
                {
                    return;
                }
                IEntity target = skillPart.GetSkillTarget();
                // 朝向目标
                if (target != null)
                {
                    if (m_skillDatabase != null)
                    {
                        if (m_skillDatabase.targetType != (int)SkillTargetType.TargetForwardPoint)
                        {
                            skillPart.GetMaster().SendMessage(EntityMessage.EntityCommand_LookTarget, target.GetPos());
                        }
                    }
                }
                else
                {
                    Engine.Utility.Log.LogGroup("ZCX", "朝向   目标  为空");
                }
                playerSkill.NextSkillID = 0;
                playerSkill.CurSkillID  = skill_id;
                m_skillDoubleDb         = GameTableManager.Instance.GetTableItem <SkillDoubleHitDataBase>(playerSkill.CurSkillID);
                m_skillDatabase         = GameTableManager.Instance.GetTableItem <SkillDatabase>(playerSkill.CurSkillID, 1);


                //  m_attackState = SkillState.Attack
                //切换连招时AttackAnimState = null 会导致动作结束判断错误
                //playerSkill.AttackAnimState = null;

                SkillEffect skillEffect = m_caster.CreateSkillEffect(skillEffectProp);
                m_caster.Cast(skillEffect, skill_id);
            }
        }
Example #9
0
        /// <summary>
        /// 打断技能
        /// </summary>
       public void BreakSkill()
        {
            if (CurSkillID == 106)
            {
                Log.LogGroup("ZDY", "fenshenzhan  break");
            }
            SkillEffect effect = m_caster.EffectNode;
            if (m_caster != null)
            {//打断技能只调用stop
                m_caster.Stop();
            }

            m_Master.SendMessage(EntityMessage.EntityCommand_ClearAniCallback, null);
            //打断技能
            if (stateMachine.GetCurStateID() != (int)SkillState.None)
            {
                stateMachine.ChangeState((int)SkillState.None, null);
            }
            if (m_Master.GetCurState() == CreatureState.Move)
            {
                m_Master.ChangeState(CreatureState.Normal, (int)1);
            }
        }
Example #10
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            m_ef = se;
            Transform attacker_node = attacker.GetRoot();

            if (attacker_node == null)
            {
                return;
            }


            PlaceFxNodeProp prop = m_NodeProp as PlaceFxNodeProp;

            if (prop == null)
            {
                return;
            }
            // Engine.Utility.Log.Error("play PlaceFxNodeProp {0}", prop.fx_name);
            string stateName  = prop.nodeState;
            int    stateIndex = 0;

            if (!string.IsNullOrEmpty(stateName))
            {
                Client.SkillState state = SkillSystem.GetSkillStateByString(stateName);
                stateIndex = (int)state - 1;
            }
            if (stateIndex < 0)
            {
                stateIndex = 0;
            }
            Vector3 pos = attacker_node.TransformPoint(prop.position);
            //Vector3 vscale = attacker_node.localScale * prop.scale;
            Vector3 vscale = Vector3.one * prop.scale;
            Vector3 angles = attacker_node.eulerAngles;

            angles += prop.rotation;

            if (prop.by_target)
            {
                pos = se.GetPlayEffectInitPos() + prop.position;
            }
            int level = 0;

            if (attacker != null)
            {
                if (attacker.GetSkillPart() != null)
                {
                    level = attacker.GetSkillPart().FxLevel;
                }
            }
            m_uEffectID = helper.ReqPlayFx(prop.fx_name, pos, angles, vscale, level);
            m_startTime = Time.time;
            uint skillID = se.CurSkillID;

            m_curDb = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(skillID, 1);
            if (m_curDb != null)
            {
                if (stateIndex >= 0)
                {
                    if (!string.IsNullOrEmpty(m_curDb.skillEffectTime))
                    {
                        string[] timeArray = SkillSystem.GetTimeArrayByString(m_curDb.skillEffectTime);
                        if (stateIndex < timeArray.Length)
                        {
                            uint time = 1000;
                            if (uint.TryParse(timeArray[stateIndex], out time))
                            {
                                m_uEffectLen = time;
                            }
                        }
                    }
                }
            }
            //  m_bRmove = false;

            IEffect ef = GetEffectByID(m_uEffectID);

            if (ef != null)
            {
                Transform trans = ef.GetNodeTransForm();
                if (trans == null)
                {
                    return;
                }
                m_placeHandle = trans.gameObject.GetComponent <PlaceFxHandle>();
                if (m_placeHandle == null)
                {
                    m_placeHandle = trans.gameObject.AddComponent <PlaceFxHandle>();
                }
            }
            m_placeHandle.m_attacker  = attacker;
            m_placeHandle.m_len       = m_uEffectLen;
            m_placeHandle.m_effectid  = m_uEffectID;
            m_placeHandle.m_placeNode = this;
            m_placeHandle.InitPlaceFx();
        }
Example #11
0
 public override void Play(ISkillAttacker attacker, SkillEffect se)
 {
 }
Example #12
0
 public virtual void Play(ISkillAttacker attacker, SkillEffect effect)
 {
 }
Example #13
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            m_ef = se;
            GameObject go = attacker.GetTargetGameObject();

            if (go == null)
            {
                return;
            }

            FollowFxNodeProp prop = m_NodeProp as FollowFxNodeProp;

            if (prop == null)
            {
                return;
            }

            skill_id    = se.CurSkillID;
            m_uDamageID = attacker.GetDamageID();
            Transform attacker_node = attacker.GetRoot();

            if (attacker_node == null)
            {
                return;
            }
            //GameObject fxObj = SkillEffectHelper.Instance.GetFollowGameObject();
            //if (fxObj == null)
            //{
            //    Engine.Utility.Log.Error("============================fxobj is null");
            //    return;
            //}

            //fxObj.transform.parent = SkillEffectManager.Helper.PlaceFxRoot;
            //EffectUtil.ResetLocalTransform(fxObj.transform);

            //fxObj.transform.localEulerAngles = attacker_node.eulerAngles;
            //fxObj.transform.position = attacker_node.position;
            //fxObj.transform.Translate(prop.offset_pos);



            int level = 0;

            if (attacker != null)
            {
                if (attacker.GetSkillPart() != null)
                {
                    level = attacker.GetSkillPart().FxLevel;
                }
            }

            uint    effectid = helper.ReqPlayFx(prop.fx_name, helper.PlaceFxRoot, Vector3.zero, Vector3.one, level);
            IEffect ef       = GetEffectByID(effectid);

            if (ef != null)
            {
                if (ef.GetNodeTransForm() == null)
                {
                    return;
                }
                GameObject fxObj = ef.GetNodeTransForm().gameObject;
                if (fxObj == null)
                {
                    return;
                }
                fxObj.transform.localEulerAngles = attacker_node.eulerAngles;
                fxObj.transform.position         = attacker_node.position;
                fxObj.transform.Translate(prop.offset_pos);
                m_Handler = fxObj.GetComponent <FollowFxHandle>();
                if (m_Handler == null)
                {
                    m_Handler = fxObj.AddComponent <FollowFxHandle>();
                }
                m_Handler.m_attacker    = attacker;
                m_Handler.m_speed       = prop.speed;
                m_Handler.targetHitNode = prop.target_hitnode;
                m_Handler.m_acce        = prop.acce;
                m_Handler.m_len         = prop.len;
                m_Handler.m_hitIndex    = hit_index;
                m_Handler.m_hitNode     = this;
                m_Handler.m_effectid    = effectid;
                m_Handler.InitFollowFx();
            }
            //  fxObj.name = m_Handler.m_effectid.ToString();
        }
Example #14
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            m_ef = se;
            GameObject fxObj = new GameObject();//helper.CreateFxObj(fx_name);

            if (fxObj == null)
            {
                //Log.Error("no fx: {0}", fx_name);
                return;
            }

            Transform attacker_root = attacker.GetRoot();

            //callback.OnTriggerHit();

            //ArrowFxHandle handler = Util.AddComponent(fxObj, "ArrowFxHandle") as ArrowFxHandle;
            m_Handler = fxObj.AddComponent <ArrowFxHandle>();

            ArrowFxNodeProp prop = m_NodeProp as ArrowFxNodeProp;

            if (prop == null)
            {
                return;
            }

            m_Handler.m_attacker = attacker;
            m_Handler.m_speed    = prop.speed;
            m_Handler.m_acce     = prop.acce;
            m_Handler.m_range    = prop.range;
            m_Handler.m_radius   = prop.radius;
            m_Handler.m_hitIndex = hit_index;
            m_Handler.m_hitNode  = this;
            m_Handler.m_hitNum   = prop.fx_num;

            //handler.transform.localPosition = attacker_obj.transform.position;

            Vector3 scale;

            scale.x = m_Handler.transform.localScale.x * attacker_root.localScale.x;
            scale.y = m_Handler.transform.localScale.y * attacker_root.localScale.y;
            scale.z = m_Handler.transform.localScale.z * attacker_root.localScale.z;

            m_Handler.transform.localScale = scale;

            //handler.transform.localPosition += handler.transform.forward * z_offset;
            //handler.transform.localRotation = caster.transform.rotation;


            //handler.transform.Rotate(Vector3.forward, pitch, Space.Self);

            if (prop.fx_num == 1)
            {
                m_Handler.transform.parent = SkillEffectManager.Helper.PlaceFxRoot;
                Vector3 angles = attacker_root.eulerAngles;
                angles.z = prop.pitch;
                m_Handler.transform.localEulerAngles = angles;
                m_Handler.transform.Translate(0, prop.height, prop.z_offset);

                return;
            }

            float start_angle = -prop.angle / 2;
            float per_angle   = prop.angle / (prop.fx_num - 1);

            for (int i = 0; i < prop.fx_num; i++)
            {
                GameObject fxObjInst;

                if (i == 0)
                {
                    fxObjInst = fxObj;
                }
                else
                {
                    fxObjInst = new GameObject();//GameObject.Instantiate(fxObj) as GameObject;
                }

                m_Handler            = fxObjInst.GetComponent <ArrowFxHandle>();
                m_Handler.m_attacker = attacker;
                m_Handler.m_speed    = prop.speed;
                m_Handler.m_acce     = prop.acce;
                m_Handler.m_range    = prop.range;
                m_Handler.m_radius   = prop.radius;
                m_Handler.m_hitIndex = hit_index;
                m_Handler.m_hitNode  = this;
                m_Handler.m_hitNum   = prop.fx_num;

                fxObjInst.transform.parent = SkillEffectManager.Helper.PlaceFxRoot;

                Vector3 euler = attacker_root.eulerAngles;
                euler.y += start_angle;
                euler.z  = prop.pitch;

                fxObjInst.transform.localEulerAngles = euler;
                fxObjInst.transform.localScale       = scale;
                fxObjInst.transform.localPosition    = attacker_root.position;
                fxObjInst.transform.Translate(0, prop.height, prop.z_offset);

                start_angle += per_angle;
                int level = 0;
                if (attacker != null)
                {
                    if (attacker.GetSkillPart() != null)
                    {
                        level = attacker.GetSkillPart().FxLevel;
                    }
                }
                m_Handler.m_effectid = helper.ReqPlayFx(prop.fx_name, fxObjInst.transform, Vector3.zero, Vector3.one, level);
            }
        }
Example #15
0
        public override void Update(float dt)
        {
            IEntity casetr = skillPart.GetMaster();

            if (m_caster == null)
            {
                m_Statemachine.ChangeState((int)SkillState.Over, null);
                return;
            }

            m_caster.Update(dt);
            m_fTotalTime += dt;
            if (skillPart.GetSkillPartType() == SkillPartType.SKILL_PLAYERPART)
            {
                PlayerSkillPart playerSkill = skillPart as PlayerSkillPart;
                //  if (m_caster.IsCasting == false)
                {
                    if (m_skillDatabase.useSkillType == (int)UseSkillType.GuideSlider || m_skillDatabase.useSkillType == (int)UseSkillType.GuideNoSlider)
                    {
                        if (m_skillDatabase.dwGuideTime > 0)
                        {
                            if (m_fTotalTime * 1000 > m_skillDatabase.dwGuideTime)
                            {
                                //接收招动作
                                m_Statemachine.ChangeState((int)SkillState.Over, playerSkill);
                            }
                            return;
                        }
                        else
                        {
                            Log.LogGroup("ZDY", "引导类型技能 {0} 的引导时间为0", m_skillDatabase.wdID);
                        }
                    }
                    float tmeptime      = Time.realtimeSinceStartup;
                    float delta         = tmeptime - playerSkill.SkillStartPlayTime;
                    uint  skillPlaytime = (uint)(delta * 1000);

                    uint    skillRunJiangzhiTime = (uint)(playerSkill.SkillStiffTime * 1000);
                    IEntity target = skillPart.GetSkillTarget();
                    if (target == null)
                    {
                        if (skillRunJiangzhiTime > m_uDbJiangzhiTime) // 播放时间大于僵直时间
                        {
                            m_Statemachine.ChangeState((int)SkillState.Over, playerSkill);
                        }

                        return;
                    }
                    if (target.GetCurState() == CreatureState.Dead)
                    {
                        Log.LogGroup("ZDY", "target dead 去除连击时无法切换状态的bug ");
                        m_Statemachine.ChangeState((int)SkillState.Over, null);
                        return;
                    }
                    playerSkill.OnDoLongPressNextSkillID();
                    if ((playerSkill.NextSkillID != 0))
                    {
                        //CurSkillID

                        //   m_skillDoubleDb = GameTableManager.Instance.GetTableItem<SkillDoubleHitDataBase>(playerSkill.CurSkillID);
                        SkillDoubleHitDataBase db = m_skillDoubleDb;
                        if (db != null)
                        {
                            //    if (playerSkill.NextSkillID == 101)
                            //    {
                            //        Log.Error("连击 nextskillid " + playerSkill.NextSkillID.ToString() + " skillPlay time is " + skillPlaytime +
                            //"  db.beginChangeTime " + db.beginChangeTime + " db.doublehitend " + db.doublehitend);
                            //    }

                            if (skillPlaytime >= db.beginChangeTime && skillPlaytime <= db.doublehitend)
                            {
                                //大于僵直时间 并且小于连击生效时间可以变招
                                SkillEffect skillEffect = m_caster.EffectNode;
                                if (skillEffect != null)
                                {
                                    //  skillEffect.Stop();
                                }
                                //    Log.LogGroup("ZDY", "连击 nextskillid " + playerSkill.NextSkillID.ToString());
                                playerSkill.SkillStiffTime = 0;
                                //如果已经触发连击,接着播放连击技能
                                DoCastSkill((uint)playerSkill.NextSkillID);
                                playerSkill.SkillStartPlayTime = Time.realtimeSinceStartup;
                                playerSkill.SyncSkill((uint)playerSkill.CurSkillID, target, Vector3.zero);
                                SkillDatabase curDataBase = m_skillDatabase;// GameTableManager.Instance.GetTableItem<SkillDatabase>(playerSkill.CurSkillID, 1);
                                if (curDataBase != null)
                                {
                                    m_uDbJiangzhiTime = curDataBase.wdStiffTime;
                                }
                                else
                                {
                                    if (Engine.Utility.Log.MaxLogLevel >= Engine.Utility.LogLevel.LogLevel_Group)
                                    {
                                        Log.LogGroup("ZDY", "curdatabase is null skill id is " + playerSkill.CurSkillID);
                                    }
                                }
                                //普攻没有cd 不需要派发
                                Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.SKILLSYSTEM_USESKILL, playerSkill.CurSkillID);
                            }
                            else
                            {
                                if (skillPlaytime > db.doublehitend) // 播放时间大于连击生效时间
                                {
                                    if (Engine.Utility.Log.MaxLogLevel >= Engine.Utility.LogLevel.LogLevel_Group)
                                    {
                                        Log.LogGroup("ZDY", "播放时间大于连击生效时间 切换到over skillPlaytime is " + skillPlaytime + " 连击生效时间 " + db.doublehitend);
                                    }
                                    //接收招动作
                                    m_Statemachine.ChangeState((int)SkillState.Over, playerSkill);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (skillRunJiangzhiTime > m_uDbJiangzhiTime) // 大于僵直时间
                        {
                            if (Engine.Utility.Log.MaxLogLevel >= Engine.Utility.LogLevel.LogLevel_Group)
                            {
                                Log.LogGroup("ZDY", "达到僵直时间切换到over runjiangzhitime is " + skillRunJiangzhiTime);
                            }
                            //接收招动作
                            m_Statemachine.ChangeState((int)SkillState.Over, playerSkill);
                        }
                        else
                        {//连击不要在这里触发
                         //   m_skillDoubleDb = GameTableManager.Instance.GetTableItem<SkillDoubleHitDataBase>(playerSkill.CurSkillID);

                            /* if (m_skillDoubleDb != null && IsMainPlayer())
                             * {
                             *   IControllerSystem cs = playerSkill.GetCtrollerSys();
                             *   if (cs == null)
                             *   {
                             *       Log.Error("ExecuteCmd: ControllerSystem is null");
                             *       return;
                             *   }
                             *
                             *   if (cs.GetCombatRobot().Status != CombatRobotStatus.STOP)
                             *   {
                             *       //   Log.LogGroup("ZDY", "======================= skillPlaytime is " + skillPlaytime + " start " + m_skillDoubleDb.doublehitBegin + " end " + m_skillDoubleDb.doublehitend);
                             *       if (skillPlaytime >= m_skillDoubleDb.doublehitBegin && skillPlaytime <= m_skillDoubleDb.doublehitend && m_bSendDoubleHitCmd == false)
                             *       {
                             *           m_bSendDoubleHitCmd = true;
                             *           Engine.Utility.Log.LogGroup("ZCX", "连击{0} next ", playerSkill.CurSkillID, playerSkill.NextSkillID);
                             *           SkillDoubleHitDataBase skilldoubleDb = m_skillDoubleDb;// GameTableManager.Instance.GetTableItem<SkillDoubleHitDataBase>(playerSkill.CurSkillID);
                             *
                             *           if (skilldoubleDb != null)
                             *           {
                             *               stSkillDoubleHit skillDhHit = new stSkillDoubleHit();
                             *               skillDhHit.doubleHitEnd = skilldoubleDb.beginskillid == skilldoubleDb.nextskillid;
                             *               skillDhHit.skillID = skilldoubleDb.nextskillid;
                             *               Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.ROBOTCOMBAT_NEXTCMD, skillDhHit);
                             *           }
                             *       }
                             *   }
                             *
                             * }*/
                        }
                    }
                }
                //else
                //{

                //}
            }
        }
Example #16
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            GameObject damage_obj = new GameObject("damage_obj");

            MultHitNodeProp prop = m_NodeProp as MultHitNodeProp;

            if (prop == null)
            {
                return;
            }

            if (prop.attach)
            {
                damage_obj.transform.parent = attacker.GetRoot();
            }
            else
            {
                damage_obj.transform.parent = helper.PlaceFxRoot;
            }

            EffectUtil.ResetLocalTransform(damage_obj.transform);

            damage_obj.transform.localPosition = prop.position;

            MultHitHandle handle = damage_obj.AddComponent <MultHitHandle>();

            handle.m_attacker = attacker;
            //handle.m_damageRaduis = radius;
            handle.m_hitTimes  = prop.hit_times;
            handle.m_deltaTime = prop.delta_time;

            // if (follow == false)
            // {
            //     damage_obj.transform.parent = Util.PlaceFxRoot;

            //     if (callback == null || by_target == false)
            //         damage_obj.transform.localPosition = caster.transform.TransformPoint(position);//caster.transform.position + position;
            //     else
            //         damage_obj.transform.localPosition = callback.GetAttackTarget().transform.position;
            // }
            // else
            // {
            //     damage_obj.transform.parent = caster.transform;
            //     Util.ResetLocalTransform(damage_obj.transform);
            //     damage_obj.transform.localPosition = position;
            // }

            //// Debug.LogWarning(caster);

            // PlaceDamageHandle handler = damage_obj.AddComponent<PlaceDamageHandle>();
            // handler.m_Owner = caster;
            // handler.m_timeLen = time_len;
            // handler.m_deltaTime = delta_time;


            // handler.m_damageRaduis = radius;

            // handler.m_push = push;
            // handler.m_hitIndex = hit_index;
            // handler.m_hitNode = this;

            // handler.m_callback = callback;
        }
Example #17
0
 public override void Play(ISkillAttacker attacker, SkillEffect se)
 {
     //player.animation.CrossFade(name, 0.2);
     //caster.SendMessage(event_name, param);
 }