修改底层map

This commit is contained in:
1
2025-10-10 04:49:23 +00:00
parent ac671408f7
commit df6606b021
10 changed files with 54 additions and 103 deletions

View File

@@ -4,8 +4,6 @@ import (
"blazing/common/socket/errorcode"
"blazing/cool"
"blazing/logic/service/common"
"blazing/logic/service/player"
"blazing/logic/service/space"
"blazing/logic/service/user"
@@ -28,10 +26,10 @@ func (h *Controller) ChangePlayerName(data *user.ChangePlayerNameInboundInfo, c
Nickname: newnice,
UserID: c.Info.UserID,
}
space.GetSpace(c.Info.MapID).Range(func(playerID uint32, player common.PlayerI) bool {
for _, player := range space.GetSpace(c.Info.MapID).User.Items() {
player.SendPack(data.Head.Pack(&result))
return true
})
}
return result, 0
}

View File

@@ -5,7 +5,6 @@ import (
"blazing/common/socket/errorcode"
"blazing/logic/service/common"
"blazing/logic/service/user"
"blazing/logic/service/maps"
@@ -72,7 +71,7 @@ func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c *player.Conn) (result *us
t.CompleteLogin() //通知客户端登录成功
glog.Debug(context.Background(), "登录成功,初始地图 人数:", space.GetSpace(t.Info.MapID).Len())
glog.Debug(context.Background(), "登录成功,初始地图 人数:", space.GetSpace(t.Info.MapID).User.Count())
result = user.NewOutInfo() //设置登录消息
@@ -81,12 +80,12 @@ func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c *player.Conn) (result *us
tt := maps.NewOutInfo()
//copier.Copy(t.Info, tt)
t1 := player.NewTomeeHeader(2001, t.Info.UserID)
defer space.GetSpace(t.Info.MapID).Set(t.Info.UserID, t).Range(func(playerID uint32, player common.PlayerI) bool {
player.SendPack(t1.Pack(&tt))
return true
})
defer space.GetSpace(t.Info.MapID).User.Set(t.Info.UserID, t)
defer func() {
for _, v := range space.GetSpace(t.Info.MapID).User.Items() {
v.SendPack(t1.Pack(&tt))
}
}()
return result, 0

View File

@@ -3,7 +3,6 @@ package controller
import (
"blazing/common/socket/errorcode"
"blazing/logic/service/common"
"blazing/logic/service/maphot"
"blazing/logic/service/maps"
"blazing/logic/service/player"
@@ -14,9 +13,9 @@ import (
func (h *Controller) MapEnter(data *maps.InInfo, c *player.Player) (result *maps.OutInfo, err errorcode.ErrorCode) { //这个时候player应该是空的
c.Info.MapID = data.MapId //登录地图
t := space.GetSpace(c.Info.MapID)
t.Set(c.Info.UserID, c) //添加玩家
c.Info.MapID = data.MapId //登录地图
space.GetSpace(c.Info.MapID).User.Set(c.Info.UserID, c) //添加玩家
result = maps.NewOutInfo()
c.Info.Pos = data.Point
copier.Copy(result, c.Info)
@@ -38,7 +37,7 @@ func (h *Controller) MapLeave(data *maps.LeaveMapInboundInfo, c *player.Player)
//result = &maps.LeaveMapOutboundInfo{UserID: c.GetUserID()}
c.Canmon = false //可以刷怪
data.Broadcast(c.Info.MapID, space.LeaveMapOutboundInfo{UserID: c.Info.UserID}) //同步广播
space.GetSpace(c.Info.MapID).Delete(c.Info.UserID)
space.GetSpace(c.Info.MapID).User.Remove(c.Info.UserID)
// 如果有正在运行的刷怪协程,发送停止信号
c.Info.MapID = 0 // 重置当前地图
@@ -49,12 +48,11 @@ func (h *Controller) MapList(data *maps.ListMapPlayerInboundInfo, c *player.Play
result = &maps.ListMapPlayerOutboundInfo{}
result.Player = make([]maps.OutInfo, 0)
space.GetSpace(c.Info.MapID).Range(func(userID uint32, player common.PlayerI) bool {
for _, v := range space.GetSpace(c.Info.MapID).User.Items() {
result1 := maps.NewOutInfo()
copier.Copy(result1, player.GetInfo())
copier.Copy(result1, v.GetInfo())
result.Player = append(result.Player, *result1)
return true
})
}
c.Canmon = true //可以刷怪
return
}