From b962f0a2b371a6056f09bc23d89d6e2482446e59 Mon Sep 17 00:00:00 2001 From: milimoe Date: Sun, 27 Jul 2025 23:44:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=95=86=E5=BA=97=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaModules/Regions/OshimaRegion.cs | 6 ++++++ OshimaModules/Regions/Players.cs | 2 +- OshimaServers/Service/FunGameService.cs | 20 ++++++++++++++----- OshimaWebAPI/Controllers/FunGameController.cs | 6 +++--- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/OshimaModules/Regions/OshimaRegion.cs b/OshimaModules/Regions/OshimaRegion.cs index 2060941..2cce642 100644 --- a/OshimaModules/Regions/OshimaRegion.cs +++ b/OshimaModules/Regions/OshimaRegion.cs @@ -27,6 +27,12 @@ namespace Oshima.FunGame.OshimaModules.Regions return null; } + + public virtual string GetCurrencyInfo(PluginConfig pc, User user, string storeName) + { + return ""; + } + public virtual void SaveGlobalStore(Store store, string storeName) { diff --git a/OshimaModules/Regions/Players.cs b/OshimaModules/Regions/Players.cs index b221867..f75d4fd 100644 --- a/OshimaModules/Regions/Players.cs +++ b/OshimaModules/Regions/Players.cs @@ -142,7 +142,7 @@ namespace Oshima.FunGame.OshimaModules.Regions foreach (OshimaRegion region in items.Keys) { store.AddItem(items[region], -1); - store.SetPrice(i, "锻造积分", 3 * ((int)region.Difficulty + 1)); + store.SetPrice(i, "锻造积分", 2 * ((int)region.Difficulty + 1)); i++; } return store; diff --git a/OshimaServers/Service/FunGameService.cs b/OshimaServers/Service/FunGameService.cs index 99b955c..b0eb451 100644 --- a/OshimaServers/Service/FunGameService.cs +++ b/OshimaServers/Service/FunGameService.cs @@ -2071,12 +2071,12 @@ namespace Oshima.FunGame.OshimaServers.Service } stores.Add("daily", daily); SetLastStore(user, true, "", ""); - return daily.ToString(user); + return daily.ToString(user) + $"\r\n现有{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.##}\r\n现有{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.##}"; } else { SetLastStore(user, true, "", ""); - return daily.ToString(user); + return daily.ToString(user) + $"\r\n现有{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.##}\r\n现有{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.##}"; } } @@ -2732,6 +2732,7 @@ namespace Oshima.FunGame.OshimaServers.Service Item? itemDrop = region.Items.Where(i => qualityType == QualityType.Blue ? (int)i.QualityType <= (int)qualityType : (int)i.QualityType == (int)qualityType).OrderBy(o => Random.Shared.Next()).FirstOrDefault(); if (itemDrop != null) { + model.Awards[itemDrop.Name] = 1; string itemquality = ItemSet.GetQualityTypeName(itemDrop.QualityType); string itemtype = ItemSet.GetItemTypeName(itemDrop.ItemType) + (itemDrop.ItemType == ItemType.Weapon && itemDrop.WeaponType != WeaponType.None ? "-" + ItemSet.GetWeaponTypeName(itemDrop.WeaponType) : ""); if (itemtype != "") itemtype = $"|{itemtype}"; @@ -3997,7 +3998,7 @@ namespace Oshima.FunGame.OshimaServers.Service } } - public static string CheckRegionStore(EntityModuleConfig stores, User user, string storeRegion, string storeName, out bool exist) + public static string CheckRegionStore(EntityModuleConfig stores, PluginConfig pc, User user, string storeRegion, string storeName, out bool exist) { string msg = ""; exist = false; @@ -4008,6 +4009,15 @@ namespace Oshima.FunGame.OshimaServers.Service Store? store = value.VisitStore(stores, user, storeName); exist = store != null; msg = store?.ToString(user) ?? ""; + string currencyInfo = value.GetCurrencyInfo(pc, user, storeName); + if (exist && msg != "") + { + if (currencyInfo.Trim() == "") + { + currencyInfo = $"现有{General.GameplayEquilibriumConstant.InGameCurrency}:{user.Inventory.Credits:0.##}\r\n现有{General.GameplayEquilibriumConstant.InGameMaterial}:{user.Inventory.Materials:0.##}"; + } + msg += "\r\n" + currencyInfo; + } } if (!exist) @@ -4371,9 +4381,9 @@ namespace Oshima.FunGame.OshimaServers.Service int count1 = 30; int count2 = 30; DateTime d1 = DateTime.Today.AddHours(11); - DateTime d2 = DateTime.Today.AddHours(13); + DateTime d2 = DateTime.Today.AddHours(13).AddMinutes(59); DateTime d3 = DateTime.Today.AddHours(17); - DateTime d4 = DateTime.Today.AddHours(19); + DateTime d4 = DateTime.Today.AddHours(19).AddMinutes(59); if (now >= d1 && now <= d2 && (!pc.TryGetValue("lunch", out value) || (value is bool lunch && !lunch))) { int exploreTimes = FunGameConstant.MaxExploreTimes + count1; diff --git a/OshimaWebAPI/Controllers/FunGameController.cs b/OshimaWebAPI/Controllers/FunGameController.cs index 0b27e23..54ec6b0 100644 --- a/OshimaWebAPI/Controllers/FunGameController.cs +++ b/OshimaWebAPI/Controllers/FunGameController.cs @@ -7070,7 +7070,7 @@ namespace Oshima.FunGame.WebAPI.Controllers EntityModuleConfig stores = new("stores", userid.ToString()); stores.LoadConfig(); - string msg = FunGameService.CheckRegionStore(stores, user, storeRegion, storeName, out _); + string msg = FunGameService.CheckRegionStore(stores, pc, user, storeRegion, storeName, out _); FunGameService.SetUserConfigAndReleaseSemaphoreSlim(userid, pc, user); return msg; @@ -7119,7 +7119,7 @@ namespace Oshima.FunGame.WebAPI.Controllers } else { - string msg2 = FunGameService.CheckRegionStore(stores, user, storeRegion, storeName, out bool exist); + string msg2 = FunGameService.CheckRegionStore(stores, pc, user, storeRegion, storeName, out bool exist); msg = exist ? $"正在获取最新商店数据,请稍后查看。" : msg2; } @@ -7185,7 +7185,7 @@ namespace Oshima.FunGame.WebAPI.Controllers } else { - string msg2 = FunGameService.CheckRegionStore(stores, user, storeRegion, storeName, out bool exist); + string msg2 = FunGameService.CheckRegionStore(stores, pc, user, storeRegion, storeName, out bool exist); msg = exist ? $"正在获取最新商店数据,请稍后查看。" : msg2; }