Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Near Fantastica's View Range

Status
Not open for further replies.
Does someone have a copy of this? I tried his test bed at the CA, but I couldn't download it... ( Yes I've registered). So, if someone has it, please post it.
Thanks in advance,
Mr_Smit
 
Here is the script
Code:
#==============================================================================
#   View Range Script
#------------------------------------------------------------------------------
#    By: Near Fantastica
#    Date: 07/04/05
#==============================================================================

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
 #--------------------------------------------------------------------------
 def initialize
   @playing_bgs = []
   @bgs = BGS.new
   @bgs.pitch = 100
   @event_id = 0
   @event_locial_switch = ""
   @view_range = 0
   @playerx = 0
   @playery = 0
   @eventx = 0
   @eventy = 0
   @event_direction = 0
 end
 #--------------------------------------------------------------------------
 #     Max Sound Effect Range is 8 units DO NOT OVER LAP
 #     or it will go into super lag mode you have been warned
 #     This is because you are trying to play 2 different sound
 #     effects and will cycles between them
 #
 #     Note : This overrides the maps default sound effect
 #--------------------------------------------------------------------------
 def event_sound(event_id, bgs_name)
   @bgs.name = bgs_name
   @event_id = event_id
   @playerx = $game_player.x
   @playery = $game_player.y
   @eventx = $game_map.events[@event_id].x
   @eventy = $game_map.events[@event_id].y
   @event_direction = $game_map.events[@event_id].direction
   radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
   if radius > 64
     if @playing_bgs[event_id] != nil
       @playing_bgs[event_id] = nil
       $game_system.bgs_fade(1)
       return
     end
   elsif radius <= 64 and radius > 49
     if @playing_bgs[event_id] == nil
       @bgs.volume = 30
       @playing_bgs[event_id] = @bgs
       $game_system.bgs_play(@bgs)
       return
     end
     @bgs.volume = 30
     if @bgs.volume != @playing_bgs[event_id].volume or
         @bgs.name != @playing_bgs[event_id].name
       @playing_bgs[event_id] = @bgs
       $game_system.bgs_play(@bgs)
       return
     end
   elsif radius <= 49 and radius > 36
     @bgs.volume = 40
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   elsif radius <= 36 and radius > 25
     @bgs.volume = 50
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   elsif radius <= 25 and radius > 16
     @bgs.volume = 60
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   elsif radius <= 16 and radius > 9
     @bgs.volume = 70
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   elsif radius <= 9 and radius > 4
     @bgs.volume = 80
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   elsif radius <= 4 and radius > 1
     @bgs.volume = 90
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   elsif radius = 1
     @bgs.volume = 100
     @playing_bgs[event_id] = @bgs
     $game_system.bgs_play(@bgs)
     return
   end
 end
 #--------------------------------------------------------------------------
 def enemies_view(event_id, view_range, els)
   @event_id = event_id
   @view_range = view_range
   @event_locial_switch = els
   @playerx = $game_player.x
   @playery = $game_player.y
   @eventx = $game_map.events[@event_id].x
   @eventy = $game_map.events[@event_id].y
   @event_direction = $game_map.events[@event_id].direction
   if @event_direction == 2
     if @playery >= @eventy
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
   end
   if @event_direction == 4
     if @playerx <= @eventx
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
   end
   if @event_direction == 6
     if @playerx >= @eventx
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
   end
   if @event_direction == 8
     if @playery <= @eventy
       radius = (@playerx-@eventx)*(@playerx-@eventx) + (@playery-@eventy)*(@playery-@eventy)
       if radius <= @view_range
         key=[$game_map.map_id, @event_id, @event_locial_switch]
         $game_self_switches[key] = true
         $game_map.need_refresh = true
       end
     end
   end
 end
end
#======================================================
class Scene_Title
 #--------------------------------------------------------------------------
 alias vr_scene_title_update update
 #--------------------------------------------------------------------------
def update
  $view_range = View_Range.new
  vr_scene_title_update
end
end
#======================================================
class Game_System
   attr_accessor :playing_bgs
end
#======================================================
class BGS
 #--------------------------------------------------------------------------
 attr_accessor :name
 attr_accessor :volume
 attr_accessor :pitch
 #--------------------------------------------------------------------------
 def initialize
   @name
   @volume
   @pitch
 end
end
#======================================================
class Game_Map
 #--------------------------------------------------------------------------
 attr_accessor :map
end
 
This topic has been resolved. If Mr_Smit or any other users have any questions or further problems regarding this topic, please create a new thread about them.

Thank you!
 
Status
Not open for further replies.

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top