Myownfriend
Member
I'm trying to add a command window to Scene Item.
Problem is, it keeps starting in the item window and I keep getting anerror with the index
Heres the script
Problem is, it keeps starting in the item window and I keep getting anerror with the index
Heres the script
Code:
#==============================================================================
# â– Scene_Item
#------------------------------------------------------------------------------
#  アイテム画é¢ã®å‡¦ç†ã‚’è¡Œã†ã‚¯ãƒ©ã‚¹ã§ã™ã€‚
#==============================================================================
class Scene_Item
#--------------------------------------------------------------------------
# ◠メイン処ç†
#--------------------------------------------------------------------------
def main
@background = Sprite.new
@background.bitmap = RPG::Cache.picture("background9")
@sprite1 = Sprite.new
@sprite1.bitmap = RPG::Cache.picture("grad")
@sprite1.z = 4
@sprite2 = Sprite.new
@sprite2.opacity = 160
@viewport = Viewport.new(0, 0, 640, 480)
@image = Plane.new(@viewport)
@image.bitmap = RPG::Cache.picture("fog")
@image.z = 3
@image.opacity = 30
@Display = Sprite.new
@Display.bitmap = RPG::Cache.picture("Menu/" + "Items")
# ヘルプウィンドウã€ã‚¢ã‚¤ãƒ†ãƒ ウィンドウを作æˆ
@help_window = Window_Help.new
@item_window = Window_Item.new
@item_Command_window = Window_Item_Command.new
@item_Command_window.active = true
@item_window.active = false
@item_window.y =165
@item_window.x = 20
@item_window.width =335
@item_window.height =300
@item_window.opacity =0
# ヘルプウィンドウを関連付ã‘
@item_window.help_window = @help_window
# ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’ä½œæˆ (ä¸å¯è¦–・éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã«è¨å®š)
@target_window = Window_Target.new
@target_window.visible = true
@target_window.opacity = 0
@target_window.x = 300
@target_window.y = 66
@target_window.height = 480
@target_window.active = false
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲーム画é¢ã‚’æ›´æ–°
Graphics.update
# å…¥åŠ›æƒ…å ±ã‚’æ›´æ–°
Input.update
# フレーム更新
update
# ç”»é¢ãŒåˆ‡ã‚Šæ›¿ã‚ã£ãŸã‚‰ãƒ«ãƒ¼ãƒ—ã‚’ä¸æ–
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# ウィンドウを解放
@help_window.dispose
@item_window.dispose
@item_Command_window.dispose
@target_window.dispose
@viewport.dispose
@Display.dispose
@background.dispose
@sprite1.dispose
@sprite2.dispose
end
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
def update
# ウィンドウを更新
@help_window.update
@item_window.update
@target_window.update
# アイテムウィンドウãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã®å ´åˆ: update_item を呼ã¶
if @item_window.active
update_item
return
end
if @item_Command_window.active
update_item_command
return
end
# ターゲットウィンドウãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã®å ´åˆ: update_target を呼ã¶
if @target_window.active
update_target
return
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アイテムウィンドウãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã®å ´åˆ)
#--------------------------------------------------------------------------
def update_item
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# メニュー画é¢ã«åˆ‡ã‚Šæ›¿ãˆ
@Item_Command_window.active = true
@item_window.active = false
return
end
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C)
# アイテムウィンドウã§ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„るデータをå–å¾—
@item = @item_window.item
# 使用アイテムã§ã¯ãªã„å ´åˆ
unless @item.is_a?(RPG::Item)
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
return
end
# 使用ã§ããªã„å ´åˆ
unless $game_party.item_can_use?(@item.id)
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# 効果範囲ãŒå‘³æ–¹ã®å ´åˆ
if @item.scope >= 3
# ターゲットウィンドウをアクティブ化
@item_window.active = false
@target_window.visible = true
@target_window.active = true
# 効果範囲 (å˜ä½“/全体) ã«å¿œã˜ã¦ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®ã‚’è¨å®š
if @item.scope == 4 || @item.scope == 6
@target_window.index = -1
else
@target_window.index = 0
end
# 効果範囲ãŒå‘³æ–¹ä»¥å¤–ã®å ´åˆ
else
# コモンイベント ID ãŒæœ‰åŠ¹ã®å ´åˆ
if @item.common_event_id > 0
# コモンイベント呼ã³å‡ºã—予約
$game_temp.common_event_id = @item.common_event_id
# アイテムã®ä½¿ç”¨æ™‚ SE ã‚’æ¼”å¥
$game_system.se_play(@item.menu_se)
# 消耗å“ã®å ´åˆ
if @item.consumable
# 使用ã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’ 1 減らã™
$game_party.lose_item(@item.id, 1)
# アイテムウィンドウã®é …目をå†æç”»
@item_window.draw_item(@item_window.index)
end
# マップ画é¢ã«åˆ‡ã‚Šæ›¿ãˆ
$scene = Scene_Map.new
return
end
end
return
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (ターゲットウィンドウãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã®å ´åˆ)
#--------------------------------------------------------------------------
def update_item_command
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# メニュー画é¢ã«åˆ‡ã‚Šæ›¿ãˆ
$scene=Scene_Menu.new(0)
return
end
if Input.trigger?(Input::C)
case @commands.index
when 0
$game_system.se_play($data_system.decision_se)
@Item_Command.active = false
@item_window.active = true
when 1
$game_system.se_play($data_system.decision_se)
when 2
$game_system.se_play($data_system.decision_se)
end
end
def update_target
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# アイテム切れãªã©ã§ä½¿ç”¨ã§ããªããªã£ãŸå ´åˆ
unless $game_party.item_can_use?(@item.id)
# アイテムウィンドウã®å†…容をå†ä½œæˆ
@item_window.refresh
end
# ターゲットウィンドウを消去
@item_window.active = true
@target_window.visible = true
@target_window.active = false
@item_command_window.active = false
return
end
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C)
# アイテムを使ã„切ã£ãŸå ´åˆ
if $game_party.item_number(@item.id) == 0
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
return
end
# ターゲットãŒå…¨ä½“ã®å ´åˆ
if @target_window.index == -1
# パーティ全体ã«ã‚¢ã‚¤ãƒ†ãƒ ã®ä½¿ç”¨åŠ¹æžœã‚’é©ç”¨
used = false
for i in $game_party.actors
used |= i.item_effect(@item)
end
end
# ターゲットãŒå˜ä½“ã®å ´åˆ
if @target_window.index >= 0
# ターゲットã®ã‚¢ã‚¯ã‚¿ãƒ¼ã«ã‚¢ã‚¤ãƒ†ãƒ ã®ä½¿ç”¨åŠ¹æžœã‚’é©ç”¨
target = $game_party.actors[@target_window.index]
used = target.item_effect(@item)
end
# アイテムを使ã£ãŸå ´åˆ
if used
# アイテムã®ä½¿ç”¨æ™‚ SE ã‚’æ¼”å¥
$game_system.se_play(@item.menu_se)
# 消耗å“ã®å ´åˆ
if @item.consumable
# 使用ã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’ 1 減らã™
$game_party.lose_item(@item.id, 1)
# アイテムウィンドウã®é …目をå†æç”»
@item_window.draw_item(@item_window.index)
end
# ターゲットウィンドウã®å†…容をå†ä½œæˆ
@target_window.refresh
# 全滅ã®å ´åˆ
if $game_party.all_dead?
# ゲームオーãƒãƒ¼ç”»é¢ã«åˆ‡ã‚Šæ›¿ãˆ
$scene = Scene_Gameover.new
return
end
# コモンイベント ID ãŒæœ‰åŠ¹ã®å ´åˆ
if @item.common_event_id > 0
# コモンイベント呼ã³å‡ºã—予約
$game_temp.common_event_id = @item.common_event_id
# マップ画é¢ã«åˆ‡ã‚Šæ›¿ãˆ
$scene = Scene_Map.new
return
end
end
# アイテムを使ã‚ãªã‹ã£ãŸå ´åˆ
unless used
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
end
end