石器时代Linux私服架设教程

  • 2
  • 276 阅读
  • A+
所属分类:石器时代

石器时代Linux私服架设教程

音频片段:需要 Adobe Flash Player(9 或以上版本)播放音频片段。 点击这里下载最新版本。您需要开启浏览器的 JavaScript 支持。

兴趣可能是最好的老师,架设石器时代服务端是我学习折腾Linux的开始,感谢这个童年游戏,给予了我在黑不见底的命令窗口瞎敲一通的勇气。在这3A大作疯狂井喷的时代,相信有不少同辈玩家和我一样,早已对石器游戏本身失去兴趣,但昔日围绕这个游戏干过的各种趣事永远是八零后玩家的宝贵回忆!搭建一个属于自己的石器时代私服,召唤早已不再联系的队友们,寻回深藏于童年心中的记忆拼图。

今天就给大家分享一篇石器时代Linux服务端架设教程,教程内容包含搭建Web环境、配置游戏服务端、客户端、注册网站。为了让Linux新手朋友也能轻松搭建,教程中我特地选择使用Linux傻瓜面板工具进行演示,尽可能减少命令行操作。

 实验环境

实验平台:Alpharacks VPS

操作系统:CentOS 6.7 X86

主机IP:198.96.90.13

面板工具:宝塔

 主机篇

第一步 购买主机

  1. 非常有钱且长期在国内联机游戏的朋友可以考虑国内的腾讯云、阿里云;  
  2. 比较缺钱且能熟练使用科学上网的朋友可以考虑国外的Alpharacks、Virmach;  
  3. 不想花钱且拥有全球外币信用卡的朋友可以考虑国外的谷歌云、亚马逊云;  
  4. 随便玩玩、拥有公网IP、路由器权限的朋友可以考虑使用VMware Workstation虚拟机。  

根据实际情况购买合适的云服务器,我个人推荐的是年付7美元的Alpharacks VPS。是的,这个价位只能买到OpenVZ架构的超售主机,简单来说就是所谓的垃圾主机,但是搭建石器时代供极少数人联机是毫无压力的,非常适合练手。

石器时代Linux私服架设教程

成功购买后,主机供应商客服会发送相关帐号、密码信息到预留的联系邮箱,登陆到Alpharacks VPS服务器控制面板:https://vpscp.alpharacks.com:5656/login.php

第二步 重装系统

搭建石器时代推荐使用CentOS 6.x操作系统,进入服务器管理界面,可以清楚看到主机部分硬件配置信息,教程中使用的主机比年付7美刀的主机还要垃圾。如果当前操作系统不是CentOS6.x,那就点击Reinstall重装系统。

石器时代Linux私服架设教程

选择centos-6-x86-minimal,然后拉到网页底部点击Reinstall,等待几分钟即可,主机篇到此结束!

石器时代Linux私服架设教程

 服务端篇

第一步 准备工作

获取服务端

首先要有一份能正常启动的游戏服务端,教程中使用的是我自己编译的专用版本,以此为例给大家演示搭建过程。实在找不到服务端的朋友也可以使用网站分享的石器时代练手端,搭建方法基本都是通用的。该端存在不少问题,仅供练手。

石器时代练手端

禁用SElinux

  1. [root@Stoneage ~]# setenforce 0  
  2. [root@Stoneage ~]# sed -ri 's#^(SELINUX=).*#\1disabled#g' /etc/selinux/config  

禁用防火墙

  1. [root@Stoneage ~]# service iptables stop  
  2. [root@Stoneage ~]# service ip6tables stop  
  3. [root@Stoneage ~]# chkconfig iptables off        
  4. [root@Stoneage ~]# chkconfig ip6tables off  

安装常用软件

  1. [root@Stoneage ~]# yum -y install wget vim  

第二步 安装宝塔面板

安装宝塔面板主要是为了方便Linux新手们管理服务器以及快速搭建Web环境,大家可以选择自己喜欢的面板工具。

  1. [root@Stoneage ~]# wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh  

设置面板安装路径,默认按y,也可以按需选择自定义路径。

石器时代Linux私服架设教程

安装结束后,记录初次登陆管理面板的密码。

石器时代Linux私服架设教程

第三步 安装Web环境

打开浏览器访问面板登陆地址,输入正确用户名、密码进入面板。初次登陆面板时,会引导用户选择安装Lamp、Lnmp。建议大家选择安装Lamp,各程序组件均选择最旧版本,勾选极速安装,部署时间视网络带宽和主机配置而定,耐心等待。这里说明一下,教程中我并没有安装phpMyAdmin,如果你日后希望使用phpMyAdmin来管理MySQL数据库,那么php版本至少要选择5.3以上。

石器时代Linux私服架设教程

第四步 配置网站

依次点击宝塔面板中的网站-添加站点,填写网站域名(或主机IP)、数据库名称、数据库管理用户、数据库管理密码、FTP管理用户、FTP管理密码,以下为教程中使用的相关信息:

  1. 主机IP:198.96.90.13  
  2. 网站域名:stoneage.wanghualang.com  
  3. 数据库名称:wanghualang  
  4. 数据库管理用户/密码:wanghualang/123456  
  5. FTP管理用户/密码:wanghualang/123456  

说明一下,使用域名创建网站,必须先做好域名解析操作,以教程为例,也就是说ping stoneage.wanghualang.com,对应得到的IP地址必须是198.96.90.13。域名解析操作非常简单,实在不会的朋友可以联系你的域名提供商客服。

石器时代Linux私服架设教程

第五步 导入石器数据表

一般情况下,在编译服务端的时候,都会根据实际使用的数据表创建好一个数据表的模版文件,方便日后进行导入操作。教程中的石器数据表模版文件为wanghualang.sql,存放在服务器的根目录,登陆数据库,导入石器数据表。

  1. [root@Stoneage ~]# mysql -uwanghualang -p123456  
  2. mysql> use wanghualang;  
  3. mysql> source /wanghualang.sql  
  4. mysql> exit  

第六步 创建石器注册网站

我随便写了一个简陋的注册网站,由logo.jpg、index.html、reg.php三个文件组成,logo.jpg是普通图片,index.html是网站主页,reg.php是连接数据库的文件,其中reg.php是成功注册帐号的关键。特别说明一下,不同的人制作服务端,使用的数据表字段名也不尽相同,比如教程中使用的游戏用户名、游戏密码、游戏安全码对应的数据表字段名为Name、PassWord、SafePasswd,很多时候大家需要根据实际情况去编辑reg.php。

index.html参考代码:

  1. <html>  
  2. <head>   
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
  4. <title>石器时代帐号注册</title>   
  5. </head>   
  6. <body>   
  7. <form name="frm" method="post" action="reg.php">   
  8. <p style="text-align:center;"> <img src="/logo.jpg" width="240" height="116" title="Stoneage" alt="Stoneage" /> </p>   
  9. <table width="35%" border="2" align="center">   
  10. <tbody>   
  11. <tr>   
  12. <td width="20%" height="35" align="center">游戏登陆帐号</td>   
  13. <td width="90%" height="35">&nbsp;<input type="text" name="name" size="40"/><span style="color:#E53333;">&nbsp;游戏登陆帐号长度为5-15位</span></td>   
  14. </tr>   
  15. <tr>   
  16. <td width="20%" height="35" align="center">游戏登陆密码</td>   
  17. <td width="90%" height="35">&nbsp;<input type="text" name="password" size="40"/><span style="color:#E53333;">&nbsp;游戏登陆密码长度为5-15位</span></td>   
  18. </tr>   
  19. <tr>   
  20. <td width="20%" height="35" align="center">游戏安全密码</td>   
  21. <td width="90%" height="35">&nbsp;<input type="text" name="safe" size="40"/><span style="color:#E53333;">&nbsp;游戏安全密码长度为5-15位</span></td>   
  22. </tr>   
  23. <tr>   
  24. <td height="40" colspan="2" align="center"><br /> <span style="color:#4C33E5;">∵&nbsp;欢迎回归石器时代&nbsp;※&nbsp;重温昔日经典网游&nbsp;∵</span><p><span style="color:#4C33E5;"> By.王花郎</span></p><p> <span style="color:#4C33E5;"> Http://www.wanghualang.com</span></p><p><input type="submit" name="sub" value="点击注册"  style="margin-top: 11px;margin-bottom: 10px;" /></p></td>   
  25. </tr>   
  26. </tbody>   
  27. </table>   
  28. </form>    
  29. </body>  
  30. </html>  

reg.php参考代码:

  1. <?php  
  2. //获取表单数据  
  3. $name = $_POST['name'];  
  4. $password = $_POST['password'];  
  5. $safe = $_POST['safe'];  
  6. $n = strlen($name);  
  7. $p = strlen($password);  
  8. $s = strlen($safe);  
  9. if ($n == 0) {  
  10. echo "<center>Please enter the game account<P></center>";  
  11. elseif (!($n >= 5 && $n <= 15)) {  
  12. echo "<center>Game account length is 5-10 bits<P></center>";      
  13. elseif ($p == 0) {  
  14. echo "<center>Please enter the game password<P></center>";    
  15. elseif (!($p >= 5 && $p <= 15)) {  
  16. echo "<center>Game password length is 5-10 bits<P></center>";     
  17. elseif ($s == 0) {  
  18. echo "<center>Please enter a security password<P></center>";      
  19. elseif (!($s >= 5 && $s <= 15)) {  
  20. echo "<center>security password length is 5-10 bits<P></center>";     
  21. else {  
  22. //连接数据库  
  23. $conn = mysql_connect("localhost""wanghualang""123456"or die("Database connection Failed");  
  24. //选择数据库  
  25. mysql_select_db("wanghualang");  
  26. //设置数据库编码  
  27. mysql_query("set names utf8");  
  28. //将表单获得的数据插入数据库  
  29. $sql = "insert into csalogin(Name,PassWord,SafePasswd)values('{$name}','{$password}','{$safe}')";  
  30. //执行sql 语句  
  31. mysql_query($sql);  
  32. //获得受影响的行数  
  33. $row = mysql_affected_rows($conn);  
  34. if ($row > 0) {  
  35. echo "<center>Succeeded<P></center>";  
  36. else {  
  37. echo "<center>Failed<P></center>";  
  38. }  
  39. }  
  40. ?>  

使用Filezilla上登陆到主机的FTP服务器,宝塔面板默认设置的FTP服务器目录就是网站根目录,非常方便。

删除目录自带的index.html、404.html。

石器时代Linux私服架设教程

上传石器注册网站的三个文件到网站根目录。

石器时代Linux私服架设教程

打开主流浏览器访问:http://198.96.90.13 或者 http://stoneage.wanghualang.com,注册游戏帐号。以我提供的注册模版为例,当结果显示Succeeded代表注册成功,显示Failed则代表失败。失败原因有很多,如数据库启动失败、数据库用户密码错误、数据表字段错误等等。

石器时代Linux私服架设教程

第六步 配置服务端

服务端大体分三部分来说,第一部分是游戏引擎程序,gmsv、saac;第二部分是启动配置文件,setup.cf、acserv.cf;第三部分则是游戏数据,简称data,主要包括宠物、道具、技能、遇敌、任务等等内容,是折腾石器最耗时间的地方。当然咯,折腾data毫无技术含量,大家可以放心。

游戏引擎程序

如果你有服务端源代码,且有一定的编程功底,可以按需修改或新增一些功能,最简单的比如修改创建家族人数条件为只需两人;如果你的服务端来自网络分享,那就没什么好说了,能否正常启动、是否存在后门,一切看脸随缘。

启动配置文件

一般情况下,配置文件setup.cf存放在gmsv文件夹下,配置文件acserv.cf存放在saac文件夹下,有时候gmsv文件夹下也有acserv.cf,注意一下就行。setup.cf主要关系着游戏相关设定,如新手出生宠物、战斗经验倍数、骑宠等级限制等等,acserv.cf里的内容则是数据库相关连接信息。

不同的服务端,setup.cf内容也不尽相同,就启动游戏而言,一般情况下只要注意以下参数即可:

  1. #帐号服务器SAAC的服务器IP地址  
  2. acserv=127.0.0.1  
  3. #帐号服务器 SAAC的服务器端口  
  4. acservport=9998  
  5. #连接到帐号服务器SAAC的密码  
  6. acpasswd=123456  
  7. #服务器端口  
  8. port=9999  

acserv.cf的配置主要分两部分,第一部分配置信息要与setup.cf相同,比如setup.cf中的acservport,对应acserv.cf中的port;第二部分则是需要填写数据库连接信息了,相关数据库信息见教程中的第四步,再次强调数据表字段名。

第一部分:

  1. #帐户服务器端口  
  2. port 9998  
  3. #帐户服务器密码  
  4. pass 123456  

第二部分:

  1. #SQL服务器IP  
  2. sql_IP 127.0.0.1  
  3. #SQL服务器端口  
  4. sql_Port 3306  
  5. #SQL服务器账号  
  6. sql_ID wanghualang  
  7. #SQL服务器密码  
  8. sql_PS 123456  
  9. #SQL数据库名称  
  10. sql_DataBase wanghualang  
  11. #SQL数据库表名称  
  12. sql_Table csalogin  
  13. #数据表登陆用户帐号字段  
  14. sql_NAME Name  
  15. #数据表登陆用户密码字段  
  16. sql_PASS PassWord  
  17. #数据表锁定账号字段  
  18. sql_LOCK lock  

游戏相关数据

只要data文件语法上没有致命问题,就不会影响服务端的正常启动,顶多就是在游戏中会出现某些任务无法完成、某些道具无法使用等等。有的玩家喜欢无脑一刀99999,有的玩家则喜欢开局只有一只凯比,所以data永远是众口难调的东西,这里就不细说了,有兴趣的朋友可以自行慢慢研究。

打包服务端

把游戏引擎程序、启动配置文件、游戏相关数据以压缩包的形式上传至VPS,推荐使用7Zip打包压缩为tar.gz文件。教程中压缩包名为stoneage.tar.gz,存放路径为/wanghualang。

第七步 启动服务端

创建存放游戏的目录,解压服务端。

  1. [root@Stoneage ~]# mkdir /wanghualang  
  2. [root@Stoneage ~]# cd /wanghualang  
  3. [root@Stoneage wanghualang]# tar xzf stoneage.tar.gz  

打开一个终端,先启动saac,确保没有严重报错信息,如下图:

  1. [root@Stoneage ~]# cd /wanghualang/saac/  
  2. [root@Stoneage saac]# ./saac  

石器时代Linux私服架设教程

再打开一个终端,启动gmsv,确保数据库正常连接以及游戏数据正常载入,如下面两张图:

  1. [root@Stoneage ~]# cd /wanghualang/gmsv/  
  2. [root@Stoneage gmsv]# ./gmsv  

石器时代Linux私服架设教程

石器时代Linux私服架设教程

许多朋友在启动gmsv的时候会碰到各种各样的报错,一方面是服务端程序本身有问题,这是硬伤;另一方面则是对Linux还不熟悉。硬伤无解,只能更换服务端,这里不讨论,最常见的软件启动报错应该是:./gmsv: error while loading shared libraries: libmysqlclient.so.xx,解决方法请参考文章:

石器时代启动gmsv报错缺失libmysqlclient.so.xx

大家也可以试着写一些脚本来彻底解放双手,比如实现自动启动、守护进程、定时备份存档等等功能,服务端篇结束。

 客户端篇

第一步 配置客户端登陆列表

根据实际服务器IP地址或域名,制作客户端登陆列表。目前比较常见的登陆配置文件有三种,对应的配置方法也就有三种。第一种是标准的cax.ini文件,常在旧版16色客户端中出现;第二种是标准的xxx.dll文件,常在较新版16色客户端中出现;第三种是自定义的xxx.dll文件,常在自定义的32色客户端中出现。石器时代练手端使用的是第二种,而教程演示中使用的则是第三种。

第一种

使用MAX编辑器,先写一个文本文档出来做模版,内容如下:

  1. 登陆密码=0,0;1;0;石器时代;2;198.96.90;教程演示一;13:9999;教程演示二;13:9999;;  

先把.txt后缀名修改为.ini,再打开MAX编辑器加密.ini文件,最后拷贝.ini文件到客户端根目录即可。

第二种

使用登陆列表修改工具直接图形化修改,最后拷贝xxx.dll文件到客户端根目录即可。

石器时代Linux私服架设教程

第三种

使用Notepad++修改,最后拷贝xxx.dll文件到客户端根目录即可,格式如下:

  1. #annotation  
  2. 0,石器时代,4  
  3. 0=石器时代 - 教程演示一,1198.96.90.13,9999  
  4. 1=石器时代 - 教程演示二,1stoneage.wanghualang.com,9999  
  5. ****  

石器时代Linux私服架设教程

第二步 分享游戏客户端和注册网站

分享客户端和注册网站给朋友们,就可以一起重温石器了,教程结束!

石器时代Linux私服架设教程

石器时代Linux私服架设教程

石器时代Linux私服架设教程

  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • 良好老伯 山西省临汾市 联通

      非常详尽的教程,不论是小白仰或是大拿,均具备不同层面上的指导。

      • 菊花也说话 广东省珠海市 电信

        教程很详细,石器不光是80后的回忆,我90年,上小学的时候就开始接触石器,可以说这游戏荒废了我的学习,但也带给了我很多美好回忆,这几年架设了好多端,也玩了一些私服,但就是提不起劲,或许没有可以一起玩的伙伴吧,人长大了都各奔西东。