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); } }
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))); } }