From 0961dc43e3cf58070213facffe1a0740ad17036a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:49:48 +0800 Subject: [PATCH] =?UTF-8?q?```=20fix(game):=20=E4=BF=AE=E5=A4=8D=E5=AF=92?= =?UTF-8?q?=E6=B5=81=E6=9E=AA=E6=8A=80=E8=83=BD=E4=B8=AD=E5=AE=A0=E7=89=A9?= =?UTF-8?q?ID=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将寒流枪技能中第二个宠物的ID从505修正为1905 - 移除了未使用的Effect138效果代码(先出手反弹伤害效果) ``` --- logic/controller/active_寒流枪.go | 2 +- logic/service/fight/effect/138.go | 50 +++++++++++++++++++++++++++++ logic/service/fight/effect/back.go1 | 29 ----------------- 3 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 logic/service/fight/effect/138.go diff --git a/logic/controller/active_寒流枪.go b/logic/controller/active_寒流枪.go index 74be46df8..554be04db 100644 --- a/logic/controller/active_寒流枪.go +++ b/logic/controller/active_寒流枪.go @@ -30,7 +30,7 @@ func (h Controller) HanLiuQiang(data *C2S_2608, c *player.Player) (result *fight pet = model.GenPetInfo(1567, 31, -1, -1, 100, nil, 0) c.Service.Pet.PetAdd(pet) - pet = model.GenPetInfo(505, 31, -1, -1, 100, nil, 0) + pet = model.GenPetInfo(1905, 31, -1, -1, 100, nil, 0) c.Service.Pet.PetAdd(pet) return result, -1 diff --git a/logic/service/fight/effect/138.go b/logic/service/fight/effect/138.go new file mode 100644 index 000000000..3979a1bcc --- /dev/null +++ b/logic/service/fight/effect/138.go @@ -0,0 +1,50 @@ +package effect + +import ( + "blazing/logic/service/fight/info" + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" + + "github.com/alpacahq/alpacadecimal" +) + +// 138 - 先出手时,n回合自己不会受到对手攻击性技能伤害并反弹对手1/n造成的伤害 +type Effect138 struct { + node.EffectNode + can bool +} + +func (e *Effect138) SetArgs(t *input.Input, a ...int) { + e.EffectNode.SetArgs(t, a...) + e.EffectNode.Duration(a[0]) // 持续n回合 +} +func (e *Effect138) OnSkill() bool { + if e.IsFirst() { // 先出手 + e.can = true + } + return true +} +func (e *Effect138) DamageLockEx(t *info.DamageZone) bool { + if e.can { // 先出手 + if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() != info.Category.STATUS { + + // 反弹1/n造成的伤害 + damageToBounce := e.Ctx().Opp.SumDamage.Div(e.Args()[1]) // 1/n + damageZone := &info.DamageZone{ + Type: info.DamageType.Fixed, + Damage: damageToBounce, + } + e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) + if t.Type == info.DamageType.Fixed { + t.Damage = alpacadecimal.Zero + } + + } + } + + return true +} +func init() { + input.InitEffect(input.EffectType.Skill, 138, &Effect138{}) + +} diff --git a/logic/service/fight/effect/back.go1 b/logic/service/fight/effect/back.go1 index 95035bb0e..f57d4a708 100644 --- a/logic/service/fight/effect/back.go1 +++ b/logic/service/fight/effect/back.go1 @@ -86,35 +86,6 @@ func (e *Effect457) Skill_Use_ex() bool { return true } -// 138 - 先出手时,n回合自己不会受到对手攻击性技能伤害并反弹对手1/n造成的伤害 -type Effect138 struct { - node.EffectNode -} - -func (e *Effect138) Skill_Use_ex() bool { - if e.Ctx().Our.Speed > e.Ctx().Opp.Speed { // 先出手 - if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() != info.Category.STATUS { - // 本次受到的攻击伤害无效 - e.Ctx().Our.CancelDamage() - - // 反弹1/n造成的伤害 - damageToBounce := e.Ctx().Opp.SumDamage.Div(e.Args()[1]) // 1/n - damageZone := &info.DamageZone{ - Type: info.DamageType.Fixed, - Damage: damageToBounce, - } - e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) - } - } - - return true -} - -func (e *Effect138) SetArgs(t *input.Input, a ...int) { - e.EffectNode.SetArgs(t, a...) - e.EffectNode.Duration(a[0]) // 持续n回合 -} - // 197 - n回合内若被对方击败,则对手所有能力加强状态消失 type Effect197 struct { node.EffectNode