wangpinwei 发表于 2022-4-26 22:02:09

关于问道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'%原始的线路名称%'; 多条线就依次改。






czfngfu 发表于 2022-4-26 22:03:33

太生气了,无法HOLD啦 >_<......

wangpinwei 发表于 2022-4-26 22:10:50

接下来就是服务端文件修改了
第四步:依次修改配置文件 我就不一一列举了以 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 表里配置。

wangpinwei 发表于 2022-4-26 22:21:57

这些做完 还需要做一些事,如果 打算用./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。
至此 就可以启动服务了,在启动的过程中 观察一下 各个服务又没有启动成功,如果你的程序没问题,在虚拟机中可以启动,那么就是你的配置文件 修改出错了,或者,在修改库的过程中 漏了一些东西,可以挨个表复查一下。

wangpinwei 发表于 2022-4-26 22:28:28

说说 客户端启动的问题,我现在 找到了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 字段一致 否则可能会出现 选择线路后 登录不上的问题。

wangpinwei 发表于 2022-4-26 22:30:53

补充一下 服务端 防火墙端口 一定要添上 还要刷新 防火墙 ,否则客户端连不上 ,至于防火墙 命令 你需要先确定你用的防火墙是哪一种,再执行相应的添加防火墙端口的命令 刷新防火墙。我公网的添加了防火墙端口 ,局域网测试的 直接把防火墙关闭了。

wangpinwei 发表于 2022-4-26 22:43:11

我手上的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; 活动链接 超时时间

jdflfl87 发表于 2022-4-27 00:22:48

太生气了,无法HOLD啦 >_<......

sir.edmond 发表于 2022-4-27 10:11:47

感恩无私的分享与奉献 :)

animarui 发表于 2022-4-27 11:09:14

我只是路过打酱油的。
页: [1] 2 3 4 5 6
查看完整版本: 关于问道1.6架设的一些问题探索交流