赞 | 0 |
VIP | 2 |
好人卡 | 0 |
积分 | 1 |
经验 | 2700 |
最后登录 | 2013-8-16 |
在线时间 | 113 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 113 小时
- 注册时间
- 2008-3-25
- 帖子
- 204
|
7楼
楼主 |
发表于 2009-11-26 21:21:20
|
只看该作者
我碰到問題了~~~囧|||
我套用此套腳本後
發現到在讀檔的部份可以正確顯示
但是在存檔的部分卻會出現錯誤
經檢查後發現與另一套選單腳本相衝
不知道要怎樣才能不會衝突呢?
選單腳本
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆ メニュー画面改造 - KGC_MenuAlter ◆
#_/ ◇ Last update : 2008/03/02 ◇
#_/----------------------------------------------------------------------------
#_/ メニュー画面を怪しいスタイルに改造します。
#_/============================================================================
#_/ ≪多人数パーティ[LargeParty]≫より上
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ カスタマイズ項目 ★
#==============================================================================
module KGC
# ◆メニュー背景透過
MA_MENU_TRANSPARENT = true
# ◆[正常]時に表示する文字列
MA_FINE_STATE_NAME = "正常"
# ◆メニューステータスにバトラーグラフィックを表示
MA_MENU_STATUS_BATTLER = true
# ◆メニューステータスに表示する人数
# ※仕様上、5 以上にすると表示が被ります。
MA_MENU_STATUS_MEMBER = 4
# ◆必須メンバーの背景色
MA_INDISPENSABLE_COLOR = Color.new(0, 128, 192, 96)
# ◆待機メンバーの背景色
MA_STAND_COLOR = Color.new(0, 0, 0, 96)
# ↑2つは≪多人数パーティ[LargeParty]≫が無いと無効。
# 使用しない場合は、第4引数を 0 にしてください。
# ◆コマンド名「ステータス」
MA_COMMAND_STATUS = "狀態"
# ◆コマンド名「セーブ」
MA_COMMAND_SAVE = "儲存"
# ◆コマンド名「ゲーム終了」
MA_COMMAND_END = "遊戲結束"
# ◆コマンド名「プレイ記録」(≪プレイ記録画面≫)
MA_COMMAND_PLAY_RECORD = "プレイ記録"
# ◆コマンド名「パーティ編成」(≪多人数パーティ≫)
MA_COMMAND_PARTY_ARRANGE = "パーティ編成"
# ◆コマンド名「スキル設定」(≪スキルCP制≫)
MA_COMMAND_SKILL_SETTING = "スキル設定"
# ◆コマンド名「モンスター図鑑」(≪モンスター図鑑≫)
MA_COMMAND_MONSTER_GUIDE = "モンスター図鑑"
# ◆コマンド名「あらすじ」(≪あらすじ≫)
MA_COMMAND_OUTLINE = "あらすじ"
# ◆コマンド名「パラメータ振り分け」(≪パラメータ振り分け≫)
MA_COMMAND_DISTRIBUTE_PARAMETER = "パラメータ振分"
# ◆一行に表示するコマンド数
MA_COL_COMMANDS = 7
# ◆メニューコマンドリスト
# 以下の中から使用したいコマンドを表示順に格納。
# (6 以降は、対応する機能を導入しないと使えません)
# ≪ 0..アイテム 1..スキル 2..装備 3..ステータス 4..セーブ 5..終了
# 6..プレイ記録 7..パーティ編成 8..スキル設定 9..戦闘難易度
# 10..ACBウェイトモード 11..モンスター図鑑 12..あらすじ
# 13..パラメータ振り分け ≫
# ※同じコマンドを複数指定するとバグります。
# MA_COMMANDS = [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 5]
MA_COMMANDS = [0, 1, 2, 3, 4, 5]
# ◆ActiveCountBattle ウェイトモード名
MA_ACB_WAIT_MODE = ["フルアクティブ", "セミアクティブ", "ウェイト"]
# ◆メニュー画面トランジション
MA_MENU_TRANSITION = "015-Diamond01"
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
$imported = {} if $imported == nil
$imported["MenuAlter"] = true
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
attr_accessor :menu_selected_index
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize
initialize_KGC_MenuAlter
@menu_selected_index = nil
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
attr_reader :exp_list
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 名前の描画
#--------------------------------------------------------------------------
def draw_actor_name(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_shadow_text(x, y, 120, 32, actor.name)
end
#--------------------------------------------------------------------------
# ● クラスの描画
#--------------------------------------------------------------------------
def draw_actor_class(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_shadow_text(x, y, 236, 32, actor.class_name)
end
#--------------------------------------------------------------------------
# ● レベルの描画
#--------------------------------------------------------------------------
def draw_actor_level(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_shadow_text(x, y, 32, 32, "Lv")
self.contents.font.color = normal_color
self.contents.draw_shadow_text(x + 32, y, 24, 32, actor.level.to_s, 2)
end
#--------------------------------------------------------------------------
# ● 描画用のステート文字列作成
#--------------------------------------------------------------------------
def make_battler_state_text(battler, width, need_normal)
# 括弧の幅を取得
brackets_width = self.contents.text_size("[]").width
# ステート名の文字列を作成
text = ""
battler.states.each { |i|
if $data_states[i].rating >= 1
if text == ""
text = $data_states[i].name
else
new_text = text + "/" + $data_states[i].name
text_width = self.contents.text_size(new_text).width
break if text_width > width - brackets_width
text = new_text
end
end
}
# ステート名の文字列が空の場合は KGC::MA_FINE_STATE_NAME にする
if text == ""
text = KGC::MA_FINE_STATE_NAME if need_normal
elsif battler.is_a?(Game_Enemy)
# 敵の場合は括弧をつける
text = "[#{text}]"
end
# 完成した文字列を返す
return text
end
#--------------------------------------------------------------------------
# ● ステートの描画
#--------------------------------------------------------------------------
def draw_actor_state(actor, x, y, width = 120)
text = make_battler_state_text(actor, width, true)
self.contents.font.color = actor.dead? ? knockout_color : normal_color
self.contents.draw_shadow_text(x, y, width, 32, text)
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_MenuCommand
#------------------------------------------------------------------------------
# メニュー用のコマンド選択を行うウィンドウです。
#==============================================================================
class Window_MenuCommand < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# commands : コマンド文字列の配列
#--------------------------------------------------------------------------
def initialize(commands)
col_max = KGC::MA_COL_COMMANDS
# コマンドの個数からウィンドウの高さを算出
super(0, 0, 640, (commands.size / col_max + 1) * 32 + 32)
@column_max = col_max
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh(commands = nil)
@commands = commands if commands != nil
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# ● 項目の描画
# index : 項目番号
# color : 文字色
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new((index % @column_max) * ((width - 32) / @column_max),
index / @column_max * 32, (width - 32) / @column_max, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index], 1)
end
#--------------------------------------------------------------------------
# ● 項目の無効化
# index : 項目番号
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
#--------------------------------------------------------------------------
# ● カーソルの矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
# カーソル位置が 0 未満の場合
if @index < 0
self.cursor_rect.empty
return
end
# 現在の行を取得
row = @index / @column_max
# 現在の行が、表示されている先頭の行より前の場合
if row < self.top_row
# 現在の行が先頭になるようにスクロール
self.top_row = row
end
# 現在の行が、表示されている最後尾の行より後ろの場合
if row > self.top_row + (self.page_row_max - 1)
# 現在の行が最後尾になるようにスクロール
self.top_row = row - (self.page_row_max - 1)
end
# カーソルの幅を計算
cursor_width = (width - 32) / @column_max
# カーソルの座標を計算
x = @index % @column_max * cursor_width
y = @index / @column_max * 32 - self.oy
# カーソルの矩形を更新
self.cursor_rect.set(x, y, cursor_width, 32)
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_MenuStatus
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(items = KGC::MA_COL_COMMANDS)
@dy = (items / KGC::MA_COL_COMMANDS + 1) * 32 + 32
@dw = 608 / KGC::MA_MENU_STATUS_MEMBER
@dh = 384 - @dy
super(0, @dy, 640, @dh)
@column_max = KGC::MA_MENU_STATUS_MEMBER
bh = (($game_party.actors.size - 1) / @column_max + 1) * @dh - 32
self.contents = Bitmap.new(608, bh)
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = 20
@item_max = $game_party.actors.size
ch = @dh - 192
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
x = i % @column_max * @dw + 8
y = i / @column_max * @dh + ch
if $imported["LargeParty"]
# 必須メンバー
if $game_party.indispensable_actors.include?(actor)
color = KGC::MA_INDISPENSABLE_COLOR
# 戦闘参加メンバー以降
elsif i >= $game_party.battle_actors.size
color = KGC::MA_STAND_COLOR
else
color = Color.new(0, 0, 0, 0)
end
self.contents.fill_rect(x - 8, y - ch, @dw, @dh, color)
end
if KGC::MA_MENU_STATUS_BATTLER
draw_actor_graphic(actor, x, y - ch)
else
draw_actor_graphic(actor, x + 64, y - ch / 3)
end
draw_actor_name(actor, x, y)
draw_actor_class(actor, x, y + 24)
draw_actor_level(actor, x, y + 48)
draw_actor_state(actor, x + 64, y + 48)
draw_actor_hp(actor, x, y + 96)
draw_actor_sp(actor, x, y + 124)
if $imported["HPSPAlter2"]
# EXP描画
draw_actor_next_exp(actor, x, y + 72)
next
end
# HP/SPゲージを導入している場合
if $imported["HPSPAlter"]
# EXPゲージ描画
rest_exp = actor.next_rest_exp_s.to_i
next_exp = actor.next_exp_s.to_i - actor.exp_list[actor.level]
gx = x
gw = (next_exp - rest_exp) * @g_width / next_exp
if KGC::HPSP_GAUGE_SLANT
gy = @g_height + 96
gy2 = @g_height + 1
for i in 0...(@g_height + 2)
self.contents.blt(gx + 31 + i, y + gy - i,
@hpsp_gauge, Rect.new(0, gy2 - i, 102, 1))
end
gy -= 1
gy2 = @g_height * 4 + 1
for i in 0...@g_height
self.contents.blt(gx + 33 + i, y + 99 - i,
@hpsp_gauge, Rect.new(0, gy2 - i , gw, 1))
end
else
self.contents.blt(gx + 31, y + 95,
@hpsp_gauge, Rect.new(0, 0, 102, @g_height + 2))
self.contents.blt(gx + 32, y + 96,
@hpsp_gauge, Rect.new(0, @g_height * 4 + 2 , gw, @g_height))
end
end
self.contents.font.color = system_color
self.contents.draw_shadow_text(x, y + 72, 32, 32, "Next")
self.contents.font.color = normal_color
self.contents.draw_shadow_text(x + 32, y + 72, 100, 32, actor.next_rest_exp_s, 2)
end
end
#--------------------------------------------------------------------------
# ● カーソル矩形更新
#--------------------------------------------------------------------------
def update_cursor_rect
# カーソル位置が 0 未満の場合
if @index < 0
self.cursor_rect.empty
return
end
# カーソルの座標を計算
x = @index % @column_max * @dw
y = @index / @column_max * @dh - self.oy
# カーソルの矩形を更新
self.cursor_rect.set(x, y, @dw, @dh - 32)
self.oy = @index / @column_max * @dh
end
#--------------------------------------------------------------------------
# ● グラフィックの描画
#--------------------------------------------------------------------------
if KGC::MA_MENU_STATUS_BATTLER
def draw_actor_graphic(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw, ch = bitmap.width, bitmap.height
self.contents.blt(x, y, bitmap, bitmap.rect)
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Item
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize
initialize_KGC_MenuAlter
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Skill
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize(actor)
initialize_KGC_MenuAlter(actor)
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_SkillStatus
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_SkillStatus < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize(actor)
initialize_KGC_MenuAlter(actor)
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Target
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_Target < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize
initialize_KGC_MenuAlter
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipLeft
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_EquipLeft < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize(actor)
initialize_KGC_MenuAlter(actor)
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipRight
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_EquipRight < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize(actor)
initialize_KGC_MenuAlter(actor)
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipItem
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Window_EquipItem < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MenuAlter initialize
def initialize(actor, equip_type)
initialize_KGC_MenuAlter(actor, equip_type)
self.back_opacity = 160
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ● メニューの呼び出し
#--------------------------------------------------------------------------
alias call_menu_KGC_MenuAlter call_menu
def call_menu
$game_temp.menu_selected_index = nil
call_menu_KGC_MenuAlter
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Menu
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
if $game_temp.menu_selected_index != nil
@menu_index = $game_temp.menu_selected_index
end
# スプライトセットを作成
@spriteset = Spriteset_Map.new if KGC::MA_MENU_TRANSPARENT
# コマンドウィンドウを作成
@commands = []
@com_index = []
KGC::MA_COMMANDS.each_with_index { |com, i|
case com
when 0
@commands << $data_system.words.item
when 1
@commands << $data_system.words.skill
when 2
@commands << $data_system.words.equip
when 3
@commands << KGC::MA_COMMAND_STATUS
when 4
@commands << KGC::MA_COMMAND_SAVE
when 5
@commands << KGC::MA_COMMAND_END
#when 6
#@commands << KGC::MA_COMMAND_PLAY_RECORD
#when 7
# @commands << KGC::MA_COMMAND_PARTY_ARRANGE
#when 8
# @commands << KGC::MA_COMMAND_SKILL_SETTING
# when 9
# @commands << ($imported["BattleDifficulty"] ?
# Difficulty.get[0] : "No Command")
# when 10
# @commands << ($imported["ActiveCountBattle"] ?
# KGC::MA_ACB_WAIT_MODE[$game_system.wait_mode] : "No Command")
# when 11
# @commands << ($imported["MonsterGuide"] ?
# KGC::MA_COMMAND_MONSTER_GUIDE : "No Command")
# when 12
# @commands << ($imported["Outline"] ?
# KGC::MA_COMMAND_OUTLINE : "No Command")
# when 13
# @commands << ($imported["DistributeParameter"] ?
# KGC::MA_COMMAND_DISTRIBUTE_PARAMETER : "No Command")
end
@com_index[com] = i
}
@command_window = Window_MenuCommand.new(@commands)
@command_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@command_window.index = @menu_index
# 項目を無効化
disable_command
# プレイ時間ウィンドウを作成
@playtime_window = Window_PlayTime.new
@playtime_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@playtime_window.x = 0
@playtime_window.y = 384
# ゴールドウィンドウを作成
@gold_window = Window_Gold.new
@gold_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@gold_window.opacity = 0
@gold_window.x = 640 - @gold_window.width
@gold_window.y = @command_window.height - @gold_window.height
# ゴールドウィンドウ位置を調整
@gold_window.x = 160
@gold_window.y = 414
if $imported["PlaceMission"]
# 情報ウィンドウを作成
@info_window = Window_Information.new
@info_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@info_window.x = 160
@info_window.y = 384
else
end
# ステータスウィンドウを作成
@status_window = Window_MenuStatus.new(@commands.size)
@status_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@status_window.x = 0
offset = 608 / KGC::MA_COL_COMMANDS
if $imported["BattleDifficulty"] && @com_index[9] != nil
# 難易度選択ウィンドウを作成
commands = []
$game_system.difficulty_list.each { |diff|
commands.push(diff[0])
}
@difficulty_window = Window_Command.new(160, commands)
@difficulty_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@difficulty_window.x =
[16 + @com_index[9] % KGC::MA_COL_COMMANDS * offset,
640 - @difficulty_window.width].min
@difficulty_window.y = 16 + @com_index[9] / KGC::MA_COL_COMMANDS * 32
@difficulty_window.z = 2000
@difficulty_window.active = false
@difficulty_window.visible = false
end
if $imported["ActiveCountBattle"] && @com_index[10] != nil
# ウェイトモード選択ウィンドウを作成
@waitmode_window = Window_Command.new(160, KGC::MA_ACB_WAIT_MODE)
@waitmode_window.back_opacity = 160 if KGC::MA_MENU_TRANSPARENT
@waitmode_window.x =
[16 + @com_index[10] % KGC::MA_COL_COMMANDS * offset,
640 - @waitmode_window.width].min
@waitmode_window.y = 16 + @com_index[10] / KGC::MA_COL_COMMANDS * 32
@waitmode_window.z = 2000
@waitmode_window.active = false
@waitmode_window.visible = false
end
# トランジション実行
Graphics.transition(30, "Graphics/Transitions/" + KGC::MA_MENU_TRANSITION)
# メインループ
loop {
Graphics.update
Input.update
update
if $scene != self
break
end
}
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose if @steps_window != nil
@gold_window.dispose
@status_window.dispose
@info_window.dispose if @info_window != nil
@difficulty_window.dispose if @difficulty_window != nil
@waitmode_window.dispose if @waitmode_window != nil
@spriteset.dispose if KGC::MA_MENU_TRANSPARENT
end
#--------------------------------------------------------------------------
# ● 無効コマンドを設定
#--------------------------------------------------------------------------
def disable_command
if !$imported["PlayRecord"] && @com_index[6] != nil
@command_window.disable_item(@com_index[6])
end
if !($imported["LargeParty"] && $game_system.partyform_permit) && @com_index[7] != nil
@command_window.disable_item(@com_index[7])
end
if !$imported["SkillCPSystem"] && @com_index[8] != nil
@command_window.disable_item(@com_index[8])
end
if !$imported["BattleDifficulty"] && @com_index[9] != nil
@command_window.disable_item(@com_index[9])
end
if !$imported["ActiveCountBattle"] && @com_index[10] != nil
@command_window.disable_item(@com_index[10])
end
if !$imported["MonsterGuide"] && @com_index[11] != nil
@command_window.disable_item(@com_index[11])
end
if !$imported["Outline"] && @com_index[12] != nil
@command_window.disable_item(@com_index[12])
end
if !$imported["DistributeParameter"] && @com_index[13] != nil
@command_window.disable_item(@com_index[13])
end
# パーティ人数が 0 人の場合
if $game_party.actors.size == 0
# アイテム、スキル、装備、ステータスを無効化
@command_window.disable_item(@com_index[0]) if @com_index[0] != nil
@command_window.disable_item(@com_index[1]) if @com_index[1] != nil
@command_window.disable_item(@com_index[2]) if @com_index[2] != nil
@command_window.disable_item(@com_index[3]) if @com_index[3] != nil
end
# セーブ禁止の場合
if $game_system.save_disabled && @com_index[4] != nil
# セーブを無効にする
@command_window.disable_item(@com_index[4])
end
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@command_window.update
@playtime_window.update
@steps_window.update if @steps_window != nil
@gold_window.update
@status_window.update
@info_window.update if @info_window != nil
@difficulty_window.update if @difficulty_window != nil
@waitmode_window.update if @waitmode_window != nil
# コマンドウィンドウがアクティブの場合: update_command を呼ぶ
if @command_window.active
update_command
return
end
# ステータスウィンドウがアクティブの場合: update_status を呼ぶ
if @status_window.active
update_status
return
end
# 難易度選択ウィンドウがアクティブの場合: update_difficulty を呼ぶ
if @difficulty_window != nil && @difficulty_window.active
update_difficulty
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (コマンドウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_command
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# マップ画面に切り替え
$scene = Scene_Map.new
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
command = KGC::MA_COMMANDS[@command_window.index]
# パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
if $game_party.actors.size == 0 && command != 4 && command != 5
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# コマンド内容で分岐
case command
when 0 # アイテム
$game_system.se_play($data_system.decision_se)
# アイテム画面に切り替え
$scene = Scene_Item.new
when 1 # スキル
$game_system.se_play($data_system.decision_se)
# ステータスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # 装備
$game_system.se_play($data_system.decision_se)
# ステータスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # ステータス
$game_system.se_play($data_system.decision_se)
# ステータスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # セーブ
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# セーブ画面に切り替え
$scene = Scene_Save.new
when 5 # ゲーム終了
$game_system.se_play($data_system.decision_se)
# ゲーム終了画面に切り替え
$scene = Scene_End.new
when 6 # プレイ記録
unless $imported["PlayRecord"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# プレイ記録画面に切り替え
$scene = Scene_Record.new
when 7 # パーティ編成
# ≪多人数パーティ≫を導入していない、または編成禁止の場合
if !$imported["LargeParty"] || !$game_system.partyform_permit
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# パーティ編成画面に切り替え
$scene = Scene_PartyForm.new
when 8 # スキル設定
unless $imported["SkillCPSystem"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# ステータスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 9 # 難易度変更
unless $imported["BattleDifficulty"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# 難易度選択ウィンドウをアクティブにする
@command_window.active = false
@difficulty_window.active = true
@difficulty_window.visible = true
@difficulty_window.index = $game_system.difficulty
when 10 # ウェイトモード変更
unless $imported["ActiveCountBattle"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# 難易度選択ウィンドウをアクティブにする
@command_window.active = false
@waitmode_window.active = true
@waitmode_window.visible = true
@waitmode_window.index = $game_system.wait_mode
when 11 # モンスター図鑑
unless $imported["MonsterGuide"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# モンスター図鑑画面に切り替え
$scene = Scene_MonsterGuide.new
when 12 # あらすじ
unless $imported["Outline"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# あらすじ画面に切り替え
$scene = Scene_Outline.new
when 13 # パラメータ振り分け
unless $imported["DistributeParameter"]
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# ステータスウィンドウをアクティブにする
@command_window.active = false
@status_window.active = true
@status_window.index = 0
end
# 選択コマンドを保存
$game_temp.menu_selected_index = @command_window.index
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (ステータスウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_status
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウをアクティブにする
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
command = KGC::MA_COMMANDS[@command_window.index]
# コマンド内容で分岐
case command
when 1 # スキル
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
# スキル画面に切り替え
$scene = Scene_Skill.new(@status_window.index)
when 2 # 装備
$game_system.se_play($data_system.decision_se)
# 装備画面に切り替え
$scene = Scene_Equip.new(@status_window.index)
when 3 # ステータス
$game_system.se_play($data_system.decision_se)
# ステータス画面に切り替え
$scene = Scene_Status.new(@status_window.index)
when 8 # スキル設定
$game_system.se_play($data_system.decision_se)
# スキル設定画面に切り替え
$scene = Scene_SelectBattleSkill.new(@status_window.index)
when 13 # パラメータ振り分け
$game_system.se_play($data_system.decision_se)
# 振り分け画面に切り替え
$scene = Scene_DistributeParameter.new(@status_window.index,
@command_window.index,
Scene_DistributeParameter::HOST_MENU)
end
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (難易度選択ウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_difficulty
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウに切り替え
@command_window.active = true
@difficulty_window.active = false
@difficulty_window.visible = false
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# 難易度変更
$game_system.difficulty = @difficulty_window.index
# コマンドウィンドウ再作成
@commands[@command_window.index] = Difficulty.get[0]
@command_window.refresh(@commands)
disable_command
# コマンドウィンドウに切り替え
@command_window.active = true
@difficulty_window.active = false
@difficulty_window.visible = false
return
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (ウェイトモードウィンドウがアクティブの場合)
#--------------------------------------------------------------------------
def update_waitmode
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウに切り替え
@command_window.active = true
@waitmode_window.active = false
@waitmode_window.visible = false
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ウェイトモード変更
$game_system.wait_mode = @waitmode_window.index
# コマンドウィンドウ再作成
@commands[@command_window.index] =
KGC::MA_ACB_WAIT_MODE[$game_system.wait_mode]
@command_window.refresh(@commands)
disable_command
# コマンドウィンドウに切り替え
@command_window.active = true
@waitmode_window.active = false
@waitmode_window.visible = false
return
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Item
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Scene_Item
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_MenuAlter main
def main
# スプライトセットを作成
@spriteset = Spriteset_Map.new
# 元の処理を実行
main_KGC_MenuAlter
@spriteset.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_KGC_MenuAlter update
def update
@help_window.back_opacity = 160
# 元の処理を実行
update_KGC_MenuAlter
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Skill
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Scene_Skill
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_MenuAlter main
def main
# スプライトセットを作成
@spriteset = Spriteset_Map.new
# 元の処理を実行
main_KGC_MenuAlter
@spriteset.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_KGC_MenuAlter update
def update
@help_window.back_opacity = 160
# 元の処理を実行
update_KGC_MenuAlter
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Equip
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Scene_Equip
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_MenuAlter main
def main
# スプライトセットを作成
@spriteset = Spriteset_Map.new
# 元の処理を実行
main_KGC_MenuAlter
@spriteset.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_KGC_MenuAlter update
def update
@help_window.back_opacity = 160
# 元の処理を実行
update_KGC_MenuAlter
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Status
#==============================================================================
if KGC::MA_MENU_TRANSPARENT
class Scene_Status
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias main_KGC_MenuAlter main
def main
# スプライトセットを作成
@spriteset = Spriteset_Map.new
# 元の処理を実行
main_KGC_MenuAlter
@spriteset.dispose
end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_End
#==============================================================================
class Scene_End
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
if KGC::MA_MENU_TRANSPARENT
alias main_KGC_MenuAlter main
def main
# スプライトセットを作成
@spriteset = Spriteset_Map.new
# 元の処理を実行
main_KGC_MenuAlter
@spriteset.dispose
end
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# コマンドウィンドウを更新
@command_window.update
# B ボタンが押された場合
if Input.trigger?(Input::B)
# キャンセル SE を演奏
$game_system.se_play($data_system.cancel_se)
# メニュー画面に切り替え
index = KGC::MA_COMMANDS.index(5)
if index != nil
$scene = Scene_Menu.new(index)
else
$scene = Scene_Menu.new
end
return
end
# C ボタンが押された場合
if Input.trigger?(Input::C)
# コマンドウィンドウのカーソル位置で分岐
case @command_window.index
when 0 # タイトルへ
command_to_title
when 1 # シャットダウン
command_shutdown
when 2 # やめる
command_cancel
end
return
end
end
end |
|