public static void checkNPCMovement()
        {
            IEnumerator enumerator;
            IEnumerator enumerator2;
            ArrayList   list = new ArrayList();

            try
            {
                enumerator = Module1.displayNPCs.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    NPCShip current = (NPCShip)enumerator.Current;
                    if (current.getMoving())
                    {
                        if ((DateTime.Now.Millisecond - current.getTime().Millisecond) >= current.getMoveTime())
                        {
                            current.setMoving(false);
                            list.Add(current);
                        }
                    }
                    else
                    {
                        list.Add(current);
                    }
                }
            }
            finally
            {
                if (enumerator is IDisposable)
                {
                    (enumerator as IDisposable).Dispose();
                }
            }
            try
            {
                enumerator2 = list.GetEnumerator();
                while (enumerator2.MoveNext())
                {
                    NPCShip ship2 = (NPCShip)enumerator2.Current;
                    int     num2  = (int)Math.Round((double)(ship2.getPosX() + rnd.Next(-100, 100)));
                    int     num3  = (int)Math.Round((double)(ship2.getPosY() + rnd.Next(-100, 100)));
                    int     num   = (int)Math.Round(Math.Sqrt(((num2 - Module1.mainHero.getPosX()) * (num2 - Module1.mainHero.getPosX())) + ((num3 - Module1.mainHero.getPosY()) * (num3 - Module1.mainHero.getPosY()))));
                    int     time  = (int)Math.Round((double)(((double)num) / (((double)ship2.getSpeed()) / 1000.0)));
                    sendNPCMove(ship2.getUserID(), (double)num2, (double)num3, time);
                    ship2.setPosX((double)num2);
                    ship2.setPosY((double)num3);
                    ship2.setMoving(true);
                    ship2.setTime(DateTime.Now);
                    ship2.setMoveTime(time);
                    NPCShip ship3 = mainFunctions.getNPCByID(ship2.getUserID());
                }
            }
            finally
            {
                if (enumerator2 is IDisposable)
                {
                    (enumerator2 as IDisposable).Dispose();
                }
            }
        }
示例#2
0
        public static void NPCMove1(int speed)
        {
            NPCShip ship = mainFunctions.getNPCByID(npcAttackID);

            if (!(npcUpdatePosX == -1.0))
            {
                ship.setPosX(npcUpdatePosX);
                ship.setPosY(npcUpdatePosY);
            }
            double num  = ship.getPosX();
            double num2 = ship.getPosY();
            double num5 = Module1.mainHero.getPosX();
            double num6 = Module1.mainHero.getPosY();
            double num7 = num;
            double num8 = num2;
            bool   flag = false;
            double num3 = num5 - num;

            if (num3 < 0.0)
            {
                if (num3 < -100.0)
                {
                    flag = true;
                }
                else
                {
                    flag = false;
                    num3 = 0.0;
                }
            }
            else if (num3 > 100.0)
            {
                flag = true;
            }
            else
            {
                flag = false;
                num3 = 0.0;
            }
            double num4 = num6 - num2;

            if (num4 < 0.0)
            {
                if (num4 < -100.0)
                {
                    flag = true;
                }
                else
                {
                    flag = false;
                    num4 = 0.0;
                }
            }
            else if (num4 > 100.0)
            {
                flag = true;
            }
            else
            {
                flag = false;
                num4 = 0.0;
            }
            if (flag)
            {
                double num9  = Math.Abs(num3);
                double num10 = Math.Abs(num4);
                if (num9 > num10)
                {
                    if (num3 < 0.0)
                    {
                        num7 = num - speed;
                        num8 = num2;
                        initConnection.sendPacket("0|1|" + Conversions.ToString(npcAttackID) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                    }
                    else
                    {
                        num7 = num + speed;
                        num8 = num2;
                        initConnection.sendPacket("0|1|" + Conversions.ToString(npcAttackID) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                    }
                }
                else if (num4 < 0.0)
                {
                    num7 = num;
                    num8 = num2 - speed;
                    initConnection.sendPacket("0|1|" + Conversions.ToString(npcAttackID) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                }
                else
                {
                    num7 = num;
                    num8 = num2 + speed;
                    initConnection.sendPacket("0|1|" + Conversions.ToString(npcAttackID) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                }
            }
            npcUpdatePosX = num7;
            npcUpdatePosY = num8;
        }
        public static void NPCMove1()
        {
            IEnumerator enumerator;

            try
            {
                enumerator = Module1.displayNPCs.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    NPCShip ship = mainFunctions.getNPCByID(Conversions.ToInteger(enumerator.Current));
                    double  num  = ship.getPosX();
                    double  num2 = ship.getPosY();
                    double  num5 = Module1.mainHero.getPosX();
                    double  num6 = Module1.mainHero.getPosY();
                    double  num7 = num;
                    double  num8 = num2;
                    bool    flag = false;
                    double  num3 = num5 - num;
                    if (num3 < 0.0)
                    {
                        if (num3 < -100.0)
                        {
                            flag = true;
                        }
                        else
                        {
                            flag = false;
                            num3 = 0.0;
                        }
                    }
                    else if (num3 > 100.0)
                    {
                        flag = true;
                    }
                    else
                    {
                        flag = false;
                        num3 = 0.0;
                    }
                    double num4 = num6 - num2;
                    if (num4 < 0.0)
                    {
                        if (num4 < -100.0)
                        {
                            flag = true;
                        }
                        else
                        {
                            flag = false;
                            num4 = 0.0;
                        }
                    }
                    else if (num4 > 100.0)
                    {
                        flag = true;
                    }
                    else
                    {
                        flag = false;
                        num4 = 0.0;
                    }
                    if (flag)
                    {
                        double num10 = Math.Abs(num3);
                        double num11 = Math.Abs(num4);
                        if (num10 > num11)
                        {
                            if (num3 < 0.0)
                            {
                                num7 = num - ship.getSpeed();
                                num8 = num2;
                                initConnection.sendPacket("0|1|" + Conversions.ToString(ship.getUserID()) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                            }
                            else
                            {
                                num7 = num + ship.getSpeed();
                                num8 = num2;
                                initConnection.sendPacket("0|1|" + Conversions.ToString(ship.getUserID()) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                            }
                        }
                        else if (num4 < 0.0)
                        {
                            num7 = num;
                            num8 = num2 - ship.getSpeed();
                            initConnection.sendPacket("0|1|" + Conversions.ToString(ship.getUserID()) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                        }
                        else
                        {
                            num7 = num;
                            num8 = num2 + ship.getSpeed();
                            initConnection.sendPacket("0|1|" + Conversions.ToString(ship.getUserID()) + "|" + Conversions.ToString(num7) + "|" + Conversions.ToString(num8) + "|1000");
                        }
                    }
                    ship.setPosX(num7);
                    ship.setPosY(num8);
                }
            }
            finally
            {
                if (enumerator is IDisposable)
                {
                    (enumerator as IDisposable).Dispose();
                }
            }
        }