赞 | 0 |
VIP | 0 |
好人卡 | 3 |
积分 | 1 |
经验 | 22133 |
最后登录 | 2021-6-21 |
在线时间 | 297 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 105
- 在线时间
- 297 小时
- 注册时间
- 2009-1-7
- 帖子
- 216
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
帖子一:
标题: 我跟你讲,VA的计算公式,赞!通过公式实现一些功能
地址:http://rpg.blue/forum.php?mod=vi ... D368%26typeid%3D368
帖子二:
标题:VA技能伤害计算公式的奇怪用法
地址:http://rpg.blue/forum.php?mod=vi ... D368%26typeid%3D368
不得不说这两个帖子很开发头脑。这两个贴子,加上一些小小的手段,就能能够实现比较精彩的技能了。
比如:消耗完当前的特技值,每1点特技值恢复1%魔力上限的魔力值。
这个技能有2个要点:
1.特技消耗不确定,即使1点特技值也能释放。
2.释放完这个技能后特技完全消耗。即使100点也挥霍一空。
那么该怎么做呢?
我们需要一个变量和一个技能。
一、新建一个技能,伤害区域的数据暂时留空:图略。
注:
1.效果范围任选。可以自己也可以队友,但是也能对手吗?当然如果做成跟特技值相关的伤害技就行了。
2.使用场合:一定要选择“仅战斗中”,因为非战斗状态是没有特技值的。
3.特技值消耗设置为0,当然为了避免某些不确定因素,可以设置为1点。
二、伤害区域:
重头戏:计算公式:v[1] = a.tp.to_i;a.clear_tp();a.mmp * v[1] / 100;
注:
1.v[1]表示第1号变量。
2.公式的含义如下:先用变量存储施法者的TP,然后将TP清除,最后是回复量的计算。
3.计算公式是分成三段的,而且这三段的顺序是不能调换的。原因如下:
·正如我引用的两个帖子所说,计算公式一栏里存储的是计算结果返回值,而Ruby语言对于多个语句,如果没有特别指出return,则默认采用最后一句作为返回值(应该没错吧)。
·v[1] = a.tp.to_i和a.clear_tp()的返回值都是0,所以如果把这两句中的任何一句放在最后都会使得计算结果为0。
·第一句和第二句对调后会导致1号变量的值为0,因为TP已经清除了。
4.效果范围如果是队友或敌人,则a.mmp要改成b.mmp或者b.***。
对于变量,我们可以分为2种:常用变量和临时变量。
1.常用变量:例如我的帖子:没有脚本的回城卷(http://rpg.blue/forum.php?mod=vi ... D368%26typeid%3D368)所使用的这6个变量属于常用变量。其特征是值每时每刻都具有重大意义,不可随意更改。这种变量的优点是能够长久保存重要数据并且可以随时存取,缺点是要占用固定的内存地址。
2.临时变量:本例中的第1号变量就属于临时变量。其特征是一次赋值及使用完后意义消失,在不使用的前提下,赋予任何值均对游戏不会产生任何影响。这种变量的优点是用完就扔,一个变量可以重复使用(请务必保证不在同一刻使用),缺点是每次使用都要赋值。
对技能计算公式和变量的合理使用,可以帮我们创造出更加强大的技能。当然,用脚本也可以做出这种效果,但脚本固然强大,大量使用却违背了RMVA的初衷:让不懂编程的人也能做出精美的游戏。 |
评分
-
查看全部评分
|