Project1

标题: 每回合扣除固定伤害 [打印本页]

作者: 1742    时间: 2012-4-8 09:39
标题: 每回合扣除固定伤害
这种状态该怎么弄啊,例如:每回合扣除400HP。谢谢!dsu_plus_rewardpost_czw
作者: 黑色的笔    时间: 2012-4-8 10:06
能啊。就是技能“毒”嘛。
作者: 1742    时间: 2012-4-8 11:30
黑色的笔 发表于 2012-4-8 10:06
能啊。就是技能“毒”嘛。

要每回合扣除400HP,固定的
作者: 黑色的笔    时间: 2012-4-8 11:58
你是要用技能后去血还是特定敌人去血还是不管怎么样就是一直去血?
作者: aaalbx    时间: 2012-4-8 14:22
  1.     if @active_battler.state?(19) and @active_battler.hp >0
  2.       @active_battler.damage=400
  3.       @active_battler.damage=@active_battler.damage.to_i
  4.       @active_battler.hp-=@active_battler.damage
  5.       @active_battler.animation_id = 21  #动画ID
  6.    @active_battler.damage_pop = true
  7.     end
复制代码
其中
  1. @active_battler.damage=400
复制代码
就是伤害400点的意思,也可以修改为百分比
  1.   if @active_battler.state?(19) and @active_battler.hp >0
复制代码
是状态ID,这里是19号
  1.     @active_battler.animation_id = 21  #动画ID
复制代码
这个是扣除HP时的动画ID,可以不设,这里是21号
作者: kangxi0109    时间: 2012-4-8 18:32
1.设置状态1号,标记为连续伤害;
2.修改Game_Battler 3:
  1.   #--------------------------------------------------------------------------
  2.   # ● 应用连续伤害效果
  3.   #--------------------------------------------------------------------------
  4.   def slip_damage_effect
  5. #=============
  6.      if self.state?(1) #状态为1号时
  7.     self.damage = 400 #伤害量为400
  8.      else
  9.     # 设置伤害
  10.     self.damage = self.maxhp / 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
复制代码
3. 修改Game_Party:
  1. #--------------------------------------------------------------------------
  2.   # ● 检查连续伤害 (地图用)
  3.   #--------------------------------------------------------------------------
  4.   def check_map_slip_damage
  5.     for actor in @actors
  6.       if actor.hp > 0 and actor.slip_damage?
  7. #=======================
  8.        if actor.state?(1) #状态为1号时
  9.      actor.hp -= [400, 1].max #伤害量为400
  10.        else
  11.         actor.hp -= [actor.maxhp / 100, 1].max#伤害量为1%
  12.        end  #和恢复不同,将这个end调上来了,让画面闪烁
  13.         if actor.hp == 0
  14.           $game_system.se_play($data_system.actor_collapse_se)
  15.         end
  16.         $game_screen.start_flash(Color.new(255,0,0,128), 4)#画面红光闪烁
  17.         $game_temp.gameover = $game_party.all_dead?  
  18.       end
  19.     end
  20.   end
复制代码
事实上和恢复差不多一样,对比一下就可以看出,只是正负的问题罢了。
作者: 黑色的笔    时间: 2012-4-8 18:35
强大的脚本啊。但是这种东西事件就足够啦。如果是要对某敌人才这样时,在数据库的队伍选项里设置事件,增减HP,减400血(自己随意)就可以了。要是用了某物品这样减血的话在物品的公共事件那里设置。感觉事件比较稳当容易啊。




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