Project1

标题: 问 中毒状态该不该死!? [打印本页]

作者: 企鹅达达    时间: 2010-11-13 07:47
标题: 问 中毒状态该不该死!?
本帖最后由 企鹅达达 于 2010-11-14 16:48 编辑

Space not far 的状态扩张脚本问题
设置了中毒可以死亡,但是中毒死亡之后怪物不会消失……连死亡附加时的消息都没有显示
  1. #==============================================================================
  2. # ○スリップダメージ詳細設定 Ver1.03
  3. # for RGSS2
  4. # 西瓜 / Space not far
  5. # http://muspell.raindrop.jp/
  6. # スリップダメージをステートIDごとに無駄に細かく設定します。
  7. # このスクリプトを使用するとデータベースのスリップ設定は意味がなくなります。
  8. # HPのかわりにMPがスリップするようになったり、
  9. # スリップダメージによる戦闘不能を許可するかなどのオプションがあります。
  10. #==============================================================================
  11. # ■更新履歴
  12. # Ver1.03
  13. #  ・素材が全文コメントアウトされていたのを修正。
  14. # Ver1.02
  15. #  ・誤記を修正。
  16. # Ver1.01
  17. #  ・エネミーが戦闘不能になった次のターンで生き返る不具合を修正。
  18. #==============================================================================

  19. module SNF
  20.   
  21.   SLIP_PATTERN = []    #初期化
  22.   SLIP_PATTERN_MP = [] #初期化
  23.   
  24.   SLIP_AMOUNT = true
  25.   # 各ステートのスリップダメージを合計するか選びます。
  26.   # trueだとスリップダメージの値が全てのステートの累計ダメージとなり、
  27.   # falseだとSLIP_ARRAYで最初のほうに設定されたステートのダメージとなります。
  28.   
  29. #==============================================================================
  30. # ● HPスリップ
  31. #==============================================================================
  32. #状态中勾选连续伤害,以下设定就可以用了
  33.   SLIP_DEATH = [2]
  34.   # 可以进入濒死状态的连续损伤状态id、
  35.   # これを設定することで戦闘不能にさせることができます。
  36.   # SLIP_DEATH = [スリップダメージで戦闘不能になるステートID]
  37.   # 例:SLIP_DEATH = [2, 4]  ID2か4のステートのスリップダメージで戦闘不能に
  38.   
  39.   SLIP_ARRAY = [2, 50, 51]
  40.   # 所有连续损伤的状态ID序列。
  41.   # ↓在SLIP_PATTERN[n]中分别设定伤害值。
  42.   
  43.   
  44.   # SLIP_PATTERN[状态ID] = [百分比伤害, 固定伤害, 分散度, 是否以现存HP为标准(可省略)]
  45.   # 現在HP基準がtrueだと現在HPが割合ダメージの基準となります。
  46.   # ↓設定例
  47.   SLIP_PATTERN[2] = [10, 0, 10]
  48.   SLIP_PATTERN[50] = [50, 10, 0, true]
  49.   SLIP_PATTERN[51] = [0, 300, 0]
  50.   # 状态2号 :每回合最大HP的 10%、分散度 10 的伤害(デフォルト設定)
  51.   # 状态50号:每回合损失现存HP的 50% + 10点固定伤害  的伤害
  52.   # ステート51番:每回合300 固定伤害
  53.   
  54. #==============================================================================
  55. # ● MPスリップ
  56. #==============================================================================
  57.   
  58.   SLIP_ARRAY_MP = [52]
  59.   # mp连续伤害的状态ID序列,设定可参考上面HP的。
  60.   # ↓のSLIP_PATTERN_MP[n]のnの数値を入れてください。
  61.   
  62.   # SLIP_PATTERN[ステートID] = [割合dmg, 固定dmg, 分散度, 現在MP基準(省略可)]
  63.   # 現在MP基準がtrueだと現在MPが割合ダメージの基準となります。
  64.   # ↓設定例
  65.   SLIP_PATTERN_MP[52] = [20, 15, 10]
  66.   # ステート52番:毎ターン最大MPの 20% + 15、分散度 10 のMPダメージ
  67.   
  68. end

  69. class Game_Battler
  70.   def slip_damage_effect
  71.     if slip_damage? and @hp > 0
  72.       # HPスリップ
  73.       
  74.       total_damage = 0
  75.       for i in 0..SNF::SLIP_ARRAY.size
  76.         id = SNF::SLIP_ARRAY[i]
  77.         if @states.include?(SNF::SLIP_ARRAY[i])
  78.           # スリップダメージの計算
  79.           if SNF::SLIP_PATTERN[id][3] == true
  80.             base = hp
  81.           else
  82.             base = maxhp
  83.           end
  84.           damage = base * SNF::SLIP_PATTERN[id][0] / 100
  85.           total_damage += apply_variance(damage, SNF::SLIP_PATTERN[id][2])
  86.           total_damage += SNF::SLIP_PATTERN[id][1]
  87.           break unless SNF::SLIP_AMOUNT # falseならループ脱出
  88.         end
  89.       end
  90.       @hp_damage = total_damage
  91.       death = false
  92.       for i in [email protected]
  93.         death = true if @states.include?(SNF::SLIP_DEATH[i]) # ダメージを減らさない
  94.       end
  95.       @hp_damage = @hp - 1 if @hp_damage >= @hp and death != true
  96.       self.hp -= @hp_damage
  97.       
  98.       # MPスリップ
  99.       
  100.       total_damage_mp = 0
  101.       for i in 0..SNF::SLIP_ARRAY_MP.size
  102.         id = SNF::SLIP_ARRAY_MP[i]
  103.         if @states.include?(SNF::SLIP_ARRAY_MP[i])
  104.           # スリップダメージの計算
  105.           if SNF::SLIP_PATTERN_MP[id][3] == true
  106.             base = mp
  107.           else
  108.             base = maxmp
  109.           end
  110.           damage = base * SNF::SLIP_PATTERN_MP[id][0] / 100
  111.           total_damage_mp += apply_variance(damage, SNF::SLIP_PATTERN_MP[id][2])
  112.           total_damage_mp += SNF::SLIP_PATTERN_MP[id][1]
  113.           break unless SNF::SLIP_AMOUNT # falseならループ脱出
  114.         end
  115.       end
  116.       @mp_damage = total_damage_mp
  117.       self.mp -= @mp_damage
  118.     end
  119.   end
  120. end

复制代码

作者: 企鹅达达    时间: 2010-11-13 20:58
话说本鹅RP MS 有点问题,n次提问均无人问津,囧~啊
作者: 38571240    时间: 2010-11-13 21:16
这个脚本怎么用的?
作者: 企鹅达达    时间: 2010-11-13 21:31
本帖最后由 企鹅达达 于 2010-11-13 22:22 编辑

回复 38571240 的帖子

因为不满KGC那个没有分散度的设置,所以改用这个。其实可以两个一起用,KGC那个状态扩张可以专门用来做地图上的伤害,而这个是战斗时候的伤害。可惜这个脚本设置可以死亡时有硬伤。当然,不介意的话可以设置中毒不会死,就像VX默认的那样(我也是用了才知道是这样的)
答谢回复,附赠连续损伤伤害显示脚本,可以在对象行动后显示状态持续时的信息,然后立即执行连续伤害,并显示伤害数值
Poison.exe (414.5 KB, 下载次数: 38)
作者: 烁灵    时间: 2010-11-13 22:55
本帖最后由 烁灵 于 2010-11-14 15:00 编辑

企鹅兄 见附件


连续损伤的bug.rar (243.24 KB, 下载次数: 49)
作者: 企鹅达达    时间: 2010-11-14 01:43
回复 烁灵 的帖子

中毒死的的确是消失了,正常死亡的反倒不会消失了……
作者: 烁灵    时间: 2010-11-14 16:32
回复 企鹅达达 的帖子

改好了~

连续损伤的bug.rar (243.29 KB, 下载次数: 100)
作者: 企鹅达达    时间: 2010-11-14 16:47
回复 烁灵 的帖子

非常好,只是一句话的问题……以下是奖励 =.=
菜单状态栏状态介绍.rar (2.57 KB, 下载次数: 51)




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