diff --git a/logic/service/fight/input/effect.go b/logic/service/fight/input/effect.go index 97dcc478..48f90e09 100644 --- a/logic/service/fight/input/effect.go +++ b/logic/service/fight/input/effect.go @@ -80,9 +80,12 @@ func geteffect[T int | byte | uint16](etype EnumEffectType, id T) Effect { } return nil } -func (our *Input) InitEffect(etype EnumEffectType, id int) Effect { +func (our *Input) InitEffect(etype EnumEffectType, id int, a ...int) Effect { ret := geteffect(etype, id) - ret.SetArgs(our) //输入参数是对方 + if ret != nil { + ret.SetArgs(our, a...) //输入参数是对方 + } + return ret } diff --git a/logic/service/fight/input/input.go b/logic/service/fight/input/input.go index 215b78e6..c0c458ed 100644 --- a/logic/service/fight/input/input.go +++ b/logic/service/fight/input/input.go @@ -70,7 +70,7 @@ func (our *Input) SortPet() { for _, s := range our.AllPet { if s.Info.Hp > 0 { for _, e1 := range s.Info.EffectInfo { - t := our.InitEffect(EffectType.NewSel, int(e1.EID)) + t := our.InitEffect(EffectType.NewSel, int(e1.EID), e1.Args...) if t != nil { ef := t.ID() if cool.Config.ServerInfo.IsDebug != 0 { @@ -82,7 +82,7 @@ func (our *Input) SortPet() { t.ID(ef) t.Duration(-1) - t.SetArgs(our, e1.Args...) //设置入参,施加方永远是我方 + our.AddEffect(our, t) }