From 3af709f633f610b7ce45dfb1c1e25d584d32e22d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:29:08 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(fight):=20AI=E6=88=98=E6=96=97?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E4=BD=BF=E7=94=A8=E5=88=A4=E6=96=AD=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改AI技能选择逻辑,从直接使用技能ID改为先存储技能实体再统一执行 - 修复usedskill变量类型从uint32改为*info.SkillEntity指针类型 - 优化技能使用流程,确保只有在找到可用技能时才执行UseSkill操作 fix(player): 调整玩家登录时的任务 --- logic/service/fight/input/ai.go | 18 +++++++++++++----- logic/service/player/save.go | 4 ++-- modules/config/service/server.go | 4 ++++ 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/logic/service/fight/input/ai.go b/logic/service/fight/input/ai.go index 7d72ec5c..e1fbc741 100644 --- a/logic/service/fight/input/ai.go +++ b/logic/service/fight/input/ai.go @@ -1,5 +1,7 @@ package input +import "blazing/logic/service/fight/info" + func (our *Input) GetAction() { next := our.Exec(func(t Effect) bool { @@ -29,7 +31,7 @@ func (our *Input) GetAction() { if len(skills) == 0 { return } - var usedskill uint32 + var usedskill *info.SkillEntity for _, s := range skills { if s == nil { continue @@ -42,10 +44,10 @@ func (our *Input) GetAction() { // 判断是否能秒杀(伤害 >= 对方当前生命值) if uint32(s.DamageValue.IntPart()) >= our.Opp.CurrentPet.Info.Hp { // 假设oppPet.HP为对方当前剩余生命值 - our.FightC.UseSkill(our.Player, uint32(s.ID)) + usedskill = s } } - if usedskill == 0 { + if usedskill == nil { for _, s := range skills { if s == nil { @@ -54,11 +56,17 @@ func (our *Input) GetAction() { if !s.CanUse() { continue } - our.FightC.UseSkill(our.Player, uint32(s.ID)) + usedskill = s + } } - our.FightC.UseSkill(our.Player, 0) + if usedskill != nil { + our.FightC.UseSkill(our.Player, uint32(usedskill.ID)) + } else { + our.FightC.UseSkill(our.Player, 0) + } + // // 若存在能秒杀的技能,优先使用(选伤害最高的,避免浪费高伤害技能) // if len(killableSkills) > 0 { // bestKillSkill := killableSkills[0].SkillEntity diff --git a/logic/service/player/save.go b/logic/service/player/save.go index 9bdf7465..edb1dab4 100644 --- a/logic/service/player/save.go +++ b/logic/service/player/save.go @@ -93,9 +93,9 @@ func (lw *Player) CompleteLogin() { } } - if lw.Info.MaxPuniLv < 7 { + if lw.Info.MaxPuniLv < 9 { - for i := 291; i < 297; i++ { + for i := 291; i < 299; i++ { if lw.Info.GetTask(i) == model.Completed { lw.Info.MaxPuniLv = uint32(i) - 290 diff --git a/modules/config/service/server.go b/modules/config/service/server.go index 0e3abfcf..d4e20d70 100644 --- a/modules/config/service/server.go +++ b/modules/config/service/server.go @@ -40,8 +40,12 @@ func NewServerService() *ServerService { subm.Set("isonline", 1) + } else { + subm.Set("isonline", 0) } + } else { + subm.Set("isonline", 0) } rr = append(rr, subm.MapStrAny()) }