Project1

标题: 请问如何制作持续伤害的效果, [打印本页]

作者: 自以为是    时间: 2019-6-7 19:36
标题: 请问如何制作持续伤害的效果,
请问如何制作持续伤害的效果,且伤害为可控的
作者: 木·朽.    时间: 2019-6-7 20:44
我觉得你可以用事件

作者: 木·朽.    时间: 2019-6-7 20:52
先在“队伍”里面设置开关,在“公共事件”里设置条件分歧:
当第XX号id的敌人状态为XX时,开启相应的开关。
“队伍”里的“条件”当第XX号id敌人开关开启时,事件指令第三页“增减敌人HP”(中间要等待几帧)。
能想到好像就是这些了,好像有一点儿不足,让我再想想。
作者: 7112    时间: 2019-6-7 21:03
地图上可以接触触发扣除HP的事件,战斗中的话可以在技能里附加公共事件减少HP或附加状态
作者: 木·朽.    时间: 2019-6-7 21:05
木·朽. 发表于 2019-6-7 20:52
先在“队伍”里面设置开关,在“公共事件”里设置条件分歧:
当第XX号id的敌人状态为XX时,开启相应的开关 ...

我刚才试了,好像可行。
作者: 自以为是    时间: 2019-6-7 23:20
木·朽. 发表于 2019-6-7 21:05
我刚才试了,好像可行。

- -我是想做个特技 或者状态 或者 物品 其效果是持续伤害 ,而且伤害是多少可以自己决定,如果照你说的方法 那还得挨个设置   可能我没说明白
作者: 紫英晓狼1130    时间: 2019-6-8 10:34
状态的属性里有“连续伤害”选项的
作者: miantouchi    时间: 2019-6-8 11:24
数据库-状态 添加个连续伤害的的状态
然后在
数据库-物品 添加一个你自定义的物品,关联上这个状态就行了
特技也是一样的操作
作者: 自以为是    时间: 2019-6-8 19:25
紫英晓狼1130 发表于 2019-6-8 10:34
状态的属性里有“连续伤害”选项的

但是伤害不可控,假设要做两种持续伤害的黑暗料理,其中一个伤害高一点就不行了
作者: miantouchi    时间: 2019-6-8 22:19
本帖最后由 miantouchi 于 2019-6-8 22:22 编辑

和之前说的一样,状态设置下设置了3种状态黑暗料理分别是10%,20%,30%左右。然后关联上物品栏3种物品。
最后修改持续伤害脚本,脚本长了点。。。。。。如果哪位大大想好优化的话,帮忙优化下



RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5.     if self.state?(17)
  6.       # 设置伤害
  7.       self.damage = (self.maxhp * 0.1).to_i
  8.       # 分散
  9.       if self.damage.abs > 0
  10.         amp = [self.damage.abs * 15 / 100, 1].max
  11.         self.damage += rand(amp+1) + rand(amp+1) - amp
  12.       end
  13.       # HP 的伤害减法运算
  14.       self.hp -= self.damage
  15.       # 过程结束
  16.       return true
  17.     elsif self.state?(18)
  18.       # 设置伤害
  19.       self.damage = (self.maxhp * 0.2).to_i
  20.       # 分散
  21.       if self.damage.abs > 0
  22.         amp = [self.damage.abs * 15 / 100, 1].max
  23.         self.damage += rand(amp+1) + rand(amp+1) - amp
  24.       end
  25.       # HP 的伤害减法运算
  26.       self.hp -= self.damage
  27.       # 过程结束
  28.       return true
  29.     elsif self.state?(19)
  30.         # 设置伤害
  31.       self.damage = (self.maxhp * 0.3).to_i
  32.       # 分散
  33.       if self.damage.abs > 0
  34.         amp = [self.damage.abs * 15 / 100, 1].max
  35.         self.damage += rand(amp+1) + rand(amp+1) - amp
  36.       end
  37.       # HP 的伤害减法运算
  38.       self.hp -= self.damage
  39.       # 过程结束
  40.       return true
  41.     end
  42.     #其余10%
  43.     # 设置伤害
  44.     self.damage = self.maxhp / 10
  45.     # 分散
  46.     if self.damage.abs > 0
  47.       amp = [self.damage.abs * 15 / 100, 1].max
  48.       self.damage += rand(amp+1) + rand(amp+1) - amp
  49.     end
  50.     # HP 的伤害减法运算
  51.     self.hp -= self.damage
  52.     # 过程结束
  53.     return true
  54.   end

作者: RMVXA    时间: 2019-6-8 23:29
搜索YEA的汉化合集,里面有持续伤害动画和设置公式的脚本。
作者: 怪鹿与兔    时间: 2019-6-11 15:50
蟹蟹大佬6666666666666666666666666666
作者: porlutia    时间: 2019-6-13 19:28
本帖最后由 porlutia 于 2019-6-13 19:30 编辑
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5.     #此处开始修改
  6.     #自定义连续伤害
  7.     for i in @states
  8.       if self.state?(i)
  9.         case i
  10.         when 17 #当状态id为17时
  11.           self.damage = (self.maxhp / 5).to_i #损失20%HP每回合
  12.         when 18
  13.           self.damage = (self.maxsp / 3).to_i #损失30%HP每回合
  14.        else #将原本的10%放到了这里
  15.           self.damage = self.maxhp / 10 #损失10%HP每回合
  16.       end
  17.       # 分散
  18.       if self.damage.abs > 0
  19.         amp = [self.damage.abs * 15 / 100, 1].max
  20.         self.damage += rand(amp+1) + rand(amp+1) - amp
  21.       end
  22.       # HP 的伤害减法运算
  23.       self.hp -= self.damage
  24.       # 过程结束
  25.       return true
  26.     end
  27.   end
  28.   end#注意多个end
复制代码

找到Game_Battler 3 滑到下面 ● 应用连续伤害效果 这里
把上面的代码替换掉 或照着这里往里边敲就可以了
上面when后面的数字为状态的id  
注意状态后面要勾上“连续伤害”
作者: soulsaga    时间: 2019-6-13 20:05
本帖最后由 soulsaga 于 2019-6-13 23:08 编辑

这样就优化剩几行了..

RUBY 代码复制
  1. def slip_damage_effect
  2.     if self.states.name.include?("毒 药")
  3.       # 设置伤害
  4.       idmg = $data_states[id].name;idmg =~/(\d+)/;idmg = $1.to_i/10;self.damage = (self.maxhp * idmg).to_i
  5.       amp = [self.damage.abs * 15 / 100, 1].max;self.damage += rand(amp+1) + rand(amp+1) - amp;self.hp -= self.damage;return true if self.damage.abs > 0
  6. end;end;end

      
@miantouchi




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