Project1

标题: 关于持续加血 [打印本页]

作者: an1ji1er1    时间: 2012-4-6 18:30
标题: 关于持续加血
请问,怎么做持续回复血的技能呀?
听说改持续伤害负值可以,但是这样的话毒的效果不久没有了么?
以下有个脚本说是可以做到,但是我小白,看不明白怎么弄,什么地方写技能编号,什么地方写状态,请高人们指点一下,谢谢了!

Q:我想设置一直回复技能,使用后可以在战斗中每回合自动回血,也可以做成一种持续回血的状态
A:Scene_Battle 4里的连续伤害处覆盖为下边代码,此状态不要选连续伤害。
# 连续伤害
   if @active_battler.hp > 0 and @active_battler.slip_damage?
     @active_battler.slip_damage_effect
     @active_battler.damage_pop = true
   end
   if @active_battler.state?(状态ID) and @active_battler.hp >0  #-恢复魔法
      @active_battler.damage=-@active_battler.maxhp/10 #恢复生命百分比,这里设置为10%,也可设置固定值
      @active_battler.damage=@active_battler.damage.to_i
      @active_battler.hp-=@active_battler.damage
      @active_battler.animation_id = 21 #自动补血动画编号
      @active_battler.damage_pop = true
    end
如果要每回合补精神的话,上面脚本的
      @active_battler.damage=-@active_battler.maxhp/10 #恢复生命百分比,这里设置为10%,也可设置固定值
里面的.maxhp改为maxsp,然后下面
      @active_battler.hp-=@active_battler.damage的.hp改为.sp即可。
dsu_plus_rewardpost_czw
作者: 陆娘    时间: 2012-4-6 18:39
= =你模仿毒然后多做一个状态不就好了吗?听说改持续伤害负值可以~
作者: kangxi0109    时间: 2012-4-6 21:50
1.Game_Battler 3(战斗中的持续恢复)
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5. #=====================
  6.     if self.state?(1)#当目标状态为1号时
  7.     self.damage -= self.maxhp / 10#持续恢复10%
  8.     else
  9.     # 设置伤害
  10.     self.damage = self.maxhp / 10#持续失血10%
  11.    end
  12. #=====================
  13.     # 分散
  14.     if self.damage.abs > 0
  15.       amp = [self.damage.abs * 15 / 100, 1].max
  16.       self.damage += rand(amp+1) + rand(amp+1) - amp
  17.     end
  18.     # HP 的伤害减法运算
  19.     self.hp -= self.damage
  20.     # 过程结束
  21.     return true
  22.   end
复制代码
2.Game_Party(地图中的持续恢复)
  1.   #--------------------------------------------------------------------------
  2.   # ● 检查连续伤害 (地图用)
  3.   #--------------------------------------------------------------------------
  4.   def check_map_slip_damage
  5.     for actor in @actors
  6. #==========================
  7.      if actor.state?(1) #状态为1号时
  8.      actor.hp += [actor.maxhp / 100, 1].max#持续恢复1%
  9.       elsif actor.hp > 0 and actor.slip_damage?
  10.         actor.hp -= [actor.maxhp / 100, 1].max#持续失血1%
  11. #==========================
  12.         if actor.hp == 0
  13.           $game_system.se_play($data_system.actor_collapse_se)
  14.         end
  15.         $game_screen.start_flash(Color.new(255,0,0,128), 4)
  16.         $game_temp.gameover = $game_party.all_dead?
  17.       end
  18.     end
  19.   end
复制代码
3.这两段脚本可以不同时用,这样就会形成一种战斗时加血(失血),非战斗时失血(加血)的状态,可灵活使用。
作者: 1584927450    时间: 2012-4-6 23:29
像柳柳大人的新手教程里教的制做毒性技能那样编:持续,威力要负数,就这样简单。




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