「回復魔力パラメータ追加」の編集履歴(バックアップ)一覧はこちら

回復魔力パラメータ追加」(2010/09/24 (金) 19:53:20) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*回復魔力パラメータ追加 以下よりコード ---- =begin ★回復魔力パラメーター追加★ 新たに回復魔力パラメーターを作り、精神力と差別化します。 ● 仕様 ●========================================================== 既存のパラメーターである精神力は、魔法攻撃力として利用されます。 ==================================================================== ● 使い方 ●======================================================== アクターの設定はスクリプト内の設定箇所にて行ってください。  設定されていないアクターの魔法防御値は、精神力と同値になります。 -------------------------------------------------------------------- ◇ 能力補正ステートの設定方法  ステートのメモ欄に「回復魔力変化率:n」と記述。nは変化率。  例:150で1.5倍 -------------------------------------------------------------------- ◇ 能力補正アイテムの設定方法  アイテムのメモ欄に「回復魔力変化量:n」と記述。nは変化量。 -------------------------------------------------------------------- ◇ 装備品の設定方法  装備のメモ欄に「回復魔力装備補正:n」と記述。nは変化量。 -------------------------------------------------------------------- ◇ エネミーの設定方法  敵キャラのメモ欄に「回復魔力値設定:n」と記述。nはパラメーター値。  ※ 設定されていないエネミーの魔法防御値は、精神力と同値になります。 -------------------------------------------------------------------- ◇ イベントコマンドから能力値を増減させる  次のスクリプトを実行 $game_actors[id].hspi += n id => アクターID n => 変化量 ==================================================================== ● 挿入位置 ●====================================================== 「2タイプガードコマンド」より下に貼り付けてください。 ==================================================================== ● 注意 ●========================================================== ver1.01以前に使用していた一部のメソッドを使用しなくなりました。 旧バージョンを使用して他のスクリプトを改造しており、 尚且つ、差し替えるという方は以下の点に御注意ください。 未使用メソッドは次の通りです。 ・Game_Battler > hspi_state ・Window_Base > draw_actor_hspi ・Window_EquipStatus > draw_hspi ==================================================================== ver1.13 Last Update : 2010/9/24    9/24 :回復魔力として改変。ありがとうございました。    ↓ろかん様の更新履歴 11/26: イベントコマンドでの能力値加算に対応 10/27: 装備品のマイナス補正が機能しなかった不具合を修正 9/27 : プリセットや他サイトのスクリプトとの併用を行い易いように改造 (スクリプトがわかる人向けの更新になります) 7/15 : 装備変更画面のウィンドウのズレを修正 7/13 : 新規    元素材 ろかん様   http://kaisouryouiki.web.fc2.com/    改変者 クルーク   http://www35.atwiki.jp/batofi28/ =end #=========================================== # 設定箇所 #=========================================== module Rokan module Heal_spi_Plas # パラメーター名(ステータス画面などに表示される名前です) HSN = "回復魔力" # パラメーター上限値 HSM = 999 # アクター別成長表( アクターID => ) HSG = {1 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 2 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 3 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 4 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 } end end #=========================================== # ここまで #=========================================== $rsi = {} if $rsi == nil $rsi["回復魔力パラメーター追加"] = true module RPG class BaseItem def hspi_memo note.each_line { |line| case line when /回復魔力装備補正:(\-?\d+)/i ; return $1.to_i end } return 0 end end class Item < UsableItem def hspi_point note.each_line { |line| case line when /回復魔力変化量:(\d+)/i ; return $1.to_i end } return 0 end end class Weapon < BaseItem def hspi return hspi_memo end end class Armor < BaseItem def hspi return hspi_memo end end class State def hspi_rate note.each_line { |line| case line when /回復魔力変化率:(\d+)/i ; return $1.to_i end } return 100 end end class Actor include Rokan::Heal_spi_Plas def hspi_parameter(level) return HSG[id] != nil ? HSG[id][level - 1] : @parameters[4,level] end end class Enemy def hspi note.each_line { |line| case line when /回復魔力値設定:(\d+)/i ; return $1.to_i end } return spi end end end module Vocab def self.hspi return Rokan::Heal_spi_Plas::HSN end end class Game_Battler #-------------------------------------------------------------------------- # ● インクルード Rokan::Heal_spi_Plas #-------------------------------------------------------------------------- include Rokan::Heal_spi_Plas #-------------------------------------------------------------------------- # ● 能力値に加算する値をクリア #-------------------------------------------------------------------------- alias heal_spi_plas clear_extra_values def clear_extra_values heal_spi_plas @hspi_plus = 0 end #-------------------------------------------------------------------------- # ● 回復魔力の取得 #-------------------------------------------------------------------------- def hspi n = [[base_hspi + @hspi_plus, 1].max, HSM].min for state in states do n *= state.hspi_rate / 100.0 end n = [[Integer(n), 1].max, HSM].min return n end #-------------------------------------------------------------------------- # ● 回復魔力の設定 #-------------------------------------------------------------------------- def hspi=(new_hspi) @hspi_plus += new_hspi - self.hspi @hspi_plus = [[@hspi_plus, -1 * HSM].max, HSM].min end #-------------------------------------------------------------------------- # ● アイテムの成長効果適用 #-------------------------------------------------------------------------- alias heal_spi_items item_growth_effect def item_growth_effect(user, item) @hspi_plus += item.hspi_point heal_spi_items(user, item) end #-------------------------------------------------------------------------- # ● スキルまたはアイテムによるダメージ計算   ※再定義 #-------------------------------------------------------------------------- def make_obj_damage_value(user, obj) damage = obj.base_damage # 基本ダメージを取得 if damage > 0 # ダメージが正の数 damage += user.atk * 4 * obj.atk_f / 100 # 打撃関係度: 使用者 damage += user.spi * 2 * obj.spi_f / 100 # 精神関係度: 使用者 unless obj.ignore_defense # 防御力無視以外 damage -= self.def * 2 * obj.atk_f / 100 # 打撃関係度: 対象者 damage -= self.mdef * 1 * obj.spi_f / 100 # 精神関係度: 対象者 end damage = 0 if damage < 0 # マイナスなら 0 に elsif damage < 0 # ダメージが負の数 damage -= user.atk * 4 * obj.atk_f / 100 # 打撃関係度: 使用者 damage -= user.hspi * 2 * obj.spi_f / 100 # 回復魔力での計算 end damage *= elements_max_rate(obj.element_set) # 属性修正 damage /= 100 damage = apply_variance(damage, obj.variance) # 分散 damage = apply_guard(damage) # 防御修正 if $rsi["2タイプガードコマンド"] obj == nil or obj.physical_attack ? damage = p_apply_guard(damage) : damage = m_apply_guard(damage) end if obj.damage_to_mp @mp_damage = damage # MP にダメージ else @hp_damage = damage # HP にダメージ end end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 基本回復魔力の取得 #-------------------------------------------------------------------------- def base_hspi n = actor.hspi_parameter(@level) for item in equips.compact do n += item.hspi end return n end end class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● 基本回復魔力の取得 #-------------------------------------------------------------------------- def base_hspi return enemy.hspi end end class Window_Base < Window #-------------------------------------------------------------------------- # ● 能力値の描画 ※再定義 #-------------------------------------------------------------------------- def draw_actor_parameter(actor, x, y, type) case type when 0 parameter_name = Vocab::atk parameter_value = actor.atk when 1 parameter_name = Vocab::def parameter_value = actor.def when 2 parameter_name = Vocab::spi parameter_value = actor.spi when 3 parameter_name = Vocab::agi parameter_value = actor.agi when 4 parameter_name = Vocab::mdef parameter_value = actor.mdef when 5 parameter_name = Vocab::hspi parameter_value = actor.hspi end self.contents.font.color = system_color self.contents.draw_text(x, y, 120, WLH, parameter_name) self.contents.font.color = normal_color self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2) end end class Window_Status < Window_Base #-------------------------------------------------------------------------- # ● 能力値の描画 ※再定義 #-------------------------------------------------------------------------- def draw_parameters(x, y) draw_actor_parameter(@actor, x, y + WLH * 0, 0) draw_actor_parameter(@actor, x, y + WLH * 1, 1) draw_actor_parameter(@actor, x, y + WLH * 2, 2) draw_actor_parameter(@actor, x, y + WLH * 3, 4) draw_actor_parameter(@actor, x, y + WLH * 4, 3) draw_actor_parameter(@actor, x, y + WLH * 5, 5) end end class Window_EquipStatus < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 ※再定義 #-------------------------------------------------------------------------- def initialize(x, y, actor) super(x, y, 208, WLH * 7 + 32) @actor = actor refresh end #-------------------------------------------------------------------------- # ● リフレッシュ ※再定義 #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_name(@actor, 4, 0) draw_parameter(0, WLH * 1, 0) draw_parameter(0, WLH * 2, 1) draw_parameter(0, WLH * 3, 2) draw_parameter(0, WLH * 4, 4) draw_parameter(0, WLH * 5, 3) draw_parameter(0, WLH * 6, 5) end #-------------------------------------------------------------------------- # ● 装備変更後の能力値設定 ※再定義 #-------------------------------------------------------------------------- def set_new_parameters(new_atk, new_def, new_spi, new_agi, new_mdef, new_hspi) if @new_atk != new_atk or @new_def != new_def or @new_spi != new_spi or @new_agi != new_agi or @new_mdef != new_mdef or @new_hspi != new_hspi @new_atk = new_atk @new_def = new_def @new_spi = new_spi @new_agi = new_agi @new_mdef = new_mdef @new_hspi = new_hspi refresh end end #-------------------------------------------------------------------------- # ● 能力値の描画 ※再定義 #-------------------------------------------------------------------------- def draw_parameter(x, y, type) case type when 0 name = Vocab::atk value = @actor.atk new_value = @new_atk when 1 name = Vocab::def value = @actor.def new_value = @new_def when 2 name = Vocab::spi value = @actor.spi new_value = @new_spi when 3 name = Vocab::agi value = @actor.agi new_value = @new_agi when 4 name = Vocab::mdef value = @actor.mdef new_value = @new_mdef when 5 name = Vocab::hspi value = @actor.hspi new_value = @new_hspi end self.contents.font.color = system_color self.contents.draw_text(x + 4, y, 80, WLH, name) self.contents.font.color = normal_color self.contents.draw_text(x + 90, y, 30, WLH, value, 2) self.contents.font.color = system_color self.contents.draw_text(x + 122, y, 20, WLH, "→", 1) if new_value != nil self.contents.font.color = new_parameter_color(value, new_value) self.contents.draw_text(x + 142, y, 30, WLH, new_value, 2) end end end class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias equip_window_reset start def start equip_window_reset @equip_window.height = 176 end #-------------------------------------------------------------------------- # ● ステータスウィンドウの更新 ※再定義 #-------------------------------------------------------------------------- def update_status_window if @equip_window.active @status_window.set_new_parameters(nil, nil, nil, nil, nil, nil) elsif @item_window.active temp_actor = @actor.clone temp_actor.change_equip(@equip_window.index, @item_window.item, true) new_atk = temp_actor.atk new_def = temp_actor.def new_spi = temp_actor.spi new_agi = temp_actor.agi new_mdef = temp_actor.mdef new_hspi = temp_actor.hspi @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi, new_mdef, new_hspi) end @status_window.update end #-------------------------------------------------------------------------- # ● アイテムウィンドウの作成 #-------------------------------------------------------------------------- def create_item_windows @item_windows = [] for i in 0...EQUIP_TYPE_MAX @item_windows[i] = Window_EquipItem.new(0, 208 + 24, 544, 208 - 24, @actor, i) @item_windows[i].help_window = @help_window @item_windows[i].visible = (@equip_index == i) @item_windows[i].y = 208 + 24 @item_windows[i].height = 208 - 24 @item_windows[i].active = false @item_windows[i].index = -1 end end end
*回復魔力パラメータ追加 以下よりコード 最下層までコピってみてください。 ---- =begin ★回復魔力パラメーター追加★ 新たに回復魔力パラメーターを作り、精神力と差別化します。 ● 仕様 ●========================================================== 既存のパラメーターである精神力は、魔法攻撃力として利用されます。 ==================================================================== ● 使い方 ●======================================================== アクターの設定はスクリプト内の設定箇所にて行ってください。  設定されていないアクターの魔法防御値は、精神力と同値になります。 -------------------------------------------------------------------- ◇ 能力補正ステートの設定方法  ステートのメモ欄に「回復魔力変化率:n」と記述。nは変化率。  例:150で1.5倍 -------------------------------------------------------------------- ◇ 能力補正アイテムの設定方法  アイテムのメモ欄に「回復魔力変化量:n」と記述。nは変化量。 -------------------------------------------------------------------- ◇ 装備品の設定方法  装備のメモ欄に「回復魔力装備補正:n」と記述。nは変化量。 -------------------------------------------------------------------- ◇ エネミーの設定方法  敵キャラのメモ欄に「回復魔力値設定:n」と記述。nはパラメーター値。  ※ 設定されていないエネミーの魔法防御値は、精神力と同値になります。 -------------------------------------------------------------------- ◇ イベントコマンドから能力値を増減させる  次のスクリプトを実行 $game_actors[id].hspi += n id => アクターID n => 変化量 ==================================================================== ● 挿入位置 ●====================================================== 「2タイプガードコマンド」より下に貼り付けてください。 ==================================================================== ● 注意 ●========================================================== ver1.01以前に使用していた一部のメソッドを使用しなくなりました。 旧バージョンを使用して他のスクリプトを改造しており、 尚且つ、差し替えるという方は以下の点に御注意ください。 未使用メソッドは次の通りです。 ・Game_Battler > hspi_state ・Window_Base > draw_actor_hspi ・Window_EquipStatus > draw_hspi ==================================================================== ver1.13 Last Update : 2010/9/24    9/24 :回復魔力として改変。ありがとうございました。    ↓ろかん様の更新履歴 11/26: イベントコマンドでの能力値加算に対応 10/27: 装備品のマイナス補正が機能しなかった不具合を修正 9/27 : プリセットや他サイトのスクリプトとの併用を行い易いように改造 (スクリプトがわかる人向けの更新になります) 7/15 : 装備変更画面のウィンドウのズレを修正 7/13 : 新規    元素材 ろかん様   http://kaisouryouiki.web.fc2.com/    改変者 クルーク   http://www35.atwiki.jp/batofi28/ =end #=========================================== # 設定箇所 #=========================================== module Rokan module Heal_spi_Plas # パラメーター名(ステータス画面などに表示される名前です) HSN = "回復魔力" # パラメーター上限値 HSM = 999 # アクター別成長表( アクターID => ) HSG = {1 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 2 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 3 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 4 => [ 12, 16, 19, 23, 27, 30, 34, 39, 43, 48, # Lv1 ..Lv10 53, 56, 60, 65, 69, 74, 78, 81, 87, 92, # Lv11..Lv20 98, 102, 108, 113, 118, 122, 126, 131, 137, 142, # Lv21..Lv30 147, 153, 160, 165, 169, 175, 181, 186, 192, 197, # Lv31..Lv40 201, 205, 209, 214, 220, 224, 227, 232, 238, 242, # Lv41..Lv50 256, 261, 266, 272, 276, 279, 283, 288, 292, 298, # Lv51..Lv60 305, 310, 314, 320, 324, 329, 323, 327, 330, 335, # Lv61..Lv70 339, 345, 349, 354, 359, 364, 368, 374, 378, 383, # Lv71..Lv80 386, 390, 394, 397, 400, 404, 407, 411, 416, 420, # Lv81..Lv90 426, 431, 434, 439, 443, 449, 454, 459, 466], # Lv91..Lv99 } end end #=========================================== # ここまで #=========================================== $rsi = {} if $rsi == nil $rsi["回復魔力パラメーター追加"] = true module RPG class BaseItem def hspi_memo note.each_line { |line| case line when /回復魔力装備補正:(\-?\d+)/i ; return $1.to_i end } return 0 end end class Item < UsableItem def hspi_point note.each_line { |line| case line when /回復魔力変化量:(\d+)/i ; return $1.to_i end } return 0 end end class Weapon < BaseItem def hspi return hspi_memo end end class Armor < BaseItem def hspi return hspi_memo end end class State def hspi_rate note.each_line { |line| case line when /回復魔力変化率:(\d+)/i ; return $1.to_i end } return 100 end end class Actor include Rokan::Heal_spi_Plas def hspi_parameter(level) return HSG[id] != nil ? HSG[id][level - 1] : @parameters[4,level] end end class Enemy def hspi note.each_line { |line| case line when /回復魔力値設定:(\d+)/i ; return $1.to_i end } return spi end end end module Vocab def self.hspi return Rokan::Heal_spi_Plas::HSN end end class Game_Battler #-------------------------------------------------------------------------- # ● インクルード Rokan::Heal_spi_Plas #-------------------------------------------------------------------------- include Rokan::Heal_spi_Plas #-------------------------------------------------------------------------- # ● 能力値に加算する値をクリア #-------------------------------------------------------------------------- alias heal_spi_plas clear_extra_values def clear_extra_values heal_spi_plas @hspi_plus = 0 end #-------------------------------------------------------------------------- # ● 回復魔力の取得 #-------------------------------------------------------------------------- def hspi n = [[base_hspi + @hspi_plus, 1].max, HSM].min for state in states do n *= state.hspi_rate / 100.0 end n = [[Integer(n), 1].max, HSM].min return n end #-------------------------------------------------------------------------- # ● 回復魔力の設定 #-------------------------------------------------------------------------- def hspi=(new_hspi) @hspi_plus += new_hspi - self.hspi @hspi_plus = [[@hspi_plus, -1 * HSM].max, HSM].min end #-------------------------------------------------------------------------- # ● アイテムの成長効果適用 #-------------------------------------------------------------------------- alias heal_spi_items item_growth_effect def item_growth_effect(user, item) @hspi_plus += item.hspi_point heal_spi_items(user, item) end #-------------------------------------------------------------------------- # ● スキルまたはアイテムによるダメージ計算   ※再定義 #-------------------------------------------------------------------------- def make_obj_damage_value(user, obj) damage = obj.base_damage # 基本ダメージを取得 if damage > 0 # ダメージが正の数 damage += user.atk * 4 * obj.atk_f / 100 # 打撃関係度: 使用者 damage += user.spi * 2 * obj.spi_f / 100 # 精神関係度: 使用者 unless obj.ignore_defense # 防御力無視以外 damage -= self.def * 2 * obj.atk_f / 100 # 打撃関係度: 対象者 damage -= self.mdef * 1 * obj.spi_f / 100 # 精神関係度: 対象者 end damage = 0 if damage < 0 # マイナスなら 0 に elsif damage < 0 # ダメージが負の数 damage -= user.atk * 4 * obj.atk_f / 100 # 打撃関係度: 使用者 damage -= user.hspi * 2 * obj.spi_f / 100 # 回復魔力での計算 end damage *= elements_max_rate(obj.element_set) # 属性修正 damage /= 100 damage = apply_variance(damage, obj.variance) # 分散 damage = apply_guard(damage) # 防御修正 if $rsi["2タイプガードコマンド"] obj == nil or obj.physical_attack ? damage = p_apply_guard(damage) : damage = m_apply_guard(damage) end if obj.damage_to_mp @mp_damage = damage # MP にダメージ else @hp_damage = damage # HP にダメージ end end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 基本回復魔力の取得 #-------------------------------------------------------------------------- def base_hspi n = actor.hspi_parameter(@level) for item in equips.compact do n += item.hspi end return n end end class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● 基本回復魔力の取得 #-------------------------------------------------------------------------- def base_hspi return enemy.hspi end end class Window_Base < Window #-------------------------------------------------------------------------- # ● 能力値の描画 ※再定義 #-------------------------------------------------------------------------- def draw_actor_parameter(actor, x, y, type) case type when 0 parameter_name = Vocab::atk parameter_value = actor.atk when 1 parameter_name = Vocab::def parameter_value = actor.def when 2 parameter_name = Vocab::spi parameter_value = actor.spi when 3 parameter_name = Vocab::agi parameter_value = actor.agi when 4 parameter_name = Vocab::mdef parameter_value = actor.mdef when 5 parameter_name = Vocab::hspi parameter_value = actor.hspi end self.contents.font.color = system_color self.contents.draw_text(x, y, 120, WLH, parameter_name) self.contents.font.color = normal_color self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2) end end class Window_Status < Window_Base #-------------------------------------------------------------------------- # ● 能力値の描画 ※再定義 #-------------------------------------------------------------------------- def draw_parameters(x, y) draw_actor_parameter(@actor, x, y + WLH * 0, 0) draw_actor_parameter(@actor, x, y + WLH * 1, 1) draw_actor_parameter(@actor, x, y + WLH * 2, 2) draw_actor_parameter(@actor, x, y + WLH * 3, 4) draw_actor_parameter(@actor, x, y + WLH * 4, 3) draw_actor_parameter(@actor, x, y + WLH * 5, 5) end end class Window_EquipStatus < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 ※再定義 #-------------------------------------------------------------------------- def initialize(x, y, actor) super(x, y, 208, WLH * 7 + 32) @actor = actor refresh end #-------------------------------------------------------------------------- # ● リフレッシュ ※再定義 #-------------------------------------------------------------------------- def refresh self.contents.clear draw_actor_name(@actor, 4, 0) draw_parameter(0, WLH * 1, 0) draw_parameter(0, WLH * 2, 1) draw_parameter(0, WLH * 3, 2) draw_parameter(0, WLH * 4, 4) draw_parameter(0, WLH * 5, 3) draw_parameter(0, WLH * 6, 5) end #-------------------------------------------------------------------------- # ● 装備変更後の能力値設定 ※再定義 #-------------------------------------------------------------------------- def set_new_parameters(new_atk, new_def, new_spi, new_agi, new_mdef, new_hspi) if @new_atk != new_atk or @new_def != new_def or @new_spi != new_spi or @new_agi != new_agi or @new_mdef != new_mdef or @new_hspi != new_hspi @new_atk = new_atk @new_def = new_def @new_spi = new_spi @new_agi = new_agi @new_mdef = new_mdef @new_hspi = new_hspi refresh end end #-------------------------------------------------------------------------- # ● 能力値の描画 ※再定義 #-------------------------------------------------------------------------- def draw_parameter(x, y, type) case type when 0 name = Vocab::atk value = @actor.atk new_value = @new_atk when 1 name = Vocab::def value = @actor.def new_value = @new_def when 2 name = Vocab::spi value = @actor.spi new_value = @new_spi when 3 name = Vocab::agi value = @actor.agi new_value = @new_agi when 4 name = Vocab::mdef value = @actor.mdef new_value = @new_mdef when 5 name = Vocab::hspi value = @actor.hspi new_value = @new_hspi end self.contents.font.color = system_color self.contents.draw_text(x + 4, y, 80, WLH, name) self.contents.font.color = normal_color self.contents.draw_text(x + 90, y, 30, WLH, value, 2) self.contents.font.color = system_color self.contents.draw_text(x + 122, y, 20, WLH, "→", 1) if new_value != nil self.contents.font.color = new_parameter_color(value, new_value) self.contents.draw_text(x + 142, y, 30, WLH, new_value, 2) end end end class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias equip_window_reset start def start equip_window_reset @equip_window.height = 176 end #-------------------------------------------------------------------------- # ● ステータスウィンドウの更新 ※再定義 #-------------------------------------------------------------------------- def update_status_window if @equip_window.active @status_window.set_new_parameters(nil, nil, nil, nil, nil, nil) elsif @item_window.active temp_actor = @actor.clone temp_actor.change_equip(@equip_window.index, @item_window.item, true) new_atk = temp_actor.atk new_def = temp_actor.def new_spi = temp_actor.spi new_agi = temp_actor.agi new_mdef = temp_actor.mdef new_hspi = temp_actor.hspi @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi, new_mdef, new_hspi) end @status_window.update end #-------------------------------------------------------------------------- # ● アイテムウィンドウの作成 #-------------------------------------------------------------------------- def create_item_windows @item_windows = [] for i in 0...EQUIP_TYPE_MAX @item_windows[i] = Window_EquipItem.new(0, 208 + 24, 544, 208 - 24, @actor, i) @item_windows[i].help_window = @help_window @item_windows[i].visible = (@equip_index == i) @item_windows[i].y = 208 + 24 @item_windows[i].height = 208 - 24 @item_windows[i].active = false @item_windows[i].index = -1 end end end

表示オプション

横に並べて表示:
変化行の前後のみ表示: