UltimaForum

Skrypty [VX] - Wygląd Menu Głównego

Kable - Nie 20 Gru, 2009 04:02
Temat postu: Wygląd Menu Głównego
Witam mam dla was skrypt, który zmienia nieco wygląd menu głównego, moim zdaniem na ładniejszy.

Funkcje
Ekran tytułowy, która wygląda ładniej.
-Możliwość zmiany ekranu tytuł grafiki Nazwa i / lub folderu
(v1.2) (v1.2)

Screen



Skrypt
Spoiler:

Kod:
#====================================================
# Ekran tytułowy by Miget man12
#-----------------------------------------------------------------------------
# Skrypt umożliwia przyporządkowanie nowych czcionek do poleceń w ekranie
# tytułowym. Dodatkowo skrypt usuwa okienko i podświetla zaznaczony tekst.
#=========================================================
$imported = {} if $imported.nil?
$imported["Mm12MTUGTitle"] = true
#=========================================================
module Mm12
 
  COMMAND_TEXT = [] # Nie modyfikować!
  # Nowa Gra
  COMMAND_TEXT[0] = "Nowa Gra"
  # Kontynuuj
  COMMAND_TEXT[1] = "Kontynuuj"
  # Wyjście
  COMMAND_TEXT[2] = "Wyjście"
  # Dodatkowe polecenie
  COMMAND_TEXT[3] = "Menu (?)"

  # Działanie komend - odwołanie polecenia do definicji w skrypcie
  COMMAND_ACTION = [] # Nie modyfikować / usuwać! 
  OMMAND_ACTION[0] = "command_new_game"   # Nowa Gra
  COMMAND_ACTION[1] = "command_continue"  # Kontynuuj
  COMMAND_ACTION[2] = "command_shutdown"  # Wyjście
  COMMAND_ACTION[3] = "$scene = Scene_Menu.new" 

  # Czcionki według kolejności - jeśli nie będzie pierwszej, to wyświetli drugą
  COMMAND_FONT = ["Times New Roman", "Verdana", "Arial", "Courier New"]
 
  # Wielkość napisów
  COMMAND_TEXT_SIZE = 28
 
  # Cień pod napisami (true / false)
  COMMAND_SHADOW = false
 
  # Pogrubienie napisów (true / false)
  COMMAND_BOLD = true
 
  # Kursywa (true / false)
  COMMAND_ITALIC = true
 
  # Kolor napisów - kolory RGB
  # Color.new(red, green, blue)
 
  # Color of Command Text when not selected 
  COMMAND_COLOR_NOT = Color.new(0,0,0)
 
  # Color Command Text flashes when selected
  COMMAND_COLOR_YES = Color.new(205,205,205)
   
  COMMAND_X = [] # Nie modyfikować / usuwać!
  COMMAND_Y = [] # Nie modyfikować / usuwać!
 
  # wspólrzędna X dla "Nowej Gry"
  COMMAND_X[0] = 50
  # wspólrzędna X dla "Kontynuuj"
  COMMAND_X[1] = 80
  # wspólrzędna X dla "Wyjścia"
  COMMAND_X[2] = 110
  # wspólrzędna X dla "Menu ?"
  COMMAND_X[3] = 140

  # wspólrzędna Y dla "Nowej Gry"
  COMMAND_Y[0] = 170
  # wspólrzędna Y dla "Kontynuuj"
  COMMAND_Y[1] = 210
  # wspólrzędna Y dla "Wyjścia"
  COMMAND_Y[2] = 250
  # wspólrzędna Y dla "Menu ?"
  COMMAND_Y[3] = 290
 
  # Nazwa obrazka w tle (Domyślny to "Title")
  TITLE_GRAPHIC_NAME = "Title"
 
  # Folder, w którym umieszczony jest obrazek (Domyślny to "System")
  TITLE_GRAPHIC_FOLDER = "System"
end

module Cache 
  def self.title(filename)
    load_bitmap("Graphics/#{Mm12::TITLE_GRAPHIC_FOLDER}/", filename)
  end
end

class Scene_Title < Scene_Base
 
  def main
    if $BTEST
      battle_test
    else
      super
    end
  end

  def start
    super
    @com_wait = 1
    @sel_index = 0
    load_database
    create_game_objects
    check_continue
    create_title_graphics
    create_command_graphics
    play_title_music
  end

  def perform_transition
    Graphics.transition(20)
  end

  def post_start
    super
  end

  def pre_terminate
    super
  end

  def terminate
    super
    dispose_command_graphics
    snapshot_for_background
    dispose_title_graphics
  end

  def update
    super
    update_com_graphics
    if Input.trigger?(Input::DOWN)
      pre_mvmt
      if @sel_index == (Mm12::COMMAND_TEXT.size-1)
        @sel_index = 0
      else
        @sel_index += 1
      end
      post_mvmt
    elsif Input.trigger?(Input::UP)
      pre_mvmt
      if @sel_index == 0
        @sel_index = (Mm12::COMMAND_TEXT.size-1)
      else
        @sel_index -= 1
      end
      post_mvmt
    elsif Input.trigger?(Input::C)
      eval(Mm12::COMMAND_ACTION[@sel_index])
    end
  end

  def update_com_graphics
    @com_wait -= 1
    if @com_wait <= 0
      @com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_YES,60)
      @com_wait = 60
    end
    for sprt in @com_graphics
      sprt.update
    end
  end

  def post_mvmt
    Sound.play_cursor
    @com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_YES,60)
    @com_wait = 60
  end

  def pre_mvmt
    @com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_NOT,60)
  end

  def check_continue
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  end

  def create_title_graphics
    @back_sprite = Sprite.new
    @back_sprite.bitmap = Cache.title(Mm12::TITLE_GRAPHIC_NAME)
  end

  def dispose_title_graphics
    @back_sprite.bitmap.dispose
    @back_sprite.dispose
  end

  def create_command_graphics#window
    @command_window = Window_Base.new(250, 350, 44, 50)
    @command_window.opacity = 0
    @command_window.back_opacity = 0
    @command_window.contents_opacity = 0
    @command_window.openness = 0
    @com_graphics = []
    for index in 0..(Mm12::COMMAND_TEXT.size-1)
      @com_graphics[index] = Sprite.new
      @com_graphics[index].bitmap = Bitmap.new(200,200)
      @com_graphics[index].bitmap.font.name = Mm12::COMMAND_FONT
      @com_graphics[index].bitmap.font.size = Mm12::COMMAND_TEXT_SIZE
      @com_graphics[index].bitmap.font.color = Mm12::COMMAND_COLOR_NOT
      @com_graphics[index].bitmap.font.shadow = Mm12::COMMAND_SHADOW
      @com_graphics[index].bitmap.font.bold = Mm12::COMMAND_BOLD
      @com_graphics[index].bitmap.font.italic = Mm12::COMMAND_ITALIC
      @com_graphics[index].ox = -(Mm12::COMMAND_X[index])
      @com_graphics[index].oy = -(Mm12::COMMAND_Y[index])
      rect = @com_graphics[index].bitmap.text_size(Mm12::COMMAND_TEXT[index])
      @com_graphics[index].bitmap.draw_text(0, 0, rect.width, rect.height, Mm12::COMMAND_TEXT[index])
    end
  end

  def dispose_command_graphics
    for com in @com_graphics
      com.dispose unless com.nil?
    end
    @command_window.dispose
  end
 
  def close_command_window
    return
  end
end



I jeżeli można Ayene prosił bym Cię o przetłumaczenie jego o ile to jest w tym skrypcie potrzebne :) i z edytowanie tego postu i wstawienie przetłumaczony skrypt.

Cyklop - Pon 21 Gru, 2009 11:41

Spoko skrypt, tylko szkoda że go nie przetłumaczyłeś. Ale i tak duży plus za chęci.
alintes - Sob 26 Gru, 2009 18:08

Fajny skrypt,ale by był jeszcze lepszy gdyby był przetłumaczony :-|
Amelanduil - Pią 12 Mar, 2010 18:25

alintes napisał/a:
Fajny skrypt,ale by był jeszcze lepszy gdyby był przetłumaczony

a jaki to problem przetłumaczyć : ]
Kable napisał/a:
COMMAND_TEXT[0] = "New Game"
# Continue
COMMAND_TEXT[1] = "Load Game"
# Quit
COMMAND_TEXT[2] = "End Game"
COMMAND_TEXT[3] = "Menu (?)"

to wystarczy pozmieniać :D

Agumon - Pią 19 Mar, 2010 18:01

ej a dało by się tam żeby te napisy były na środku i żeby to były obrazki
???

mari1002 - Pią 19 Mar, 2010 18:06

tak jak lostsul napisał starczy zrobić z tego::

COMMAND_TEXT[0] = "New Game"
# Continue
COMMAND_TEXT[1] = "Load Game"
# Quit
COMMAND_TEXT[2] = "End Game"
COMMAND_TEXT[3] = "Menu (?)"

na to::

COMMAND_TEXT[0] = "Nowa Gra"
# Continue
COMMAND_TEXT[1] = "Kontynuuj"
# Quit
COMMAND_TEXT[2] = "Zakończ"
COMMAND_TEXT[3] = "Menu (?)"

jak kto chce może se inaczej pozmianieć

Ayene - Pią 19 Mar, 2010 20:33

Agumon, tutaj masz menu obrazkowe :arrow: http://www.ultimateam.pl/viewtopic.php?t=2064

A jeśli chcesz wyrównać napisy to skonfiguruj ten fragment:
Kod:
# wspólrzędna X dla "Nowej Gry"
  COMMAND_X[0] = 50
  # wspólrzędna X dla "Kontynuuj"
  COMMAND_X[1] = 80
  # wspólrzędna X dla "Wyjścia"
  COMMAND_X[2] = 110
  # wspólrzędna X dla "Menu ?"
  COMMAND_X[3] = 140

  # wspólrzędna Y dla "Nowej Gry"
  COMMAND_Y[0] = 170
  # wspólrzędna Y dla "Kontynuuj"
  COMMAND_Y[1] = 210
  # wspólrzędna Y dla "Wyjścia"
  COMMAND_Y[2] = 250
  # wspólrzędna Y dla "Menu ?"
  COMMAND_Y[3] = 290

Agumon - Pią 19 Mar, 2010 21:35

Dzięki wielkie Ayene...
Drathae - Wto 23 Mar, 2010 09:15

Jest coś, co by przed wejściem do menu, zaraz po włączeniu gry, wyświetlało filmik początkowy, tak jak w prawie każdej grze? Przedstawia on firmy, które stworzyły grę, np w Gothic filmiki z firmy Piranha Bytes. :?:
Ayene - Wto 23 Mar, 2010 15:10

Tak jest. Sprawdź to :arrow: http://www.ultimateam.pl/viewtopic.php?t=1894
FilipsO - Sro 02 Cze, 2010 18:26

Mi wyskakuje komunikat o następującej treści (przy uruchomieniu):
????'Title' ?24????NameError ?????
uninitialized constant Mm12::OMMAND_ACTION

Co mam zrobić?

cj2 - Sro 02 Cze, 2010 18:35

Tam trzeba dopisać zamiast :"OMMAND" "COMMAND"

A jednak mnie posłuchałeś...
Edit
A komu się nie chce dopisywać 1 literki ( :lol2: ) i usunąć "menu(?)" to macie gotowy skrypt:
Spoiler:

Kod:
#====================================================
# Ekran tytułowy by Miget man12
#-----------------------------------------------------------------------------
# Skrypt umożliwia przyporządkowanie nowych czcionek do poleceń w ekranie
# tytułowym. Dodatkowo skrypt usuwa okienko i podświetla zaznaczony tekst.
#=========================================================
$imported = {} if $imported.nil?
$imported["Mm12MTUGTitle"] = true
#=========================================================
module Mm12
 
  COMMAND_TEXT = [] # Nie modyfikować!
  # Nowa Gra
  COMMAND_TEXT[0] = "Nowa Gra"
  # Kontynuuj
  COMMAND_TEXT[1] = "Kontynuuj"
  # Wyjście
  COMMAND_TEXT[2] = "Wyjście"

  # Działanie komend - odwołanie polecenia do definicji w skrypcie
  COMMAND_ACTION = [] # Nie modyfikować / usuwać! 
  COMMAND_ACTION[0] = "command_new_game"   # Nowa Gra
  COMMAND_ACTION[1] = "command_continue"  # Kontynuuj
  COMMAND_ACTION[2] = "command_shutdown"  # Wyjście
  COMMAND_ACTION[3] = "$scene = Scene_Menu.new" 

  # Czcionki według kolejności - jeśli nie będzie pierwszej, to wyświetli drugą
  COMMAND_FONT = ["Times New Roman", "Verdana", "Arial", "Courier New"]
 
  # Wielkość napisów
  COMMAND_TEXT_SIZE = 28
 
  # Cień pod napisami (true / false)
  COMMAND_SHADOW = false
 
  # Pogrubienie napisów (true / false)
  COMMAND_BOLD = true
 
  # Kursywa (true / false)
  COMMAND_ITALIC = true
 
  # Kolor napisów - kolory RGB
  # Color.new(red, green, blue)
 
  # Color of Command Text when not selected 
  COMMAND_COLOR_NOT = Color.new(0,0,0)
 
  # Color Command Text flashes when selected
  COMMAND_COLOR_YES = Color.new(205,205,205)
   
  COMMAND_X = [] # Nie modyfikować / usuwać!
  COMMAND_Y = [] # Nie modyfikować / usuwać!
 
  # wspólrzędna X dla "Nowej Gry"
  COMMAND_X[0] = 50
  # wspólrzędna X dla "Kontynuuj"
  COMMAND_X[1] = 80
  # wspólrzędna X dla "Wyjścia"
  COMMAND_X[2] = 110
  # wspólrzędna X dla "Menu ?"
  COMMAND_X[3] = 140

  # wspólrzędna Y dla "Nowej Gry"
  COMMAND_Y[0] = 170
  # wspólrzędna Y dla "Kontynuuj"
  COMMAND_Y[1] = 210
  # wspólrzędna Y dla "Wyjścia"
  COMMAND_Y[2] = 250
  # wspólrzędna Y dla "Menu ?"
  COMMAND_Y[3] = 290
 
  # Nazwa obrazka w tle (Domyślny to "Title")
  TITLE_GRAPHIC_NAME = "Title"
 
  # Folder, w którym umieszczony jest obrazek (Domyślny to "System")
  TITLE_GRAPHIC_FOLDER = "System"
end

module Cache 
  def self.title(filename)
    load_bitmap("Graphics/#{Mm12::TITLE_GRAPHIC_FOLDER}/", filename)
  end
end

class Scene_Title < Scene_Base
 
  def main
    if $BTEST
      battle_test
    else
      super
    end
  end

  def start
    super
    @com_wait = 1
    @sel_index = 0
    load_database
    create_game_objects
    check_continue
    create_title_graphics
    create_command_graphics
    play_title_music
  end

  def perform_transition
    Graphics.transition(20)
  end

  def post_start
    super
  end

  def pre_terminate
    super
  end

  def terminate
    super
    dispose_command_graphics
    snapshot_for_background
    dispose_title_graphics
  end

  def update
    super
    update_com_graphics
    if Input.trigger?(Input::DOWN)
      pre_mvmt
      if @sel_index == (Mm12::COMMAND_TEXT.size-1)
        @sel_index = 0
      else
        @sel_index += 1
      end
      post_mvmt
    elsif Input.trigger?(Input::UP)
      pre_mvmt
      if @sel_index == 0
        @sel_index = (Mm12::COMMAND_TEXT.size-1)
      else
        @sel_index -= 1
      end
      post_mvmt
    elsif Input.trigger?(Input::C)
      eval(Mm12::COMMAND_ACTION[@sel_index])
    end
  end

  def update_com_graphics
    @com_wait -= 1
    if @com_wait <= 0
      @com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_YES,60)
      @com_wait = 60
    end
    for sprt in @com_graphics
      sprt.update
    end
  end

  def post_mvmt
    Sound.play_cursor
    @com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_YES,60)
    @com_wait = 60
  end

  def pre_mvmt
    @com_graphics[@sel_index].flash(Mm12::COMMAND_COLOR_NOT,60)
  end

  def check_continue
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  end

  def create_title_graphics
    @back_sprite = Sprite.new
    @back_sprite.bitmap = Cache.title(Mm12::TITLE_GRAPHIC_NAME)
  end

  def dispose_title_graphics
    @back_sprite.bitmap.dispose
    @back_sprite.dispose
  end

  def create_command_graphics#window
    @command_window = Window_Base.new(250, 350, 44, 50)
    @command_window.opacity = 0
    @command_window.back_opacity = 0
    @command_window.contents_opacity = 0
    @command_window.openness = 0
    @com_graphics = []
    for index in 0..(Mm12::COMMAND_TEXT.size-1)
      @com_graphics[index] = Sprite.new
      @com_graphics[index].bitmap = Bitmap.new(200,200)
      @com_graphics[index].bitmap.font.name = Mm12::COMMAND_FONT
      @com_graphics[index].bitmap.font.size = Mm12::COMMAND_TEXT_SIZE
      @com_graphics[index].bitmap.font.color = Mm12::COMMAND_COLOR_NOT
      @com_graphics[index].bitmap.font.shadow = Mm12::COMMAND_SHADOW
      @com_graphics[index].bitmap.font.bold = Mm12::COMMAND_BOLD
      @com_graphics[index].bitmap.font.italic = Mm12::COMMAND_ITALIC
      @com_graphics[index].ox = -(Mm12::COMMAND_X[index])
      @com_graphics[index].oy = -(Mm12::COMMAND_Y[index])
      rect = @com_graphics[index].bitmap.text_size(Mm12::COMMAND_TEXT[index])
      @com_graphics[index].bitmap.draw_text(0, 0, rect.width, rect.height, Mm12::COMMAND_TEXT[index])
    end
  end

  def dispose_command_graphics
    for com in @com_graphics
      com.dispose unless com.nil?
    end
    @command_window.dispose
  end
 
  def close_command_window
    return
  end
end


CreeperCrisis - Sob 19 Cze, 2010 13:14

Nie wiem, czemu wszyscy mają problemy. Ja najpierw przeszukuję skrypt patrzę i tłumaczę :-) Więc nie wiem o co chodziło. :-)
bartek2940 - Czw 08 Lip, 2010 14:14

Jedno pytanie:
Da się zmienić kolor tekstu?

CreeperCrisis - Czw 08 Lip, 2010 15:04

bartek2940, patrz:
Kod:
  # Color of Command Text when not selected
  COMMAND_COLOR_NOT = Color.new(0,0,0)
 
  # Color Command Text flashes when selected
  COMMAND_COLOR_YES = Color.new(205,205,205)

bartek2940 - Czw 08 Lip, 2010 21:09

Cytat:
Kod:
# Color of Command Text when not selected
COMMAND_COLOR_NOT = Color.new(0,0,0)

# Color Command Text flashes when selected
COMMAND_COLOR_YES = Color.new(205,205,205)


THX

rywalek - Pią 02 Mar, 2012 21:34

Taa. A mi wyskakuje coś takiego:
Cytat:
Script '' line 85: TypeError occured.
Undefined superclass `Scene_Base'

Co zmienić? Pomoże ktoś?

EDIT: Już się połapałem. (źle wstawiłem :P)

Avara - Pon 29 Paź, 2012 15:37

Znalazłam w tym skrypcie bajerancką rzecz dla skryptera :!:
Kod:
eval("$scene = Scene_Map.new")
Nie wiedziałam, że istnieje taka funkcja :-D Oczywiście w nawiasie można sobie wpisać odniesienie do modułu np, gdzie tak jak tutaj polecenie zmiany sceny jest w cudzysłowiu, a ta opcja ten cudzysłów usuwa :aww:

makerowiec64 - Pon 07 Sty, 2013 08:00

Tak z ciekawosci...bo ja w skryptach dobry nie jestem...co robi ta linijka? A skrypt bardzo ladny :-)

Powered by phpBB modified by Przemo © 2003 phpBB Group