refactor(logic): 优化登录和地图相关逻辑

- 登录逻辑中添加了默认用户信息
- 优化了地图进入和退出的广播逻辑
- 调整了数据结构和方法,提高了代码可读性和可维护性
This commit is contained in:
2025-08-16 00:23:43 +08:00
parent 5e277defb7
commit 4306ed586f
6 changed files with 44 additions and 6 deletions

View File

@@ -6,6 +6,8 @@ import (
"blazing/common/socket/errorcode"
"blazing/logic/service"
"blazing/logic/service/login"
"blazing/modules/blazing/model"
"time"
)
// 处理命令: 1001
@@ -23,6 +25,15 @@ func (h *Controller) Login(data *login.InInfo, c *entity.Conn) (result *login.Ou
//c.SendPack(data.Def())
result = login.NewOutInfo() //设置登录消息
result.UserID = 10002 //注释掉就能进入
result.RegisterTime = uint32(time.Now().Unix())
result.Nick = "骄阳号"
result.Color = 0x00FF00
result.Pos = model.Pos{X: 100, Y: 200}
result.Clothes = append(result.Clothes, model.PeopleItemInfo{ID: 100717, Level: 1})
result.MapID = 1
result.TimeLimit = 43200
result.TimeToday = 339
return result, 0

View File

@@ -9,10 +9,10 @@ import (
func (h *Controller) MapIn(data *maps.InInfo, c *entity.Player) (result *maps.OutInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
c.MapId = data.MapId //登录地图
space.GetPlanet(c.UserID).Set(c.UserID, c) //添加玩家
result = &maps.OutInfo{UserID: c.UserID} //设置广播信息
data.Broadcast(c.MapId, *result) //同步广播
c.MapId = data.MapId //登录地图
space.GetPlanet(c.MapId).Set(c.UserID, c) //添加玩家
//result = &maps.OutInfo{UserID: c.UserID} //设置广播信息
data.Broadcast(c.MapId, maps.OutInfo{UserID: c.UserID}) //同步广播
return
}

View File

@@ -8,5 +8,6 @@ import (
func (h *Controller) MapOut(data *maps.LeaveMapInboundInfo, c *entity.Player) (result *maps.LeaveMapOutboundInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
result = &maps.LeaveMapOutboundInfo{UserID: c.GetUserID()}
data.Broadcast(c.MapId, maps.LeaveMapOutboundInfo{UserID: c.GetUserID()}) //同步广播
return
}

View File

@@ -6,6 +6,7 @@ import (
"blazing/modules/blazing/model"
"context"
"encoding/hex"
"fmt"
"github.com/creasty/defaults"
"github.com/gogf/gf/v2/os/glog"
@@ -19,6 +20,18 @@ type InInfo struct { //这里直接使用组合来实现将传入的原始头部
}
func (s *InInfo) Def() []byte { //默认返回方法
t1, _ := hex.DecodeString("0000045D37000003E9000027110000000000002711683F89CF6E69656F0000000000000000000000000008000F00000000000000000000000000000000000000000000000000000001000001DB0000018B000000000000A8C000000000000000000000000000000000000000080001388000000001000000017FFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000064000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001FFFFFFFF000000004E4F4E4F0000000000000000000000000000000000000001000000010000000100000001000000010000000100000001000000000003030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030000000100000064000000000000000000000000000000000000001F000000000000006400000000000093F4000093F4000000D5000000F7000000AD00000088000000920000008C0000009C00000000000000000000000000000000000000000000000000000004000027900000001B00004E6200000014000028380000002800004E3E0000002368493DC60000000000000000000000000000000000000000000100000000000000A937000007D10000271100000000000027116E69656F00000000000000000000000000000000000000000000000F0000000000000000000001DB0000018B0000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000001000000000000000000000000000000000000000000000000000000000000000000000000")
//t1 = t1[17:]
fmt.Println(t1[:40])
s.Head.Version = "7"
s.Head.UserID = 10001
s.Head.Result = 0
//s //return data.Head.Pack(t1[17:])[:40]
return s.Head.Pack(t1[17:]) //返回传参
//return t1[:40]
}
func (l *InInfo) CheakSession() bool {
// tt, _ := cool.CacheManager.Keys(context.Background())
//g.Dump(tt)

View File

@@ -17,7 +17,7 @@ type InInfo struct {
Point model.Pos `fieldDesc:"直接给坐标xy"`
// Reverse2: 暂定 占位字符2
Reverse2 string `struc:"[2]byte"`
//Reverse2 string `struc:"[2]byte"`
}
func (t *InInfo) Broadcast(mapid uint32, o OutInfo) {

View File

@@ -1,6 +1,10 @@
package maps
import "blazing/common/socket/handler"
import (
"blazing/common/data/entity"
"blazing/common/socket/handler"
"blazing/logic/service/space"
)
type LeaveMapOutboundInfo struct {
// 米米号
@@ -10,3 +14,12 @@ type LeaveMapOutboundInfo struct {
type LeaveMapInboundInfo struct {
Head handler.TomeeHeader `cmd:"2002" struc:"[0]pad"` //切换地图
}
func (t *LeaveMapInboundInfo) Broadcast(mapid uint32, o LeaveMapOutboundInfo) {
space.GetPlanet(mapid).Range(func(playerID uint32, player *entity.Player) bool {
player.SendPack(t.Head.Pack(o))
return true
})
}