Hello Again.
Well, i have seen the MACL and i found the famous ViewRange script (Near fantastica) and i have a Doubt about this.
Does this script work of the same way than the original?, because the script from the MACL its more short.
Here is it.
If the Answer is Yes, how i can use this?..
Thanks.
Well, i have seen the MACL and i found the famous ViewRange script (Near fantastica) and i have a Doubt about this.
Does this script work of the same way than the original?, because the script from the MACL its more short.
Here is it.
Code:
#==============================================================================
# ** Modules.View Range (5.0) By Near Fantastica & SephirothSpawn
#------------------------------------------------------------------------------
# * Description :
#
# The View Range Module is used to test objects position in comparision with
# another object. It can test if an object is within a defined circular
# range of another object or a rectangular defined region. It can also tell
# you this distances between objects.
#------------------------------------------------------------------------------
# * Syntax :
#
# Test if object is within defined range from another object :
# - VR.in_range?(object1, object2, range)
# - VR.in_range?(object1x, object1y, object2x, object2y, range)
#
# Test if object is within defined rectanlge :
# - VR.in_rect_range?(object, <args>)
# - VR.in_rect_range?(x, y, <args>)
#
# args can either be : x, y, width, height or Rect.new(x, y, width, height)
#
# Test range between objects :
# - range = VR.range(object1, object2, <integer>)
# - range = VR.range(object1x, object1y, object2x, object2y, <integer>)
#
# integer : if true, returns integer ; if false, returns float
#==============================================================================
MACL::Loaded << 'Modules.View Range Module'
#==============================================================================
# ** View Range
#==============================================================================
module VR
#----------------------------------------------------------------------------
# * Within Range Test
#----------------------------------------------------------------------------
def VR.in_range?(*args)
# If 3 Arguments (Element, Object, Range)
if args.size == 3
x = (args[0].x - args[1].x) ** 2
y = (args[0].y - args[1].y) ** 2
r = args[2]
# If 5 Arguments (Elementx, Elementy, Objectx, Objecty, Range)
elsif args.size == 5
x = (args[0] - args[2]) ** 2
y = (args[1] - args[3]) ** 2
r = args[4]
else
p 'Wrong Defined Number of Arguments'
return
end
return (x + y) <= (r * r)
end
#----------------------------------------------------------------------------
# * Within Rect Range Test
#----------------------------------------------------------------------------
def VR.in_rect_range?(*args)
# If 2 Arguments (Object, Rect)
if args.size == 2
x_, y_ = args[0].x, args[0].y
x, y, w, h = args[1].x, args[1].y, args[1].width, args[1].height
# If 3 Arguments (Objectx, Objecty, Rect)
elsif args.size == 3
x_, y_ = args[0], args[1]
x, y, w, h = args[2].x, args[2].y, args[2].width, args[2].height
# If 5 Arguments (Object, Rectx, Recty, Rectwidth, Rectheight)
elsif args.size == 5
x_, y_ = args[0].x, args[0].y
x, y, w, h = args[1], args[2], args[3], args[4]
# If 6 Arguments (Objectx, Objecty, Rectx, Recty, Rectwidth, Rectheight)
elsif args.size == 6
x_, y_, x, y, w, h = *args
else
p 'Wrong Defined Number of Arguments'
return
end
# Return Object Within Rect
return x_.between?(x, x + w) && y_.between?(y, y + h)
end
#----------------------------------------------------------------------------
# * Range
#----------------------------------------------------------------------------
def VR.range(*args)
# If 2 Arguments (Element, Object)
if args.size == 2
x = (args[0].x - args[1].x) * (args[0].x - args[1].x)
y = (args[0].y - args[1].y) * (args[0].y - args[1].y)
integer = true
# If 3 Arguments (Element, Object, Integer
elsif args.size == 3
x = (args[0].x - args[1].x) * (args[0].x - args[1].x)
y = (args[0].y - args[1].y) * (args[0].y - args[1].y)
integer = args[2]
# If 4 Arguments (Elementx, Elementy, Objectx, Objecty)
elsif args.size == 4
x = (args[0] - args[2]) * (args[0] - args[2])
y = (args[1] - args[3]) * (args[1] - args[3])
integer = true
# If 5 Arguments (Elementx, Elementy, Objectx, Objecty, integer)
elsif args.size == 5
x = (args[0] - args[2]) * (args[0] - args[2])
y = (args[1] - args[3]) * (args[1] - args[3])
integer = args[4]
else
p 'Wrong Defined Number of Arguments'
return
end
r = Math.sqrt(x + y)
return integer ? r.to_i : r
end
end
If the Answer is Yes, how i can use this?..
Thanks.