If you dont want to read all difficult source code, try this:
1) Put this code into author functions (after line -- #Author Functions Go Here# --)
function GetNewZone(refPt, name, distance, direction, radius)
local dist = Wherigo.Distance(distance, 'm')
local newZp = Wherigo.TranslatePoint(refPt, dist, direction)
dist = Wherigo.Distance(radius, 'm')
local pts = {
Wherigo.TranslatePoint(newZp, dist, 45),
Wherigo.TranslatePoint(newZp, dist, 135),
Wherigo.TranslatePoint(newZp, dist, 225),
Wherigo.TranslatePoint(newZp, dist, 315),
}
local tempz = Wherigo.Zone{
Cartridge = cartCWGhideandseek,
Name = name,
OutOfRangeName = "",
InRangeName = "",
Description = [[]],
Visible = false,
Active = false,
DistanceRange = Wherigo.Distance(-1, "m"),
ShowObjects = "OnEnter",
ProximityRange = Wherigo.Distance(10, "m"),
AllowSetPositionTo = false,
Points = pts,
}
return tempz
end
Now if you want to create a zone on the fly, use this syntax:
GetNewZone(refPt, name, distance, direction, radius) where:
refPt - reference position from where you want to measure distance
name - name of the zone
distance - from reference position to center of zone (in metres)
direction - azimuth from reference position to center of new zone
radius - radius of a new zone
For example, if you want to create a zone 50 meter from your current position to the west, with name NewZone and radius 10 metres:
GetNewZone(Player.ObjectLocation, "NewZone", 50, 270, 10)
You cant write this code in official builder, use some simple text editor like notepad or for example PSPad with LUA syntax highlight.