Beispiel #1
0
 void UpdateXY()
 {
     //Wrap our function inside a catcher
     try
     {
         //Update x and y of character
         if (!FileDB.CheckCave(Character.Position.xSec, Character.Position.ySec))
         {
             Character.Position.x = Formule.gamex(Character.Position.x, Character.Position.xSec);
             Character.Position.y = Formule.gamey(Character.Position.y, Character.Position.ySec);
         }
         else
         {
             //New cave update x y
             Character.Position.x = Formule.cavegamex(Character.Position.x);
             Character.Position.y = Formule.cavegamey(Character.Position.y);
         }
     }
     catch (Exception ex)
     {
         Log.Exception(ex);
     }
 }
Beispiel #2
0
        void MovementNormalClicking(PacketReader Reader)
        {
            float  XPosition = 0;
            float  YPosition = 0;
            float  ZPosition = 0;
            byte   xsec      = Reader.Byte();
            byte   ysec      = Reader.Byte();
            double Distance  = 0;

            Character.Position.Walking = true;

            if (!FileDB.CheckCave(xsec, ysec))
            {
                XPosition = Reader.Int16();
                ZPosition = Reader.Int16();
                YPosition = Reader.Int16();
                Distance  = Formule.gamedistance(Character.Position.x, Character.Position.y, Formule.gamex(XPosition, xsec), Formule.gamey(YPosition, ysec));
                Character.Position.xSec       = xsec;
                Character.Position.ySec       = ysec;
                Character.Position.wX         = Formule.gamex(XPosition, xsec) - Character.Position.x;
                Character.Position.wZ         = ZPosition;
                Character.Position.wY         = Formule.gamey(YPosition, ysec) - Character.Position.y;
                Character.Position.packetxSec = xsec;
                Character.Position.packetySec = ysec;
                Character.Position.packetX    = (ushort)XPosition;
                Character.Position.packetZ    = (ushort)ZPosition;
                Character.Position.packetY    = (ushort)YPosition;
                if ((xsec != 0) && (ysec != 0))
                {
                    Send(Packet.Movement(new ObjData.vektor(Character.Information.UniqueID, XPosition, ZPosition, YPosition, xsec, ysec)));
                }
                StartMovementTimer(GetMovementTime(Distance));
            }
            else
            {
                XPosition = Formule.cavegamex((float)Reader.Int16(), (float)Reader.Int16());
                ZPosition = Formule.cavegamez((float)Reader.Int16(), (float)Reader.Int16());
                YPosition = Formule.cavegamey((float)Reader.Int16(), (float)Reader.Int16());
                Distance  = Formule.gamedistance(Character.Position.x, Character.Position.y, Formule.cavegamex(XPosition), Formule.cavegamey(YPosition));
                Character.Position.xSec       = xsec;
                Character.Position.ySec       = ysec;
                Character.Position.wX         = Formule.cavegamex(XPosition) - Character.Position.x;
                Character.Position.wZ         = ZPosition;
                Character.Position.wY         = Formule.cavegamey(YPosition) - Character.Position.y;
                Character.Position.packetxSec = xsec;
                Character.Position.packetySec = ysec;
                Character.Position.packetX    = (ushort)XPosition;
                Character.Position.packetZ    = (ushort)ZPosition;
                Character.Position.packetY    = (ushort)YPosition;
                if ((xsec != 0) && (ysec != 0))
                {
                    Send(Packet.Movement(new ObjData.vektor(Character.Information.UniqueID, XPosition, ZPosition, YPosition, xsec, ysec)));
                }
                StartMovementTimer(GetMovementTime(Distance));
            }
            Reader.Close();
            if (Character.Grabpet.Active)
            {
                Send(Packet.Movement(new ObjData.vektor(Character.Grabpet.Details.UniqueID, XPosition + Rnd.Next(10, 15), ZPosition, YPosition + Rnd.Next(10, 15), xsec, ysec)));
            }
            if (Character.Attackpet.Active)
            {
                Send(Packet.Movement(new ObjData.vektor(Character.Attackpet.Details.UniqueID, XPosition + Rnd.Next(10, 15), ZPosition, YPosition + Rnd.Next(10, 15), xsec, ysec)));
            }
        }