首先需要知道加载子游戏房间列表是调用存储过程GSP_GS_LoadGameRoomItem
内容如下:
-- 执行逻辑
BEGIN
-- 加载房间
SELECT GameRoomInfo.*, GameGameItem.GameName, GameGameItem.ServerVersion, GameGameItem.ClientVersion,
GameGameItem.ServerDLLName, GameGameItem.ClientExeName
FROM GameRoomInfo(NOLOCK), GameGameItem(NOLOCK)
WHERE GameRoomInfo.GameID=GameGameItem.GameID AND ((@wServerID=ServerID) OR (@wServerID=0))
AND ((ServiceMachine=@strMachineID) OR (@strMachineID=''))
ORDER BY GameName,ServerName
END
由此可以看出网狐创建房间的时候将子游戏房间与本机的mac地址绑定了,所以放到别的机器上读取不到房间列表了。
原因知道了,下面说下解决方法:
1 修改存储过程
将存储过程GSP_GS_LoadGameRoomItem中“AND ((ServiceMachine=@strMachineID) OR (@strMachineID='')”删除后重新执行存储过程脚本即可。
2 查看本机mac地址,然后替换GameRoomInfo表中的ServiceMachine字段信息
a. 运行加密器工具,查看机器标识
b.执行如下sql更新脚本:
update GameRoomInfo
set ServiceMachine = '你的机器标识字符串'
上面两种方法任选一种操作后,加载房间得到如下图:
|