public SaveResult InsertOrUpdate(ref QuicklistEntryDTO quickListEntry) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { long entryId = quickListEntry.EntryId; QuicklistEntry dbentry = context.QuicklistEntry.FirstOrDefault(c => c.EntryId == entryId); if (dbentry == null) { // new entity QuicklistEntry entry = _mapper.Map <QuicklistEntry>(quickListEntry); context.QuicklistEntry.Add(entry); context.SaveChanges(); _mapper.Map(entry, quickListEntry); return(SaveResult.Inserted); } else { //existing entity _mapper.Map(quickListEntry, dbentry); context.SaveChanges(); quickListEntry = _mapper.Map <QuicklistEntryDTO>(quickListEntry); // does this line anything? return(SaveResult.Updated); } } } catch (Exception e) { Logger.Log.Error(String.Format(Language.Instance.GetMessageFromKey("UPDATE_ERROR"), e.Message), e); return(SaveResult.Error); } }
public QuicklistEntryDTO LoadById(Guid id) { using (OpenNosContext context = DataAccessHelper.CreateContext()) { QuicklistEntryDTO quicklistEntryDTO = new QuicklistEntryDTO(); if (Mapper.Mappers.QuicklistEntryMapper.ToQuicklistEntryDTO(context.QuicklistEntry.FirstOrDefault(i => i.Id.Equals(id)), quicklistEntryDTO)) { return(quicklistEntryDTO); } return(null); } }
public IEnumerable <QuicklistEntryDTO> LoadByCharacterId(long characterId) { using (OpenNosContext context = DataAccessHelper.CreateContext()) { List <QuicklistEntryDTO> result = new List <QuicklistEntryDTO>(); foreach (QuicklistEntry QuicklistEntryobject in context.QuicklistEntry.Where(i => i.CharacterId == characterId)) { QuicklistEntryDTO quicklistEntryDTO = new QuicklistEntryDTO(); Mapper.Mappers.QuicklistEntryMapper.ToQuicklistEntryDTO(QuicklistEntryobject, quicklistEntryDTO); result.Add(quicklistEntryDTO); } return(result); } }
protected static QuicklistEntryDTO Update(QuicklistEntry entity, QuicklistEntryDTO inventory, OpenNosContext context) { if (entity != null) { Mapper.Mappers.QuicklistEntryMapper.ToQuicklistEntry(inventory, entity); context.SaveChanges(); } if (Mapper.Mappers.QuicklistEntryMapper.ToQuicklistEntryDTO(entity, inventory)) { return(inventory); } return(null); }
protected static QuicklistEntryDTO InsertOrUpdate(OpenNosContext context, QuicklistEntryDTO dto) { Guid primaryKey = dto.Id; QuicklistEntry entity = context.Set <QuicklistEntry>().FirstOrDefault(c => c.Id == primaryKey); if (entity == null) { return(Insert(dto, context)); } else { return(Update(entity, dto, context)); } }
protected static QuicklistEntryDTO Insert(QuicklistEntryDTO dto, OpenNosContext context) { QuicklistEntry entity = new QuicklistEntry(); Mapper.Mappers.QuicklistEntryMapper.ToQuicklistEntry(dto, entity); context.Set <QuicklistEntry>().Add(entity); context.SaveChanges(); if (Mapper.Mappers.QuicklistEntryMapper.ToQuicklistEntryDTO(entity, dto)) { return(dto); } return(null); }
public QuicklistEntryDTO InsertOrUpdate(QuicklistEntryDTO dto) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { return(InsertOrUpdate(context, dto)); } } catch (Exception e) { Logger.Error($"Message: {e.Message}", e); return(null); } }
public static bool ToQuicklistEntryDTO(QuicklistEntry input, QuicklistEntryDTO output) { if (input == null) { return(false); } output.CharacterId = input.CharacterId; output.Id = input.Id; output.Morph = input.Morph; output.Pos = input.Pos; output.Q1 = input.Q1; output.Q2 = input.Q2; output.Slot = input.Slot; output.Type = input.Type; return(true); }
public void CreateCharacter(string packet) { Logger.Debug(packet, Session.SessionId); if (Session.HasCurrentMap) { return; } // TODO: Hold Account Information in Authorized object long accountId = Session.Account.AccountId; string[] packetsplit = packet.Split(' '); byte slot = Convert.ToByte(packetsplit[3]); string characterName = packetsplit[2]; Random random = new Random(); if (slot <= 2 && DAOFactory.CharacterDAO.LoadBySlot(accountId, slot) == null) { if (characterName.Length > 3 && characterName.Length < 15) { System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^[\u0021-\u007E\u00A1-\u00AC\u00AE-\u00FF\u4E00-\u9FA5\u0E01-\u0E3A\u0E3F-\u0E5B]*$"); int isIllegalCharacter = rg.Matches(characterName).Count; if (isIllegalCharacter == 1) { if (DAOFactory.CharacterDAO.LoadByName(characterName) == null) { if (Convert.ToByte(packetsplit[3]) > 2) { return; } CharacterDTO newCharacter = new CharacterDTO() { Class = (byte)ClassType.Adventurer, Gender = (GenderType)Enum.Parse(typeof(GenderType), packetsplit[4]), HairColor = (HairColorType)Enum.Parse(typeof(HairColorType), packetsplit[6]), HairStyle = (HairStyleType)Enum.Parse(typeof(HairStyleType), packetsplit[5]), Hp = 221, JobLevel = 1, Level = 1, MapId = 1, MapX = (short)ServerManager.RandomNumber(78, 81), MapY = (short)ServerManager.RandomNumber(114, 118), Mp = 221, SpPoint = 10000, SpAdditionPoint = 0, Name = characterName, Slot = slot, AccountId = accountId, State = CharacterState.Active, }; SaveResult insertResult = DAOFactory.CharacterDAO.InsertOrUpdate(ref newCharacter); 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(qlst1); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst2); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst3); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst4); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk1); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk2); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk3); IList <ItemInstanceDTO> startupInventory = new List <ItemInstanceDTO>(); ItemInstance inventory = new WearableInstance // first weapon { CharacterId = newCharacter.CharacterId, Slot = (byte)EquipmentType.MainWeapon, Type = InventoryType.Wear, Amount = 1, ItemVNum = 1, }; startupInventory.Add(inventory); inventory = new WearableInstance() // second weapon { CharacterId = newCharacter.CharacterId, Slot = (byte)EquipmentType.SecondaryWeapon, Type = InventoryType.Wear, Amount = 1, ItemVNum = 8 }; startupInventory.Add(inventory); inventory = new WearableInstance() // armor { CharacterId = newCharacter.CharacterId, Slot = (byte)EquipmentType.Armor, Type = InventoryType.Wear, Amount = 1, ItemVNum = 12 }; startupInventory.Add(inventory); inventory = new ItemInstance() // snack { CharacterId = newCharacter.CharacterId, Type = InventoryType.Etc, Amount = 10, ItemVNum = 2024 }; startupInventory.Add(inventory); inventory = new ItemInstance() // ammo { CharacterId = newCharacter.CharacterId, Slot = 1, Type = InventoryType.Etc, Amount = 1, ItemVNum = 2081 }; startupInventory.Add(inventory); DAOFactory.IteminstanceDao.InsertOrUpdate(startupInventory); LoadCharacters(packet); } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}"); } } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}"); } } } }
public void CreateCharacter(string packet) { Logger.Debug(packet, Session.SessionId); if (Session.CurrentMap != null) { return; } // TODO: Hold Account Information in Authorized object long accountId = Session.Account.AccountId; string[] packetsplit = packet.Split(' '); byte slot = Convert.ToByte(packetsplit[3]); string characterName = packetsplit[2]; Random random = new Random(); if (slot <= 2 && DAOFactory.CharacterDAO.LoadBySlot(accountId, slot) == null) { if (characterName.Length > 3 && characterName.Length < 15) { bool isIllegalCharacter = false; System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^[\u4E00-\u9FA5a-zA-Z0-9ąáàâäãåçćéèêëęíìîïłńñóòôöõúùûüśźżýÿæœĄÁÀÂÄÃÅĆÇĘÉÈÊËÍÌÎÏŁŃÑÓÒÔÖÕÚÙÛÜŚŹŻÝŸÆŒ.¤*-|#²§µß™€=$^<>£!()&~{}@]*$`~"); isIllegalCharacter = rg.IsMatch(characterName); if (!isIllegalCharacter) { if (DAOFactory.CharacterDAO.LoadByName(characterName) == null) { if (Convert.ToByte(packetsplit[3]) > 2) { return; } CharacterDTO newCharacter = new CharacterDTO() { Class = (byte)ClassType.Adventurer, Gender = (Convert.ToByte(packetsplit[4]) >= 0 && Convert.ToByte(packetsplit[4]) <= 1 ? Convert.ToByte(packetsplit[4]) : Convert.ToByte(0)), Gold = 0, HairColor = Enum.IsDefined(typeof(HairColorType), Convert.ToByte(packetsplit[6])) ? Convert.ToByte(packetsplit[6]) : Convert.ToByte(0), HairStyle = Enum.IsDefined(typeof(HairStyleType), Convert.ToByte(packetsplit[5])) ? Convert.ToByte(packetsplit[5]) : Convert.ToByte(0), Hp = 221, JobLevel = 1, JobLevelXp = 0, Level = 1, LevelXp = 0, MapId = 1, FamilyId = -1, FamilyInfo = "-", FamilyLevel = 1, FamilyName = "-", FamilyPosition = "-", MapX = (short)(random.Next(78, 81)), MapY = (short)(random.Next(114, 118)), Mp = 221, Name = characterName, Slot = slot, AccountId = accountId, StateEnum = CharacterState.Active, WhisperBlocked = false, FamilyRequestBlocked = false, ExchangeBlocked = false, BuffBlocked = false, EmoticonsBlocked = false, FriendRequestBlocked = false, GroupRequestBlocked = false, MinilandInviteBlocked = false, HeroChatBlocked = false, QuickGetUp = false, MouseAimLock = false, HpBlocked = false, }; SaveResult insertResult = DAOFactory.CharacterDAO.InsertOrUpdate(ref newCharacter); 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, Q1 = 0, Q2 = 0, Type = 1, Slot = 1, Pos = 1 }; QuicklistEntryDTO qlst2 = new QuicklistEntryDTO { CharacterId = newCharacter.CharacterId, Q1 = 0, Q2 = 1, Type = 0, Slot = 2, Pos = 0 }; QuicklistEntryDTO qlst3 = new QuicklistEntryDTO { CharacterId = newCharacter.CharacterId, Q1 = 0, Q2 = 8, Type = 1, Slot = 1, Pos = 16 }; QuicklistEntryDTO qlst4 = new QuicklistEntryDTO { CharacterId = newCharacter.CharacterId, Q1 = 0, Q2 = 9, Type = 1, Slot = 3, Pos = 1 }; qlst1 = DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst1); qlst2 = DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst2); qlst3 = DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst3); qlst4 = DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst4); sk1 = DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk1); sk2 = DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk2); sk3 = DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk3); IList <InventoryDTO> startupInventory = new List <InventoryDTO>(); InventoryDTO inventory = new InventoryDTO() // first weapon { CharacterId = newCharacter.CharacterId, Slot = (short)EquipmentType.MainWeapon, Type = InventoryType.Equipment }; inventory.ItemInstance = new WearableInstance() { Amount = 1, ItemVNum = 1, Id = inventory.Id }; startupInventory.Add(inventory); inventory = new InventoryDTO() // second weapon { CharacterId = newCharacter.CharacterId, Slot = (short)EquipmentType.SecondaryWeapon, Type = InventoryType.Equipment }; inventory.ItemInstance = new WearableInstance() { Amount = 1, ItemVNum = 8, Id = inventory.Id }; startupInventory.Add(inventory); inventory = new InventoryDTO() // armor { CharacterId = newCharacter.CharacterId, Slot = (short)EquipmentType.Armor, Type = InventoryType.Equipment }; inventory.ItemInstance = new WearableInstance() { Amount = 1, ItemVNum = 12, Id = inventory.Id }; startupInventory.Add(inventory); inventory = new InventoryDTO() // snack { CharacterId = newCharacter.CharacterId, Slot = 0, Type = InventoryType.Etc }; inventory.ItemInstance = new ItemInstance() { Amount = 10, ItemVNum = 2024, Id = inventory.Id }; startupInventory.Add(inventory); inventory = new InventoryDTO() // ammo { CharacterId = newCharacter.CharacterId, Slot = 1, Type = InventoryType.Etc }; inventory.ItemInstance = new ItemInstance() { Amount = 1, ItemVNum = 2081, Id = inventory.Id }; startupInventory.Add(inventory); DAOFactory.InventoryDAO.InsertOrUpdate(startupInventory); LoadCharacters(packet); } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}"); } } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}"); } } } }
public void Save() { QuicklistEntryDTO tempsave = this; DAOFactory.QuicklistEntryDAO.InsertOrUpdate(ref tempsave); }
public void CreateCharacter(string packet) { Logger.Debug(Session.GenerateIdentity(), packet); if (Session.HasCurrentMapInstance) { return; } // TODO: Hold Account Information in Authorized object long accountId = Session.Account.AccountId; string[] packetsplit = packet.Split(' '); if (packetsplit.Length != 7) { return; } byte slot; string characterName = packetsplit[2]; if (byte.TryParse(packetsplit[3], out slot) && slot <= 2 && DAOFactory.CharacterDAO.LoadBySlot(accountId, slot) == null) { if (characterName.Length > 3 && characterName.Length < 15) { Regex rg = new Regex(@"^[\u0021-\u007E\u00A1-\u00AC\u00AE-\u00FF\u4E00-\u9FA5\u0E01-\u0E3A\u0E3F-\u0E5B\u002E]*$"); int isIllegalCharacter = rg.Matches(characterName).Count; if (isIllegalCharacter == 1) { if (DAOFactory.CharacterDAO.LoadByName(characterName) == null) { if (Convert.ToByte(packetsplit[3]) > 2) { return; } CharacterDTO newCharacter = new CharacterDTO { Class = (byte)ClassType.Adventurer, Gender = (GenderType)Enum.Parse(typeof(GenderType), packetsplit[4]), HairColor = (HairColorType)Enum.Parse(typeof(HairColorType), packetsplit[6]), HairStyle = (HairStyleType)Enum.Parse(typeof(HairStyleType), packetsplit[5]), Hp = 221, JobLevel = 1, Level = 1, MapId = 1, MapX = (short)ServerManager.Instance.RandomNumber(78, 81), MapY = (short)ServerManager.Instance.RandomNumber(114, 118), Mp = 221, MaxMateCount = 10, SpPoint = 10000, SpAdditionPoint = 0, Name = characterName, Slot = slot, AccountId = accountId, MinilandMessage = "Welcome", State = CharacterState.Active }; SaveResult insertResult = DAOFactory.CharacterDAO.InsertOrUpdate(ref newCharacter); 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(qlst1); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst2); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst3); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst4); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk1); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk2); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk3); Inventory startupInventory = new Inventory((Character)newCharacter); startupInventory.AddNewToInventory(1, 1, InventoryType.Wear); startupInventory.AddNewToInventory(8, 1, InventoryType.Wear); startupInventory.AddNewToInventory(12, 1, InventoryType.Wear); startupInventory.AddNewToInventory(2024, 10, InventoryType.Etc); startupInventory.AddNewToInventory(2081, 1, InventoryType.Etc); startupInventory.GetAllItems().ForEach(i => DAOFactory.IteminstanceDAO.InsertOrUpdate(i)); LoadCharacters(packet); } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}"); } } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}"); } } } }
/// <summary> /// Char_NEW character creation character /// </summary> /// <param name="characterCreatePacket"></param> public void CreateCharacter(CharacterCreatePacket 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.LoadBySlot(accountId, slot) != 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.LoadByName(characterName); if (character == null || character.State == CharacterState.Inactive) { if (characterCreatePacket.Slot > 2) { return; } CharacterDTO newCharacter = new CharacterDTO { Class = (byte)ClassType.Adventurer, Gender = characterCreatePacket.Gender, HairColor = characterCreatePacket.HairColor, HairStyle = characterCreatePacket.HairStyle, Hp = 221, JobLevel = 20, Level = 15, MapId = 1, MapX = (short)ServerManager.Instance.RandomNumber(78, 81), MapY = (short)ServerManager.Instance.RandomNumber(109, 112), Mp = 221, MaxMateCount = 10, Gold = 15000, SpPoint = 10000, SpAdditionPoint = 0, Name = characterName, Slot = slot, AccountId = accountId, MinilandMessage = "Welcome", State = CharacterState.Active }; SaveResult insertResult = DaoFactory.CharacterDao.InsertOrUpdate(ref newCharacter); CharacterQuestDTO firstQuest = new CharacterQuestDTO { CharacterId = newCharacter.CharacterId, QuestId = 1997, IsMainQuest = true }; 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.CharacterQuestDao.InsertOrUpdate(firstQuest); DaoFactory.QuicklistEntryDao.InsertOrUpdate(qlst1); DaoFactory.QuicklistEntryDao.InsertOrUpdate(qlst2); DaoFactory.QuicklistEntryDao.InsertOrUpdate(qlst3); DaoFactory.QuicklistEntryDao.InsertOrUpdate(qlst4); DaoFactory.CharacterSkillDao.InsertOrUpdate(sk1); DaoFactory.CharacterSkillDao.InsertOrUpdate(sk2); DaoFactory.CharacterSkillDao.InsertOrUpdate(sk3); Inventory startupInventory = new Inventory((Character)newCharacter); startupInventory.AddNewToInventory(2024, 10, InventoryType.Etc); startupInventory.AddNewToInventory(2081, 1, InventoryType.Etc); startupInventory.AddNewToInventory(1907, 1, InventoryType.Main); startupInventory.Select(s => s.Value).ToList().ForEach(i => DaoFactory.IteminstanceDao.InsertOrUpdate(i)); LoadCharacters(characterCreatePacket.OriginalContent); } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}"); } } else { Session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}"); } }
public QuicklistEntryDTO InsertOrUpdate(QuicklistEntryDTO dto) { throw new NotImplementedException(); }
private void ExecuteHandler(ClientSession session) { short data1 = 0, data2 = 0, type = Type, q1 = Q1, q2 = Q2; if (Data1.HasValue) { data1 = Data1.Value; } if (Data2.HasValue) { data2 = Data2.Value; } switch (type) { case 0: case 1: // client says qset 0 1 3 2 6 answer -> qset 1 3 0.2.6.0 session.Character.QuicklistEntries.RemoveAll(n => n.Q1 == q1 && n.Q2 == q2 && (session.Character.UseSp ? n.Morph == session.Character.Morph : n.Morph == 0)); session.Character.QuicklistEntries.Add(new QuicklistEntryDTO { CharacterId = session.Character.CharacterId, Type = type, Q1 = q1, Q2 = q2, Slot = data1, Pos = data2, Morph = session.Character.UseSp ? (short)session.Character.Morph : (short)0 }); session.SendPacket($"qset {q1} {q2} {type}.{data1}.{data2}.0"); break; case 2: // DragDrop / Reorder qset type to1 to2 from1 from2 vars -> q1 q2 data1 data2 QuicklistEntryDTO qlFrom = session.Character.QuicklistEntries.SingleOrDefault(n => n.Q1 == data1 && n.Q2 == data2 && (session.Character.UseSp ? n.Morph == session.Character.Morph : n.Morph == 0)); if (qlFrom != null) { QuicklistEntryDTO qlTo = session.Character.QuicklistEntries.SingleOrDefault(n => n.Q1 == q1 && n.Q2 == q2 && (session.Character.UseSp ? n.Morph == session.Character.Morph : n.Morph == 0)); qlFrom.Q1 = q1; qlFrom.Q2 = q2; if (qlTo == null) { // Put 'from' to new position (datax) session.SendPacket( $"qset {qlFrom.Q1} {qlFrom.Q2} {qlFrom.Type}.{qlFrom.Slot}.{qlFrom.Pos}.0"); // old 'from' is now empty. session.SendPacket($"qset {data1} {data2} 7.7.-1.0"); } else { // Put 'from' to new position (datax) session.SendPacket( $"qset {qlFrom.Q1} {qlFrom.Q2} {qlFrom.Type}.{qlFrom.Slot}.{qlFrom.Pos}.0"); // 'from' is now 'to' because they exchanged qlTo.Q1 = data1; qlTo.Q2 = data2; session.SendPacket($"qset {qlTo.Q1} {qlTo.Q2} {qlTo.Type}.{qlTo.Slot}.{qlTo.Pos}.0"); } } break; case 3: // Remove from Quicklist session.Character.QuicklistEntries.RemoveAll(n => n.Q1 == q1 && n.Q2 == q2 && (session.Character.UseSp ? n.Morph == session.Character.Morph : n.Morph == 0)); session.SendPacket($"qset {q1} {q2} 7.7.-1.0"); break; default: return; } }
private void ExecuteHandler(ClientSession session, string packet) { if (session.HasCurrentMapInstance) { return; } long accountId = session.Account.AccountId; if (Slot <= 2 && DAOFactory.CharacterDAO.LoadBySlot(accountId, Slot) == null && Name.Length > 3 && Name.Length < 15) { Regex rg = new Regex(@"^[A-Za-z0-9_äÄöÖüÜß~*<>°+-.!_-Й¤£±†‡×ßø^\S]+$"); if (rg.Matches(Name).Count == 1) { if (DAOFactory.CharacterDAO.LoadByName(Name) == null) { GameLogger.Instance.LogCharacterCreation(ServerManager.Instance.ChannelId, session.Account.Name, session.Account.AccountId, Name, Slot, Gender, HairStyle, HairColor); CharacterDTO newCharacter = new CharacterDTO { Class = (byte)ClassType.Adventurer, Gender = Gender, HairColor = HairColor, HairStyle = HairStyle, Hp = 221, JobLevel = 1, Level = 1, MapId = 1, MapX = (short)ServerManager.RandomNumber(78, 81), MapY = (short)ServerManager.RandomNumber(114, 118), Mp = 221, MaxMateCount = 10, SpPoint = 10000, SpAdditionPoint = 0, Name = Name, Slot = Slot, AccountId = accountId, MaxPartnerCount = 3, MinilandMessage = "Welcome on Xarion", State = CharacterState.Active, MinilandPoint = 2000 }; DAOFactory.CharacterDAO.InsertOrUpdate(ref newCharacter); 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(qlst1); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst2); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst3); DAOFactory.QuicklistEntryDAO.InsertOrUpdate(qlst4); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk1); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk2); DAOFactory.CharacterSkillDAO.InsertOrUpdate(sk3); using (Inventory startupInventory = new Inventory(new Character(newCharacter))) { startupInventory.AddNewToInventory(901, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(903, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(905, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(884, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(885, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(886, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(887, 1, InventoryType.Equipment); startupInventory.AddNewToInventory(5228, 1, InventoryType.Main); startupInventory.AddNewToInventory(1, 1, InventoryType.Wear, 7, 8); startupInventory.AddNewToInventory(8, 1, InventoryType.Wear, 7, 8); startupInventory.AddNewToInventory(12, 1, InventoryType.Wear, 7, 8); startupInventory.AddNewToInventory(2081, 255, InventoryType.Etc); startupInventory.ForEach(i => DAOFactory.ItemInstanceDAO.InsertOrUpdate(i)); EntryPointPacket.HandlePacket(session, packet); } } else { session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("ALREADY_TAKEN")}"); } } else { session.SendPacketFormat($"info {Language.Instance.GetMessageFromKey("INVALID_CHARNAME")}"); } } }