Ultima Forum

Pełna wersja: Usunięcie menu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Wiecie jak usunąć menu żeby odrazu pojawiło się wyjście..?
musisz zamiast scene_menu wywołać scene_end
Sądząc po liczbie postów i dacie rejestracji panciastekpl jest nowym userem makera, więc trzebaby dokładniej wytłumaczyć ;).

I teraz zasadnicze pytanie: Jakiego DOKŁADNIE RM-a używasz? Bo VX i VX Ace delikatnie się różnią "skryptologią" i trochę inaczej się w nich pewne rzeczy robi.
Nie ma co wnioskować po ilości postów :P
Niektórzy starzy scenowi wyjadacze, nie wypowiadają się dużo,
a niektórzy "nowi" aż ponadto - patrz ja.
Nie korzystam z VX'a ani z Ace'a, ale to chyba nie jest takie trudne... :D
A nie chciałem pisać błędnie - byłem w szkole, a teraz w domu to sprawdziłem XD
Sam nie ogarniam bardzo skryptów, ale jakoś mi się udało :P

To jest całe Scene_Menu
(TESTOWANE NA ZWYKŁYM VX! ALE MOŻE NA ACE TEŻ ZADZIAŁA.
Jeśli nie, to i tak wiem jak to zrobić):
Kod:
#==============================================================================
# ** Scene_Menu     -  Edit Version by ADI
===========================  

class Scene_Menu < Scene_Base
#==============================================================================
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
  end
  #--------------------------------------------------------------------------
  # * Post-Start Processing
  #--------------------------------------------------------------------------
  def post_start
    super
    open_command_window
  end
  #--------------------------------------------------------------------------
  # * Pre-termination Processing
  #--------------------------------------------------------------------------
  def pre_terminate
    super
    close_command_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_command_window
    dispose_menu_background
  end
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(5)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0  # to title
        command_to_title
      when 1  # shutdown
        command_shutdown
      when 2  # quit
        command_cancel
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update Background for Menu Screen
  #--------------------------------------------------------------------------
  def update_menu_background
    super
    @menuback_sprite.tone.set(0, 0, 0, 128)
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::to_title
    s2 = Vocab::shutdown
    s3 = Vocab::cancel
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
    @command_window.openness = 0
  end
  #--------------------------------------------------------------------------
  # * Dispose of Command Window
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Open Command Window
  #--------------------------------------------------------------------------
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  #--------------------------------------------------------------------------
  # * Close Command Window
  #--------------------------------------------------------------------------
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
  #--------------------------------------------------------------------------
  # * Process When Choosing [To Title] Command
  #--------------------------------------------------------------------------
  def command_to_title
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = Scene_Title.new
    close_command_window
    Graphics.fadeout(60)
  end
  #--------------------------------------------------------------------------
  # * Process When Choosing [Shutdown] Command
  #--------------------------------------------------------------------------
  def command_shutdown
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # *  Process When Choosing [Cancel] Command
  #--------------------------------------------------------------------------
  def command_cancel
    Sound.play_decision
    $scene = Scene_Map.new
  end
end
Na Ace nie zadziała, Ace ma inny RGSS. Z VX "normalne" zasoby przeniesiesz ale skryptów nie (bez napisania ich od nowa). A skrypty które rzekomo są kompatybilne z obiema wersjami RM, to tak naprawdę 2 w 1, tylko na początku sprawdzają jaką wersję masz i wykonują odpowiedni fragment kodu.
Ale chodzi o menu główne czy menu w grze?
O menu w grze :D
Zrozumiałem tak, że chce aby po wciśnięciu "Esc" wywaliło okno:
To title
Shutdown
Cancel

Pobieram Ace'a, i tam zobaczę :D
Cytat:To jest całe Scene_Menu
(TESTOWANE NA ZWYKŁYM VX! ALE MOŻE NA ACE TEŻ ZADZIAŁA.
Jeśli nie, to i tak wiem jak to zrobić):
Adi ten skrypt nie ma prawa działać na VX jak i na VX ace. Jest to zwykła kopia z Scene_end do Scene_menu.

Żeby po naciśnięciu esc wyświetliło ci się okienko ze sceną Scene_end wystarczy w Scene_map zamienić:
linijkę od 188 do 192 na to:
Kod:
def call_menu
Sound.play_ok
SceneManager.call(Scene_End)
Window_MenuCommand::init_command_position
end
def call_menu - definicja wywołania menu oczywiście zamiast menu wyświetla nam Scene_end.
SceneManager.call(Scene_End) - komenda do wywołania tej że sceny
nie ma prawa działać? Ale działa choć prawda, że jest to kopia scene_end xd

Nie znam się na skryptach, tyle potrafię zrobić i działa więc podsyłam. hahah Pozdro
Przekierowanie