赞 | 6 |
VIP | 20 |
好人卡 | 126 |
积分 | 27 |
经验 | 33282 |
最后登录 | 2024-11-19 |
在线时间 | 1601 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2743
- 在线时间
- 1601 小时
- 注册时间
- 2010-10-22
- 帖子
- 1058
|
本帖最后由 kangxi0109 于 2012-10-21 09:41 编辑
1. 在数据库中设置一个新的状态,勾选“持续伤害”,这里以80号状态为例。
2. 在Scene_Battle 1中对应位置添加如下部分:- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- def main
- # 初始化战斗用的各种暂时数据
- #===============添加↓
- $state80 = [] #添加80号状态回合计数初始化数组
- #===============添加↑
- $game_temp.in_battle = true
- $game_temp.battle_turn = 0
复制代码 3.在Game_Battler 3中对应位置添加如下部分:
- #--------------------------------------------------------------------------
- # ● 应用连续伤害效果
- #--------------------------------------------------------------------------
- def slip_damage_effect
- # 设置伤害
- self.damage = self.maxhp / 10
- # 分散
- if self.damage.abs > 0
- amp = [self.damage.abs * 15 / 100, 1].max
- self.damage += rand(amp+1) + rand(amp+1) - amp
- end
- #============================添加↓
- if self.state?(80) # 包含80号状态的场合
- if self.is_a?(Game_Actor)#角色的场合
- m = self.id + 8 #获取编号,空出前8个位置给敌人
- else #敌人的场合
- m = self.index #获取序列
- end
- if $state80[m] == nil #初始化,目标若从未附加过这个状态时执行
- $state80[m] = 0
- end
- $state80[m] += 1
- if $state80[m] == 4 #计数至第4回合
- self.damage = 1000 #造成1000点损伤
- self.remove_state(80) #解除80号状态
- $state80[m] = 0 #回合计数归0
- else
- self.damage = $state80[m] #造成当前回合计数的伤害,作为标记使用
- end
- end
- #============================添加↑
- # HP 的伤害减法运算
- self.hp -= self.damage
- # 过程结束
- return true
- end
复制代码 注意:这个状态的特殊结算方式只在战斗中有效,如果该状态是在地图中用公共事件附加的,则会按默认的持续伤害方式运行,直至开始战斗。 |
评分
-
查看全部评分
|