v072冒险岛sf开发周记(一)

发布时间 2023-06-17 20:56:18作者: Traveller_Leon

    上周末的时候看到tx代理了冒险岛手游,但是又还没上线,便回忆起自己从前玩冒险岛的时光。那时候和邻居哥哥们,和同学一起玩,只有冒险家职业,消磨了很多的时光,也认识了一些友善的网络好友,虽然打怪升级真的很慢,也没有好装备很菜,但是和朋友们一起玩的时候还是很快乐的,一起刷刷刷。也是各种职业都玩过,虽然等级都不高,都没有3转。。。包括后来加入冒险家的海盗。后面虽然也断断续续的玩过,但已经不是当初的感觉了,包括到大学时候玩的版本,也早已不再是之前认识的冒险岛。
    于是,在网上搜着,就发现了冒险岛私服,接着确定了玩当时离开的版本,也就是只有冒险家的版本,072,开始找对应的客户端和服务器。这里不得不提枫叶物语网站里面的资料真的非常的多,可以让我筛选,我也找到了好几个072版本的代码,都下载下来,同时github上也有,也可以下载下来参考。
最直接的问题就是,如果服务器是自己的,客户端又是官方的,那它怎么连接到自己的服务器呢?搜了一下冒险岛sf启动器,其实就是在执行exe后面加上ip和port参数,没想到这么简单,怪不得能做sf,原来这样就可以连上自己的服务器。
    第一个问题解决了,后面就是具体的服务器逻辑了,但是找到的都是代码,对于代码里面的逻辑没有人详细的介绍过,我目前也没有去深入了解,遇到了很多的问题只能靠尝试和猜问题的原因。因为游戏还涉及到资源,脚本等等,而很多的sf都已经做了不同程度的修改,甚至数据库的表结构也改了,没法互相兼容,而这个数据库又和资源文件息息相关,一环扣一环,看来想修复到可以玩的程度,还是有不少工作要做呀。
    先打开其中一个版本的私服试了下,可以直接开玩呢,于是就什么都没改先上手回忆一波,装备爆率,经验都没改,赶紧回到了记忆中的彩虹岛,那些npc都还是在那里,后面要是有空也专门写一写他们的故事吧,有亲情有爱情~
    但是中间有些npc显示的文字是英文,估计是资源文件的问题,所以先放放,但是等我要从南港出发的时候,对话的内容也是英文,而且点了去金银岛也没有反应,这就不知道要怎么处理了,难道是脚本问题?是服务器代码问题?一下子搞不清楚。
    等级到了8级先去转职法师吧,坐出租车到魔法密林,对话居然又是英文,尴尬,合着我是来学习英语了吗。。。倒也不是不可以。但是当我要去商店里买点法师装备的时候,居然直接就闪退了,服务器这里没有什么提示,客户端倒是弹出到了文件末尾:error 38的错误框。问题是弹这个error我也不知道怎么解决啊。无奈只能开始调试服务器了。
    刚上手只顾着回忆了,连服务器编译环境都还没搭过,于是下载了个idea,好在jdk jre都在服务器的文件夹里有,mysql也有,我只要下个navicat去看数据就行。根据服务器打出的日志,最后是在发送商店信息的代码里,服务器没有报错,应该是客户端收到之后处理不了断开了,于是我就开始调试,发现发送空的商店内容的时候,客户端可以打开商店,里面没有任何装备售卖,那就确定了是装备资源的问题了,当我只把原始列表里的第一个装备发给客户端,也可以正常显示,那说明一定是有些资源不对了,于是我尝试从其他版本里面把资源给拿过来,看看能不能一边解决语言问题,一边解决商店问题。但是事实证明我太天真了,直接服务器都起不来了,报错空指针。好吧,这个倒也简单,我先把相关代码注释了再说,居然跑起来了。那就继续,但是还是一打开装备商店就客户端报错。尝试了把其他相关的脚本,也给覆盖过来,同样无济于事。为了防止后面越改越多,忘了自己改了什么,以及为了方便对比,备份了好几个文件夹。
    这样的状态持续了几天,毕竟白天也要上班,晚上也要陪老婆,只能抽空看看问题。终于,看到了其他版本里有个sql文件,是和商店以及商店货物有关的,我立马在mysql里执行了下,居然成功了!商店里可以看到正常卖的东西了。总算是解决了一个大问题!
    但同时也发现现金商城也是一打开就报错,不过这个倒是不影响游戏内容。目前已经找到了某些版本的sql是可以打开商城的,后面可以再仔细对比下区别。
关于语言的事情,还没去确认是否有修复。因为又到了周末了,有其他事情需要做。对于代码以及整体的流程和文件之间的互相关系,还是不清楚,也是误打误撞先解决了一个问题,后面还是得继续花时间解决其他问题。
    文档太少实在是痛苦。网上都是教你如何使用sf,但是并不告诉你原理。只能靠自己!好歹也是专业出身的程序员,加油!!!