Esempio n. 1
0
        /// <summary>
        /// ptctl packet
        /// </summary>
        /// <param name="packet"></param>
        public void PetMove(PtCtlPacket packet)
        {
            string[] packetsplit = packet.PacketEnd.Split(' ');
            for (int i = 0; i < packet.Amount * 3; i += 3)
            {
                if (packetsplit.Count() >= packet.Amount * 3)
                {
                    int   PetId     = int.Parse(packetsplit[i]);
                    short PositionX = short.Parse(packetsplit[i + 1]);
                    short PositionY = short.Parse(packetsplit[i + 2]);

                    Mate mate = Session.Character.Mates.FirstOrDefault(s => s.MateTransportId == PetId);
                    if (mate != null)
                    {
                        mate.PositionX = PositionX;
                        mate.PositionY = PositionY;
                        Session.CurrentMapInstance.Broadcast($"mv 2 {PetId} {PositionX} {PositionY} {mate.Monster.Speed}");
                    }
                }
            }

            /*
             * packet.Users.ForEach(u =>
             * {
             *  Mate mate = Session.Character.Mates.FirstOrDefault(s => s.MateTransportId == u.UserId);
             *  if (mate != null)
             *  {
             *      mate.PositionX = u.UserX;
             *      mate.PositionY = u.UserY;
             *      Session.CurrentMapInstance.Broadcast($"mv 2 {u.UserId} { u.UserX} { u.UserY} {mate.Monster.Speed}");
             *  }
             * });
             */
        }
Esempio n. 2
0
        /// <summary>
        /// ptctl packet
        /// </summary>
        /// <param name="packet"></param>
        public void PetMove(PtCtlPacket packet)
        {
            string[] packetsplit = packet.PacketEnd.Split(' ');
            for (int i = 0; i < packet.Amount * 3; i += 3)
            {
                if (packetsplit.Length < packet.Amount * 3)
                {
                    continue;
                }
                if (!int.TryParse(packetsplit[i], out int petId))
                {
                    return;
                }
                if (!short.TryParse(packetsplit[i + 1], out short positionX))
                {
                    return;
                }
                if (!short.TryParse(packetsplit[i + 2], out short positionY))
                {
                    return;
                }

                Mate mate = Session.Character.Mates.FirstOrDefault(s => s.MateTransportId == petId);
                if (mate == null)
                {
                    continue;
                }
                mate.PositionX = positionX;
                mate.PositionY = positionY;
                Session.CurrentMapInstance.Broadcast($"mv 2 {petId} {positionX} {positionY} {mate.Monster.Speed}");
            }
        }