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_LOGIN, MessageHandlerFunc(PlayerLogin))
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer)) m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(SendToPlayer))
} else { } else {
m.RegisterHandler(msg.HANDLE_MOD_PLAYER_MSG, MessageHandlerFunc(PlayerMsgHandler))
} }
} }
@ -132,6 +132,24 @@ func SendToPlayer(data *msg.Msg) (interface{}, error) {
return nil, nil 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) { func (m *MessageMgr) Use(middleware MessageMiddleware) {
m.middlewares = append(m.middlewares, middleware) m.middlewares = append(m.middlewares, middleware)
@ -209,6 +227,19 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error {
// 兼容旧版本的函数 // 兼容旧版本的函数
func MessageHandle(m *msg.Msg) error { func MessageHandle(m *msg.Msg) error {
log.Debug("RecvMessage m %v", m) 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 的处理方法 // 这里可以调用 MessageMgr 的处理方法
G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) G_GameLogicPtr.MessageMgr.MessageHandleAsync(m)
return nil return nil

View File

@ -23,6 +23,7 @@ const (
HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息 HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息
HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息 HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息
HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息 HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息
HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息
) )
const ( 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 { if m == nil {
return return nil
} }
p.wg.Add(1) p.wg.Add(1)
p.msgChan <- m p.msgChan <- m
return nil
} }
func (p *Player) Call(m MsgMod.Msg) { 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_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_1 TIME_LINE_TYPE = 10 // 卡牌交换成功
TIME_LINE_TYPE_LOG_TYPE_CARD_EX_SUCCESS_2 TIME_LINE_TYPE = 11 // 卡牌交换成功 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_FRIEND_DELETE TIME_LINE_TYPE = 14 // 删除好友
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 13 // 非小猫游戏,他人偷走了玩家的猫币 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_VISIT TIME_LINE_TYPE = 15 // 非小猫游戏,他人偷走了玩家的猫币
TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 14 // 图鉴收集 TIME_LINE_TYPE_LOG_TYPE_HANDBOOK TIME_LINE_TYPE = 16 // 图鉴收集
TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 15 // 图鉴点赞 TIME_LINE_TYPE_LOG_TYPE_HANDBOOK_UPVOTE TIME_LINE_TYPE = 17 // 图鉴点赞
TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 16 // 充值赠送 TIME_LINE_TYPE_LOG_TYPE_CHARGE_SEND TIME_LINE_TYPE = 18 // 赠送充值礼物
TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVED TIME_LINE_TYPE = 17 // 充值接受 TIME_LINE_TYPE_LOG_TYPE_CHARGE_RECEIVE TIME_LINE_TYPE = 19 // 收到充值礼物
TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 18 // 心愿单 TIME_LINE_TYPE_LOG_TYPE_WISH TIME_LINE_TYPE = 20 // 心愿单请求
TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 19 // NPC成为好友 TIME_LINE_TYPE_LOG_TYPE_FRIEND_BECOME_NPC TIME_LINE_TYPE = 21 // npc成为好友
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 20 // playroom点赞 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_UPVOTE TIME_LINE_TYPE = 22 // playroom点赞
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 21 // 竞标赛排名 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CHAMPSHIP TIME_LINE_TYPE = 23 // 竞标赛排名
TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 22 // 宠物宝藏 TIME_LINE_TYPE_LOG_TYPE_TREASURE TIME_LINE_TYPE = 24 // 好友宝藏
TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 23 // 收到赠送卡牌 TIME_LINE_TYPE_LOG_TYPE_CARD_SEND_ACCEPT TIME_LINE_TYPE = 25 // 收到赠送卡牌
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 24 // 小猫游戏,给小猫成功装箱 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_WIN TIME_LINE_TYPE = 26 // 小猫游戏,给小猫成功装箱
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 25 // 小猫游戏,装箱小猫未成功 TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功
TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 26 // 接受卡牌请求 TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求
TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 27 // 邀请注册 TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册
TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 28 // 宠物宝藏帮助 TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 好友宝藏帮助
TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 29 // 好友赞助体力 TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR TIME_LINE_TYPE = 31 // 好友赞助体力
TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 30 // 获得好友赞助体力 TIME_LINE_TYPE_LOG_TYPE_FRIEND_SPONSOR_GET TIME_LINE_TYPE = 32 // 获得好友赞助体力
) )
// Enum value maps for TIME_LINE_TYPE. // Enum value maps for TIME_LINE_TYPE.
@ -723,25 +723,25 @@ var (
9: "LOG_TYPE_CARD_SELECT_SEND", 9: "LOG_TYPE_CARD_SELECT_SEND",
10: "LOG_TYPE_CARD_EX_SUCCESS_1", 10: "LOG_TYPE_CARD_EX_SUCCESS_1",
11: "LOG_TYPE_CARD_EX_SUCCESS_2", 11: "LOG_TYPE_CARD_EX_SUCCESS_2",
12: "LOG_TYPE_FRIEND_DELETE", 14: "LOG_TYPE_FRIEND_DELETE",
13: "LOG_TYPE_PLAYROOM_VISIT", 15: "LOG_TYPE_PLAYROOM_VISIT",
14: "LOG_TYPE_HANDBOOK", 16: "LOG_TYPE_HANDBOOK",
15: "LOG_TYPE_HANDBOOK_UPVOTE", 17: "LOG_TYPE_HANDBOOK_UPVOTE",
16: "LOG_TYPE_CHARGE_SEND", 18: "LOG_TYPE_CHARGE_SEND",
17: "LOG_TYPE_CHARGE_RECEIVED", 19: "LOG_TYPE_CHARGE_RECEIVE",
18: "LOG_TYPE_WISH", 20: "LOG_TYPE_WISH",
19: "LOG_TYPE_FRIEND_BECOME_NPC", 21: "LOG_TYPE_FRIEND_BECOME_NPC",
20: "LOG_TYPE_PLAYROOM_UPVOTE", 22: "LOG_TYPE_PLAYROOM_UPVOTE",
21: "LOG_TYPE_PLAYROOM_CHAMPSHIP", 23: "LOG_TYPE_PLAYROOM_CHAMPSHIP",
22: "LOG_TYPE_TREASURE", 24: "LOG_TYPE_TREASURE",
23: "LOG_TYPE_CARD_SEND_ACCEPT", 25: "LOG_TYPE_CARD_SEND_ACCEPT",
24: "LOG_TYPE_PLAYROOM_CAT_WIN", 26: "LOG_TYPE_PLAYROOM_CAT_WIN",
25: "LOG_TYPE_PLAYROOM_CAT_LOSE", 27: "LOG_TYPE_PLAYROOM_CAT_LOSE",
26: "LOG_TYPE_CARD_GIVE_ACCEPT", 28: "LOG_TYPE_CARD_GIVE_ACCEPT",
27: "LOG_TYPE_FRIEND_INVITE", 29: "LOG_TYPE_FRIEND_INVITE",
28: "LOG_TYPE_TREASURE_HELP", 30: "LOG_TYPE_TREASURE_HELP",
29: "LOG_TYPE_FRIEND_SPONSOR", 31: "LOG_TYPE_FRIEND_SPONSOR",
30: "LOG_TYPE_FRIEND_SPONSOR_GET", 32: "LOG_TYPE_FRIEND_SPONSOR_GET",
} }
TIME_LINE_TYPE_value = map[string]int32{ TIME_LINE_TYPE_value = map[string]int32{
"DEFAULT": 0, "DEFAULT": 0,
@ -756,25 +756,25 @@ var (
"LOG_TYPE_CARD_SELECT_SEND": 9, "LOG_TYPE_CARD_SELECT_SEND": 9,
"LOG_TYPE_CARD_EX_SUCCESS_1": 10, "LOG_TYPE_CARD_EX_SUCCESS_1": 10,
"LOG_TYPE_CARD_EX_SUCCESS_2": 11, "LOG_TYPE_CARD_EX_SUCCESS_2": 11,
"LOG_TYPE_FRIEND_DELETE": 12, "LOG_TYPE_FRIEND_DELETE": 14,
"LOG_TYPE_PLAYROOM_VISIT": 13, "LOG_TYPE_PLAYROOM_VISIT": 15,
"LOG_TYPE_HANDBOOK": 14, "LOG_TYPE_HANDBOOK": 16,
"LOG_TYPE_HANDBOOK_UPVOTE": 15, "LOG_TYPE_HANDBOOK_UPVOTE": 17,
"LOG_TYPE_CHARGE_SEND": 16, "LOG_TYPE_CHARGE_SEND": 18,
"LOG_TYPE_CHARGE_RECEIVED": 17, "LOG_TYPE_CHARGE_RECEIVE": 19,
"LOG_TYPE_WISH": 18, "LOG_TYPE_WISH": 20,
"LOG_TYPE_FRIEND_BECOME_NPC": 19, "LOG_TYPE_FRIEND_BECOME_NPC": 21,
"LOG_TYPE_PLAYROOM_UPVOTE": 20, "LOG_TYPE_PLAYROOM_UPVOTE": 22,
"LOG_TYPE_PLAYROOM_CHAMPSHIP": 21, "LOG_TYPE_PLAYROOM_CHAMPSHIP": 23,
"LOG_TYPE_TREASURE": 22, "LOG_TYPE_TREASURE": 24,
"LOG_TYPE_CARD_SEND_ACCEPT": 23, "LOG_TYPE_CARD_SEND_ACCEPT": 25,
"LOG_TYPE_PLAYROOM_CAT_WIN": 24, "LOG_TYPE_PLAYROOM_CAT_WIN": 26,
"LOG_TYPE_PLAYROOM_CAT_LOSE": 25, "LOG_TYPE_PLAYROOM_CAT_LOSE": 27,
"LOG_TYPE_CARD_GIVE_ACCEPT": 26, "LOG_TYPE_CARD_GIVE_ACCEPT": 28,
"LOG_TYPE_FRIEND_INVITE": 27, "LOG_TYPE_FRIEND_INVITE": 29,
"LOG_TYPE_TREASURE_HELP": 28, "LOG_TYPE_TREASURE_HELP": 30,
"LOG_TYPE_FRIEND_SPONSOR": 29, "LOG_TYPE_FRIEND_SPONSOR": 31,
"LOG_TYPE_FRIEND_SPONSOR_GET": 30, "LOG_TYPE_FRIEND_SPONSOR_GET": 32,
} }
) )
@ -24168,7 +24168,7 @@ func (x *ReqPlayroomGameShowReward) GetSelectId() int32 {
type ResPlayroomGameShowReward struct { type ResPlayroomGameShowReward struct {
state protoimpl.MessageState `protogen:"open.v1"` 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 unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@ -29415,7 +29415,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
"\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" + "\x04Type\x18\x01 \x01(\x05R\x04Type\x12\x1a\n" +
"\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" + "\bSelectId\x18\x02 \x01(\x05R\bSelectId\"E\n" +
"\x19ResPlayroomGameShowReward\x12(\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" + "\x13ReqPlayroomInteract\x12\x0e\n" +
"\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" + "\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" +
"\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" + "\x04Type\x18\x02 \x01(\x05R\x04Type\"q\n" +
@ -29769,7 +29769,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
"\n" + "\n" +
"CODE_LOGIN\x10\x01\x12\x10\n" + "CODE_LOGIN\x10\x01\x12\x10\n" +
"\fDEVICE_LOGIN\x10\x02\x12\r\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" + "\x0eTIME_LINE_TYPE\x12\v\n" +
"\aDEFAULT\x10\x00\x12\x19\n" + "\aDEFAULT\x10\x00\x12\x19\n" +
"\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\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" + "\x1aLOG_TYPE_CARD_EX_SUCCESS_1\x10\n" +
"\x12\x1e\n" + "\x12\x1e\n" +
"\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" + "\x1aLOG_TYPE_CARD_EX_SUCCESS_2\x10\v\x12\x1a\n" +
"\x16LOG_TYPE_FRIEND_DELETE\x10\f\x12\x1b\n" + "\x16LOG_TYPE_FRIEND_DELETE\x10\x0e\x12\x1b\n" +
"\x17LOG_TYPE_PLAYROOM_VISIT\x10\r\x12\x15\n" + "\x17LOG_TYPE_PLAYROOM_VISIT\x10\x0f\x12\x15\n" +
"\x11LOG_TYPE_HANDBOOK\x10\x0e\x12\x1c\n" + "\x11LOG_TYPE_HANDBOOK\x10\x10\x12\x1c\n" +
"\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x0f\x12\x18\n" + "\x18LOG_TYPE_HANDBOOK_UPVOTE\x10\x11\x12\x18\n" +
"\x14LOG_TYPE_CHARGE_SEND\x10\x10\x12\x1c\n" + "\x14LOG_TYPE_CHARGE_SEND\x10\x12\x12\x1b\n" +
"\x18LOG_TYPE_CHARGE_RECEIVED\x10\x11\x12\x11\n" + "\x17LOG_TYPE_CHARGE_RECEIVE\x10\x13\x12\x11\n" +
"\rLOG_TYPE_WISH\x10\x12\x12\x1e\n" + "\rLOG_TYPE_WISH\x10\x14\x12\x1e\n" +
"\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x13\x12\x1c\n" + "\x1aLOG_TYPE_FRIEND_BECOME_NPC\x10\x15\x12\x1c\n" +
"\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x14\x12\x1f\n" + "\x18LOG_TYPE_PLAYROOM_UPVOTE\x10\x16\x12\x1f\n" +
"\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x15\x12\x15\n" + "\x1bLOG_TYPE_PLAYROOM_CHAMPSHIP\x10\x17\x12\x15\n" +
"\x11LOG_TYPE_TREASURE\x10\x16\x12\x1d\n" + "\x11LOG_TYPE_TREASURE\x10\x18\x12\x1d\n" +
"\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x17\x12\x1d\n" + "\x19LOG_TYPE_CARD_SEND_ACCEPT\x10\x19\x12\x1d\n" +
"\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x18\x12\x1e\n" + "\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x1a\x12\x1e\n" +
"\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x19\x12\x1d\n" + "\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x1b\x12\x1d\n" +
"\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1a\x12\x1a\n" + "\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1c\x12\x1a\n" +
"\x16LOG_TYPE_FRIEND_INVITE\x10\x1b\x12\x1a\n" + "\x16LOG_TYPE_FRIEND_INVITE\x10\x1d\x12\x1a\n" +
"\x16LOG_TYPE_TREASURE_HELP\x10\x1c\x12\x1b\n" + "\x16LOG_TYPE_TREASURE_HELP\x10\x1e\x12\x1b\n" +
"\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1d\x12\x1f\n" + "\x17LOG_TYPE_FRIEND_SPONSOR\x10\x1f\x12\x1f\n" +
"\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10\x1e*\x9b\x01\n" + "\x1bLOG_TYPE_FRIEND_SPONSOR_GET\x10 *\x9b\x01\n" +
"\rCHESS_EX_TYPE\x12\x11\n" + "\rCHESS_EX_TYPE\x12\x11\n" +
"\rCHESS_EX_NONE\x10\x00\x12\x13\n" + "\rCHESS_EX_NONE\x10\x00\x12\x13\n" +
"\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" + "\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" +