diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index e14f1684..239355a5 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -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 diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index ae3bb7fa..2438d245 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -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 ( diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index aa6b369b..2baf0277 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -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) { diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index acdf437d..e82fd23d 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -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" +