--请求匹配 functionM.do_match_game(player_id, pack_body) --log.info("do_match_game >>> ",player_id, pack_body) local game_id = pack_body.game_id local game_server = GAME_ID_ENUM[game_id] ifnot game_server then log.error("do_match_game not exists gameid ", game_id) returnnil, errorcode.GAME_NOT_EXISTS, "GAME_NOT_EXISTS" end
local game_room_info = game_redis.get_game_room_info(player_id) if game_room_info andnext(game_room_info) then log.error("exists game_room_info ",player_id, game_room_info) return end
--log.info("do_match_game2 >>> ",player_id, pack_body) ifnot rpc_matchserver_match.match(game_server, player_id) then returnnil end --log.info("do_match_game3 >>> ",player_id, pack_body) --回复匹配 match_msg:match_game_res(player_id, {game_id = game_id})
--匹配 functionM.match(game_server, player_id) local ret = frpc_client:instance("matchserver", "match_m", game_server):one_balance_call_by_name("match", player_id) ifnot ret thenreturnend
--清除出redis匹配集合 local script_str = [[ local key = KEYS[1] for i = 1,#ARGV do local player_id = ARGV[i] local rank = redis.call('zrank', key, player_id) if not rank then return 0 end end
for i = 1,#ARGV do redis.call('zrem', key, ARGV[i]) end return 1 ]]
--通知游戏服记录游戏房间信息 g_game_cli:set_svr_id(svr_id) local ret = g_game_cli:byid_mod_call("set_game_room_info", game_info_map) --记录游戏房间信息 --log.info("set_game_room_info ret >>>", ret) ifnot ret then log.warn("set_game_room_info err ", svr_name, svr_id, table_id) return end
for l_player_id,info inpairs(game_info_map) do --通知加入对局 local svr_id = player_util.get_svr_id_by_player_id(l_player_id) --log.info("get_svr_id_by_player_id >>> ",l_player_id, svr_id) local hallcli = frpc_client:instance("hallserver", "room_game_hall_m") hallcli:set_svr_id(svr_id) --指定服 hallcli:set_mod_num(l_player_id) --指定mod_num hallcli:byid_mod_send("match_join_game", l_player_id, info.token, host, table_id) end