赞 | 6 |
VIP | 20 |
好人卡 | 126 |
积分 | 27 |
经验 | 33282 |
最后登录 | 2024-11-14 |
在线时间 | 1600 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2728
- 在线时间
- 1600 小时
- 注册时间
- 2010-10-22
- 帖子
- 1058
|
关于持续回血、回魔的状态,需要修改两个部分的脚本,分别是作为战斗效果部分的Game_Battler 3以及地图效果部分的Game_Party,两个部分可分开使用,比如想做战斗中恢复,但战斗以外的情况下伤害,又或者是相反的情况。下面以100号回血,200号回魔的状态为例:
1.Game_Battler 3的部分:
- #--------------------------------------------------------------------------
- # ● 应用连续伤害效果
- #--------------------------------------------------------------------------
- def slip_damage_effect
- # 设置伤害
- #--------------------------------------------------修改部分↓
- if self.state?(200)#增加一个判定用来分开回血回魔
- if self.state?(200)#
- self.damage = -self.maxsp / 10
- end
- # 分散
- if self.damage.abs > 0
- amp = [self.damage.abs * 15 / 100, 1].max
- self.damage += rand(amp+1) + rand(amp+1) - amp
- end
- # HP 的伤害减法运算
- self.sp -= self.damage #魔力减法运算
- else
- if self.state?(100) #
- self.damage = -self.maxhp / 10 #改为增加10%血量
- else
- self.damage = self.maxhp / 10
- end
- #--------------------------------------------------
- # 分散
- if self.damage.abs > 0
- amp = [self.damage.abs * 15 / 100, 1].max
- self.damage += rand(amp+1) + rand(amp+1) - amp
- end
- # HP 的伤害减法运算
- self.hp -= self.damage
- end #判定回血回魔的end
- # 过程结束
- return true
- end
复制代码 2.Game_Party的部分:
- #--------------------------------------------------------------------------
- # ● 检查连续伤害 (地图用)
- #--------------------------------------------------------------------------
- def check_map_slip_damage
- for actor in @actors
- #---------------------------------------------------------------------修改部分↓
- if actor.state?(100) #
- actor.hp += [actor.maxhp / 100, 1].max #持续恢复1%血量
- end
- if actor.state?(200) #
- actor.sp += [actor.maxsp / 100, 1].max #持续恢复1%魔力
- end
- if actor.state?(100) or actor.state?(200) #增加这个判定是为了在回血状态下屏蔽掉红屏的效果
- elsif actor.hp > 0 and actor.slip_damage?
- #-----------------------------------------------------------------------
- actor.hp -= [actor.maxhp / 100, 1].max
- if actor.hp == 0
- $game_system.se_play($data_system.actor_collapse_se)
- end
- $game_screen.start_flash(Color.new(255,0,0,128), 4)
- $game_temp.gameover = $game_party.all_dead?
- end
- end
- end
复制代码 大体就是这样,其实回血就是将伤血状态造成的伤害改为负数,回魔则是将hp改为sp罢了。用这个方法还可以做出持续伤害魔力的状态。 |
评分
-
查看全部评分
|