Project1

标题: 怎么让一个开关打开,地形标志1不可通行? [打印本页]

作者: 1095884734    时间: 2011-7-6 16:34
标题: 怎么让一个开关打开,地形标志1不可通行?
怎么让一个开关打开,地形标志1不可通行?dsu_plus_rewardpost_czw
作者: 羽落花翎结    时间: 2011-7-6 17:07
在那个位置设置一个事件,事件图形在上方有一个写着(元件)的双击你想要的,然后事件出现条件那里,你说的开关打开为 ON
作者: Wind2010    时间: 2011-7-6 17:33
  1. class Game_Map
  2.   TERRAIN_ID = 906 # 906号开关打开时1号地形不能通行
  3.   def passable?(x, y, d, self_event = nil)
  4.     unless valid?(x, y)
  5.       return false
  6.     end
  7.     if $game_switches[TERRAIN_ID]
  8.       case d
  9.       when 0
  10.         go_x = x
  11.         go_y = y
  12.       when 2
  13.         go_x = x
  14.         go_y = y+1
  15.       when 4
  16.         go_x = x-1
  17.         go_y = y
  18.       when 6
  19.         go_x = x+1
  20.         go_y = y
  21.       when 8
  22.         go_x = x
  23.         go_y = y-1
  24.       end
  25.       return false if terrain_tag(go_x,go_y) == 1
  26.     end
  27.     bit = (1 << (d / 2 - 1)) & 0x0f
  28.     for event in events.values
  29.       if event.tile_id >= 0 and event != self_event and
  30.          event.x == x and event.y == y and not event.through
  31.         if @passages[event.tile_id] & bit != 0
  32.           return false
  33.         elsif @passages[event.tile_id] & 0x0f == 0x0f
  34.           return false
  35.         elsif @priorities[event.tile_id] == 0
  36.           return true
  37.         end
  38.       end
  39.     end
  40.     for i in [2, 1, 0]
  41.       tile_id = data[x, y, i]
  42.       if tile_id == nil
  43.         return false
  44.       elsif @passages[tile_id] & bit != 0
  45.         return false
  46.       elsif @passages[tile_id] & 0x0f == 0x0f
  47.         return false
  48.       elsif @priorities[tile_id] == 0
  49.         return true
  50.       end
  51.     end
  52.     return true
  53.   end
  54. end
复制代码
未经试验
作者: 160445706    时间: 2011-7-6 19:57
本帖最后由 160445706 于 2011-7-8 14:25 编辑

  1. new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
复制代码
后面

插入:

  1.     if $game_map.terrain_tag(new_x,new_y)==1 and $game_switches[100]==true
  2.       return false
  3.     else
  4.       return true
  5.     end
复制代码





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