| 
 
| 赞 | 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的初衷:让不懂编程的人也能做出精美的游戏。
 | 
 评分
查看全部评分
 |