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
1021 아이템 흠..몬스터도감말고 아이템도감~ 9 백호 2009.02.21 2028
1020 전투 흠.. 아직도 이 스크립트가 없군요 ㅋㅋ(제가올림..) 1 file 백호 2009.02.21 3335
1019 전투 횡스크롤형식의 스크립트 7 백호 2009.02.21 2973
1018 기타 횡스크롤 스크립트 한국말 번역. 15 file 백호 2009.02.21 3311
1017 기타 회복으로 데미지를 받는 좀비 스크립트 7 백호 2009.02.22 2004
1016 메뉴 화살표 모양 셀렉트 커서 사용 2 백호 2009.02.22 2118
1015 그래픽 화면을 부드럽게 해주는스크립트[ 아주 유용] 56 file - 하늘 - 2009.08.05 6561
1014 미니맵 화면에 축소된 미니맵을 표시하는 스크립트 - 한글 번역 - 6 file 백호 2009.02.21 2560
1013 화면에 축소된 맵을 표시하는 스크립트 7 file 백호 2009.02.21 2394
1012 기타 홈페이지 띄우기 (VX 상관없음.) 6 KNAVE 2009.08.25 2137
1011 메뉴 혹시있나해서-_-.. 대화창에 테두리치기 스크립트 7 백호 2009.02.22 2592
1010 기타 현재시간표시 33 file 코아 코스튬 2010.10.09 2529
1009 기타 현재 맵BGM을 그대로 전투 BGM으로 연결 from phylomortis.com 백호 2009.02.22 1180
1008 이름입력 한글조합입력기(영어가능) file 조규진1 2019.11.10 497
1007 메시지 한글자씩 뜨는 스크립트 6 백호 2009.02.21 3001
1006 키입력 한글입력스크립트 16 file 아방스 2007.11.09 11823
1005 키입력 한글입력기(자음, 모음 분리. 아마 중복일 듯...) 11 캉쿤 2011.09.13 3225
1004 키입력 한글입력기 6 백호 2009.02.22 4302
1003 이름입력 한글이름 입력기 스크립트 14 백호 2009.02.22 4205
1002 메시지 한글 채팅 스크립트 32 file こなた 2009.01.22 4947
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52