From b6ec530c68b2e91b21eed7fee719919aa5387d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Fri, 27 Feb 2026 23:29:16 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(fight):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=97=AA=E4=BA=AE=E6=80=AA=E7=89=A9=E5=88=A4=E6=96=AD=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=E5=B9=B6=E4=BF=AE=E5=A4=8D=E7=89=A9=E5=93=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8F=82=E6=95=B0=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在战斗逻辑中增加对闪亮怪物的判断,只有闪亮怪物击败后才能获得玄铁 - 修复物品添加时uint32类型转换的参数格式问题 - 添加effect_42技能效果的参数设置方法 - 引入随机数库用于效果持续 --- logic/controller/fight_boss野怪和地图怪.go | 4 ++-- logic/service/fight/effect/effect_42.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/logic/controller/fight_boss野怪和地图怪.go b/logic/controller/fight_boss野怪和地图怪.go index ccd40548..ed89c661 100644 --- a/logic/controller/fight_boss野怪和地图怪.go +++ b/logic/controller/fight_boss野怪和地图怪.go @@ -175,7 +175,7 @@ func (Controller) OnPlayerFightNpcMonster(data1 *fight.FightNpcMonsterInboundInf p.AddPetExp(foi.Winpet, int64(addexp)) - if p.CanGetXUAN() { + if monster.IsShiny() && p.CanGetXUAN() { xuan := 400686 + int64(xmlres.PetMAP[int(refPet.GetID())].Type) ok := p.ItemAdd(xuan, 1) if ok { @@ -192,7 +192,7 @@ func (Controller) OnPlayerFightNpcMonster(data1 *fight.FightNpcMonsterInboundInf count := int64(grand.Intn(2) + 1) ok := p.ItemAdd(item, count) if ok { - items.ADDitem(uint32(item),uint32 (count)) + items.ADDitem(uint32(item), uint32(count)) } } diff --git a/logic/service/fight/effect/effect_42.go b/logic/service/fight/effect/effect_42.go index a2e33c08..4bbe4ca5 100644 --- a/logic/service/fight/effect/effect_42.go +++ b/logic/service/fight/effect/effect_42.go @@ -7,8 +7,10 @@ import ( "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" + "github.com/gogf/gf/v2/util/grand" ) +// n回合提示m翻倍 // ---- Effect42 ---- type Effect42 struct { node.EffectNode @@ -33,6 +35,14 @@ func (e *Effect42) Damage_Mul(t *info.DamageZone) bool { //fmt.Println("Effect42_n", t.Damage) return true } +func (e *Effect42) SetArgs(t *input.Input, a ...int) { + + //e.CanStack(-1)//后续的不会顶掉这个效果 + e.EffectNode.SetArgs(t, a...) + + e.Duration(grand.N(int(e.Args()[0].IntPart()), int(e.Args()[1].IntPart()))) //次数类,无限回合 + +} // ---- 注册所有效果 ---- func init() {