02-21-2012, 04:53 AM
(This post was last modified: 09-02-2024, 08:18 PM by DerVVulfman.)
Veiw Range Script
Version: 3 Eta
by Jaime 'Near Fantastica' Webster
Edit by DerVVulfman
Version: 3 Eta
by Jaime 'Near Fantastica' Webster
Edit by DerVVulfman
Features
- Lets events see the player and interact with it in different ways depending on how close the player is
- To add this script make a script call it View_Range and add the following into it then call it accordingly with a script call
- Can handle BGS effects
By the poster
I didn't create the original scripts, and as of now the links that Near Fantastica put up are down (and he can't get to them) and his RMXP system is down. Given that he posted the original (though broken) demo links here, there should be no problem to post the script.
I tinkered with the system and made a version 3 (still tinkering :) ) that combines the best features of both... and a little more.
Script
View Range v3 Eta
Adaptability
It was discovered and reported in 2012 by Lysop of House Slashers that the v3 Delta edition of Veiw Range was functional with RPGMaker VX. And later, the eta version was reported being functional with RPGMaker VXAce. This is why only the eta version appears and not the original v1 or v2 versions available with RPGMaker XP.
Ergo, v3 Eta is the exact same code as within the RPGMaker XP post.
Instructions
I included built in instructions that allow you to use local self-switches and global RMXP switches, as well as being able to control the volume when using the event_sound call. Also, the system's 'view' calls now includes an optional switch so impassable tiles can 'block' the view/detection system.
Take Care,
Near
Enjoy,
Mike aka DerVVulfman
* - * - * - * - * - *
For both RPGMaker XP and RPGMaker VX, it lets events find another event or the player within a certain range, and impassible tiles can block an event's view of its target if the 'block' parameter in the event viewing call is set to true.
IE:
$view_range.enemies_view(2, 12, 14, nil, true)
Lets event #2 see the player if it's within 12 tiles, but only if there are no impassible tiles blocking.
-and-
$view_range.enemies_view(2, 12, 14, nil)
Lets event #2 see the player if it's within 12 tiles regardless of impassible tiles
The only thing necessary for View Range to fully function with RPGMaker VX is a bit of editing so the Event Sound feature can function.
Normally, and with RPGMaker XP, it runs some statements within the Game_System class. These statements were removed from RPGMaker VX. But if you paste the below code into RPGMaker VX, you restore these methods that the Event Sound feature uses without any conflicts or side effects.
Code:
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# This class handles system-related data. Also manages vehicles and BGM, etc.
# The instance of this class is referenced by $game_system.
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Play Background Sound
# bgs : background sound to be played
#--------------------------------------------------------------------------
def bgs_play(bgs)
@playing_bgs = bgs
if bgs != nil and bgs.name != ""
Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume, bgs.pitch)
else
Audio.bgs_stop
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# * Fade Out Background Sound
# time : fade-out time (in seconds)
#--------------------------------------------------------------------------
def bgs_fade(time)
@playing_bgs = nil
Audio.bgs_fade(time * 1000)
end
#--------------------------------------------------------------------------
# * Get Playing Background Sound
#--------------------------------------------------------------------------
def playing_bgs
return @playing_bgs
end
end