```
feat(fight): AI战斗逻辑优化,修复技能使用判断逻辑 - 修改AI技能选择逻辑,从直接使用技能ID改为先存储技能实体再统一执行 - 修复usedskill变量类型从uint32改为*info.SkillEntity指针类型 - 优化技能使用流程,确保只有在找到可用技能时才执行UseSkill操作 fix(player): 调整玩家登录时的任务
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user