赞 | 21 |
VIP | 308 |
好人卡 | 199 |
积分 | 14 |
经验 | 129932 |
最后登录 | 2020-6-11 |
在线时间 | 2881 小时 |
Lv3.寻梦者 闇吼者の災悪眷族 不気味存在締造者
- 梦石
- 0
- 星屑
- 1366
- 在线时间
- 2881 小时
- 注册时间
- 2014-7-29
- 帖子
- 6491
|
本帖最后由 三途亚梦 于 2015-6-6 16:00 编辑
大概这样,如有问题请回复。
目前以下的通行判断优先于其它,即即使开启了允许穿透,玩家依然受区域移动方向的限制。
#============================================================================== # +++ 限制移动方向的特定区域 +++ #============================================================================== # 提问区应求 By 三途亚梦 #============================================================================== # 本脚本的作用给区域自定义不同方向的通行。 #============================================================================== # # ★在Nopassaingregion按照[区域ID, 通行方向的ID] # 的格式写下数值就能使得特定区域的图块不可通行。 # # ★因为发现流体属性的地形对人物的特殊影响,所以对流体(即草地深度)的方法也做了调整 # 在事件页第一行用【注释】写上“桥”的话, # 这个事件所在方格将忽略流体地型使得行走图部分透明的效果。 # # 其中代表通行方向的ID为: # 向下(2) 向左(4) 向右(6) 向上 (8) # #============================================================================== module Amu module Region_Nopassaing Nopassaingregion = [[11, 2], [12, 4], [13, 6], [14, 8], [15, 8, 4], [16, 8, 6], [17, 2, 4], [18, 2, 6]] #这里默认使用了11~18号区域,分别为 #11禁止向下;12禁止向左;13禁止向右;14禁止向上 #15禁止向上和向左;16禁止向上向右;17禁止向下向左;18禁止向下向右。 end end class Game_CharacterBase #-------------------------------------------------------------------------- # ● 更新草木深度 #-------------------------------------------------------------------------- alias amu_20150606_update_bush_depth update_bush_depth def update_bush_depth if bush? && !$game_map.events_xy(@x, @y).empty? e = $game_map.events_xy(@x, @y)[0].list[0].parameters[0] == "桥" e ? @bush_depth = 0 : amu_20150606_update_bush_depth else amu_20150606_update_bush_depth end end #-------------------------------------------------------------------------- # ● 判定是否可以通行(检查 地图的通行度 和 前方是否有路障) # d : 方向(2,4,6,8) #-------------------------------------------------------------------------- alias amu_20150606_passable_without_region? passable? def passable?(x, y, d) regions = Amu::Region_Nopassaing::Nopassaingregion return false if regions.any? {|r| r[0] == $game_map.region_id(x, y) && (1..(r.size-1)).any? {|i| r[i] == d}} && @through amu_20150606_passable_without_region?(x, y, d) end end
#==============================================================================
# +++ 限制移动方向的特定区域 +++
#==============================================================================
# 提问区应求 By 三途亚梦
#==============================================================================
# 本脚本的作用给区域自定义不同方向的通行。
#==============================================================================
#
# ★在Nopassaingregion按照[区域ID, 通行方向的ID]
# 的格式写下数值就能使得特定区域的图块不可通行。
#
# ★因为发现流体属性的地形对人物的特殊影响,所以对流体(即草地深度)的方法也做了调整
# 在事件页第一行用【注释】写上“桥”的话,
# 这个事件所在方格将忽略流体地型使得行走图部分透明的效果。
#
# 其中代表通行方向的ID为:
# 向下(2) 向左(4) 向右(6) 向上 (8)
#
#==============================================================================
module Amu
module Region_Nopassaing
Nopassaingregion = [[11, 2], [12, 4], [13, 6], [14, 8],
[15, 8, 4], [16, 8, 6], [17, 2, 4], [18, 2, 6]]
#这里默认使用了11~18号区域,分别为
#11禁止向下;12禁止向左;13禁止向右;14禁止向上
#15禁止向上和向左;16禁止向上向右;17禁止向下向左;18禁止向下向右。
end
end
class Game_CharacterBase
#--------------------------------------------------------------------------
# ● 更新草木深度
#--------------------------------------------------------------------------
alias amu_20150606_update_bush_depth update_bush_depth
def update_bush_depth
if bush? && !$game_map.events_xy(@x, @y).empty?
e = $game_map.events_xy(@x, @y)[0].list[0].parameters[0] == "桥"
e ? @bush_depth = 0 : amu_20150606_update_bush_depth
else
amu_20150606_update_bush_depth
end
end
#--------------------------------------------------------------------------
# ● 判定是否可以通行(检查 地图的通行度 和 前方是否有路障)
# d : 方向(2,4,6,8)
#--------------------------------------------------------------------------
alias amu_20150606_passable_without_region? passable?
def passable?(x, y, d)
regions = Amu::Region_Nopassaing::Nopassaingregion
return false if regions.any? {|r| r[0] == $game_map.region_id(x, y) &&
(1..(r.size-1)).any? {|i| r[i] == d}} && @through
amu_20150606_passable_without_region?(x, y, d)
end
end
|
|