设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 829|回复: 2
打印 上一主题 下一主题

[已经过期] 有没有挖墙这样的脚本?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2084
在线时间
664 小时
注册时间
2014-2-15
帖子
81
跳转到指定楼层
1
发表于 2017-12-16 20:17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 资深萝莉控 于 2017-12-17 11:58 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ DungeonRect
  3. #==============================================================================
  4. class DungeonRect
  5.   #--------------------------------------------------------------------------
  6.   # ● 公開インスタンス変数
  7.   #--------------------------------------------------------------------------
  8.   attr_reader   :room                     # 部屋
  9.   attr_accessor :lx                       # 矩形の左上x座標
  10.   attr_accessor :ly                       # 矩形の左上y座標
  11.   attr_accessor :hx                       # 矩形の右上x座標
  12.   attr_accessor :hy                       # 矩形の右上y座標
  13.   attr_accessor :done_split_h             # 横分割完了フラグ
  14.   attr_accessor :done_split_v             # 縦分割完了フラグ
  15.   #--------------------------------------------------------------------------
  16.   # ● オブジェクト初期化
  17.   #--------------------------------------------------------------------------
  18.   def initialize(lx, ly, hx, hy)   
  19.     @lx = lx
  20.     @ly = ly
  21.     @hx = hx
  22.     @hy = hy
  23.     @done_split_h = false
  24.     @done_split_v = false
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 部屋の作成
  28.   #--------------------------------------------------------------------------
  29.   def add_room(lx, ly, hx, hy)
  30.     @room = DungeonRoom.new(lx, ly, hx, hy)
  31.   end
  32. end
  33.  
  34. #==============================================================================
  35. # ■ DungeonRoom
  36. #==============================================================================
  37. class DungeonRoom
  38.   #--------------------------------------------------------------------------
  39.   # ● 公開インスタンス変数
  40.   #--------------------------------------------------------------------------
  41.   attr_accessor :lx                       # 部屋の左上x座標
  42.   attr_accessor :ly                       # 部屋の左上y座標
  43.   attr_accessor :hx                       # 部屋の右上x座標
  44.   attr_accessor :hy                       # 部屋の右上y座標
  45.   attr_accessor :discover                 # 部屋に入ったことがあるかどうか
  46.   #--------------------------------------------------------------------------
  47.   # ● オブジェクト初期化
  48.   #--------------------------------------------------------------------------
  49.   def initialize(lx, ly, hx, hy)
  50.     @lx = lx
  51.     @ly = ly
  52.     @hx = hx
  53.     @hy = hy
  54.     @discover = false
  55.   end
  56. end
  57.  
  58. #==============================================================================
  59. # ■ Game_Dungeon
  60. #==============================================================================
  61. class Game_Dungeon
  62.   #--------------------------------------------------------------------------
  63.   # ● 公開インスタンス変数
  64.   #--------------------------------------------------------------------------
  65.   attr_reader   :rects                    # 区画情報
  66.   attr_reader   :room_table               # 部屋&踏破情報テーブル
  67.   attr_reader   :curse_rate               # 装備以外の道具が呪われている確率
  68.   attr_reader   :sleep_rate               # モンスターが眠っている確率
  69.   attr_reader   :drop_rate                # モンスターの共通アイテムドロップ率
  70.   attr_reader   :floor_w                  # 余白を含まないフロアの幅
  71.   attr_reader   :floor_h                  # 余白を含まないフロアの高さ
  72.   attr_reader   :floor_bgm                # フロアのBGM
  73.   attr_reader   :floor_bgs                # フロアのBGS
  74.   attr_reader   :floor_house_bgm          # フロアのモンスターハウスBGM
  75.   attr_reader   :floor_shop_bgm           # フロアのお店BGM
  76.   attr_reader   :floor_thief_bgm          # フロアの泥棒BGM
  77.   attr_reader   :floor_shop               # お店の部屋ID
  78.   attr_reader   :floor_house              # モンスターハウスの部屋ID
  79.   attr_reader   :floor_shop_guard         # 番犬ID
  80.   #--------------------------------------------------------------------------
  81.   # ○ ランダムダンジョンの生成
  82.   #--------------------------------------------------------------------------
  83.   def create_dungeon
  84.     set_dungeon_params(@floor_id)
  85.     @map = RPG::Map.new(@floor_w + 16, @floor_h + 12)
  86.     if @many_room   # 部屋数最大フロアなら部屋サイズを計算
  87.       n = @floor_w / @rect_min
  88.       @many_rect_w = @rect_min + (@floor_w % @rect_min) / n
  89.       n = @floor_h / @rect_min
  90.       @many_rect_h = @rect_min + (@floor_h % @rect_min) / n
  91.     end
  92.     for x in 0...@map.width
  93.       for y in 0...@map.height
  94.         @map.data[x, y, 0] = @tile[2]
  95.       end
  96.     end
  97.     @rects = []
  98.     @couples = []
  99.     @grounds = []
  100.     @room_table = Table.new(@map.width, @map.height, 2)  # 部屋判定テーブルの作成
  101.     @rects.push(DungeonRect.new(8, 6, @map.width - 9, @map.height - 7))
  102.     split_rect(@rects[0])
  103.     i = 0
  104.     for rect in @rects        # 部屋の生成
  105.       if @many_room           # 部屋数が最大になるようにする
  106.         w = @many_rect_w - @room_margin * 2 - 1
  107.         h = @many_rect_h - @room_margin * 2 - 1
  108.         x = rect.lx + @room_margin
  109.         y = rect.ly + @room_margin
  110.       else
  111.         if rand(100) < @max_room_rate or @rects.size == 1 # 最高サイズ
  112.           w = rect.hx - rect.lx - @room_margin * 2
  113.           h = rect.hy - rect.ly - @room_margin * 2
  114.         else                                              # ランダム
  115.           w = rand((rect.hx - rect.lx - @room_margin * 2 + 1) - @room_min) + @room_min
  116.           h = rand((rect.hy - rect.ly - @room_margin * 2 + 1) - @room_min) + @room_min
  117.         end
  118.         x = rand(rect.hx - rect.lx - w - @room_margin * 2 + 1) + (rect.lx + @room_margin)
  119.         y = rand(rect.hy - rect.ly - h - @room_margin * 2 + 1) + (rect.ly + @room_margin)
  120.       end
  121.       rect.add_room(x, y, x + w, y + h)
  122.       set_ground(x, y, x + w, y + h)
  123.     end
  124.     couple_more     # 分割線を増やす
  125.     for couple in @couples    # 通路の生成
  126.       if couple[0] == 0     # 横分割の場合
  127.         x1 = couple[1].hx
  128.         y1 = rand(couple[1].room.hy - (couple[1].room.ly + 1)) + (couple[1].room.ly + 1)
  129.         x2 = couple[2].lx
  130.         y2 = rand(couple[2].room.hy - (couple[2].room.ly + 1)) + (couple[2].room.ly + 1)
  131.         next if @map.data[x1 - 1, y1 - 1, 0] == @tile[0]
  132.         next if @map.data[x1 - 1, y1 + 1, 0] == @tile[0]
  133.         next if @map.data[x2 + 1, y2 - 1, 0] == @tile[0]
  134.         next if @map.data[x2 + 1, y2 + 1, 0] == @tile[0]
  135.         set_ground(x1, y1, x2, y2)
  136.         set_ground(couple[1].room.hx, y1, x1, y1)
  137.         set_ground(couple[2].room.lx, y2, x2, y2)
  138.       else                  # 縦分割の場合
  139.         x1 = rand(couple[1].room.hx - (couple[1].room.lx + 1)) + (couple[1].room.lx + 1)
  140.         y1 = couple[1].hy
  141.         x2 = rand(couple[2].room.hx - (couple[2].room.lx + 1)) + (couple[2].room.lx + 1)
  142.         y2 = couple[2].ly
  143.         next if @map.data[x1 - 1, y1 - 1, 0] == @tile[0]
  144.         next if @map.data[x1 + 1, y1 - 1, 0] == @tile[0]
  145.         next if @map.data[x2 - 1, y2 + 1, 0] == @tile[0]
  146.         next if @map.data[x2 + 1, y2 + 1, 0] == @tile[0]
  147.         set_ground(x1, y1, x2, y2)
  148.         set_ground(x1, couple[1].room.hy, x1, y1)
  149.         set_ground(x2, couple[2].room.ly, x2, y2)
  150.       end
  151.     end
  152.     set_wall    # 壁のセット
  153.     for rect in @rects
  154.       for x in rect.room.lx..rect.room.hx
  155.         for y in rect.room.ly..rect.room.hy
  156.           @room_table[x, y, 0] = @room_table[x, y, 0] | 2 # 部屋フラグをセット
  157.           @map.data[x, y, 0] = @tile[1] if rand(32) == 0  # 別タイルを混ぜる
  158.         end
  159.       end
  160.     end
  161.     for i in 0...@rects.size
  162.       rect = @rects[i]
  163.       for x in rect.room.lx - 1..rect.room.hx + 1
  164.         for y in rect.room.ly - 1..rect.room.hy + 1
  165.           @room_table[x, y, 1] = i + 1    # 部屋IDをセット
  166.         end
  167.       end
  168.     end
  169.     set_shop    # お店の作成
  170.     set_house   # モンスターハウスの作成
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ○ ダンジョンパラメータのセット
  174.   #--------------------------------------------------------------------------
  175.   def set_dungeon_params(floor_id)
  176.     set_dungeon_params(DUNG::DG_BASE[floor_id]) if DUNG::DG_BASE[floor_id] != nil
  177.     if DUNG::DG_SIZE[floor_id] != nil
  178.       @floor_w = DUNG::DG_SIZE[floor_id][0]
  179.       @floor_h = DUNG::DG_SIZE[floor_id][1]
  180.     end
  181.     @room_min = DUNG::DG_ROOM_MIN[floor_id] if DUNG::DG_ROOM_MIN[floor_id] != nil
  182.     @room_margin = [DUNG::DG_ROOM_MARGIN[floor_id], 2].max if DUNG::DG_ROOM_MARGIN[floor_id] != nil
  183.     @rect_min = @room_min + @room_margin * 2
  184.     @nosplit_rate = DUNG::DG_NOSPLIT_RATE[floor_id] if DUNG::DG_NOSPLIT_RATE[floor_id] != nil
  185.     @add_couple_rate = DUNG::DG_ADD_COUPLE_RATE[floor_id] if DUNG::DG_ADD_COUPLE_RATE[floor_id] != nil
  186.     @many_room = (rand(100) < DUNG::DG_MANY_ROOM_RATE[floor_id]) if DUNG::DG_MANY_ROOM_RATE[floor_id] != nil
  187.     @max_room_rate = DUNG::DG_MAX_ROOM_RATE[floor_id] if DUNG::DG_MAX_ROOM_RATE[floor_id] != nil
  188.     if DUNG::DG_TILE[floor_id] != nil
  189.       @tile = [ DUNG::DG_TILE[floor_id][0],
  190.                 DUNG::DG_TILE[floor_id][0] + 64 - (DUNG::DG_TILE[floor_id][0] - 1552) / 16 * 8,
  191.                 DUNG::DG_TILE[floor_id][1], DUNG::DG_TILE[floor_id][1] + 394,
  192.                 DUNG::DG_TILE[floor_id][2], DUNG::DG_TILE[floor_id][3] ]
  193.     end
  194.     @curse_rate = DUNG::DG_CURSE_RATE[floor_id] if DUNG::DG_CURSE_RATE[floor_id] != nil
  195.     @sleep_rate = DUNG::DG_SLEEP_RATE[floor_id] if DUNG::DG_SLEEP_RATE[floor_id] != nil
  196.     @drop_rate = DUNG::DG_DROP_RATE[floor_id] if DUNG::DG_DROP_RATE[floor_id] != nil
  197.     @floor_bgm = DUNG::DG_BGM[floor_id] if DUNG::DG_BGM[floor_id] != nil
  198.  
  199.    # p "bbb"
  200.  
  201.     @floor_bgs = DUNG::DG_BGS[floor_id] if DUNG::DG_BGS[floor_id] != nil
  202.     @floor_house_bgm = DUNG::DG_HOUSE_BGM[floor_id] if DUNG::DG_HOUSE_BGM[floor_id] != nil
  203.     @floor_shop_bgm = DUNG::DG_SHOP_BGM[floor_id] if DUNG::DG_SHOP_BGM[floor_id] != nil
  204.     @floor_thief_bgm = DUNG::DG_THIEF_BGM[floor_id] if DUNG::DG_THIEF_BGM[floor_id] != nil
  205.     @floor_weather = DUNG::DG_WEATHER[floor_id] if DUNG::DG_WEATHER[floor_id] != nil
  206.     @floor_monster_num = DUNG::DG_MONSTER_NUM[floor_id] if DUNG::DG_MONSTER_NUM[floor_id] != nil
  207.     @floor_monster_max = DUNG::DG_MONSTER_MAX[floor_id] if DUNG::DG_MONSTER_MAX[floor_id] != nil
  208.  
  209.  
  210.    # p floor_id
  211.  
  212.     @floor_monster_table = DUNG::DG_MONSTER_TABLE[floor_id] if DUNG::DG_MONSTER_TABLE[floor_id] != nil
  213.     @floor_item_max = DUNG::DG_ITEM_MAX[floor_id] if DUNG::DG_ITEM_MAX[floor_id] != nil
  214.     @floor_item_table = DUNG::DG_ITEM_TABLE[floor_id] if DUNG::DG_ITEM_TABLE[floor_id] != nil
  215.     @floor_gold_rate = DUNG::DG_GOLD_RATE[floor_id] if DUNG::DG_GOLD_RATE[floor_id] != nil
  216.     @floor_trap_max = DUNG::DG_TRAP_MAX[floor_id] if DUNG::DG_TRAP_MAX[floor_id] != nil
  217.     @floor_trap_num = DUNG::DG_TRAP_NUM[floor_id] if DUNG::DG_TRAP_NUM[floor_id] != nil
  218.     @floor_trap_table = DUNG::DG_TRAP_TABLE[floor_id] if DUNG::DG_TRAP_TABLE[floor_id] != nil
  219.     @floor_repop_turn = DUNG::DG_REPOP_TURN[floor_id] if DUNG::DG_REPOP_TURN[floor_id] != nil
  220.     @floor_repop_rate = DUNG::DG_REPOP_RATE[floor_id] if DUNG::DG_REPOP_RATE[floor_id] != nil
  221.     @floor_shop_rate = DUNG::DG_SHOP_RATE[floor_id] if DUNG::DG_SHOP_RATE[floor_id] != nil
  222.     @floor_shop_keeper = DUNG::DG_SHOP_KEEPER[floor_id] if DUNG::DG_SHOP_KEEPER[floor_id] != nil
  223.     @floor_shop_guard = DUNG::DG_SHOP_GUARD[floor_id] if DUNG::DG_SHOP_GUARD[floor_id] != nil
  224.     @floor_house_rate = DUNG::DG_HOUSE_RATE[floor_id] if DUNG::DG_HOUSE_RATE[floor_id] != nil
  225.     @floor_house_monster_num = DUNG::DG_HOUSE_MONSTER_NUM[floor_id] if DUNG::DG_HOUSE_MONSTER_NUM[floor_id] != nil
  226.     @floor_house_item_num = DUNG::DG_HOUSE_ITEM_NUM[floor_id] if DUNG::DG_HOUSE_ITEM_NUM[floor_id] != nil
  227.     @floor_house_trap_num = DUNG::DG_HOUSE_TRAP_NUM[floor_id] if DUNG::DG_HOUSE_TRAP_NUM[floor_id] != nil
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # ○ ダンジョンの区分け
  231.   #--------------------------------------------------------------------------
  232.   def split_rect(parent_rect)
  233.     if rand(100) < @nosplit_rate and not @many_room
  234.       parent_rect.done_split_h = true
  235.       parent_rect.done_split_v = true
  236.     end
  237.     if parent_rect.hx - parent_rect.lx <= @rect_min * 2
  238.       parent_rect.done_split_h = true
  239.     end
  240.     if parent_rect.hy - parent_rect.ly <= @rect_min * 2
  241.       parent_rect.done_split_v = true
  242.     end
  243.     return if parent_rect.done_split_h and parent_rect.done_split_v
  244.     @rects.push(DungeonRect.new(parent_rect.lx, parent_rect.ly,
  245.     parent_rect.hx, parent_rect.hy))
  246.     if !parent_rect.done_split_h        # 横に分割
  247.       if @many_room                     # 部屋数が最大になるように分割する
  248.         split_x = parent_rect.lx + @many_rect_w
  249.       else                              # ランダム分割
  250.         split_x = rand((parent_rect.hx - @rect_min + 1) - (parent_rect.lx + @rect_min)) +
  251.         (parent_rect.lx + @rect_min)
  252.       end
  253.       parent_rect.hx = split_x
  254.       @rects[@rects.size - 1].lx = split_x
  255.       parent_rect.done_split_h = true
  256.       @couples.push([0, parent_rect, @rects[@rects.size - 1]])
  257.     elsif !parent_rect.done_split_v     # 縦に分割
  258.       if @many_room                     # 部屋数が最大になるように分割する
  259.         split_y = parent_rect.ly + @many_rect_h
  260.       else                              # ランダム分割
  261.         split_y = rand((parent_rect.hy - @rect_min + 1) - (parent_rect.ly + @rect_min)) +
  262.         (parent_rect.ly + @rect_min)
  263.       end
  264.       parent_rect.hy = split_y
  265.       @rects[@rects.size - 1].ly = split_y
  266.       parent_rect.done_split_v = true
  267.       @couples.push([1, parent_rect, @rects[@rects.size - 1]])
  268.     end
  269.     i = @rects.size - 1
  270.     split_rect(parent_rect)
  271.     split_rect(@rects[i])
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ○ 指定した矩形範囲を床にする
  275.   #--------------------------------------------------------------------------
  276.   def set_ground(lx, ly, hx, hy)
  277.     if lx > hx
  278.       x1 = hx
  279.       x2 = lx
  280.     else
  281.       x1 = lx
  282.       x2 = hx
  283.     end
  284.     if ly > hy
  285.       y1 = hy
  286.       y2 = ly
  287.     else
  288.       y1 = ly
  289.       y2 = hy
  290.     end
  291.     for x in x1..x2
  292.       for y in y1..y2
  293.         @map.data[x, y, 0] = @tile[0]
  294.         @room_table[x, y, 0] = @room_table[x, y, 0] | 9 # 通行可能&斜めフラグをセット
  295.       end
  296.     end
  297.     @grounds.push(DungeonRoom.new(x1, y1, x2, y2))  # 床を記録する
  298.   end
  299.   #--------------------------------------------------------------------------
  300.   # ○ 壁のセット
  301.   #--------------------------------------------------------------------------
  302.   def set_wall
  303.     for rect in @grounds
  304.       y = rect.ly - 1
  305.       for x in rect.lx - 1..rect.hx + 1
  306.         set_special_wall(x, y)
  307.       end
  308.     end
  309.     for rect in @grounds       # 壁グラフィックのセット
  310.       for x in rect.lx - 1..rect.hx + 1
  311.         set_wall_graph(x, rect.ly - 1)
  312.         set_wall_graph(x, rect.ly - 2)
  313.         set_wall_graph(x, rect.hy + 1)
  314.       end
  315.       for y in rect.ly - 1..rect.hy + 1
  316.         set_wall_graph(rect.lx - 1, y)
  317.         set_wall_graph(rect.hx + 1, y)
  318.       end
  319.     end
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ○ 特殊壁のセット
  323.   #--------------------------------------------------------------------------
  324.   def set_special_wall(x, y)
  325.     return if @room_table[x, y, 0] & 1 != 0
  326.     return if @room_table[x, y + 1, 0] & 1 == 0   # 下が通行不可能なら次へ
  327.     if same_tile?(x, y - 1, @tile[2])
  328.       @map.data[x, y, 0] = @tile[3]
  329.     else
  330.       @map.data[x, y, 0] = @tile[0]
  331.       @map.data[x, y, 2] = @tile[4]
  332.     end
  333.   end
  334.   #--------------------------------------------------------------------------
  335.   # ○ 壁グラフィックのセット
  336.   #--------------------------------------------------------------------------
  337.   def set_wall_graph(x, y)
  338.     if @map.data[x, y, 0] == @tile[2]   # 床タイプのオートタイル
  339.       n = 0
  340.       n += 1 unless same_tile?(x - 1, y, @tile[2])   # 左がない
  341.       n += 1 unless same_tile?(x + 1, y, @tile[2])   # 右がない
  342.       n += 1 unless same_tile?(x, y - 1, @tile[2])   # 上がない
  343.       n += 1 unless same_tile?(x, y + 1, @tile[2])   # 下がない
  344.       if n == 0
  345.         n += 1 unless same_tile?(x - 1, y - 1, @tile[2])
  346.         n += 2 unless same_tile?(x + 1, y - 1, @tile[2])
  347.         n += 4 unless same_tile?(x + 1, y + 1, @tile[2])
  348.         n += 8 unless same_tile?(x - 1, y + 1, @tile[2])
  349.       elsif n == 1
  350.         if !same_tile?(x - 1, y, @tile[2])      # 左がない
  351.           n = 16
  352.           n += 1 unless same_tile?(x + 1, y - 1, @tile[2])   # 右上がない
  353.           n += 2 unless same_tile?(x + 1, y + 1, @tile[2])   # 右下がない
  354.         elsif !same_tile?(x, y - 1, @tile[2])   # 上がない
  355.           n = 20
  356.           n += 1 unless same_tile?(x + 1, y + 1, @tile[2])   # 右下がない
  357.           n += 2 unless same_tile?(x - 1, y + 1, @tile[2])   # 左下がない
  358.         elsif !same_tile?(x + 1, y, @tile[2])   # 右がない
  359.           n = 24
  360.           n += 1 unless same_tile?(x - 1, y + 1, @tile[2])   # 左下がない
  361.           n += 2 unless same_tile?(x - 1, y - 1, @tile[2])   # 左上がない
  362.         else                                    # 下がない
  363.           n = 28
  364.           n += 1 unless same_tile?(x - 1, y - 1, @tile[2])   # 左上がない
  365.           n += 2 unless same_tile?(x + 1, y - 1, @tile[2])   # 右上がない
  366.         end
  367.       elsif n == 2
  368.         if !same_tile?(x - 1, y, @tile[2])
  369.           n = !same_tile?(x + 1, y, @tile[2]) ? 32 :
  370.               same_tile?(x, y - 1, @tile[2]) ? 40 : 34
  371.         else
  372.           n = same_tile?(x + 1, y, @tile[2]) ? 33 :
  373.               same_tile?(x, y - 1, @tile[2]) ? 38 : 36
  374.         end
  375.       elsif n == 3
  376.         n = same_tile?(x, y + 1, @tile[2]) ? 42 :
  377.             same_tile?(x + 1, y, @tile[2]) ? 43 :
  378.             same_tile?(x, y - 1, @tile[2]) ? 44 : 45
  379.       else
  380.         n = 46
  381.       end
  382.       @map.data[x, y, 0] += n
  383.     elsif @map.data[x, y, 0] == @tile[3]    # 壁タイプのオートタイル
  384.       if @map.data[x - 1, y, 0] == @tile[0] or
  385.          @map.data[x - 1, y, 0] == @tile[1]
  386.         @map.data[x, y, 0] += 1
  387.       end
  388.       if @map.data[x + 1, y, 0] == @tile[0] or
  389.          @map.data[x + 1, y, 0] == @tile[1]
  390.         @map.data[x, y, 0] += 4
  391.       end
  392.     end
  393.   end
  394.   #--------------------------------------------------------------------------
  395.   # ○ 指定座標にあるのが同じオートタイルかどうかを返す
  396.   #--------------------------------------------------------------------------
  397.   def same_tile?(x, y, id)
  398.     return true if y < 0      # 画面外なら同じタイルがあるとする
  399.     n = @map.data[x, y, 0]
  400.     return (n >= id and n < id + 48)
  401.   end
  402.   #--------------------------------------------------------------------------
  403.   # ○ 分割線を増やす
  404.   #--------------------------------------------------------------------------
  405.   def couple_more
  406.     rect_map = {}
  407.     for rect in @rects
  408.       for x in rect.lx...rect.hx
  409.         for y in rect.ly...rect.hy
  410.           rect_map[[x, y]] = rect if rect_map[[x, y]] == nil
  411.         end
  412.       end
  413.     end
  414.     for x in 8...@map.width - 10
  415.       for y in 6...@map.height - 8
  416.         if rect_map[[x, y]] != rect_map[[x + 1, y]]
  417.           if rand(100) < @add_couple_rate
  418.             @couples.push([0, rect_map[[x, y]], rect_map[[x + 1, y]]])
  419.           end
  420.         end
  421.         if rect_map[[x, y]] != rect_map[[x, y + 1]]
  422.           if rand(100) < @add_couple_rate
  423.             @couples.push([1, rect_map[[x, y]], rect_map[[x, y + 1]]])
  424.           end
  425.         end
  426.       end
  427.     end
  428.   end
  429.   #--------------------------------------------------------------------------
  430.   # ○ 指定した矩形の壁を壊す
  431.   #--------------------------------------------------------------------------
  432.   def delete_wall(lx, ly, hx, hy)
  433.     for x in lx..hx
  434.       for y in ly..hy
  435.         next unless valid?(x, y)                # 有効範囲外なら次へ
  436.         next if @room_table[x, y, 0] & 1 != 0   # 壁でなければ次へ
  437.         @map.data[x, y, 0] = @tile[0]
  438.         @map.data[x, y, 2] = 0
  439.         @room_table[x, y, 0] = @room_table[x, y, 0] | 9
  440.       end
  441.       set_special_wall(x, ly - 1)
  442.       set_special_wall(x, hy + 1)
  443.     end
  444.     for x in lx - 1..hx + 1
  445.       set_wall_graph(x, ly - 1)
  446.       set_wall_graph(x, ly - 2)
  447.       set_wall_graph(x, hy + 1)
  448.     end
  449.     for y in ly..hy
  450.       set_wall_graph(lx - 1, y)
  451.       set_wall_graph(hx + 1, y)
  452.     end
  453.   end
  454.   #--------------------------------------------------------------------------
  455.   # ○ すべての壁を壊す(大部屋)
  456.   #--------------------------------------------------------------------------
  457.   def delete_wall_all
  458.     @rects = []
  459.     @couples = []
  460.     @grounds = []
  461.     @rects.push(DungeonRect.new(8, 6, @map.width - 9, @map.height - 7))
  462.     @rects[0].add_room(8, 6, @map.width - 9, @map.height - 7)
  463.     set_ground(8, 6, @map.width - 9, @map.height - 7)
  464.     rect = @rects[0]
  465.     for x in rect.room.lx - 1..rect.room.hx + 1
  466.       for y in rect.room.ly - 1..rect.room.hy + 1
  467.         @room_table[x, y, 0] = @room_table[x, y, 0] | 2 # 部屋フラグを立てる
  468.         @room_table[x, y, 1] = 1            # 部屋IDをセット
  469.         @map.data[x, y, 2] = 0              # 特殊壁を削除
  470.       end
  471.     end
  472.     set_wall
  473.     if @floor_house >= 0      # モンスターハウス
  474.       @floor_house = 0
  475.       start_house unless house?
  476.     end
  477.     if @floor_shop >= 0       # お店
  478.       @floor_shop = 0
  479.       start_shop unless shop? or house?
  480.     end
  481.   end
  482.   #--------------------------------------------------------------------------
  483.   # ○ お店の作成
  484.   #--------------------------------------------------------------------------
  485.   def set_shop
  486.     @floor_shop = -1
  487.     return if rand(100) >= @floor_shop_rate
  488.     return if @rects.size <= 2                 # 部屋数によって制限
  489.     for i in 0...@rects.size
  490.       room = @rects[i].room
  491.       next if room.hx - room.lx < 4 or room.hy - room.ly < 4  # 部屋サイズ制限
  492.       n = 0
  493.       for x in room.lx..room.hx
  494.         n += 1 if @room_table[x, room.ly - 1, 0] & 1 != 0
  495.         n += 1 if @room_table[x, room.hy + 1, 0] & 1 != 0
  496.       end
  497.       for y in room.ly..room.hy
  498.         n += 1 if @room_table[room.lx - 1, y, 0] & 1 != 0
  499.         n += 1 if @room_table[room.hx + 1, y, 0] & 1 != 0
  500.       end
  501.       next if n >= 2        # 通路が2本以上あればお店を作らない
  502.       @floor_shop = i       # お店の部屋ID
  503.       return
  504.     end
  505.   end
  506.   #--------------------------------------------------------------------------
  507.   # ○ モンスターハウスの作成
  508.   #--------------------------------------------------------------------------
  509.   def set_house
  510.     @floor_house = -1
  511.     return if rand(100) >= @floor_house_rate
  512.     if @rects.size == 1
  513.       i = 0
  514.     else
  515.       i = rand(@rects.size)
  516.       i = (i + 1) % @rects.size if i == @floor_shop       # お店は除外する
  517.     end
  518.     @floor_house = i
  519.   end
  520. end
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Dungeon
  3. #==============================================================================
  4. class Scene_Dungeon < Scene_Base
  5.  
  6.   #--------------------------------------------------------------------------
  7.   # ● アイテムの効果
  8.   #--------------------------------------------------------------------------
  9.   def effect_item(ditem, target, user = nil)
  10.     note = ditem.item.note
  11.     user = target if user == nil
  12.  
  13.  
  14.   #  p ditem
  15. #~         # 帰還★追加
  16. #~     if note =~ /<帰還>/i
  17. #~       p"帰還ー"
  18. #~       $scene = Scene_Map.new
  19. #~       $game_temp.map_bgm.play
  20. #~       $game_temp.map_bgs.play
  21. #~     end   
  22.  
  23.     # HP回復
  24.     if ditem.item.hp_recovery > 0
  25.       n = ditem.item.hp_recovery
  26.       target.battler.hp += n
  27.       $game_temp.heap_message.push(sprintf(Vocab::DgHpRecover, target.name, n))
  28.     end
  29.  
  30.     # ダメージ
  31.     if ditem.item.base_damage > 0
  32.       target.animation_id = DUNG::ANIME_DAMAGE    # ダメージアニメーション
  33.       wait_for_animation
  34.       target.battler.make_obj_damage_value(user.battler, ditem.item)
  35.       target.battler.execute_damage(user.battler)
  36.       if target.battler.hp_damage == 0
  37.         text = "\\C[6]%s\\C[0]はダメージを受けない。"
  38.         $game_temp.heap_message.push(sprintf(text, target.name))
  39.       else
  40.         text = Vocab::DgHpDamage
  41.         $game_temp.heap_message.push(sprintf(text,
  42.         target.name, target.battler.hp_damage))
  43.         target.dead(user) if target.battler.dead?     # 死亡処理
  44.       end
  45.       damage_player(user) if target.is_a?(Game_DungeonPlayer)
  46.     end
  47.  
  48.     # 満腹度回復
  49.     if ditem.item.mp_recovery != 0
  50.       if target.is_a?(Game_DungeonPlayer)
  51.         $game_party.gain_energy(ditem.item.mp_recovery * 20)
  52.         if ditem.category == 80     # 食料の場合のメッセージ表示
  53.           if $game_party.energy_max?
  54.             $game_temp.heap_message.push(sprintf(Vocab::DgFoodMax, target.name))
  55.           else
  56.             $game_temp.heap_message.push(sprintf(Vocab::DgFood, target.name))
  57.           end
  58.         end
  59.       end
  60.     end
  61.  
  62.     # 最大HPの変化
  63.     if note =~ /<最大HP([\+\-\=])(\d+)>/i
  64.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  65.         maxhp = target.battler.maxhp
  66.         case $1
  67.         when '+'; target.battler.maxhp += $2.to_i
  68.         when '-'; target.battler.maxhp -= $2.to_i
  69.         when '='; target.battler.maxhp = $2.to_i
  70.         end
  71.         n = (target.battler.maxhp - maxhp).abs  # 最大HP変化量の絶対値
  72.         if target.battler.maxhp > maxhp       # 最大HPが上がった
  73.           $game_temp.heap_message.push(sprintf(
  74.           "\\C[6]%s\\C[0]の最大HPが\\C[4]%d\\C[0]上がった!", target.name, n))
  75.         elsif target.battler.maxhp < maxhp    # 最大HPが下がった
  76.           $game_temp.heap_message.push(sprintf(
  77.           "\\C[6]%s\\C[0]の最大HPが\\C[4]%d\\C[0]下がった。", target.name, n))
  78.         end
  79.       end
  80.     end
  81.  
  82.     # レベルの変化
  83.     if note =~ /<レベル([\+\-\=])(\d+)>/i
  84.       if target.is_a?(Game_DungeonPlayer)     # プレイヤーの場合
  85.         level = target.battler.level
  86.         case $1
  87.         when '+'
  88.           target.battler.change_level(level + $2.to_i, false)
  89.         when '-'
  90.           n = [$2.to_i, level - 1].max        # 下げられるレベルを取得
  91.           target.battler.change_level(level - $2.to_i, false) if n > 0
  92.         when '='
  93.           target.battler.change_level($2.to_i, false)
  94.         end
  95.         if target.battler.level > level       # レベルが上がった
  96.           Sound.play_levelup
  97.           $game_temp.heap_message.push(sprintf(
  98.           Vocab::DgLevelup, target.name, target.battler.level))
  99.         elsif target.battler.level < level    # レベルが下がった
  100.           Sound.play_leveldown
  101.           n = level - target.battler.level
  102.           $game_temp.heap_message.push(sprintf(
  103.           Vocab::DgLeveldown, target.name, n))
  104.         end
  105.       else                                    # モンスターの場合
  106.         case $1
  107.         when '+'; target.levelup($2.to_i)
  108.         when '-'; target.leveldown($2.to_i)
  109.         end
  110.       end
  111.     end
  112.  
  113.     # 最大満腹度の変化
  114.     if note =~ /<最大満腹度([\+\-\=])(\d+)>/i
  115.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  116.         maxenergy = $game_party.energy_max
  117.         case $1
  118.         when '+'; $game_party.gain_energy_max($2.to_i * 20)
  119.         when '-'; $game_party.gain_energy_max($2.to_i * -20)
  120.         when '='; $game_party.energy_max = $2.to_i * 20
  121.         end
  122.         n = (($game_party.energy_max - maxenergy) / 20).abs # 最大満腹度変化量の絶対値
  123.         if $game_party.energy_max > maxenergy       # 最大満腹度が上がった
  124.           $game_temp.heap_message.push(sprintf(
  125.           "\\C[6]%s\\C[0]の最大満腹度が\\C[4]%d\\C[0]上がった!", target.name, n))
  126.         elsif $game_party.energy_max < maxenergy    # 最大満腹度が下がった
  127.           $game_temp.heap_message.push(sprintf(
  128.           "\\C[6]%s\\C[0]の最大満腹度が\\C[4]%d\\C[0]%%下がった。", target.name, n))
  129.         end
  130.       end
  131.     end
  132.  
  133.     # ちからの変化
  134.     if note =~ /<ちから([\+\-\=])(\d+)>/i
  135.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  136.         case $1
  137.         when '+'
  138.           $game_party.gain_power($2.to_i)
  139.           $game_temp.heap_message.push(sprintf(
  140.           "\\C[6]%s\\C[0]のちからが回復した。", target.name))
  141.         when '-'
  142.           $game_party.gain_power(-$2.to_i)
  143.           $game_temp.heap_message.push(sprintf(
  144.           "\\C[6]%s\\C[0]のちからが下がった。", target.name))
  145.         when '='
  146.           $game_party.power = $2.to_i
  147.           $game_temp.heap_message.push(sprintf(
  148.           "\\C[6]%s\\C[0]のちからが\\C[4]%d\\C[0]になった。", target.name, $2.to_i))
  149.         end
  150.       end
  151.     end
  152.  
  153.     # 最大ちからの変化
  154.     if note =~ /<最大ちから([\+\-\=])(\d+)>/i
  155.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  156.         maxpower = $game_party.power_max
  157.         case $1
  158.         when '+'; $game_party.gain_power_max($2.to_i)
  159.         when '-'; $game_party.gain_power_max(-$2.to_i)
  160.         when '='; $game_party.power_max = $2.to_i
  161.         end
  162.         n = ($game_party.power_max - maxpower).abs  # 最大ちから変化量の絶対値
  163.         if $game_party.power_max > maxpower       # 最大ちからが上がった
  164.           $game_temp.heap_message.push(sprintf(
  165.           "\\C[6]%s\\C[0]の最大ちからが\\C[4]%d\\C[0]上がった!", target.name, n))
  166.         elsif $game_party.power_max < maxpower    # 最大ちからが下がった
  167.           $game_temp.heap_message.push(sprintf(
  168.           "\\C[6]%s\\C[0]の最大ちからが\\C[4]%d\\C[0]下がった。", target.name, n))
  169.         end
  170.       end
  171.     end
  172.  
  173.     # めぐすり
  174.     if ditem.item.plus_state_set.include?(DUNG::STATE_GODSIGHT)
  175.       target.battler.add_state(DUNG::STATE_GODSIGHT)
  176.       if target.is_a?(Game_DungeonPlayer)     # 全ワナ発見(プレイヤー限定
  177.         for trap in $game_dungeon.traps do trap.discover end
  178.         $game_temp.heap_message.push(sprintf(
  179.         "\\C[6]%s\\C[0]はものがよく見えるようになった。", target.name))
  180.       end
  181.     end
  182.  
  183.     # 鈍足、狂戦士、無敵、混乱、深い眠り、倍速、くちなし、パワーアップ、かなしばり
  184.     for id in [DUNG::STATE_SLOW, DUNG::STATE_BERSERK, DUNG::STATE_UNDEAD,
  185.                DUNG::STATE_CONFUSE, DUNG::STATE_DSLEEP, DUNG::STATE_FAST,
  186.                DUNG::STATE_SILENT, DUNG::STATE_POWERUP, DUNG::STATE_STOP]
  187.       if ditem.item.plus_state_set.include?(id)
  188.         target.battler.add_state(id)
  189.         state = $data_states[id]
  190.         $game_temp.heap_message.push(sprintf(state.message1, target.name))
  191.       end
  192.     end
  193.  
  194.     # 爆睡
  195.     if ditem.item.plus_state_set.include?(DUNG::STATE_HDSLEEP)
  196.       target.battler.add_state(DUNG::STATE_HDSLEEP)
  197.       target.battler.add_state(DUNG::STATE_FAST)
  198.       $game_temp.heap_message.push(sprintf(
  199.       "\\C[6]%s\\C[0]は深い眠りについた。", target.name))
  200.     end
  201.  
  202.     # 迷子
  203.     if note =~ /<迷子>/i
  204.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  205.         $game_dungeon.reset_map
  206.         @map_window.refresh_ground
  207.         $game_temp.refresh_map = true
  208.         @map_window.update
  209.         $game_temp.heap_message.push(sprintf(
  210.         "\\C[6]%s\\C[0]はマップを忘れてしまった。", target.name))
  211.       end
  212.     end
  213.  
  214.     # 松明
  215.     if note =~ /<松明>/i
  216.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  217.         $game_dungeon.change_floor_state(8, true) # フロアの松明効果をオン
  218.         $game_dungeon.complete_map            # 地図を完成させる
  219.         @map_window.refresh_ground
  220.         $game_temp.refresh_map = true
  221.         $game_temp.heap_message.push("フロア全体が明るくなった。")
  222.       end
  223.     end
  224.  
  225.     # 拾えず
  226.     if note =~ /<拾えず>/i
  227.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  228.         $game_dungeon.change_floor_state(16, true) # フロアの拾えず効果をオン
  229.         $game_temp.heap_message.push(sprintf(
  230.         "\\C[6]%s\\C[0]はアイテムが拾えなくなった。", target.name))
  231.       end
  232.     end
  233.  
  234.     # 大部屋
  235.     if note =~ /<大部屋>/i
  236.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  237.         $game_dungeon.delete_wall_all
  238.         $game_dungeon.draw_map($game_dplayer.x, $game_dplayer.y)
  239.         @map_window.refresh_ground
  240.         $game_temp.refresh_map = true
  241.         $game_temp.refresh_light = true
  242.         $game_temp.heap_message.push("フロアの壁がすべて崩れた。")
  243.       end
  244.     end
  245.  
  246.     # 大爆発 or 爆発
  247.     if note =~ /<大爆発>/i or note =~ /<爆発>/i
  248.       $game_dungeon.delete_wall(target.x - 1, target.y - 1,   # 周囲の壁破壊
  249.       target.x + 1, target.y + 1)
  250.       for monster in $game_dplayer.beside_characters(false)
  251.         monster.dead unless monster.is_a?(Game_DungeonPlayer) # 隣接キャラ消滅
  252.       end
  253.       for x in target.x - 1..target.x + 1
  254.         for y in target.y - 1..target.y + 1
  255.           item = $game_dungeon.item_xy(x, y)
  256.           item.erase if item != nil                 # 隣接アイテムを消滅させる
  257.         end
  258.       end
  259.       if target.is_a?(Game_DungeonPlayer)                     # プレイヤー限定
  260.         $game_dungeon.draw_map($game_dplayer.x, $game_dplayer.y)
  261.         $game_temp.refresh_map = true
  262.         if note =~ /<大爆発>/i
  263.           target.battler.hp = 1                               # HPを1にする
  264.         else
  265.           target.battler.hp /= 2                              # HPを半分にする
  266.         end
  267.       else
  268.         target.dead
  269.       end
  270.     end
  271.  
  272.     # 盾強化
  273.     if note =~ /<盾強化>/i
  274.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  275.         armor = $game_party.darmor
  276.         if armor == nil
  277.           $game_temp.heap_message.push("防具を装備していなかった。")
  278.         else
  279.           if rand(100) < 10       # 低確率で+3
  280.             $game_temp.heap_message.push(sprintf(
  281.             "ラッキー! %sが大幅に強化された。", armor.name))
  282.             armor.gain_plus(3)
  283.           else
  284.             $game_temp.heap_message.push(sprintf(
  285.             "%sが強化された。", armor.name))
  286.             armor.gain_plus(1)
  287.           end
  288.         end
  289.       end
  290.  
  291.   #━━━━━盾 表示更新━━━━━━━━━━━━━━━━━━━━
  292. $win2 = nil #盾
  293. GC.start
  294.  
  295. $soubi_kousin = true
  296. #━━━━━━━━━━━━━━━━━━━━━━━━━        
  297.  
  298.  
  299.  
  300.  
  301.  
  302.     end
  303.  
  304.     # 剣強化
  305.     if note =~ /<剣強化>/i
  306.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  307.         weapon = $game_party.dweapon
  308.         if weapon == nil
  309.           $game_temp.heap_message.push("武器を装備していなかった。")
  310.         else
  311.           if rand(100) < 10       # 低確率で+3
  312.             $game_temp.heap_message.push(sprintf(
  313.             "ラッキー! %sが大幅に強化された。", weapon.name))
  314.             weapon.gain_plus(3)
  315.           else
  316.             $game_temp.heap_message.push(sprintf(
  317.             "%sが強化された。", weapon.name))
  318.             weapon.gain_plus(1)
  319.           end
  320.         end
  321.       end
  322.  
  323. #━━━━━武器 表示更新━━━━━━━━━━━━━━━━━━━━
  324.     $win = nil
  325.     GC.start
  326. $soubi_kousin = true
  327. #━━━━━━━━━━━━━━━━━━━━━━━━━      
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.     end
  351.  
  352.     # ワナ増殖
  353.     if note =~ /<ワナ増殖>/i
  354.       for i in 0...10
  355.         x, y = $game_dungeon.random_pos(1)
  356.         $game_dungeon.add_trap(x, y, $game_dungeon.random_trap)
  357.       end
  358.       $game_temp.heap_message.push("フロアのワナが増えた。")
  359.     end
  360.  
  361.     # 全滅
  362.     if note =~ /<全滅>/i
  363.       for monster in $game_dungeon.monsters
  364.         next if monster.battler.dead?
  365.         next if monster.battler.state?(DUNG::STATE_SHOP_KEEPER)
  366.         monster.battler.hp = 0
  367.         monster.dead($game_dplayer)
  368.       end
  369.     end
  370.  
  371.     # 一時しのぎ
  372.     if note =~ /<一時しのぎ>/i
  373.       x, y = target.drop_pos($game_dungeon.stairs.x, $game_dungeon.stairs.y)
  374.       target.moveto(x, y) if x != nil
  375.       target.battler.add_state(DUNG::STATE_STOP)
  376.     end
  377.  
  378.     # 入れ替え
  379.     if note =~ /<入れ替え>/i
  380.       x = $game_dplayer.x
  381.       y = $game_dplayer.y
  382.       $game_dplayer.moveto(target.x, target.y)
  383.       target.moveto(x, y)
  384.     end
  385.  
  386.     # 装備はずし
  387.     if note =~ /<装備はずし>/i
  388.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  389.         if $game_party.equips.empty?
  390.           $game_temp.heap_message.push("しかしたいしたことはなかった。")
  391.         else
  392.           for item in $game_party.equips do item.change_equip(false) end
  393.           $game_temp.heap_message.push("装備がはずれてしまった。")
  394.         end
  395.       end
  396.     end
  397.  
  398.     # サビ
  399.     if note =~ /<サビ>/i
  400.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  401.         result = false
  402.         weapon = $game_party.dweapon
  403.         if weapon != nil and not weapon.coated?
  404.           weapon.gain_plus(-1)
  405.           result = true
  406.         end
  407.         armor = $game_party.darmor
  408.         if armor != nil and not armor.coated?
  409.           armor.gain_plus(-1)
  410.           result = true
  411.         end
  412.         if result
  413.           $game_temp.heap_message.push("装備が錆びてしまった。")
  414.         else
  415.           $game_temp.heap_message.push("しかしたいしたことはなかった。")
  416.         end
  417.       end
  418.     end
  419.  
  420.     # デロデロ
  421.     if note =~ /<デロデロ>/i
  422.       if target.is_a?(Game_DungeonPlayer)     # プレイヤー限定
  423.         if $game_party.spoil_ditem
  424.           $game_temp.heap_message.push("食料が腐ってしまった。")
  425.         else
  426.           $game_temp.heap_message.push("しかしたいしたことはなかった。")
  427.         end
  428.       end
  429.     end
  430.  
  431.     # 警報
  432.     if note =~ /<警報>/i
  433.       for monster in $game_dungeon.monsters
  434.         monster.battler.remove_state(DUNG::STATE_SLEEP)   # 浅い眠りを解除
  435.         monster.battler.remove_state(DUNG::STATE_DSLEEP)  # 深い眠りを解除
  436.         monster.battler.remove_state(DUNG::STATE_HDSLEEP) # 爆睡状態を解除
  437.         monster.battler.remove_state(DUNG::STATE_STOP)    # かなしばりを解除
  438.       end
  439.       $game_temp.heap_message.push("眠っていたモンスターが目を覚ました。")
  440.     end
  441.  
  442.     # 召喚
  443.     if note =~ /<召喚>/i
  444.       for x in target.x - 1..target.x + 1
  445.         for y in target.y - 1..target.y + 1
  446.           if target.passable?(x, y)
  447.             $game_dungeon.add_monster(x, y, $game_dungeon.random_monster, false)
  448.           end
  449.         end
  450.       end
  451.     end
  452.  
  453.     # ワープ
  454.     if note =~ /<ワープ>/i
  455.       x, y = $game_dungeon.random_pos(2)
  456.       target.moveto(x, y)
  457.     end
  458.  
  459. #~         # 帰還★追加
  460. #~     if note =~ /<帰還>/i
  461. #~       p"帰還ー"
  462. #~       $scene = Scene_Map.new
  463. #~       $game_temp.map_bgm.play
  464. #~       $game_temp.map_bgs.play
  465. #~     end
  466.  
  467.     if note =~ /<帰還>/i
  468.    #   p"帰還ー"
  469.  
  470.     #  $game_temp.heap_message.push("脱出の巻物を使った! スタート地点に戻れる!")
  471.  
  472.       $scene = Scene_Map.new
  473.   #    $game_temp.map_bgm.play
  474.    #   $game_temp.map_bgs.play
  475.       $game_temp.common_event_id = 7
  476.  
  477.  
  478.     end   
  479.  
  480.   end
  481.   #--------------------------------------------------------------------------
  482.   # ● アイテムに使うアイテムの効果
  483.   #--------------------------------------------------------------------------
  484.   def effect_item_for_item(ditem, target_index)
  485.     note = ditem.item.note
  486.     target_ditem = @item_window.ditem_index(target_index)
  487.  
  488. #p"帰還の巻物はなぜかこっちにくるので、ここに設定する いや、アイテムを「使用者」にしたらいけた"   
  489.  
  490.  
  491.         # 帰還★追加
  492. #~     if note =~ /<帰還>/i
  493. #~    #   p"帰還ー"
  494. #~  
  495. #~       $game_temp.heap_message.push("脱出の巻物を使った! スタート地点に戻れる!")
  496.  
  497. #~       $scene = Scene_Map.new
  498. #~   #    $game_temp.map_bgm.play
  499. #~    #   $game_temp.map_bgs.play
  500. #~       $game_temp.common_event_id = 7
  501. #~      
  502. #~      
  503. #~     end   
  504.  
  505.     # 識別
  506.     if note =~ /<識別>/i
  507.       if rand(100) < 15
  508.         for item in $game_party.ditems
  509.           item.change_judge(true)
  510.           $game_dungeon.judge_item(item)
  511.         end
  512.         $game_temp.heap_message.push("ラッキー! すべてのアイテムを識別できた。")
  513.       else
  514.         target_ditem.change_judge(true)
  515.         judge_item(target_ditem)
  516.       end
  517.     end
  518.  
  519.     # 解呪
  520.     if note =~ /<解呪>/i
  521.       if rand(100) < 15
  522.         for item in $game_party.ditems
  523.           item.change_curse(false)
  524.         end
  525.         $game_temp.heap_message.push("ラッキー! すべてのアイテムを解呪できた。")
  526.       else
  527.         if target_ditem.cursed?
  528.           target_ditem.change_curse(false)
  529.           $game_temp.heap_message.push(sprintf(
  530.           "%sの呪いが解けた。", target_ditem.name))
  531.         else
  532.           $game_temp.heap_message.push(sprintf(
  533.           "%sは呪われていなかった。", target_ditem.name))
  534.         end
  535.       end
  536.     end
  537.  
  538.     # 壷強化
  539.     if note =~ /<壷強化>/i
  540.       if target_ditem.category == 55
  541.         if target_ditem.plus == DUNG::POT_MAX
  542.           $game_temp.heap_message.push(sprintf(
  543.           "%sはこれ以上大きくできない。", target_ditem.name))
  544.         else
  545.           $game_temp.heap_message.push(sprintf(
  546.           "%sの容量が\\C[4]1\\C[0]増えた。", target_ditem.name))
  547.           target_ditem.gain_plus(1)
  548.         end
  549.       else
  550.         $game_temp.heap_message.push("しかし何も起こらなかった。")
  551.       end
  552.     end
  553.  
  554.     # メッキ
  555.     if note =~ /<メッキ>/i
  556.       if target_ditem.category >= 95    # 剣か盾のみ
  557.         $game_temp.heap_message.push(sprintf(
  558.         "%sは錆びに強くなった。", target_ditem.name))
  559.         target_ditem.change_coat(true)
  560.       else
  561.         $game_temp.heap_message.push("しかし何も起こらなかった。")
  562.       end
  563.     end
  564.  
  565.     # 吸引
  566.     if note =~ /<吸引>/i
  567.       if target_ditem.category == 55 and      # 中身の入った壷のみ
  568.          target_ditem.in_items.size > 0
  569.         while(target_ditem.in_items.size > 0)
  570.           in_item = target_ditem.in_items.pop
  571.           id = $game_dungeon.add_item($game_dplayer.x, $game_dplayer.y, in_item)
  572.           $game_dungeon.items[id].drop($game_dplayer.x, $game_dplayer.y)
  573.         end
  574.         $game_temp.heap_message.push("壷の中身を吸い出した。")
  575.       else
  576.         $game_temp.heap_message.push("しかし何も起こらなかった。")
  577.       end
  578.     end
  579.  
  580.   end
  581.   #--------------------------------------------------------------------------
  582.   # ● 壷に入れたときのアイテムの効果
  583.   #--------------------------------------------------------------------------
  584.   def effect_item_storage(ditem)
  585.     note = ditem.item.note
  586.  
  587.     # 底抜け
  588.     if note =~ /<底抜け>/i
  589.       ditem.in_items.pop    # 入れたアイテムを削除
  590.     end
  591.  
  592.     # 識別
  593.     if note =~ /<識別>/i
  594.       $game_dungeon.judge_item(ditem.in_items[ditem.in_items.size - 1])
  595.     end
  596.  
  597.     # 変化
  598.     if note =~ /<変化>/i
  599.       ditem.in_items.pop    # 入れたアイテムを削除
  600.       ditem.in_items.push($game_dungeon.random_item)  # ランダムアイテムを入れる
  601.     end
  602.  
  603.     # 分裂
  604.     if note =~ /<分裂>/i
  605.       if ditem.plus > 0     # 容量が残っていれば入れたアイテムをもうひとつ入れる
  606.         ditem.in_items.push(ditem.in_items[ditem.in_items.size - 1].clone)
  607.         ditem.gain_plus(-1)
  608.       end
  609.     end
  610.  
  611.     # 合成
  612.     if note =~ /<合成>/i
  613.       new_ditem = ditem.in_items[ditem.in_items.size - 1]   # 入れたアイテム
  614.       if ditem.in_items[ditem.in_items.size - 1].category == new_ditem.category
  615.         if new_ditem.category >= 95
  616.         end
  617.       end
  618.       ditem.in_items.pop    # 入れたアイテムを削除
  619.     end
  620.  
  621.   end
  622.  
  623.   #--------------------------------------------------------------------------
  624.   # ● 武器の効果
  625.   #     hit_flag  : 攻撃がモンスターに当たったかどうか
  626.   #--------------------------------------------------------------------------
  627.   def effect_weapon(hit_flag)
  628.     weapon = $game_party.dweapon
  629.     return if weapon == nil       # 素手なら終了
  630.     extends = weapon.extends + weapon.item.extends
  631.     for id in extends.uniq
  632.       next if id < 128
  633.       case id
  634.       when 128    # 掘る
  635.         x, y = $game_dplayer.pos_direction
  636.         if $game_dungeon.room_table[x, y, 0] & 1 == 0
  637.           $game_dungeon.delete_wall(x, y, x, y)
  638.         end
  639.       when 129    # 壊れる
  640.       when 135    # 使うたびに弱くなる
  641.       end
  642.     end
  643.   end
  644.  
  645. end
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 設定項目
  3. #
  4. # フロア全体サイズの補足
  5. #   地図の仕様上、縦サイズを横の75%程度に設定するといい感じになります。
  6. #   全体サイズの大きいフロアは作成に時間がかかります。
  7. #
  8. # 使用するタイルの補足
  9. #   [床, 壁, 1セル壁用特殊タイル, 階段]
  10. #   以上4つのタイルIDを設定してください。1セル壁用特殊タイルは上下を
  11. #   通行可能タイルにはさまれた壁で使用するもので、上層タイルを設定します。
  12. #   床(1552~1559, 1568~1575, 1584~1591)
  13. #   壁(5888,5936,5984~6220, 6656,6704~6692, 7424,7472~7760)48刻み
  14. #   特殊壁(536~543)
  15. #   階段(256~259, 264~267)
  16. #
  17. # モンスターハウス設定の補足
  18. #   狭い部屋がモンスターハウスになる場合、モンスター数は部屋面積の80%、
  19. #   ワナとアイテムは40%をそれぞれ上限とします。
  20. #==============================================================================
  21. module DUNG
  22.  
  23.   DIR_INPUT_DELAY   = 4       # 移動入力の遅延(大きいと斜め移動しやすくなる)
  24.   B_INPUT_DELAY     = 8       # Bボタンでのメニュー入力受付時間
  25.   USE_ROTATE        = true    # 演出にスプライトの回転を使う(falseで使わない)
  26.   MAP_HIDE          = true    # 向き変更時に地図を非表示にする(falseで常に表示)
  27.   AUTO_TURN         = true    # 攻撃してきた敵の方を向く機能(falseで使わない)
  28.   START_EFFECT_COUNT = 120    # ダンジョン開始演出の時間
  29.  
  30.   POWER_MAX         = 99      # 最大ちからの上限
  31.   ENERGY_MAX        = 250     # 最大満腹度の上限
  32.   AUTO_RECOVER_RATE = 100     # 最大HPをこの値で割った分が1ターンの回復量
  33.   HUNGRY_DAMAGE     = 5       # 空腹時にこの値ずつHPが減っていく
  34.   POT_MAX           = 9       # 壷の最大容量
  35.   THROW_DISTANCE    = 15      # 物を投げたときの飛距離
  36.   MAGIC_DISTANCE    = 15      # 魔法弾の飛距離
  37.   THROW_HIT_RATE    = 80      # 投げたものの命中率
  38.   TRAP_EXE_RATE     = 90      # 未発見ワナの起動確率
  39.   TRAP_EXE_RATE_DC  = 60      # 発見済みワナの起動確率
  40.  
  41.   # 特殊状態として利用するステートのIDを設定
  42.   STATE_SLEEP       = 17      # 浅い眠り
  43.   STATE_GODSIGHT    = 18      # よく見え
  44.   STATE_SLOW        = 19      # 鈍足状態
  45.   STATE_BERSERK     = 20      # 狂戦士
  46.   STATE_UNDEAD      = 21      # 無敵
  47.   STATE_CONFUSE     = 22      # 混乱
  48.   STATE_DSLEEP      = 23      # 深い眠り
  49.   STATE_FAST        = 24      # 倍速
  50.   STATE_HDSLEEP     = 25      # 爆睡
  51.   STATE_POWERUP     = 26      # パワーアップ
  52.   STATE_SHARE       = 27      # 痛み分け
  53.   STATE_STOP        = 28      # かなしばり
  54.   STATE_SILENT      = 29      # くちなし
  55.   STATE_FAKE        = 30      # 身代わり
  56.   STATE_SHOP_KEEPER = 31      # 店主
  57.   STATE_WAIT        = 32      # 待ち伏せ
  58.   STATE_RANDOM_MOVE = 33      # ふらふら移動
  59.   STATE_UNVISIBLE   = 34      # 不可視
  60.   STATE_REFLECT     = 35      # 魔法弾反射
  61.   STATE_FLAME       = 36      # 投擲無効
  62.   STATE_HEALER      = 37      # 魔物狙い
  63.   STATE_PASS_WALL   = 38      # 壁抜け
  64.   STATE_RUNAWAY     = 39      # 逃走
  65.   STATE_NOMOVE      = 40      # 移動しない
  66.  
  67.   GOLD_ICON         = 194     # お金のアイコンインデックス
  68.   CURSE_ICON        = 157     # 呪われたアイテムのアイコンインデックス
  69.   MAGIC_ICON        = 110     # 魔法弾のアイコンインデックス
  70.   HP_GAUGE_RATE     = 4       # HPゲージの1ドット当たりのHP量
  71.   HP_GAUGE_MIN      = 15      # HPゲージの長さの下限値
  72.  
  73.   ANIME_ATTACK      = 1       # 素手(or未設定)攻撃のアニメーションID
  74.   ANIME_DAMAGE      = 81      # 被ダメージアニメーションID
  75.   ANIME_EAT         = 82      # 食料を食べるアニメーションID
  76.   ANIME_DRINK       = 82      # 草を飲むアニメーションID
  77.   ANIME_READ        = 83      # 巻物を読むアニメーションID
  78.  
  79.   NOJUDGE_NAME_HERB = [
  80.     "あかい草", "みどり色の草", "あおい草", "き色の草", "もも色の草",
  81.     "みず色の草", "しろい草", "くろい草", "むらさき色の草", "べに色の草",
  82.     "しゅ色の草", "そら色の草", "こん色の草", "はい色の草", "ちゃ色の草",
  83.     "にじ色の草", "しろくろの草", "こうはくの草", "かっ色の草", "きみどりの草",
  84.     "はだ色の草", "色のない草"
  85.   ]
  86.   NOJUDGE_NAME_SCROLL = [
  87.     "イヌの巻物", "ネコの巻物", "サルの巻物", "キジの巻物", "ネズミの巻物",
  88.     "ゴリラの巻物", "パンダの巻物", "ラクダの巻物", "ウシの巻物", "トラの巻物",
  89.     "ウサギの巻物", "リュウの巻物", "ヘビの巻物", "ウマの巻物", "ヒツジの巻物",
  90.     "ニワトリの巻物", "イヌの巻物", "イノシシの巻物", "シカの巻物", "サイの巻物",
  91.     "キリンの巻物", "トカゲの巻物", "ライオンの巻物", "クマの巻物", "スズメの巻物",
  92.     "ツルの巻物", "ウグイスの巻物", "カエルの巻物", "カメの巻物", "オオカミの巻物",
  93.     "アルパカの巻物", "クジラの巻物"
  94.   ]
  95.   NOJUDGE_NAME_WAND = [
  96.     "ヒノキの杖", "カシの杖", "サクラの杖", "ウメの杖", "モミジの杖",
  97.     "マツの杖", "タケの杖", "イシの杖", "ヤナギの杖", "クリの杖",
  98.     "ホネの杖", "キバの杖", "スギの杖", "キリの杖", "セイドウの杖"
  99.   ]
  100.   NOJUDGE_NAME_POT = [
  101.     "ほそい壷", "ふとい壷", "まるい壷", "しかくい壷", "ひし型の壷",
  102.     "みかづき形の壷", "さんかくの壷", "たまご型の壷", "ほし型の壷", "はんげつ形の壷",
  103.     "だるま型の壷", "ひょうたん型の壷", "あさい壷", "ふかい壷", "くびれた壷",
  104.     "ゆがんだ壷", "でこぼこの壷", "かたむいた壷"
  105.   ]
  106.   NOJUDGE_NAME_RING = [
  107.     "ダイヤの指輪", "サファイアの指輪", "ルビーの指輪", "アメジストの指輪",
  108.     "エメラルドの指輪", "オパールの指輪", "トルコ石の指輪", "サンゴの指輪",
  109.     "ヒスイの指輪", "コハクの指輪", "メノウの指輪", "パールの指輪",
  110.     "ジルコニアの指輪", "トパーズの指輪", "ザクロ石の指輪", "ラピスラズリの指輪"
  111.   ]
  112.  
  113.   DG_BASE = {}                # 設定省略時に使う親フロア
  114.   DG_SIZE = {}                # フロア全体のサイズ
  115.   DG_ROOM_MIN = {}            # 部屋の最小サイズ
  116.   DG_ROOM_MARGIN = {}         # 部屋の周りの余白(部屋と区画の間隔です、下限2)
  117.   DG_NOSPLIT_RATE = {}        # 数値が大きいほど部屋数が少なくなりやすい(%)
  118.   DG_ADD_COUPLE_RATE = {}     # 数値が大きいほど通路が複雑になりやすい(%)
  119.   DG_MANY_ROOM_RATE = {}      # 部屋数が最大になるようにフロア作る確率(%)
  120.   DG_MAX_ROOM_RATE = {}       # 区画内での最高サイズの部屋を強制的に作る確率(%)
  121.   DG_TILE = {}                # 使用するタイル
  122.   DG_MONSTER_NUM = {}         # モンスターの初期配置数
  123.   DG_MONSTER_MAX = {}         # モンスターの最大数
  124.   DG_MONSTER_TABLE = {}       # 出現モンスター(エネミーIDと出現率の配列)
  125.   DG_ITEM_MAX = {}            # アイテム初期配置数の最大
  126.   DG_ITEM_TABLE = {}          # 出現アイテム(アイテムタイプ,ID,出現率の配列)
  127.   DG_GOLD_RATE = {}           # お金出現率(%)
  128.   DG_DROP_RATE = {}           # モンスターの共通アイテムドロップ率(1/n)
  129.   DG_TRAP_MAX = {}            # トラップの最大数
  130.   DG_TRAP_NUM = {}            # トラップの初期配置数
  131.   DG_TRAP_TABLE = {}          # 出現トラップ(ID,出現率の配列)
  132.   DG_CURSE_RATE = {}          # 剣と盾以外のものが呪われている確率
  133.   DG_SLEEP_RATE = {}          # 出現モンスターが眠っている確率
  134.   DG_REPOP_TURN = {}          # モンスター再出現間隔(経過するまで再出現判定なし)
  135.   DG_REPOP_RATE = {}          # モンスター再出現確率
  136.   DG_BGM = {}                 # フロアのBGM
  137.   DG_BGS = {}                 # フロアのBGS
  138.   DG_HOUSE_BGM = {}           # フロアのモンスターハウスBGM
  139.   DG_SHOP_BGM = {}            # フロアのお店BGM
  140.   DG_THIEF_BGM = {}           # フロアの泥棒BGM
  141.   DG_WEATHER = {}             # フロアの天候
  142.   DG_SHOP_RATE = {}           # お店の出現率
  143.   DG_SHOP_KEEPER = {}         # 店主のモンスターID
  144.   DG_SHOP_GUARD = {}          # 番犬のモンスターID
  145.   DG_HOUSE_RATE = {}          # モンスターハウス出現率
  146.   DG_HOUSE_MONSTER_NUM = {}   # モンスターハウスにいるモンスターの数
  147.   DG_HOUSE_ITEM_NUM = {}      # モンスターハウスにあるアイテムの数
  148.   DG_HOUSE_TRAP_NUM = {}      # モンスターハウスにあるワナの数
  149.  
  150.   DG_NAME = {}                # ダンジョンの名前
  151.   DG_FLOOR = {}               # ダンジョンのフロア構成
  152.   DG_JUDGE_ITEM = {}          # ダンジョンの識別済みアイテムカテゴリー
  153.  
  154.   #--------------------------------------------------------------------------
  155.   # ○ フロアパターン1の設定
  156.   #--------------------------------------------------------------------------
  157.   DG_BASE[1]            = nil # 設定省略時に使う親フロア
  158.   DG_SIZE[1]            = [50, 37]  # フロア全体のサイズ
  159.   DG_ROOM_MIN[1]        = 5   # 部屋の最小サイズ
  160.   DG_ROOM_MARGIN[1]     = 2   # 部屋の周りの余白(部屋と区画の間隔です、下限2)
  161.   DG_NOSPLIT_RATE[1]    = 10  # 数値が大きいほど部屋数が少なくなりやすい(%)
  162.   DG_ADD_COUPLE_RATE[1] = 4   # 数値が大きいほど通路が複雑になりやすい(%)
  163.   DG_MANY_ROOM_RATE[1]  = 10  # 部屋数が最大になるようにフロア作る確率(%)
  164.   DG_MAX_ROOM_RATE[1]   = 20  # 区画内での最高サイズの部屋を強制的に作る確率(%)
  165.   DG_TILE[1] = [1552, 5888, 536, 265] # 使用するタイルパターン
  166.   DG_MONSTER_NUM[1]     = 8   # モンスターの初期配置数
  167.   DG_MONSTER_MAX[1]     = 20#32  # モンスターの最大数
  168.   DG_MONSTER_TABLE[1] = [     # 出現モンスター
  169. #   [3, 10], [4, 8]
  170. [1, 10], [2, 10], [3, 10], [4, 10]
  171.   ]
  172.   DG_ITEM_MAX[1]        = 10  # アイテム初期配置数の最大
  173.   DG_ITEM_TABLE[1] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  174.   for i in 1..18    do DG_ITEM_TABLE[1].push([0, i, 5]) end    # 草
  175.   for i in 31..52   do DG_ITEM_TABLE[1].push([0, i, 5]) end    # 巻物
  176.   for i in 61..68   do DG_ITEM_TABLE[1].push([0, i, 5]) end    # 杖
  177.   for i in 81..85   do DG_ITEM_TABLE[1].push([0, i, 5]) end    # 壷
  178.   for i in 101..104 do DG_ITEM_TABLE[1].push([0, i, 5]) end    # 食料
  179.   for i in 111..113 do DG_ITEM_TABLE[1].push([0, i, 5]) end    # 矢
  180.  
  181.   for i in 1..9     do DG_ITEM_TABLE[1].push([1, i, 5]) end    # 武器 1..8
  182.   for i in 1..5     do DG_ITEM_TABLE[1].push([2, i, 5]) end    # 防具 1..5
  183.   for i in 21..26   do DG_ITEM_TABLE[1].push([2, i, 5]) end    # 指輪
  184.   DG_GOLD_RATE[1]       = 11  # お金出現率(%)
  185.   DG_DROP_RATE[1]       = 16  # モンスターの共通アイテムドロップ率(1/n)
  186.   DG_TRAP_MAX[1]        = 30  # トラップの最大数
  187.   DG_TRAP_NUM[1]        = 5  # トラップの初期配置数
  188.   DG_TRAP_TABLE[1] = []       # 出現ワナ
  189.   for i in 121..137 do DG_TRAP_TABLE[1].push([i, 5]) end
  190.   DG_CURSE_RATE[1]      = 5#8   # 剣と盾以外のものが呪われている確率
  191.   DG_SLEEP_RATE[1]      = 80  # 出現モンスターが眠っている確率
  192.   DG_REPOP_TURN[1]      = 20  # モンスター再出現間隔(経過するまで再出現判定なし)
  193.   DG_REPOP_RATE[1]      = 10  # モンスター再出現確率
  194.   DG_BGM[1]             = ["Audio/BGM/Dungeon1.mid", 100, 100]
  195.   DG_BGS[1]             = ["Audio/BGS/Drips.ogg", 80, 100]
  196.   DG_HOUSE_BGM[1]       = ["Audio/BGM/Battle1.mid", 100, 100]
  197.   DG_SHOP_BGM[1]        = ["Audio/BGM/Scene4.mid", 100, 100]
  198.   DG_THIEF_BGM[1]       = ["Audio/BGM/Battle5.mid", 100, 100]
  199.   DG_WEATHER[1]         = [0, 0]  # フロアの天候
  200.   DG_SHOP_RATE[1]       = 10#30  # お店の出現率
  201.   DG_SHOP_KEEPER[1]     = 55   # 店主のモンスターID
  202.   DG_SHOP_GUARD[1]      = 55   # 番犬のモンスターID
  203.   DG_HOUSE_RATE[1]      = 15  # モンスターハウス出現率
  204.   DG_HOUSE_MONSTER_NUM[1] = 10#20  # モンスターハウスにいるモンスターの数
  205.   DG_HOUSE_ITEM_NUM[1]  = 20  # モンスターハウスにあるアイテムの数
  206.   DG_HOUSE_TRAP_NUM[1]  = 20  # モンスターハウスにあるワナの数
  207.  
  208.   #--------------------------------------------------------------------------
  209.   # ○ フロアパターン2の設定
  210.   #--------------------------------------------------------------------------
  211.   DG_BASE[2] = 1              # 設定省略時に使う親フロア
  212.   DG_MONSTER_TABLE[2] = [     # 出現モンスター
  213. [1, 10], [2, 10], [3, 10], [4, 10], [5, 5], [6, 5]
  214.   ]
  215.   DG_TILE[2] = [1570, 6752, 77, 267] #[1591, 7760, 543, 267] # 使用するタイルパターン
  216.  
  217.   #--------------------------------------------------------------------------
  218.   # ○ フロアパターン3の設定
  219.   #--------------------------------------------------------------------------
  220.   DG_BASE[3] = 1              # 設定省略時に使う親フロア
  221.  
  222.   DG_MONSTER_TABLE[3] = [     # 出現モンスター
  223. [1, 10], [2, 10], [3, 10], [4, 10], [5, 5], [6, 5]
  224.   ]
  225. #  DG_TILE[3] = [1591, 7760, 543, 267] # 使用するタイルパターン  
  226.   DG_TILE[3] = [1588, 7616, 540, 264]#[1570, 6752, 77, 267] # 使用するタイルパターン
  227.  
  228.  
  229. #~   DG_REPOP_RATE[3]      = 0  # モンスター再出現確率
  230. #~   DG_MONSTER_NUM[3]     = 5   # モンスターの初期配置数
  231. #~   DG_MONSTER_MAX[3]     = 5  # モンスターの最大数
  232. #~   
  233.  
  234.  
  235. #~   DG_MONSTER_TABLE[3] = [     # 出現モンスター
  236. #~       [1, 10]
  237.  
  238.  
  239. #~   ]
  240.  
  241.  
  242.  
  243. #~   DG_ITEM_MAX[3]        = 50  # アイテム初期配置数の最大
  244. #~   DG_ITEM_TABLE[3] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  245. #~   for i in 1..8     do DG_ITEM_TABLE[3].push([1, i, 5]) end    # 武器
  246. #~   for i in 1..5     do DG_ITEM_TABLE[3].push([2, i, 5]) end    # 防具
  247. #~   for i in 21..26   do DG_ITEM_TABLE[3].push([2, i, 5]) end    # 指輪  
  248. #~   
  249.  
  250.  
  251.  
  252. #~   
  253. #~   
  254. #~   DG_TILE[3] = [1570, 6752, 77, 267] # 使用するタイルパターン
  255. #~   
  256. #~ #▼テスト用設定  
  257. #~   DG_TRAP_MAX[3]        = 0  # トラップの最大数
  258. #~   DG_TRAP_NUM[3]        = 0  # トラップの初期配置数
  259.  
  260.  
  261.  
  262.   #--------------------------------------------------------------------------
  263.   # ○ フロアパターン4の設定
  264.   #--------------------------------------------------------------------------
  265.   DG_BASE[4] = 1              # 設定省略時に使う親フロア
  266.   DG_MONSTER_TABLE[4] = [     # 出現モンスター
  267. [2, 3], [3, 3], [4, 3], [5, 10], [6, 10], [7, 5], [8, 5], [9, 5]
  268.  
  269.   ]
  270.   DG_TILE[4] = [1586, 7520, 538, 267]#[1586, 7520, 538, 267] # 使用するタイルパターン
  271.  
  272.   #--------------------------------------------------------------------------
  273.   # ○ フロアパターン5の設定 ★BOSS
  274.   #--------------------------------------------------------------------------
  275.   DG_BASE[5] = 1             # 設定省略時に使う親フロア
  276.   DG_MONSTER_TABLE[5] = [     # 出現モンスター
  277.    # [7, 8], [17, 8], [24, 10], [27, 10]
  278.  
  279.    [41, 10]#[20, 10]# [41, 10]
  280.   ]
  281.   DG_TILE[5] = [1591, 7760, 543, 267]#[1588, 7616, 540, 264] # 使用するタイルパターン
  282.  
  283.  
  284.   DG_MONSTER_NUM[5]     = 1#20#1   # モンスターの初期配置数
  285.   DG_MONSTER_MAX[5]     = 1#20#1#32  # モンスターの最大数
  286.   DG_SHOP_RATE[5]       = 0#30  # お店の出現率
  287.   DG_HOUSE_RATE[5]      = 0  # モンスターハウス出現率
  288.   DG_REPOP_RATE[5]      = 0  # モンスター再出現確率
  289.  
  290.  
  291.  
  292.   #--------------------------------------------------------------------------
  293.   # ○ フロアパターン10まで
  294.   #--------------------------------------------------------------------------
  295. #~  DG_TILE[6] = [1552, 5888, 536, 265] # 使用するタイルパターン
  296. #~   DG_TILE[7] = [1570, 6752, 77, 267] #[1591, 7760, 543, 267] # 使用するタイルパターン
  297. #~   DG_TILE[8] = [1588, 7616, 540, 264]#[1570, 6752, 77, 267] # 使用するタイルパターン
  298. #~   DG_TILE[9] = [1586, 7520, 538, 267]#[1586, 7520, 538, 267] # 使用するタイルパターン
  299. #~   DG_TILE[10] = [1591, 7760, 543, 267]#[1588, 7616, 540, 264] # 使用するタイルパターン
  300.  
  301. DG_BASE[6] = 1  
  302. DG_MONSTER_TABLE[6] = [
  303. [2, 3], [3, 3], [4, 3], [5, 10], [6, 10], [7, 5], [8, 5], [9, 5], [10, 5], [33, 5]]
  304.  
  305. DG_BASE[7] = 2
  306. DG_MONSTER_TABLE[7] = [
  307. [2, 3], [3, 3], [4, 3], [5, 10], [6, 10], [7, 5], [8, 5], [9, 5], [10, 5], [33, 5]]
  308.  
  309. DG_BASE[8] = 3
  310. DG_MONSTER_TABLE[8] = [
  311. [5, 3], [6, 3], [7, 5], [8, 5], [9, 10], [10, 10],[11, 5],[12, 3], [33, 5]]
  312.  
  313. DG_BASE[9] = 4   
  314. DG_MONSTER_TABLE[9] = [
  315. [6, 3], [7, 3], [8, 5], [9, 5], [10, 10],[11, 10],[12, 5],[13, 3], [33, 5]]
  316.  
  317. DG_BASE[10] = 5
  318. DG_MONSTER_TABLE[10] = [[42, 10]]
  319.  
  320.   #--------------------------------------------------------------------------
  321.   # ○ フロアパターン15まで
  322.   #--------------------------------------------------------------------------
  323. DG_BASE[11] = 1  
  324. DG_MONSTER_TABLE[11] = [
  325. [6, 3], [7, 3], [8, 5], [9, 5], [10, 10],[11, 10],[12, 5],[13, 3], [33, 5]]
  326.  
  327. DG_BASE[12] = 2
  328. DG_MONSTER_TABLE[12] = [
  329. [8, 2], [9, 3], [10, 4],[11, 5],[12, 6],[13, 8],[14, 10], [15, 8],[16, 3], [17, 3]]
  330.  
  331. DG_BASE[13] = 3
  332. DG_MONSTER_TABLE[13] = [
  333. [8, 1], [9, 2], [10, 3],[11, 3],[12, 5],[13, 8],[14, 10], [15, 10],[16, 5], [17, 3]]
  334.  
  335. DG_BASE[14] = 4   
  336. DG_MONSTER_TABLE[14] = [
  337. [8, 1], [9, 2], [10, 3],[11, 3],[12, 5],[13, 8],[14, 10], [15, 10],[16, 10], [17, 10]]
  338.  
  339. DG_BASE[15] = 5
  340. DG_MONSTER_TABLE[15] = [[43, 10]]  
  341.  
  342.   #--------------------------------------------------------------------------
  343.   # ○ フロアパターン20まで
  344.   #--------------------------------------------------------------------------
  345. DG_BASE[16] = 1  
  346. DG_MONSTER_TABLE[16] = [
  347. [11, 3],[12, 3],[13, 3],[14, 5],[15, 5],[16, 7], [17, 7], [18, 8], [19, 3], [20, 3]]
  348.  
  349. DG_BASE[17] = 2
  350. DG_MONSTER_TABLE[17] = [
  351. [11, 2],[12, 2],[13, 2],[14, 3],[15, 5],[16, 8], [17, 10], [18, 10], [19, 3], [20, 3]]
  352.  
  353. DG_BASE[18] = 3
  354. DG_MONSTER_TABLE[18] = [
  355. [11, 1],[12, 1],[13, 1],[14, 3],[15, 5],[16, 5], [17, 8], [18, 10], [19, 7], [20, 5]]
  356.  
  357. DG_BASE[19] = 4   
  358. DG_MONSTER_TABLE[19] = [
  359. [12, 1],[14, 3],[15, 5],[16, 5], [17, 8], [18, 8], [19, 10], [20, 10],[21, 5],[22, 3],[23, 3]]
  360.  
  361. DG_BASE[20] = 5
  362. DG_MONSTER_TABLE[20] = [[44, 10]]  
  363.  
  364.  
  365.   #--------------------------------------------------------------------------
  366.   # ○ フロアパターン21~60まで エクセルで作成
  367.   #--------------------------------------------------------------------------
  368.  
  369. DG_BASE[21] = 1
  370. DG_BASE[22] = 2
  371. DG_BASE[23] = 3
  372. DG_BASE[24] = 4
  373. DG_BASE[25] = 5
  374.  
  375. DG_BASE[26] = 1
  376. DG_BASE[27] = 2
  377. DG_BASE[28] = 3
  378. DG_BASE[29] = 4
  379. DG_BASE[30] = 5
  380.  
  381. DG_BASE[31] = 1
  382. DG_BASE[32] = 2
  383. DG_BASE[33] = 3
  384. DG_BASE[34] = 4
  385. DG_BASE[35] = 5
  386.  
  387. DG_BASE[36] = 1
  388. DG_BASE[37] = 2
  389. DG_BASE[38] = 3
  390. DG_BASE[39] = 4
  391. DG_BASE[40] = 5
  392.  
  393. DG_BASE[41] = 1
  394. DG_BASE[42] = 2
  395. DG_BASE[43] = 3
  396. DG_BASE[44] = 4
  397. DG_BASE[45] = 5
  398.  
  399. DG_BASE[46] = 1
  400. DG_BASE[47] = 2
  401. DG_BASE[48] = 3
  402. DG_BASE[49] = 4
  403. DG_BASE[50] = 5
  404.  
  405. DG_BASE[51] = 1
  406. DG_BASE[52] = 2
  407. DG_BASE[53] = 3
  408. DG_BASE[54] = 4
  409. DG_BASE[55] = 5
  410.  
  411. DG_BASE[56] = 1
  412. DG_BASE[57] = 2
  413. DG_BASE[58] = 3
  414. DG_BASE[59] = 4
  415. DG_BASE[60] = 5
  416.  
  417. DG_MONSTER_TABLE[21] = [[12,3],[14,4],[15,7],[16,8],[17,10],[18,10],[19,7],[20,5],[21,3],[22,3],[23,3]]
  418. DG_MONSTER_TABLE[22] = [[12,3],[14,4],[15,7],[16,8],[17,10],[18,10],[19,7],[20,5],[21,3],[22,3],[23,3]]
  419. DG_MONSTER_TABLE[23] = [[16,3],[17,4],[18,7],[19,8],[20,10],[21,10],[22,7],[23,5],[24,3],[25,3]]
  420. DG_MONSTER_TABLE[24] = [[16,3],[17,4],[18,7],[19,8],[20,10],[21,10],[22,7],[23,5],[24,3],[25,3],[26,3]]
  421. DG_MONSTER_TABLE[25] = [[45,3]]
  422. DG_MONSTER_TABLE[26] = [[17,3],[18,4],[19,7],[20,8],[21,10],[22,10],[23,7],[24,5],[25,3],[26,3],[27,3]]
  423. DG_MONSTER_TABLE[27] = [[17,3],[20,4],[21,7],[22,8],[23,10],[24,10],[25,7],[26,5],[27,3],[28,3],[29,3]]
  424. DG_MONSTER_TABLE[28] = [[17,3],[20,4],[21,7],[22,8],[23,10],[24,10],[25,7],[26,5],[27,3],[28,3],[29,3],[30,10]]
  425. DG_MONSTER_TABLE[29] = [[17,3],[20,4],[21,7],[22,8],[23,10],[24,10],[25,7],[26,5],[27,3],[28,3],[29,3],[30,10],[31,10]]
  426. DG_MONSTER_TABLE[30] = [[46,3]]
  427. DG_MONSTER_TABLE[31] = [[17,3],[20,4],[22,7],[23,8],[24,10],[25,10],[26,7],[27,5],[28,3],[29,3],[30,3],[31,10],[32,10]]
  428. DG_MONSTER_TABLE[32] = [[17,3],[20,4],[23,7],[24,8],[25,10],[26,10],[27,7],[28,5],[29,3],[30,3],[31,3],[32,10]]
  429. DG_MONSTER_TABLE[33] = [[17,3],[20,4],[24,7],[25,8],[26,10],[27,10],[28,7],[29,5],[30,3],[31,3],[32,3]]
  430. DG_MONSTER_TABLE[34] = [[17,3],[27,4],[29,7],[30,10],[31,3],[32,3]]
  431. DG_MONSTER_TABLE[35] = [[47,3]]
  432. DG_MONSTER_TABLE[36] = [[17,3],[27,4],[29,7],[30,8],[31,3],[32,3]]
  433. DG_MONSTER_TABLE[37] = [[17,3],[30,4],[31,7],[32,3]]
  434. DG_MONSTER_TABLE[38] = [[17,3],[30,4],[31,7],[32,3]]
  435. DG_MONSTER_TABLE[39] = [[17,3],[23,4],[27,7],[29,8],[30,10],[31,3],[32,3]]
  436. DG_MONSTER_TABLE[40] = [[48,3]]
  437. DG_MONSTER_TABLE[40] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  438. DG_MONSTER_TABLE[41] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  439. DG_MONSTER_TABLE[42] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  440. DG_MONSTER_TABLE[43] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  441. DG_MONSTER_TABLE[44] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  442. DG_MONSTER_TABLE[45] = [[49,3]]
  443. DG_MONSTER_TABLE[46] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  444. DG_MONSTER_TABLE[47] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  445. DG_MONSTER_TABLE[48] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  446. DG_MONSTER_TABLE[49] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  447. DG_MONSTER_TABLE[50] = [[50,3]]
  448. DG_MONSTER_TABLE[51] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  449. DG_MONSTER_TABLE[52] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  450. DG_MONSTER_TABLE[53] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  451. DG_MONSTER_TABLE[54] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  452. DG_MONSTER_TABLE[55] = [[51,3]]
  453. DG_MONSTER_TABLE[56] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  454. DG_MONSTER_TABLE[57] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,10],[31,5],[32,3]]
  455. DG_MONSTER_TABLE[58] = [[17,1],[21,1],[24,1],[26,8],[27,10],[29,10],[30,7],[31,10],[32,3]]
  456. DG_MONSTER_TABLE[59] = [[17,1],[21,1],[24,1],[26,1],[27,1],[29,2],[30,2],[31,2],[32,10]]
  457. DG_MONSTER_TABLE[60] = [[52,3]]
  458.  
  459.  
  460.  
  461.  
  462.   #--------------------------------------------------------------------------
  463.   # ○ フロアパターン99の設定 未使用
  464.   #--------------------------------------------------------------------------
  465.   DG_BASE[99] = 1             # 設定省略時に使う親フロア
  466. #~   DG_CURSE_RATE[99] = 100     # 剣と盾以外のものが呪われている確率
  467.   DG_WEATHER[99] = [3, 8]     # フロアの天候
  468.   DG_ITEM_TABLE[99] = []      # 出現アイテム
  469.   DG_ITEM_TABLE[99].push([0, 32, 5])
  470. #~   DG_ITEM_TABLE[99].push([2, 65, 5])
  471. #~   DG_ITEM_TABLE[99].push([0, 56, 5])
  472. #~   DG_ITEM_TABLE[99].push([5, 0, 1000])  # お金
  473.   DG_MONSTER_TABLE[99] = [    # 出現モンスター
  474.     [1, 10]
  475.   ]
  476.   DG_TRAP_TABLE[99] = [       # 出現ワナ
  477.     [121, 5]
  478.   ]
  479.   DG_SHOP_RATE[99] = 100      # お店の出現率
  480.  
  481.   #--------------------------------------------------------------------------
  482.   # ○ フロアパターン101の設定 イージー
  483.   #--------------------------------------------------------------------------
  484.   DG_BASE[101]            = nil # 設定省略時に使う親フロア
  485.   DG_SIZE[101]            = [50, 37]  # フロア全体のサイズ
  486.   DG_ROOM_MIN[101]        = 5   # 部屋の最小サイズ
  487.   DG_ROOM_MARGIN[101]     = 2   # 部屋の周りの余白(部屋と区画の間隔です、下限2)
  488.   DG_NOSPLIT_RATE[101]    = 10  # 数値が大きいほど部屋数が少なくなりやすい(%)
  489.   DG_ADD_COUPLE_RATE[101] = 4   # 数値が大きいほど通路が複雑になりやすい(%)
  490.   DG_MANY_ROOM_RATE[101]  = 10  # 部屋数が最大になるようにフロア作る確率(%)
  491.   DG_MAX_ROOM_RATE[101]   = 20  # 区画内での最高サイズの部屋を強制的に作る確率(%)
  492.   DG_TILE[101] = [1552, 5888, 536, 265] # 使用するタイルパターン
  493.   DG_MONSTER_NUM[101]     = 8   # モンスターの初期配置数
  494.   DG_MONSTER_MAX[101]     = 20#32  # モンスターの最大数
  495.   DG_MONSTER_TABLE[101] = [     # 出現モンスター
  496. #   [3, 10], [4, 8]
  497. [1, 10], [2, 10], [3, 10], [4, 10]
  498.   ]
  499.   DG_ITEM_MAX[101]        = 10  # アイテム初期配置数の最大
  500.   DG_ITEM_TABLE[101] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  501.   for i in 1..18    do DG_ITEM_TABLE[101].push([0, i, 5]) end    # 草
  502.   for i in 31..52   do DG_ITEM_TABLE[101].push([0, i, 5]) end    # 巻物
  503.   for i in 61..68   do DG_ITEM_TABLE[101].push([0, i, 5]) end    # 杖
  504.   for i in 81..85   do DG_ITEM_TABLE[101].push([0, i, 5]) end    # 壷
  505.   for i in 101..104 do DG_ITEM_TABLE[101].push([0, i, 5]) end    # 食料
  506.   for i in 111..113 do DG_ITEM_TABLE[101].push([0, i, 5]) end    # 矢
  507.  
  508.   for i in 1..9     do DG_ITEM_TABLE[101].push([1, i, 5]) end    # 武器 1..8
  509.   for i in 1..5     do DG_ITEM_TABLE[101].push([2, i, 5]) end    # 防具 1..5
  510.   for i in 21..26   do DG_ITEM_TABLE[101].push([2, i, 5]) end    # 指輪
  511.   DG_GOLD_RATE[101]       = 11  # お金出現率(%)
  512.   DG_DROP_RATE[101]       = 16  # モンスターの共通アイテムドロップ率(1/n)
  513.   DG_TRAP_MAX[101]        = 5  # トラップの最大数
  514.   DG_TRAP_NUM[101]        = 2  # トラップの初期配置数
  515.   DG_TRAP_TABLE[101] = []       # 出現ワナ #ここでエラーでる
  516.   for i in 121..137 do DG_TRAP_TABLE[101].push([i, 5]) end
  517.   DG_CURSE_RATE[101]      = 0#0#8   # 剣と盾以外のものが呪われている確率
  518.   DG_SLEEP_RATE[101]      = 80  # 出現モンスターが眠っている確率
  519.   DG_REPOP_TURN[101]      = 20  # モンスター再出現間隔(経過するまで再出現判定なし)
  520.   DG_REPOP_RATE[101]      = 10  # モンスター再出現確率
  521.   DG_BGM[101]             = ["Audio/BGM/Dungeon1.mid", 100, 100]
  522.   DG_BGS[101]             = ["Audio/BGS/Drips.ogg", 80, 100]
  523.   DG_HOUSE_BGM[101]       = ["Audio/BGM/Battle1.mid", 100, 100]
  524.   DG_SHOP_BGM[101]        = ["Audio/BGM/Scene4.mid", 100, 100]
  525.   DG_THIEF_BGM[101]       = ["Audio/BGM/Battle5.mid", 100, 100]
  526.   DG_WEATHER[101]         = [0, 0]  # フロアの天候
  527.   DG_SHOP_RATE[101]       = 10#30  # お店の出現率
  528.   DG_SHOP_KEEPER[101]     = 55   # 店主のモンスターID
  529.   DG_SHOP_GUARD[101]      = 55   # 番犬のモンスターID
  530.   DG_HOUSE_RATE[101]      = 5  # モンスターハウス出現率
  531.   DG_HOUSE_MONSTER_NUM[101] = 10#20  # モンスターハウスにいるモンスターの数
  532.   DG_HOUSE_ITEM_NUM[101]  = 20  # モンスターハウスにあるアイテムの数
  533.   DG_HOUSE_TRAP_NUM[101]  = 5  # モンスターハウスにあるワナの数
  534.  
  535.   #--------------------------------------------------------------------------
  536.   # ○ フロアパターン102の設定
  537.   #--------------------------------------------------------------------------
  538.   DG_BASE[102] = 101              # 設定省略時に使う親フロア
  539.   DG_MONSTER_TABLE[102] = [     # 出現モンスター
  540. [1, 10], [2, 10], [3, 10], [4, 10], [5, 5], [6, 5]
  541.   ]
  542.   DG_TILE[102] = [1570, 6752, 77, 267] #[1591, 7760, 543, 267] # 使用するタイルパターン
  543.   #--------------------------------------------------------------------------
  544.   # ○ フロアパターン103の設定
  545.   #--------------------------------------------------------------------------
  546.   DG_BASE[103] = 101            # 設定省略時に使う親フロア
  547.   DG_MONSTER_TABLE[103] = [     # 出現モンスター
  548. [1, 10], [2, 10], [3, 10], [4, 10], [5, 5], [6, 5]
  549.   ]
  550.   DG_TILE[103] = [1588, 7616, 540, 264]#[1570, 6752, 77, 267] # 使用するタイルパターン
  551.   #--------------------------------------------------------------------------
  552.   # ○ フロアパターン104の設定
  553.   #--------------------------------------------------------------------------
  554.   DG_BASE[104] = 101              # 設定省略時に使う親フロア
  555.   DG_MONSTER_TABLE[104] = [     # 出現モンスター
  556. [2, 3], [3, 3], [4, 3], [5, 10], [6, 10], [7, 5], [8, 5], [9, 5]
  557.   ]
  558.   DG_TILE[104] = [1586, 7520, 538, 267]#[1586, 7520, 538, 267] # 使用するタイルパターン
  559.   #--------------------------------------------------------------------------
  560.   # ○ フロアパターン105の設定 ★BOSS
  561.   #--------------------------------------------------------------------------
  562.   DG_BASE[105] = 101             # 設定省略時に使う親フロア
  563.   DG_MONSTER_TABLE[105] = [     # 出現モンスター
  564.    [41, 10]#[20, 10]# [41, 10]
  565.   ]
  566.   DG_TILE[105] = [1591, 7760, 543, 267]#[1588, 7616, 540, 264] # 使用するタイルパターン
  567.   DG_MONSTER_NUM[105]     = 1#20#1   # モンスターの初期配置数
  568.   DG_MONSTER_MAX[105]     = 1#20#1#32  # モンスターの最大数
  569.   DG_SHOP_RATE[105]       = 0#30  # お店の出現率
  570.   DG_HOUSE_RATE[105]      = 0  # モンスターハウス出現率
  571.   DG_REPOP_RATE[105]      = 0  # モンスター再出現確率
  572.  
  573.   #--------------------------------------------------------------------------
  574.   # ○ フロアパターン110まで
  575.   #--------------------------------------------------------------------------
  576. DG_BASE[106] = 101
  577. DG_MONSTER_TABLE[106] = [
  578. [2, 3], [3, 3], [4, 3], [5, 10], [6, 10], [7, 5], [8, 5], [9, 5], [10, 5], [33, 5]]
  579.  
  580. DG_BASE[107] = 102
  581. DG_MONSTER_TABLE[107] = [
  582. [2, 3], [3, 3], [4, 3], [5, 10], [6, 10], [7, 5], [8, 5], [9, 5], [10, 5], [33, 5]]
  583.  
  584. DG_BASE[108] = 103
  585. DG_MONSTER_TABLE[108] = [
  586. [5, 3], [6, 3], [7, 5], [8, 5], [9, 10], [10, 10],[11, 5],[12, 3], [33, 5]]
  587.  
  588. DG_BASE[109] = 104   
  589. DG_MONSTER_TABLE[109] = [
  590. [6, 3], [7, 3], [8, 5], [9, 5], [10, 10],[11, 10],[12, 5],[13, 3], [33, 5]]
  591.  
  592. DG_BASE[110] = 105
  593. DG_MONSTER_TABLE[110] = [[42, 10]]
  594.  
  595.   #--------------------------------------------------------------------------
  596.   # ○ フロアパターン115まで
  597.   #--------------------------------------------------------------------------
  598. DG_BASE[111] = 101  
  599. DG_MONSTER_TABLE[111] = [
  600. [6, 3], [7, 3], [8, 5], [9, 5], [10, 10],[11, 10],[12, 5],[13, 3], [33, 5]]
  601.  
  602. DG_BASE[112] = 102
  603. DG_MONSTER_TABLE[112] = [
  604. [8, 2], [9, 3], [10, 4],[11, 5],[12, 6],[13, 8],[14, 10], [15, 8],[16, 3], [17, 3]]
  605.  
  606. DG_BASE[113] = 103
  607. DG_MONSTER_TABLE[113] = [
  608. [8, 1], [9, 2], [10, 3],[11, 3],[12, 5],[13, 8],[14, 10], [15, 10],[16, 5], [17, 3]]
  609.  
  610. DG_BASE[114] = 104   
  611. DG_MONSTER_TABLE[114] = [
  612. [8, 1], [9, 2], [10, 3],[11, 3],[12, 5],[13, 8],[14, 10], [15, 10],[16, 10], [17, 10]]
  613.  
  614. DG_BASE[115] = 105
  615. DG_MONSTER_TABLE[115] = [[43, 10]]  
  616.  
  617.   #--------------------------------------------------------------------------
  618.   # ○ フロアパターン120まで
  619.   #--------------------------------------------------------------------------
  620. DG_BASE[116] = 101  
  621. DG_MONSTER_TABLE[116] = [
  622. [11, 3],[12, 3],[13, 3],[14, 5],[15, 5],[16, 7], [17, 7], [18, 8], [19, 3], [20, 3]]
  623.  
  624. DG_BASE[117] = 102
  625. DG_MONSTER_TABLE[117] = [
  626. [11, 2],[12, 2],[13, 2],[14, 3],[15, 5],[16, 8], [17, 10], [18, 10], [19, 3], [20, 3]]
  627.  
  628. DG_BASE[118] = 103
  629. DG_MONSTER_TABLE[118] = [
  630. [11, 1],[12, 1],[13, 1],[14, 3],[15, 5],[16, 5], [17, 8], [18, 10], [19, 7], [20, 5]]
  631.  
  632. DG_BASE[119] = 104   
  633. DG_MONSTER_TABLE[119] = [
  634. [12, 1],[14, 3],[15, 5],[16, 5], [17, 8], [18, 8], [19, 10], [20, 10],[21, 5],[22, 3],[23, 3]]
  635.  
  636. DG_BASE[120] = 105
  637. DG_MONSTER_TABLE[120] = [[44, 10]]
  638.  
  639.   #--------------------------------------------------------------------------
  640.   # ○ フロアパターン121~160まで エクセルで作成
  641.   #--------------------------------------------------------------------------
  642. DG_BASE[121] = 101
  643. DG_BASE[122] = 102
  644. DG_BASE[123] = 103
  645. DG_BASE[124] = 104
  646. DG_BASE[125] = 105
  647.  
  648. DG_BASE[126] = 101
  649. DG_BASE[127] = 102
  650. DG_BASE[128] = 103
  651. DG_BASE[129] = 104
  652. DG_BASE[130] = 105
  653.  
  654. DG_BASE[131] = 101
  655. DG_BASE[132] = 102
  656. DG_BASE[133] = 103
  657. DG_BASE[134] = 104
  658. DG_BASE[135] = 105
  659.  
  660. DG_BASE[136] = 101
  661. DG_BASE[137] = 102
  662. DG_BASE[138] = 103
  663. DG_BASE[139] = 104
  664. DG_BASE[140] = 105
  665.  
  666. DG_BASE[141] = 101
  667. DG_BASE[142] = 102
  668. DG_BASE[143] = 103
  669. DG_BASE[144] = 104
  670. DG_BASE[145] = 105
  671.  
  672. DG_BASE[146] = 101
  673. DG_BASE[147] = 102
  674. DG_BASE[148] = 103
  675. DG_BASE[149] = 104
  676. DG_BASE[150] = 105
  677.  
  678. DG_BASE[151] = 101
  679. DG_BASE[152] = 102
  680. DG_BASE[153] = 103
  681. DG_BASE[154] = 104
  682. DG_BASE[155] = 105
  683.  
  684. DG_BASE[156] = 101
  685. DG_BASE[157] = 102
  686. DG_BASE[158] = 103
  687. DG_BASE[159] = 104
  688. DG_BASE[160] = 105  
  689.  
  690.  
  691. DG_MONSTER_TABLE[121] = [[12,3],[14,4],[15,7],[16,8],[17,10],[18,10],[19,7],[20,5],[21,3],[22,3],[23,3]]
  692. DG_MONSTER_TABLE[122] = [[12,3],[14,4],[15,7],[16,8],[17,10],[18,10],[19,7],[20,5],[21,3],[22,3],[23,3]]
  693. DG_MONSTER_TABLE[123] = [[16,3],[17,4],[18,7],[19,8],[20,10],[21,10],[22,7],[23,5],[24,3],[25,3]]
  694. DG_MONSTER_TABLE[124] = [[16,3],[17,4],[18,7],[19,8],[20,10],[21,10],[22,7],[23,5],[24,3],[25,3],[26,3]]
  695. DG_MONSTER_TABLE[125] = [[45,3]]
  696. DG_MONSTER_TABLE[126] = [[17,3],[18,4],[19,7],[20,8],[21,10],[22,10],[23,7],[24,5],[25,3],[26,3],[27,3]]
  697. DG_MONSTER_TABLE[127] = [[17,3],[20,4],[21,7],[22,8],[23,10],[24,10],[25,7],[26,5],[27,3],[28,3],[29,3]]
  698. DG_MONSTER_TABLE[128] = [[17,3],[20,4],[21,7],[22,8],[23,10],[24,10],[25,7],[26,5],[27,3],[28,3],[29,3],[30,10]]
  699. DG_MONSTER_TABLE[129] = [[17,3],[20,4],[21,7],[22,8],[23,10],[24,10],[25,7],[26,5],[27,3],[28,3],[29,3],[30,10],[31,10]]
  700. DG_MONSTER_TABLE[130] = [[46,3]]
  701. DG_MONSTER_TABLE[131] = [[17,3],[20,4],[22,7],[23,8],[24,10],[25,10],[26,7],[27,5],[28,3],[29,3],[30,3],[31,10],[32,10]]
  702. DG_MONSTER_TABLE[132] = [[17,3],[20,4],[23,7],[24,8],[25,10],[26,10],[27,7],[28,5],[29,3],[30,3],[31,3],[32,10]]
  703. DG_MONSTER_TABLE[133] = [[17,3],[20,4],[24,7],[25,8],[26,10],[27,10],[28,7],[29,5],[30,3],[31,3],[32,3]]
  704. DG_MONSTER_TABLE[134] = [[17,3],[27,4],[29,7],[30,10],[31,3],[32,3]]
  705. DG_MONSTER_TABLE[135] = [[47,3]]
  706. DG_MONSTER_TABLE[136] = [[17,3],[27,4],[29,7],[30,8],[31,3],[32,3]]
  707. DG_MONSTER_TABLE[137] = [[17,3],[30,4],[31,7],[32,3]]
  708. DG_MONSTER_TABLE[138] = [[17,3],[30,4],[31,7],[32,3]]
  709. DG_MONSTER_TABLE[139] = [[17,3],[23,4],[27,7],[29,8],[30,10],[31,3],[32,3]]
  710. DG_MONSTER_TABLE[140] = [[48,3]]
  711.  
  712. #DG_MONSTER_TABLE[140] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  713.  
  714. DG_MONSTER_TABLE[141] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  715. DG_MONSTER_TABLE[142] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  716. DG_MONSTER_TABLE[143] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  717. DG_MONSTER_TABLE[144] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  718. DG_MONSTER_TABLE[145] = [[49,3]]
  719.  
  720.  
  721.  
  722. #~ DG_MONSTER_TABLE[146] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  723. #~ DG_MONSTER_TABLE[147] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  724. #~ DG_MONSTER_TABLE[148] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  725. #~ DG_MONSTER_TABLE[149] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  726. #~ DG_MONSTER_TABLE[150] = [[50,3]]
  727. #~ DG_MONSTER_TABLE[151] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  728. #~ DG_MONSTER_TABLE[152] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  729. #~ DG_MONSTER_TABLE[153] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  730. #~ DG_MONSTER_TABLE[154] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  731. #~ DG_MONSTER_TABLE[155] = [[51,3]]
  732. #~ DG_MONSTER_TABLE[156] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,7],[31,5],[32,3]]
  733. #~ DG_MONSTER_TABLE[157] = [[17,3],[21,4],[24,7],[26,8],[27,10],[29,10],[30,10],[31,5],[32,3]]
  734. #~ DG_MONSTER_TABLE[158] = [[17,1],[21,1],[24,1],[26,8],[27,10],[29,10],[30,7],[31,10],[32,3]]
  735. #~ DG_MONSTER_TABLE[159] = [[17,1],[21,1],[24,1],[26,1],[27,1],[29,2],[30,2],[31,2],[32,10]]
  736. #~ DG_MONSTER_TABLE[160] = [[52,3]]
  737.  
  738. #--------------------------------------------------------------------------
  739. #アイテム設定
  740. #--------------------------------------------------------------------------
  741. #ハード 20-29F
  742. for f in 20..29
  743. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  744.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  745.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  746.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  747.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  748.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  749.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  750.  
  751.   for i in 1..10     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 雷神の剣ついか
  752.   for i in 1..6     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  753.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  754. end
  755. for f in 30..39
  756. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  757.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  758.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  759.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  760.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  761.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  762.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  763.  
  764.   for i in 1..11     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 剣ついか
  765.   for i in 1..7     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  766.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  767. end
  768. for f in 40..49
  769. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  770.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  771.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  772.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  773.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  774.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  775.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  776.  
  777.   for i in 1..12     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 剣ついか
  778.   for i in 1..8     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  779.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  780. end
  781. for f in 50..60
  782. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  783.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  784.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  785.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  786.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  787.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  788.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  789.  
  790.   for i in 1..13     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 剣ついか
  791.   for i in 1..9     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  792.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  793. end
  794. #イージー
  795. for f in 120..129
  796. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  797.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  798.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  799.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  800.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  801.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  802.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  803.  
  804.   for i in 1..10     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 雷神の剣ついか
  805.   for i in 1..6     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  806.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  807. end
  808. for f in 130..139
  809. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  810.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  811.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  812.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  813.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  814.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  815.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  816.  
  817.   for i in 1..11     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 剣ついか
  818.   for i in 1..7     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  819.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  820. end
  821. for f in 140..145
  822. DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  823.   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  824.   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  825.   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  826.   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  827.   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  828.   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  829.  
  830.   for i in 1..12     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 剣ついか
  831.   for i in 1..8     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  832.   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  833. end
  834. #~ for f in 150..160
  835. #~  DG_ITEM_TABLE[f] = []       # 出現アイテム ★たくさん代入するほど出やすいっぽい
  836. #~   for i in 1..18    do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 草
  837. #~   for i in 31..52   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 巻物
  838. #~   for i in 61..68   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 杖
  839. #~   for i in 81..85   do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 壷
  840. #~   for i in 101..104 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 食料
  841. #~   for i in 111..113 do DG_ITEM_TABLE[f].push([0, i, 5]) end    # 矢
  842. #~     
  843. #~   for i in 1..13     do DG_ITEM_TABLE[f].push([1, i, 5]) end    # 武器 剣ついか
  844. #~   for i in 1..9     do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 防具 1..5
  845. #~   for i in 21..26   do DG_ITEM_TABLE[f].push([2, i, 5]) end    # 指輪
  846. #~ end
  847.  
  848.  
  849.  
  850.   #--------------------------------------------------------------------------
  851.   # ○ ダンジョン1の設定 ★ハード
  852.   #--------------------------------------------------------------------------
  853.   DG_NAME[1] = "もっと不気味なダンジョン"      # ダンジョン名
  854.   DG_FLOOR[1] = [                          # 使用するフロアパターン
  855.    # nil, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, nil
  856.         nil,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,nil
  857.  
  858.   ]
  859.   DG_JUDGE_ITEM[1] = []#[55, 60, 65, 70, 90, 95, 100]#[55, 60, 65, 70, 90]#[55, 60, 65, 70, 75,80,85,90,95,100]#[55, 60, 65, 70, 90]#これだと剣は未鑑定                    # 識別済みのアイテム種別
  860.  
  861.   #--------------------------------------------------------------------------
  862.   # ○ ダンジョン2の設定
  863.   #--------------------------------------------------------------------------
  864.   DG_NAME[2] = "ボステストダンジョン"
  865.   DG_FLOOR[2] = [
  866.     nil, 5, nil
  867. #    nil, 99, nil
  868.  
  869.   ]
  870.   DG_JUDGE_ITEM[2] = [
  871.     55, 60, 65, 70, 90
  872.   ]
  873.  
  874.   #--------------------------------------------------------------------------
  875.   # ○ ダンジョン3の設定 ★イージー
  876.   #--------------------------------------------------------------------------
  877.   DG_NAME[3] = "不気味なダンジョン"    # ダンジョン名
  878.   DG_FLOOR[3] = [                          # 使用するフロアパターン
  879.         nil,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,nil#146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,nil
  880. #        nil,101,nil
  881.  
  882.         ]
  883.   DG_JUDGE_ITEM[3] = [                     # 識別済みのアイテム種別
  884.     55, 60, 65, 70, 90
  885.   ]
  886.  
  887. end
  888.  
  889. # ダンジョンメッセージには以下の制御文字が使えます
  890. #     \\C[n]    文字色変更
  891. #     \\I[n]    アイテムアイコン描画
  892. #     \\.       ウェイト15フレーム
  893. module Vocab
  894.   DgCurse =     "%sは呪われている!"
  895.   DgGather =    "%sを拾った。"
  896.   DgSwing =     "\\C[6]%s\\C[0]は%sを振った!"
  897.   DgThrow =     "\\C[6]%s\\C[0]は%sを投げた!"
  898.   DgShot =      "\\C[6]%s\\C[0]は%sを投げた"#撃った!"
  899.   DgRide =      "%sの上に乗った。"
  900.   DgDrop =      "%sを地面に置いた。"
  901.   DgEquip =     "%sを装備した。"
  902.   DgEvasion =   "\\C[6]%s\\C[0]の攻撃はあたらなかった。"
  903.   DgEat =       "\\C[6]%s\\C[0]は%sを食べた!"
  904.   DgDrink =     "\\C[6]%s\\C[0]は%sを飲んだ!"
  905.   DgRead =      "\\C[6]%s\\C[0]は%sを読んだ!"
  906.   DgJudge =     "なんと!%sは%sだった!"
  907.   DgHpRecover = "\\C[6]%s\\C[0]のHPが\\C[4]%d\\C[0]回復した!"
  908.   DgHpDamage =  "\\C[6]%s\\C[0]は\\C[4]%d\\C[0]のダメージを受けた!"
  909.   DgHungry = [
  910.     "お腹が減ってきた…",
  911.     "お腹が減りすぎて目が回ってきた。",
  912.     "だめだ! もう倒れそうだ!",
  913.     "早く…何か食べないと…",
  914.     "飢え死にしてしまう!"
  915.   ]
  916.   DgFood =      "\\C[6]%s\\C[0]のお腹がふくれた。"
  917.   DgFoodMax =   "\\C[6]%s\\C[0]は満腹になった。"
  918.   DgDead =      "\\C[6]%s\\C[0]はたおれた。\\."
  919.   DgExp =       "\\C[6]%s\\C[0]は\\C[4]%d\\C[0]の経験値を得た。\\."
  920.   DgLevelup =   "\\C[6]%s\\C[0]はレベル\\C[4]%d\\C[0]になった!"
  921.   DgLeveldown = "\\C[6]%s\\C[0]のレベルが\\C[4]%d\\C[0]下がった。"
  922.   DgOnTrap =    "%sをふんだ。"
  923.   DgMissTrap =  "しかし作動しなかった。"
  924.   DgSilent =    "\\C[6]%s\\C[0]は口が使えない。"
  925.   DgShopIn =    "いらっしゃいませ。"
  926.   DgShopOut =   "ありがとうございました。"
  927.   DgShopSell =  "お客様が店に置いた商品を\\C[4]%d\\C[0]Gで買い取ります。"
  928.   DgShopBuy =   "代金\\C[4]%d\\C[0]Gいただきます。"
  929.   DgShopFailed = "お金が足りません。"
  930.   DgThief =     "ドロボー!"
  931.   DgHouse =     "モンスターハウスだ!"
  932. end
  933.  
  934. module Sound
  935.   def self.play_curse         # 呪いME
  936.     Audio.me_play("Audio/ME/Shock.mid", 80, 100)
  937.   end
  938.   def self.play_levelup       # レベルアップSE
  939.     Audio.me_play("Audio/SE/Applause.ogg", 80, 100)
  940.   end
  941.   def self.play_leveldown     # レベルダウンSE
  942.     Audio.me_play("Audio/SE/Down.ogg", 80, 50)
  943.   end
  944.   def self.play_gather        # 拾うSE
  945.     Audio.se_play("Audio/SE/Open1.ogg", 80, 150)
  946.   end
  947.   def self.play_remove        # はずすSE
  948.     Audio.se_play("Audio/SE/Open3.ogg", 80, 150)
  949.   end
  950.   def self.play_throw         # 投げるSE
  951.     Audio.se_play("Audio/SE/Wind10.ogg", 80, 150)
  952.   end
  953.   def self.play_sort          # 整頓SE
  954.     Audio.se_play("Audio/SE/Chime2.ogg", 80, 150)
  955.   end
  956.   def self.play_move          # すすむSE
  957.     Audio.se_play("Audio/SE/Move.ogg", 80, 100)
  958.   end
  959.   def self.play_trap          # 踏むSE
  960.     Audio.se_play("Audio/SE/Switch2.ogg", 80, 100)
  961.   end
  962.   def self.play_pot_break     # 壷が割れるSE
  963.     Audio.se_play("Audio/SE/Crash.ogg", 80, 80)
  964.   end
  965.   def self.play_shot          # 矢を撃つSE
  966.     Audio.se_play("Audio/SE/Bow1.ogg", 80, 100)
  967.   end
  968. end
  969.  
  970. #==============================================================================
  971. # ■ 設定はここまで
  972. #==============================================================================
  973.  
  974. module DUNG::Commands
  975.   module_function
  976.   #--------------------------------------------------------------------------
  977.   # ○ ダンジョンの開始
  978.   #--------------------------------------------------------------------------
  979.   def dungeon_start(dungeon_id)
  980.     $game_temp.map_bgm = RPG::BGM.last
  981.     $game_temp.map_bgs = RPG::BGS.last
  982.     RPG::BGM.stop
  983.     RPG::BGS.stop
  984.     Sound.play_move
  985.     $game_dungeon.new_game(dungeon_id)
  986.     $scene = Scene_Dungeon.new
  987.   end
  988.   #--------------------------------------------------------------------------
  989.   # ○ ダンジョン用パラメータの初期化
  990.   #--------------------------------------------------------------------------
  991.   def reset_dparam
  992.     $game_party.reset_dparam
  993.   end
  994.   #--------------------------------------------------------------------------
  995.   # ○ ダンジョン用アイテムの初期化
  996.   #--------------------------------------------------------------------------
  997.   def reset_ditem
  998.    # p"アイテム初期化"
  999.     $game_party.reset_ditem
  1000.   end
  1001.   #--------------------------------------------------------------------------
  1002.   # ○ ダンジョン用アイテムの追加
  1003.   #--------------------------------------------------------------------------
  1004.   def gain_ditem(type, id, plus = nil, option = nil, extends = [])
  1005.     ditem = Game_DItem.new(type, id, plus, option, extends)
  1006.     $game_party.gain_ditem(ditem)
  1007.   end
  1008.   #--------------------------------------------------------------------------
  1009.   # ○ ダンジョン用お金の初期化
  1010.   #--------------------------------------------------------------------------
  1011.   def reset_dgold
  1012.     $game_party.reset_dgold
  1013.   end
  1014.   #--------------------------------------------------------------------------
  1015.   # ○ 満腹度の初期化
  1016.   #--------------------------------------------------------------------------
  1017.   def reset_energy
  1018.     $game_party.reset_energy
  1019.   end
  1020.   #--------------------------------------------------------------------------
  1021.   # ○ ちからの初期化
  1022.   #--------------------------------------------------------------------------
  1023.   def reset_power
  1024.     $game_party.reset_power
  1025.   end
  1026. end
  1027. class Game_Interpreter
  1028.   include DUNG::Commands
  1029. end
  1030.  
  1031.  
  1032. module RPG
  1033.   class Item < UsableItem
  1034.     def category
  1035.       return 85 if @note =~ /<矢>/i
  1036.       return 80 if @note =~ /<食料>/i
  1037.       return 75 if @note =~ /<肉>/i
  1038.       return 70 if @note =~ /<草>/i
  1039.       return 65 if @note =~ /<巻物>/i
  1040.       return 60 if @note =~ /<杖>/i
  1041.       return 55 if @note =~ /<壷>/i
  1042.       return 50 if @note =~ /<お金>/i
  1043.       return 10 if @note =~ /<ワナ>/i
  1044.     end
  1045.   end
  1046.   class Weapon < BaseItem
  1047.     def category
  1048.       return 100
  1049.     end
  1050.     def extends
  1051.       result = []
  1052.       result.push(128) if note =~ /<掘>/i
  1053.       result.push(129) if note =~ /<壊>/i
  1054.       return result
  1055.     end
  1056.     def speed
  1057.       return agi
  1058.     end
  1059.   end
  1060.   class Armor < BaseItem
  1061.     def category
  1062.       return (kind == 0 ? 95 : 90)
  1063.     end
  1064.     def speed
  1065.       return agi
  1066.     end
  1067.   end
  1068. end
就是像elona里面那样可以把墙破坏一样,我记得vx有看见过类似的脚本,只不过他是在迷宫里面可以实现。在迷宫里面可以挖墙就好。上面的是vx不知道可不可以转va

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2017-12-17 17:45:09 | 只看该作者
首先直接拉进去看看能不能用,不能再做修改
有的脚本可能是可以通用的
xp里有直接改指定位置图块id再刷新地图的破坏墙壁的方式

如果只是单个迷宫地图要这样做的话用事件也可以,对墙壁事件使用某个道具,然后把事件变空白

点评

那个这个脚本不通用,事件的话我用是随机迷宫生产的那个脚本,根本不知道哪里是墙怎么做事件。  发表于 2017-12-17 18:08
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 14:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表