下午好,
今天下班的比较早,我决定更新下我们团队最近的成果,我很抱歉上次没有如约更新我们的消息。
不管怎么说,这几周来我们取得了不少的进展。 Asura已经建立了代码库,然后他已经把我们大约一半的内核代码储存其中。 他希望能在TBC的框架下工作,然后再把成果应用到60经典旧世,我则持相反的态度。 这只是一个个人喜好的问题,你喜欢哪个客户端,因为理论上两者之间的差别很小。 他还修正了 登录,服务器和worldservers的 中unix系统的兼容性。 基本上这意味着核心编译以后可以在我工作的 windos 上 和 他工作的 unix 上同时进行。
Visual Studio有内置编译器 呃.. ..等等。
对于那些不知道我在说什么的人,编译器(我在这里简化了一些东西)将代码写入可执行文件。有许多不同版本编译器,每个编译器都会对代码进行一些不同的处理,同时尽可能平稳和高效地运行代码。因为每一个代码的解码都有些不同,所以在同一段代码上使用不同的编译器会产生许多由于不兼容所导致的问题和错误。现在我们可以在三个不同的编译器上编译我们的代码,Asura则解决了这些兼容性问题,Asura找到并修复诸如内存泄漏或崩溃循环等数十个潜在问题。 目前,Asura正在重新编写我们的网络代码,这些代码需要进行一些更改,更新和优化,因为它与服务器集群有关。
我一直在研究一些核心更新,没有什么比这更重要了,其中并没有大的漏洞修复,但是对一些细节的修复则会提高游戏的可玩性。从上次带现在我还没有完成血量百分百光环机制。这个一个更大的问题就是,它该如何正确的生效?这个难题暂时搁置,等我以后在回头解决。
我正在做的一件事是区域或者世界 喇叭喊话。克拉格斯正在编写程序,角色必须能够发出一些可以在整个地图听得到喊话,但是他发现这个喊话能被听到的范围还远远不够。呼喊能被听到的最大范围是150码,我记得不是特别准确,可能比这更多或者更少,但是他们实际上只能在地图的一个特定范围内生效。地图被切成一个网格,每70X70码为一个单元格。但是每当玩家使用远视法术(如鹰眼术等)时,或者特别的NPC进入时,单元格将会变成动态。被激活的单元格也会激活所有相邻的单元格,除非有其他人激活该区域的其他单元格,否则你会有一个大约140码的喊话范围。我们有一个将文本信息发送到全区的功能,但是它是建立在我们旧代码的基础上。我更新了代码,以便现在可以找到该区域的所有玩家,提取他们的客户端语言,并以他们的客户端语言发送文本信息(喊话)(我们目前支持EN,RU, DE,FR和CN)。通过公开我们的参数,使其可以在Lua脚本中使用,可以实现全图喊话的功能。我只有一个英文客户端,所以我不能展示这个功能本土化的效果,但我可以展示世界喊话功能是如何实现。这是一个小小的测试,正常情况下你的喊话只能被小范围内的玩家看到。这段视频完成后,我设置了一个参数,可以让你发送信息到服务器所有的区域,这有几个很好的应用机会,安其拉开门和甲虫战争开始的时候我们就会用到这个技术,还有伊兰尼库斯在月光林地被杀时。希望这个功能能派上大用处吧。
接下来的重大工作是重写墓地复活机制。我之前可能已经在之前的更新中提到过这个问题..我当时无法解决这个问题,但是我已经学到了更多的东西,所以我又采取了一些措施,并按照我的思路去解决这个问题。以前我们只是有一些占位符的代码,只是通过线性距离把你送到最近的墓地。这显然是有问题的,因为死在接近边缘的地方很容易将你送到错误的地带。并且效率很低,因为它会把地图上所有的墓地距地都计算一次,以确定哪个是最接近你死亡地点的。我决定清除了所有的代码,把地图分区域和墓地链接在一起建立了一个链接库,并重新编写了核心代码,现在只查找死亡地点附近的墓地。现在当你死的时候,它只会寻找最适合你死亡地区的墓地。并且我们还有特别的处理机制,比如新手村内的墓地。这个机制的原理是,新手村的墓地仅仅的死在新手村的玩家可用。例如,如果你死在了丹莫罗,即使你离 矮人的新手村墓地 相较于 丹莫罗的墓地更近,但是系统还是会让你在丹莫罗的墓地复活。如果事情发生了严重的BUG,并且附近没有可用的墓地,这里还有2个备用墓地。联盟的西部荒野,部落的十字路口。我做了一个测试视频,你可以在这里看到大部分的功能。
在做坟墓的同时,我还修改了墓地阵营机制。使用类似的方法,我扩展了数据库,将联盟和部落墓地连接到每个副本。在副本死亡只会在本阵营的墓地复活,优先于距离计算。这些改动或许多60年代来说是完全没必要的,但是对于TBC玩家来说是意义重大。在这种情况下,在赞加沼泽暂领PVP目标,你可以在盘牙水库获得一个额外的墓地。如果你在附近的副本中死亡,而你们阵营控制了该地区,那么你就可以使用这个墓地,否则你必须跑更长的时间。我专门为TBC准备了此项改动。虽然还有一点点工作没完成,但是我已经花了3天的时间,先等等,当我调整过来我就会收尾。
还有第三个视频讲的是一件小事,测试人员向我反馈说,在其他私人服务器上有一个共同的现象是让一个朋友风筝一个旅馆老板,然后以风筝到一个你想要的地方在绑定炉石,例如在传送门附近等等。原理就是:炉石绑定地点不是旅店老板的位置,而是玩家所在的地点。我想到了一个快速解决的方案,NPC在战斗中不能对话。这也适用于商人,训练师等
好吧,这是我所有的视频,但不包含所有的修复。我还修正了一个问题,其中debuff会被当成BUFF计数。 NPC使用的某些法术的效果将会与NPC的等级相符。我们对此的计算是不正确的,得益于测试团队的一些测试,我才能够修正。
我昨天刚刚解决了一个问题,在某些情况下,“命中几率”会无效。这是一种有趣的BUG,但是我看到这个帖子已经有一英里长了,所以我不会再进行冗长的解释,解决方法——只要双手交换一下武器就可以了,如果你有2把相同的武器那就还另一把,这并不会让你的武器触发效果失效。
最后一件事是重新编写“伤害抵抗”代码,移除了原本的设定——在任何情况下,无论伤害来源和数量,都默认给予35%的几率抵抗 恐惧 冰环等控制技能。重新编写代码,现在PVP,PvE,直接伤害,DoTs,暴击等伤害都会 基于当前最大生命值百分比 重新计算。
我真的必须感谢和表扬我们的测试团队。 尤其是。Scylla,Pvt。 8Ball,Cragus和coolmodi的帮助。 其中一些人在编程比我好得多,所以他们的建议和帮助是非常宝贵的,而其他人在游戏机制或提供资源方面做出了极大的贡献。
让我们小窥一下我们脚本团队的工作日常,看看Nogar今天的工作怎么样。他一直在写作任务脚本,还有在世界各地的一些RP活动。他不是唯一为此努力的人,但他是唯一一个发布视频的人,所以这是你们看到的全部。他说工作还在继续,但目前看来还是不错的。
最后,这里的论坛很可能会关闭。对于我们来说,寻找托管服务并不是一个重要的优先事项,虽然它热度正在逐渐上升。正如我上次提到的那样,我们会努力备份和储存现有的内容,但我们不会做出承诺。我不知道我们会怎么做,但考虑到这是最后的决定,请备份你认为值得保留的内容。
这就是全部内容。我的下一个帖子将在11月13日星期一。一如既往,请随时留下意见或提出问题,再次感谢您对Crestfall的持续关注。