#==============================================================================
# Veiw Range Script
#------------------------------------------------------------------------------
# By: Near Fantastica
# Date: 25/11/04
#==============================================================================
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
#--------------------------------------------------------------------------
# ● check = View_Range.new(EventID, Veiw Range, Local Switch)
# check.enemies_view
#--------------------------------------------------------------------------
def event_view
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = true
end
end
#--------------------------------------------------------------------------
# ● check = View_Range.new(EventID, Veiw Range, Local Switch)
# check.enemies_view
#--------------------------------------------------------------------------
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
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = 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
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = 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
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = 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
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = true
$game_system.timer = 420
$game_system.timer_working = false
$game_map.need_refresh = true
end
end
end
end
end
To View Range który działa pod XP, okazało się że działa też pod VX.
Chciałbym, żeby 'widzenie' działało, niezależnie od tego w którą stronę obrócone jest zdarzenie. Tak jak by zdarzenia miały oczy dookoła głowy. :S
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 08 Maj, 2011 13:23
Spróbuj 'View Range' zamienić na:
Spoiler:
Kod:
#==============================================================================
# Veiw Range Script
#------------------------------------------------------------------------------
# By: Near Fantastica
# Date: 25/11/04
#==============================================================================
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
#--------------------------------------------------------------------------
# ● check = View_Range.new(EventID, Veiw Range, Local Switch)
# check.enemies_view
#--------------------------------------------------------------------------
def event_view
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = true
end
end
#--------------------------------------------------------------------------
# ● check = View_Range.new(EventID, Veiw Range, Local Switch)
# check.enemies_view
#--------------------------------------------------------------------------
def enemies_view
@playerx-=@eventx
@playerx*=@playerx
@playery-=@eventy
@playery*=@playery
@playerx+=@playery
@view_range*=@view_range
if @playerx <= @view_range
key=[$game_map.map_id, @event_num, @event_locial_switch]
$game_self_switches[key] = true
$game_system.timer = 420
$game_system.timer_working = false
$game_map.need_refresh = true
end
end
end
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum