[XP] Błąd w napisach koncowych - Wersja do druku
Ultima Forum
[XP] Błąd w napisach koncowych - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [XP] Błąd w napisach koncowych (/Thread-XP-B%C5%82%C4%85d-w-napisach-koncowych)

Strony: 1 2


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, że
Cytat: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, że
Cytat: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