Tutoriaux événements
"Champ de vision"
- Script de Inconnu.
- Aucune démo n'est disponible pour ce script.
Ce script peut servir pour un mini-jeu d'infiltration, les événements "repèrent" le joueur s'il passe dans leur champ de vision.
Après avoir collé le script au-dessus de main, dans les événement concernés intégrez ce code :
check = View_Range.new(event_num,veiw_range,"els")
check.enemies_view
Et remplacez :
event_num par le n° d'ID de l'evenement qui peut repérer le héros.
veiw_range par le nombre de cases à laquelle on peut etre repérer
"els" par la lettre de l'interrupteur local à activer ("A", "B", etc)
#==============================================================================
# View Range Script
#------------------------------------------------------------------------------
#
#
#==============================================================================
class View_Range
#--------------------------------------------------------------------------
# ? Range system works by sereching the area of a circle for the Player's xy
# The Veiw is set in each event and is the radius of the circle
# The Eaquation used is (Px-EX)^2 + (Py-Ey)^2 = radius^2
# If the Radius is less than or equal to the View the Player is inside the circle
#--------------------------------------------------------------------------
attr_accessor :event_num
attr_accessor :view_range
#--------------------------------------------------------------------------
# ? Initialization
#--------------------------------------------------------------------------
def initialize(event_num,veiw_range,els)
@event_num = event_num
@event_locial_switch = els
@view_range = veiw_range
@playerx = $game_player.x
@playery = $game_player.y
@eventx = $game_map.events[@event_num].x
@eventy = $game_map.events[@event_num].y
@event_direction = $game_map.events[@event_num].direction
end
#--------------------------------------------------------------------------
# ? Event Veiw
#--------------------------------------------------------------------------
def event_view
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_map.need_refresh = true
end
end
#--------------------------------------------------------------------------
# ? Enemies veiw
#--------------------------------------------------------------------------
def enemies_view
if @event_direction == 2
if @playery >= @eventy
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = false
$game_map.need_refresh = true
end
end
end
if @event_direction == 4
if @playerx <= @eventx
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = false
$game_map.need_refresh = true
end
end
end
if @event_direction == 6
if @playerx >= @eventx
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = false
$game_map.need_refresh = true
end
end
end
if @event_direction == 8
if @playery <= @eventy
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_system.timer = 420
$game_system.timer_working = false
$game_map.need_refresh = true
end
end
end
end
#--------------------------------------------------------------------------
# ? check = View_Range.new(EventID, Veiw Range, Local Switch)
# check.enemies_straight_view
#--------------------------------------------------------------------------
def enemies_straight_view
# checks the x direction
if @playerx == @eventx
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_map.need_refresh = true
end
# checks the y direction
if @playery == @eventy
$game_self_switches = {[$game_map.map_id, @event_num, @event_locial_switch] => true}
$game_map.need_refresh = true
end
end
end