赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 0 |
经验 | 315 |
最后登录 | 2012-11-10 |
在线时间 | 3 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 49
- 在线时间
- 3 小时
- 注册时间
- 2012-5-4
- 帖子
- 284
|
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #_/ ◆ パラメータ振り分け2 - KGC_DistributeParameter2 ◆ VX ◆
- #_/ ◇ Last update : 2009/09/26 ◇
- #_/----------------------------------------------------------------------------
- #_/ パラメータ振り分け機能を作成します。
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #==============================================================================
- # ★ カスタマイズ項目 - Customize ★
- #==============================================================================
- module KGC
- module DistributeParameter
- # ◆ パラメータ振り分け箇所
- # 振り分け箇所および増加量を
- # {
- # :key => キー,
- # :name => "名称",
- # :limit => 回数上限,
- # :cost => [消費 RP, 消費 RP 補正],
- # :パラメータ => [上昇量, 上昇量補正],
- # # 以降、パラメータを必要なだけ記述
- # },
- # という書式で追加。
- # 振り分け画面では、追加した順に表示。
- # 「キー」には、他の箇所と被らない名称を指定。
- # (内部で振り分け箇所を特定するために使用。数値、文字列など何でもOK)
- # 「回数上限」以外は小数でもOK。
- # 「回数上限」を 0 にすると回数無制限。
- # 「消費 RP 補正」と「上昇量補正」は省略可。省略時は 0。
- GAIN_PARAMETER = [
- {
- :key => :health,
- :name => "體力",
- :limit => 90,
- :cost => [ 1, 0.4],
- :maxhp => [30, 2],
- :def => [ 1, 0.25],
- },
- {
- :key => :magic,
- :name => "魔力",
- :limit => 90,
- :cost => [1, 0.4],
- :maxmp => [5, 0.5],
- :spi => [2, 0.5],
- },
- {
- :key => :pow,
- :name => "力量",
- :limit => 90,
- :cost => [1, 0.4],
- :atk => [2, 0.5],
- :def => [1, 0.25],
- },
- {
- :key => :dex,
- :name => "速度",
- :limit => 90,
- :cost => [1, 0.4],
- :agi => [2, 0.5],
- :hit => [0.5],
- :eva => [0.5],
- },
- {
- :key => :hit,
- :name => "命中率",
- :limit => 90,
- :cost => [1, 0.5],
- :hit => [1],
- },
- {
- :key => :eva,
- :name => "回避率",
- :limit => 90,
- :cost => [1, 0.5],
- :eva => [1],
- },
- {
- :key => :crt,
- :name => "致命一擊",
- :limit => 90,
- :cost => [1, 0.7],
- :cri => [1],
- },
- {
- :key => :chant,
- :name => "詠唱速度",
- :limit => 90,
- :cost => [1, 0.5],
- :skill_speed => [1],
- },
- {
- :key => :item,
- :name => "道具速度",
- :limit => 90,
- :cost => [1, 0.5],
- :item_speed => [1],
- },
- {
- :key => :odds,
- :name => "行動",
- :limit => 90,
- :cost => [1],
- :odds => [1],
- }
- ] # ← この ] は消さないこと!
- # ◆ アクター固有のパラメータ増加量
- PERSONAL_GAIN_PARAMETER = []
- # ここから下に、アクターごとの振り分け時の増加量を
- # PERSONAL_GAIN_PARAMETER[アクター ID] = [ 振り分け箇所 ]
- # という書式で指定。
- # 「振り分け箇所」は GAIN_PARAMETER と同様の書式。
- # キーが GAIN_PARAMETER と同じ場合、GAIN_PARAMETER に上書き。
- # 指定しなかったパラメータ/アクターは GAIN_PARAMETER を使用。
- #
- # <例> アクター1の "体力" を個別に指定。
- PERSONAL_GAIN_PARAMETER[1] = [
- {
- :key => :health,
- :name => "体力",
- :limit => 30,
- :cost => [ 1, 0.4],
- :maxhp => [50, 3],
- :def => [ 1, 0.3],
- },
- ]
- # ◆ 職業固有のパラメータ増加量
- CLASS_GAIN_PARAMETER = []
- # ここから下に、職業ごとの振り分け時の増加量を
- # CLASS_GAIN_PARAMETER[職業 ID] = [ 振り分け箇所 ]
- # という書式で指定。
- # その他はアクター固有の設定と同様。
- # (優先度は 職業 > アクター > デフォルト)
- # ◆ RP (Reinforce Point) の名称
- VOCAB_RP = "RP"
- # ◆ RP の名称 (略)
- VOCAB_RP_A = "R"
- # ◆ MaxRP 計算式
- # level .. レベル
- # 結果が小数になってもOK(自動で整数に変換)。
- MAXRP_EXP = "(level ** 0.25 + 2.0) * level"
- # ◆ パラメータ名
- # ≪拡張装備画面≫ と併用した場合、下に導入した方を優先。
- VOCAB_PARAM = {
- :hit => "命中率", # 命中率
- :eva => "回避率", # 回避率
- :cri => "致命一擊", # クリティカル率
- :skill_speed => "詠唱速度", # スキル速度補正
- :item_speed => "道具速度", # アイテム速度補正
- :odds => "行動", # 狙われやすさ
- } # ← この } は消さないこと!
- # ◆ 振り分け回数が無制限のときは /--- (上限表記) を隠す
- # true : 回数のみ表示
- # false : 回数/--- と表示
- HIDE_MAX_COUNT_INFINITE = false
- # ◆ 振り分けゲージの色
- # 数値 : \C[n] と同じ色。
- # Color : 指定した色。 ( Color.new(255, 128, 128) など )
- GAUGE_START_COLOR = 28 # 開始色
- GAUGE_END_COLOR = 29 # 終了色
- # ◆ 振り分けゲージに汎用ゲージを使用する
- # ≪汎用ゲージ描画≫ 導入時のみ有効。
- ENABLE_GENERIC_GAUGE = true
- # ◆ 振り分けゲージ設定
- # 画像は "Graphics/System" から読み込む。
- GAUGE_IMAGE = "GaugeDist" # 画像
- GAUGE_OFFSET = [-23, -2] # 位置補正 [x, y]
- GAUGE_LENGTH = -4 # 長さ補正
- GAUGE_SLOPE = 30 # 傾き (-89 ~ 89)
- # ◆ 振り分け終了時の確認コマンド
- CONFIRM_COMMANDS = [
- "確定", # 振り分け確定
- "中止", # 振り分け中止
- "取消", # 振り分けを続ける
- ] # ← この ] は消さないこと!
- # ◆ 確認コマンドのヘルプ
- CONFIRM_COMMAND_HELP = [
- "配點好了確定。", # 振り分け確定
- "配點中止回去。", # 振り分け中止
- "配點重新分配。", # 振り分けを続ける
- ] # ← この ] は消さないこと!
- # ◆ 振り分け終了時の確認コマンドの幅
- CONFIRM_WIDTH = 96
- # ◆ メニュー画面に「パラメータ振り分け」コマンドを追加する
- # 追加する場所は、メニューコマンドの最下部です。
- # 他の部分に追加したければ、≪カスタムメニューコマンド≫ をご利用ください。
- USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true
- # ◆ メニュー画面の「パラメータ振り分け」コマンドの名称
- VOCAB_MENU_DISTRIBUTE_PARAMETER = "點數分配"
- # ◆ 振り分け解除を許可
- # true : 振り分け確定後もパラメータを下げ、RP を取り戻せる。
- # false : 一度確定したら下げられない。
- ENABLE_REVERSE_DISTRIBUTE = true
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- $imported = {} if $imported == nil
- $imported["DistributeParameter"] = true
- module KGC::DistributeParameter
- # 振り分け対象パラメータ
- PARAMS = [:maxhp, :maxmp, :atk, :def, :spi, :agi, :hit, :eva, :cri,
- :skill_speed, :item_speed, :odds]
- # パラメータ増加量構造体
- GainInfo = Struct.new(:key, :name, :limit, :cost, :cost_rev, :params)
- ParamInfo = Struct.new(:value, :value_rev)
- # 振り分け情報構造体
- DistInfo = Struct.new(:count, :hp, :mp)
- #--------------------------------------------------------------------------
- # ○ パラメータ増加量を構造体化
- #--------------------------------------------------------------------------
- def self.create_gain_param_structs(target)
- result = []
- target.each { |v|
- info = GainInfo.new
- info.key = v[:key]
- info.name = v[:name]
- info.limit = v[:limit]
- info.cost = v[:cost][0]
- info.cost_rev = (v[:cost][1] == nil ? 0 : v[:cost][1])
- info.params = {}
- PARAMS.each { |param|
- next unless v.has_key?(param)
- pinfo = ParamInfo.new
- pinfo.value = v[param][0]
- pinfo.value_rev = (v[param][1] == nil ? 0 : v[param][1])
- info.params[param] = pinfo
- }
- result << info
- }
- return result
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ増加量を構造体化 (固有増加量用)
- #--------------------------------------------------------------------------
- def self.create_gain_param_structs_for_personal(target)
- result = []
- target.each { |list|
- next if list == nil
- result << create_gain_param_structs(list)
- }
- return result
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ増加量を併合
- #--------------------------------------------------------------------------
- def self.merge(list1, list2)
- result = list1.clone
- list2.each { |info2|
- overwrite = false
- list1.each_with_index { |info1, i|
- if info1.key == info2.key
- result[i] = info2
- overwrite = true
- break
- end
- }
- result << info2 unless overwrite
- }
- return result
- end
- # パラメータ増加量を構造体化
- GAIN_PARAMS = create_gain_param_structs(GAIN_PARAMETER)
- PERSONAL_GAIN_PARAMS =
- create_gain_param_structs_for_personal(PERSONAL_GAIN_PARAMETER)
- CLASS_GAIN_PARAMS =
- create_gain_param_structs_for_personal(CLASS_GAIN_PARAMETER)
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Vocab
- #==============================================================================
- module Vocab
- # 命中率
- def self.hit
- return KGC::DistributeParameter::VOCAB_PARAM[:hit]
- end
- # 回避率
- def self.eva
- return KGC::DistributeParameter::VOCAB_PARAM[:eva]
- end
- # クリティカル率
- def self.cri
- return KGC::DistributeParameter::VOCAB_PARAM[:cri]
- end
- # スキル速度補正
- def self.skill_speed
- return KGC::DistributeParameter::VOCAB_PARAM[:skill_speed]
- end
- # アイテム速度補正
- def self.item_speed
- return KGC::DistributeParameter::VOCAB_PARAM[:item_speed]
- end
- # 狙われやすさ
- def self.odds
- return KGC::DistributeParameter::VOCAB_PARAM[:odds]
- end
- # RP
- def self.rp
- return KGC::DistributeParameter::VOCAB_RP
- end
- # RP (略)
- def self.rp_a
- return KGC::DistributeParameter::VOCAB_RP_A
- end
- # パラメータ振り分け
- def self.distribute_parameter
- return KGC::DistributeParameter::VOCAB_MENU_DISTRIBUTE_PARAMETER
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # □ KGC::Commands
- #==============================================================================
- module KGC
- module Commands
- module_function
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分けに関する値をチェック
- #--------------------------------------------------------------------------
- def check_distribution_values
- (1...$data_actors.size).each { |i|
- actor = $game_actors[i]
- actor.check_distribution_values
- actor.restore_distribution_values
- }
- end
- #--------------------------------------------------------------------------
- # ○ RP の増減
- # actor_id : アクター ID
- # value : 増減量
- #--------------------------------------------------------------------------
- def gain_rp(actor_id, value)
- actor = $game_actors[actor_id]
- return if actor == nil
- actor.gain_rp(value)
- end
- #--------------------------------------------------------------------------
- # ○ 振り分け回数をリセット
- # actor_id : アクター ID
- #--------------------------------------------------------------------------
- def reset_distributed_count(actor_id)
- actor = $game_actors[actor_id]
- return if actor == nil
- actor.clear_distribution_values
- actor.restore_distribution_values
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分け画面の呼び出し
- # actor_index : アクターインデックス
- #--------------------------------------------------------------------------
- def call_distribute_parameter(actor_index = 0)
- return if $game_temp.in_battle
- $game_temp.next_scene = :distribute_parameter
- $game_temp.next_scene_actor_index = actor_index
- end
- end
- end
- class Game_Interpreter
- include KGC::Commands
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Game_Battler
- #==============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ● 能力値に加算する値をクリア
- #--------------------------------------------------------------------------
- alias clear_extra_values_KGC_DistributeParameter clear_extra_values
- def clear_extra_values
- clear_extra_values_KGC_DistributeParameter
- clear_distribution_values
- calc_distribution_values
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分けに関する値をクリア
- #--------------------------------------------------------------------------
- def clear_distribution_values
- @distributed_count = {}
- KGC::DistributeParameter::PARAMS.each { |param|
- @distributed_count[param] = 0
- }
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分けに関する値をチェック
- #--------------------------------------------------------------------------
- def check_distribution_values
- last_distributed_count = @distributed_count
- clear_distribution_values
- @distributed_count = last_distributed_count if last_distributed_count != nil
- end
- #--------------------------------------------------------------------------
- # ○ 各種修正値を計算
- #--------------------------------------------------------------------------
- def calc_distribution_values
- # 継承先で定義
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けによる上昇値を取得
- # param : パラメータの Symbol
- #--------------------------------------------------------------------------
- def distributed_param(param)
- return 0
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けに関する情報を取得
- #--------------------------------------------------------------------------
- def distribution_info
- info = KGC::DistributeParameter::DistInfo.new
- info.count = @distributed_count.clone
- info.hp = self.hp
- info.mp = self.mp
- return info
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けに関する情報を設定
- #--------------------------------------------------------------------------
- def set_distribution_info(info)
- return unless info.is_a?(KGC::DistributeParameter::DistInfo)
- @distributed_count = info.count
- calc_distribution_values
- self.hp = info.hp
- self.mp = info.mp
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Game_BattleAction
- #==============================================================================
- class Game_BattleAction
- #--------------------------------------------------------------------------
- # ● 行動スピードの決定
- #--------------------------------------------------------------------------
- alias make_speed_KGC_DistributeParameter make_speed
- def make_speed
- make_speed_KGC_DistributeParameter
- if skill? && skill.speed < 0
- n = [battler.distributed_param(:skill_speed), skill.speed].min
- @speed -= n
- end
- if item? && item.speed < 0
- n = [battler.distributed_param(:item_speed), item.speed].min
- @speed -= n
- end
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Game_Actor
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ○ クラス変数
- #--------------------------------------------------------------------------
- @@__distribute_gain_params = {}
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # actor_id : アクター ID
- #--------------------------------------------------------------------------
- alias initialize_KGC_DistributeParameter initialize
- def initialize(actor_id)
- @actor_id = actor_id
- @class_id = $data_actors[actor_id].class_id
- initialize_KGC_DistributeParameter(actor_id)
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ増加量一覧を取得
- #--------------------------------------------------------------------------
- def gain_parameter_list
- key = "#{self.id}_#{self.class_id}"
- unless @@__distribute_gain_params.has_key?(key)
- result = KGC::DistributeParameter::GAIN_PARAMS
- # アクター固有
- list = KGC::DistributeParameter::PERSONAL_GAIN_PARAMS[self.id]
- result = KGC::DistributeParameter.merge(result, list) if list != nil
- # 職業固有
- list = KGC::DistributeParameter::CLASS_GAIN_PARAMS[self.class_id]
- result = KGC::DistributeParameter.merge(result, list) if list != nil
- @@__distribute_gain_params[key] = result
- end
- return @@__distribute_gain_params[key]
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ増加量を取得
- # key : 振り分けキー
- #--------------------------------------------------------------------------
- def gain_parameter(key)
- return gain_parameter_list.find { |v| v.key == key }
- end
- #--------------------------------------------------------------------------
- # ○ 各種修正値を計算
- #--------------------------------------------------------------------------
- def calc_distribution_values
- @rp_cost = 0
- @distributed_param = {}
- KGC::DistributeParameter::PARAMS.each { |param|
- @distributed_param[param] = 0
- }
- gain_parameter_list.each { |gain|
- next if gain == nil
- cost = 0
- distributed_count(gain.key).times { |i|
- cost += Integer(gain.cost + gain.cost_rev * i)
- gain.params.each { |param, v|
- @distributed_param[param] += v.value + v.value_rev * i
- }
- }
- @rp_cost += [cost, 0].max
- }
- KGC::DistributeParameter::PARAMS.each { |param|
- @distributed_param[param] = Integer(@distributed_param[param])
- }
- end
- #--------------------------------------------------------------------------
- # ○ 各種修正値を修復
- #--------------------------------------------------------------------------
- def restore_distribution_values
- calc_distribution_values
- self.hp = self.hp
- self.mp = self.mp
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けによる上昇値を取得
- # param : パラメータの Symbol
- #--------------------------------------------------------------------------
- def distributed_param(param)
- return 0 if @distributed_param == nil
- return 0 if @distributed_param[param] == nil
- return @distributed_param[param]
- end
- #--------------------------------------------------------------------------
- # ● 基本 MaxHP の取得
- #--------------------------------------------------------------------------
- alias base_maxhp_KGC_DistributeParameter base_maxhp
- def base_maxhp
- n = base_maxhp_KGC_DistributeParameter + distributed_param(:maxhp)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本 MaxMP の取得
- #--------------------------------------------------------------------------
- alias base_maxmp_KGC_DistributeParameter base_maxmp
- def base_maxmp
- n = base_maxmp_KGC_DistributeParameter + distributed_param(:maxmp)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本攻撃力の取得
- #--------------------------------------------------------------------------
- alias base_atk_KGC_DistributeParameter base_atk
- def base_atk
- n = base_atk_KGC_DistributeParameter + distributed_param(:atk)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本防御力の取得
- #--------------------------------------------------------------------------
- alias base_def_KGC_DistributeParameter base_def
- def base_def
- n = base_def_KGC_DistributeParameter + distributed_param(:def)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本精神力の取得
- #--------------------------------------------------------------------------
- alias base_spi_KGC_DistributeParameter base_spi
- def base_spi
- n = base_spi_KGC_DistributeParameter + distributed_param(:spi)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 基本敏捷性の取得
- #--------------------------------------------------------------------------
- alias base_agi_KGC_DistributeParameter base_agi
- def base_agi
- n = base_agi_KGC_DistributeParameter + distributed_param(:agi)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 命中率の取得
- #--------------------------------------------------------------------------
- alias hit_KGC_DistributeParameter hit
- def hit
- n = hit_KGC_DistributeParameter + distributed_param(:hit)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 回避率の取得
- #--------------------------------------------------------------------------
- alias eva_KGC_DistributeParameter eva
- def eva
- n = eva_KGC_DistributeParameter + distributed_param(:eva)
- return n
- end
- #--------------------------------------------------------------------------
- # ● クリティカル率の取得
- #--------------------------------------------------------------------------
- alias cri_KGC_DistributeParameter cri
- def cri
- n = cri_KGC_DistributeParameter + distributed_param(:cri)
- return n
- end
- #--------------------------------------------------------------------------
- # ● 狙われやすさの取得
- #--------------------------------------------------------------------------
- alias odds_KGC_DistributeParameter odds
- def odds
- n = odds_KGC_DistributeParameter + distributed_param(:odds)
- return n
- end
- #--------------------------------------------------------------------------
- # ○ MaxRP の取得
- #--------------------------------------------------------------------------
- def maxrp
- n = Integer(eval(KGC::DistributeParameter::MAXRP_EXP))
- return [n + maxrp_plus, 0].max
- end
- #--------------------------------------------------------------------------
- # ○ MaxRP 補正値の取得
- #--------------------------------------------------------------------------
- def maxrp_plus
- @maxrp_plus = 0 if @maxrp_plus == nil
- return @maxrp_plus
- end
- #--------------------------------------------------------------------------
- # ○ RP の取得
- #--------------------------------------------------------------------------
- def rp
- return [maxrp - @rp_cost, 0].max
- end
- #--------------------------------------------------------------------------
- # ○ 振り分け回数の取得
- # param : 振り分け先パラメータ (キー)
- #--------------------------------------------------------------------------
- def distributed_count(param)
- clear_distribution_values if @distributed_count == nil
- @distributed_count[param] = 0 if @distributed_count[param] == nil
- return @distributed_count[param]
- end
- #--------------------------------------------------------------------------
- # ○ RP の増減
- # value : 増減量
- #--------------------------------------------------------------------------
- def gain_rp(value)
- @maxrp_plus = maxrp_plus + value
- end
- #--------------------------------------------------------------------------
- # ○ 振り分け回数の増減
- # param : 振り分け先パラメータ (キー)
- # value : 増減量
- #--------------------------------------------------------------------------
- def gain_distributed_count(param, value = 1)
- n = distributed_count(param)
- @distributed_count[param] += value if n.is_a?(Integer)
- end
- #--------------------------------------------------------------------------
- # ○ RP 振り分けによる成長効果適用
- # param : 振り分け先パラメータ (キー)
- # reverse : 逆加算のときは true
- #--------------------------------------------------------------------------
- def rp_growth_effect(param, reverse = false)
- gain = gain_parameter(param)
- return if gain == nil # 無効なパラメータ
- if reverse
- return if distributed_count(param) == 0 # 逆加算不可
- else
- return unless can_distribute?(param)
- end
- gain_distributed_count(param, reverse ? -1 : 1)
- restore_distribution_values
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分け可否判定
- # param : 振り分け先パラメータ (キー)
- #--------------------------------------------------------------------------
- def can_distribute?(param)
- gain = gain_parameter(param)
- return false if gain == nil # 無効なパラメータ
- return false if self.rp < distribute_cost(param) # RP 不足
- if gain.limit > 0
- return false if gain.limit <= distributed_count(param) # 回数上限
- end
- return true
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分けコスト計算
- # param : 振り分け先パラメータ (キー)
- #--------------------------------------------------------------------------
- def distribute_cost(param)
- gain = gain_parameter(param)
- return 0 if gain == nil # 無効なパラメータ
- n = gain.cost
- count = distributed_count(param)
- count = [count, gain.limit - 1].min if gain.limit > 0
- n += gain.cost_rev * count
- return [Integer(n), 0].max
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分け後の増加量計算
- # param : 振り分け先パラメータ (キー)
- # amt : 振り分け数
- #--------------------------------------------------------------------------
- def distribute_gain(param, amt = 1)
- gain = gain_parameter(param)
- # 無効なパラメータ
- return 0 if gain == nil
- result = {}
- KGC::DistributeParameter::PARAMS.each { |par|
- result[par] = distributed_param(par)
- }
- # 振り分け不可
- if amt > 0
- return result if gain.limit > 0 && gain.limit == distributed_count(param)
- else
- return result if distributed_count(param) + amt < 0
- end
- last_hp = self.hp
- last_mp = self.mp
- last_count = distributed_count(param)
- rp_growth_effect(param)
- KGC::DistributeParameter::PARAMS.each { |par|
- result[par] = distributed_param(par) if gain.params.include?(par)
- }
- rp_growth_effect(param, true) if last_count < distributed_count(param)
- self.hp = last_hp
- self.mp = last_mp
- return result
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Window_Base
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # ○ RP の文字色を取得
- # actor : アクター
- #--------------------------------------------------------------------------
- def rp_color(actor)
- return (actor.rp == 0 ? knockout_color : normal_color)
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けゲージの色 1 の取得
- #--------------------------------------------------------------------------
- def distribute_gauge_color1
- color = KGC::DistributeParameter::GAUGE_START_COLOR
- return (color.is_a?(Integer) ? text_color(color) : color)
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けゲージの色 2 の取得
- #--------------------------------------------------------------------------
- def distribute_gauge_color2
- color = KGC::DistributeParameter::GAUGE_END_COLOR
- return (color.is_a?(Integer) ? text_color(color) : color)
- end
- #--------------------------------------------------------------------------
- # ○ RP の描画
- # actor : アクター
- # x : 描画先 X 座標
- # y : 描画先 Y 座標
- # width : 幅
- #--------------------------------------------------------------------------
- def draw_actor_rp(actor, x, y, width = 120)
- self.contents.font.color = system_color
- self.contents.draw_text(x, y, 40, WLH, Vocab::rp_a)
- self.contents.font.color = rp_color(actor)
- xr = x + width
- if width < 120
- self.contents.draw_text(xr - 40, y, 40, WLH, actor.rp, 2)
- else
- self.contents.draw_text(xr - 90, y, 40, WLH, actor.rp, 2)
- self.contents.font.color = normal_color
- self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
- self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxrp, 2)
- end
- self.contents.font.color = normal_color
- end
- #--------------------------------------------------------------------------
- # ○ 振り分けゲージの描画
- # actor : アクター
- # param : パラメータ
- # x : 描画先 X 座標
- # y : 描画先 Y 座標
- # width : 幅
- #--------------------------------------------------------------------------
- def draw_actor_distribute_gauge(actor, param, x, y, width = 120)
- gain = actor.gain_parameter(param)
- return if gain == nil || gain.limit <= 0
- if KGC::DistributeParameter::ENABLE_GENERIC_GAUGE &&
- $imported["GenericGauge"]
- # 汎用ゲージ
- draw_gauge(KGC::DistributeParameter::GAUGE_IMAGE,
- x, y, width, actor.distributed_count(param), gain.limit,
- KGC::DistributeParameter::GAUGE_OFFSET,
- KGC::DistributeParameter::GAUGE_LENGTH,
- KGC::DistributeParameter::GAUGE_SLOPE)
- else
- # デフォルトゲージ
- gw = width * actor.distributed_count(param) / gain.limit
- gc1 = distribute_gauge_color1
- gc2 = distribute_gauge_color2
- self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
- self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
- end
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Window_Command
- #==============================================================================
- class Window_Command < Window_Selectable
- unless method_defined?(:add_command)
- #--------------------------------------------------------------------------
- # ○ コマンドを追加
- # 追加した位置を返す
- #--------------------------------------------------------------------------
- def add_command(command)
- @commands << command
- @item_max = @commands.size
- item_index = @item_max - 1
- refresh_command
- draw_item(item_index)
- return item_index
- end
- #--------------------------------------------------------------------------
- # ○ コマンドをリフレッシュ
- #--------------------------------------------------------------------------
- def refresh_command
- buf = self.contents.clone
- self.height = [self.height, row_max * WLH + 32].max
- create_contents
- self.contents.blt(0, 0, buf, buf.rect)
- buf.dispose
- end
- #--------------------------------------------------------------------------
- # ○ コマンドを挿入
- #--------------------------------------------------------------------------
- def insert_command(index, command)
- @commands.insert(index, command)
- @item_max = @commands.size
- refresh_command
- refresh
- end
- #--------------------------------------------------------------------------
- # ○ コマンドを削除
- #--------------------------------------------------------------------------
- def remove_command(command)
- @commands.delete(command)
- @item_max = @commands.size
- refresh
- end
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # □ Window_DistributeParameterActor
- #------------------------------------------------------------------------------
- # 振り分け画面で、アクターの情報を表示するウィンドウです。
- #==============================================================================
- class Window_DistributeParameterActor < Window_Base
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # x : ウィンドウの X 座標
- # y : ウィンドウの Y 座標
- # actor : アクター
- #--------------------------------------------------------------------------
- def initialize(x, y, actor)
- super(x, y, Graphics.width, WLH + 32)
- @actor = actor
- refresh
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- draw_actor_name(@actor, 4, 0)
- draw_actor_level(@actor, 140, 0)
- draw_actor_rp(@actor, 240, 0)
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # □ Window_DistributeParameterList
- #------------------------------------------------------------------------------
- # 振り分け画面で、成長させるパラメータを選択するウィンドウです。
- #==============================================================================
- class Window_DistributeParameterList < Window_Selectable
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # actor : アクター
- #--------------------------------------------------------------------------
- def initialize(actor)
- off_h = WLH + 32
- super(0, off_h, 286, Graphics.height - off_h)
- @actor = actor
- refresh
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ○ 選択中のパラメータの Symbol を取得
- #--------------------------------------------------------------------------
- def parameter_key
- return @data[self.index]
- end
- #--------------------------------------------------------------------------
- # ● 1 ページに表示できる行数の取得
- #--------------------------------------------------------------------------
- def page_row_max
- return super - 1
- end
- #--------------------------------------------------------------------------
- # ● 項目を描画する矩形の取得
- # index : 項目番号
- #--------------------------------------------------------------------------
- def item_rect(index)
- rect = super(index)
- rect.y += WLH
- return rect
- end
- #--------------------------------------------------------------------------
- # ● カーソルを 1 ページ後ろに移動
- #--------------------------------------------------------------------------
- def cursor_pagedown
- return if Input.repeat?(Input::R)
- super
- end
- #--------------------------------------------------------------------------
- # ● カーソルを 1 ページ前に移動
- #--------------------------------------------------------------------------
- def cursor_pageup
- return if Input.repeat?(Input::L)
- super
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- @gain_list = @actor.gain_parameter_list
- @data = []
- @gain_list.each { |gain| @data << gain.key }
- @item_max = @data.size + 1
- create_contents
- @item_max -= 1
- draw_caption
- @item_max.times { |i| draw_item(i, @actor.can_distribute?(@data[i])) }
- end
- #--------------------------------------------------------------------------
- # ○ 見出しの描画
- #--------------------------------------------------------------------------
- def draw_caption
- self.contents.font.color = system_color
- self.contents.draw_text( 4, 0, 96, WLH, "點數分配")
- self.contents.draw_text(120, 0, 40, WLH, Vocab.rp, 2)
- self.contents.draw_text(170, 0, 80, WLH, "回数", 2)
- self.contents.font.color = normal_color
- end
- #--------------------------------------------------------------------------
- # ○ 項目の描画
- # index : 項目番号
- # enabled : 有効フラグ
- #--------------------------------------------------------------------------
- def draw_item(index, enabled = true)
- rect = item_rect(index)
- self.contents.clear_rect(rect)
- item = @data[index]
- if item != nil
- draw_parameter(rect.x, rect.y, @data[index], enabled)
- end
- end
- #--------------------------------------------------------------------------
- # ○ 能力値の描画
- # x : 描画先 X 座標
- # y : 描画先 Y 座標
- # param : 振り分け先
- # enabled : 有効フラグ
- #--------------------------------------------------------------------------
- def draw_parameter(x, y, param, enabled)
- gain = @gain_list.find { |v| v.key == param }
- return if gain == nil
- self.contents.font.color = normal_color
- self.contents.font.color.alpha = enabled ? 255 : 128
- self.contents.draw_text(x + 4, y, 96, WLH, gain.name)
- value = @actor.distribute_cost(param)
- self.contents.draw_text(x + 120, y, 40, WLH, value, 2)
- if gain.limit > 0
- value = sprintf("%3d/%3d", @actor.distributed_count(param), gain.limit)
- else
- value = sprintf("%3d%s", @actor.distributed_count(param),
- KGC::DistributeParameter::HIDE_MAX_COUNT_INFINITE ? "" : "/---")
- end
- draw_actor_distribute_gauge(@actor, param, x + 170, y, 80)
- self.contents.draw_text(x + 170, y, 80, WLH, value, 2)
- self.contents.font.color = normal_color
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # □ Window_DistributeParameterStatus
- #------------------------------------------------------------------------------
- # 振り分け画面で、アクターのステータスを表示するウィンドウです。
- #==============================================================================
- class Window_DistributeParameterStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # actor : アクター
- #--------------------------------------------------------------------------
- def initialize(actor)
- dx = 286
- off_h = WLH + 32
- super(dx, off_h, Graphics.width - dx, Graphics.height - off_h)
- @actor = actor
- refresh(actor.gain_parameter_list[0].key)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh(param = nil)
- @distribute_gain = nil
- if param != nil
- @distribute_gain = @actor.distribute_gain(param)
- end
- self.contents.clear
- self.contents.font.color = system_color
- self.contents.draw_text(0, 0, width - 32, WLH, "點數分配變化", 1)
- self.contents.font.color = normal_color
- dy = WLH
- KGC::DistributeParameter::PARAMS.each { |param|
- draw_parameter(0, dy, param)
- dy += WLH
- }
- end
- #--------------------------------------------------------------------------
- # ○ 能力値の描画
- # x : 描画先 X 座標
- # y : 描画先 Y 座標
- # type : 能力値の種類
- #--------------------------------------------------------------------------
- def draw_parameter(x, y, type)
- case type
- when :maxhp
- name = Vocab.hp
- value = @actor.maxhp
- when :maxmp
- name = Vocab.mp
- value = @actor.maxmp
- when :atk
- name = Vocab.atk
- value = @actor.atk
- when :def
- name = Vocab.def
- value = @actor.def
- when :spi
- name = Vocab.spi
- value = @actor.spi
- when :agi
- name = Vocab.agi
- value = @actor.agi
- when :hit
- name = Vocab.hit
- value = @actor.hit
- when :eva
- name = Vocab.eva
- value = @actor.eva
- when :cri
- name = Vocab.cri
- value = @actor.cri
- when :skill_speed
- name = Vocab.skill_speed
- value = @actor.distributed_param(type)
- when :item_speed
- name = Vocab.item_speed
- value = @actor.distributed_param(type)
- when :odds
- name = Vocab.odds
- value = @actor.odds
- else
- return
- end
- self.contents.font.color = system_color
- self.contents.draw_text(x + 4, y, 96, WLH, name)
- self.contents.font.color = normal_color
- self.contents.draw_text(x + 106, y, 48, WLH, value, 2)
-
- return if @distribute_gain == nil
- self.contents.draw_text(x + 154, y, 16, WLH, "→", 1)
- curr = @actor.distributed_param(type)
- gain = @distribute_gain[type]
- self.contents.font.color = (gain > curr ? text_color(3) :
- gain < curr ? text_color(2) : normal_color)
- self.contents.draw_text(x + 174, y, 48, WLH, value + (gain - curr), 2)
- self.contents.font.color = normal_color
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_Map
- #==============================================================================
- class Scene_Map < Scene_Base
- #--------------------------------------------------------------------------
- # ● 画面切り替えの実行
- #--------------------------------------------------------------------------
- alias update_scene_change_KGC_DistributeParameter update_scene_change
- def update_scene_change
- return if $game_player.moving? # プレイヤーの移動中?
- if $game_temp.next_scene == :distribute_parameter
- call_distribute_parameter
- return
- end
- update_scene_change_KGC_DistributeParameter
- end
- #--------------------------------------------------------------------------
- # ○ パラメータ振り分け画面への切り替え
- #--------------------------------------------------------------------------
- def call_distribute_parameter
- $game_temp.next_scene = nil
- $scene = Scene_DistributeParameter.new(
- $game_temp.next_scene_actor_index,
- 0,
- Scene_DistributeParameter::HOST_MAP)
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_Menu
- #==============================================================================
- class Scene_Menu < Scene_Base
- if KGC::DistributeParameter::USE_MENU_DISTRIBUTE_PARAMETER_COMMAND
- #--------------------------------------------------------------------------
- # ● コマンドウィンドウの作成
- #--------------------------------------------------------------------------
- alias create_command_window_KGC_DistributeParameter create_command_window
- def create_command_window
- create_command_window_KGC_DistributeParameter
- return if $imported["CustomMenuCommand"]
- @__command_distribute_parameter_index =
- @command_window.add_command(Vocab.distribute_parameter)
- if @command_window.oy > 0
- @command_window.oy -= Window_Base::WLH
- end
- @command_window.index = @menu_index
- end
- end
- #--------------------------------------------------------------------------
- # ● コマンド選択の更新
- #--------------------------------------------------------------------------
- alias update_command_selection_KGC_DistributeParameter update_command_selection
- def update_command_selection
- call_distribute_parameter_flag = false
- if Input.trigger?(Input::C)
- case @command_window.index
- when @__command_distribute_parameter_index # パラメータ振り分け
- call_distribute_parameter_flag = true
- end
- end
- # パラメータ振り分け画面に移行
- if call_distribute_parameter_flag
- if $game_party.members.size == 0
- Sound.play_buzzer
- return
- end
- Sound.play_decision
- start_actor_selection
- return
- end
- update_command_selection_KGC_DistributeParameter
- end
- #--------------------------------------------------------------------------
- # ● アクター選択の更新
- #--------------------------------------------------------------------------
- alias update_actor_selection_KGC_DistributeParameter update_actor_selection
- def update_actor_selection
- if Input.trigger?(Input::C)
- $game_party.last_actor_index = @status_window.index
- Sound.play_decision
- case @command_window.index
- when @__command_distribute_parameter_index # パラメータ振り分け
- $scene = Scene_DistributeParameter.new(
- @status_window.index,
- @__command_distribute_parameter_index,
- Scene_DistributeParameter::HOST_MENU)
- return
- end
- end
- update_actor_selection_KGC_DistributeParameter
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # □ Scene_DistributeParameter
- #------------------------------------------------------------------------------
- # パラメータ振り分け画面の処理を行うクラスです。
- #==============================================================================
- class Scene_DistributeParameter < Scene_Base
- #--------------------------------------------------------------------------
- # ○ 定数
- #--------------------------------------------------------------------------
- HOST_MENU = 0 # 呼び出し元 : メニュー
- HOST_MAP = 1 # 呼び出し元 : マップ
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- # actor_index : アクターインデックス
- # menu_index : コマンドのカーソル初期位置
- # host_scene : 呼び出し元 (0..メニュー 1..マップ)
- #--------------------------------------------------------------------------
- def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
- @actor_index = actor_index
- @menu_index = menu_index
- @host_scene = host_scene
- end
- #--------------------------------------------------------------------------
- # ● 開始処理
- #--------------------------------------------------------------------------
- def start
- super
- create_menu_background
- @actor = $game_party.members[@actor_index]
- @prev_info = @actor.distribution_info
- create_windows
- end
- #--------------------------------------------------------------------------
- # ○ ウィンドウ作成
- #--------------------------------------------------------------------------
- def create_windows
- @actor_window = Window_DistributeParameterActor.new(0, 0, @actor)
- @parameter_window = Window_DistributeParameterList.new(@actor)
- @status_window = Window_DistributeParameterStatus.new(@actor)
- @confirm_help_window = Window_Help.new
- @confirm_help_window.z = @status_window.z + 100
- @confirm_help_window.openness = 0
- @confirm_window = Window_Command.new(
- KGC::DistributeParameter::CONFIRM_WIDTH,
- KGC::DistributeParameter::CONFIRM_COMMANDS)
- @confirm_window.x = (Graphics.width - @confirm_window.width) / 2
- @confirm_window.y = (Graphics.height - @confirm_window.height) / 2
- @confirm_window.z = @confirm_help_window.z
- @confirm_window.active = false
- @confirm_window.openness = 0
- end
- #--------------------------------------------------------------------------
- # ● 終了処理
- #--------------------------------------------------------------------------
- def terminate
- super
- dispose_menu_background
- @actor_window.dispose
- @parameter_window.dispose
- @status_window.dispose
- @confirm_help_window.dispose
- @confirm_window.dispose
- end
- #--------------------------------------------------------------------------
- # ○ 元の画面へ戻る
- #--------------------------------------------------------------------------
- def return_scene
- case @host_scene
- when HOST_MENU
- $scene = Scene_Menu.new(@menu_index)
- when HOST_MAP
- $scene = Scene_Map.new
- end
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新
- #--------------------------------------------------------------------------
- def update
- super
- update_menu_background
- update_window
- if @parameter_window.active
- update_parameter_list
- elsif @confirm_window.active
- update_confirm_command
- end
- end
- #--------------------------------------------------------------------------
- # ○ ウィンドウ更新
- #--------------------------------------------------------------------------
- def update_window
- @actor_window.update
- @parameter_window.update
- @status_window.update
- @confirm_help_window.update
- @confirm_window.update
- end
- #--------------------------------------------------------------------------
- # ○ ウィンドウ再描画
- #--------------------------------------------------------------------------
- def refresh_window
- @actor_window.refresh
- @parameter_window.refresh
- @status_window.refresh(@parameter_window.parameter_key)
- Graphics.frame_reset
- end
- #--------------------------------------------------------------------------
- # ○ 次のアクターの画面に切り替え
- #--------------------------------------------------------------------------
- def next_actor
- @actor_index += 1
- @actor_index %= $game_party.members.size
- $scene = Scene_DistributeParameter.new(@actor_index,
- @menu_index, @host_scene)
- end
- #--------------------------------------------------------------------------
- # ○ 前のアクターの画面に切り替え
- #--------------------------------------------------------------------------
- def prev_actor
- @actor_index += $game_party.members.size - 1
- @actor_index %= $game_party.members.size
- $scene = Scene_DistributeParameter.new(@actor_index,
- @menu_index, @host_scene)
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新 (パラメータウィンドウがアクティブの場合)
- #--------------------------------------------------------------------------
- def update_parameter_list
- if @last_index != @parameter_window.index
- @status_window.refresh(@parameter_window.parameter_key)
- @last_index = @parameter_window.index
- end
- if Input.trigger?(Input::B)
- Sound.play_cancel
- activate_confirm_window
- elsif Input.trigger?(Input::C)
- Sound.play_decision
- activate_confirm_window
- elsif Input.repeat?(Input::RIGHT)
- # 加算
- param = @parameter_window.parameter_key
- unless @actor.can_distribute?(param)
- Sound.play_buzzer
- return
- end
- Sound.play_cursor
- @actor.rp_growth_effect(param)
- refresh_window
- elsif Input.repeat?(Input::LEFT)
- # 減算
- param = @parameter_window.parameter_key
- unless reversible?(param)
- Sound.play_buzzer
- return
- end
- Sound.play_cursor
- @actor.rp_growth_effect(param, true)
- refresh_window
- elsif Input.trigger?(Input::R)
- Sound.play_cursor
- next_actor
- elsif Input.trigger?(Input::L)
- Sound.play_cursor
- prev_actor
- end
- end
- #--------------------------------------------------------------------------
- # ○ 減算可否判定
- # param : 対象パラメータ
- #--------------------------------------------------------------------------
- def reversible?(param)
- return false if @actor.distributed_count(param) == 0
- return true if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE
- base = @prev_info.count[param]
- return ( base < @actor.distributed_count(param) )
- end
- #--------------------------------------------------------------------------
- # ○ 確認ウィンドウに切り替え
- #--------------------------------------------------------------------------
- def activate_confirm_window
- @last_index = -1
- @status_window.refresh
- @confirm_window.index = 0
- @confirm_window.active = true
- @confirm_window.open
- @confirm_help_window.open
- @parameter_window.active = false
- @last_confirm_index = -1
- end
- #--------------------------------------------------------------------------
- # ○ フレーム更新 (確認ウィンドウがアクティブの場合)
- #--------------------------------------------------------------------------
- def update_confirm_command
- if @last_confirm_index != @confirm_window.index
- @confirm_help_window.set_text(
- KGC::DistributeParameter::CONFIRM_COMMAND_HELP[@confirm_window.index])
- @last_confirm_index = @confirm_window.index
- end
- if Input.trigger?(Input::B)
- Sound.play_cancel
- # パラメータウィンドウに切り替え
- @confirm_window.active = false
- @confirm_window.close
- @confirm_help_window.close
- @parameter_window.active = true
- elsif Input.trigger?(Input::C)
- Sound.play_decision
- case @confirm_window.index
- when 0 # 確定
- return_scene
- when 1 # 中止
- @actor.set_distribution_info(@prev_info)
- return_scene
- when 2 # キャンセル
- # パラメータウィンドウに切り替え
- @confirm_window.active = false
- @confirm_window.close
- @confirm_help_window.close
- @parameter_window.active = true
- end
- end
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_File
- #==============================================================================
- class Scene_File < Scene_Base
- #--------------------------------------------------------------------------
- # ● セーブデータの読み込み
- # file : 読み込み用ファイルオブジェクト (オープン済み)
- #--------------------------------------------------------------------------
- alias read_save_data_KGC_DistributeParameter read_save_data
- def read_save_data(file)
- read_save_data_KGC_DistributeParameter(file)
- KGC::Commands.check_distribution_values
- Graphics.frame_reset
- end
- end
复制代码 |
|