Project1

标题: 被动技能关联技能加状态的效果该怎样制作 [打印本页]

作者: 春风莉露    时间: 2018-4-13 18:40
标题: 被动技能关联技能加状态的效果该怎样制作
比方说,学得1号被动技能时,火系技能会追加附加50%的中毒状态。
这种怎么做?
作者: 灯笼菜刀王    时间: 2018-4-14 10:58
本帖最后由 灯笼菜刀王 于 2018-4-14 11:03 编辑

不会脚本的做法: 给技能都附带一个没卵用,不能抵抗的状态. 然后公共事件里, 判断角色有没有学会被动技能, 有的话, 就rand(2)一下, 0的话, 有没卵用状态的敌人清除没卵用, 附加毒. 1的话,清除没卵用. 搞定

会脚本的话,  找到伤害计算公式, 判断命中后面,用 skill.element_set.include? (火) 和 user.skill_learn?(技能ID) 判断,符合的话,
add_state(毒ID,true) if rand(2) == 0

不好意思,又没看地点,这里是VA区...  咱给的脚本写法是XP的,可能不适用...
作者: 百里_飞柳    时间: 2018-4-14 12:59
本帖最后由 百里_飞柳 于 2018-4-14 13:02 编辑

整合难度有点大,因为默认的脚本都是直接写在一起的,处理物品技能使用的效果

1、利用技能公式:被动技能自身只是相当于一个开关,利用 a.skill_learn?($data_skills[id]) 来判定 a是否学会id号技能,然后再用 b.add_state(id) 给b附加id号状态,利用 rand < 0.5 来判定概率
就在火系技能的技能公式栏里添加
  1. a.skill_learn?($data_skills[id]) && rand < 0.5 ? b.add_state(id) : 0; formula
复制代码

formula替换为原伤害公式

2、更扩展的脚本:由于默认的item.effects存储了物品技能的使用效果数组,其中存储的为RPG::UsableItem::Effect实例,这样在Game_Battler类中的item_apply(user, item)方法里的item.effects.each {|effect| item_effect_apply(user, item, effect) }扩展成item.effects_ex(self, user).each {|effect| item_effect_apply(user, item, effect) }
然后再打开RPG::UsableItem类,添加
  1. def effects_ex(target, user)
  2.   array = []
  3.   # 此处添加对self.note的信息获取
  4.   # 自己通过正则匹配创建出新的RPG::UsableItem::Effect实例
  5.   # 还可以通过添加eval方法来加入判定
  6.   self.effects + array
  7. end
复制代码

有点懒,具体可以看我之前 https://rpg.blue/thread-400902-1-1.html 中的 敌人掉落物追加 中的正则实现,
再对照F1中的RPG::UsableItem::Effect类的内容,就能自己造了。

实现难度不大,但是无法整合,只能直接覆盖默认的,所以我就懒得写了……




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