Project1

标题: 求助:技能如何做到伤害大小与mp有关且技能使用完毕mp=0? [打印本页]

作者: tan12345    时间: 2013-9-30 14:18
标题: 求助:技能如何做到伤害大小与mp有关且技能使用完毕mp=0?
求助:技能如何做到伤害大小与mp有关且技能使用完毕mp=0?
我想做一个技能,技能对象是全体敌人,技能的伤害大小与使用者的mp有关,而且使用完技能后使用者的mp=0
我在技能公式里设定了伤害公式:v[17]=a.mp;a.mp=0;v[17]意思就是伤害直接等于使用者当前mp,并且技能发动完毕后使用者mp=0.
可是问题来了,我这个技能的伤害对象是全体敌人,现在这样设定会导致这样一个现象:假设敌人有3个,那么其中1个受到的伤害确实与mp有关,但是其他2个受到的伤害为0,我特意检查了几遍,发现是因为技能伤害运算机制是先计算针对1号敌人的伤害,然后在计算2号敌人的伤害,…X号敌人的伤害,所以我在伤害公式里把mp=0时,在计算第二个敌人的伤害也就跟着变成了0。先求助大家如何修改这个技能?
作者: 喵呜喵5    时间: 2013-9-30 14:24
本帖最后由 喵呜喵5 于 2013-9-30 14:32 编辑

治标不治本的改法:
  1. v[17]=a.mp if a.mp!=0;a.mp=0;v[17]
复制代码
(只有当a的mp不为0时变量17才等于a的mp)
然后每回合重置一下v[17]的值……


不过应该也可以做成技能使用结束后执行公共事件,事件内容是使用者的MP清零之类的效果吧
作者: tan12345    时间: 2013-9-30 14:34
喵呜喵5 发表于 2013-9-30 14:24
治标不治本的改法:(只有当a的mp不为0时变量17才等于a的mp)
然后每回合重置一下v[17]的值……

公共事件不好判定使用者。
另外,每回合重置v[]的脚本在哪个地方插入?
作者: 喵呜喵5    时间: 2013-9-30 14:53
tan12345 发表于 2013-9-30 14:34
公共事件不好判定使用者。
另外,每回合重置v[]的脚本在哪个地方插入?
  1. class Scene_Battle
  2.   
  3.   alias m5_process_action_end process_action_end
  4.   def process_action_end
  5.     m5_process_action_end
  6.     $game_variables[17] = 0
  7.     #在这里设置需要重置的变量
  8.   end
  9.   
  10. end
复制代码
像普通脚本那样扔到main以上素材以下即可,如果有添加其他战斗脚本还有放到这些战斗脚本之下
作者: 喵呜喵5    时间: 2013-9-30 15:02
tan12345 发表于 2013-9-30 14:34
公共事件不好判定使用者。
另外,每回合重置v[]的脚本在哪个地方插入?

另外,其实可以直接用
  1. a.id
复制代码
来获取使用技能者的ID的……
作者: tan12345    时间: 2013-9-30 15:18
喵呜喵5 发表于 2013-9-30 15:02
另外,其实可以直接用来获取使用技能者的ID的……

谢谢喵呜喵5!~
作者: scottyfan    时间: 2013-10-1 02:08
再多一个 变量18用作判断。

if v[18] == 0;v[18] = $game_troop.alive_members.size;v[17] = a.mp;end; v[18] -= 1;a.mp=0;v[17]





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