/// <summary> /// c_skill packet /// </summary> /// <param name="cSkillPacket"></param> public void OpenBazaar(CSkillPacket cSkillPacket) { if (ServerManager.Instance.InShutdown || Session.Character == null || Session.Character.InExchangeOrTrade) { return; } SpinWait.SpinUntil(() => !ServerManager.Instance.InBazaarRefreshMode); if (Session.Character.Authority >= AuthorityType.Vip && Session.Character.StaticBonusList.All(s => s.StaticBonusType != StaticBonusType.BazaarMedalGold)) { Session.Character.StaticBonusList.Add(new StaticBonusDTO { CharacterId = Session.Character.CharacterId, DateEnd = DateTime.Now.AddDays(30), StaticBonusType = StaticBonusType.BazaarMedalGold }); } StaticBonusDTO medalBonus = Session.Character.StaticBonusList.FirstOrDefault(s => s.StaticBonusType == StaticBonusType.BazaarMedalGold || s.StaticBonusType == StaticBonusType.BazaarMedalSilver); if (medalBonus != null) { byte medal = medalBonus.StaticBonusType == StaticBonusType.BazaarMedalGold || (int)Session.Character.Authority >= 1 ? (byte)MedalType.Gold : (byte)MedalType.Silver; int time = (int)Session.Character.Authority >= 1 ? 720 : (int)(medalBonus.DateEnd - DateTime.Now).TotalHours; Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("NOTICE_BAZAAR"), 0)); Session.SendPacket($"wopen 32 {medal} {time}"); } else { Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("INFO_BAZAAR"))); } }
/// <summary> /// c_skill packet /// </summary> /// <param name="cSkillPacket"></param> public void OpenBazaar(CSkillPacket cSkillPacket) { SpinWait.SpinUntil(() => !ServerManager.Instance.InBazaarRefreshMode); StaticBonusDTO medal = Session.Character.StaticBonusList.FirstOrDefault(s => s.StaticBonusType == StaticBonusType.BazaarMedalGold || s.StaticBonusType == StaticBonusType.BazaarMedalSilver); if (medal != null) { byte Medal = medal.StaticBonusType == StaticBonusType.BazaarMedalGold ? (byte)MedalType.Gold : (byte)MedalType.Silver; int Time = (int)(medal.DateEnd - DateTime.Now).TotalHours; Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("NOTICE_BAZAAR"), 0)); Session.SendPacket($"wopen 32 {Medal} {Time}"); } else { Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("INFO_BAZAAR"))); } }