Project1

标题: 菜单中使用蓝药无效 [打印本页]

作者: xb370777978    时间: 2012-11-8 12:41
标题: 菜单中使用蓝药无效
本帖最后由 hcm 于 2012-11-25 09:48 编辑
  1. #--------------------------------------------------------------------------
  2.   # ● アイテムの効果適用
  3.   #     item : アイテム
  4.   #--------------------------------------------------------------------------
  5.   def item_effect(item, user = $game_party.actors[0])
  6.     # クリティカルフラグをクリア
  7.     self.critical[user] = false
  8.     state_p[user] = []
  9.     state_m[user] = []
  10.     self.recover_hp[user] = 0
  11.     self.recover_sp[user] = 0
  12.     # アイテムの効果範囲が HP 1 以上の味方で、自分の HP が 0、
  13.     # またはアイテムの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合
  14.     if ((item.scope == 3 or item.scope == 4) and self.hp == 0)# or
  15.     #   ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
  16.       # メソッド終了
  17.       return false
  18.     end
  19.     # 有効フラグをクリア
  20.     effective = false
  21.     # コモンイベント ID が有効の場合は有効フラグをセット
  22.     effective |= item.common_event_id > 0
  23.     # 命中判定
  24.     hit_result = (rand(100) < item.hit)
  25.     # 不確実なスキルの場合は有効フラグをセット
  26.     effective |= item.hit < 100
  27.     # 命中の場合
  28.     if hit_result == true
  29.       # 回復量を計算
  30.       self.recover_hp[user] = maxhp * item.recover_hp_rate / 100 +
  31.                               item.recover_hp
  32.       self.recover_sp[user] = maxsp * item.recover_sp_rate / 100 +
  33.                               item.recover_sp
  34.       if self.recover_hp[user] < 0
  35.         self.recover_hp[user] += self.pdef * item.pdef_f / 20
  36.         self.recover_hp[user] += self.mdef * item.mdef_f / 20
  37.         self.recover_hp[user] = [self.recover_hp[user], 0].min
  38.       end
  39.       # 属性修正
  40.       self.recover_hp[user] *= elements_correct(item.element_set)
  41.       self.recover_hp[user] /= 100
  42.       self.recover_sp[user] *= elements_correct(item.element_set)
  43.       self.recover_sp[user] /= 100
  44.       # 分散
  45.       if item.variance > 0 and self.recover_hp[user].abs > 0
  46.         amp = [self.recover_hp[user].abs * item.variance / 100, 1].max
  47.         self.recover_hp[user] += rand(amp+1) + rand(amp+1) - amp
  48.       end
  49.       if item.variance > 0 and self.recover_sp[user].abs > 0
  50.         amp = [self.recover_sp[user].abs * item.variance / 100, 1].max
  51.         self.recover_sp[user] += rand(amp+1) + rand(amp+1) - amp
  52.       end
  53.       # 回復量の符号が負の場合
  54.       if self.recover_hp[user] < 0
  55.         # 防御修正
  56.         if self.guarding?
  57.           self.recover_hp[user] /= 2
  58.         end
  59.       end
  60.       # HP 回復量の符号を反転し、ダメージの値に設定
  61.       self.damage[user] = -self.recover_hp[user]
  62.       # HP および SP の変動判定
  63.       last_hp = [[self.hp + self.recover_hp[user], self.maxhp].min, 0].max
  64.       last_sp = [[self.sp + self.recover_sp[user], self.maxsp].min, 0].max
  65.       effective |= self.hp != last_hp
  66.       effective |= self.sp != last_sp
  67.       # ステート変化
  68.       @state_changed = false
  69.       effective |= states_plus(user, item.plus_state_set)
  70.       effective |= states_minus(user, item.minus_state_set)
  71.       unless $game_temp.in_battle
  72.         self.damage_effect(user,  nil)
  73.       end
  74.       # パラメータ上昇値が有効の場合
  75.       if item.parameter_type > 0 and item.parameter_points != 0
  76.         # パラメータで分岐
  77.         case item.parameter_type
  78.         when 1  # MaxHP
  79.           @maxhp_plus += item.parameter_points
  80.         when 2  # MaxSP
  81.           @maxsp_plus += item.parameter_points
  82.         when 3  # 腕力
  83.           @str_plus += item.parameter_points
  84.         when 4  # 器用さ
  85.           @dex_plus += item.parameter_points
  86.         when 5  # 素早さ
  87.           @agi_plus += item.parameter_points
  88.         when 6  # 魔力
  89.           @int_plus += item.parameter_points
  90.         end
  91.         # 有効フラグをセット
  92.         effective = true
  93.       end
  94.       # HP 回復率と回復量が 0 の場合
  95.       if item.recover_hp_rate == 0 and item.recover_hp == 0
  96.         # ダメージに空文字列を設定
  97.         self.damage[user] = ""
  98.         # SP 回復率と回復量が 0、パラメータ上昇値が無効の場合
  99.         if item.recover_sp_rate == 0 and item.recover_sp == 0 and
  100.            (item.parameter_type == 0 or item.parameter_points == 0)
  101.           # ステートに変化がない場合
  102.           unless @state_changed
  103.             # ダメージに "Miss" を設定
  104.             self.damage[user] = "Miss"
  105.           end
  106.         end
  107.       end
  108.     # ミスの場合
  109.     else
  110.       # ダメージに "Miss" を設定
  111.       self.damage[user] = "Miss"
  112.     end
  113.     # 戦闘中でない場合
  114.     unless $game_temp.in_battle
  115.       # ダメージに nil を設定
  116.       self.damage[user] = nil
  117.     end
  118.     # メソッド終了
  119.     return effective
  120.   end
复制代码
自己尝试改过- -。。。之前RTAB的代码菜单中使用会出错,现在可以使用了,红药正常,但是蓝药使用没有效果。。。求教。。。
作者: xb370777978    时间: 2012-11-8 14:46
嗑药问题解决了。。。现在新问题。。。使用了屏障力量等物品后好像没有效果。。。
作者: 乐乐66    时间: 2012-11-9 18:57
请注明问题确切发生效果,要问的问题
脚本要用代码框框起来




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