SphereCommunity
Accessing a region coordinates - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: Script Help (/Forum-Script-Help)
+--- Thread: Accessing a region coordinates (/Thread-Accessing-a-region-coordinates)



Accessing a region coordinates - Samba - 02-09-2014 03:05 AM

Hello, I'd like to spawn some creatures in a region i've defined like this:
Code:
[ROOMDEF a_dragonspawn]
NAME=Dragonspawn
FLAGS=region_flag_nobuilding|region_flag_underground
P=1484,1627,20
RECT=1479,1632,1488,1623,0

Is there a way I could make a function that takes a ROOMDEF name as a parameter and do stuff in its rectangle?

Thanks


RE: Accessing a region coordinates - XuN - 02-09-2014 03:56 AM

If you want to retrieve its coordinates to work with them <room.rect> will give you back the amount of RECT defined in the script, <room.rect.n> will give you the coords of the N specified RECT number (This works with areas too).

If you only want to call something to happen on the room just use room.yourfunction or <room.yourfunction>.


RE: Accessing a region coordinates - Samba - 02-09-2014 04:22 AM

Yes, I've read that on the wiki, thanks.
My problem is that I don't know how to work on a RECT, I couldn't find any example, sorry! Sad

I'd like to know if something like RECT.NorthPoint and RECT.SouthPoint would exist... thanks!


RE: Accessing a region coordinates - XuN - 02-09-2014 05:20 AM

Code:
[Function yourfunction]
local.oldargs=<args>//needed only if you pass args to your function
for <room.rect>
args=<room.rect.<dlocal._for>>
local.x_low=<argv[0]>
local.y_low=<argv[1]>
local.x_high=<argv[3]>
local.y_high=<argv[4]>
local.map_<dlocal._for>=<argv[5]>
//so now you have in locals the values like this from your example RECT=1479(is now local.x_low),1632(local.y_low),1488(local.x_high),1623(local.y_high),0(local.map​):
//this will loop through all RECT you have, hence the FOR loop.
endfor
args=<local.oldargs>//only needed if you have args, like the first line.



RE: Accessing a region coordinates - Samba - 02-09-2014 05:38 AM

I will be testing it soon! Thanks a lot! Smile
I've still got loads of question, I just feel like I asked too much for today =P
Thanks again! Smile

p.s. now I understand what you meant on rect.N, sorry Smile


RE: Accessing a region coordinates - Samba - 02-09-2014 08:27 AM

Uhm, it finds the room only if i use this trick:
<serv.map(<eval 1451>,<eval 1725>,<eval 0>).room>

BUT
It doesn't find any rect in there, even though I defined it (as you can see up in my first post...)

By wiki, there is no .RECT variable available when you access a ROOM (but, of course the rect exists, since if I go where I specified the rect and say .where in-game, it answers me that i'm in the dragonspawn Shock )