Пример #1
0
        /// <summary>
        ///     Char_NEW character creation character
        /// </summary>
        /// <param name="characterCreatePacket"></param>
        public void CreateCharacter(CharNewPacket characterCreatePacket)
        {
            if (Session.HasCurrentMapInstance)
            {
                return;
            }

            // TODO: Hold Account Information in Authorized object
            var accountId     = Session.Account.AccountId;
            var slot          = characterCreatePacket.Slot;
            var characterName = characterCreatePacket.Name;

            if (DaoFactory.CharacterDao.FirstOrDefault(s =>
                                                       s.AccountId == accountId && s.Slot == slot && s.State == CharacterState.Active) != null)
            {
                return;
            }

            var rg = new Regex(
                @"^[\u0021-\u007E\u00A1-\u00AC\u00AE-\u00FF\u4E00-\u9FA5\u0E01-\u0E3A\u0E3F-\u0E5B\u002E]*$");

            if (rg.Matches(characterName).Count == 1)
            {
                var character =
                    DaoFactory.CharacterDao.FirstOrDefault(s =>
                                                           s.Name == characterName && s.State == CharacterState.Active);
                if (character == null)
                {
                    var chara = new CharacterDto
                    {
                        Class           = (byte)CharacterClassType.Adventurer,
                        Gender          = characterCreatePacket.Gender,
                        HairColor       = characterCreatePacket.HairColor,
                        HairStyle       = characterCreatePacket.HairStyle,
                        Hp              = 221,
                        JobLevel        = 1,
                        Level           = 1,
                        MapId           = 1,
                        MapX            = (short)RandomFactory.Instance.RandomNumber(78, 81),
                        MapY            = (short)RandomFactory.Instance.RandomNumber(114, 118),
                        Mp              = 221,
                        MaxMateCount    = 10,
                        SpPoint         = 10000,
                        SpAdditionPoint = 0,
                        Name            = characterName,
                        Slot            = slot,
                        AccountId       = accountId,
                        MinilandMessage = "Welcome",
                        State           = CharacterState.Active
                    };
                    DaoFactory.CharacterDao.InsertOrUpdate(ref chara);
                    LoadCharacters(null);
                }
                else
                {
                    Session.SendPacket(new InfoPacket
                    {
                        Message = Session.GetMessageFromKey(LanguageKey.ALREADY_TAKEN)
                    });
                }
            }
            else
            {
                Session.SendPacket(new InfoPacket
                {
                    Message = Session.GetMessageFromKey(LanguageKey.INVALID_CHARNAME)
                });
            }
        }
        /// <summary>
        /// Char_NEW character creation character
        /// </summary>
        /// <param name="characterCreatePacket"></param>
        public void CreateCharacter(CharNewPacket characterCreatePacket)
        {
            if (Session.HasCurrentMapInstance)
            {
                return;
            }

            // TODO: Hold Account Information in Authorized object
            long   accountId     = Session.Account.AccountId;
            byte   slot          = characterCreatePacket.Slot;
            string characterName = characterCreatePacket.Name;

            if (slot > 2 || DAOFactory.CharacterDAO.FirstOrDefault(s => s.AccountId == accountId && s.Name == characterName && s.Slot == slot && s.State == CharacterState.Active) != null)
            {
                return;
            }
            if (characterName.Length <= 3 || characterName.Length >= 15)
            {
                return;
            }
            Regex rg = new Regex(@"^[\u0021-\u007E\u00A1-\u00AC\u00AE-\u00FF\u4E00-\u9FA5\u0E01-\u0E3A\u0E3F-\u0E5B\u002E]*$");

            if (rg.Matches(characterName).Count == 1)
            {
                CharacterDTO character = DAOFactory.CharacterDAO.FirstOrDefault(s => s.Name == characterName && s.State == CharacterState.Active);
                if (character == null || character.State == CharacterState.Inactive)
                {
                    if (characterCreatePacket.Slot > 2)
                    {
                        return;
                    }
                    Random    rnd          = new Random();
                    Character newCharacter = new Character
                    {
                        Class           = (byte)CharacterClassType.Adventurer,
                        Gender          = characterCreatePacket.Gender,
                        HairColor       = characterCreatePacket.HairColor,
                        HairStyle       = characterCreatePacket.HairStyle,
                        Hp              = 221,
                        JobLevel        = 1,
                        Level           = 1,
                        MapId           = 1,
                        MapX            = (short)rnd.Next(78, 81),
                        MapY            = (short)rnd.Next(114, 118),
                        Mp              = 221,
                        MaxMateCount    = 10,
                        SpPoint         = 10000,
                        SpAdditionPoint = 0,
                        Name            = characterName,
                        Slot            = slot,
                        AccountId       = accountId,
                        MinilandMessage = "Welcome",
                        State           = CharacterState.Active
                    };
                    CharacterDTO chara        = newCharacter;
                    SaveResult   insertResult = DAOFactory.CharacterDAO.InsertOrUpdate(ref chara);

                    /*  CharacterSkillDTO sk1 = new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 200 };
                     * CharacterSkillDTO sk2 = new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 201 };
                     * CharacterSkillDTO sk3 = new CharacterSkillDTO { CharacterId = newCharacter.CharacterId, SkillVNum = 209 };
                     * QuicklistEntryDTO qlst1 = new QuicklistEntryDTO
                     * {
                     *    CharacterId = newCharacter.CharacterId,
                     *    Type = 1,
                     *    Slot = 1,
                     *    Pos = 1
                     * };
                     * QuicklistEntryDTO qlst2 = new QuicklistEntryDTO
                     * {
                     *    CharacterId = newCharacter.CharacterId,
                     *    Q2 = 1,
                     *    Slot = 2
                     * };
                     * QuicklistEntryDTO qlst3 = new QuicklistEntryDTO
                     * {
                     *    CharacterId = newCharacter.CharacterId,
                     *    Q2 = 8,
                     *    Type = 1,
                     *    Slot = 1,
                     *    Pos = 16
                     * };
                     * QuicklistEntryDTO qlst4 = new QuicklistEntryDTO
                     * {
                     *    CharacterId = newCharacter.CharacterId,
                     *    Q2 = 9,
                     *    Type = 1,
                     *    Slot = 3,
                     *    Pos = 1
                     * };
                     *
                     *
                     *
                     * DAOFactory.QuicklistEntryDAO.InsertOrUpdate(ref qlst1);
                     * DAOFactory.QuicklistEntryDAO.InsertOrUpdate(ref qlst2);
                     * DAOFactory.QuicklistEntryDAO.InsertOrUpdate(ref qlst3);
                     * DAOFactory.QuicklistEntryDAO.InsertOrUpdate(ref qlst4);
                     * DAOFactory.CharacterSkillDAO.InsertOrUpdate(ref sk1);
                     * DAOFactory.CharacterSkillDAO.InsertOrUpdate(ref sk2);
                     * DAOFactory.CharacterSkillDAO.InsertOrUpdate(ref sk3);
                     *
                     * Inventory startupInventory = new Inventory((Character)newCharacter);
                     * startupInventory.AddNewToInventory(1, 1, InventoryType.Wear, 5, 5);
                     * startupInventory.AddNewToInventory(8, 1, InventoryType.Wear, 5, 5);
                     * startupInventory.AddNewToInventory(12, 1, InventoryType.Wear, 5, 5);
                     * startupInventory.AddNewToInventory(2024, 10, InventoryType.Etc);
                     * startupInventory.AddNewToInventory(2081, 1, InventoryType.Etc);
                     * startupInventory.AddNewToInventory(1907, 1, InventoryType.Main);
                     * IEnumerable<ItemInstanceDTO> startupInstanceDtos = startupInventory.Values.ToList();
                     * DAOFactory.IteminstanceDAO.InsertOrUpdate(startupInstanceDtos);
                     */

                    LoadCharacters(null);
                }
                else
                {
                    Session.SendPacket(new InfoPacket()
                    {
                        Message = Language.Instance.GetMessageFromKey("ALREADY_TAKEN"),
                    });
                }
            }
            else
            {
                Session.SendPacket(new InfoPacket()
                {
                    Message = Language.Instance.GetMessageFromKey("INVALID_CHARNAME"),
                });
            }
        }
Пример #3
0
        /// <summary>
        /// Char_NEW character creation character
        /// </summary>
        /// <param name="characterCreatePacket"></param>
        public void CreateCharacter(CharNewPacket characterCreatePacket)
        {
            if (Session.HasCurrentMapInstance)
            {
                return;
            }

            // TODO: Hold Account Information in Authorized object
            long   accountId     = Session.Account.AccountId;
            byte   slot          = characterCreatePacket.Slot;
            string characterName = characterCreatePacket.Name;

            if (DAOFactory.CharacterDAO.FirstOrDefault(s => s.AccountId == accountId && s.Slot == slot && s.State == CharacterState.Active) != null)
            {
                return;
            }
            Regex rg = new Regex(@"^[\u0021-\u007E\u00A1-\u00AC\u00AE-\u00FF\u4E00-\u9FA5\u0E01-\u0E3A\u0E3F-\u0E5B\u002E]*$");

            if (rg.Matches(characterName).Count == 1)
            {
                CharacterDTO character = DAOFactory.CharacterDAO.FirstOrDefault(s => s.Name == characterName && s.State == CharacterState.Active);
                if (character == null)
                {
                    Random    rnd          = new Random();
                    Character newCharacter = new Character
                    {
                        Class           = (byte)CharacterClassType.Adventurer,
                        Gender          = characterCreatePacket.Gender,
                        HairColor       = characterCreatePacket.HairColor,
                        HairStyle       = characterCreatePacket.HairStyle,
                        Hp              = 221,
                        JobLevel        = 1,
                        Level           = 1,
                        MapId           = 1,
                        MapX            = (short)rnd.Next(78, 81),
                        MapY            = (short)rnd.Next(114, 118),
                        Mp              = 221,
                        MaxMateCount    = 10,
                        SpPoint         = 10000,
                        SpAdditionPoint = 0,
                        Name            = characterName,
                        Slot            = slot,
                        AccountId       = accountId,
                        MinilandMessage = "Welcome",
                        State           = CharacterState.Active
                    };
                    CharacterDTO chara        = newCharacter;
                    SaveResult   insertResult = DAOFactory.CharacterDAO.InsertOrUpdate(ref chara);
                    LoadCharacters(null);
                }
                else
                {
                    Session.SendPacket(new InfoPacket()
                    {
                        Message = Language.Instance.GetMessageFromKey("ALREADY_TAKEN"),
                    });
                }
            }
            else
            {
                Session.SendPacket(new InfoPacket()
                {
                    Message = Language.Instance.GetMessageFromKey("INVALID_CHARNAME"),
                });
            }
        }