#------------------------------------------------------------------------------
#設定項目module MARU_battleequip
SWITCH = 1 #「装備コマンド」を有効にするスイッチ
#------------------------------------------------------------------------------
end
#==============================================================================
# ■ Window_ActorCommand
#------------------------------------------------------------------------------
# バトル画面で、アクターの行動を選択するウィンドウです。
#==============================================================================
class Window_ActorCommand < Window_Command
#--------------------------------------------------------------------------
# ● コマンドリストの作成
#--------------------------------------------------------------------------
alias ma0075make_command_list make_command_list
def make_command_list
ma0075make_command_list
add_equip_command if $game_switches[MARU_battleequip::SWITCH] == true
end
#--------------------------------------------------------------------------
# ● アイテムコマンドをリストに追加
#--------------------------------------------------------------------------
def add_equip_command
add_command("装備", :equip)
end
end
#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
# バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 全ウィンドウの作成
#--------------------------------------------------------------------------
alias ma0075_create_all_windows create_all_windows
def create_all_windows
ma0075_create_all_windows
create_equip_window if $game_switches[MARU_battleequip::SWITCH] == true
end
#--------------------------------------------------------------------------
# ● アクターコマンドウィンドウの作成
#--------------------------------------------------------------------------
alias ma0075_create_actor_command_window create_actor_command_window
def create_actor_command_window
ma0075_create_actor_command_window
@actor_command_window.set_handler(:equip, method(:command_equip))
end
#--------------------------------------------------------------------------
# ● 装備ウィンドウの作成
#--------------------------------------------------------------------------
def create_equip_window
@status_equip_window = Window_EquipStatus.new(0, @help_window.height)
@status_equip_window.visible = false
@status_equip_window.viewport = @viewport
wx = @status_equip_window.width
wy = @help_window.height
ww = Graphics.width - @status_equip_window.width
@command_equip_window = Window_EquipCommand.new(wx, wy, ww)
@command_equip_window.visible = false
@command_equip_window.deactivate
@command_equip_window.viewport = @viewport
@command_equip_window.help_window = @help_window
@command_equip_window.set_handler(:equip, method(:command_equip_e))
@command_equip_window.set_handler(:optimize, method(:command_optimize))
@command_equip_window.set_handler(:clear, method(:command_clear))
@command_equip_window.set_handler(:cancel, method(:on_command_cancel))
wx = @status_equip_window.width
wy = @command_equip_window.y + @command_equip_window.height
ww = Graphics.width - @status_equip_window.width
@slot_window = Window_EquipSlot.new(wx, wy, ww)
@slot_window.visible = false
@slot_window.viewport = @viewport
@slot_window.help_window = @help_window
@slot_window.status_window = @status_equip_window
@slot_window.set_handler(:ok, method(:on_slot_ok))
@slot_window.set_handler(:cancel, method(:on_slot_cancel))
wx = 0
wy = @slot_window.y + @slot_window.height
ww = Graphics.width
wh = Graphics.height - wy
@item_equip_window = Window_EquipItem.new(wx, wy, ww, wh)
@item_equip_window.visible = false
@item_equip_window.viewport = @viewport
@item_equip_window.help_window = @help_window
@item_equip_window.status_window = @status_equip_window
@item_equip_window.set_handler(:ok, method(:on_item_equip_ok))
@item_equip_window.set_handler(:cancel, method(:on_item_equip_cancel))
@slot_window.item_window = @item_equip_window
end
#--------------------------------------------------------------------------
# ● コマンド[装備]
#--------------------------------------------------------------------------
def command_equip
@help_window.show
@actor = BattleManager.actor
@status_equip_window.actor = @actor
@slot_window.actor = @actor
@item_equip_window.actor = @actor
@status_equip_window.refresh
@status_equip_window.show
@command_equip_window.refresh
@command_equip_window.show.activate
@slot_window.refresh
@slot_window.show
@item_equip_window.refresh
@item_equip_window.show
end
#--------------------------------------------------------------------------
# ● コマンド[装備変更]
#--------------------------------------------------------------------------
def command_equip_e
@slot_window.activate
@slot_window.select(0)
end
#--------------------------------------------------------------------------
# ● コマンド[最強装備]
#--------------------------------------------------------------------------
def command_optimize
Sound.play_equip
@actor.optimize_equipments
@status_equip_window.refresh
@slot_window.refresh
@command_equip_window.activate
end
#--------------------------------------------------------------------------
# ● コマンド[全て外す]
#--------------------------------------------------------------------------
def command_clear
Sound.play_equip
@actor.clear_equipments
@status_equip_window.refresh
@slot_window.refresh
@command_equip_window.activate
end
#--------------------------------------------------------------------------
# ● コマンド[キャンセル]
#--------------------------------------------------------------------------
def on_command_cancel
@help_window.hide
@status_equip_window.hide
@command_equip_window.hide
@slot_window.hide
@item_equip_window.hide
@actor_command_window.activate
@actor_command_window.select(0)
end
#--------------------------------------------------------------------------
# ● スロット[決定]
#--------------------------------------------------------------------------
def on_slot_ok
@item_equip_window.activate
@item_equip_window.select(0)
end
#--------------------------------------------------------------------------
# ● スロット[キャンセル]
#--------------------------------------------------------------------------
def on_slot_cancel
@slot_window.unselect
@command_equip_window.activate
end
#--------------------------------------------------------------------------
# ● アイテム[決定]
#--------------------------------------------------------------------------
def on_item_equip_ok
Sound.play_equip
@actor.change_equip(@slot_window.index, @item_equip_window.item)
@slot_window.activate
@slot_window.refresh
@item_equip_window.unselect
@item_equip_window.refresh
end
#--------------------------------------------------------------------------
# ● アイテム[キャンセル]
#--------------------------------------------------------------------------
def on_item_equip_cancel
@slot_window.activate
@item_equip_window.unselect
end
end
돌아다니다가 발견한 자료인데요,
여기 스크립트에서
add_equip_command if $game_switches[MARU_battleequip::SWITCH] == true
부분이 초기 스위치 값을 인식하지 못하는 것 같아서
부분이 초기 스위치 값을 인식하지 못하는 것 같아서
add_equip_command
부분만 남기고 지우고 전투 중 장비메뉴가 추가되어서 커맨드를 실행해 보려니
undefinded method 'actor=' for nil:NilClass
라는 스크립트 에서가 떠서 보니
@status_equip_window.actor = @actor
부분인데, 여기서 actor가 확인이 되지 않는 이유는 뭔가요?
이 외에도 다른 스크립트 에러가 발생할 경우가 있을까요?