Jak dodać dodatkowy wybór w oknie Title - Antramx - 28-08-15 15:23
Widziałem poradnik, który pokazywał jak to zrobić w Ace poprzez modyfikowanie chyba Window_TitleCommand, ale o ile nie jestem ślepy to w VX tego nie ma.
Jest więc jakiś skrypt lub cokolwiek, co umożliwiałoby coś takiego?
RE: Jak dodać dodatkowy wybór w oknie Title - Mateusz SSJ8 - 28-08-15 17:32
Na początek przerób "Scene_Title", "Window_Selectable" i "Window_Command" na podobieństwo RPG Makera VX Ace. Nie musi być wiernie.
Skryptu nie ma, ale możesz to zrobić samemu. To, od czego radzę ci zacząć, to najwygodniejsza droga, ponieważ pozwala później łatwo wprowadzać nowe opcje na dowolnej pozycji, a standardowo musisz na końcu,chyba, że chcesz zmieniać wartości "@command_window.index" w "Scene_Title"
RE: Jak dodać dodatkowy wybór w oknie Title - Hobar - 30-08-15 13:01
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
Polecam ten skrypt mniej użerania się i w dodatku można go modyfikować o ile się znasz na skryptach
|