Files
bl/logic/service/service.go
昔念 081f990110 refactor(assets): 重构资产同步流程并添加宠物相关功能
- 移除了资产同步到私有 B 仓库的工作流
- 在玩家结构中添加了 IsFighting 字段
- 新增了宠物信息相关功能和数据结构
- 优化了地图进入和怪物刷新逻辑
- 调整了玩家登录和地图数据发送流程
- 重构了部分代码以提高可维护性和性能
2025-08-24 17:33:19 +08:00

67 lines
1.7 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 service
import (
"blazing/common/data/entity"
"blazing/common/socket/errorcode"
"blazing/common/socket/handler"
"blazing/cool"
)
func GetPlayer(c *entity.Conn, userid uint32) *entity.Player { //TODO 这里待优化,可能存在内存泄漏问题
//检查player初始化是否为conn初始后取map防止二次连接后存在两个player
clientdata := c.MainConn.Context().(*entity.ClientData)
if clientdata.GetPlayer() != nil {
return clientdata.GetPlayer()
}
var player *entity.Player
if player1, ok := cool.Mainplayer.Load((userid)); ok {
clientdata.SetPlayer(player1)
}
return player
// return nil
}
func KickPlayer(userid uint32) { //踢出玩家
//TODO 返回错误码
//var player *entity.Player
if player1, ok := cool.Mainplayer.Load((userid)); ok {
//取成功,否则创建
head := handler.NewTomeeHeader(1001, userid)
head.Result = uint32(errorcode.ErrorCodes.ErrAccountLoggedInElsewhere)
player1.SendPack(head.Pack(nil))
player1.MainConn.MainConn.Close()
// clientdata.Player = player
}
//return player
// return nil
}
func SetPlayer(c *entity.Conn, userid uint32) *entity.Player { //TODO 这里待优化,
clientdata := c.MainConn.Context().(*entity.ClientData)
player := entity.NewPlayer(
entity.WithUserID(userid), //注入ID
entity.WithConn(*c), //注入conn
)
cool.Mainplayer.Store(userid, player)
clientdata.SetPlayer(player) //= player
return player
// return nil
}
// /**
// * @var type OutboundInf
// * @global
// */
// type OutInfo interface {
// error //实现错误接口
// Code() errorcode.ErrorCode //返回错误码,如果error不等于nil就返回这个实现对前台传错误码
// }