Files
bl/logic/service/maps/walk.go
昔念 f281b949ba ```
feat(fight): 调整战斗逻辑与精灵切换机制

- 优化精灵切换时的效果处理,增加切换事件支持
- 修复战斗中超时逻辑和技能CD计算问题
- 增强状态效果在精灵上下场时的清理机制
- 修改伤害计算逻辑以提高准确性
- 更新战斗池初始化参数提升并发性能

此外,同步更新了宠物放生字段命名及逻辑处理方式,并调整网络通信中的限流策略。
```
2025-11-13 02:43:00 +08:00

55 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package maps
import (
"blazing/logic/service/common"
"blazing/logic/service/player"
"blazing/logic/service/space"
"blazing/modules/blazing/model"
"golang.org/x/time/rate"
)
type WalkInInfo struct {
Head player.TomeeHeader `cmd:"2101" struc:"[0]pad"` //走路包
// Flag: 0为走1为飞行模式@UInt long
Flag uint32
// Point: 直接给坐标xy
Point model.Pos `fieldDesc:"直接给坐标xy"`
PathLen uint32 `struc:"sizeof=Path" `
Path string
}
var limiter = rate.NewLimiter(rate.Limit(10), 5)
func (t *WalkInInfo) Broadcast(mapid uint32, o WalkOutInfo) {
// cool.Limiter.Take()
//r := cool.Limiter.Get("Broadcast"+gconv.String(mapid), rate.Limit(10), 5)
if !limiter.Allow() {
return
}
space.GetSpace(mapid).User.IterCb(func(playerID uint32, player common.PlayerI) {
t.Head.Result = 0
tt := t.Head.Pack(&o)
player.SendPack(tt)
})
}
// PeopleWalkOutboundInfo PeopleWalkOutboundInfo类实现OutboundMessage接口
type WalkOutInfo struct {
// Flag: 0为走1为飞行模式
Flag uint32 `fieldDesc:"0为走1为飞行模式" codec:"uint"`
// UserID: 走动的人的米米号
UserID uint32 `fieldDesc:"走动的人的米米号" codec:"uint"`
// Point: 直接给坐标xy
Point model.Pos `fieldDesc:"直接给坐标xy"`
PathLen uint32 `struc:"sizeof=Path" `
Path string
}