Project1

标题: 请问,TileA4的地图元件可以扩张么? [打印本页]

作者: 羽斗KID    时间: 2010-7-19 06:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: wsmyzc    时间: 2010-7-19 07:53
置顶,有图块扩张脚本吧
作者: 我的米呀    时间: 2010-7-19 09:11
据我所知,自动元件扩充不可……只能扩充TitleE……LZ还是多加取舍吧……
作者: 仲秋启明    时间: 2010-7-19 09:25
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 元件图块扩张 - KGC_TilesetExtension ◆ VX ◆
  3. #_/    ◇ Last update : 2008/07/13 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  图块变更、4方向通行、追加地形标志等功能。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ 设定项目 - Customize ★
  9. #==============================================================================

  10. module KGC
  11. module TilesetExtension
  12.   # ◆ 图块文件名开头
  13.   #  必要的元件图形文件名的开头。
  14.   TILE_IMAGE_PREFIX = "Tile"

  15.   # ◆ 元件预置
  16.   #  [SET <地图名>]使用的可能 。
  17.   TILE_PRESET = {}  # ← 这个不能删除!
  18.   # 从这里开始定义元件预置。
  19.   # ↓设定例子
  20.   TILE_PRESET["魔王之城"] = {
  21.     "A1"=>"A1-Maou",
  22.     "A2"=>"A2-Maou",
  23.     "B"=>"B-Maou",
  24.     "D"=>"D-Maou",
  25.   }
  26.   # 使用"魔王之城"作为地图名时,就使用此预置。

  27.   # ◆ 4方向通行・地形标志确认按钮(调试用)
  28.   #  このボタンを押すと、プレイヤーが立っている場所の4方向通行設定と
  29.   #  地形タグをダイアログに表示します。
  30.   #  如果作成nil,此功能就无效。
  31.   #   ※ 这个功能只有DEBUG模式下有效。
  32.   DEBUG_INFO_BUTTON = Input::F7
  33. end
  34. end

  35. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  36. $imported = {} if $imported == nil
  37. $imported["TilesetExtension"] = true

  38. if $data_mapinfos == nil
  39.   $data_mapinfos = load_data("Data/MapInfos.rvdata")
  40. end

  41. # 方向标志 (4方向通行对应标志)
  42. module DirectionFlag
  43.   DOWN  = 0x01
  44.   LEFT  = 0x02
  45.   RIGHT = 0x04
  46.   UP    = 0x08
  47. end

  48. module KGC::TilesetExtension
  49.   # 扩张元件套装的文件名
  50.   EX_RVDATA = "TilesetEx.rvdata"

  51.   # 正常表现
  52.   module Regexp
  53.     # 继承
  54.     INHERIT = /\[INHERIT\]/i
  55.     # 预置
  56.     PRESET = /\[SET ([\w\-]+)\]/i
  57.   end

  58.   # 缺省元件套装文件名
  59.   DEFAULT_FILENAME = {
  60.     "A1"=>"TileA1",
  61.     "A2"=>"TileA2",
  62.     "A3"=>"TileA3",
  63.     "A4"=>"TileA4",
  64.     "A5"=>"TileA5",
  65.     "B"=>"TileB",
  66.     "C"=>"TileC",
  67.     "D"=>"TileD",
  68.     "E"=>"TileE"
  69.   }
  70.   @@__filename = DEFAULT_FILENAME.dup

  71.   module_function
  72.   #--------------------------------------------------------------------------
  73.   # ○ 指定マップのタイル画像ファイル名初期化
  74.   #     map_id : マップ ID
  75.   #--------------------------------------------------------------------------
  76.   def init_tileset_filename(map_id)
  77.     @@__filename = get_converted_tileset_filename(map_id)
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ○ 変換後のタイル画像ファイル名を取得
  81.   #     map_id : マップ ID
  82.   #--------------------------------------------------------------------------
  83.   def get_converted_tileset_filename(map_id)
  84.     info = $data_mapinfos[map_id]
  85.     name = info.original_name
  86.     filename = DEFAULT_FILENAME.dup
  87.     if name =~ Regexp::INHERIT
  88.       # 継承する場合は親を調べる
  89.       parent_id = $data_mapinfos[map_id].parent_id
  90.       if parent_id > 0
  91.         filename = get_converted_tileset_filename(parent_id)
  92.       end
  93.     end
  94.     # 現マップの変換規則を適用
  95.     return convert_tileset_filename(filename, name)
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ○ タイル画像ファイル名変換
  99.   #     filename : ファイル名 (Hash)
  100.   #     map_name : マップ名
  101.   #--------------------------------------------------------------------------
  102.   def convert_tileset_filename(filename, map_name)
  103.     name_buf = filename.dup
  104.     # プリセット適用
  105.     presets = map_name.scan(Regexp::PRESET)
  106.     presets.each { |s|
  107.       if TILE_PRESET.has_key?(s[0])
  108.         TILE_PRESET[s[0]].each { |k, v|
  109.           name_buf[k] = TILE_IMAGE_PREFIX + v
  110.         }
  111.       end
  112.     }
  113.     # 置換
  114.     DEFAULT_FILENAME.keys.each { |key|
  115.       if map_name =~ /\[#{key} ([\w\-]+)\]/
  116.         name_buf[key] = TILE_IMAGE_PREFIX + $1
  117.       end
  118.     }
  119.     return name_buf
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ○ タイル画像ファイル名取得
  123.   #--------------------------------------------------------------------------
  124.   def get_tileset_filename
  125.     return @@__filename
  126.   end
  127. end

  128. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  129. #==============================================================================
  130. # □ KGC::Commands
  131. #==============================================================================

  132. module KGC
  133. module Commands
  134.   module_function
  135.   #--------------------------------------------------------------------------
  136.   # ○ 指定座標の地形タグ取得
  137.   #     x : マップの X 座標
  138.   #     y : マップの Y 座標
  139.   #     variable_id : 取得した地形タグを代入する変数の ID
  140.   #--------------------------------------------------------------------------
  141.   def get_terrain_tag(x, y, variable_id = 0)
  142.     tag = $game_map.terrain_tag(x, y)       # 指定位置のタグを取得
  143.     if variable_id > 0
  144.       $game_variables[variable_id] = tag    # 指定された変数に代入
  145.     end
  146.     return tag
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ○ 指定イベント ID の位置の地形タグ取得
  150.   #     event_id : イベント ID
  151.   #     variable_id : 取得した地形タグを代入する変数の ID
  152.   #--------------------------------------------------------------------------
  153.   def get_event_terrain_tag(event_id, variable_id = 0)
  154.     event = $game_map.events.values.find { |e| e.id == event_id }
  155.     if event == nil
  156.       # 該当するイベントが無ければ 0
  157.       tag = 0
  158.     else
  159.       tag = $game_map.terrain_tag(event.x, event.y)
  160.     end

  161.     # 指定された変数に代入
  162.     if variable_id > 0
  163.       $game_variables[variable_id] = tag
  164.     end
  165.     return tag
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ○ プレイヤーの位置の地形タグ取得
  169.   #     variable_id : 取得した地形タグを代入する変数の ID
  170.   #--------------------------------------------------------------------------
  171.   def get_player_terrain_tag(variable_id = 0)
  172.     tag = $game_map.terrain_tag($game_player.x, $game_player.y)

  173.     # 指定された変数に代入
  174.     if variable_id > 0
  175.       $game_variables[variable_id] = tag
  176.     end
  177.     return tag
  178.   end
  179. end
  180. end

  181. class Game_Interpreter
  182.   include KGC::Commands
  183. end

  184. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  185. #==============================================================================
  186. # ■ RPG::MapInfo
  187. #==============================================================================

  188. class RPG::MapInfo
  189.   #--------------------------------------------------------------------------
  190.   # ● マップ名取得
  191.   #--------------------------------------------------------------------------
  192.   def name
  193.     return @name.gsub(/\[.*\]/) { "" }
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ○ オリジナルマップ名取得
  197.   #--------------------------------------------------------------------------
  198.   def original_name
  199.     return @name
  200.   end
  201. end

  202. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  203. #==============================================================================
  204. # □ RPG::Tileset
  205. #------------------------------------------------------------------------------
  206. #   タイルセットの付加的情報を扱うクラスです。
  207. #==============================================================================

  208. class RPG::Tileset
  209.   #--------------------------------------------------------------------------
  210.   # ○ 定数
  211.   #--------------------------------------------------------------------------
  212.   TABLE_SIZE = 8192                       # 通行・地形タグテーブルのサイズ
  213.   #--------------------------------------------------------------------------
  214.   # ○ 公開インスタンス変数
  215.   #--------------------------------------------------------------------------
  216.   attr_accessor :version                  # 内部バージョン
  217.   attr_accessor :passages                 # 4 方向通行フラグ
  218.   attr_accessor :terrain_tags             # 地形タグ
  219.   #--------------------------------------------------------------------------
  220.   # ○ オブジェクト初期化
  221.   #--------------------------------------------------------------------------
  222.   def initialize
  223.     @version = 1
  224.     @passages = Table.new(TABLE_SIZE)
  225.     @terrain_tags = Table.new(TABLE_SIZE)
  226.   end
  227. end

  228. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  229. #==============================================================================
  230. # ■ Game_Map
  231. #==============================================================================

  232. class Game_Map
  233.   LAYERS = [2, 1, 0]
  234.   #--------------------------------------------------------------------------
  235.   # ● セットアップ
  236.   #     map_id : マップ ID
  237.   #--------------------------------------------------------------------------
  238.   alias setup_KGC_TilesetExtension setup
  239.   def setup(map_id)
  240.     @map_id = map_id
  241.     init_tileset_filename

  242.     setup_KGC_TilesetExtension(map_id)
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ○ タイルセット画像ファイル名を初期化
  246.   #--------------------------------------------------------------------------
  247.   def init_tileset_filename
  248.     KGC::TilesetExtension.init_tileset_filename(@map_id)
  249.   end
  250.   #--------------------------------------------------------------------------
  251.   # ○ 指定座標の通行フラグ取得
  252.   #     x : X 座標
  253.   #     y : Y 座標
  254.   #--------------------------------------------------------------------------
  255.   def passage(x, y)
  256.     LAYERS.each { |i|
  257.       tile_id = @map.data[x, y, i]
  258.       return 0 if tile_id == nil
  259.       return $data_tileset.passages[tile_id]
  260.     }
  261.     return 0
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ○ 指定座標の地形タグ取得
  265.   #     x : X 座標
  266.   #     y : Y 座標
  267.   #--------------------------------------------------------------------------
  268.   def terrain_tag(x, y)
  269.     LAYERS.each { |i|
  270.       tile_id = @map.data[x, y, i]               # タイル ID を取得
  271.       return 0 if tile_id == nil                 # タイル ID 取得失敗 : タグなし
  272.       tag = $data_tileset.terrain_tags[tile_id]  # 地形タグを取得
  273.       return tag if tag > 0                      # タグが設定してあれば返す
  274.     }
  275.     return 0
  276.   end
  277.   #--------------------------------------------------------------------------
  278.   # ○ 指定方向通行可能判定
  279.   #     x : X 座標
  280.   #     y : Y 座標
  281.   #     d : 移動方向
  282.   #--------------------------------------------------------------------------
  283.   def passable_dir?(x, y, d)
  284.     # 方向 (0,2,4,6,8,10) から 通行フラグ (0,1,2,4,8,0) に変換
  285.     flag = (1 << (d / 2 - 1)) & 0x0F

  286.     LAYERS.each { |i|                         # レイヤーの上から順に調べる
  287.       tile_id = @map.data[x, y, i]            # タイル ID を取得
  288.       return false if tile_id == nil          # タイル ID 取得失敗 : 通行不可
  289.       pass = $data_tileset.passages[tile_id]  # タイルセットの通行属性を取得
  290.       return false if pass & flag != 0x00     # フラグが立っていたら通行不可
  291.     }
  292.     return true
  293.   end
  294. end

  295. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  296. #==============================================================================
  297. # ■ Game_Character
  298. #==============================================================================

  299. class Game_Character
  300.   #--------------------------------------------------------------------------
  301.   # ○ 通行可能判定
  302.   #     x : X 座標
  303.   #     y : Y 座標
  304.   #     d : 移動方向 (省略時: 10)
  305.   #--------------------------------------------------------------------------
  306.   def passable?(x, y, d = 10)
  307.     nx = moved_x(x, d)
  308.     ny = moved_y(y, d)
  309.     nx = $game_map.round_x(nx)                         # 横方向ループ補正
  310.     ny = $game_map.round_y(ny)                         # 縦方向ループ補正
  311.     return false unless $game_map.valid?(nx, ny)       # マップ外?
  312.     return true if @through or debug_through?          # すり抜け ON?
  313.     return false unless map_passable?(x, y, d)         # 指定方向に移動不能?
  314.     return false unless map_passable?(nx, ny, 10 - d)  # 移動先が進入不能?
  315.     return false if collide_with_characters?(nx, ny)   # キャラクターに衝突?
  316.     return true                                        # 通行可
  317.   end
  318.   #--------------------------------------------------------------------------
  319.   # ○ 移動後の X 座標算出
  320.   #     x : X 座標
  321.   #     d : 移動方向
  322.   #    移動後の X 座標を計算する。
  323.   #--------------------------------------------------------------------------
  324.   def moved_x(x, d)
  325.     return x + (d == 6 ? 1 : d == 4 ? -1 : 0)
  326.   end
  327.   #--------------------------------------------------------------------------
  328.   # ○ 移動後の Y 座標算出
  329.   #     y : Y 座標
  330.   #     d : 移動方向
  331.   #    移動後の Y 座標を計算する。
  332.   #--------------------------------------------------------------------------
  333.   def moved_y(y, d)
  334.     return y + (d == 2 ? 1 : d == 8 ? -1 : 0)
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ○ マップ通行可能判定
  338.   #     x : X 座標
  339.   #     y : Y 座標
  340.   #     d : 移動方向
  341.   #    指定座標の指定した方向が通行可能かを取得する。
  342.   #--------------------------------------------------------------------------
  343.   def map_passable?(x, y, d)
  344.     return $game_map.passable?(x, y) && $game_map.passable_dir?(x, y, d)
  345.   end
  346.   #--------------------------------------------------------------------------
  347.   # ● 下に移動
  348.   #     turn_ok : その場での向き変更を許可
  349.   #--------------------------------------------------------------------------
  350.   def move_down(turn_ok = true)
  351.     if passable?(@x, @y, 2)                 # 通行可能
  352.       turn_down
  353.       @y = $game_map.round_y(@y+1)
  354.       @real_y = (@y-1)*256
  355.       increase_steps
  356.       @move_failed = false
  357.     else                                    # 通行不可能
  358.       turn_down if turn_ok
  359.       check_event_trigger_touch(@x, @y+1)   # 接触イベントの起動判定
  360.       @move_failed = true
  361.     end
  362.   end
  363.   #--------------------------------------------------------------------------
  364.   # ● 左に移動
  365.   #     turn_ok : その場での向き変更を許可
  366.   #--------------------------------------------------------------------------
  367.   def move_left(turn_ok = true)
  368.     if passable?(@x, @y, 4)                 # 通行可能
  369.       turn_left
  370.       @x = $game_map.round_x(@x-1)
  371.       @real_x = (@x+1)*256
  372.       increase_steps
  373.       @move_failed = false
  374.     else                                    # 通行不可能
  375.       turn_left if turn_ok
  376.       check_event_trigger_touch(@x-1, @y)   # 接触イベントの起動判定
  377.       @move_failed = true
  378.     end
  379.   end
  380.   #--------------------------------------------------------------------------
  381.   # ● 右に移動
  382.   #     turn_ok : その場での向き変更を許可
  383.   #--------------------------------------------------------------------------
  384.   def move_right(turn_ok = true)
  385.     if passable?(@x, @y, 6)                 # 通行可能
  386.       turn_right
  387.       @x = $game_map.round_x(@x+1)
  388.       @real_x = (@x-1)*256
  389.       increase_steps
  390.       @move_failed = false
  391.     else                                    # 通行不可能
  392.       turn_right if turn_ok
  393.       check_event_trigger_touch(@x+1, @y)   # 接触イベントの起動判定
  394.       @move_failed = true
  395.     end
  396.   end
  397.   #--------------------------------------------------------------------------
  398.   # ● 上に移動
  399.   #     turn_ok : その場での向き変更を許可
  400.   #--------------------------------------------------------------------------
  401.   def move_up(turn_ok = true)
  402.     if passable?(@x, @y, 8)                 # 通行可能
  403.       turn_up
  404.       @y = $game_map.round_y(@y-1)
  405.       @real_y = (@y+1)*256
  406.       increase_steps
  407.       @move_failed = false
  408.     else                                    # 通行不可能
  409.       turn_up if turn_ok
  410.       check_event_trigger_touch(@x, @y-1)   # 接触イベントの起動判定
  411.       @move_failed = true
  412.     end
  413.   end
  414.   #--------------------------------------------------------------------------
  415.   # ● 左下に移動
  416.   #--------------------------------------------------------------------------
  417.   def move_lower_left
  418.     unless @direction_fix
  419.       @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
  420.     end
  421.     if (passable?(@x, @y, 2) && passable?(@x, @y+1, 4)) ||
  422.        (passable?(@x, @y, 4) && passable?(@x-1, @y, 2))
  423.       @x -= 1
  424.       @y += 1
  425.       increase_steps
  426.       @move_failed = false
  427.     else
  428.       @move_failed = true
  429.     end
  430.   end
  431.   #--------------------------------------------------------------------------
  432.   # ● 右下に移動
  433.   #--------------------------------------------------------------------------
  434.   def move_lower_right
  435.     unless @direction_fix
  436.       @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
  437.     end
  438.     if (passable?(@x, @y, 2) && passable?(@x, @y+1, 6)) ||
  439.        (passable?(@x, @y, 6) && passable?(@x+1, @y, 2))
  440.       @x += 1
  441.       @y += 1
  442.       increase_steps
  443.       @move_failed = false
  444.     else
  445.       @move_failed = true
  446.     end
  447.   end
  448.   #--------------------------------------------------------------------------
  449.   # ● 左上に移動
  450.   #--------------------------------------------------------------------------
  451.   def move_upper_left
  452.     unless @direction_fix
  453.       @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
  454.     end
  455.     if (passable?(@x, @y, 8) && passable?(@x, @y-1, 4)) ||
  456.        (passable?(@x, @y, 4) && passable?(@x-1, @y, 8))
  457.       @x -= 1
  458.       @y -= 1
  459.       increase_steps
  460.       @move_failed = false
  461.     else
  462.       @move_failed = true
  463.     end
  464.   end
  465.   #--------------------------------------------------------------------------
  466.   # ● 右上に移動
  467.   #--------------------------------------------------------------------------
  468.   def move_upper_right
  469.     unless @direction_fix
  470.       @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
  471.     end
  472.     if (passable?(@x, @y, 8) && passable?(@x, @y-1, 6)) ||
  473.        (passable?(@x, @y, 6) && passable?(@x+1, @y, 8))
  474.       @x += 1
  475.       @y -= 1
  476.       increase_steps
  477.       @move_failed = false
  478.     else
  479.       @move_failed = true
  480.     end
  481.   end
  482. end

  483. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  484. #==============================================================================
  485. # ■ Game_Player
  486. #==============================================================================

  487. class Game_Player < Game_Character
  488.   #--------------------------------------------------------------------------
  489.   # ○ マップ通行可能判定
  490.   #     x : X 座標
  491.   #     y : Y 座標
  492.   #     d : 移動方向
  493.   #    指定座標の指定した方向が通行可能かを取得する。
  494.   #--------------------------------------------------------------------------
  495.   alias map_passable_KGC_TilesetExtension? map_passable?
  496.   def map_passable?(x, y, d)
  497.     return false unless map_passable_KGC_TilesetExtension?(x, y)

  498.     return $game_map.passable_dir?(x, y, d)
  499.   end

  500.   if $TEST && KGC::TilesetExtension::DEBUG_INFO_BUTTON != nil
  501.   #--------------------------------------------------------------------------
  502.   # ● フレーム更新
  503.   #--------------------------------------------------------------------------
  504.   alias update_KGC_TilesetExtension update
  505.   def update
  506.     update_KGC_TilesetExtension

  507.     if Input.trigger?(KGC::TilesetExtension::DEBUG_INFO_BUTTON)
  508.       show_passage_and_terrain_tag
  509.     end
  510.   end
  511.   #--------------------------------------------------------------------------
  512.   # ○ プレイヤー位置の通行フラグ・地形タグを表示
  513.   #--------------------------------------------------------------------------
  514.   def show_passage_and_terrain_tag
  515.     passage = $game_map.passage(x, y)
  516.     tag = $game_map.terrain_tag(x, y)

  517.     # デバッグ情報作成
  518.     s = "通行可能: "
  519.     s += "↓" if passage & DirectionFlag::DOWN  == 0x00
  520.     s += "←" if passage & DirectionFlag::LEFT  == 0x00
  521.     s += "→" if passage & DirectionFlag::RIGHT == 0x00
  522.     s += "↑" if passage & DirectionFlag::UP    == 0x00
  523.     s += "  地形タグ: #{tag}"

  524.     p s
  525.   end
  526.   end

  527. end

  528. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  529. #==============================================================================
  530. # ■ Sprite_Character
  531. #==============================================================================

  532. class Sprite_Character < Sprite_Base
  533.   #--------------------------------------------------------------------------
  534.   # ● 指定されたタイルが含まれるタイルセット画像の取得
  535.   #     tile_id : タイル ID
  536.   #--------------------------------------------------------------------------
  537.   def tileset_bitmap(tile_id)
  538.     filename = KGC::TilesetExtension.get_tileset_filename
  539.     set_number = tile_id / 256
  540.     return Cache.system(filename["B"]) if set_number == 0
  541.     return Cache.system(filename["C"]) if set_number == 1
  542.     return Cache.system(filename["D"]) if set_number == 2
  543.     return Cache.system(filename["E"]) if set_number == 3
  544.     return nil
  545.   end
  546. end

  547. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  548. #==============================================================================
  549. # ■ Spriteset_Map
  550. #==============================================================================

  551. class Spriteset_Map
  552.   #--------------------------------------------------------------------------
  553.   # ● タイルマップの作成
  554.   #--------------------------------------------------------------------------
  555.   def create_tilemap
  556.     filename = KGC::TilesetExtension.get_tileset_filename
  557.     @tilemap = Tilemap.new(@viewport1)
  558.     @tilemap.bitmaps[0] = Cache.system(filename["A1"])
  559.     @tilemap.bitmaps[1] = Cache.system(filename["A2"])
  560.     @tilemap.bitmaps[2] = Cache.system(filename["A3"])
  561.     @tilemap.bitmaps[3] = Cache.system(filename["A4"])
  562.     @tilemap.bitmaps[4] = Cache.system(filename["A5"])
  563.     @tilemap.bitmaps[5] = Cache.system(filename["B"])
  564.     @tilemap.bitmaps[6] = Cache.system(filename["C"])
  565.     @tilemap.bitmaps[7] = Cache.system(filename["D"])
  566.     @tilemap.bitmaps[8] = Cache.system(filename["E"])
  567.     @tilemap.map_data = $game_map.data
  568.     @tilemap.passages = $game_map.passages
  569.   end
  570. end

  571. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  572. #==============================================================================
  573. # ■ Scene_Title
  574. #==============================================================================

  575. class Scene_Title < Scene_Base
  576.   #--------------------------------------------------------------------------
  577.   # ● データベースのロード
  578.   #--------------------------------------------------------------------------
  579.   alias load_database_KGC_TilesetExtension load_database
  580.   def load_database
  581.     load_database_KGC_TilesetExtension

  582.     load_tileset
  583.   end
  584.   #--------------------------------------------------------------------------
  585.   # ○ タイルセット付加情報のロード
  586.   #--------------------------------------------------------------------------
  587.   def load_tileset
  588.     begin
  589.       $data_tileset = load_data("Data/#{KGC::TilesetExtension::EX_RVDATA}")
  590.     rescue
  591.       $data_tileset = RPG::Tileset.new
  592.     end
  593.   end
  594. end

  595. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  596. #==============================================================================
  597. # ■ Scene_File
  598. #==============================================================================

  599. class Scene_File < Scene_Base
  600.   #--------------------------------------------------------------------------
  601.   # ● セーブデータの読み込み
  602.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  603.   #--------------------------------------------------------------------------
  604.   alias read_save_data_KGC_TilesetExtension read_save_data
  605.   def read_save_data(file)
  606.     read_save_data_KGC_TilesetExtension(file)

  607.     $game_map.init_tileset_filename
  608.     Graphics.frame_reset
  609.   end
  610. end


复制代码

作者: 八云紫    时间: 2010-7-19 09:31
回复 仲秋启明 的帖子

只有这个脚本是不能使用的,应该还需要一个外带的软件来修改地图通行度,记得~~~


   
作者: 仲秋启明    时间: 2010-7-19 09:42
回复 魔女真利亞 的帖子


    当然记得,下载链接忘了,话说这个软件很麻烦的
作者: 羽斗KID    时间: 2010-7-19 09:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 仲秋启明    时间: 2010-7-19 10:00
回复 羽斗KID 的帖子


    软件:http://f44.aaa.livedoor.jp/~ytomy/cgi-bin/dl/dl.php?dl=vxtiletool
只能这样,或者期待RM下一版本
作者: 八云紫    时间: 2010-7-19 10:00
回复 羽斗KID 的帖子

方法一:添加到 E 图块去,不过前提是E图块有空间。
方法二:替换除了自动元件的其他任意不需要的图块。
方法三:替换掉一个不用的自动元件。不过前提是要注意图层。
方法四:使用脚本。
方法五:也是真利亚的游戏正在使用的方法,将元件添加到 XP 里去(是的,RM XP),在 XP 里画地图,然后截图,丢到 VX 里,配合三远景脚本(还是二远景脚本,忘记了)使用。
作者: 羽斗KID    时间: 2010-7-19 10:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 約脩亞    时间: 2010-8-25 00:45
回复

只有这个脚本是不能使用的,应该还需要一个外带的软件来修改地图通行度,记得~~~

     ...
魔女真利亞 发表于 2010-7-19 09:31

能说下具体的操作吗 脚本放哪里..软件和图块我都准备好了..






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1