- You can now add a new region identified by its grid and widget id (use /grid to identify when standing over it)
- New LUA Functions:
CreateWidgetRegion(Zone, Version, RegionName, EnvName, GridID, WidgetID, Dist)
* Dist is optional when set to 0.0f we rely only on the widget id, when dist is set we do a radius around the widgets locations
* RegionName and EnvName define the script file so if you are in QueensColony (tutorial_island02) and the RegionName is TestRegion, script is RegionScripts/tutorial_island02/TestRegion.lua
RemoveRegion(Zone, Version, RegionName)
By default Version is 0 on both, but you could specify a version like 546 if you had a DoF client mapped
Example campfire in the newbie area:
ZoneScripts/QueensColony.lua
function init_zone_script, add line:
CreateWidgetRegion(Zone, 0, "TestRegion", "", 924281492, 4117633379, 2.0)
Create new script, RegionScripts/tutorial_island02/TestRegion.lua with the following:
function TakeFireDamage(Spawn)
local invul = IsInvulnerable(Spawn)
if invul == true then
return 0
end
local hp = GetHP(Spawn)
local level = GetLevel(Spawn)
local damageToTake = level * 1
-- if we don't have enough HP make them die to pain and suffering not self
if hp <= damageToTake then
KillSpawn(Spawn, null, 1)
else
DamageSpawn(Spawn, Spawn, 192, 3, damageToTake, damageToTake, "Fire!", 0, 0, 1, 1)
end
end
function EnterRegion(Zone, Spawn, RegionType)
-- initial tick for hitting the fire
TakeFireDamage(Spawn)
-- 5 second Tick
return 5000
end
function Tick(Zone, Spawn, RegionType)
TakeFireDamage(Spawn)
-- returning 1 would stop the Tick process until Spawn leaves/re-enters region
return 0
end
Nav pathing these large maps is still a challenge, but there have been improvements to capture more of the map. There is some manual process that will be required for these larger maps to be handled at a later time..
In support of issue #129