Błąd w napisach koncowych - dudekmenPL - 20-08-15 16:02
Siema moj problem polga na tym że po tym jak sie przewina do konca Creditsy wyskakuje błąd o treści
???? Spriteset_Map'21 ??? NoMethodError ???????
undefined method `tilset_name'for nil:NilClass
Nie mam zielonego pojecia co jest źle zrobiłm wszystko wdgł poradnika Ayene z tego forum w stanie offline
Prosze o pomoc z góry dzięki
Kod:
#==============================================================================
# Napisy Końcowe [XP] / Scene Credits [XP]
#==============================================================================
# Autor: Ayene
# www.ultimateam.pl
# ver. 1.2 [15.07.2011]
#==============================================================================
# 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:
# $scene = Scene_Credits.new
#==============================================================================
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)
}
CREDITS_OUTLINE = Color.new(0, 0, 0, 255) # kolor obwódki tekstu
CREDITS_SHADOW = Color.new(0, 0, 0, 100) # kolor cienia
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>' => '',
'<ranga>' => 'ranga',
}
#--------------------------
# Tekst
#--------------------------
CREDIT = <<_CREDIT_
<logo>
<y>WIVITHIA
<r>~ Reżyser ~
Adrian Barniak
---------------
<r>~ Skrypty ~
Ayene
---------------
<r>~ Korekta~
Natalia Wójcik
---------------
<r>~ Dźwięk i muzyka ~
Biblioteko RMXP
---------------
<r>~ Testerzy ~
---------------
<g>~Wsparcie techniczne~
www.ultimateam.pl
_CREDIT_
#--------------------------
# Koniec tekstu
#--------------------------
end
#==============================================================================
# ** Bitmap
#==============================================================================
class Bitmap
include AYENE
#--------------------------------------------------------------------------
# * Draw Text Outline
#--------------------------------------------------------------------------
def draw_text_outline(x, y, width, height, text, align, color)
font.name = CREDITS_FONT
font.size = CREDITS_SIZE
font.bold = CREDITS_BOLD
font.italic = CREDITS_ITALIC
font.color = CREDITS_OUTLINE
draw_text(x + 1, y, width, height, text, align)
draw_text(x - 1, y, width, height, text, align)
draw_text(x, y + 1, width, height, text, align)
draw_text(x, y - 1, width, height, text, align)
font.color = CREDITS_SHADOW
draw_text(x + 2, y + 8, width, height, text, align)
font.color = color
draw_text(x, y, width, height, text, align)
end
end
#==============================================================================
# ** Scene_Credits
#==============================================================================
class Scene_Credits
include AYENE
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
color = []
image = []
if CREDITS_BGM != ''
Audio.bgm_play("Audio/BGM/" + CREDITS_BGM, CREDITS_BGM_VOLUME, 100)
end
if BACKGROUND_IMAGE != ''
@background = Sprite.new
@background.bitmap = RPG::Cache.picture(BACKGROUND_IMAGE)
@background.opacity = BACKGROUND_OPACTIY
end
text = CREDIT.split(/\n/)
@credits = Sprite.new
@credits.bitmap = Bitmap.new(640, WLH * text.size)
@credits.z = 9999
@credits.oy = -470
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 = RPG::Cache.picture(image[i])
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
@credits.bitmap.blt((640 - cw) / 2, i*WLH, bitmap, src_rect)
end
@credits.bitmap.draw_text_outline(0,i*WLH,640,32,text[i],1,color[i])
}
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
unless @background.nil?
@background.bitmap.dispose
@background.dispose
end
@credits.bitmap.dispose
@credits.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
@credits.oy += 1
if BUTTON_CLOSE
if Input.trigger?(Input::C)
next_scene
elsif Input.trigger?(Input::B)
previous_scene
end
end
if @credits.oy >= @credits.bitmap.height
next_scene
end
end
#--------------------------------------------------------------------------
# * Next Scene
#--------------------------------------------------------------------------
def next_scene
Audio.bgm_fade(1500) if CREDITS_BGM != ''
$scene = eval("#{NEXT_SCENE}.new")
end
#--------------------------------------------------------------------------
# * Previous Scene
#--------------------------------------------------------------------------
def previous_scene
Audio.bgm_fade(1500) if CREDITS_BGM != ''
$scene = eval("#{PREVIOUS_SCENE}.new")
end
end
RE: Błąd w napisach koncowych - Ann120 - 20-08-15 18:33
Sprobuj usunąć ten błąd.
RE: Błąd w napisach koncowych - dudekmenPL - 21-08-15 08:38
No fajnie ale jak ?
Tak brzmi linijka błędu
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
RE: Błąd w napisach koncowych - Ann120 - 21-08-15 08:56
Usuń tą linijkę.
RE: Błąd w napisach koncowych - Mateusz SSJ8 - 21-08-15 09:29
Informacja mówi, żeCytat:Przy wykonywaniu linijki 21 skryptu "Spriteset_Map" nastąpiła próba odczytania funkcji "tilset_name" ze zmiennej mającej wartość "nil"
A tak w ogóle, czy w błędzie na pewno miałeś "tilset_name", czy raczej "tileset_name"?
RE: Błąd w napisach koncowych - dudekmenPL - 21-08-15 13:48
(21-08-15 09:29)Mateusz SSJ8 napisał(a): Informacja mówi, żeCytat:Przy wykonywaniu linijki 21 skryptu "Spriteset_Map" nastąpiła próba odczytania funkcji "tilset_name" ze zmiennej mającej wartość "nil"
A tak w ogóle, czy w błędzie na pewno miałeś "tilset_name", czy raczej "tileset_name"?
Masz racje moja literówka ;/
Usunięcie linijki nic nie dało.Możliwe że to przez Polską wersje rgp xp ?
RE: Błąd w napisach koncowych - Mateusz SSJ8 - 21-08-15 15:17
W którym momencie wywala ci błąd? Może jakaś funkcja w napisach końcowych ma zostać wywołana i stąd ten błąd?
RE: Błąd w napisach koncowych - ADI - 21-08-15 15:55
Sprawdziłem u siebie i wszystko działa tak jak należy XD
Ten umieściłeś kod nad 'Main' czy wklepałeś to w nowym polu?
Korzystasz może z jakichś innych skryptów? <Podejrzewam że coś się gryzie ze sobą :D
RE: Błąd w napisach koncowych - dudekmenPL - 21-08-15 18:36
Błąd wywala mi po tym jak skończą sie napisy i ma wrócić do menu
inne skrypty
:Paski HP i SP
:Auto Font Install
RE: Błąd w napisach koncowych - ADI - 21-08-15 19:22
Dobra, czaje o co chodzi...
Myślałem że CHCESZ aby po skończonych napisach tepnęło nas na którąś mapkę etc...
A Ty chcesz do Menu się przenieść :P
Linijka 47:
NEXT_SCENE = Scene_Map = zamień 'Map' na 'Title'
To powodowało że skrypt próbował przenieść nas na mapkę, ale bez wybranego tilesetu (chyba) i dlatego wyskakiwał error XD
Powodzenia przy tworzeniu mój imienniku. Hah... :D
|