XP 스크립트

아오오니처럼 만드는 스크립트입니다.

저작권에 걸린다고 하면 바로 삭제하겠습니다.

출저 : 일본의 어떤 사이트

#==============================================================================
# ★ タイトル画面編集 var 1.7 (06.7.24)  by shun
#------------------------------------------------------------------------------
#   タイトル画面を編集するスクリプトです。
#   追加機能は、以下です。
#     ・ロゴグラフィックの挿入
#     ・タイトルグラフィックのランダム表示
#     ・簡易タイトル表示(スクリプトでタイトルを画面に表示)
#     ・コンティニューを使用するかどうか
#     ・ヘルプコマンドの追加
#     ・サイトコマンドの追加(タイトル画面から任意のサイトへ)
#     ・スクリーンコマンドの追加(画面サイズ切り替え)
#     ・トランジションの長さの設定
#
#   ランダム機能を使う場合、
#     ファイル名の語尾に二桁の数字(01,02...99)を付けて下さい。
#   ヘルプはヘルプグラフィックを表示するもので、サイズは640×480です。
#==============================================================================

module SIMP
  #============================================================================
  # □ 設定
  #============================================================================
  #
  # ロゴ
  #   ファイルは、Graphics/Pictures内(ピクチャーと同様にインポート)
  #
  LOGO = ""                         # ロゴのファイル名(無記入で使用しない)
  LOGO_SE = ""                      # SEのファイル名(無記入で使用しない)
  LOGO_SE_VOLUME = 80               # SEのボリューム
  LOGO_SE_PITCH = 100               # SEのピッチ
  #
  # ランダムグラフィック機能
  #
  RANDAM = false                    # ランダム機能を使う(true)か否(false)か
  #
  # 簡易タイトル表示
  #
  TITLE_SIMPLE_TEXT = ""            # タイトル名(無記入で使用しない)
  TITLE_SIMPLE_X = 0                # X座標
  TITLE_SIMPLE_Y = 0                # Y座標(多少ズレる)
  c = Color.new(255, 255, 255, 255) # 文字の色(赤の値,緑の値,青の値,不透明度)
  TITLE_SIMPLE_COLOR = c
  TITLE_SIMPLE_SIZE = 50            # 文字のサイズ
  TITLE_SIMPLE_FONT = "돋움"   # 文字のフォント名
  #
  # コマンドウィンドウ
  #
  TITLE_SKIN = "001-Blue01"         # ウィンドウスキン(拡張子省略可能)
  TITLE_X = 320 - 192 / 2           # X座標
  TITLE_Y = 188                     # Y座標
  TITLE_WIDTH = 192                 # 横幅
  TITLE_OPACITY = 0               # ウィンドウの不透明度(0~255)
  TITLE_BACK_OPACITY = 0          # ウィンドウ背景の不透明度(0~255)
  #
  # コマンド名
  #
  NEWGAME = "New Game"          # ニューゲーム
  CONTINUE = "Continue"       # コンティニュー
  HELP = "Help"                   # ヘルプ
  SITE = "Site"                   # サイト
  SCREEN = "Screen"             # 画面サイズ切り替え
  SHUTDOWN = "Shutdown"       # シャットダウン
  #
  # コンティニュー
  #
  CONTINUE_USE = true               # 使用する(true)か否(false)か
  #
  # 画面サイズ切り替え
  #
  SCREEN_USE = false                # 使用する(true)か否(false)か
  #
  # サイトのURL
  #
  SITE_URL = ""                     # http://から記入(無記入で使用しない)
  SITE_EXIT = true                  # 選択した時にゲームを終了するか否か
  #
  # ヘルプグラフィックのファイル名
  #   Graphics/Gameovers内(ゲームオーバーと同様にインポート)
  #
  HELP_FILE = ""                    # 拡張子は省略可能(無記入で使用しない)
  #
  # トランジション
  #  (初期値は8)
  #
  TITLE_TRANSITION1 = 20       # ロゴ表示のトランジションにかけるフレーム数
  TITLE_TRANSITION2 = 20       # ロゴ消去のトランジションにかけるフレーム数
  TITLE_TRANSITION3 = 20       # タイトル表示のトランジションにかけるフレーム数
end

class Scene_Title
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # 戦闘テストの場合
    if $BTEST
      battle_test
      return
    end   
    # データベースをロード
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # システムオブジェクトを作成
    $game_system = Game_System.new
    # スプライトを作成
    @sprite = Sprite.new
    # ロゴ画面を作成
    unless SIMP::LOGO == ""
      @sprite.bitmap = RPG::Cache.picture(SIMP::LOGO)
      @sprite.x = (640 - @sprite.bitmap.width) / 2
      @sprite.y = (480 - @sprite.bitmap.height) / 2
      # SEを演奏
      unless SIMP::LOGO_SE == ""
        filename = "Audio/SE/" + SIMP::LOGO_SE
        Audio.se_play(filename, SIMP::LOGO_SE_VOLUME, SIMP::LOGO_SE_PITCH)
      end
      # トランジション実行
      Graphics.transition(SIMP::TITLE_TRANSITION1)
      loop do
        # ゲーム画面を更新
        Graphics.update
        # 入力情報を更新
        Input.update
        # B ボタンか C ボタンが押されたら続行
        if Input.trigger?(Input::B) or Input.trigger?(Input::C)
          # トランジション準備
          Graphics.freeze
          # ロゴグラフィックを解放
          @sprite.bitmap.dispose
          # スプライトの座標を元に戻す
          @sprite.x = @sprite.y = 0
          # トランジション実行
          Graphics.transition(SIMP::TITLE_TRANSITION2)
          # トランジション準備
          Graphics.freeze
          break
        end
      end
    end
    # ランダム機能を使う場合
    if SIMP::RANDAM
      # 元となるファイル名を取得
      size = $data_system.title_name.size - 2
      basic = $data_system.title_name[0, size]
      # ファイル数を取得
      i = 1
      loop do
        i += 1
        n = "0" + i.to_s if i < 10
        # ファイルが存在しない場合、ループを中断
        unless title_exist?(basic + n)
          break
        end
      end
      # ファイル名を決定
      n = rand(i) + 1
      n = "0" + n.to_s if n < 10
      name = basic + n
    # ランダム機能を使わない場合
    else
      name = $data_system.title_name
    end
    # タイトルグラフィックを作成
    @sprite.bitmap = RPG::Cache.title(name)
    # 簡易タイトルを作成
    unless SIMP::TITLE_SIMPLE_TEXT == ""
      x = SIMP::TITLE_SIMPLE_X
      y = SIMP::TITLE_SIMPLE_Y
      height = SIMP::TITLE_SIMPLE_SIZE + 10
      @sprite.bitmap.font.color = SIMP::TITLE_SIMPLE_COLOR
      @sprite.bitmap.font.size = SIMP::TITLE_SIMPLE_SIZE
      @sprite.bitmap.font.name = SIMP::TITLE_SIMPLE_FONT
      @sprite.bitmap.draw_text(x, y, 640, height, SIMP::TITLE_SIMPLE_TEXT)
    end
    # コマンドウィンドウを作成
    s1 = SIMP::NEWGAME
    s2 = SIMP::CONTINUE
    s3 = SIMP::HELP
    s4 = SIMP::SITE
    s5 = SIMP::SCREEN
    s6 = SIMP::SHUTDOWN
    @commands = [s1]
    # コンティニューを使う場合
    if SIMP::CONTINUE_USE
      @commands.push(s2)
    end
    # ヘルプを使う場合
    unless SIMP::HELP_FILE == ""
      @commands.push(s3)
    end
    # サイトを使う場合
    unless SIMP::SITE_URL == ""
      @commands.push(s4)
    end
    # 画面サイズ切り替えを使う場合
    if SIMP::SCREEN_USE
      @commands.push(s5)
    end
    @commands.push(s6)
    @command_window = Window_Command.new(SIMP::TITLE_WIDTH, @commands)
    @command_window.windowskin = RPG::Cache.windowskin(SIMP::TITLE_SKIN)
    @command_window.opacity = SIMP::TITLE_OPACITY
    @command_window.back_opacity = SIMP::TITLE_BACK_OPACITY
    @command_window.x = SIMP::TITLE_X
    @command_window.y = SIMP::TITLE_Y
    # コンティニュー有効判定
    # セーブファイルがひとつでも存在するかどうかを調べる
    # 有効なら @continue_enabled を true、無効なら false にする
    @continue_enabled = false
    for i in 0..3
      if FileTest.exist?("Save#{i+1}.rxdata")
        @continue_enabled = true
      end
    end
    # コンティニューが有効な場合、カーソルをコンティニューに合わせる
    # 無効な場合、コンティニューの文字をグレー表示にする
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # タイトル BGM を演奏
    $game_system.bgm_play($data_system.title_bgm)
    # ME、BGS の演奏を停止
    Audio.me_stop
    Audio.bgs_stop
    # トランジション実行
    Graphics.transition(SIMP::TITLE_TRANSITION3)
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # コマンドウィンドウを解放
    @command_window.dispose
    # 簡易タイトルを解放
    @title.dispose unless SIMP::TITLE_SIMPLE_TEXT == ""
    # タイトルグラフィックを解放
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # ○ タイトルグラフィックの有無
  #--------------------------------------------------------------------------
  def title_exist?(filename)
    # 読み込みテスト
    begin
      RPG::Cache.title(filename)
    rescue
      return false
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # コマンドウィンドウを更新
    @command_window.update
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # コマンドウィンドウのカーソル位置で分岐
      case @commands[@command_window.index]
      when SIMP::NEWGAME   # ニューゲーム
        command_new_game
      when SIMP::CONTINUE  # コンティニュー
        command_continue
      when SIMP::HELP      # ヘルプ
        command_help
      when SIMP::SITE      # サイト
        command_site
      when SIMP::SCREEN    # スクリーン
        command_screen
      when SIMP::SHUTDOWN  # シャットダウン
        command_shutdown
      end
    end
  end
  #--------------------------------------------------------------------------
  # ○ コマンド : ヘルプ
  #--------------------------------------------------------------------------
  def command_help
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ヘルプ画面に切り替え
    $scene = Scene_Help.new
  end
  #--------------------------------------------------------------------------
  # ○ コマンド : サイト
  #--------------------------------------------------------------------------
  def command_site
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # ブラウザでサイトを開く
    Thread.start do
      system("explorer.exe", SIMP::SITE_URL)
    end
    # ゲームを終了
    exit if SIMP::SITE_EXIT
  end
  #--------------------------------------------------------------------------
  # ○ コマンド : スクリーン
  #--------------------------------------------------------------------------
  def command_screen
    # 決定 SE を演奏
    $game_system.se_play($data_system.decision_se)
    # 画面サイズ切り替え
    keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v'
    keybd.call 0xA4, 0, 0, 0
    keybd.call 13, 0, 0, 0
    keybd.call 13, 0, 2, 0
    keybd.call 0xA4, 0, 2, 0
  end
end

class Scene_Help
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # ヘルプグラフィックを作成
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.gameover(SIMP::HELP_FILE)
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # ヘルプグラフィックを解放
    @sprite.bitmap.dispose
    @sprite.dispose
    # トランジション実行
    Graphics.transition
    # トランジション準備
    Graphics.freeze
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # タイトル画面に切り替え
      $scene = Scene_Title.new
    end
  end
end

#==============================================================================
# ★ 情報
#------------------------------------------------------------------------------
#   製作
#     shun
#      HP : Simp                  (http://simp.u-abel.net)
#
#   参考
#      HP : Ambition              (http://milkey.net/~rpgxp)
#      HP : RPGTKOOLXP/RGSS Wiki  (http://tkool.web-ghost.net/wiki/wiki.cgi)
#==============================================================================

대충 적용해보니까...

SCRIPT.png

여기다 스킨을 아오오니 스킨으로 하면 더 좋죠.

예제 올려드립니다.

SCRIPT.png

음... 아무리 봐도 아오오니 스킨으로 안 하니까 어색하네...

스크립트에서 49번 줄에서 스킨을 수정할 수 있습니다.

스크립트 프로젝트.exe

 


 

Comment '43'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
24 타이틀/게임오버 타이틀 화면 메뉴 변경 24 file 백호 2009.02.22 5586
» 타이틀/게임오버 타이틀을 아오오니처럼 만들어보자! 43 file Tassy 2010.06.02 5426
22 타이틀/게임오버 타이틀 화면 커스터마이즈 (타이틀 메뉴 바꾸는 스크립트) 9 file №1 2012.08.04 4389
21 타이틀/게임오버 [펌]색다른 게임오버 스크립트 14 file 또라에몽 2010.05.09 4265
20 타이틀/게임오버 타이틀 가기전에 오프닝 이벤트 시작하기?! 13 file 백호 2009.02.21 3629
19 타이틀/게임오버 타이틀 전에 로고 띄우기, 홈피 띄우기, 메일 보내기 13 file 유아 2009.01.09 3553
18 타이틀/게임오버 애니메이션을 타이틀 화면에서 이용 15 file 백호 2009.02.21 3340
17 타이틀/게임오버 죽엇을경우 마을로이동하기 스크립트 16 file 백호 2009.02.22 3325
16 타이틀/게임오버 게임오버 화면 에서 커맨드 윈도우 스크립트 12 file 백호 2009.02.21 3031
15 타이틀/게임오버 타이틀 화면전 로고를 띄우는 스크립트 9 백호 2009.02.21 2728
14 타이틀/게임오버 타이틀에 글씨 박기 . 11 WMN 2008.03.17 2721
13 타이틀/게임오버 게..임..오버.. ps인간 2009.01.23 2636
12 타이틀/게임오버 타이틀 화면 연출 4 file 백호 2009.02.21 2285
11 타이틀/게임오버 타이틀 화면 커스터마이즈 1.11 by パラ犬 3 Alkaid 2010.09.29 2247
10 타이틀/게임오버 타이틀 랜덤 출력 기능 1.5 5 file 코아 코스튬 2010.09.29 2203
9 타이틀/게임오버 죽었을떄 마을로이동하기&생명초 사용하기 9 WMN 2008.03.17 2097
8 타이틀/게임오버 타이틀 화면에 옵션을 추가하는 스크립트 2 file 백호 2009.02.21 2091
7 타이틀/게임오버 타이틀 아주 미묘한 효과 5 백호 2009.02.22 1857
6 타이틀/게임오버 코아 코스튬씨의 타이틀 랜덤출력 1.5를 SDK2용으로 편집한 것(수정). file Alkaid 2010.09.29 1753
5 타이틀/게임오버 맵화면을 타이틀에 표시 백호 2009.02.21 1648
Board Pagination Prev 1 2 Next
/ 2