关于问道1.6架设的一些问题探索交流
疫情在家,闲极无聊,想找个游戏玩玩,无意间找到个游戏源码的网站,下载了问道1.60源码,开始了架设之路。发这个贴子的初心就是对那些QQ群、论坛上 动不动就 收徒收费的人一种反击,看着真不爽。开始正题:首先 我下载的 是虚拟机的服务端,单机玩玩没问题,这游戏我老婆也会想着一起玩,试了一下不行,没改虚拟机的网络部分,因为家里设备挺多的,改网段好多设备需要重连,没折腾,开始想再本地的linux 服务器搭建环境 还原。
第一步查看虚拟机中的启动文件,将相关文件copy出来,在 执行./1的时候时间访问的是root下的文件 可以通过cd /root 找到所访问的文件 打开 1 文件 查看 里面访问了其它的文件 我的路径是 /home/1.6 下的文件,切记 里面的 执行顺序不能改,执行的时候 互相有依赖,比如 第一个 runaaa 它一切启动的基础,后续启动的服务需要依赖前一个服务的 接口里面的sleep 指的休眠,再前一个服务启动多少秒之后启动下一个服务, 测试过 是秒 非 毫秒。将这些文件通过工具(WinSCP)全部导出。
第二步连接数据库,通过(mysql)数据库工具(Navicat Premium 15) 连接数据库,一般 再下载的相关说明里都有写,如果没写 1.60端的 几乎都一样 ip192.168.200.100 端口3306 密码123456,测试连接问题后,依次选中库 右键 转存储SQL文件数据和结构 选择存储的路径保存。一共8个库。特别说明,再转存的时候不要更改navict的编码,默认库的存储格式是GBK的,更改之后 你新库的格式必须与转存文件的格式一致 否则会导不进去。
第三步再自己的linux服务器上创建数据库,建议用docker安装数据库 因为 方便,数据库的版本方面,建议用5.5X的版本 高版本的数据库里对字段会有兼容性问题,简单来说 (向下兼容),我尝试过 8.1的库导出的数据放到5.5 会出错 具体是哪个表字段 记不清了 一个字段的类型不一样 好像是5.5是am648.1是am128。依次创建数据库,将上述的sql文件依次运行,选中数据库 右键运行sql文件。接下来修改数据表中一些记录的值 再执行之前需要先改一下小花的属性 选中服务器 右键编辑链接(不能存在当前库打开的窗口) 第二个选项卡 高级 编码 由自动转为936 (ANSI/OEM - Simplified Chinese GBK), 这一步的作用是 将中文编码 转为GBK 这样汉字就不乱码了。 修改各表的值 见到192.168.200.100 就改为 自己服务器的IP。表都在dl_adb_all库里(aaa、ccs、cs_ccs、csa、cta、dba、ldba、server、config) server 是你的线路名称(记住后面会用)、config 是各条线中的等级限制(暂且这么理解),配一条config的修改语句
update config set `value`=REPLACE(`value`,'原始的线路名称','最终要的线路名称') where `value` like'%原始的线路名称%'; 多条线就依次改。
太生气了,无法HOLD啦 >_<...... 接下来就是服务端文件修改了
第四步:依次修改配置文件 我就不一一列举了以 aaa.ini为例 非 这个节点下的都是指数据库配置 将host 改为数据库127.0.0.1 user默认root password改成你自己的密码。如果 是用的docker 数据库 就不能用 127.0.0.1 因为127.0.0.1 指的宿主机不是docker 容器,(在宿主机执行ifconfig -a 命令 查看容器IP 将容器IP 卸载host中) , 节点指的是服务器IP 局域网 或公网IP。
gs/gs1.ini name = 线路名称 MAX_USER = 线路最大玩家数 SERVER_PORT=服务端口 多条线 参看 server 表里配置。
这些做完 还需要做一些事,如果 打算用./1这种方式启动 需要给它最高权限chmod-R 777 /root/1 还有游戏的主目录 chmod-R 777 /home/1.6
如果启动的时候 报 权限问题 查看一下权限设置路径是否错误。
还需要 安装32位编译环境
yum install glibc.i686
yum install glibc-devel.i686
yum install libstdc++-devel.i686
执行上述命令,可能在执行过程中 会遇到一些问题,百度解决吧,这些是centos 的问题,补充说明一下,这个教程 没限制 一定要用centos 的哪个特定版本,我用的是centos8。
至此 就可以启动服务了,在启动的过程中 观察一下 各个服务又没有启动成功,如果你的程序没问题,在虚拟机中可以启动,那么就是你的配置文件 修改出错了,或者,在修改库的过程中 漏了一些东西,可以挨个表复查一下。
说说 客户端启动的问题,我现在 找到了1.60、 1.63、1.67、1.69 这四个版本的客户端,只有1.60的不需要代理 可以直接运行,也可能是我的端有问题,实在找不到资源,动不动就收费。
1.60
创建一个记事本 将下列信息 放到里面,保存 修改文件后缀位.bat 放到客户端根目录 双击执行就行了。
Start asktao.mod 试剑内测; 192.168.0.2;8101;kbd:0;swictch:0;paroxy:0;flag:;uncheck
Start 可以不加 asktao.mod 这个看一下你的根目录下 存在不 如果名称不符 就改成你自己的文件名称ip 端口 “试剑内测 ”要与你的server 表中的 dist 字段一致 否则可能会出现 选择线路后 登录不上的问题。 补充一下 服务端 防火墙端口 一定要添上 还要刷新 防火墙 ,否则客户端连不上 ,至于防火墙 命令 你需要先确定你用的防火墙是哪一种,再执行相应的添加防火墙端口的命令 刷新防火墙。我公网的添加了防火墙端口 ,局域网测试的 直接把防火墙关闭了。 我手上的1.60 以上的客户端版本需要添加代理,他们也叫网关,总之都是一个东西,大致的意思是 为了安全 不将服务器直接暴露出来 加了一个中间商,所有的请求 都先通过这个代理,代理根据你的请求 返回相应的真是信息 再连接,我查看了几个易语言写的 代理真心觉着 这TM 就是恶心人的 有个屁用,服务器信息还是一点不加密的 返回回来了。过段时间 研究一下python 可以做么,讨厌易 各种报病毒。
如果出现登录卡验证 就是因为需要代理。如果登录不卡 进线报连接异常 需要查看一下 你的mysql 链接数是不是 超了,
小花 服务器监控 可以查看现在链接进程数
SQL 命令
show variables like '%max_connections%';
-- max_connections 最大连接数
-- max_user_connections 单用户最大连接数为
这个是临时的 最好是找到my.cnf 修改里面的配置 百度很多
set GLOBAL max_connections=4700;
set GLOBAL max_user_connections = 1000;
改完这些之后 我还发现个问题,我的MySQL 没有配置文件 5.5.40
这些链接会长时间不释放 连接数居高不下
show global variables like '%timeout%';
set global wait_timeout=180; 等待链接 超时时间
set global interactive_timeout=180*1000; 活动链接 超时时间
太生气了,无法HOLD啦 >_<...... 感恩无私的分享与奉献 :) 我只是路过打酱油的。