public static void HandleEnumCharacters(EnumCharacters enumCharacters, CharacterSession session)
        {
            // ORM seems to have problems with session.GameAccount.Id...
            var gameAccount = session.GameAccount;
            var charList    = DB.Character.Where <Character>(c => c.GameAccountId == gameAccount.Id);

            var enumCharactersResult = new EnumCharactersResult();

            charList.ForEach(c =>
            {
                enumCharactersResult.Characters.Add(new CharacterListEntry
                {
                    Guid = new SmartGuid {
                        Type = GuidType.Player, MapId = (ushort)c.Map, CreationBits = c.Guid
                    },
                    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.Level,
                    ZoneID          = (int)c.Zone,
                    MapID           = (int)c.Map,
                    PreloadPos      = new Vector3 {
                        X = c.X, Y = c.Y, Z = c.Z
                    },
                    GuildGUID = new SmartGuid {
                        Type = GuidType.Guild, 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,
                });
            });

            session.Send(enumCharactersResult);
        }
Esempio n. 2
0
        public static Character CreateCharacter(string name, string nickName, EnumCharacters enumCharacters)
        {
            if (enumCharacters == EnumCharacters.DrugDealer)
            {
                return(new DrugDealer(name, nickName));
            }
            else if (enumCharacters == EnumCharacters.Guard)
            {
                return(new Guard(name, nickName));
            }
            else if (enumCharacters == EnumCharacters.Killer)
            {
                return(new Killer(name, nickName, 0));
            }
            else if (enumCharacters == EnumCharacters.Thief)
            {
                return(new Thief(name, nickName));
            }

            return(null);
        }
Esempio n. 3
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);
        }