Esempio n. 1
0
        public static AutoWalkPacket Parse(NetworkMessage message)
        {
            AutoWalkPacket packet = new AutoWalkPacket();
            packet.Directions = new Queue<Direction>();

            byte count = message.GetByte();

            for (int i = 0; i < count; i++)
            {
                Direction direction;
                byte dir = message.GetByte();

                switch (dir)
                {
                    case 1: direction = Direction.East; break;
                    case 2: direction = Direction.NorthEast; break;
                    case 3: direction = Direction.North; break;
                    case 4: direction = Direction.NorthWest; break;
                    case 5: direction = Direction.West; break;
                    case 6: direction = Direction.SouthWest; break;
                    case 7: direction = Direction.South; break;
                    case 8: direction = Direction.SouthEast; break;
                    default: continue;
                }

                packet.Directions.Enqueue(direction);
            }

            return packet;
        }
Esempio n. 2
0
        public static LoginPacket Parse(NetworkMessage message)
        {
            LoginPacket packet = new LoginPacket();

            packet.Os      = message.GetUInt16(); // OS
            packet.Version = message.GetUInt16(); // version

            message.RSADecrypt();

            message.GetByte(); // should be zero

            packet.XteaKey    = new uint[4];
            packet.XteaKey[0] = message.GetUInt32();
            packet.XteaKey[1] = message.GetUInt32();
            packet.XteaKey[2] = message.GetUInt32();
            packet.XteaKey[3] = message.GetUInt32();

            packet.GmMode        = message.GetByte();
            packet.AccountName   = message.GetString();
            packet.CharacterName = message.GetString();
            packet.Password      = message.GetString();

            message.SkipBytes(6); // 841 specific (according to OT)

            return(packet);
        }
Esempio n. 3
0
        public static LoginPacket Parse(NetworkMessage message)
        {
            LoginPacket packet = new LoginPacket();
            packet.Os = message.GetUInt16(); // OS
            packet.Version = message.GetUInt16(); // version

            message.RSADecrypt();

            message.GetByte(); // should be zero

            packet.XteaKey = new uint[4];
            packet.XteaKey[0] = message.GetUInt32();
            packet.XteaKey[1] = message.GetUInt32();
            packet.XteaKey[2] = message.GetUInt32();
            packet.XteaKey[3] = message.GetUInt32();

            packet.GmMode = message.GetByte();
            packet.AccountName = message.GetString();
            packet.CharacterName = message.GetString();
            packet.Password = message.GetString();

            message.SkipBytes(6); // 841 specific (according to OT)

            return packet;
        }
Esempio n. 4
0
        public static FightModesPacket Parse(NetworkMessage msg)
        {
            FightModesPacket p = new FightModesPacket();

            p.FightMode = (FightMode)msg.GetByte();
            p.ChaseMode = Convert.ToBoolean(msg.GetByte());
            p.SafeMode  = Convert.ToBoolean(msg.GetByte());

            return(p);
        }
Esempio n. 5
0
        public static ItemUsePacket Parse(NetworkMessage message)
        {
            ItemUsePacket packet = new ItemUsePacket();

            packet.FromLocation = message.GetLocation();
            packet.SpriteId = message.GetUInt16();
            packet.FromStackPosition = message.GetByte();
            packet.Index = message.GetByte();

            return packet;
        }
Esempio n. 6
0
        public static ItemUsePacket Parse(NetworkMessage message)
        {
            ItemUsePacket packet = new ItemUsePacket();

            packet.FromLocation      = message.GetLocation();
            packet.SpriteId          = message.GetUInt16();
            packet.FromStackPosition = message.GetByte();
            packet.Index             = message.GetByte();

            return(packet);
        }
Esempio n. 7
0
        public static AccountPacket Parse(NetworkMessage message)
        {
            AccountPacket packet = new AccountPacket();

            packet.Os      = message.GetUInt16(); // OS
            packet.Version = message.GetUInt16(); // version

            // File checks
            message.GetUInt32();
            message.GetUInt32();
            message.GetUInt32();

            message.RSADecrypt();

            message.GetByte(); // should be zero

            packet.XteaKey    = new uint[4];
            packet.XteaKey[0] = message.GetUInt32();
            packet.XteaKey[1] = message.GetUInt32();
            packet.XteaKey[2] = message.GetUInt32();
            packet.XteaKey[3] = message.GetUInt32();

            packet.AccountName = message.GetString(); // account name
            packet.Password    = message.GetString(); // password

            return(packet);
        }
Esempio n. 8
0
        public static ContainerClosePacket Parse(NetworkMessage message)
        {
            ContainerClosePacket p = new ContainerClosePacket();

            p.ContainerIndex = message.GetByte();
            return(p);
        }
Esempio n. 9
0
        public static PlayerSpeechPacket Parse(NetworkMessage message)
        {
            PlayerSpeechPacket packet = new PlayerSpeechPacket();

            packet.Speech      = new Speech();
            packet.Speech.Type = (SpeechType)message.GetByte();

            switch (packet.Speech.Type)
            {
            case SpeechType.Private:
            case SpeechType.PrivateRed:
            case SpeechType.RuleViolationAnswer:
                packet.Speech.Receiver = message.GetString();
                break;

            case SpeechType.ChannelYellow:
            case SpeechType.ChannelRed:
            case SpeechType.ChannelRedAnonymous:
            case SpeechType.ChannelWhite:
                packet.Speech.ChannelId = (ChatChannel)message.GetUInt16();
                break;

            default:
                break;
            }

            packet.Speech.Message = message.GetString();

            return(packet);
        }
Esempio n. 10
0
        public static PlayerSpeechPacket Parse(NetworkMessage message)
        {
            PlayerSpeechPacket packet = new PlayerSpeechPacket();
            packet.Speech = new Speech();
            packet.Speech.Type = (SpeechType)message.GetByte();

            switch (packet.Speech.Type)
            {
                case SpeechType.Private:
                case SpeechType.PrivateRed:
                case SpeechType.RuleViolationAnswer:
                    packet.Speech.Receiver = message.GetString();
                    break;
                case SpeechType.ChannelYellow:
                case SpeechType.ChannelRed:
                case SpeechType.ChannelRedAnonymous:
                case SpeechType.ChannelWhite:
                    packet.Speech.ChannelId = (ChatChannel)message.GetUInt16();
                    break;
                default:
                    break;
            }

            packet.Speech.Message = message.GetString();

            return packet;
        }
Esempio n. 11
0
        public static LookAtPacket Parse(NetworkMessage message)
        {
            LookAtPacket packet = new LookAtPacket();

            packet.Location      = message.GetLocation();
            packet.Id            = message.GetUInt16();
            packet.StackPosition = message.GetByte();

            return(packet);
        }
Esempio n. 12
0
        public static LookAtPacket Parse(NetworkMessage message)
        {
            LookAtPacket packet = new LookAtPacket();

            packet.Location = message.GetLocation();
            packet.Id = message.GetUInt16();
            packet.StackPosition = message.GetByte();

            return packet;
        }
Esempio n. 13
0
        public static AutoWalkPacket Parse(NetworkMessage message)
        {
            AutoWalkPacket packet = new AutoWalkPacket();

            packet.Directions = new Queue <Direction>();

            byte count = message.GetByte();

            for (int i = 0; i < count; i++)
            {
                Direction direction;
                byte      dir = message.GetByte();

                switch (dir)
                {
                case 1: direction = Direction.East; break;

                case 2: direction = Direction.NorthEast; break;

                case 3: direction = Direction.North; break;

                case 4: direction = Direction.NorthWest; break;

                case 5: direction = Direction.West; break;

                case 6: direction = Direction.SouthWest; break;

                case 7: direction = Direction.South; break;

                case 8: direction = Direction.SouthEast; break;

                default: continue;
                }

                packet.Directions.Enqueue(direction);
            }

            return(packet);
        }
 public static ContainerOpenParentPacket Parse(NetworkMessage message)
 {
     ContainerOpenParentPacket p = new ContainerOpenParentPacket();
     p.ContainerIndex = message.GetByte();
     return p;
 }