Exemplo n.º 1
0
        //0xBF
        private static void OnBigFuckingPacket(Packet p)
        {
            switch (p.ReadUShort())
            {
                case 6://party
                    switch (p.ReadByte())
                    {
                        case 1:
                            {
                                byte count = p.ReadByte();
                                for (int i = 0; i < 10; i++)
                                    party[i] = i < count ? p.ReadUInt() : 0;
                            }
                            break;
                        case 2:
                            {
                                byte count = p.ReadByte();
                                p.Skip(4);
                                for (int i = 0; i < 10; i++)
                                    party[i] = i < count ? p.ReadUInt() : 0;
                            }
                            break;
                    }
                    break;

                case 8://map change
                    Map = (Map)p.ReadByte();
                    MapChanged.Raise();
                    break;
            }
        }
Exemplo n.º 2
0
 //0x22
 private static void OnMovementAccepted(Packet p)
 {
     p.Skip(1);
     Player.Notoriety = (Notoriety)p.ReadByte();
     if (movementQueue.Count > 0)
         ProcessMove(movementQueue.Dequeue());
     Player.ProcessDelta();
 }
Exemplo n.º 3
0
 //0x21
 private static void OnMovementRejected(Packet p)
 {
     movementQueue.Clear();
     p.Skip(1);
     ushort x = p.ReadUShort();
     ushort y = p.ReadUShort();
     Player.Direction = (Direction)p.ReadByte();
     Player.Position = new Position(x, y, p.ReadSByte());
     Player.ProcessDelta();
 }
Exemplo n.º 4
0
 //0x1B
 private static void OnLoginConfirm(Packet p)
 {
     Mobiles.Add(Player = new PlayerMobile(p.ReadUInt()));
     p.Skip(4);//unknown
     Player.Graphic = p.ReadUShort();
     Player.Position = new Position(p.ReadUShort(), p.ReadUShort(), (sbyte)p.ReadUShort());
     Player.Direction = (Direction)p.ReadByte();
     //p.Skip(9);//unknown
     //p.ReadUShort();//map width
     //p.ReadUShort();//map height
     Player.ProcessDelta();
     Mobiles.ProcessDelta();
 }
Exemplo n.º 5
0
        //0x20
        private static void OnPlayerUpdate(Packet p)
        {
            if (p.ReadUInt() != Player)
                throw new Exception("OnMobileStatus");//does this happen?
            movementQueue.Clear();

            Player.Graphic = (ushort)(p.ReadUShort() + p.ReadSByte());
            Player.Hue = p.ReadUShort();
            Player.Flags = (UOFlags)p.ReadByte();

            ushort x = p.ReadUShort();
            ushort y = p.ReadUShort();
            p.Skip(2);//unknown
            Player.Direction = (Direction)p.ReadByte();
            Player.Position = new Position(x, y, p.ReadSByte());

            OnPlayerMoved();
            Player.ProcessDelta();
        }
Exemplo n.º 6
0
        //0x17
        private static void OnMobileHealthbar(Packet p)
        {
            Mobile mobile = Mobiles.Get(p.ReadUInt());
            if (mobile == null)
                return;

            p.Skip(2);//unknown

            UOFlags flag;
            ushort type = p.ReadUShort();
            if (type == 1)
                flag = UOFlags.Poisoned;
            else if (type == 2)
                flag = UOFlags.YellowBar;
            else
                return;

            mobile.Flags = p.ReadBool() ? mobile.Flags | flag : mobile.Flags & ~flag;
            mobile.ProcessDelta();
        }
Exemplo n.º 7
0
        //0x11
        private static void OnMobileStatus(Packet p)
        {
            Mobile mobile = Mobiles.Get(p.ReadUInt());
            if (mobile == null)
                return;

            mobile.Name = p.ReadASCII(30);
            mobile.Hits = p.ReadUShort();
            mobile.HitsMax = p.ReadUShort();
            mobile.Renamable = p.ReadBool();

            byte type = p.ReadByte();
            if (type > 0)
            {
                Player.Female = p.ReadBool();
                Player.Strength = p.ReadUShort();
                Player.Dexterity = p.ReadUShort();
                Player.Intelligence = p.ReadUShort();
                Player.Stamina = p.ReadUShort();
                Player.StaminaMax = p.ReadUShort();
                Player.Mana = p.ReadUShort();
                Player.ManaMax = p.ReadUShort();
                Player.Gold = p.ReadUInt();
                Player.ResistPhysical = p.ReadUShort();
                Player.Weight = p.ReadUShort();
            }

            if (type >= 5)//ML
            {
                Player.WeightMax = p.ReadUShort();
                p.Skip(1);
            }

            if (type >= 2)//T2A
                p.Skip(2);

            if (type >= 3)//Renaissance
            {
                Player.Followers = p.ReadByte();
                Player.FollowersMax = p.ReadByte();
            }

            if (type >= 4)//AOS
            {
                Player.ResistFire = p.ReadUShort();
                Player.ResistCold = p.ReadUShort();
                Player.ResistPoison = p.ReadUShort();
                Player.ResistEnergy = p.ReadUShort();
                Player.Luck = p.ReadUShort();
                Player.DamageMin = p.ReadUShort();
                Player.DamageMax = p.ReadUShort();
                Player.TithingPoints = p.ReadUInt();
            }

            mobile.ProcessDelta();
        }