This commit is contained in:
hahwu 2025-12-18 19:14:38 +08:00
parent 1feed48e0f
commit bc6320d11d
4 changed files with 115 additions and 82 deletions

View File

@ -77,7 +77,7 @@ func (m *MessageMgr) MessageMgrInit() {
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_LOGIN, MessageHandlerFunc(PlayerLogin))
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer))
} else {
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler))
}
}
@ -132,6 +132,24 @@ func SendToPlayer(data *msg.Msg) (interface{}, error) {
return nil, nil
}
func PlayerMsgHandler(data *msg.Msg) (interface{}, error) {
p := G_GameLogicPtr.GetPlayer(int64(data.To))
// 不在线 不处理
if p == nil || p.stop {
// TODO: 模拟消费
data.HandleType = msg.HANDLE_MOD_COMSUME_MSG
go SendMsgToCenter(data)
return nil, nil
}
p.lock.Lock()
defer p.lock.Unlock()
p.Send(data.Clone())
// 处理完后发送消费消息
data.HandleType = msg.HANDLE_MOD_COMSUME_MSG
go SendMsgToCenter(data)
return nil, nil
}
// 添加中间件
func (m *MessageMgr) Use(middleware MessageMiddleware) {
m.middlewares = append(m.middlewares, middleware)
@ -209,6 +227,19 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error {
// 兼容旧版本的函数
func MessageHandle(m *msg.Msg) error {
log.Debug("RecvMessage m %v", m)
SendMsgToCenter(&msg.Msg{
From: 10000,
Extra: conf.Server.ServerID,
HandleType: msg.HANDLE_MOD_PLAYER_LOGIN,
})
time.Sleep(time.Second)
SendMsgToCenter(&msg.Msg{
From: 10000,
To: 10000,
Type: msg.HANDLE_TYPE_LOGIN,
Extra: conf.Server.ServerID,
HandleType: msg.HANDLE_MOD_PLAYER_MSG,
})
// 这里可以调用 MessageMgr 的处理方法
G_GameLogicPtr.MessageMgr.MessageHandleAsync(m)
return nil

View File

@ -23,6 +23,7 @@ const (
HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息
HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息
HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息
HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息
)
const (

View File

@ -101,12 +101,13 @@ func (p *Player) CallEvent(Duration time.Duration, F func(), Label string) {
}
// 异步请求
func (p *Player) Send(m *MsgMod.Msg) {
func (p *Player) Send(m *MsgMod.Msg) error {
if m == nil {
return
return nil
}
p.wg.Add(1)
p.msgChan <- m
return nil
}
func (p *Player) Call(m MsgMod.Msg) {

View File

@ -687,25 +687,25 @@ const (
TIME_LINE_TYPE_LOG_TYPE_CARD_SELECT_SEND TIME_LINE_TYPE = 9 // 选择卡牌交换
TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_1 TIME_LINE_TYPE = 10 // 卡牌交换成功
TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_2 TIME_LINE_TYPE = 11 // 卡牌交换成功
TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 12 // 删除好友
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 13 // 非小猫游戏,他人偷走了玩家的猫币
TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 14 // 图鉴收集
TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 15 // 图鉴点赞
TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 16 // 充值赠送
TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 17 // 充值接受
TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 18 // 心愿单
TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 19 // NPC成为好友
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 20 // playroom点赞
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 21 // 竞标赛排名
TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 22 // 宠物宝藏
TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 23 // 收到赠送卡牌
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 24 // 小猫游戏,给小猫成功装箱
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 25 // 小猫游戏,装箱小猫未成功
TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 26 // 接受卡牌请求
TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 27 // 邀请注册
TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 28 // 宠物宝藏帮助
TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 29 // 好友赞助体力
TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 30 // 获得好友赞助体力
TIME_LINE_TYPE_LOG_TYPE_FRIEND_DELETE TIME_LINE_TYPE = 14 // 删除好友
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 15 // 非小猫游戏,他人偷走了玩家的猫币
TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 16 // 图鉴收集
TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 17 // 图鉴点赞
TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 赠送充值礼物
TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVE TIME_LINE_TYPE = 19 // 收到充值礼物
TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单请求
TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // npc成为好友
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 22 // playroom点赞
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 23 // 竞标赛排名
TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 好友宝藏
TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 25 // 收到赠送卡牌
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 26 // 小猫游戏,给小猫成功装箱
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功
TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求
TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册
TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 好友宝藏帮助
TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 31 // 好友赞助体力
TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 32 // 获得好友赞助体力
)
// Enum value maps for TIME_LINE_TYPE.
@ -723,25 +723,25 @@ var (
9: "LOG_TYPE_CARD_SELECT_SEND",
10: "LOG_TYPE_CARD_EX_SUCCESS_1",
11: "LOG_TYPE_CARD_EX_SUCCESS_2",
12: "LOG_TYPE_FRIEND_DELETE",
13: "LOG_TYPE_PLAYROOM_VISIT",
14: "LOG_TYPE_HANDBOOK",
15: "LOG_TYPE_HANDBOOK_UPVOTE",
16: "LOG_TYPE_CHARGE_SEND",
17: "LOG_TYPE_CHARGE_RECEIVED",
18: "LOG_TYPE_WISH",
19: "LOG_TYPE_FRIEND_BECOME_NPC",
20: "LOG_TYPE_PLAYROOM_UPVOTE",
21: "LOG_TYPE_PLAYROOM_CHAMPSHIP",
22: "LOG_TYPE_TREASURE",
23: "LOG_TYPE_CARD_SEND_ACCEPT",
24: "LOG_TYPE_PLAYROOM_CAT_WIN",
25: "LOG_TYPE_PLAYROOM_CAT_LOSE",
26: "LOG_TYPE_CARD_GIVE_ACCEPT",
27: "LOG_TYPE_FRIEND_INVITE",
28: "LOG_TYPE_TREASURE_HELP",
29: "LOG_TYPE_FRIEND_SPONSOR",
30: "LOG_TYPE_FRIEND_SPONSOR_GET",
14: "LOG_TYPE_FRIEND_DELETE",
15: "LOG_TYPE_PLAYROOM_VISIT",
16: "LOG_TYPE_HANDBOOK",
17: "LOG_TYPE_HANDBOOK_UPVOTE",
18: "LOG_TYPE_CHARGE_SEND",
19: "LOG_TYPE_CHARGE_RECEIVE",
20: "LOG_TYPE_WISH",
21: "LOG_TYPE_FRIEND_BECOME_NPC",
22: "LOG_TYPE_PLAYROOM_UPVOTE",
23: "LOG_TYPE_PLAYROOM_CHAMPSHIP",
24: "LOG_TYPE_TREASURE",
25: "LOG_TYPE_CARD_SEND_ACCEPT",
26: "LOG_TYPE_PLAYROOM_CAT_WIN",
27: "LOG_TYPE_PLAYROOM_CAT_LOSE",
28: "LOG_TYPE_CARD_GIVE_ACCEPT",
29: "LOG_TYPE_FRIEND_INVITE",
30: "LOG_TYPE_TREASURE_HELP",
31: "LOG_TYPE_FRIEND_SPONSOR",
32: "LOG_TYPE_FRIEND_SPONSOR_GET",
}
TIME_LINE_TYPE_value = map[string]int32{
"DEFAULT": 0,
@ -756,25 +756,25 @@ var (
"LOG_TYPE_CARD_SELECT_SEND": 9,
"LOG_TYPE_CARD_EX_SUCCESS_1": 10,
"LOG_TYPE_CARD_EX_SUCCESS_2": 11,
"LOG_TYPE_FRIEND_DELETE": 12,
"LOG_TYPE_PLAYROOM_VISIT": 13,
"LOG_TYPE_HANDBOOK": 14,
"LOG_TYPE_HANDBOOK_UPVOTE": 15,
"LOG_TYPE_CHARGE_SEND": 16,
"LOG_TYPE_CHARGE_RECEIVED": 17,
"LOG_TYPE_WISH": 18,
"LOG_TYPE_FRIEND_BECOME_NPC": 19,
"LOG_TYPE_PLAYROOM_UPVOTE": 20,
"LOG_TYPE_PLAYROOM_CHAMPSHIP": 21,
"LOG_TYPE_TREASURE": 22,
"LOG_TYPE_CARD_SEND_ACCEPT": 23,
"LOG_TYPE_PLAYROOM_CAT_WIN": 24,
"LOG_TYPE_PLAYROOM_CAT_LOSE": 25,
"LOG_TYPE_CARD_GIVE_ACCEPT": 26,
"LOG_TYPE_FRIEND_INVITE": 27,
"LOG_TYPE_TREASURE_HELP": 28,
"LOG_TYPE_FRIEND_SPONSOR": 29,
"LOG_TYPE_FRIEND_SPONSOR_GET": 30,
"LOG_TYPE_FRIEND_DELETE": 14,
"LOG_TYPE_PLAYROOM_VISIT": 15,
"LOG_TYPE_HANDBOOK": 16,
"LOG_TYPE_HANDBOOK_UPVOTE": 17,
"LOG_TYPE_CHARGE_SEND": 18,
"LOG_TYPE_CHARGE_RECEIVE": 19,
"LOG_TYPE_WISH": 20,
"LOG_TYPE_FRIEND_BECOME_NPC": 21,
"LOG_TYPE_PLAYROOM_UPVOTE": 22,
"LOG_TYPE_PLAYROOM_CHAMPSHIP": 23,
"LOG_TYPE_TREASURE": 24,
"LOG_TYPE_CARD_SEND_ACCEPT": 25,
"LOG_TYPE_PLAYROOM_CAT_WIN": 26,
"LOG_TYPE_PLAYROOM_CAT_LOSE": 27,
"LOG_TYPE_CARD_GIVE_ACCEPT": 28,
"LOG_TYPE_FRIEND_INVITE": 29,
"LOG_TYPE_TREASURE_HELP": 30,
"LOG_TYPE_FRIEND_SPONSOR": 31,
"LOG_TYPE_FRIEND_SPONSOR_GET": 32,
}
)
@ -24168,7 +24168,7 @@ func (x *ReqPlayroomGameShowReward) GetSelectId() int32 {
type ResPlayroomGameShowReward struct {
state protoimpl.MessageState `protogen:"open.v1"`
Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具
Items []*ItemInfo `protobuf:"bytes,5,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励道具
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -29415,7 +29415,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
"\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" +
"\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" +
"\x19ResPlayroomGameShowReward\x12(\n" +
"\x05Items\x18\x01 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" +
"\x05Items\x18\x05 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"9\n" +
"\x13ReqPlayroomInteract\x12\x0e\n" +
"\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" +
"\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" +
@ -29769,7 +29769,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
"\n" +
"CODE_LOGIN\x10\x01\x12\x10\n" +
"\fDEVICE_LOGIN\x10\x02\x12\r\n" +
"\tSDK_LOGIN\x10\x03*\xf7\x06\n" +
"\tSDK_LOGIN\x10\x03*\xf6\x06\n" +
"\x0eTIME_LINE_TYPE\x12\v\n" +
"\aDEFAULT\x10\x00\x12\x19\n" +
"\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\n" +
@ -29784,25 +29784,25 @@ const file_proto_Gameapi_proto_rawDesc = "" +
"\x1aLOG_TYPE_CARD_EX_SUCCESS_1\x10\n" +
"\x12\x1e\n" +
"\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" +
"\x16LOG_TYPE_FRIEND_DELETE\x10\f\x12\x1b\n" +
"\x17LOG_TYPE_PLAYROOM_VISIT\x10\r\x12\x15\n" +
"\x11LOG_TYPE_HANDBOOK\x10\x0e\x12\x1c\n" +
"\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x0f\x12\x18\n" +
"\x14LOG_TYPE_CHARGE_SEND\x10\x10\x12\x1c\n" +
"\x18LOG_TYPE_CHARGE_RECEIVED\x10\x11\x12\x11\n" +
"\rLOG_TYPE_WISH\x10\x12\x12\x1e\n" +
"\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x13\x12\x1c\n" +
"\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x14\x12\x1f\n" +
"\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x15\x12\x15\n" +
"\x11LOG_TYPE_TREASURE\x10\x16\x12\x1d\n" +
"\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x17\x12\x1d\n" +
"\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x18\x12\x1e\n" +
"\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x19\x12\x1d\n" +
"\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1a\x12\x1a\n" +
"\x16LOG_TYPE_FRIEND_INVITE\x10\x1b\x12\x1a\n" +
"\x16LOG_TYPE_TREASURE_HELP\x10\x1c\x12\x1b\n" +
"\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1d\x12\x1f\n" +
"\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10\x1e*\x9b\x01\n" +
"\x16LOG_TYPE_FRIEND_DELETE\x10\x0e\x12\x1b\n" +
"\x17LOG_TYPE_PLAYROOM_VISIT\x10\x0f\x12\x15\n" +
"\x11LOG_TYPE_HANDBOOK\x10\x10\x12\x1c\n" +
"\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x11\x12\x18\n" +
"\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1b\n" +
"\x17LOG_TYPE_CHARGE_RECEIVE\x10\x13\x12\x11\n" +
"\rLOG_TYPE_WISH\x10\x14\x12\x1e\n" +
"\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x15\x12\x1c\n" +
"\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x16\x12\x1f\n" +
"\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x17\x12\x15\n" +
"\x11LOG_TYPE_TREASURE\x10\x18\x12\x1d\n" +
"\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x19\x12\x1d\n" +
"\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x1a\x12\x1e\n" +
"\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x1b\x12\x1d\n" +
"\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1c\x12\x1a\n" +
"\x16LOG_TYPE_FRIEND_INVITE\x10\x1d\x12\x1a\n" +
"\x16LOG_TYPE_TREASURE_HELP\x10\x1e\x12\x1b\n" +
"\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1f\x12\x1f\n" +
"\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10 *\x9b\x01\n" +
"\rCHESS_EX_TYPE\x12\x11\n" +
"\rCHESS_EX_NONE\x10\x00\x12\x13\n" +
"\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" +