Project1

标题: 释放对敌技能后给自己增加状态 [打印本页]

作者: archmagetony    时间: 2015-6-1 20:38
标题: 释放对敌技能后给自己增加状态
想做一个技能就是比如说对敌人使用了火球术后,施法者会有20%的概率获得一个状态。开始看了那个双向技能表示没看懂= =并且我的好像不用那么复杂,只要添加状态就好了,但是怎么添加。。。。add_state(id)这个么= =但是怎么指定角色。。。。然后完全不知道应该怎么判定使用了某个技能。。。。。并且表示希望这个无论是怪用还是角色用都能生效。。
作者: 三途亚梦    时间: 2015-6-1 20:43
本帖最后由 三途亚梦 于 2015-6-1 21:40 编辑
  1. a.add_state(id) if rand(5) == 0;伤害公式
复制代码
↑ 写在技能的伤害公式里。

原理方面我粗略的解释一下。
a:在伤害公式中a表示item的使用者(item在默认脚本中即表示道具、装备也表示技能)。
add_state(2):就是附加数据库中id为2的状态。
if:如果条件。
rand(5):随机产生0、1、2、3、4其中一个数。
==:判断语句,判断==前后的值是否完全一致,如果是则返回true,否则返回false。
;:分号表示脚本语句结束,可以理解成文字中的“句号”,表示分号前后没有关联。

#===============================================================

“双向技能”那个脚本不是你理解那个意思,它的原始目的是让同一个技能目标可以是敌人也可以是队友。

作者: archmagetony    时间: 2015-6-1 21:11
三途亚梦 发表于 2015-6-1 20:43
↑ 写在技能的伤害公式里。

原理方面我粗略的解释一下。

懂了,感谢大神,看到这个我想起来了在图书馆里面的那个伤害公式巧利用(好吧,我连通过事件来做都想过了,也没想起来这个。。。)我看了一眼如果通过改脚本达到伤害公式的效果的方法,然后问下看到这么一句话
if item.is_a?(RPG::Skill)&&item.id==142
这句话我大致感觉上是使用的技能是142的话然后执行一些别的,但是想问下item.is_a?(RPG::Skill)是什么意思?这个是条件表达式?但是为什么用了两个::  想求下这个东西的解释
作者: 三途亚梦    时间: 2015-6-1 21:52
item.is_a?(RPG::Skill)
可以这么拆解的看:

item是一个变量名

is_a?是用来判断这个变量是个什么变量,或者说成它属于哪里。

(RPG::Skill) 就是告诉电脑去哪里找这个变量。
可以理解成去一个叫“RPG”的房子的叫“Skill”的盒子里找东西。

作者: jianyulei    时间: 2015-6-2 13:06
a.add_state(3) if rand <= 0.2;
加在伤害公式的前面就能20%几率使使用者获得3号状态
公式中增加状态获得的缺点是状态的获得是完全按照比例来计算,不会受到运气和抗性的影响,但免疫仍然能影响到




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1