从零开发独家传奇版本六、技能实时查看怪物爆率

[复制链接]
查看2617 | 回复3 | 2020-9-30 07:20:28 | 显示全部楼层 |阅读模式
【关注我,持续为你带来传奇相关技术及游戏里的哪些好玩的事~】
本人所有文章及视频均为原创,并且仅作为教学目的,不可作为商用,特此声明!
#传奇私服##传奇##热血传奇##我要上头条#
最近被游戏界朋友提及了新技能

这几天玩游戏的朋友和做游戏的朋友都在比较近的时间问我:你看没看见,现在传奇宣传里都有直接查看怪物爆率的功能了,太厉害了,还能看这次能爆什么!

what?

这年头为了吸引玩家注意力搞的这些噱头是越来越多了……

从零开发独家传奇版本六、技能实时查看怪物爆率-1.jpg



问了半天,说是某知名娱乐圈大佬对手游呐喊出来的新功能。。。

随之,头条上许多做游戏的好像也出了类似的功能,下面咱们来梳理一下这个功能吧~
实现原理剖析

首先,怪物爆率这个东西如果大家略微懂一点游戏脚本编程或了解一点爆率的朋友们应该知道,爆率就2种,一种是必爆,一种是随机出。

如何查看怪物后,知道这个怪除了必爆的物品,能知道这次随机出的能必爆的,这个我真没想到怎么实现,如果有厉害的技术,请不吝赐教!

从零开发独家传奇版本六、技能实时查看怪物爆率-2.jpg



窥探术技能实现思路

我们既然做不到计算并显示出这次它能爆啥,那总能展现出已有的爆率文件吧?

还有就是通过什么方式获得怪物名字,通过什么展现形式将爆率内容展现出来。

1.查看怪物方式

我们通过指向技能的形式对怪物施法,从而猎取被攻击的怪物名字。

还有一种可以通过猎取这个地图所有怪物,让玩家自己选择,这个比较麻烦,所以就放弃了。

2.猎取用于展示的爆率数据

爆率文件都放在了D:\mirserver\Mir200\Envir\MonItems文件里,我们需要调用它,但是没有好的方式直接去调用,所以偷懒,我们将爆率文件里的所有数据放到QuestDiary文件夹里!

3.展现爆率内容方式

我们对怪物施法后,直接弹出一个界面,因为怪物爆率内容可长可短,所以要做分页处理。

4.用到的技能点

自定义技能实现、分页技术
具体实现过程

第一步,我们将怪物爆率文件先复制一份到一个文件夹中,以便于我们调用
D:\MirServer\Mir200\Envir\QuestDiary\技能系统\怪物爆率
第二步,我们需要增加一个新技能,然后做技能施法时触发弹出对话框

做技能,首先得有一个技能,我们在技能数据库中新增一个技能。

以GEE引擎为例,新自定义技能编号要从1000开始

从零开发独家传奇版本六、技能实时查看怪物爆率-3.jpg



做好技能后,重新加载M2里的技能数据库,然后我们在M2中找到自定义技能功能

从零开发独家传奇版本六、技能实时查看怪物爆率-4.jpg



进来后我们发现,左侧列表中多了一个我们刚在技能数据库中新增的技能

从零开发独家传奇版本六、技能实时查看怪物爆率-5.jpg



第一步,我们新增技能图标

从零开发独家传奇版本六、技能实时查看怪物爆率-6.jpg



这个文件需要在M2-列表信息二-wil资源里进行添加,或者你自己再自己资源里找,技能图标要有紧邻的2个,我们写第一个技能图片序号即可。

上面的动作类型,这里我选的是魔法动作。

第二步,技能效果

这个技能效果就是你施法后,展现出来的技能样子,比如雷电术。

我们切换到技能效果,目标播放这里,这里我也是从盛大补丁里找了一个文件做的。

从零开发独家传奇版本六、技能实时查看怪物爆率-7.jpg



第三步,增益模式

默认是攻击模式,施法时怪物会受到损害,我们这里选增益模式,就没有损害了。

下面的技能施法间隔,这里根据大家实际情况去写就可以了。

从零开发独家传奇版本六、技能实时查看怪物爆率-8.jpg



第四步,增加技能施法触发

既然是触发,肯定要写在qfunction里啦~

从零开发独家传奇版本六、技能实时查看怪物爆率-9.jpg



这里我要解释一下

技能施法时,只能针对怪物施法,那么对人、NPC、空地应该是无效的,所以第一步我们就增加了非人物推断。
NOT CHECKCURRTARGETRACE = 0
但是实际使用过程中,针对NPC施放,是可以通过攻击怪物猎取名字的变量猎取到NPC名字的,这个名字没有在怪物爆率里,所以引擎就会报错,所以我们要分辨是NPC还是怪物。

这里我使用了一个土方法,就是根据名字猎取其在数据库中HP字段的值。

因为NPC没有在怪物数据库中,故,HP是0,所以在下面进行了非0推断,得到真实怪物名字。

第五步,重启M2

不重启M2是没有效果的,我们重启一下即可。

第六步,编写核心展示界面

我们都已经能调用NPC功能了,那么弹出个界面对大家来讲应该是很简单了吧~

从零开发独家传奇版本六、技能实时查看怪物爆率-10.jpg



那么要显示的内容呢?

当然是利用读取文本行命令去实现啦~
GetListString ..\QuestDiary\技能系统\怪物爆率\<$str(S$窥探怪物名字)>.txt <$str(N$出装记录行数1-1)> <$str(S$出装数据显示1)>
我们通过读取指定文件的指定行并将内容保存到一个变量里去得到具体一行数据,再复制得到多行,通过下一页,上一些,增减默认行就可以做分页了。

分页涉及到了编程范围,很多新手估量两眼一摸黑……

这里我简单讲下,代码就不放了。

比如记事本里有20行内容:
我是行1我是行2我是行3我是行4我是行5我是行6我是行7我是行8我是行9我是行10我是行11我是行12我是行13我是行141我是行6我是行7我是行8我是行9我是行10
我们通过帮助文档得知

从零开发独家传奇版本六、技能实时查看怪物爆率-11.jpg



我们要做一页10行,分两页显示,那么我们用汉字取表达,就是

取第一行

……

取第十行

点下一页那就是

取第十一行

……

取第二十行

我们发现,什么变了?是不是第几行变了?改变条件是不是点下一页时,原来第一页的1-10变成了11-20?

所以,我们默认读数据的时候,第几行就不能写死了,要用变量去写。

比如

MOV n1 1

……

MOV n10 10

取数据的时候
GetListString ..\QuestDiary\技能系统\怪物爆率\<$str(S$窥探怪物名字)>.txt <$str(N1)> <$str(S$内容1)>GetListString ..\QuestDiary\技能系统\怪物爆率\<$str(S$窥探怪物名字)>.txt <$str(N2)> <$str(S$内容2)>
点下一页的时候,所有的都加10,就变成了取11-20了

INC n1 10

……

INC n10 10

至此,分页结束。
我们来看看最终效果

施法

从零开发独家传奇版本六、技能实时查看怪物爆率-12.jpg



显示界面

从零开发独家传奇版本六、技能实时查看怪物爆率-13.jpg



下一页

从零开发独家传奇版本六、技能实时查看怪物爆率-14.jpg



当然,整体来讲还有非常多的优化空间,比如界面可以再窄一点或可以贴边滚动显示,技能效果更丰富一点等等,这里有待大家去实现啦~

这个功能会增加到新版本中,希望大家能打到它,哈哈~
结语

好了,今天先到这里~欢迎大家私信回复【新版本】进入等待区哦~
哦,别忘关注,这是重点,哈哈~

上一篇:回忆那些年沙巴克传奇中的“新神器”据说威力很强悍
下一篇:热血传奇:传奇里的平行世界之起名鬼才
GRcSXZPy | 2020-9-30 07:20:48 | 显示全部楼层
啥时候开?
bdlove | 2020-9-30 07:21:28 | 显示全部楼层
做到差不多了吧 可以开服就吧
inmyhome | 2020-9-30 07:22:14 | 显示全部楼层
坐等
懒得打字嘛,点击右侧快捷回复 快捷回复框
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则