종료

[VX ACE]메인메뉴 스크립트입니다...

by Bronya posted Dec 14, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
사용 제작툴 RMVXA
의뢰 부문 기능 구현
마감일 2016-06-14

습작님이 제작하신 메뉴제작툴로 만든 현재 사용중인 메뉴 스크립트 입니다...

 

class Scene_Menu < Scene_MenuBase
  def start
    super
    create_command_window
    create_gold_window
    create_location_window
    create_status_window
  end
  def create_gold_window
    @gold_window = Window_Gold.new
  end
  def create_location_window
    @location_window = Window_Location.new
  end
  def create_command_window
    @command_window = Window_MenuCommand.new
    @command_window.set_handler(:item,    method(:command_item))
    @command_window.set_handler(:skill,    method(:command_personal))
    @command_window.set_handler(:equip,    method(:command_personal))
    @command_window.set_handler(:status,    method(:command_personal))
    @command_window.set_handler(:custom_scene_0,    method(:command_custom_scene_0))
    @command_window.set_handler(:common_event_69,    method(:command_common_event_69))
    @command_window.set_handler(:common_event_70,    method(:command_common_event_70))
    @command_window.set_handler(:common_event_71,    method(:command_common_event_71))
    @command_window.set_handler(:continue,    method(:command_continue))
    @command_window.set_handler(:game_end,    method(:command_game_end))

    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  def create_status_window
    @status_window = Window_MenuStatus.new(160, 0)
  end
  def command_custom_scene_0
    SceneManager.call(Scene_Status_Distribution)
  end
  def command_common_event_69
    $game_temp.reserve_common_event(69)
    SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
  end
  def command_common_event_70
    $game_temp.reserve_common_event(70)
    SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
  end
  def command_common_event_71
    $game_temp.reserve_common_event(71)
    SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
  end
  def command_continue
    SceneManager.call(Scene_Load)
  end
end
class Window_MenuCommand < Window_Command
  def initialize
    super(0, 0)
    self.opacity = 255 if SceneManager.scene_is?(Scene_Menu)
    select_last
  end
  def window_width
    return 160
  end
  def window_height
    return 272
  end
  def make_command_list
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,   :skill,   main_commands_enabled)
    add_command(Vocab::equip,   :equip,   main_commands_enabled)
    add_command(Vocab::status,   :status,   main_commands_enabled)
    add_command('스테이터스분배',   :custom_scene_0)
    add_command($data_common_events[69].name,   :common_event_69)
    add_command($data_common_events[70].name,   :common_event_70)
    add_command($data_common_events[71].name,   :common_event_71)
    add_command(Vocab::continue,   :continue,   main_commands_enabled)
    add_command(Vocab::game_end,   :game_end)

  end
  def alignment
    return 0
  end
end
class Window_MenuStatus < Window_Selectable
  def initialize(x, y)
    super(x, y, window_width, window_height)
    @pending_index = -1
    self.opacity = 0 if SceneManager.scene_is?(Scene_Menu)
    refresh
  end
  def window_width
    return 384
  end
  def window_height
    return 267
  end
  def item_height
    return (height - standard_padding * 2) / 1
  end
  def draw_item(index)
    actor = $game_party.members[index]
    enabled = $game_party.battle_members.include?(actor)
    rect = item_rect(index)
    draw_item_background(index)
    draw_actor_simple_status(actor, rect.x, rect.y)
  end
  def draw_actor_simple_status(actor, x, y)
    draw_actor_name(actor, x + 10, y + 97)
    draw_actor_level(actor, x + 11, y + 123)
    draw_actor_icons(actor, x + 8, y + 63)
    draw_actor_class(actor, x + 84, y + 124)
    draw_actor_hp(actor, x + 10, y + 149)
    draw_actor_mp(actor, x + 10, y + 173)
    draw_actor_tp(actor, x + 10, y + 194)
  end
  def draw_actor_name(actor, x, y, width = 112)
    change_color(hp_color(actor))
    draw_text(x, y, width, 24, actor.name)
  end
  def draw_actor_level(actor, x, y)
    change_color(system_color)
    draw_text(x, y, 32, line_height, Vocab::level_a)
    change_color(normal_color)
    draw_text(x + 56 - 24, y, 24, 24, actor.level, 2)
  end
  def draw_actor_icons(actor, x, y, width = 96)
    icons = (actor.state_icons + actor.buff_icons)[0, ((24/24)*width)/24]
    icons.each_with_index {|n, i| draw_icon(n, x + 24 * (i % (width / 24)), y + 24 * (i / (width / 24))) }
  end
  def draw_actor_class(actor, x, y, width = 112)
    change_color(normal_color)
    draw_text(x, y, width, 24, actor.class.name)
  end
  def draw_actor_hp(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
    change_color(system_color)
    draw_text(x, y, 30, line_height, Vocab::hp_a)
    draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
    hp_color(actor), normal_color)
    end
  def draw_actor_mp(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
    change_color(system_color)
    draw_text(x, y, 30, line_height, Vocab::mp_a)
    draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
    mp_color(actor), normal_color)
  end
end
class Window_MenuActor < Window_MenuStatus
  def initialize
    super(0, 0)
    self.visible = false
  end
  def window_height
    Graphics.height
  end
end
class Window_Gold < Window_Base
  def initialize
    super(0, 368, window_width, 48)
    self.opacity = 255 if SceneManager.scene_is?(Scene_Menu)
    refresh
  end
  def window_width
    return 285
  end
  def refresh
    contents.clear
    change_color(system_color)
    draw_text(4, 0, contents_width - 8, line_height, '소지금')
    cx = text_size(currency_unit).width
    change_color(normal_color)
    draw_text(4, contents_height - line_height, contents.width - 8 - cx - 2, line_height, value, 2)
    change_color(system_color)
    draw_text(4, contents_height - line_height, contents.width - 8, line_height, currency_unit, 2)
  end
end
class Window_Location < Window_Base
  def initialize
    super(285, 368, window_width, 48)
    self.opacity = 255 if SceneManager.scene_is?(Scene_Menu)
    refresh
  end
  def window_width
    return 259
  end
  def refresh
    contents.clear
    change_color(system_color)
    draw_text(4, 0, contents_width - 8, line_height, '위치')
    change_color(normal_color)
    draw_text(4, contents_height - line_height, contents_width - 8, line_height, $game_map.display_name, 2)
  end
  def open
    refresh
    super
  end
end

 

여러가지 스크립트를 대조해보고 제 나름대로 .. 커먼이벤트를 출력하는 윈도우를 만들어보려는둥

해결해보려 노력했지만 도저히 결과가 나오지 않아 의뢰해봅니다...

 

 

현재 스크립트를 사용한 이미지는K-38SS.jpg


위와 같습니다

 

그리구 목표로 하는 메뉴는

 

K-38 복사.jpg


위와 같습니다

 

 

혹시 구현해주실 능력자분 계실까요...?