コード例 #1
0
ファイル: AIAirBase.cs プロジェクト: HuaniuW/myScript
    public override void GetAtkFSByName(string atkFSName)
    {
        //IsGetAtkFSByName = true;
        QuXiaoAC();
        isAction = true;
        acName   = atkFSName;
        print(" ********************************************************** acName  " + acName);

        string[] strArr = atkFSName.Split('_');
        if (strArr.Length >= 2)
        {
            acName = strArr[0];
            if (acName == "AIZiDans")
            {
                GetComponent <AI_ZiDans>().SetZiDanType(int.Parse(strArr[1]));
            }
            else if (acName == "atk")
            {
                print("  普通攻击!!! " + acName);
                atkDistance  = GetAtkVOByName(atkFSName.Split('|')[0], DataZS.GetInstance()).atkDistance;
                atkDistanceY = GetAtkVOByName(atkFSName.Split('|')[0], DataZS.GetInstance()).atkDistanceY;
            }
        }
        else
        {
            //isActioning = true;
        }
    }
コード例 #2
0
    //加强AI  会判断每次攻击是否在攻击范围内
    //6.开始下一个攻击
    void GetAtkFS()
    {
        //int r = Random.Range(0, 100);
        //print(r);
        if (!isAtk)
        {
            isAtk  = true;
            zsName = GetZS();
            //print("zsName  "+zsName);
            if (zsName == "shanxian")
            {
                aisx        = GetComponent <AIShanxian>();
                atkDistance = aisx.sxDistance;
                return;
            }

            atkDistance = GetAtkVOByName(GetZS(), DataZS.GetInstance()).atkDistance;
        }

        if (zsName == "shanxian")
        {
            //GetShanXian();
            return;
        }

        if (zsName != "shanxian")
        {
            //print("???????????????");
            PtAtk();
        }
    }
コード例 #3
0
    public void GetAtk(string atkName = null)
    {
        //print(" atkName " + atkName+"    "+isAtking);
        if (roleDate.isBeHiting)
        {
            return;
        }
        if (isDodgeing)
        {
            return;
        }
        if (DBBody.animation.lastAnimationName == DOWNONGROUND)
        {
            return;
        }
        if (!isAtk)
        {
            isAtk    = true;
            isAtking = true;
            isAtkYc  = true;
            yanchi   = 0;
            jisuqi   = 0;

            if (isInAiring)
            {
                atkZS = DataZS.jumpAtkZS;
            }
            else
            {
                atkZS = DataZS.atkZS;
            }

            if (atkName == null)
            {
                vOAtk.GetVO(atkZS[(int)atkNums]);
                DBBody.animation.GotoAndPlayByFrame(vOAtk.atkName, 0, 1);
            }
            else
            {
                vOAtk.GetVO(GetDateByName.GetInstance().GetDicSSByName(atkName, DataZS.GetInstance()));

                DBBody.animation.GotoAndPlayByFrame(vOAtk.atkName, 0, 1);
            }

            MoveVX(vOAtk.xF);
            if (newSpeed.y < 0)
            {
                newSpeed.y = 1;
                playerRigidbody2D.velocity = newSpeed;
                MoveVY(vOAtk.yF);
            }

            //获取XY方向的推力
            //print(DBBody.animation.animations);
        }
    }
コード例 #4
0
ファイル: DataZS.cs プロジェクト: HuaniuW/myScript
 static public DataZS GetInstance()
 {
     if (instance == null)
     {
         GameObject go = new GameObject("DataZS");
         //DontDestroyOnLoad(go);
         instance = go.AddComponent <DataZS>();
     } //instance = new DataZS();
     return(instance);
 }
コード例 #5
0
    // Use this for initialization
    void Start()
    {
        //iTween.ScaleBy(obj, iTween.Hash("x", 1f, "time", 0.1f, "easeType", iTween.EaseType.easeInOutExpo, "oncomplete", "Fd"));
        //iTween.FadeTo(this.gameObject, iTween.Hash("alpha", 0f, "time", 2f, "easeType", iTween.EaseType.easeInOutExpo, "oncomplete", "Fd"));


        return;

        MyClass m     = new MyClass();
        Type    type1 = m.GetType();
        Type    type2 = typeof(MyClass);
        string  s     = type1.BaseType.ToString(); //获得父类名

        FieldInfo[] fields = type1.GetFields();    //获得所有非私有字段信息
        // print("???   "+ fields.Length+"  i  "+fields[0]);
        foreach (FieldInfo item in fields)
        {
            //print("?>>>>>>>  "+item.Name+"    "+item.FieldType);
            //Console.WriteLine(item.Name);
        }

        PropertyInfo[] propertys = type1.GetProperties();//获得所有非私有属性信息
        foreach (PropertyInfo item in propertys)
        {
            //print(item.Name+"   length  "+propertys.Length+"    "+item.GetType());
        }

        FieldInfo fieldInfo = type1.GetField("arr1");

        dict = fieldInfo.GetValue(m) as string[];

        //DataZS sss = DataZS.GetInstance();
        DataZS sss = new DataZS();

        print("------------------>   " + dict.Length + "   m   " + sss);


        string[] arrt = GetArr("arr1", m);
        print("xx  " + arrt[1]);


        //this["Tests1"]();

        //Console.ReadKey();
    }
コード例 #6
0
    public override void GetAtk(string atkName = null)
    {
        if (roleDate.isBeHiting)
        {
            return;
        }
        if (isDodgeing || isAcing)
        {
            return;
        }
        //阻止了快落地攻击时候的bug
        //这里会导致AI回跳 进入落地动作而不能进入atk动作 所以回跳的跳起在动画里面做 不在程序里面给Y方向推力
        if (DBBody.animation.lastAnimationName == DOWNONGROUND)
        {
            return;
        }
        if (!isAtk)
        {
            isAtk    = true;
            isAtking = true;
            isTXShow = true;
            isAtkYc  = true;
            yanchi   = 0;
            jisuqi   = 0;

            if (isInAiring)
            {
                atkZS = DataZS.jumpAtkZS;
            }
            else
            {
                atkZS = DataZS.atkZS;
            }

            if (atkName == null)
            {
                vOAtk.GetVO(atkZS[(int)atkNums]);
                DBBody.animation.GotoAndPlayByFrame(vOAtk.atkName, 0, 1);
            }
            else
            {
                //GetPause(0.5f,0.5f);
                string _atkName = atkName;
                if (atkName.Split('|').Length != 1)
                {
                    _atkName = atkName.Split('|')[0];
                    float times  = float.Parse(atkName.Split('|')[1].Split('-')[0]);
                    float scales = 0.5f;
                    if (atkName.Split('|')[1].Split('-').Length != 1)
                    {
                        scales = float.Parse(atkName.Split('|')[1].Split('-')[1]);
                    }
                    GetPause(times, scales);
                }
                vOAtk.GetVO(GetDateByName.GetInstance().GetDicSSByName(_atkName, DataZS.GetInstance()));
                DBBody.animation.GotoAndPlayByFrame(vOAtk.atkName, 0, 1);

                if (vOAtk.qishouYC != 0)
                {
                    GetPause(vOAtk.qishouYC, 0.01f);
                }
            }

            MoveVX(vOAtk.xF, true);
        }
    }
コード例 #7
0
ファイル: AIAirBase.cs プロジェクト: HuaniuW/myScript
    protected override void GetAtkFS()
    {
        //print(1);
        if (GetComponent <RoleDate>().isDie || !thePlayer || thePlayer.GetComponent <RoleDate>().isDie)
        {
            GetComponent <AIDestinationSetter>().ReSetAll();
            GetComponent <AIPath>().canMove = false;
            return;
        }
        //print(2);
        if (IsIfStopMoreTime())
        {
            return;
        }
        //print(3);
        //print("IsBossStop   "+ IsBossStop);
        if (IsBossStop)
        {
            return;
        }
        //print(4);

        if (IsInDuBai())
        {
            return;
        }
        //print(5);
        if (IsInZDAcing)
        {
            return;
        }
        //print(6);

        if (!isAction)
        {
            isAction = true;
            acName   = GetZS();
            //gameBody.isAcing = false;
            //IsGetAtkFSByName = false;

            print(" atkNum:  " + atkNum + " ----------------------------------------------------------------------------------------->   name " + acName + "  isACing " + isActioning);
            string[] strArr = acName.Split('_');
            LongNotMoveJishi = 0;

            CurrentAIName = strArr[0];

            if (CurrentAIName == "ZD")
            {
                //进入自动攻击流程
                print("***自动攻击的 AI 技能   " + acName);
                if (!isActioning)
                {
                    isActioning = true;
                    IsInZDAcing = true;
                    atkNum++;
                }

                moretimes = 0;
                string str = this.gameObject.GetInstanceID() + "@" + acName;

                ObjectEventDispatcher.dispatcher.dispatchEvent(new UEvent(EventTypeName.ZD_SKILL_SHOW, str), this);

                return;
            }



            if (strArr.Length > 1 && strArr[0] != "atk")
            {
                acName = strArr[0];
            }

            if (acName == "walkBack")
            {
                return;
            }

            if (strArr[0] == "lz")
            {
                //不需要转向
                DontNear = true;
                return;
            }
            else
            {
                DontNear = false;
            }


            if (strArr[0] == "AIZiDans")
            {
                acName = strArr[0];
                GetComponent <AI_ZiDans>().SetZiDanType(int.Parse(strArr[1]));
                return;
            }

            if (strArr[0] == "AIZiDanDingxiang")
            {
                acName = strArr[0];
                GetComponent <AI_ZidanDingxiang>().SetZiDanType(int.Parse(strArr[1]));
                return;
            }

            if (strArr[0] == "AIFlyPenhuo")
            {
                acName = strArr[0];
                if (strArr.Length > 1)
                {
                    GetComponent <AIFlyPenghuo>().SetTimeAndMoveSpeed(strArr[1]);
                }
                else
                {
                    GetComponent <AIFlyPenghuo>().SetTimeAndMoveSpeed("");
                }

                return;
            }

            if (acName == "hengXiangChongZhuang")
            {
                return;
            }

            //连弹攻击
            if (acName == "liandan")
            {
                return;
            }

            if (acName == "hengXiangCZKuaiSu")
            {
                return;
            }

            if (acName == "zongYa")
            {
                return;
            }

            if (acName == "gddZongYa")
            {
                //固定点 重压
                return;
            }


            if (acName == "yishan")
            {
                return;
            }

            if (strArr[0] == "jn")
            {
                jn_effect = acName;
                acName    = "jn";
            }


            if (strArr[0] == "qianhua")
            {
                acName = "qianhua";
                gameBody.Qianhua(float.Parse(strArr[1]));
                return;
            }
            else if (strArr[0] == "backUp")
            {
                acName = "backUp";

                gameBody.GetBackUp(float.Parse(strArr[1]));
                return;
            }



            if (strArr[0] == "rest")
            {
                acName = "rest";
                GetComponent <AIRest>().GetRestByTimes(float.Parse(strArr[1]));
                return;
            }

            if (acName == "shanxian")
            {
                //aisx = GetComponent<AIShanxian>();
                //atkDistance = aisx.sxDistance;
                acName = "shanxian";
                return;
            }

            if (strArr[0] == "flyToPot1")
            {
                //取到哪个点
                acName = "flyToPot1";
                if (strArr.Length > 1)
                {
                    GetComponent <AIFlyToPot1>().SetPotType(int.Parse(strArr[1]));
                }
                else
                {
                    GetComponent <AIFlyToPot1>().SetPotType();
                }

                return;
            }

            if (strArr[0] == "flyToPot2GD")
            {
                //取到哪个 点 固定位置
                if (strArr.Length > 1)
                {
                    GetComponent <AIFlyToPot2GD>().SetPotType(int.Parse(strArr[1]));
                }
                else
                {
                    GetComponent <AIFlyToPot2GD>().SetPotType();
                }
                acName = "flyToPot2GD";
                return;
            }

            if (acName == "runCut")
            {
                //冲砍
                acName = "runCut";
                return;
            }

            if (acName == "chongji")
            {
                acName = "chongji";
                return;
            }

            if (acName == "chongjiHX")
            {
                acName = "chongjiHX";
                return;
            }

            if (acName == "chongjiHX2")
            {
                acName = "chongjiHX2";
                return;
            }



            if (acName == "zidan")
            {
                acName = "zidan";
                return;
            }

            if (acName == "yuanli")
            {
                acName = "yuanli";
                return;
            }

            if (strArr[0] == "yinshen")
            {
                acName = strArr[0];
                if (strArr.Length > 1)
                {
                    GetComponent <AIYinshen>().SetYinShenPosBiaoJi(strArr[1]);
                }
                else
                {
                    GetComponent <AIYinshen>().SetYinShenPosBiaoJi();
                }

                return;
            }

            if (acName == "yueguangzhan" || acName == "zhongzhan" || acName == "gotoAtk" || acName == "dazhan" || acName == "3dianqiu" || acName == "dianqiang" || acName == "diandings")
            {
                return;
            }


            //if (acName.Split('|').Length > 1)
            //{

            //}
            //else
            //{
            //    atkDistance = GetAtkVOByName(acName, DataZS.GetInstance()).atkDistance;
            //    atkDistanceY = GetAtkVOByName(acName, DataZS.GetInstance()).atkDistanceY;
            //}

            print("  acName " + acName);
            atkDistance  = GetAtkVOByName(acName.Split('|')[0], DataZS.GetInstance()).atkDistance;
            atkDistanceY = GetAtkVOByName(acName.Split('|')[0], DataZS.GetInstance()).atkDistanceY;

            print("  acName " + acName + "  atkDistanceY:  " + atkDistanceY);
        }

        //print("acName    "+ acName+"  shange  dongzuo ACName   "+GetComponent<AirGameBody>().GetDB().animation.lastAnimationName);

        if (aiQishou && aiQishou.isQishouAtk && !aiQishou.isFirstAtked)
        {
            if (atkDistance == 0f)
            {
                aiQishou.isFirstAtked = true;
            }
            else
            {
                if (Mathf.Abs(thePlayer.transform.position.x - transform.position.x) <= atkDistance)
                {
                    aiQishou.isFirstAtked = true;
                }
            }

            return;
        }

        if (acName == "jn")
        {
            JNAtk();
            return;
        }


        if (acName == "hengXiangChongZhuang")
        {
            GetHengXiangChongZhuang();
            return;
        }

        if (acName == "hengXiangCZKuaiSu")
        {
            GetHengXiangCZKuaiSu();
            return;
        }


        if (acName == "zongYa")
        {
            GetZongYa();
            return;
        }

        if (acName == "gddZongYa")
        {
            //固定点 重压
            GetGDDZongYa();
            return;
        }

        if (acName == "liandan")
        {
            GetLianDan();
            return;
        }


        if (acName == "walkBack")
        {
            GetWalkBack();
            return;
        }

        if (acName == "qianhua")
        {
            GetQianhua();
            return;
        }

        if (acName == "backUp")
        {
            GetBackUp();
            return;
        }

        if (acName == "rest")
        {
            GetRest();
            return;
        }

        if (acName == "shanxian")
        {
            GetShanXian();
            return;
        }

        if (acName == "runCut")
        {
            GetRunCut();
            return;
        }

        if (acName == "yishan")
        {
            GetYiShan();
            return;
        }
        if (acName == "shanxian")
        {
            GetShanXian();
            return;
        }

        if (acName == "chongji")
        {
            //print("------------------------------------------> chognji!!! ");
            GetChongji();
            return;
        }

        if (acName == "chongjiHX")
        {
            //print("------------------------------------------> chognji!!! ");
            GetChongJiHX();
            return;
        }

        if (acName == "chongjiHX2")
        {
            GetChongJiHX2();
            return;
        }

        if (acName == "zidan")
        {
            GetZiDanFire();
            return;
        }

        if (acName == "yuanli")
        {
            GetYuanli();
            return;
        }

        if (acName == "flyToPot1")
        {
            GetFlyToPot1();
            return;
        }

        if (acName == "flyToPot2GD")
        {
            GetFlyToPot2GD();
            return;
        }



        if (acName == "yueguangzhan")
        {
            GetYueGuangZhan();
            return;
        }

        if (acName == "dianqiang")
        {
            //电墙
            GetDianqiang();
            return;
        }

        if (acName == "diandings")
        {
            //电钉
            GetDianding();
            return;
        }



        if (acName == "3dianqiu")
        {
            Get3dianqiu();
            return;
        }

        if (acName == "yinshen")
        {
            GetYinshen();
            return;
        }

        if (acName == "gotoAtk")
        {
            GetGotoAtk();
            return;
        }

        if (acName == "dazhan")
        {
            GetDaZhan();
            return;
        }

        if (acName == "AIZiDans")
        {
            GetAIZiDans();
            return;
        }

        if (acName == "AIZiDanDingxiang")
        {
            //固定方向子弹
            GetAIZiDanDingxiang();
            return;
        }

        if (acName == "AIFlyPenhuo")
        {
            GetAIFlyPenhuo();
            return;
        }



        //print("    -------->acName "+ acName);
        PtAtk();
    }
コード例 #8
0
ファイル: DataZS.cs プロジェクト: HuaniuW/myScript
 static public string GetValueByName(string _name)
 {
     //print(DataZS.GetInstance()["tt"]);
     return(DataZS.GetInstance()["tt"] as string);
 }