Napisy Końcowe [VXAce]
Autor
Wiadomość
Ayene
Ranga RM:
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Sro 18 Sty, 2012 18:18
Napisy Końcowe [VXAce]
~ Napisy Końcowe [VXAce] ~
Krótki opis:
Skrypt wyświetla napisy końcowe (tzw. Credits). Może zostać wykorzystany również do wyświetlania historii, opisu, itd.
Autor:
Ayene [yurika@o2.pl]
Kompatybilność:
RPG Maker VX Ace
Skrypt:
Spoiler:
Kod: #==============================================================================
# Napisy Końcowe [VXAce] / Scene Credits [VXAce]
#==============================================================================
# Autor: Ayene
# www.ultimateam.pl
# ver. 1.2 [18.01.2012]
#==============================================================================
# Skrypt wyświetla napisy końcowe (tzw. Credits).
# Może zostać wykorzystany również do wyświetlania historii, opisu, itd.
# Instalacja: Umieść skrypt nad Main.
#==============================================================================
# By wywołać napisy wpisz:
# SceneManager.call(Scene_Credits)
#==============================================================================
module AYENE
# Ustawienia czcionki
CREDITS_FONT = 'Comic Sans MS' # nazwa czcionki (folder Fonts)
CREDITS_SIZE = 30 # rozmiar czcionki
CREDITS_BOLD = true # pogrubienie
CREDITS_ITALIC = false # kursywa
WLH = 32 # interlinia
# Ustawienia muzyki w tle
CREDITS_BGM = '' # nazwa pliku z muzyką (folder Audio/BGM)
CREDITS_BGM_VOLUME = 100 # głośność
# Ustawienia tła obrazkowego (folder Graphics/Pitures)
BACKGROUND_IMAGE = '' # nazwa tła; '' wyłącza tło
BACKGROUND_OPACTIY = 255 # przezroczystość tła
# Formatowanie tesktu
# Poniżej można dodać własne kolory tekstu
TEXT_COLOR = { # 'kod' => kolor
'' => Color.new(255, 255, 255, 255), # <- nie usuwać - kolor domyślny
'<r>' => Color.new(255, 126, 126, 255),
'<y>' => Color.new(255, 253, 92, 255),
'<g>' => Color.new(92, 255, 150, 255)
}
BUTTON_CLOSE = true # włącza możliwość przewinięcia sceny za pomocą przycisku
NEXT_SCENE = Scene_Map # kolejna scena
PREVIOUS_SCENE = Scene_Title # poprzednia scena
# Dodawanie obrazków do tekstu
# Żeby obrazek nie nachodził na tekst wystarczy - pod linijką z kodem na jego
# wyświetlenie - dać większy odstęp.
IMAGE = { # 'kod' => nazwa obrazka
'<logo>' => 'logo',
'<ranga>' => 'ranga',
}
#--------------------------
# Tekst
#--------------------------
CREDIT = <<_CREDIT_
<logo>
<y>Tytuł Gry
<r>~ Reżyser ~
...
---------------
<r>~ Skrypty ~
...
---------------
<r>~ Grafika ~
...
---------------
<r>~ Dźwięk i muzyka ~
...
---------------
<r>~ Mapy ~
...
---------------
<g>www.ultimateam.pl
_CREDIT_
#--------------------------
# Koniec tekstu
#--------------------------
end
#==============================================================================
# ** Scene_Credits
#==============================================================================
class Scene_Credits < Scene_Base
include AYENE
#--------------------------------------------------------------------------
# * Start
#--------------------------------------------------------------------------
def start
super
if CREDITS_BGM != ''
Audio.bgm_play("Audio/BGM/" + CREDITS_BGM, CREDITS_BGM_VOLUME, 100)
end
create_background
create_credits
end
#--------------------------------------------------------------------------
# * Create Background
#--------------------------------------------------------------------------
def create_background
if BACKGROUND_IMAGE != ''
@background = Sprite.new
@background.bitmap = Cache.picture(BACKGROUND_IMAGE)
@background.opacity = BACKGROUND_OPACTIY
end
end
#--------------------------------------------------------------------------
# * Create Credits
#--------------------------------------------------------------------------
def create_credits
color = []
image = []
text = CREDIT.split(/\n/)
@credits = Sprite.new
@credits.bitmap = Bitmap.new(544, WLH * text.size)
@credits.z = 9999
@credits.oy = -426
text.each_index { |i|
color[i] = TEXT_COLOR[0]
TEXT_COLOR.each { |st, c|
if text[i].include?(st)
text[i].sub!(st, '')
color[i] = c
end
}
IMAGE.each { |st, im|
if text[i].include?(st)
text[i].sub!(st, '')
image[i] = im
end
}
if image[i] != nil
bitmap = Cache.picture(image[i])
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
@credits.bitmap.blt((544 - cw) / 2, i*WLH, bitmap, src_rect)
end
@credits.bitmap.font.name = CREDITS_FONT
@credits.bitmap.font.size = CREDITS_SIZE
@credits.bitmap.font.bold = CREDITS_BOLD
@credits.bitmap.font.italic = CREDITS_ITALIC
@credits.bitmap.font.color = color[i]
@credits.bitmap.draw_text(0, i*WLH, 544, 32, text[i], 1)
}
end
#--------------------------------------------------------------------------
# * Terminate
#--------------------------------------------------------------------------
def terminate
super
dispose_background
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
@credits.oy += 1
if BUTTON_CLOSE
next_scene if Input.trigger?(Input::C)
previous_scene if Input.trigger?(Input::B)
end
next_scene if @credits.oy >= @credits.bitmap.height
end
#--------------------------------------------------------------------------
# * Next Scene
#--------------------------------------------------------------------------
def next_scene
Audio.bgm_fade(1500) if CREDITS_BGM != ''
SceneManager.call(NEXT_SCENE)
end
#--------------------------------------------------------------------------
# * Previous Scene
#--------------------------------------------------------------------------
def previous_scene
Audio.bgm_fade(1500) if CREDITS_BGM != ''
SceneManager.call(PREVIOUS_SCENE)
end
#--------------------------------------------------------------------------
# * Dispose Background
#--------------------------------------------------------------------------
def dispose_background
unless @background.nil?
@background.bitmap.dispose
@background.dispose
end
@credits.bitmap.dispose
@credits.dispose
end
end
Screeny:
Dodatkowe informacje:
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.
________________________
Melvin
Preferowany:
Ranga RM:
Pomógł: 35 razy Dołączył: 23 Paź 2009 Posty: 1063
Wysłany: Sro 18 Sty, 2012 19:37
Supcio! Thx wielkie Ayene
________________________ MelvinClass:
Krucha
Preferowany:
Dołączył: 23 Mar 2012 Posty: 1 Skąd: Haczów
Wysłany: Nie 25 Mar, 2012 10:56
Dzięki tylko jest jeden błąd:
Jak jest linijka:
<g>www.ultimateam.pl
_CREDIT_ <- musi być przerwa rzeby wyglądało tak:
#--------------------------
# Koniec tekstu
#--------------------------
end
<g>www.ultimateam.pl
_CREDIT_
#--------------------------
# Koniec tekstu
#--------------------------
end
O i jeszcze jedno:
#--------------------------
# Tekst
#--------------------------
CREDIT = <<_CREDIT_
<logo> <- to logo chyba trzeba usunąć bo pisze mi błąd że nie ma pliku graficznego logo
A skrypt fajny polecam!
Finwe
Preferowany:
Pomógł: 34 razy Dołączył: 30 Lip 2011 Posty: 322 Skąd: Rzeszów
Wysłany: Nie 25 Mar, 2012 15:15
Może nie masz pliku "logo"?
Tu jest on potrzebny.
matitus09
Preferowany:
Dołączył: 01 Wrz 2010 Posty: 53
FireBlade
Preferowany:
Pomogła: 8 razy Dołączyła: 04 Kwi 2010 Posty: 243 Skąd: Opole
Wysłany: Sro 18 Kwi, 2012 15:24
matitus09 napisał/a: Mam błąd z drugim end'em.
Mam taki sam problem, ale użytkownik tego nie opisał zbyt dobrze.
Chodzi o błąd o treści
"Script 'ending' line 205:SynaxError occured
can't find string "_CREDIT_" anywhere before EOF"
Wyskakuje on nawet jak skopiowałam go bezpośrednio z postu i nic w nim nie zmieniałam.
________________________ "Nigdy się nie tłumacz, przyjaciele tego nie potrzebują a wrogowie i tak nie uwierzą.,"
"Oklaski są z łaski a brawa to wielka sprawa"
"Akcpetuję tylko wodę, mountain dew i coca colę zero..."
DeviantArt : http://divinekataroshie.deviantart.com/
Jaro
Preferowany:
Dołączył: 18 Cze 2010 Posty: 25
Wysłany: Nie 06 Maj, 2012 10:51
Mógłby ktoś zamieścić poprawiony skrypt? Nie działa nawet po poprawnym przeczytaniu instrukcji.
Ayene
Ranga RM:
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 06 Maj, 2012 11:09
Wszystko przejrzałam i skrypt działa bez zarzutów. Czy ktoś mógłby wrzucić demo z błędem?
________________________
CreeperCrisis
Preferowany:
Pomógł: 32 razy Dołączył: 01 Maj 2010 Posty: 395
Wysłany: Pią 18 Maj, 2012 22:29
Czy przypadkiem tego nie usunąłeś? ;)
niżej tekstu z creditsów jest "_CREDIT_" i ten u góry kod który podałem odnosi się właśnie do tej końcówki, kod urywa napisy, aby je wyłączyć ^^ Pozdrawiam po długiej nieobecności, CreeperCrisis a.k.a Sebastian :D
piotrb7
Preferowany:
Dołączył: 15 Sty 2012 Posty: 16
Wysłany: Pon 28 Sty, 2013 17:23
Po co ten skrypt, skoro jest wiadomość przewijana??
________________________
Ayene
Ranga RM:
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 03 Lut, 2013 20:32
piotrb7 , a niby po to by wyświetlić napisy z obrazkami albo dowolnie napisy sformatować (czcionka, wyrównanie, itd.).
________________________