AL冒险岛游戏攻略系统)
AL冒险岛大巨变新闻资讯已经更新,以前的内容将不再使用
 
 
 

冒险岛sf台版 TWMS 196 开源端

之前在八卦版发过,希望志同道合好朋友一起来完善这个专案: git连结


主旨:

为了打造一个高效能、仿官方架构的C++新版本端口。(纯粹休閒活动)


基本要求:

0. "会" C++


进度:

1. 伺服器框架已经建构完成(Socket、Internal Communication、Wz/Img Reader、Database、Memory Pool),接下来只需要专心扩展游戏相关功能。

2. 已经可以使用脚本(已经压力测试并且优化过此部分),目前已测过换地图、换髮型等功能,接下来只需要填充功能即可。

3. 商城购买、放置物品、取出物品已经实作完成(99%按照官方模式)。

4. 攻击类技能95%以上可以打死怪物,所以单机玩目前没问题。

5. Buff类技能至少六成(正常职业会看到的)能放。

6. 召唤兽已经可以召唤。

7. 宠物召唤以及移动等没问题。

8. 箱子等Reactors运作已仿照官方,Action的部分尚未实作,将来会直接读取官方的ReactorAction.img,并用Img Editor对其扩充。

9. 怪物生成以及掉宝暂时没发现问题,怪物移动有时候有点奇怪(会沉入地面又浮起来)。

10. NPC商店可购买以及贩售物品。

11. 基本的药水类(以及一些Buff类)物品已经可以使用。

12. 基本的任务系统已经实作完毕(此部分是官方&OD 196端惨杂实作,因为版本已经差距太多)。

13. 基本能力提升卷轴已经可以使用并且正确的增加装备数值,诅咒卷可破坏装备。14. 更换频道或者进入/离开商城,Buff、召唤兽与宠物仍会留住,Buff的时间会持续扣除。

15. 可接受动态WvsGame与WvsCenter重启,意思就是只要WvsLogin开著,不管是修改WvsCenter或WvsGame,都不用重启游戏,只需重新从登入画面登入。

16. 其馀琐碎事项族繁不及备载。


未完成/进行中/已知问题:

1. 在一台普通的PC上,现有端口读取196版本所有物品以及所有技能属性不用5秒,如果wz有做瘦身可更快,但因为使用到的wz lib是non thread-safe,因此有非常低的机率开启伺服器会崩馈在wz reader上(实测约20次崩馈一次),目前还在想不影响速度但又可避免此问题的方法。

2. WvsLogin目前如果超过2天没连到WvsCenter,会自动关闭,初判原因是CenterAliveMonitor那边的m_apCenterWorkThread相关导致。

3. 所有多人相关功能尚未实作(避免有人拿去骗钱)。

4. 目前没有区分帐号,开始只要随便输入都是登入同一个帐号。

5. 伺服器端没有做攻击检查以及许多back-end的status处理。

6. 许多游戏常见以及职业的细节功能需要慢慢实作,有兴趣者请用"好"的方式来补,以免成为OD 2.0。

7. NPC、Portal、Quest脚本需要大量重构。


说明:

这个专案主要仿造wvs专案(枫之谷的官方专案代号),惨照旧版流出的官方档案后以C++重新编写了伺服器框架,并且採用跟官方架构相同的运作流程,并且遵照其命名法则(尽量,官方是匈牙利命名法,不是100%都是好习惯)。对于内部几个子专案的说明如下:


1. Database: 如同官方流出的Database.dll作为资料库存取的lib,由于官方採用OLE DB架构,要完全分析不太容易,为了方便架设我们改用MySQL而非MSSQL,并且重新打造间易的ORM。基本上可以看做一个资料表直接对应到C++中的一个实体物件,并且直接提供Load与Save。

2. WvsCenter: 主伺服器的专案,也就是World(OdinMS旧版分离式架构也是叫做World),就是一个伺服器的实体(例如雪吉拉),作为频道间的钩通桥梁以及Database的存取。

3. WvsGame: 频道,主要伺服器,怪物、玩家等大部分该做的事情都在这个专案中,一个WvsGame只代表一个频道,相同伺服器的多个频道要钩通必须透过WvsCenter,频道间转换时有状态保留的问题,目前已经实作一个基础架构(WvsCenter\UserTransferStatus)。

4. WvsLogin:顾名思义是处理有关登入的事情,在角色完全登入到游戏之前,都是与此伺服器互动(通常是8484),值得一提的是,WvsLogin可以直接存取Database,通常是透过WvsUnifiedDB(应该是一个DB Manager的Singleton),但这部分我并没有完全遵照。

5. WvsShop: 购物商城的伺服器专案,透过WvsCenter与WvsGame钩通,例如玩家从游戏中按下进入商城,会先发送风包给WvsCenter,Center检测Shop的状态正常,会转发Shop的地址给主程式,主程式断开连线后重新与Shop连线,注意这边依然需要状态保存。

6. WvsLib: 一些杂物都摆在这裡,例如记忆体配置器以及Wz的套件,其中Wz套件与记忆体配置器都是直接使用他人完成的专案。在本专案中配置记忆体请尽量避免使用new/delete或malloc/free,关于记忆体配置请见 MN Wvs Allocator Usage 。


注意事项:

注意事项&细节说明:

1. 游戏内脚本系统採用lua(官方是採用类似lua的脚本语言),为了接近C++语法,有对专案内的lua做些微改变,关于目前支援的脚本指令请惨阅: Script Instructions。

2. 游戏内为了避免记忆体碎片问题,使用独立的记忆体配置器,说明文件已在上述提及。

3. 目前专案的非同步TaskTimer是採用微软内建的平行化套件,还无法跨平台(目前试过了几款还是这比较好用)。

4. 装备部分为了避免储存时要delete所有records,採用update的方式进行更新,因此WvsGame与Center之间需要额外的Interal资讯。

5. Foothold的部分由于OD端并不完整,因此直接搬移官方档案的FootholdTree作为地图空间中站台的分布树状结构(官方好像叫做TRSTree还是TSRTree忘了)。

6. 除了WvsCenter以外,其馀存取Database裡面的物件时,请避免使用Load/Save。


 

 

 

 
  友情链接:绿水灵冒险岛一起吧冒险岛

版权声明(点击查看)

本网站获得国家颁发著作权证书并无任何侵犯版权行为,如有疑问可联系我方核实!

AL冒险岛官网 版权所有 © 2019-2020 Sitemap RSS 百度一下,你就知道

百度一下,你就知道 热门搜索:搜索冒险岛私发 AL冒险岛吧 冒险岛sf 冒险岛sf
 
Powered by ZZZcms