From 04f28099c69cb6072ac00f39dde7ad8a93980a47 Mon Sep 17 00:00:00 2001 From: milimoe Date: Tue, 8 Jul 2025 01:33:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaServers/Service/FunGameService.cs | 24 +++++++++++++++---- OshimaWebAPI/Controllers/FunGameController.cs | 18 ++++++++++---- OshimaWebAPI/Services/RainBOTService.cs | 12 ++++++---- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/OshimaServers/Service/FunGameService.cs b/OshimaServers/Service/FunGameService.cs index 59dbd2a..bc6acf5 100644 --- a/OshimaServers/Service/FunGameService.cs +++ b/OshimaServers/Service/FunGameService.cs @@ -676,18 +676,24 @@ namespace Oshima.FunGame.OshimaServers.Service if (is10) { + int count = 0; for (int i = 1; i <= 10; i++) { double dice = Random.Shared.NextDouble(); if (dice > 0.8) { - msgs.Add(GetDrawCardResult(reduce, reduceUnit, user, is10, i)); + count++; + msgs.Add(GetDrawCardResult(reduce, reduceUnit, user, is10, count)); } } - if (msgs.Count == 1) + if (msgs.Count <= 1) { msgs[0] = $"消耗 {reduce} {reduceUnit},你什么也没抽中……"; } + else + { + msgs.Insert(0, $"消耗 {reduce} {reduceUnit},恭喜你抽到了:"); + } } else { @@ -704,7 +710,7 @@ namespace Oshima.FunGame.OshimaServers.Service if (items != null && items.Any()) { - msgs.Insert(0, $"你的库存中拥有 {items.Count()} 张{reduceUnit},本次抽卡优先使用一张代替金币抽卡!"); + msgs.Insert(0, $"本次抽卡使用{reduceUnit}代替金币抽卡!你的库存剩余 {items.Count()} 张{reduceUnit}。"); } return msgs; @@ -2837,6 +2843,14 @@ namespace Oshima.FunGame.OshimaServers.Service break; } + if (item.Character != null) + { + result = false; + if (msg != "") msg += "\r\n"; + msg += $"物品 {itemIndex}. {item.Name}:此物品已被 {item.Character} 装备中,无法进行交易。"; + break; + } + if (!item.IsTradable) { result = false; @@ -3145,7 +3159,7 @@ namespace Oshima.FunGame.OshimaServers.Service { user.Inventory.Items.Remove(item); - Item newItem = item.Copy(); + Item newItem = item.Copy(copyGuid: true); newItem.User = user2; newItem.IsSellable = false; newItem.IsTradable = false; @@ -3160,7 +3174,7 @@ namespace Oshima.FunGame.OshimaServers.Service { user2.Inventory.Items.Remove(item); - Item newItem = item.Copy(); + Item newItem = item.Copy(copyGuid: true); newItem.User = user; newItem.IsSellable = false; newItem.IsTradable = false; diff --git a/OshimaWebAPI/Controllers/FunGameController.cs b/OshimaWebAPI/Controllers/FunGameController.cs index bdc44a1..00af05b 100644 --- a/OshimaWebAPI/Controllers/FunGameController.cs +++ b/OshimaWebAPI/Controllers/FunGameController.cs @@ -5958,10 +5958,10 @@ namespace Oshima.FunGame.WebAPI.Controllers } [HttpGet("getoffer")] - public string GetOffer([FromQuery] long? uid = null, [FromQuery] long? offerId = null, [FromQuery] int? page = null) + public string GetOffer([FromQuery] long? uid = null, [FromQuery] long? offerId = null, [FromQuery] int page = 1) { long userid = uid ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11)); - int showPage = page ?? 1; + int showPage = page; if (showPage <= 0) showPage = 1; try @@ -6010,11 +6010,21 @@ namespace Oshima.FunGame.WebAPI.Controllers builder.AppendLine($"发起方:{user1}"); builder.AppendLine($"接收方:{user2}"); builder.AppendLine($"状态:{CommonSet.GetOfferStatus(offer.Status)}"); + builder.AppendLine($"创建时间:{offer.CreateTime.ToString(General.GeneralDateTimeFormatChinese)}"); + if (offer.FinishTime.HasValue) builder.AppendLine($"完成时间:{offer.FinishTime.Value.ToString(General.GeneralDateTimeFormatChinese)}"); if (sql != null) { - offer.OfferorItems = [.. SQLService.GetOfferItemsByOfferIdAndUserId(sql, offer.Id, user1)]; - offer.OffereeItems = [.. SQLService.GetOfferItemsByOfferIdAndUserId(sql, offer.Id, user2)]; + if (offer.Status == OfferState.Completed) + { + offer.OffereeItems = [.. SQLService.GetOfferItemsByOfferIdAndUserId(sql, offer.Id, user1)]; + offer.OfferorItems = [.. SQLService.GetOfferItemsByOfferIdAndUserId(sql, offer.Id, user2)]; + } + else + { + offer.OfferorItems = [.. SQLService.GetOfferItemsByOfferIdAndUserId(sql, offer.Id, user1)]; + offer.OffereeItems = [.. SQLService.GetOfferItemsByOfferIdAndUserId(sql, offer.Id, user2)]; + } } List user1Item = []; diff --git a/OshimaWebAPI/Services/RainBOTService.cs b/OshimaWebAPI/Services/RainBOTService.cs index 6ff57c8..0c9704f 100644 --- a/OshimaWebAPI/Services/RainBOTService.cs +++ b/OshimaWebAPI/Services/RainBOTService.cs @@ -2255,10 +2255,14 @@ namespace Oshima.FunGame.WebAPI.Services if (int.TryParse(detail, out int page)) { msg = Controller.GetOffer(uid, null, page); - if (msg.Trim() != "") - { - await SendAsync(e, "我的报价", msg); - } + } + else + { + msg = Controller.GetOffer(uid); + } + if (msg.Trim() != "") + { + await SendAsync(e, "我的报价", msg); } return result; }