1
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
xinian
2026-02-21 22:41:59 +08:00
committed by cnb
parent e81dc698dd
commit d159944d37
5 changed files with 9 additions and 27 deletions

View File

@@ -56,9 +56,7 @@ type DoubleUInt8Struct struct {
}
func (di *DoubleUInt8) Pack(p []byte, opt *Options) (int, error) {
for i, value := range *di {
p[i] = value
}
copy(p, (*di)[:])
return 2, nil
}
@@ -131,9 +129,7 @@ type SliceUInt8Struct struct {
}
func (ia *SliceUInt8) Pack(p []byte, opt *Options) (int, error) {
for i, value := range *ia {
p[i] = value
}
copy(p, *ia)
return len(*ia) + 1, nil
}

View File

@@ -81,7 +81,7 @@ func (f *Field) Size(val reflect.Value, options *Options) int {
var defaultOrder = binary.BigEndian
// packVal 优化版:减少反射开销+优化内存拷贝+优雅错误处理
func (f *Field) packVal(buf []byte, val reflect.Value, length int, options *Options) (size int, err error) {
func (f *Field) packVal(buf []byte, val reflect.Value, _ int, options *Options) (size int, err error) {
// 1. 预缓存order避免重复判断
order := f.Order
if options != nil && options.Order != nil {
@@ -252,7 +252,6 @@ func (f *Field) Pack(buf []byte, val reflect.Value, length int, options *Options
copy(buf, buf[:length])
return length, nil
}
return val.Len(), nil
}
pos := 0
var zero reflect.Value
@@ -276,7 +275,7 @@ func (f *Field) Pack(buf []byte, val reflect.Value, length int, options *Options
}
}
func (f *Field) unpackVal(buf []byte, val reflect.Value, length int, options *Options) error {
func (f *Field) unpackVal(buf []byte, val reflect.Value, _ int, options *Options) error {
order := f.Order
if options.Order != nil {
order = options.Order

View File

@@ -5,6 +5,8 @@ import (
"blazing/modules/base/service"
"blazing/modules/player/model"
"time"
"github.com/panjf2000/gnet/v2"
)
// 定义刷野间隔常量(可根据业务调整)
@@ -14,7 +16,7 @@ const (
)
// NewPlayer 使用 Options 模式创建 Player 实例
func NewPlayer(opts ...PlayerOption) *Player {
func NewPlayer(opts gnet.Conn) *Player {
p := &Player{
HavePVPinfo: make([]common.PlayerI, 0),
@@ -29,9 +31,7 @@ func NewPlayer(opts ...PlayerOption) *Player {
p.GenMonster() //生成野怪
})
for _, opt := range opts {
opt(p)
}
p.MainConn = opts
return p
}

View File

@@ -90,16 +90,6 @@ type OgrePet struct {
Data [9]OgrePetInfo
}
// PlayerOption 定义配置 Player 的函数类型
type PlayerOption func(*Player)
// WithConn 设置玩家连接的配置选项
func WithConn(c gnet.Conn) PlayerOption {
return func(p *Player) {
p.MainConn = c
}
}
func (p *Player) GetCoins(amount int64) bool {
if int64(p.Info.Coins) < amount {
return false

View File

@@ -14,10 +14,7 @@ func GetPlayer(c gnet.Conn, userid uint32) *Player { //TODO 这里待优化,可
}
if clientdata.Player == nil {
clientdata.Player = NewPlayer(
WithConn(c), //注入conn
)
clientdata.Player = NewPlayer(c)
}