From e77ac767ef0c245ab65ee96b5130cdd6e8f9b0b2 Mon Sep 17 00:00:00 2001 From: milimoe Date: Tue, 18 Mar 2025 01:39:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E4=BB=A3=E7=A0=81=E6=B8=85?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaModules/Characters/CustomCharacter.cs | 3 +- OshimaModules/Effects/EffectID.cs | 2 +- OshimaModules/Effects/ItemEffects/GetEP.cs | 2 +- .../Effects/ItemEffects/RecoverHP.cs | 2 +- .../Effects/ItemEffects/RecoverMP.cs | 2 +- .../Effects/ItemEffects/RecoverMP2.cs | 2 +- OshimaModules/Effects/OpenEffects/ExSTR.cs | 2 +- .../基于攻击力的伤害_带基础伤害.cs | 2 +- .../基于攻击力的伤害_无基础伤害.cs | 2 +- .../SkillEffects/基于核心属性的伤害.cs | 2 +- .../Effects/SkillEffects/纯数值伤害.cs | 2 +- .../Effects/SkillEffects/纯数值回复生命值.cs | 2 +- .../Effects/SkillEffects/造成封技.cs | 2 +- .../Effects/SkillEffects/造成眩晕.cs | 2 +- OshimaModules/Items/Accessory/攻击之爪.cs | 2 +- OshimaModules/Items/Consumable/回复药.cs | 2 +- OshimaModules/Items/Consumable/经验书.cs | 2 +- OshimaModules/Items/Consumable/能量饮料.cs | 2 +- OshimaModules/Items/Consumable/魔力填充剂.cs | 2 +- OshimaModules/Skills/ColdBlue/累积之压.cs | 2 +- OshimaModules/Skills/MagicalGirl/毁灭之势.cs | 2 +- OshimaModules/Skills/Mayor/致命打击.cs | 2 +- OshimaModules/Skills/NanGanyu/三重叠加.cs | 2 +- OshimaModules/Skills/NanGanyu/灵能反射.cs | 2 +- OshimaModules/Skills/NiuNan/变幻之心.cs | 2 +- OshimaModules/Skills/NiuNan/智慧与力量.cs | 3 +- OshimaModules/Skills/QWQAQW/破釜沉舟.cs | 2 +- OshimaModules/Skills/QingXiang/枯竭打击.cs | 2 +- OshimaModules/Skills/QuDuoduo/弱者猎手.cs | 2 +- OshimaModules/Skills/XinYin/心灵之火.cs | 2 +- OshimaModules/Skills/Yang/魔法震荡.cs | 2 +- OshimaModules/Skills/dddovo/敏捷之刃.cs | 2 +- OshimaServers/AnonymousServer.cs | 4 +- OshimaServers/Service/FunGameService.cs | 10 +-- OshimaWebAPI/Controllers/FunGameController.cs | 76 +++++++++---------- OshimaWebAPI/Models/QQBot.cs | 2 +- OshimaWebAPI/OshimaWebAPI.cs | 5 +- OshimaWebAPI/Services/RainBOTService.cs | 6 +- 38 files changed, 84 insertions(+), 85 deletions(-) diff --git a/OshimaModules/Characters/CustomCharacter.cs b/OshimaModules/Characters/CustomCharacter.cs index a3b9157..7f29786 100644 --- a/OshimaModules/Characters/CustomCharacter.cs +++ b/OshimaModules/Characters/CustomCharacter.cs @@ -1,5 +1,4 @@ -using System; -using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Constant; diff --git a/OshimaModules/Effects/EffectID.cs b/OshimaModules/Effects/EffectID.cs index b8f5cc2..f363dbd 100644 --- a/OshimaModules/Effects/EffectID.cs +++ b/OshimaModules/Effects/EffectID.cs @@ -204,7 +204,7 @@ /// 立即获得能量值,参数:ep /// GetEP = 8705, - + /// /// 立即获得经验值,参数:exp /// diff --git a/OshimaModules/Effects/ItemEffects/GetEP.cs b/OshimaModules/Effects/ItemEffects/GetEP.cs index 0caeb11..c4f16bc 100644 --- a/OshimaModules/Effects/ItemEffects/GetEP.cs +++ b/OshimaModules/Effects/ItemEffects/GetEP.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects public override string Name => "立即获得能量值"; public override string Description => $"角色立即获得 {实际获得:0.##} 点能量值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - + private readonly double 实际获得 = 0; public GetEP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) diff --git a/OshimaModules/Effects/ItemEffects/RecoverHP.cs b/OshimaModules/Effects/ItemEffects/RecoverHP.cs index f039672..7c77110 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverHP.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverHP.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects public override string Name => "立即回复生命值"; public override string Description => $"立即回复角色 {实际回复:0.##} 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - + private readonly double 实际回复 = 0; public RecoverHP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) diff --git a/OshimaModules/Effects/ItemEffects/RecoverMP.cs b/OshimaModules/Effects/ItemEffects/RecoverMP.cs index a8c98fd..b1ee930 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverMP.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverMP.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects public override string Name => "立即回复魔法值"; public override string Description => $"立即回复角色 {实际回复:0.##} 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - + private readonly double 实际回复 = 0; public RecoverMP(Skill skill, Dictionary args, Character? source = null) : base(skill, args) diff --git a/OshimaModules/Effects/ItemEffects/RecoverMP2.cs b/OshimaModules/Effects/ItemEffects/RecoverMP2.cs index 8155b4d..a0ef5ae 100644 --- a/OshimaModules/Effects/ItemEffects/RecoverMP2.cs +++ b/OshimaModules/Effects/ItemEffects/RecoverMP2.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects public override string Name => "立即回复魔法值"; public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; - + private double 实际回复 => 回复比例 * (Skill.Character?.MaxMP ?? 0); private readonly double 回复比例 = 0; diff --git a/OshimaModules/Effects/OpenEffects/ExSTR.cs b/OshimaModules/Effects/OpenEffects/ExSTR.cs index 49661fc..4cd6a64 100644 --- a/OshimaModules/Effects/OpenEffects/ExSTR.cs +++ b/OshimaModules/Effects/OpenEffects/ExSTR.cs @@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects public override string Description => $"{(实际加成 >= 0 ? "增加" : "减少")}角色 {Math.Abs(实际加成):0.##} 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : ""); public override EffectType EffectType => EffectType.Item; public double Value => 实际加成; - + private readonly double 实际加成 = 0; public override void OnEffectGained(Character character) diff --git a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs index 1cdaf3d..7d23b05 100644 --- a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_带基础伤害.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - + private double BaseDamage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; private double ATKCoefficient => Skill.Level > 0 ? 基础攻击力系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础攻击力系数; private double Damage => BaseDamage + (ATKCoefficient * Skill.Character?.ATK ?? 0); diff --git a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs index 6bb2cd6..aef0228 100644 --- a/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于攻击力的伤害_无基础伤害.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - + private double ATKCoefficient => Skill.Level > 0 ? 基础攻击力系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础攻击力系数; private double Damage => ATKCoefficient * Skill.Character?.ATK ?? 0; private double 基础攻击力系数 { get; set; } = 1.5; diff --git a/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs b/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs index a4ddd1a..2346800 100644 --- a/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs +++ b/OshimaModules/Effects/SkillEffects/基于核心属性的伤害.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - + private double BaseDamage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; private double AttributeCoefficient => Skill.Level > 0 ? 基础属性系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础属性系数; private double Damage => BaseDamage + (AttributeCoefficient * Skill.Character?.PrimaryAttributeValue ?? 0); diff --git a/OshimaModules/Effects/SkillEffects/纯数值伤害.cs b/OshimaModules/Effects/SkillEffects/纯数值伤害.cs index 7b98e38..97c5b85 100644 --- a/OshimaModules/Effects/SkillEffects/纯数值伤害.cs +++ b/OshimaModules/Effects/SkillEffects/纯数值伤害.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。"; - + private double Damage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害; private double 基础数值伤害 { get; set; } = 200; private double 基础伤害等级成长 { get; set; } = 100; diff --git a/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs b/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs index 227b76f..2b19bb4 100644 --- a/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs +++ b/OshimaModules/Effects/SkillEffects/纯数值回复生命值.cs @@ -7,7 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}目标回复 {Heal:0.##} 点生命值。"; - + private double Heal => Skill.Level > 0 ? 基础回复 + 回复成长 * (Skill.Level - 1) : 基础回复; private double 基础回复 { get; set; } = 100; private double 回复成长 { get; set; } = 30; diff --git a/OshimaModules/Effects/SkillEffects/造成封技.cs b/OshimaModules/Effects/SkillEffects/造成封技.cs index 6807085..118614e 100644 --- a/OshimaModules/Effects/SkillEffects/造成封技.cs +++ b/OshimaModules/Effects/SkillEffects/造成封技.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成封技 {封技时间},无法使用技能(魔法、战技和爆发技),并打断当前施法。"; - + private string 封技时间 => _durative && _duration > 0 ? 实际封技时间 + " 时间" : (!_durative && _durationTurn > 0 ? 实际封技时间 + " 回合" : "0 时间"); private double 实际封技时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); private readonly bool _durative; diff --git a/OshimaModules/Effects/SkillEffects/造成眩晕.cs b/OshimaModules/Effects/SkillEffects/造成眩晕.cs index 182b7f2..9c0226a 100644 --- a/OshimaModules/Effects/SkillEffects/造成眩晕.cs +++ b/OshimaModules/Effects/SkillEffects/造成眩晕.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成眩晕 {眩晕时间}。"; - + private string 眩晕时间 => _durative && _duration > 0 ? 实际眩晕时间 + " 时间" : (!_durative && _durationTurn > 0 ? 实际眩晕时间 + " 回合" : "0 时间"); private double 实际眩晕时间 => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); private readonly bool _durative; diff --git a/OshimaModules/Items/Accessory/攻击之爪.cs b/OshimaModules/Items/Accessory/攻击之爪.cs index 4953eff..3803760 100644 --- a/OshimaModules/Items/Accessory/攻击之爪.cs +++ b/OshimaModules/Items/Accessory/攻击之爪.cs @@ -56,7 +56,7 @@ namespace Oshima.FunGame.OshimaModules.Items Skills.Passives.Add(new 攻击之爪技能(character, this, 50)); } } - + public class 攻击之爪技能 : Skill { public override long Id => (long)ItemPassiveID.攻击之爪; diff --git a/OshimaModules/Items/Consumable/回复药.cs b/OshimaModules/Items/Consumable/回复药.cs index 8eef00b..1011b83 100644 --- a/OshimaModules/Items/Consumable/回复药.cs +++ b/OshimaModules/Items/Consumable/回复药.cs @@ -109,7 +109,7 @@ namespace Oshima.FunGame.OshimaModules.Items return 回复药.OnItemUsed(this, args); } } - + public class 大回复药 : Item, 回复药.HPRecovery { public override long Id => (long)ConsumableID.大回复药; diff --git a/OshimaModules/Items/Consumable/经验书.cs b/OshimaModules/Items/Consumable/经验书.cs index 83d9ac9..b5688c2 100644 --- a/OshimaModules/Items/Consumable/经验书.cs +++ b/OshimaModules/Items/Consumable/经验书.cs @@ -109,7 +109,7 @@ namespace Oshima.FunGame.OshimaModules.Items return 经验书.OnItemUsed(this, args); } } - + public class 大经验书 : Item, 经验书.EXPBook { public override long Id => (long)ConsumableID.大经验书; diff --git a/OshimaModules/Items/Consumable/能量饮料.cs b/OshimaModules/Items/Consumable/能量饮料.cs index 677c614..9674626 100644 --- a/OshimaModules/Items/Consumable/能量饮料.cs +++ b/OshimaModules/Items/Consumable/能量饮料.cs @@ -109,7 +109,7 @@ namespace Oshima.FunGame.OshimaModules.Items return 能量饮料.OnItemUsed(this, args); } } - + public class 能量饮料3 : Item, 能量饮料.EPAdd { public override long Id => (long)ConsumableID.能量饮料3; diff --git a/OshimaModules/Items/Consumable/魔力填充剂.cs b/OshimaModules/Items/Consumable/魔力填充剂.cs index 107728d..94e5a7a 100644 --- a/OshimaModules/Items/Consumable/魔力填充剂.cs +++ b/OshimaModules/Items/Consumable/魔力填充剂.cs @@ -109,7 +109,7 @@ namespace Oshima.FunGame.OshimaModules.Items return 魔力填充剂.OnItemUsed(this, args); } } - + public class 魔力填充剂3 : Item, 魔力填充剂.MPRecovery { public override long Id => (long)ConsumableID.魔力填充剂3; diff --git a/OshimaModules/Skills/ColdBlue/累积之压.cs b/OshimaModules/Skills/ColdBlue/累积之压.cs index 5b62574..eb98610 100644 --- a/OshimaModules/Skills/ColdBlue/累积之压.cs +++ b/OshimaModules/Skills/ColdBlue/累积之压.cs @@ -26,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每次造成伤害都可以叠一层标记,累计 4 层时回收该角色所有标记并造成眩晕 1 回合,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。"; - + private readonly double 系数 = 0.12; private bool 是否是嵌套伤害 = false; diff --git a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs index c43017b..cb0e1f3 100644 --- a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs +++ b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : ""); - + private readonly double 伤害提升 = 0.03; private double 累计伤害 = 0; diff --git a/OshimaModules/Skills/Mayor/致命打击.cs b/OshimaModules/Skills/Mayor/致命打击.cs index 6d08f59..d5bde91 100644 --- a/OshimaModules/Skills/Mayor/致命打击.cs +++ b/OshimaModules/Skills/Mayor/致命打击.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"暴击伤害提升 70%。"; - + public override void OnEffectGained(Character character) { character.ExCritDMG += 0.7; diff --git a/OshimaModules/Skills/NanGanyu/三重叠加.cs b/OshimaModules/Skills/NanGanyu/三重叠加.cs index 6d53ee5..6202929 100644 --- a/OshimaModules/Skills/NanGanyu/三重叠加.cs +++ b/OshimaModules/Skills/NanGanyu/三重叠加.cs @@ -26,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => "三重叠加"; public override string Description => $"使 [ 灵能反射 ] 支持普通攻击,且当前释放魔法次数归零,最大硬直消除次数提高到 {灵能反射次数} 次;在魔法命中和普通攻击命中时能够回复所回复能量值的 10 倍魔法值,持续 {技能持续次数} 次(灵能反射每消除次数达到最大时算一次)。" + $"(剩余:{剩余持续次数} 次)"; - + public int 剩余持续次数 { get; set; } = 0; private readonly int 灵能反射次数 = 3; private readonly int 技能持续次数 = 2; diff --git a/OshimaModules/Skills/NanGanyu/灵能反射.cs b/OshimaModules/Skills/NanGanyu/灵能反射.cs index 96ceca5..4443b95 100644 --- a/OshimaModules/Skills/NanGanyu/灵能反射.cs +++ b/OshimaModules/Skills/NanGanyu/灵能反射.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每释放 {触发硬直次数:0.##} 次魔法才会触发硬直时间,且魔法命中时基于 25% 智力 [ {获得额外能量值:0.##} ] 获得额外能量值。"; - + public bool 是否支持普攻 { get; set; } = false; public int 触发硬直次数 { get; set; } = 2; public int 释放次数 { get; set; } = 0; diff --git a/OshimaModules/Skills/NiuNan/变幻之心.cs b/OshimaModules/Skills/NiuNan/变幻之心.cs index fc0f1e2..a91c37b 100644 --- a/OshimaModules/Skills/NiuNan/变幻之心.cs +++ b/OshimaModules/Skills/NiuNan/变幻之心.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => "变幻之心"; public override string Description => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值;智力模式下,下一次魔法伤害提升 {伤害提升 * 100:0.##}%。"; - + private double 生命值回复 => 0.25 + 0.03 * (Level - 1); private double 伤害提升 => 0.55 + 0.25 * (Level - 1); diff --git a/OshimaModules/Skills/NiuNan/智慧与力量.cs b/OshimaModules/Skills/NiuNan/智慧与力量.cs index 717069c..8ef0fc9 100644 --- a/OshimaModules/Skills/NiuNan/智慧与力量.cs +++ b/OshimaModules/Skills/NiuNan/智慧与力量.cs @@ -1,5 +1,4 @@ using Milimoe.FunGame.Core.Entity; -using Milimoe.FunGame.Core.Interface.Entity; using Milimoe.FunGame.Core.Library.Constant; namespace Oshima.FunGame.OshimaModules.Skills @@ -27,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"当生命值低于 30% 时,进入力量模式,核心属性转为力量,将所有基础智力转化为额外力量;当生命值高于或等于 30% 时,进入智力模式,核心属性转为智力,还原所有基础智力。力量模式下,造成伤害必定暴击;智力模式下,获得 15% 闪避率和 15% 魔法抗性。" + (Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + ")" : ""); - + private double 交换的基础智力 = 0; private double 实际增加闪避率 = 0.15; private double 实际增加魔法抗性 = 0.15; diff --git a/OshimaModules/Skills/QWQAQW/破釜沉舟.cs b/OshimaModules/Skills/QWQAQW/破釜沉舟.cs index f08ab95..69b6843 100644 --- a/OshimaModules/Skills/QWQAQW/破釜沉舟.cs +++ b/OshimaModules/Skills/QWQAQW/破釜沉舟.cs @@ -31,7 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"最大生命值减少 20%。破釜沉舟:生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}~{高于30额外伤害上限}% ] 伤害,但是获得 [ 累计所受伤害的 {高于30的加成下限}~{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,仅能获得 [ 累计受到的伤害 {低于30的加成下限}~{低于30的加成上限}% ] 伤害加成。" + $"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + (累计受到的伤害 > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##})" : ""); - + private double 累计受到的伤害 = 0; private double 这次的伤害加成 = 0; private double 受到伤害之前的HP = 0; diff --git a/OshimaModules/Skills/QingXiang/枯竭打击.cs b/OshimaModules/Skills/QingXiang/枯竭打击.cs index 5e711e9..19c6bc0 100644 --- a/OshimaModules/Skills/QingXiang/枯竭打击.cs +++ b/OshimaModules/Skills/QingXiang/枯竭打击.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每次造成伤害都会随机减少对方 [ 7~15 ] 点能量值,对能量值低于一半的角色额外造成 30% 伤害。对于枯竭打击而言,能量值大于100且小于150时,视为低于一半。"; - + private bool 是否是嵌套伤害 = false; public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) diff --git a/OshimaModules/Skills/QuDuoduo/弱者猎手.cs b/OshimaModules/Skills/QuDuoduo/弱者猎手.cs index e7dc872..48b8fc7 100644 --- a/OshimaModules/Skills/QuDuoduo/弱者猎手.cs +++ b/OshimaModules/Skills/QuDuoduo/弱者猎手.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"优先攻击血量更低的角色,对生命值百分比低于自己的角色造成 150% 伤害。"; - + public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary totalDamageBonus) { if (character == Skill.Character && (enemy.HP / enemy.MaxHP) <= (character.HP / character.MaxHP)) diff --git a/OshimaModules/Skills/XinYin/心灵之火.cs b/OshimaModules/Skills/XinYin/心灵之火.cs index 9eaaf5c..22f262e 100644 --- a/OshimaModules/Skills/XinYin/心灵之火.cs +++ b/OshimaModules/Skills/XinYin/心灵之火.cs @@ -26,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,冷却 {基础冷却时间:0.##} 时间。" + (冷却时间 > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} 时间)" : ""); - + public double 冷却时间 { get; set; } = 0; public double 基础冷却时间 { get; set; } = 20; private bool 是否是嵌套普通攻击 = false; diff --git a/OshimaModules/Skills/Yang/魔法震荡.cs b/OshimaModules/Skills/Yang/魔法震荡.cs index b9abe66..17e57a0 100644 --- a/OshimaModules/Skills/Yang/魔法震荡.cs +++ b/OshimaModules/Skills/Yang/魔法震荡.cs @@ -26,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"造成魔法伤害时有 35% 几率使敌人眩晕 1 回合。"; - + public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) { if (character == Skill.Character && isMagicDamage && damageResult != DamageResult.Evaded && new Random().NextDouble() < 0.35) diff --git a/OshimaModules/Skills/dddovo/敏捷之刃.cs b/OshimaModules/Skills/dddovo/敏捷之刃.cs index 08e6520..f77b8f1 100644 --- a/OshimaModules/Skills/dddovo/敏捷之刃.cs +++ b/OshimaModules/Skills/dddovo/敏捷之刃.cs @@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public override long Id => Skill.Id; public override string Name => Skill.Name; public override string Description => $"每次普通攻击都将附带基于 {敏捷系数 * 100:0.##}% 敏捷 [ {敏捷伤害} ] 的魔法伤害。"; - + private double 敏捷伤害 => 敏捷系数 * Skill.Character?.AGI ?? 0; private readonly double 敏捷系数 = 2.5; private bool 是否是嵌套伤害 = false; diff --git a/OshimaServers/AnonymousServer.cs b/OshimaServers/AnonymousServer.cs index f2042ec..e21d7a6 100644 --- a/OshimaServers/AnonymousServer.cs +++ b/OshimaServers/AnonymousServer.cs @@ -407,7 +407,7 @@ namespace Oshima.FunGame.OshimaServers return result.Trim(); } - + public string SCRecord(Dictionary data) { string result = ""; @@ -433,7 +433,7 @@ namespace Oshima.FunGame.OshimaServers string remark = Convert.ToString(dr["remark"]) ?? ""; string record = Convert.ToString(dr["record"]) ?? ""; result += $"用户:{qq},圣人点数:{sc} 分{(remark.Trim() != "" ? $" ({remark})" : "")},排在圣人榜第 {index} / {sql.DataSet.Tables[0].Rows.Count} 名。\r\n" + - $"{(record != "" ? "显示近期点数变动信息:\r\n" + record + "\r\n": "")}本系统仅供娱乐,不代表任何官方立场或真实情况。"; + $"{(record != "" ? "显示近期点数变动信息:\r\n" + record + "\r\n" : "")}本系统仅供娱乐,不代表任何官方立场或真实情况。"; } else { diff --git a/OshimaServers/Service/FunGameService.cs b/OshimaServers/Service/FunGameService.cs index 6fec454..9bf6861 100644 --- a/OshimaServers/Service/FunGameService.cs +++ b/OshimaServers/Service/FunGameService.cs @@ -527,7 +527,7 @@ namespace Oshima.FunGame.OshimaServers.Service user.Inventory.Squad.Add(id); } } - + foreach (long cid in training.Keys) { if (user.Inventory.Characters.FirstOrDefault(c => c.Id == cid) is Character t) @@ -624,7 +624,7 @@ namespace Oshima.FunGame.OshimaServers.Service user.Inventory.Items.Add(mfk); msg += ItemSet.GetQualityTypeName(mfk.QualityType) + ItemSet.GetItemTypeName(mfk.ItemType) + "【" + mfk.Name + "】!\r\n" + mfk.Description; break; - + case 7: Item 物品 = FunGameConstant.DrawCardItems[Random.Shared.Next(FunGameConstant.DrawCardItems.Count)].Copy(); SetSellAndTradeTime(物品); @@ -650,7 +650,7 @@ namespace Oshima.FunGame.OshimaServers.Service public static string GetSignInResult(User user, int days) { - string msg = $"签到成功,你已连续签到 {days +1} 天!\r\n本次签到获得:"; + string msg = $"签到成功,你已连续签到 {days + 1} 天!\r\n本次签到获得:"; int currency = Random.Shared.Next(1000, 3000) + 10 * days; msg += $"{currency} {General.GameplayEquilibriumConstant.InGameCurrency} 和 "; int material = Random.Shared.Next(5, 15) + days / 7; @@ -1006,7 +1006,7 @@ namespace Oshima.FunGame.OshimaServers.Service } return result; } - + public static bool UseItems(IEnumerable items, User user, IEnumerable targets, List msgs) { Dictionary args = new() @@ -1382,7 +1382,7 @@ namespace Oshima.FunGame.OshimaServers.Service super.Character = boss; super.Level = sLevel; boss.Skills.Add(super); - + boss.Recovery(); SetCharacterPrimaryAttribute(boss); diff --git a/OshimaWebAPI/Controllers/FunGameController.cs b/OshimaWebAPI/Controllers/FunGameController.cs index 155a120..364ce6f 100644 --- a/OshimaWebAPI/Controllers/FunGameController.cs +++ b/OshimaWebAPI/Controllers/FunGameController.cs @@ -502,7 +502,7 @@ namespace Oshima.FunGame.WebAPI.Controllers } return NetworkUtility.JsonSerialize("创建存档失败!"); } - + [HttpPost("restoresaved")] public string RestoreSaved([FromQuery] long? uid = null) { @@ -634,7 +634,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("randomcustom")] public string RandomCustomCharacter([FromQuery] long? uid = null, [FromQuery] bool? confirm = null) { @@ -643,7 +643,7 @@ namespace Oshima.FunGame.WebAPI.Controllers PluginConfig pc = new("saved", userid.ToString()); pc.LoadConfig(); - + EntityModuleConfig emc = new("randomcustom", userid.ToString()); emc.LoadConfig(); @@ -799,7 +799,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("inventoryinfo")] public string GetInventoryInfo([FromQuery] long? uid = null) { @@ -1010,7 +1010,7 @@ namespace Oshima.FunGame.WebAPI.Controllers } return list; } - + [HttpPost("inventoryinfo4")] public List GetInventoryInfo4([FromQuery] long? uid = null, [FromQuery] int? page = null, [FromQuery] int? type = null) { @@ -1208,7 +1208,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("drawcard")] public string DrawCard([FromQuery] long? uid = null) { @@ -1478,7 +1478,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("showcharacterskills")] public string GetCharacterSkills([FromQuery] long? uid = null, [FromQuery] int? seq = null) { @@ -1521,7 +1521,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("showcharacteritems")] public string GetCharacterItems([FromQuery] long? uid = null, [FromQuery] int? seq = null) { @@ -1600,7 +1600,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("showiteminfoname")] public string GetItemInfoFromInventory_Name([FromQuery] long? uid = null, [FromQuery] string? name = null, [FromQuery] int? page = null) { @@ -1711,7 +1711,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("equipitem")] public string EquipItem([FromQuery] long? uid = null, [FromQuery] int? c = null, [FromQuery] int? i = null) { @@ -1777,7 +1777,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("unequipitem")] public string UnEquipItem([FromQuery] long? uid = null, [FromQuery] int? c = null, [FromQuery] int? i = null) { @@ -1836,7 +1836,7 @@ namespace Oshima.FunGame.WebAPI.Controllers PluginConfig pc = new("saved", userid.ToString()); pc.LoadConfig(); - + PluginConfig pc2 = new("saved", enemyid.ToString()); pc2.LoadConfig(); @@ -1882,7 +1882,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return [e.ToString()]; } } - + [HttpPost("fightcustom2")] public List FightCustom2([FromQuery] long? uid = null, [FromQuery] string? name = null, [FromQuery] bool? all = null) { @@ -2040,7 +2040,7 @@ namespace Oshima.FunGame.WebAPI.Controllers targets.Add(character); } } - + if (FunGameService.UseItem(item, user, targets, out string msg)) { user.LastTime = DateTime.Now; @@ -2069,7 +2069,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("useitem2")] public string UseItem2([FromQuery] long? uid = null, [FromQuery] string? name = null, [FromQuery] int? count = null, [FromBody] int[]? characters = null) { @@ -2698,7 +2698,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("decomposeitem3")] public string DecomposeItem3([FromQuery] long? uid = null, [FromQuery] int? q = null) { @@ -2883,7 +2883,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("starttraining")] public string StartTraining([FromQuery] long? uid = null, [FromQuery] int? c = null) { @@ -2930,7 +2930,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("stoptraining")] public string StopTraining([FromQuery] long? uid = null) { @@ -3004,7 +3004,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("gettraininginfo")] public string GetTrainingInfo([FromQuery] long? uid = null) { @@ -3098,7 +3098,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("skilllevelup")] public string SkillLevelUp([FromQuery] long? uid = null, [FromQuery] int? c = null, [FromQuery] string? s = null) { @@ -3435,7 +3435,7 @@ namespace Oshima.FunGame.WebAPI.Controllers } return bosses; } - + [HttpPost("fightboss")] public List FightBoss([FromQuery] long? uid = null, [FromQuery] int? index = null, [FromQuery] bool? all = null) { @@ -3521,7 +3521,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize($"小队人数已满 4 人,无法继续添加角色!当前小队角色如下:\r\n" + string.Join("\r\n", user.Inventory.Characters.Where(c => user.Inventory.Squad.Contains(c.Id)))); } - + if (user.Inventory.Squad.Contains(character.Id)) { return NetworkUtility.JsonSerialize($"此角色已经在小队中了!"); @@ -3544,7 +3544,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("removesquad")] public string RemoveSquad([FromQuery] long? uid = null, [FromQuery] int? c = null) { @@ -3639,7 +3639,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("clearsquad")] public string ClearSquad([FromQuery] long? uid = null, [FromBody] int[]? c = null) { @@ -3671,7 +3671,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(e.ToString()); } } - + [HttpPost("showsquad")] public string ShowSquad([FromQuery] long? uid = null) { @@ -3788,7 +3788,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("checkworkingquest")] public string CheckWorkingQuest([FromQuery] long? uid = null) { @@ -3825,7 +3825,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("acceptquest")] public List AcceptQuest([FromQuery] long? uid = null, [FromQuery] int? id = null) { @@ -3930,12 +3930,12 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("showmaincharacterorsquadstatus")] public string ShowMainCharacterOrSquadStatus([FromQuery] long? uid = null, [FromQuery] bool? squad = null) { long userid = uid ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11)); - bool showSquad = squad ?? false; + bool showSquad = squad ?? false; PluginConfig pc = new("saved", userid.ToString()); pc.LoadConfig(); @@ -4016,7 +4016,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("joinclub")] public string JoinClub([FromQuery] long? uid = null, [FromQuery] long? id = null) { @@ -4064,7 +4064,7 @@ namespace Oshima.FunGame.WebAPI.Controllers } emc.Add("club", club); emc.SaveConfig(); - + user.LastTime = DateTime.Now; pc.Add("user", user); pc.SaveConfig(); @@ -4075,7 +4075,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("quitclub")] public string QuitClub([FromQuery] long? uid = null) { @@ -4119,7 +4119,7 @@ namespace Oshima.FunGame.WebAPI.Controllers club.MemberJoinTime.Remove(userid); emc.Add("club", club); emc.SaveConfig(); - + string msg = $"退出社团 [ {club.Name} ] 成功!"; user.LastTime = DateTime.Now; pc.Add("user", user); @@ -4132,7 +4132,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("createclub")] public string CreateClub([FromQuery] long? uid = null, [FromQuery] bool? @public = null, [FromQuery] string? prefix = null) { @@ -4196,7 +4196,7 @@ namespace Oshima.FunGame.WebAPI.Controllers emc.LoadConfig(); emc.Add("club", club); emc.SaveConfig(); - + string msg = $"创建社团 [ {club.Name} ] (编号 {clubid})成功!"; user.LastTime = DateTime.Now; pc.Add("user", user); @@ -4209,7 +4209,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("showclubinfo")] public string ShowClubInfo([FromQuery] long? uid = null) { @@ -4276,7 +4276,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("showclubmemberlist")] public string ShowClubMemberList([FromQuery] long? uid = null, [FromQuery] int? type = null, [FromQuery] int? page = null) { @@ -4962,7 +4962,7 @@ namespace Oshima.FunGame.WebAPI.Controllers return NetworkUtility.JsonSerialize(noSaved); } } - + [HttpPost("dailystoreshowinfo")] public string DailyStoreShowInfo([FromQuery] long? uid = null, [FromQuery] long? id = null) { diff --git a/OshimaWebAPI/Models/QQBot.cs b/OshimaWebAPI/Models/QQBot.cs index 438a268..5b76771 100644 --- a/OshimaWebAPI/Models/QQBot.cs +++ b/OshimaWebAPI/Models/QQBot.cs @@ -83,7 +83,7 @@ namespace Oshima.FunGame.WebAPI.Models public string OpenId { get; } public string AuthorOpenId { get; } } - + public class ThirdPartyMessage : IBotMessage { [JsonPropertyName("id")] diff --git a/OshimaWebAPI/OshimaWebAPI.cs b/OshimaWebAPI/OshimaWebAPI.cs index 6fbd138..5f7f19f 100644 --- a/OshimaWebAPI/OshimaWebAPI.cs +++ b/OshimaWebAPI/OshimaWebAPI.cs @@ -47,7 +47,8 @@ namespace Oshima.FunGame.WebAPI builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); - builder.Services.AddTransient(provider => { + builder.Services.AddTransient(provider => + { SQLHelper? sql = Factory.OpenFactory.GetSQLHelper(); if (sql != null) return sql; throw new Milimoe.FunGame.SQLServiceException(); @@ -62,7 +63,7 @@ namespace Oshima.FunGame.WebAPI { if (GeneralSettings.TokenList.Contains(token)) { - return "APIUser"; + return "APIUser"; } return ""; } diff --git a/OshimaWebAPI/Services/RainBOTService.cs b/OshimaWebAPI/Services/RainBOTService.cs index df7dca7..f404dd3 100644 --- a/OshimaWebAPI/Services/RainBOTService.cs +++ b/OshimaWebAPI/Services/RainBOTService.cs @@ -187,7 +187,7 @@ namespace Oshima.FunGame.WebAPI.Services 51、清空小队 发送【帮助6】查看第 6 页"); } - + if (e.Detail == "帮助6") { await SendAsync(e, "饭给木", @"《饭给木》游戏指令列表(第 6 / 7 页) @@ -205,7 +205,7 @@ namespace Oshima.FunGame.WebAPI.Services 62、社团设置 <设置项> <{参数...}> 发送【帮助7】查看第 7 页"); } - + if (e.Detail == "帮助7") { await SendAsync(e, "饭给木", @"《饭给木》游戏指令列表(第 7 / 7 页) @@ -1935,7 +1935,7 @@ namespace Oshima.FunGame.WebAPI.Services } return result; } - + if (e.Detail.StartsWith("商店查看", StringComparison.CurrentCultureIgnoreCase)) { string detail = e.Detail.Replace("商店查看", "").Trim();