コード例 #1
0
        public CharacterListUpdatePacket(PacketReader reader)
            : base(0x86, "Character List Update")
        {
            // Documented at http://docs.polserver.com/packets/index.php?Packet=0xA8
            int characterCount = reader.ReadByte();
            _characters = new CharacterListEntry[characterCount];

            for (int i = 0; i < characterCount; i++)
            {
                _characters[i] = new CharacterListEntry(reader);
            }
        }
コード例 #2
0
        public CharacterListUpdatePacket(PacketReader reader)
            : base(0x86, "Character List Update")
        {
            // Documented at http://docs.polserver.com/packets/index.php?Packet=0xA8
            var characterCount = reader.ReadByte();

            _characters = new CharacterListEntry[characterCount];
            for (var i = 0; i < characterCount; i++)
            {
                _characters[i] = new CharacterListEntry(reader);
            }
        }
コード例 #3
0
        public CharacterCityListPacket(PacketReader reader)
            : base(0xA9, "Char/City List")
        {
            var characterCount = reader.ReadByte();

            _characters = new CharacterListEntry[characterCount];
            for (var i = 0; i < characterCount; i++)
            {
                _characters[i] = new CharacterListEntry(reader);
            }
            var locationCount = reader.ReadByte();

            _locations = new StartingLocation[locationCount];
            for (var i = 0; i < locationCount; i++)
            {
                _locations[i] = new StartingLocation(reader);
            }
        }
コード例 #4
0
        public CharacterCityListPacket(PacketReader reader)
            : base(0xA9, "Char/City List")
        {
            int characterCount = reader.ReadByte();
            _characters = new CharacterListEntry[characterCount];

            for (int i = 0; i < characterCount; i++)
            {
                _characters[i] = new CharacterListEntry(reader);
            }

            int locationCount = reader.ReadByte();
            _locations = new StartingLocation[locationCount];

            for (int i = 0; i < locationCount; i++)
            {
                _locations[i] = new StartingLocation(reader);
            }
        }
コード例 #5
0
            public CharacterEntryGump(uint index, CharacterListEntry character, Action <uint> selectedFn, Action <uint> loginFn)
            {
                CharacterIndex = index;
                _selectedFn    = selectedFn;
                _loginFn       = loginFn;

                // Bg
                AddChildren(new ResizePic(0x0BB8)
                {
                    X = 0, Y = 0, Width = 280, Height = 30
                });

                // Char Name
                AddChildren(_label = new Label(character.Name, false, NORMAL_COLOR, 270, 5, align: TEXT_ALIGN_TYPE.TS_CENTER)
                {
                    X = 0
                });
                AcceptMouseInput = true;
            }
コード例 #6
0
        public static async void HandleEnumCharacters(EnumCharacters enumCharacters, CharacterSession session)
        {
            var charList = DB.Character.Where <Character>(c => c.GameAccountId == session.GameAccount.Id);

            var enumCharactersResult = new EnumCharactersResult();

            charList.ForEach(c =>
            {
                var character = new CharacterListEntry
                {
                    Guid = new CharacterGuid {
                        CreationBits = c.Guid, RealmId = (ushort)c.RealmId
                    },
                    Name            = c.Name,
                    ListPosition    = c.ListPosition,
                    RaceID          = c.Race,
                    ClassID         = c.Class,
                    SexID           = c.Sex,
                    SkinID          = c.Skin,
                    FaceID          = c.Face,
                    HairStyle       = c.HairStyle,
                    HairColor       = c.HairColor,
                    FacialHairStyle = c.FacialHairStyle,
                    ExperienceLevel = c.ExperienceLevel,
                    ZoneID          = (int)c.Zone,
                    MapID           = (int)c.Map,
                    PreloadPos      = new Vector3 {
                        X = c.X, Y = c.Y, Z = c.Z
                    },
                    GuildGUID = new GuildGuid {
                        CreationBits = c.GuildGuid
                    },
                    Flags                = c.CharacterFlags,
                    Flags2               = c.CustomizeFlags,
                    Flags3               = c.Flags3,
                    FirstLogin           = c.FirstLogin == 1,
                    PetCreatureDisplayID = c.PetCreatureDisplayId,
                    PetExperienceLevel   = c.PetLevel,
                    PetCreatureFamilyID  = c.PetCreatureFamily,
                };

                if (c.CharacterItems != null)
                {
                    for (var i = 0; i < character.InventoryItems.Length; i++)
                    {
                        foreach (var ci in c.CharacterItems)
                        {
                            Item item;

                            if ((int)ci.Slot == i && ClientDB.Items.TryGetValue(ci.ItemId, out item) && ci.Equipped)
                            {
                                character.InventoryItems[i].DisplayID = (uint)item.DisplayId;
                                character.InventoryItems[i].InvType   = (byte)item.Slot;

                                break;
                            }
                        }
                    }
                }

                enumCharactersResult.Characters.Add(character);
            });

            await session.Send(enumCharactersResult);
        }
コード例 #7
0
ファイル: Characters.cs プロジェクト: Crwth/UltimaXNA
 public static void SetCharacterList(CharacterListEntry[] list)
 {
     _characters = list;
     _updateValue++;
 }