#============================================================================== module X☆R def self.saw(map_id,evevt_id) return false if $game_map.map_id != map_id return false if $game_map.event(evevt_id).nil? return false if $game_map.event(evevt_id).character_name == "" return false if $game_map.event(evevt_id).transparent return false if !self.facing_player($game_map.event(evevt_id)) return false if self.has_screen($game_map.event(evevt_id)) return true end def self.has_screen(event) if event.x == $game_player.x (event.y..$game_player.y).each do |y| return true if $game_map.terrain_tag(event.x, y) == 5 end end if event.y == $game_player.y (event.x..$game_player.x).each do |x| return true if $game_map.terrain_tag(x, event.y) == 5 end end return false end def self.facing_player(event) if event.x == $game_player.x return event.y > $game_player.y ? event.direction == 8 : event.direction == 2 elsif event.y == $game_player.y return event.x > $game_player.x ? event.direction == 4 : event.direction == 6 end return false end end #============================================================================== class Game_Map def event(evevt_id) return @events[evevt_id] end end #==============================================================================
#==============================================================================
module X☆R
def self.saw(map_id,evevt_id)
return false if $game_map.map_id != map_id
return false if $game_map.event(evevt_id).nil?
return false if $game_map.event(evevt_id).character_name == ""
return false if $game_map.event(evevt_id).transparent
return false if !self.facing_player($game_map.event(evevt_id))
return false if self.has_screen($game_map.event(evevt_id))
return true
end
def self.has_screen(event)
if event.x == $game_player.x
(event.y..$game_player.y).each do |y|
return true if $game_map.terrain_tag(event.x, y) == 5
end
end
if event.y == $game_player.y
(event.x..$game_player.x).each do |x|
return true if $game_map.terrain_tag(x, event.y) == 5
end
end
return false
end
def self.facing_player(event)
if event.x == $game_player.x
return event.y > $game_player.y ? event.direction == 8 : event.direction == 2
elsif event.y == $game_player.y
return event.x > $game_player.x ? event.direction == 4 : event.direction == 6
end
return false
end
end
#==============================================================================
class Game_Map
def event(evevt_id)
return @events[evevt_id]
end
end
#==============================================================================
用法是 事件->条件:脚本:X☆R.saw(map_id,evevt_id)
map_id 是会‘看死人’的事件所在的地图ID;
evevt_id 是会‘看死人’的事件ID;
事件用并行,遮挡物的地图图块标志是 5。
|