refactor(logic): 优化登录和地图相关逻辑
- 登录逻辑中添加了默认用户信息 - 优化了地图进入和退出的广播逻辑 - 调整了数据结构和方法,提高了代码可读性和可维护性
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -17,7 +17,7 @@ type InInfo struct {
|
||||
Point model.Pos `fieldDesc:"直接给坐标x,y"`
|
||||
|
||||
// Reverse2: 暂定 占位字符2
|
||||
Reverse2 string `struc:"[2]byte"`
|
||||
//Reverse2 string `struc:"[2]byte"`
|
||||
}
|
||||
|
||||
func (t *InInfo) Broadcast(mapid uint32, o OutInfo) {
|
||||
|
||||
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user