十分全面的传奇手游搭建教程 |
您所在的位置:网站首页 › 手机怎么架设服务器 › 十分全面的传奇手游搭建教程 |
前言
自打自己开始弄手游之后,确实遇到了各种各样的问题。各种坑居多,不过也都算顺利,借助搜索引擎以及各大论坛,差不多都算解决了,还有很多bug,倒也不是短时间内能修复的,而且也无关痛痒,也就懒得再深究了。 在遇到问题通往解决问题的过程里,真的是痛并快乐着,被问题卡住,真的是寝食难安啊,弄明白原理,自己独立解决之后,感觉也真的很好,可很快就会遇到新的问题,这种感觉。。。真的一言难尽。 其实网上关于游戏搭建的资料和解决方案很多,不过论坛上大多都收费,而加各种群请教了很多大佬,要么左顾言他,要么有偿价格不菲,这简直触碰我这白嫖党的底线了~知识不应该是人类共享的么!!! 好了,不扯淡了,凭记忆分享些部分我遇到的问题以及解决方案吧,欢迎讨论补充。 幽冥传奇手游幽冥传奇目前也是比较火热的,不过里面坑也不算少,需要修复的已知问题有如下问题: 一键双区版的2区没法启动通天塔每5层闪退一直提示飘屏广告英雄技能显示不正确(如战士英雄半月弯刀技能)很多药水不能使用最低阶装备也全屏通报英雄战力只显示为物攻、魔攻或者道术装备合成只能到宙级装备一键回收只能到18阶(未完待续)其中修复了前 6 个,还有些问题在陆续更改。先说下这些吧 一键双区版的2区没法启动造成这个问题的原因是原文件里的配置文件格式有问题,将1区的LogicServer目录复制过去,修改一下端口及区号就可以完美修复了。 通天塔每5层闪退 这个问题应该是之前人修改的时候,在每层加入了元宝奖励,虽然是好心修改,可这也导致每五层的奖励项由原来的3个变为了4个,于是数据库接收到的数据长度就与程序设定的字段数不一致,导致报错退出。 修复方案就是,将每5层的元宝奖励去掉,或者去掉经验或者洗练符什么其他的,保持奖励项仍为3个,即可不再报错。文件修改路径为build_pub\Server\LogicServer\data\config\fuben\SkyTower目录 如果还没开区,则可以在数据库里修改,连接数据库,找到cq_gstatic库就可以看到了。进服公告也可以在这里修改。 如果已经运行一阵子了,那修改数据库就没有用了,也可以修改生成的本地文件来实现修改。文件路径为build_pub\Server\LogicServer\data\notice.txt 英雄技能显示错误技能或者物品的显示错误,其实都是在客户端上修改的,不过我们直接去修改客户的客户端还是比较麻烦的,而这个幽冥传奇恰好也支持热更,我们可以用热更的方式,将正确的命名文件放进去,就可以显示正确了。 方案:将www\dev\data\scripts\config\server\language\Zh-CN\Skill.lua中的错误改正,然后用CRC工具算出新更改文件CRC-32的校验值,在list中写入正确的校验值以及字节大小,在打包为list.zip文件,并将新的list.zip文件大小写入version文件中,然后把版本号调高一些就可以自动更新了。 药品使用不了这是因为服务端配置出了问题。在服务端中定义了物品的各种属性,一般比较常见的是将物品的type定义错了,例如如果type=102,即为材料,是无法使用的,改为type=103就是药品了,就可以正常吃掉了。有些吃掉没有正确效果的。是因为scriptitem没有定义正确。关于物品的一系列设置都在目录build_pub\Server\LogicServer\data\config\item,详细单个物品设置在子目录ItemClass。物品设置比较复杂,欢迎私下交流,这里不占用篇幅过多介绍了。 低阶物品掉落通告也是在build_pub\Server\LogicServer\data\config\item\ItemClass中具体单个文件设置,将其中一个参数dropBroadcast = -1修改为dropBroadcast = 0即可,不要忘记结尾,,否则会报错,启动不了区服。 战神引擎复古传奇手游,差不多战神引擎算是目前做的做好得了,真的是完全的复古,复古到我觉得玩起来有点累。。。不过也正是因为对端游的还原度高,导致比较受追捧,所以端和教程虽然满天飞,但大多收费,流出的一些分享的端,也很多是残端,放出来寻求帮助修复的。所以战神引擎搭建的失败几率真的太高了,问题也五花八门,不尽相同。我这里在服务端是完整版本的前提下,来一一解决一下,为后来人提供一些思路与方案。 mongodb服务一般教程中,第一步就是安装mongodb数据库(配必备的.NET环境其实可有可无),一般都是三步: 双击安装包mongodb-win32-x86_64-2008plus-ssl-3.4.9,安装,在双击robomongo-0.9.0-rc10-windows-x86_64安装包,第二个其实是连接工具,不装也不影响我们搭建,安装这个是为了方便小白测试和排错的。进入mongodb的安装目录下的bin目录找到mongodb的执行文件,创建mongodb服务。也就是按住shift,右键打开命令行工具,输入命令mongod --config "D:\MongoDB\config\mongo.cfg" --serviceName "MongoDB" --install第三步就是启动mongodb服务了,net start mongodb 这个的前两步一般都没什么问题,不会出现任何报错,不过第三步的时候我就遇到了问题,提示说服务没有响应控制功能。 我检查了下win下的服务项,路径看下图 所谓m2,其实就是mysql服务。不同的版本启动mysql的方式也不太一样,有的直接用的phpstudy 将apache和mysql一起启动的,这也省去之后做nginx的虚拟主机开多个端口了。有的版本是通过脚本命令行方式启动,如果没有可以尝试自己进到mysqld.exe所在目录,用命令行命令,``mysqld.exe --defaults-file="D:\m2\mysql\my.ini"前台启动就可以了。如果实在起不来,检查下端口占用情况是否3306端口被占用,或者配置文件my.ini指定的数据库程序路径或者数据库路径不正确。一般来说都不会有太大问题。如果端口被占用,或者启动了其他的数据库,可以将其他数据库的端口改为3307,战神引擎这个端口改成3307之后,DBserver改不了端口,也就链接不了数据库了,所以还是改别的应用的端口吧。密码就是默认密码,我试了那么多版本的端,倒是没有人该多密码,密码都是相同。 m2.0这个算是引擎的主程序了之前都是配套数据库罢了,mongodb用来储存账号相关信息,用来验证登录,而游戏人物数据都在mysql中。所以这一步的环节,就是各项服务读取数据库信息后并相互连结,里面东西说复杂也复杂,说简单也很简单。对于初学者来说,真是一步一坑,对于老手来说就没什么难度了。每个目录做什么的,我这里就不再废话了,直接就大家关心的各种问题来做解释吧。 显示获取版本信息失败,请检查网络连接,是否重试
这个报错很容易解决,以上方案应该囊括了所有情况。 战神引擎更新进度100%后卡住 这个问题也很常见,不过原因倒是比较简单。因为战神引擎的设置,更新用的端口是88,而更新之后获取列表及访问登录是用的8088端口,方便我们更新服务器和游戏服务器分离开来。前者大概率是phpstudy一键的,所以不会出什么问题就可以开始更新。而从客户端的project.manifest获取更新服务器信息更新完之后,会从客户端的mir2.zip及mir264.zip中读取游戏服务器(这三个文件是不是很眼熟~)。而在这里出问题要么就是服务端的8088端口无法访问到,要么就是客户端修改mir2.zip及mir264.zip文件时IP没有填对。测试方法还是通过浏览器访问IP:8088端口(英文输入法的冒号),测试是否正常访问,战胜引擎的默认主页是有一个hello world来测试访问的 如果端口能访问,客户端也修改正确ip,那就很有很能会遇到下面这个报错——获取开发者区服信息失败 提示获取开发者区服信息失败
因为是提示获取开发者区服信息失败,所以我第一个想到的就是文件路径不对,用户客户端定义获取区服信息是通过访问服务器的/serverlist路径。一般来说想访问此路径获取到到此文件有两种方式,一个是在lua程序中定义。另一个是在nginx里面设置alias。 这两种修改的我都看到过,先说第一种。第一种方式访问区服列表的,nginx只起到一个代理的作用,不指定路径,因为在logincerter_win目录中已经定义好了访问规则,如下图所示,定义了访问/serverlist路径则去访问下application/controllers/serverlist.lua,而文件又定义了serverlist.json的位置,所以就可以正常获取区服表了。
最开始显示了测试服务器登录,也输入了要进入的区服,还提示了是否进入"XXXX",点了确定进去之后,区服列表竟然是空的。这个问题大概率是因为serverlist配置的不对,检查下serverlist.json吧,版本名字都要匹配。 这个问题就是上面的截图中的那个ConfigName条目里填写的文件获取不到了。如果能到这一步,说明端口连通应该是没问题的,应该有两方面原因 检查nginx配置文件,有没有如下代码 location /downloadconfig { alias D:\mud2.0\logincenter\ClientConfig; allow all; autoindex on; autoindex_localtime on; } 查看D:\mud2.0\logincenter\ClientConfig目录下有没有ConfigName条目后面跟着的对应文件,如果有其他名字的文件,改上面的截图中的那个ConfigName条目就可以了。 战神引擎选择完区服之后不开门好不容易连接上了服务器,区服信息也显示了,历尽千辛万苦到最后,竟然半天没人开门。这真是气到吐血啊。 出现此问题,肯定是因为mongodb出了问题,连接不上。 mongodb自身问题上面提到,当时启动mongodb是一直报错,后来用命令方式启动起的端口和服务。这样虽然以前台进程方式启动了mongodb服务,也可以通过测试,甚至连接进去查看数据,可以好像战神引擎不认。。。 其实我mongodb一直无法启动的时候就应该想到,为什么无法用服务方式启动。那是因为云主机默认只有一个C盘,我当时不是纯净系统,上面还跑着其他端,没法直接从C盘压缩卷再创建一个D盘,于是我是通过共享目录在映射网络磁盘的方式,生成了一个D盘(其实还是C盘下的一个目录而已),而这样虽然mongodb通过命令行可以启动,但是等到系统服务方式启动的时候,他就不认这个映射关系了(我用subst命令生成本地磁盘也试了,还是不能访问)。就相当于找不到数据库或者配置文件了。类似linux中很多配置文件中不能存在软链接一个原理吧。 所以解决方案就是通过原路径C盘目录下来指定配置文件(毕竟文件本来就在C盘),而不是D盘目录下的那个路径了。或者直接把mongodb整个数据库和配置文件目录都拷贝到C盘任一目录下,毕竟这个服务只是需要一个端口来连接就可以了,具体数据库在哪无所谓的。 修改之后,以服务的方式启动,战神引擎就可以正确连接mongodb数据库,也就可以往里面写入账号信息了。不开门就是因为连接不上mongodb数据库,无法写入信息。 mongodb连接端口被人改掉了。 如果mongodb本身没有问题,还有就是这一种情况,连接mongodb的端口被人换了。 大家都是用的都是别人设置好的脚本来启动,也不需要检查各种配置文件,而有人把其中配置文件的端口换掉,你自己验证还是很难发现的。 毕竟搞破坏太容易,一人作恶,百人都挡不住啊。还很有可能是其他地方也被改掉了,我目前没遇到而已。欢迎大家修改补充。 如果有用,请帮我点赞~ 本次就说这么多吧,之后有想起来的再令行补充,不过实在修复不了也不必太执着。。。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |