/// <summary> /// Creates a new instance of the <see cref="Rift.ShopDialog"/> class /// from the specified user account and shop items data /// </summary> /// <param name="account">A user account data.</param> /// <param name="shop">An in-game shop items data.</param> public ShopDialog(GameAccount account, GameShop shop) { InitializeComponent(); this.account = account; this.shop = shop; onLoading = false; updateEnabled = true; characters = new Queue<string>(); itemPanels = new Dictionary<int, ShopItemPanel>(); comboBoxCategory.Items.Add(Resources.ShopCategorySearch); if (account != null) labelUser.Text = account.Name; else { labelUser.Visible = false; labelPoints.Visible = false; } if (shop == null) return; foreach (var category in shop.CategoryNames) comboBoxCategory.Items.Add(category); flowPanel.ChildCount = shop.ItemsCount; comboBoxCategory.SelectedIndex = comboBoxCategory.Items.Count > 1 ? 1 : 0; }
/// <summary> /// Initializes a new instance of the <see cref="Rift.Services.GameProcessParameters"/> structure /// with the specified server and the user account information. /// </summary> /// <param name="ip">An IP-address of the server to connect.</param> /// <param name="port">A server port number to use.</param> /// <param name="countryCode">A game client country code.</param> /// <param name="account">An account data to login.</param> public GameProcessParameters( string ip, int port, int countryCode, GameAccount account = default(GameAccount)) { this.ip = ip; this.port = port; this.countryCode = countryCode; this.account = account; flags = new List<string>(); }
public static void CreateAccount(string[] args) { var email = Helper.Read<string>(args, 0); var loginName = Helper.Read<string>(args, 1); var password = Helper.Read<string>(args, 2); if (email != null && password != null && loginName != null) { var salt = Helper.GenerateRandomKey(8).ToHexString(); var result = DB.Auth.Any<Account>(a => a.Email == email || a.LoginName == loginName); if (!result) { var srp = new SRP6a(salt); srp.CalculateX(email, password, false); var account = new Account { Email = email, LoginName = loginName, PasswordVerifier = srp.V.ToHexString(), Salt = salt }; var accountId = DB.Auth.GetAutoIncrementValue<Account, uint>(); var gameAccountId = DB.Auth.GetAutoIncrementValue<GameAccount, uint>(); var gameAccount = new GameAccount { AccountId = accountId, Alias = $"{accountId}#{gameAccountId}", }; if (DB.Auth.Add(account) && DB.Auth.Add(gameAccount)) Console.WriteLine($"Account 'Email: {email}, LoginName: {loginName}' successfully created."); } else Console.WriteLine($"Account 'Email: {email}' or 'LoginName: {loginName}' already in database."); } }
private async System.Threading.Tasks.Task <string> GetOTPAsync(GameAccount acc, string service_code, string service_region) { string longPollingKey = ""; var webRequest = CreateWebRequest("https://tw.beanfun.com/beanfun_block/game_zone/game_start_step2.aspx?service_code=" + service_code + "&service_region=" + service_region + "&sotp=" + acc.sotp); using (var r = await WebRequestExtensions.GetResponseAsync(webRequest, MillisecondsTimeout)) using (Stream ReceiveStream = r.GetResponseStream()) using (StreamReader readStream = new StreamReader(ReceiveStream, Encoding.UTF8)) while (!readStream.EndOfStream) { var line = readStream.ReadLine(); if (line.Contains("GetResultByLongPolling")) { Regex regex = new Regex("GetResultByLongPolling&key=(.*)\""); if (!regex.IsMatch(line)) { throw new Exception("GetGamePassword Failed: OTPNoLongPollingKey"); } longPollingKey = regex.Match(line).Groups[1].Value; } else if (string.IsNullOrEmpty(acc.screatetime) && line.Contains("ServiceAccountCreateTime")) { Regex regex = new Regex("ServiceAccountCreateTime: \"([^\"]+)\""); if (!regex.IsMatch(line)) { throw new Exception("GetGamePassword Failed: OTPNoCreateTime"); } acc.screatetime = regex.Match(line).Groups[1].Value; } } string secretCode = ""; webRequest = CreateWebRequest("https://tw.newlogin.beanfun.com/generic_handlers/get_cookies.ashx"); using (var r = await WebRequestExtensions.GetResponseAsync(webRequest, MillisecondsTimeout)) using (Stream ReceiveStream = r.GetResponseStream()) using (StreamReader readStream = new StreamReader(ReceiveStream, Encoding.UTF8)) while (!readStream.EndOfStream) { var line = readStream.ReadLine(); if (line.Contains("m_strSecretCode")) { Regex regex = new Regex("var m_strSecretCode = '(.*)';"); if (!regex.IsMatch(line)) { throw new Exception("GetGamePassword Failed: OTPNoSecretCode"); } secretCode = regex.Match(line).Groups[1].Value; break; } } webRequest = CreateWebRequest("http://tw.beanfun.com/beanfun_block/generic_handlers/get_webstart_otp.ashx?SN=" + longPollingKey + "&WebToken=" + bfWebToken + "&SecretCode=" + secretCode + "&ppppp=1F552AEAFF976018F942B13690C990F60ED01510DDF89165F1658CCE7BC21DBA&ServiceCode=" + service_code + "&ServiceRegion=" + service_region + "&ServiceAccount=" + acc.sacc + "&CreateTime=" + acc.screatetime.Replace(" ", "%20") + "&d=" + Environment.TickCount); using (var r = await WebRequestExtensions.GetResponseAsync(webRequest, MillisecondsTimeout)) using (Stream ReceiveStream = r.GetResponseStream()) using (StreamReader readStream = new StreamReader(ReceiveStream, Encoding.UTF8)) { string DESValue = readStream.ReadToEnd(); DESValue = DESValue.Substring(2); string key = DESValue.Substring(0, 8); string plain = DESValue.Substring(8); string otp = DecryptDES(plain, key); if (string.IsNullOrEmpty(otp)) { throw new Exception("GetGamePassword Failed: Decrypt OTP Failed"); } return(otp); } }
public async System.Threading.Tasks.Task <string> GetGamePasswordAsync(GameAccount acc) { return(await GetOTPAsync(acc, service_code, service_region)); }
public GameAccount UpdateStats(GameAccount account) { return(AccountRepository.UpdateStats(account)); }
public BeginnerState(GameAccount state) { GAcct = state; }
public List <AvailableCharacterTemplateSet> GetAvailableCharacterTemplates(GameAccount gameAccount, Realm realm) { var charTemplates = new List <AvailableCharacterTemplateSet>(); if (gameAccount.GameAccountCharacterTemplates != null) { gameAccount.GameAccountCharacterTemplates.ToList().ForEach(gat => { var set = DB.Character.Single <CharacterTemplateSet>(cts => cts.Id == gat.SetId); if (set != null) { var templateSet = new AvailableCharacterTemplateSet { TemplateSetID = (uint)set.Id, Name = set.Name, Description = set.Description, }; set.CharacterTemplateClasses.ToList().ForEach(ctc => { templateSet.Classes.Add(new AvailableCharacterTemplateClass { ClassID = ctc.ClassId, FactionGroup = ctc.FactionGroup }); }); charTemplates.Add(templateSet); } }); } else { if (realm.RealmCharacterTemplates != null) { realm.RealmCharacterTemplates.ToList().ForEach(rt => { var set = DB.Character.Single <CharacterTemplateSet>(cts => cts.Id == rt.SetId); var templateSet = new AvailableCharacterTemplateSet { TemplateSetID = (uint)set.Id, Name = set.Name, Description = set.Description, }; set.CharacterTemplateClasses.ToList().ForEach(ctc => { templateSet.Classes.Add(new AvailableCharacterTemplateClass { ClassID = ctc.ClassId, FactionGroup = ctc.FactionGroup }); }); charTemplates.Add(templateSet); }); } } return(charTemplates); }
public async Task <IActionResult> AddAccount([FromForm] AddLoLAccountVM viewModel) { //Check if data was returned correctly if ((String.IsNullOrEmpty(viewModel.UserName)) || (String.IsNullOrEmpty(viewModel.Region))) { return(BadRequest()); } //Get the logged in User var user = await _userManager.GetUserAsync(User); try { //download stuff var loLDTO = await lolApi.GetAccount(viewModel.Region, viewModel.UserName); var LoLStatsDTO = await lolApi.GetStats(viewModel.Region, loLDTO.id); var matchIds = await lolApi.GetMatcheList(loLDTO.accountId); var gameIds = matchIds.matches.Select(g => g.gameId); var matches = await lolApi.GetMatches(gameIds); string KDA = lolApi.CalculateKDA(matches, loLDTO.accountId); //get account from db user.GameAccounts = (ICollection <GameAccount>) await _unitOfWork.GameAccounts.GetAll(gameAccount => gameAccount.UserId == user.Id, includeProperties : "Statistics"); var lolAccount = user.GameAccounts.FirstOrDefault(gameAccount => gameAccount.GameId == leagueId); if (lolAccount == null) { lolAccount = new GameAccount(viewModel.UserName, loLDTO.id, loLDTO.accountId, viewModel.Region); lolAccount.UserId = user.Id; lolAccount.GameId = leagueId; lolAccount.Statistics = new GameAccountStats(); if (LoLStatsDTO.Count != 0) { lolAccount.Statistics.UpdateStats(LoLStatsDTO[0].tier + " " + LoLStatsDTO[0].rank, LoLStatsDTO[0].wins, LoLStatsDTO[0].losses, KDA); } user.GameAccounts.Add(lolAccount); } else { lolAccount.UpdateAccount(viewModel.UserName, loLDTO.id, loLDTO.accountId, viewModel.Region); if (LoLStatsDTO.Count != 0) { lolAccount.Statistics.UpdateStats(LoLStatsDTO[0].tier + " " + LoLStatsDTO[0].rank, LoLStatsDTO[0].wins, LoLStatsDTO[0].losses, KDA); } } await _unitOfWork.Save(); return(Ok()); } catch (Exception ex) { return(BadRequest()); } }
public GameAccount UpdateStats(GameAccount account) { return(Context.UpdateStats(account)); }
/// <summary> /// Buys a shop item from the user account in the specified count. /// </summary> /// <param name="account">An account data to use.</param> /// <param name="item">A shop item to buy.</param> /// <param name="character">A character name to receive a shop item in-game.</param> /// <param name="count">An item count to buy.</param> /// <exception cref="System.ArgumentNullException"/> public void BuyItemAsync(GameAccount account, ShopItem item, string character, int count) { if (string.IsNullOrEmpty(character)) throw new ArgumentNullException("character"); var request = string.Format(Resources.NavigationServerBuyUriFormat, account.Name, account.GetPasswordHashString(), item.Identifier, count, character); try { client.DownloadStringAsync(new Uri(request)); } catch (WebException) { OnItemBought(ItemBoughtResult.Failure | ItemBoughtResult.ServiceUnavailable); } }
private void SetFields(string name, int hashCode, ToonClass @class, ToonFlags flags, byte level, GameAccount owner, uint timePlayed) { //this.BnetEntityID = bnet.protocol.EntityId.CreateBuilder().SetHigh((ulong)EntityIdHelper.HighIdType.ToonId + this.PersistentID).SetLow(this.PersistentID).Build(); this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build(); this.Name = name; this.HashCode = hashCode; this.Class = @class; this.Flags = flags; this.Level = level; this.GameAccount = owner; this.TimePlayed = timePlayed; var visualItems = new[] { D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1) D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2) D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs }; this.Equipment = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build(); }
private void SetFields(string name, int hashCode, int @class, ToonFlags flags, byte level, GameAccount owner, uint timePlayed, int goldAmount, Dictionary <uint, Item> items) { this.D3EntityID = D3.OnlineService.EntityId.CreateBuilder().SetIdHigh((ulong)EntityIdHelper.HighIdType.ToonId).SetIdLow(this.PersistentID).Build(); this.HeroNameField.Value = name; this.HeroClassField.Value = @class; this.HeroFlagsField.Value = (uint)flags; this.HeroLevelField.Value = level; this.GameAccount = owner; this.HashCode = hashCode; this.TimePlayed = timePlayed; this.GoldAmount = goldAmount; this.Field6.Value = 99999999999999999; this.Field7.Value = 99999999999999999; this.Items = items; var visualItems = new[] { D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Head D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Chest D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Feet D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Hands D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (1) D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Weapon (2) D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Shoulders D3.Hero.VisualItem.CreateBuilder().SetEffectLevel(0).Build(), // Legs }; this.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build(); }
public Toon(string name, int hashCode, int classHash, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3"))) { this.HeroClassField.transformDelegate += HeroClassFieldTransform; this.SetFields(name, hashCode, Toon.GetClassFromHash(classHash), flags, level, account, 0, 0, new Dictionary <uint, Item>()); }
public bool HasMember(GameAccount gameAccount) //check if a given game account is already channels member { return(this.Members.Any(pair => pair.Value.Identity.AccountId.Low == gameAccount.BnetEntityId.Low)); }
private void SaveUserInput() { if (comboBoxName.SelectedIndex < 0 && !string.IsNullOrEmpty(comboBoxName.Text) && !string.IsNullOrEmpty(textBoxPassword.Text)) { var name = comboBoxName.Text.Trim(); var password = textBoxPassword.Text.Trim(); var account = new GameAccount(name, password); App.CurrentContext.AccountManager.AddAccount(account); } }
public Toon(string name, int hashCode, int classId, ToonFlags flags, byte level, GameAccount account) // Toon with **newly generated** persistent ID : base(StringHashHelper.HashIdentity(name + "#" + hashCode.ToString("D3"))) { this.SetFields(name, hashCode, GetClassByID(classId), flags, level, account, 0); }
public static Toon GetDeletedToon(GameAccount account) { var query = DBSessions.AccountSession.Query <DBToon>().Where(dbt => dbt.DBGameAccount.Id == account.PersistentID && dbt.Deleted); return(query.Any() ? GetToonByLowID(query.First().Id) : null); }
/// <summary> /// Adds a new account data. /// </summary> /// <param name="data"> /// A <see cref="Rift.Data.GameAccount"/> data to add. /// </param> public void AddAccount(GameAccount data) { if (data.Equals(GameAccount.Empty)) return; accounts.Add(data); current = accounts.Count - 1; }
/// <summary> /// Retrieves a count of points for the specified account. /// </summary> /// <param name="account">An account data.</param> public void UpdatePointsAsync(GameAccount account) { var request = string.Format(Resources.NavigationServerPointsFormat, account.Name, account.GetPasswordHashString()); try { updateClient.DownloadStringAsync(new Uri(request)); } catch (WebException) { OnPointsReceived(-1); } }
public static List <Toon> GetToonsForGameAccount(GameAccount account) { var toons = account.DBGameAccount.DBToons.Select(dbt => GetToonByLowID(dbt.Id)); return(toons.ToList()); }
public static Toon CreateNewToon(string name, int classId, bool isHardcore, ToonFlags flags, byte level, GameAccount gameAccount) { #region LevelConfs Server.conf if (Mooege.Net.GS.Config.Instance.LevelStarter < 1) { level = 1; } else if (Mooege.Net.GS.Config.Instance.LevelStarter > Mooege.Net.GS.Config.Instance.MaxLevel) { level = (byte)Mooege.Net.GS.Config.Instance.MaxLevel; } else { level = (byte)Mooege.Net.GS.Config.Instance.LevelStarter; } #endregion // Create Character var dbGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID); var newDBToon = new DBToon { Class = @Toon.GetClassByID(classId), Name = name, /*HashCode = GetUnusedHashCodeForToonName(name),*/ Hardcore = isHardcore, Flags = flags, Level = level, DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID) }; dbGameAccount.DBToons.Add(newDBToon); //Стандартные Предметы #region Стандартные предметы Barbarian if (newDBToon.Class == ToonClass.Barbarian) { #region Топор //Структура сущности предмета DBItemInstance BARAxeInstance = new DBItemInstance { GbId = 1661412390, // Affixes = "", Attributes = "295,:1|" + "1.401298E-45;91,:0|" + "0;308,:1|" + "1.401298E-45;312,:1371713298|" + "1.045201E+11;157,:1067869798|" + "1.3;159,:1067869798|" + "1.3;161,:1067869798|" + "1.3;412,:1067869798|" + "1.3;414,:1067869798|" + "1.3;420,:1067869798|" + "1.3;164,:1067869798|" + "1.3;326,:0|" + "0;327,:0|" + "0;328,:0|" + "0;329,:0|" + "0;413,:0|" + "0;415,:0|" + "0;183,0:1073741824|" + "2;177,0:1077936128|" + "3;184,0:1073741824|" + "2;178,0:1077936128|" + "3;179,:1077936128|" + "3;185,:1073741824|" + "2;416,0:1073741824|" + "2;421,0:1073741824|" + "2;173,0:1073741824|" + "2;172,0:1073741824|" + "2;172,:0|" + "0;417,0:0|" + "0;175,0:1065353216|" + "1;176,0:1065353216|" + "1;180,0:1065353216|" + "1;181,:1065353216|" + "1;418,0:1065353216|" + "1;422,0:1065353216|" + "1;169,0:1065353216|" + "1;419,0:0|" + "0;89,30592:1|" + "1.401298E-45;90,30592:1|" + "1.401298E-45;297,:1|" + "1.401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(BARAxeInstance); // Структура предмета DBInventory BARAxeFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = BARAxeInstance, // Использовать свеже созданную сущность предмета Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARAxeFirstWeapon); #endregion } #endregion #region Стандартные предметы Demon Hunter if (newDBToon.Class == ToonClass.DemonHunter) { #region Арбалет //Структура сущности предмета DBItemInstance DHFWInstance = new DBItemInstance { GbId = -1647832978, // Affixes = "", Attributes = "295,:0 |" + //Item Quality Level " 2,802597E-45; 91,:0 |" + //TeamID " 0; 308,:1 |" + // ItemStackQuantityLo " 1,401298E-45; 312,:1381516818 |" + // Seed " 1,767016E+35; 157,:1070386381 |" + // Attacks_Per_Second_Item " 1,6; 159,:1070386381 |" + // Attacks_Per_Second_Item_Subtotal " 1,6; 161,:1070386381 |" + // Attacks_Per_Second_Item_Total " 1,6; 412,:1070386381 |" + // Attacks_Per_Second_Item_MainHand " 1,6; 414,:1070386381 |" + // Attacks_Per_Second_Item_Total_MainHand " 1,6; 420,:1070386381 |" + // Attacks_Per_Second_Item_CurrentHand " 1,6; 164,:1070386381 |" + // Attacks_Per_Second_Total " 1; 326,:0 |" + // InitialCooldownMinTotal " 0; 327,:0 |" + // InitialCooldownDeltaTotal " 0; 328,:0 |" + // Attack_Cooldown_Min_Total " 0; 329,:0 |" + // Attack_Cooldown_Delta_Total " 0; 413,:0 |" + // Attacks_Per_Second_Item_OffHand " 0; 415,:0 |" + // Attacks_Per_Second_Item_Total_OffHand " 0;183,0:1073741824 |" + // Damage_Weapon_Min " 2;177,0:1096810496 |" + // Damage_Weapon_Max " 14;184,0:1073741824 |" + // Damage_Weapon_Min_Total " 2;178,0:1096810496 |" + // Damage_Weapon_Max_Total " 14;179,:1096810496 |" + // Damage_Weapon_Max_Total_All " 14;185,:1073741824 |" + // Damage_Weapon_Min_Total_All " 2;416,0:1073741824 |" + // Damage_Weapon_Min_Total_MainHand " 2;421,0:1073741824 |" + // Damage_Weapon_Min_Total_CurrentHand " 2;173,0:1073741824 |" + // Damage_Min_Subtotal " 2;172,0:1073741824 |" + // Damage_Min_Total " 2;172,:0 |" + // Damage_Min_Total " 0;417,0:0 |" + // Damage_Weapon_Min_Total_OffHand " 0;175,0:1094713344 |" + // Damage_Weapon_Delta " 12;176,0:1094713344 |" + // Damage_Weapon_Delta_SubTotal " 12;180,0:1094713344 |" + // Damage_Weapon_Delta_Total " 12;181,:1094713344 |" + // Damage_Weapon_Delta_Total_All " 12;418,0:1094713344 |" + // Damage_Weapon_Delta_Total_MainHand " 12;422,0:1094713344 |" + // Damage_Weapon_Delta_Total_CurrentHand " 12;169,0:1094713344 |" + // Damage_Delta_Total " 12;419,0:0|" + // Damage_Weapon_Delta_Total_OffHand " 0; 89,30599:1 |" + // Skill " 1,401298E-45; 90,30599:1 |" + // Skill_Total " 1,401298E-45; 297,:1 |" + // Item_Equipped " 1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(DHFWInstance); // Структура предмета DBInventory DHFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = DHFWInstance, // Использовать свеже созданную сущность предмета DBToon = newDBToon, // Выдать созданному персонажу Hardcore = isHardcore, // Хардкорный или нет персонаж EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon); #endregion } #endregion #region Начало прогресса. 1 Акт, Пока не взятый квест. DBProgressToon StartProgress = new DBProgressToon { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBToon = newDBToon, // Выдать созданному персонажу LastQuest = 0, // Последний выполненный квест StepOfQuest = 0, //Текущий шаг квеста ActiveAct = 1, // Активный акт ActiveQuest = -1 // Активный квест }; DBSessions.AccountSession.SaveOrUpdate(StartProgress); DBPortalOfToon NullPortal = new DBPortalOfToon { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), DBToon = newDBToon, X = 0, Y = 0, Z = 0, WorldDest = 0 }; DBSessions.AccountSession.SaveOrUpdate(NullPortal); #endregion DBSessions.AccountSession.Flush(); DBSessions.AccountSession.Refresh(dbGameAccount); return(GetToonByLowID(newDBToon.Id)); }
public static Toon CreateNewToon(string name, int classId, ToonFlags flags, byte level, GameAccount gameAccount) { #region LevelConfs Server.conf if (NullD.Net.GS.Config.Instance.LevelStarter < 1) { level = 1; } else if (NullD.Net.GS.Config.Instance.LevelStarter > NullD.Net.GS.Config.Instance.MaxLevel) { level = (byte)NullD.Net.GS.Config.Instance.MaxLevel; } else { level = (byte)NullD.Net.GS.Config.Instance.LevelStarter; } #endregion var dbGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID); var newDBToon = new DBToon { Class = @Toon.GetClassByID(classId), Name = name, /*HashCode = GetUnusedHashCodeForToonName(name),*/ Flags = flags, Level = level, DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID) }; dbGameAccount.DBToons.Add(newDBToon); #region Стандартные предметы 1.0.4 //* #region Стандартные предметы Barbarian if (newDBToon.Class == ToonClass.Barbarian) { #region Топор //Структура сущности предмета DBItemInstance BARAxeInstance = new DBItemInstance { GbId = 1661412390, // Affixes = "", Attributes = "312,:4|5,605194E-45;101,:0|0;329,:1|1,401298E-45;196,0:1077936128|3;190,0:1082130432|4;197,0:1077936128|3;191,0:1082130432|4;192,:1082130432|4;198,:1077936128|3;201,:1080033280|3,5;200,0:1080033280|3,5;434,0:1077936128|3;439,0:1077936128|3;186,0:1077936128|3;182,0:1077936128|3;184,:1077936128|3;185,:1080033280|3,5;435,0:0|0;199,0:1080033280|3,5;188,0:1065353216|1;189,0:1065353216|1;193,0:1065353216|1;194,:1065353216|1;436,0:1065353216|1;440,0:1065353216|1;179,0:1065353216|1;183,:1065353216|1;437,0:0|0;326,:1|1,401298E-45;330,:851683752|2,277814E-08;167,:1067869798|1,3;169,:1067869798|1,3;171,:1067869798|1,3;430,:1067869798|1,3;432,:1067869798|1,3;438,:1067869798|1,3;174,:1067869798|1,3;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(BARAxeInstance); // Структура предмета DBInventory BARAxeFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = BARAxeInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARAxeFirstWeapon); #endregion #region Нагрудник //Структура сущности предмета DBItemInstance ChestInstance = new DBItemInstance { GbId = 1612257704, // Affixes = "", Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(ChestInstance); // Структура предмета DBInventory BARChest = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = ChestInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 2, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARChest); #endregion #region Штаны //Структура сущности предмета DBItemInstance PantsInstance = new DBItemInstance { GbId = -1512732138, // Affixes = "", Attributes = "312,:0|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(PantsInstance); // Структура предмета DBInventory BARPants = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = PantsInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 9, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARPants); #endregion } #endregion #region Стандартные предметы DemonHunter else if (newDBToon.Class == ToonClass.DemonHunter) { #region Одноручный арбалет //Структура сущности предмета DBItemInstance DHbowInstance = new DBItemInstance { GbId = -2091504072, // Affixes = "", Attributes = "312,:4|5,605194E-45;101,:0|0;329,:1|1,401298E-45;196,0:1077936128|3;190,0:1082130432|4;197,0:1077936128|3;191,0:1082130432|4;192,:1082130432|4;198,:1077936128|3;201,:1080033280|3,5;200,0:1080033280|3,5;434,0:1077936128|3;439,0:1077936128|3;186,0:1077936128|3;182,0:1077936128|3;184,:1077936128|3;185,:1080033280|3,5;435,0:0|0;199,0:1080033280|3,5;188,0:1065353216|1;189,0:1065353216|1;193,0:1065353216|1;194,:1065353216|1;436,0:1065353216|1;440,0:1065353216|1;179,0:1065353216|1;183,:1065353216|1;437,0:0|0;326,:1|1,401298E-45;330,:851683752|2,277814E-08;167,:1067869798|1,3;169,:1067869798|1,3;171,:1067869798|1,3;430,:1067869798|1,3;432,:1067869798|1,3;438,:1067869798|1,3;174,:1067869798|1,3;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(DHbowInstance); // Структура предмета DBInventory DHFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = DHbowInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon); #endregion #region Нагрудник //Структура сущности предмета DBItemInstance ChestInstance = new DBItemInstance { GbId = 1612257704, // Affixes = "", Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(ChestInstance); // Структура предмета DBInventory BARChest = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = ChestInstance, // Использовать свеже созданную сущность предмета // Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 2, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARChest); #endregion #region Штаны //Структура сущности предмета DBItemInstance PantsInstance = new DBItemInstance { GbId = -1512732138, // Affixes = "", Attributes = "312,:0|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(PantsInstance); // Структура предмета DBInventory BARPants = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = PantsInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 9, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARPants); #endregion } #endregion #region Стандартные предметы Monk else if (newDBToon.Class == ToonClass.Monk) { #region Кастет 1 //Структура сущности предмета DBItemInstance DHbowInstance = new DBItemInstance { GbId = 1236604967, // Affixes = "", Attributes = "312,:2|2,802597E-45;101,:0|0;329,:1|1,401298E-45;196,0:1065353216|1;190,0:1077936128|3;197,0:1065353216|1;191,0:1077936128|3;192,:1077936128|3;198,:1065353216|1;201,:1073741824|2;200,0:1073741824|2;434,0:1065353216|1;439,0:1065353216|1;186,0:1065353216|1;182,0:1065353216|1;184,:1065353216|1;185,:1073741824|2;435,0:0|0;199,0:1073741824|2;188,0:1073741824|2;189,0:1073741824|2;193,0:1073741824|2;194,:1073741824|2;436,0:1073741824|2;440,0:1073741824|2;179,0:1073741824|2;183,:1073741824|2;437,0:0|0;326,:1|1,401298E-45;330,:750642467|5,397142E-12;167,:1067030938|1,2;169,:1067030938|1,2;171,:1067030938|1,2;430,:1067030938|1,2;432,:1067030938|1,2;438,:1067030938|1,2;174,:1067030938|1,2;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(DHbowInstance); // Структура предмета DBInventory DHFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = DHbowInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon); #endregion #region Кастет 2 //Структура сущности предмета DBItemInstance DHbowInstance2 = new DBItemInstance { GbId = 1236604967, // Affixes = "", Attributes = "312,:2|2,802597E-45;101,:0|0;329,:1|1,401298E-45;196,0:1065353216|1;190,0:1077936128|3;197,0:1065353216|1;191,0:1077936128|3;192,:1077936128|3;198,:1065353216|1;201,:1073741824|2;200,0:1073741824|2;434,0:1065353216|1;439,0:1065353216|1;186,0:1065353216|1;182,0:1065353216|1;184,:1065353216|1;185,:1073741824|2;435,0:0|0;199,0:1073741824|2;188,0:1073741824|2;189,0:1073741824|2;193,0:1073741824|2;194,:1073741824|2;436,0:1073741824|2;440,0:1073741824|2;179,0:1073741824|2;183,:1073741824|2;437,0:0|0;326,:1|1,401298E-45;330,:750642467|5,397142E-12;167,:1067030938|1,2;169,:1067030938|1,2;171,:1067030938|1,2;430,:1067030938|1,2;432,:1067030938|1,2;438,:1067030938|1,2;174,:1067030938|1,2;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(DHbowInstance2); // Структура предмета DBInventory DHFirstWeapon2 = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = DHbowInstance2, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 3, // Вооружить во вторую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon2); #endregion #region Нагрудник //Структура сущности предмета DBItemInstance ChestInstance = new DBItemInstance { GbId = 1612257704, // Affixes = "", Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(ChestInstance); // Структура предмета DBInventory BARChest = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = ChestInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 2, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARChest); #endregion #region Штаны //Структура сущности предмета DBItemInstance PantsInstance = new DBItemInstance { GbId = -1512732138, // Affixes = "", Attributes = "312,:0|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(PantsInstance); // Структура предмета DBInventory BARPants = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = PantsInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 9, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARPants); #endregion } #endregion #region Стандартные предметы Witch Doctor else if (newDBToon.Class == ToonClass.WitchDoctor) { #region Кинжал //Структура сущности предмета DBItemInstance DHbowInstance = new DBItemInstance { GbId = -1303415302, // Affixes = "", Attributes = "312,:2|2,802597E-45;101,:0|0;329,:1|1,401298E-45;196,0:1073741824|2;190,0:1088421888|7;197,0:1073741824|2;191,0:1088421888|7;192,:1088421888|7;198,:1073741824|2;201,:1083179008|4,5;200,0:1083179008|4,5;434,0:1073741824|2;439,0:1073741824|2;186,0:1073741824|2;182,0:1073741824|2;184,:1073741824|2;185,:1083179008|4,5;435,0:0|0;199,0:1083179008|4,5;188,0:1084227584|5;189,0:1084227584|5;193,0:1084227584|5;194,:1084227584|5;436,0:1084227584|5;440,0:1084227584|5;179,0:1084227584|5;183,:1084227584|5;437,0:0|0;326,:1|1,401298E-45;330,:432328575|2,034973E-23;167,:1069547520|1,5;169,:1069547520|1,5;171,:1069547520|1,5;430,:1069547520|1,5;432,:1069547520|1,5;438,:1069547520|1,5;174,:1069547520|1,5;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30592:1|1,401298E-45;100,30592:1|1,401298E-45;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(DHbowInstance); // Структура предмета DBInventory DHFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = DHbowInstance, // Использовать свеже созданную сущность предмета // Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon); #endregion #region Нагрудник //Структура сущности предмета DBItemInstance ChestInstance = new DBItemInstance { GbId = 1612257704, // Affixes = "", Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(ChestInstance); // Структура предмета DBInventory BARChest = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = ChestInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 2, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARChest); #endregion #region Штаны //Структура сущности предмета DBItemInstance PantsInstance = new DBItemInstance { GbId = -1512732138, // Affixes = "", Attributes = "312,:0|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(PantsInstance); // Структура предмета DBInventory BARPants = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = PantsInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 9, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARPants); #endregion } #endregion #region Стандартные предметы Wizard else if (newDBToon.Class == ToonClass.Wizard) { #region Кинжал //Структура сущности предмета DBItemInstance DHbowInstance = new DBItemInstance { GbId = 88665049, // Affixes = "", Attributes = "312,:5|7,006492E-45;101,:0|0;329,:1|1,401298E-45;196,0:1077936128|3;190,0:1082130432|4;197,0:1077936128|3;191,0:1082130432|4;192,:1082130432|4;198,:1077936128|3;201,:1080033280|3,5;200,0:1080033280|3,5;434,0:1077936128|3;439,0:1077936128|3;186,0:1077936128|3;182,0:1077936128|3;184,:1077936128|3;185,:1080033280|3,5;435,0:0|0;199,0:1080033280|3,5;188,0:1065353216|1;189,0:1065353216|1;193,0:1065353216|1;194,:1065353216|1;436,0:1065353216|1;440,0:1065353216|1;179,0:1065353216|1;183,:1065353216|1;437,0:0|0;326,:1|1,401298E-45;330,:2081659420|3,065573E+36;167,:1067030938|1,2;169,:1067030938|1,2;171,:1067030938|1,2;430,:1067030938|1,2;432,:1067030938|1,2;438,:1067030938|1,2;174,:1067030938|1,2;344,:0|0;345,:0|0;346,:0|0;347,:0|0;431,:0|0;433,:0|0;99,30601:1|1,401298E-45;100,30601:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(DHbowInstance); // Структура предмета DBInventory DHFirstWeapon = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = DHbowInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 4, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(DHFirstWeapon); #endregion #region Нагрудник //Структура сущности предмета DBItemInstance ChestInstance = new DBItemInstance { GbId = 1612257704, // Affixes = "", Attributes = "312,:1|1,401298E-45;101,:0|0;329,:1|1,401298E-45;48,:1073741824|2;51,:1073741824|2;52,:1073741824|2;53,:1073741824|2;326,:1|1,401298E-45;330,:1425612098|8,559502E+12" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(ChestInstance); // Структура предмета DBInventory BARChest = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = ChestInstance, // Использовать свеже созданную сущность предмета //Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 2, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARChest); #endregion #region Штаны //Структура сущности предмета DBItemInstance PantsInstance = new DBItemInstance { GbId = -1512732138, // Affixes = "", Attributes = "312,:0|0;101,:0|0;329,:1|1,401298E-45;48,:1084227584|5;51,:1084227584|5;52,:1084227584|5;53,:1084227584|5;326,:1|1,401298E-45;330,:56548088|6,54913E-37;315,:1|1,401298E-45" }; // Добавляем сущность в базу DBSessions.AccountSession.SaveOrUpdate(PantsInstance); // Структура предмета DBInventory BARPants = new DBInventory { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBItemInstance = PantsInstance, // Использовать свеже созданную сущность предмета // Hardcore = isHardcore, // Хардкорный или нет персонаж DBToon = newDBToon, // Выдать созданному персонажу EquipmentSlot = 9, // Вооружить в первую руку LocationX = 0, LocationY = 0 }; // Добавляем предмет в базу DBSessions.AccountSession.SaveOrUpdate(BARPants); #endregion } #endregion //*/ #endregion #region Начало прогресса. 1 Акт, Пока не взятый квест. DBProgressToon StartProgress = new DBProgressToon { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), // Привязка к используемому аккаунту DBToon = newDBToon, // Выдать созданному персонажу MaximumQuest = 87700, // Максимальный квест MaximumAct = 0, // Максимальный квест StepOfQuest = 0, //Текущий шаг квеста ActiveAct = 0, // Активный акт ActiveQuest = -1, // Активный квест StepIDofQuest = 1, LoreCollected = "", StatusOfWings = 0, LastCheckPoint = -1, LastWorld = -1, WaypointStatus = 1, WaypointStatus2 = 1, WaypointStatus3 = 1, WaypointStatus4 = 1 }; DBSessions.AccountSession.SaveOrUpdate(StartProgress); DBPortalOfToon NullPortal = new DBPortalOfToon { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), DBToon = newDBToon, X = 0, Y = 0, Z = 0, WorldDest = 0 }; DBSessions.AccountSession.SaveOrUpdate(NullPortal); DBArtisansOfToon BaseArtisans = new DBArtisansOfToon { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), DBToon = newDBToon, Blacksmith = 1, Jeweler = 1, Mystic = 1, }; DBSessions.AccountSession.SaveOrUpdate(BaseArtisans); DBHirelingsOfToon BaseInfoOfHirelings = new DBHirelingsOfToon { DBGameAccount = DBSessions.AccountSession.Get <DBGameAccount>(gameAccount.PersistentID), DBToon = newDBToon, Level_Templar = 1, Level_Scoundrel = 1, Level_Enchantress = 1, Experience_Templar = 1200, Experience_Scoundrel = 1200, Experience_Enchantress = 1200, Templar_Skill1 = -1, Templar_Skill2 = -1, Templar_Skill3 = -1, Templar_Skill4 = -1, Scoundrel_Skill1 = -1, Scoundrel_Skill2 = -1, Scoundrel_Skill3 = -1, Scoundrel_Skill4 = -1, Enchantress_Skill1 = -1, Enchantress_Skill2 = -1, Enchantress_Skill3 = -1, Enchantress_Skill4 = -1 }; DBSessions.AccountSession.SaveOrUpdate(BaseInfoOfHirelings); #endregion DBSessions.AccountSession.SaveOrUpdate(dbGameAccount); DBSessions.AccountSession.Flush(); DBSessions.AccountSession.Refresh(dbGameAccount); return(GetToonByLowID(newDBToon.Id)); }