RMVXA

스크립트 에러

by 가온누리55 posted Oct 01, 2017
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form


아래 스크립트를 넣은 게임을 실행했을 때 전에는 잘만 되다 갑자기 이런 오류가 떴습니다.


dkdk.PNG





 #==============================================================================

# ** TitleManagerEx (RPG Maker VX Ace)

#==============================================================================

# Name       : TitleManagerEx

# Author     : 러닝은빛(biud436)

# Date       : 2015.09.07

# Version    : 1.0

# Usage      : DataManager.ending_setup("엔딩1")

#==============================================================================

# ** Tool

#------------------------------------------------------------------------------

# 타이틀에서 불러올 그래픽 파일들을 설정합니다

#==============================================================================

module Tool

  SYS = load_data("Data/System.rvdata2")

  RESOURCE = {

  #--------------------------------------------------------------------------

  # * 해당 엔딩에 맞는 타이틀 파일을 설정해주세요(Title1, Title2)

  # "엔딩명" => ["타이틀1의 파일명","타이틀2의 파일명","BGM명"],

  #--------------------------------------------------------------------------  

  "기본타이틀" => [SYS.title1_name,SYS.title2_name,SYS.title_bgm],

  "배드엔딩" => ["그림2","","Dungeon2"],

  "트루엔딩" => ["그림1","그림6","Field3"],

  "노멀엔딩-하나" => ["그림1","그림5","Dungeon2"],

  "노멀엔딩-재수" => ["그림1","","Dungeon2"], 

  #-------------------------------------------------------------------------- 

  }

end

 

#==============================================================================

# ** Position (Add-On)

#==============================================================================

module Position

  

  # 스페셜 맵의 ID

  MAP_ID = 10

  

  # 플레이어의 시작 X

  X = 6

  

  # 플레이어의 시작 Y

  Y = 11 

  

  # 이동 좌표

  RESULT = [MAP_ID,X,Y]

end

 

#==============================================================================

# ** DataManager

#------------------------------------------------------------------------------

# 엔딩값을 temp.dat 파일로 저장합니다

#==============================================================================

module DataManager

  #--------------------------------------------------------------------------

  # * 엔딩을 설정합니다

  #--------------------------------------------------------------------------    

  def self.ending_setup(string)

    begin

      File.open("temp.dat","wb") do |file|

        Marshal.dump(publish_key(string),file)

      end

    rescue

      return false

    end

  end

  #--------------------------------------------------------------------------

  # * 파일을 로드합니다

  #--------------------------------------------------------------------------    

  def self.load_background

    begin

      File.open("temp.dat","rb") do |file|

        Marshal.load(file)

      end

    rescue

      ending_null

    end

  end

  #--------------------------------------------------------------------------

  # * 엔딩키를 찾을 수 없을 때

  #--------------------------------------------------------------------------    

  def self.ending_null

    ending = {}

    ending[:version] = 0

    ending[:username] = "NULL"

    ending[:n] = Tool::RESOURCE["기본타이틀"]

    ending

  end

  #--------------------------------------------------------------------------

  # * 엔딩키 발급(게임의 버전/사용자의 이름/리소스의 이름)

  #--------------------------------------------------------------------------      

  def self.publish_key(string)

    begin

      ending = {}

      ending[:version] = 1000

      ending[:username] = ENV["USERNAME"]

      ending[:n] = Tool::RESOURCE[string]

      ending

    rescue

      ending_null    

    end

  end

end

 

#==============================================================================

# ** Header

#------------------------------------------------------------------------------

# 엔딩값을 외부파일에서 불러옵니다

#==============================================================================

module Header

  @@background = nil

  #--------------------------------------------------------------------------

  # * 엔딩키값을 로드합니다

  #--------------------------------------------------------------------------    

  def self.load

    f = DataManager.load_background

    return f[:version],f[:username],f[:n]

  end

  #--------------------------------------------------------------------------

  # * 배경화면 정보를 설정합니다

  #--------------------------------------------------------------------------    

  def self.choose_background?

    if [load[0],load[1]] == [1000,ENV["USERNAME"]]

      load_background(load[2])

      return true

    else

      @@background = Tool::RESOURCE["기본타이틀"]

      return false

    end

  end 

  #--------------------------------------------------------------------------

  # * 배경화면을 불러옵니다

  #--------------------------------------------------------------------------    

  def self.load_background(set)

    @@background = set

  end

  #--------------------------------------------------------------------------

  # * 배경화면을 배포합니다

  #--------------------------------------------------------------------------    

  def self.export_background

    return @@background

  end

end

 

#==============================================================================

# ** Scene_Title

#------------------------------------------------------------------------------

# create_background 메소드를 오버라이딩 합니다

#==============================================================================

class Scene_Title < Scene_Base

  #--------------------------------------------------------------------------

  # * 배경화면을 생성합니다

  #--------------------------------------------------------------------------    

  def create_background

    @sprite1 = Sprite.new

    @sprite2 = Sprite.new

    choose_background

    center_sprite(@sprite1)

    center_sprite(@sprite2)

  end  

  #--------------------------------------------------------------------------

  # * 배경화면을 선택합니다

  #--------------------------------------------------------------------------    

  def choose_background

    if Header.choose_background?

      @sprite1.bitmap = Cache.title1(Header.export_background[0])

      @sprite2.bitmap = Cache.title2(Header.export_background[1])          

    else 

      # 엔딩키를 찾을 수 없으면 기본 배경화면을 생성합니다

      @sprite1.bitmap = Cache.title1(Header.export_background[0])

      @sprite2.bitmap = Cache.title2(Header.export_background[1])

    end

  end

  #--------------------------------------------------------------------------

  # * 배경음악을 변경합니다

  #--------------------------------------------------------------------------    

  def play_title_music

    if Header.choose_background?

      $data_system.title_bgm.name = Header.export_background[2]

    end    

    $data_system.title_bgm.play

    RPG::BGS.stop

    RPG::ME.stop

  end  

end

 

#==============================================================================

# ** Header (Add-On)

#==============================================================================

module Header

  def self.special_menu?

    [load[0],load[1]] == [1000,ENV["USERNAME"]]

  end

end

 

#==============================================================================

# ** DataManager (Add-On)

#==============================================================================

module DataManager

  def self.setup_special_game(*args)

    create_game_objects

    $game_party.setup_starting_members

    $game_map.setup(args[0])

    $game_player.moveto(args[1], args[2])

    $game_player.refresh

    Graphics.frame_count = 0

  end  

end

 

#==============================================================================

# ** Window_TitleCommand (Add-On)

#==============================================================================

class Window_TitleCommand

  def alignment

    return 1

  end

  def make_command_list

    add_command(Vocab::new_game, :new_game)

    add_command(Vocab::continue, :continue, continue_enabled)

    add_command("아무도 알지 못했던 비밀",:special_menu) if Header.special_menu?

    add_command(Vocab::shutdown, :shutdown)

  end  

end

 

#==============================================================================

# ** Scene_Title (Add-On)

#==============================================================================

class Scene_Title

  alias thou_create_command_window create_command_window

  def create_command_window

    thou_create_command_window

    set_menu if Header.special_menu?

  end

  def set_menu

    @command_window.set_handler(:special_menu, method(:special_menu))

  end

  def special_menu

    DataManager.setup_special_game(*Position::RESULT)

    close_command_window

    fadeout_all

    $game_map.autoplay

    SceneManager.goto(Scene_Map)

  end

end


 

 

 

 

 도와주세요 고수님들 ㅠㅠ

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.