From 46d2cc27943d1fe8a1332a4b77015e104bffcb31 Mon Sep 17 00:00:00 2001 From: milimoe Date: Wed, 11 Dec 2024 01:34:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E7=BC=93=E5=AD=98=EF=BC=9B=E8=B0=83=E6=95=B4=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E7=89=A9=E5=93=81=E7=9A=84=E6=95=B0=E5=80=BC?= =?UTF-8?q?=EF=BC=9B=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=8C=89=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E5=86=B3=E6=96=97=E7=9A=84API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaCore/Controllers/FunGameController.cs | 32 ++++++++- OshimaCore/OshimaWebAPI.cs | 25 ++++++- OshimaCore/Utils/FunGameActionQueue.cs | 56 ++++++++------- OshimaCore/Utils/FunGameService.cs | 3 +- OshimaModules/Items/Accessory/鏀诲嚮涔嬬埅.cs | 27 +++++-- OshimaModules/Items/ItemID.cs | 5 +- OshimaModules/Modules/ItemModule.cs | 3 +- .../oshima-studios/oshima.fungame.items.json | 71 ++++++++++++++----- 8 files changed, 163 insertions(+), 59 deletions(-) diff --git a/OshimaCore/Controllers/FunGameController.cs b/OshimaCore/Controllers/FunGameController.cs index f55a83e..95cda94 100644 --- a/OshimaCore/Controllers/FunGameController.cs +++ b/OshimaCore/Controllers/FunGameController.cs @@ -313,6 +313,7 @@ namespace Oshima.Core.Controllers User user = Factory.GetUser(userid, username, DateTime.Now, DateTime.Now, userid + "@qq.com", username); user.Inventory.Credits = 5000000; user.Inventory.Characters.Add(new CustomCharacter(userid, username)); + FunGameService.UserIdAndUsername[userid] = username; pc.Add("user", user); pc.SaveConfig(); return NetworkUtility.JsonSerialize($"创建存档成功!你的用户名是【{username}】。"); @@ -338,6 +339,7 @@ namespace Oshima.Core.Controllers user.Inventory.Materials = 0; user.Inventory.Characters.Clear(); user.Inventory.Items.Clear(); + user.Inventory.Characters.Add(new CustomCharacter(userid, user.Username)); user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); @@ -380,6 +382,7 @@ namespace Oshima.Core.Controllers { user.Inventory.Name = user.Username + "的库存"; } + FunGameService.UserIdAndUsername[user.Id] = user.Username; user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); @@ -1101,12 +1104,13 @@ namespace Oshima.Core.Controllers } [HttpPost("showcharacterinfo")] - public string GetCharacterInfoFromInventory([FromQuery] long? qq = null, [FromQuery] int? seq = null) + public string GetCharacterInfoFromInventory([FromQuery] long? qq = null, [FromQuery] int? seq = null, [FromQuery] bool? simple = null) { try { long userid = qq ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11)); int cIndex = seq ?? 0; + bool isSimple = simple ?? false; PluginConfig pc = new("saved", userid.ToString()); pc.LoadConfig(); @@ -1118,6 +1122,10 @@ namespace Oshima.Core.Controllers if (cIndex > 0 && cIndex <= user.Inventory.Characters.Count) { Character character = user.Inventory.Characters.ToList()[cIndex - 1]; + if (isSimple) + { + return NetworkUtility.JsonSerialize($"这是你库存中序号为 {cIndex} 的角色简略信息:\r\n{character.GetSimpleInfo().Trim()}"); + } return NetworkUtility.JsonSerialize($"这是你库存中序号为 {cIndex} 的角色详细信息:\r\n{character.GetInfo().Trim()}"); } else @@ -1344,6 +1352,28 @@ namespace Oshima.Core.Controllers return [e.ToString()]; } } + + [HttpPost("fightcustom2")] + public List FightCustom2([FromQuery] long? qq = null, [FromQuery] string? name = null) + { + try + { + if (name != null) + { + long enemyid = FunGameService.UserIdAndUsername.Where(kv => kv.Value == name).Select(kv => kv.Key).FirstOrDefault(); + if (enemyid == 0) + { + return [$"找不到此名称对应的玩家!"]; + } + return FightCustom(qq, enemyid); + } + return [$"决斗发起失败!"]; + } + catch (Exception e) + { + return [e.ToString()]; + } + } [HttpGet("reload")] public string Relaod([FromQuery] long? master = null) diff --git a/OshimaCore/OshimaWebAPI.cs b/OshimaCore/OshimaWebAPI.cs index b5338c6..0a69a83 100644 --- a/OshimaCore/OshimaWebAPI.cs +++ b/OshimaCore/OshimaWebAPI.cs @@ -1,4 +1,6 @@ -锘縰sing Milimoe.FunGame.Core.Library.Common.Addon; +锘縰sing Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.Addon; using Oshima.Core.Configs; using Oshima.Core.Constant; using Oshima.Core.Utils; @@ -114,6 +116,27 @@ namespace Oshima.Core.WebAPI } } }); + Task taskCache = Task.Factory.StartNew(async () => + { + string directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/saved"; + if (Directory.Exists(directoryPath)) + { + string[] filePaths = Directory.GetFiles(directoryPath); + foreach (string filePath in filePaths) + { + string fileName = Path.GetFileNameWithoutExtension(filePath); + PluginConfig pc = new("saved", fileName); + pc.LoadConfig(); + if (pc.Count > 0) + { + User user = FunGameService.GetUser(pc); + FunGameService.UserIdAndUsername[user.Id] = user.Username; + } + } + Controller.WriteLine("璇诲彇 FunGame 瀛樻。缂撳瓨"); + } + await Task.Delay(3000 * 60 * 10); + }); } } } diff --git a/OshimaCore/Utils/FunGameActionQueue.cs b/OshimaCore/Utils/FunGameActionQueue.cs index 7e48b1b..9079d3a 100644 --- a/OshimaCore/Utils/FunGameActionQueue.cs +++ b/OshimaCore/Utils/FunGameActionQueue.cs @@ -566,13 +566,9 @@ namespace Oshima.Core.Utils DeathMatchRoundDetail = deathMatchRoundDetail; try { - if (IsRuning) return ["娓告垙姝e湪杩涜涓紝璇峰嬁閲嶅璇锋眰锛"]; - List result = []; Msg = ""; - IsRuning = true; - if (PrintOut) Console.WriteLine(); if (PrintOut) Console.WriteLine("Start!!!"); if (PrintOut) Console.WriteLine(); @@ -755,6 +751,12 @@ namespace Oshima.Core.Utils { roundMsg = actionQueue.LastRound.ToString().Trim() + $"\r\n{(isTeam ? $"姣斿垎锛歿string.Join(" / ", actionQueue.Teams.Values.Select(t => $"{t.Name}({t.Score})"))}锛屽嚮鏉鏉ヨ嚜{actionQueue.GetTeam(actionQueue.LastRound.Actor)}" : "")}\r\n"; } + roundMsg += "\r\n"; + foreach (Character character in characters) + { + roundMsg += $"[ {character} ] 鐢熷懡鍊硷細{character.HP}/{character.MaxHP}" + "\r\n"; + } + roundMsg = roundMsg.Trim(); Msg = ""; } @@ -781,7 +783,7 @@ namespace Oshima.Core.Utils // 璧涘悗缁熻 GetCharacterRating(actionQueue.CharacterStatistics, isTeam, actionQueue.EliminatedTeams); - int top = isWeb ? actionQueue.CharacterStatistics.Count : 4; // 鍥炴墽澶氬皯涓鑹茬殑缁熻淇℃伅 + int top = isWeb ? actionQueue.CharacterStatistics.Count : 2; // 鍥炴墽澶氬皯涓鑹茬殑缁熻淇℃伅 int count = 1; if (isWeb) { @@ -790,23 +792,26 @@ namespace Oshima.Core.Utils } else { - //WriteLine("=== 鏈満姣旇禌鏈浣宠鑹 ==="); - //Msg = $"=== 鏈満姣旇禌鏈浣宠鑹 ===\r\n"; - //// 缁熻鎶鏈緱鍒 - //Character? character = actionQueue.CharacterStatistics.OrderByDescending(d => d.Value.Rating).Select(d => d.Key).FirstOrDefault(); - //if (character != null) - //{ - // CharacterStatistics stats = actionQueue.CharacterStatistics[character]; - // stats.MVPs++; - // StringBuilder builder = new(); - // builder.AppendLine($"{(isWeb ? count + "." : (isTeam ? "[ " + actionQueue.GetTeamFromEliminated(character)?.Name + " ]" ?? " " : ""))}[ {character.ToStringWithLevel()} ]"); - // builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.##} / 鍑绘潃鏁帮細{stats.Kills} / 鍔╂敾鏁帮細{stats.Assists}{(actionQueue.MaxRespawnTimes != 0 ? " / 姝讳骸鏁帮細" + stats.Deaths : "")}"); - // builder.AppendLine($"瀛樻椿鏃堕暱锛歿stats.LiveTime} / 瀛樻椿鍥炲悎鏁帮細{stats.LiveRound} / 琛屽姩鍥炲悎鏁帮細{stats.ActionTurn}"); - // builder.AppendLine($"鎬昏浼ゅ锛歿stats.TotalDamage} / 鎬昏鐗╃悊浼ゅ锛歿stats.TotalPhysicalDamage} / 鎬昏榄旀硶浼ゅ锛歿stats.TotalMagicDamage}"); - // builder.AppendLine($"鎬绘壙鍙椾激瀹筹細{stats.TotalTakenDamage} / 鎬绘壙鍙楃墿鐞嗕激瀹筹細{stats.TotalTakenPhysicalDamage} / 鎬绘壙鍙楅瓟娉曚激瀹筹細{stats.TotalTakenMagicDamage}"); - // builder.Append($"姣忕浼ゅ锛歿stats.DamagePerSecond} / 姣忓洖鍚堜激瀹筹細{stats.DamagePerTurn}"); - // WriteLine(builder.ToString()); - //} + if (isTeam) + { + WriteLine("=== 鏈満姣旇禌鏈浣宠鑹 ==="); + Msg = $"=== 鏈満姣旇禌鏈浣宠鑹 ===\r\n"; + // 缁熻鎶鏈緱鍒 + Character? character = actionQueue.CharacterStatistics.OrderByDescending(d => d.Value.Rating).Select(d => d.Key).FirstOrDefault(); + if (character != null) + { + CharacterStatistics stats = actionQueue.CharacterStatistics[character]; + stats.MVPs++; + StringBuilder builder = new(); + builder.AppendLine($"{(isTeam ? "[ " + actionQueue.GetTeamFromEliminated(character)?.Name + " ] " : "")}[ {character.ToStringWithLevel()} ]"); + builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.##} / 鍑绘潃鏁帮細{stats.Kills} / 鍔╂敾鏁帮細{stats.Assists}{(actionQueue.MaxRespawnTimes != 0 ? " / 姝讳骸鏁帮細" + stats.Deaths : "")}"); + builder.AppendLine($"瀛樻椿鏃堕暱锛歿stats.LiveTime} / 瀛樻椿鍥炲悎鏁帮細{stats.LiveRound} / 琛屽姩鍥炲悎鏁帮細{stats.ActionTurn}"); + builder.AppendLine($"鎬昏浼ゅ锛歿stats.TotalDamage} / 鎬昏鐗╃悊浼ゅ锛歿stats.TotalPhysicalDamage} / 鎬昏榄旀硶浼ゅ锛歿stats.TotalMagicDamage}"); + builder.AppendLine($"鎬绘壙鍙椾激瀹筹細{stats.TotalTakenDamage} / 鎬绘壙鍙楃墿鐞嗕激瀹筹細{stats.TotalTakenPhysicalDamage} / 鎬绘壙鍙楅瓟娉曚激瀹筹細{stats.TotalTakenMagicDamage}"); + builder.Append($"姣忕浼ゅ锛歿stats.DamagePerSecond} / 姣忓洖鍚堜激瀹筹細{stats.DamagePerTurn}"); + WriteLine(builder.ToString()); + } + } } if (PrintOut) @@ -815,7 +820,7 @@ namespace Oshima.Core.Utils Console.WriteLine("=== 鎶鏈緱鍒嗘帓琛屾 ==="); } - Msg = "=== 鎶鏈緱鍒嗘帓琛屾 ===\r\n"; + Msg = $"=== 鎶鏈緱鍒嗘帓琛屾 TOP{top} ===\r\n"; if (isTeam) { @@ -845,7 +850,7 @@ namespace Oshima.Core.Utils { StringBuilder builder = new(); CharacterStatistics stats = actionQueue.CharacterStatistics[character]; - builder.AppendLine($"{(isWeb ? count + ". " : "")}[ {character.ToStringWithLevel()} ]"); + builder.AppendLine($"{count + ". "}[ {character.ToStringWithLevel()} ]"); builder.AppendLine($"鎶鏈緱鍒嗭細{stats.Rating:0.##} / 鍑绘潃鏁帮細{stats.Kills} / 鍔╂敾鏁帮細{stats.Assists}{(actionQueue.MaxRespawnTimes != 0 ? " / 姝讳骸鏁帮細" + stats.Deaths : "")}"); builder.AppendLine($"瀛樻椿鏃堕暱锛歿stats.LiveTime} / 瀛樻椿鍥炲悎鏁帮細{stats.LiveRound} / 琛屽姩鍥炲悎鏁帮細{stats.ActionTurn}"); builder.AppendLine($"鎬昏浼ゅ锛歿stats.TotalDamage} / 鎬昏鐗╃悊浼ゅ锛歿stats.TotalPhysicalDamage} / 鎬昏榄旀硶浼ゅ锛歿stats.TotalMagicDamage}"); @@ -907,13 +912,10 @@ namespace Oshima.Core.Utils } } - IsRuning = false; - return result; } catch (Exception ex) { - IsRuning = false; Console.WriteLine(ex); return [ex.ToString()]; } diff --git a/OshimaCore/Utils/FunGameService.cs b/OshimaCore/Utils/FunGameService.cs index 29d3f1b..bf22c50 100644 --- a/OshimaCore/Utils/FunGameService.cs +++ b/OshimaCore/Utils/FunGameService.cs @@ -17,6 +17,7 @@ namespace Oshima.Core.Utils public static List Magics { get; } = []; public static List Equipment { get; } = []; public static List Items { get; } = []; + public static Dictionary UserIdAndUsername { get; } = []; public static void InitFunGame() { @@ -35,7 +36,7 @@ namespace Oshima.Core.Utils Dictionary exItems = Factory.GetGameModuleInstances(OshimaGameModuleConstant.General, OshimaGameModuleConstant.Item); Equipment.AddRange(exItems.Values.Where(i => (int)i.ItemType >= 0 && (int)i.ItemType < 5)); - Equipment.AddRange([new 鏀诲嚮涔嬬埅10(), new 鏀诲嚮涔嬬埅30(), new 鏀诲嚮涔嬬埅50()]); + Equipment.AddRange([new 鏀诲嚮涔嬬埅10(), new 鏀诲嚮涔嬬埅20(), new 鏀诲嚮涔嬬埅35(), new 鏀诲嚮涔嬬埅50()]); Items.AddRange(exItems.Values.Where(i => (int)i.ItemType > 4)); diff --git a/OshimaModules/Items/Accessory/鏀诲嚮涔嬬埅.cs b/OshimaModules/Items/Accessory/鏀诲嚮涔嬬埅.cs index f30cb41..8b2fa14 100644 --- a/OshimaModules/Items/Accessory/鏀诲嚮涔嬬埅.cs +++ b/OshimaModules/Items/Accessory/鏀诲嚮涔嬬埅.cs @@ -18,16 +18,29 @@ namespace Oshima.FunGame.OshimaModules.Items } } - public class 鏀诲嚮涔嬬埅30 : Item + public class 鏀诲嚮涔嬬埅20 : Item { - public override long Id => (long)AccessoryID.鏀诲嚮涔嬬埅30; - public override string Name => "鏀诲嚮涔嬬埅 +30"; + public override long Id => (long)AccessoryID.鏀诲嚮涔嬬埅20; + public override string Name => "鏀诲嚮涔嬬埅 +20"; public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : ""; public override QualityType QualityType => QualityType.Green; - public 鏀诲嚮涔嬬埅30(Character? character = null) : base(ItemType.Accessory) + public 鏀诲嚮涔嬬埅20(Character? character = null) : base(ItemType.Accessory) { - Skills.Passives.Add(new 鏀诲嚮涔嬬埅鎶鑳(character, this, 30)); + Skills.Passives.Add(new 鏀诲嚮涔嬬埅鎶鑳(character, this, 20)); + } + } + + public class 鏀诲嚮涔嬬埅35 : Item + { + public override long Id => (long)AccessoryID.鏀诲嚮涔嬬埅35; + public override string Name => "鏀诲嚮涔嬬埅 +35"; + public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : ""; + public override QualityType QualityType => QualityType.Blue; + + public 鏀诲嚮涔嬬埅35(Character? character = null) : base(ItemType.Accessory) + { + Skills.Passives.Add(new 鏀诲嚮涔嬬埅鎶鑳(character, this, 35)); } } @@ -36,14 +49,14 @@ namespace Oshima.FunGame.OshimaModules.Items public override long Id => (long)AccessoryID.鏀诲嚮涔嬬埅50; public override string Name => "鏀诲嚮涔嬬埅 +50"; public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : ""; - public override QualityType QualityType => QualityType.Blue; + public override QualityType QualityType => QualityType.Purple; public 鏀诲嚮涔嬬埅50(Character? character = null) : base(ItemType.Accessory) { Skills.Passives.Add(new 鏀诲嚮涔嬬埅鎶鑳(character, this, 50)); } } - + public class 鏀诲嚮涔嬬埅鎶鑳 : Skill { public override long Id => (long)ItemPassiveID.鏀诲嚮涔嬬埅; diff --git a/OshimaModules/Items/ItemID.cs b/OshimaModules/Items/ItemID.cs index 14d55ba..8e8246d 100644 --- a/OshimaModules/Items/ItemID.cs +++ b/OshimaModules/Items/ItemID.cs @@ -3,7 +3,8 @@ public enum AccessoryID : long { 鏀诲嚮涔嬬埅10 = 14001, - 鏀诲嚮涔嬬埅30 = 14002, - 鏀诲嚮涔嬬埅50 = 14003, + 鏀诲嚮涔嬬埅20 = 14002, + 鏀诲嚮涔嬬埅35 = 14003, + 鏀诲嚮涔嬬埅50 = 14004, } } diff --git a/OshimaModules/Modules/ItemModule.cs b/OshimaModules/Modules/ItemModule.cs index c38951d..5b0d473 100644 --- a/OshimaModules/Modules/ItemModule.cs +++ b/OshimaModules/Modules/ItemModule.cs @@ -26,7 +26,8 @@ namespace Oshima.FunGame.OshimaModules return id switch { (long)AccessoryID.鏀诲嚮涔嬬埅10 => new 鏀诲嚮涔嬬埅10(), - (long)AccessoryID.鏀诲嚮涔嬬埅30 => new 鏀诲嚮涔嬬埅30(), + (long)AccessoryID.鏀诲嚮涔嬬埅20 => new 鏀诲嚮涔嬬埅20(), + (long)AccessoryID.鏀诲嚮涔嬬埅35 => new 鏀诲嚮涔嬬埅35(), (long)AccessoryID.鏀诲嚮涔嬬埅50 => new 鏀诲嚮涔嬬埅50(), _ => null, }; diff --git a/OshimaModules/configs/oshima-studios/oshima.fungame.items.json b/OshimaModules/configs/oshima-studios/oshima.fungame.items.json index 0ba8316..ef6da96 100644 --- a/OshimaModules/configs/oshima-studios/oshima.fungame.items.json +++ b/OshimaModules/configs/oshima-studios/oshima.fungame.items.json @@ -637,7 +637,7 @@ "鍒濈骇娉曡": { "Id": 12501, "Name": "鍒濈骇娉曡", - "Description": "澧炲姞瑙掕壊 10% 榄旀硶鎶楁с", + "Description": "澧炲姞瑙掕壊 8% 榄旀硶鎶楁с", "BackgroundStory": "鍙互涓嶇┛锛屼笉鑳芥病鏈夈", "ItemType": 2, "WeaponType": 0, @@ -653,7 +653,7 @@ { "Id": 8020, "mdftype": 0, - "mdfvalue": 0.1 + "mdfvalue": 0.08 } ] } @@ -688,7 +688,7 @@ "鍦f磥涔嬬浘": { "Id": 12503, "Name": "鍦f磥涔嬬浘", - "Description": "鍙楀埌鐨勭墿鐞嗕激瀹冲噺灏 20%銆", + "Description": "澧炲姞 10% 鐗╃悊浼ゅ鍑忓厤銆", "BackgroundStory": "浼犺涓敱鍦e厜绁濈鐨勭浘鐗岋紝鑳藉鎶垫尅閭伓鐨勫姏閲忋", "ItemType": 2, "WeaponType": 0, @@ -703,7 +703,7 @@ "Effects": [ { "Id": 8019, - "expdr": 0.20 + "expdr": 0.10 } ] } @@ -713,7 +713,7 @@ "榄旇兘娉曡": { "Id": 12504, "Name": "榄旇兘娉曡", - "Description": "澧炲姞瑙掕壊 15 鐐规櫤鍔涘拰 20% 榄旀硶鎶楁с", + "Description": "澧炲姞瑙掕壊 15 鐐规櫤鍔涘拰 15% 榄旀硶鎶楁с", "BackgroundStory": "娉曡钑村惈鐫绁炵鐨勯瓟鍔涳紝绌挎埓鑰呰兘澧炲己榄旀硶濞佸姏銆", "ItemType": 2, "WeaponType": 0, @@ -733,7 +733,7 @@ { "Id": 8020, "mdftype": 0, - "mdfvalue": 0.2 + "mdfvalue": 0.15 } ] } @@ -971,7 +971,7 @@ "瀵岃吹澶村啝": { "Id": 14502, "Name": "瀵岃吹澶村啝", - "Description": "澧炲姞瑙掕壊 170 鐐规渶澶х敓鍛藉煎拰 80 鐐规渶澶ч瓟娉曞笺", + "Description": "澧炲姞瑙掕壊 70 鐐规渶澶х敓鍛藉煎拰 40 鐐规渶澶ч瓟娉曞笺", "BackgroundStory": "杈夌厡鍗庤吹鐨勫ご鍐犮", "ItemType": 4, "WeaponType": 0, @@ -986,11 +986,11 @@ "Effects": [ { "Id": 8012, - "exhp": 170 + "exhp": 70 }, { "Id": 8013, - "exmp": 80 + "exmp": 40 } ] } @@ -1000,7 +1000,7 @@ "榛勯噾鎸傚潬": { "Id": 14503, "Name": "榛勯噾鎸傚潬", - "Description": "澧炲姞瑙掕壊 300 鐐规渶澶х敓鍛藉笺", + "Description": "澧炲姞瑙掕壊 150 鐐规渶澶х敓鍛藉笺", "BackgroundStory": "鐝嶈吹绋鏈夌殑榛勯噾鎸備欢锛岃薄寰佽储瀵屼笌鑽h鐨勬姢韬銆", "ItemType": 4, "WeaponType": 0, @@ -1015,7 +1015,7 @@ "Effects": [ { "Id": 8012, - "exhp": 300 + "exhp": 150 } ] } @@ -1025,7 +1025,7 @@ "杈夌厡鍏夌幆": { "Id": 14504, "Name": "杈夌厡鍏夌幆", - "Description": "澧炲姞瑙掕壊 170 鐐规渶澶ч瓟娉曞煎拰 6 鐐规瘡鏃堕棿榄旀硶鍥炲銆", + "Description": "澧炲姞瑙掕壊 80 鐐规渶澶ч瓟娉曞煎拰 5 鐐规瘡鏃堕棿榄旀硶鍥炲銆", "BackgroundStory": "娴佸厜婧㈠僵鐨勫厜鐜", "ItemType": 4, "WeaponType": 0, @@ -1040,11 +1040,11 @@ "Effects": [ { "Id": 8013, - "exmp": 170 + "exmp": 80 }, { "Id": 8022, - "exmr": 6 + "exmr": 5 } ] } @@ -1203,7 +1203,7 @@ "Yuki銇瓹alfSocks": { "Id": 14510, "Name": "Yuki銇瓹alfSocks", - "Description": "澧炲姞瑙掕壊 15% 鏆村嚮鐜囧拰 30% 鏆村嚮浼ゅ銆", + "Description": "澧炲姞瑙掕壊 10% 鏆村嚮鐜囧拰 20% 鏆村嚮浼ゅ銆", "BackgroundStory": "灏忛洩鐨勫皬鑵胯锛屾嫢鏈夌绉樼殑鍔涢噺锛屼护浜虹寰銆", "ItemType": 4, "WeaponType": 0, @@ -1218,11 +1218,11 @@ "Effects": [ { "Id": 8014, - "excr": 0.15 + "excr": 0.1 }, { "Id": 8015, - "excrd": 0.3 + "excrd": 0.2 } ] } @@ -1286,7 +1286,7 @@ "璺汉鍝ョ殑cos鏈": { "Id": 14513, "Name": "璺汉鍝ョ殑cos鏈", - "Description": "澧炲姞瑙掕壊 10% 鏀诲嚮鍔涳紝澧炲姞瑙掕壊 15% 榄旀硶鎶楁э紝浣嗘槸浼氬噺灏 8% 鐗╃悊浼ゅ鍑忓厤銆", + "Description": "澧炲姞瑙掕壊 10% 鏀诲嚮鍔涳紝澧炲姞瑙掕壊 10% 榄旀硶鎶楁э紝浣嗘槸浼氬噺灏 8% 鐗╃悊浼ゅ鍑忓厤銆", "BackgroundStory": "涓濂楃绉樼殑鏈嶉グ锛屾嵁璇寸┛涓婂悗浼氬紩鍙戞湭鐭ョ殑鍔涢噺鍙樺寲銆", "ItemType": 4, "WeaponType": 0, @@ -1306,7 +1306,7 @@ { "Id": 8020, "mdftype": 0, - "mdfvalue": 0.15 + "mdfvalue": 0.10 }, { "Id": 8019, @@ -1316,5 +1316,38 @@ } ] } + }, + "鐧芥湀鍏夌殑鐜変僵": { + "Id": 14514, + "Name": "鐧芥湀鍏夌殑鐜変僵", + "Description": "澧炲姞瑙掕壊 15% 榄旀硶鎶楁э紝8 鐐规瘡鏃堕棿榄旀硶鍥炲鍜 15% 鍐峰嵈缂╁噺銆", + "BackgroundStory": "鎹姣忎釜鎬昏閮芥湁涓涓晳鍛芥仼浜猴紝杩樻湁涓涓啋鍏呮晳鍛芥仼浜虹殑浜恒", + "ItemType": 4, + "WeaponType": 0, + "QualityType": 3, + "Skills": { + "Active": null, + "Passives": [ + { + "Id": 7314, + "Name": "鐧芥湀鍏夌殑鐜変僵", + "SkillType": 3, + "Effects": [ + { + "Id": 8020, + "exatk": 0.15 + }, + { + "Id": 8022, + "exmr": 8 + }, + { + "Id": 8011, + "excdr": 0.1 + } + ] + } + ] + } } } \ No newline at end of file