赞 | 0 |
VIP | 4 |
好人卡 | 0 |
积分 | 2 |
经验 | 31715 |
最后登录 | 2021-9-11 |
在线时间 | 829 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 180
- 在线时间
- 829 小时
- 注册时间
- 2010-6-26
- 帖子
- 671
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 企鹅达达 于 2010-11-14 16:48 编辑
Space not far 的状态扩张脚本问题
设置了中毒可以死亡,但是中毒死亡之后怪物不会消失……连死亡附加时的消息都没有显示- #==============================================================================
- # ○スリップダメージ詳細設定 Ver1.03
- # for RGSS2
- # 西瓜 / Space not far
- # http://muspell.raindrop.jp/
- # スリップダメージをステートIDごとに無駄に細かく設定します。
- # このスクリプトを使用するとデータベースのスリップ設定は意味がなくなります。
- # HPのかわりにMPがスリップするようになったり、
- # スリップダメージによる戦闘不能を許可するかなどのオプションがあります。
- #==============================================================================
- # ■更新履歴
- # Ver1.03
- # ・素材が全文コメントアウトされていたのを修正。
- # Ver1.02
- # ・誤記を修正。
- # Ver1.01
- # ・エネミーが戦闘不能になった次のターンで生き返る不具合を修正。
- #==============================================================================
- module SNF
-
- SLIP_PATTERN = [] #初期化
- SLIP_PATTERN_MP = [] #初期化
-
- SLIP_AMOUNT = true
- # 各ステートのスリップダメージを合計するか選びます。
- # trueだとスリップダメージの値が全てのステートの累計ダメージとなり、
- # falseだとSLIP_ARRAYで最初のほうに設定されたステートのダメージとなります。
-
- #==============================================================================
- # ● HPスリップ
- #==============================================================================
- #状态中勾选连续伤害,以下设定就可以用了
- SLIP_DEATH = [2]
- # 可以进入濒死状态的连续损伤状态id、
- # これを設定することで戦闘不能にさせることができます。
- # SLIP_DEATH = [スリップダメージで戦闘不能になるステートID]
- # 例:SLIP_DEATH = [2, 4] ID2か4のステートのスリップダメージで戦闘不能に
-
- SLIP_ARRAY = [2, 50, 51]
- # 所有连续损伤的状态ID序列。
- # ↓在SLIP_PATTERN[n]中分别设定伤害值。
-
-
- # SLIP_PATTERN[状态ID] = [百分比伤害, 固定伤害, 分散度, 是否以现存HP为标准(可省略)]
- # 現在HP基準がtrueだと現在HPが割合ダメージの基準となります。
- # ↓設定例
- SLIP_PATTERN[2] = [10, 0, 10]
- SLIP_PATTERN[50] = [50, 10, 0, true]
- SLIP_PATTERN[51] = [0, 300, 0]
- # 状态2号 :每回合最大HP的 10%、分散度 10 的伤害(デフォルト設定)
- # 状态50号:每回合损失现存HP的 50% + 10点固定伤害 的伤害
- # ステート51番:每回合300 固定伤害
-
- #==============================================================================
- # ● MPスリップ
- #==============================================================================
-
- SLIP_ARRAY_MP = [52]
- # mp连续伤害的状态ID序列,设定可参考上面HP的。
- # ↓のSLIP_PATTERN_MP[n]のnの数値を入れてください。
-
- # SLIP_PATTERN[ステートID] = [割合dmg, 固定dmg, 分散度, 現在MP基準(省略可)]
- # 現在MP基準がtrueだと現在MPが割合ダメージの基準となります。
- # ↓設定例
- SLIP_PATTERN_MP[52] = [20, 15, 10]
- # ステート52番:毎ターン最大MPの 20% + 15、分散度 10 のMPダメージ
-
- end
- class Game_Battler
- def slip_damage_effect
- if slip_damage? and @hp > 0
- # HPスリップ
-
- total_damage = 0
- for i in 0..SNF::SLIP_ARRAY.size
- id = SNF::SLIP_ARRAY[i]
- if @states.include?(SNF::SLIP_ARRAY[i])
- # スリップダメージの計算
- if SNF::SLIP_PATTERN[id][3] == true
- base = hp
- else
- base = maxhp
- end
- damage = base * SNF::SLIP_PATTERN[id][0] / 100
- total_damage += apply_variance(damage, SNF::SLIP_PATTERN[id][2])
- total_damage += SNF::SLIP_PATTERN[id][1]
- break unless SNF::SLIP_AMOUNT # falseならループ脱出
- end
- end
- @hp_damage = total_damage
- death = false
- for i in [email protected]
- death = true if @states.include?(SNF::SLIP_DEATH[i]) # ダメージを減らさない
- end
- @hp_damage = @hp - 1 if @hp_damage >= @hp and death != true
- self.hp -= @hp_damage
-
- # MPスリップ
-
- total_damage_mp = 0
- for i in 0..SNF::SLIP_ARRAY_MP.size
- id = SNF::SLIP_ARRAY_MP[i]
- if @states.include?(SNF::SLIP_ARRAY_MP[i])
- # スリップダメージの計算
- if SNF::SLIP_PATTERN_MP[id][3] == true
- base = mp
- else
- base = maxmp
- end
- damage = base * SNF::SLIP_PATTERN_MP[id][0] / 100
- total_damage_mp += apply_variance(damage, SNF::SLIP_PATTERN_MP[id][2])
- total_damage_mp += SNF::SLIP_PATTERN_MP[id][1]
- break unless SNF::SLIP_AMOUNT # falseならループ脱出
- end
- end
- @mp_damage = total_damage_mp
- self.mp -= @mp_damage
- end
- end
- end
复制代码 |
|