SRL Archive - SRL Updates & Announcements

SPS-RS3 Updates


Olly

2013-12-29 13:47:29

First of I apologise for not making this months ago… I just kept putting it off and off. :p

SPS for RS3 has had quite a few changes, the biggest being changing sps to use a TSPSArea record. Why is this? It allows us to have multiple maps loaded at once.

ie. something like this will work;

var
map_underground, map_above_ground: TSPSArea;

begin
map_underground.setup('underground', RUNESCAPE_OTHER);
map_above_ground.setup('aboveground', RUNESCAPE_SURFACE);

writeln(map_above_ground.getPlayerPos());
writeln(map_underground.getPlayerPos());
end.

But i have included a TSPSArea variable "sps" so you don't have to define any vars if you just want one map.

Including sps has changed.

To have the sps updater download the new file, we had to move all the files into a new folder, this is /lib. So to include sps it is now
{$i sps/lib/sps-rs3.simba}

How to setup SPS?
SPS setup is pretty much the same, although it's a type function (like all the rest :p)
  // image name // constant for what folder the image is in, RUNESCAPE_SURFACE or RUNESCAPE_OTHER
sps.setup('air_altar_map', RUNESCAPE_SURFACE);

How to get players postion?

This has changed slightly, only the function name, (SPS_GetMyPos > sps.getPlayerPos());
sps.getPlayerPos(); 

Final infomation

The rest of the functions are still there, these are:
  • function TSPSArea.walkToPos(pos: TPoint; playerPos: TPoint): boolean;
  • function TSPSArea.walkToPos(pos: TPoint): boolean; overload;
  • function TSPSArea.walkPath(path: TPointArray): boolean;
  • function TSPSArea.blindWalk(pos: TPoint): boolean;

Dont forget, you don't actually call TSPSArea you call the variable, so sps or any custom TSPSArea you have. :)

I've also added a debug function, this is TSPSArea.debugPlayerPos() which is as simple as is sounds, it debugs your players location on the map as seen here.

More infomation!

  • The sps any angle variable is 'spsAnyAngle' this is default set as false, enabling it will allow sps to work at any angle (at the cost of some speed, and accuracy).
  • Is sps more accurate? it's hard to say
  • we gain some scan area since the minimap is square, but the minimap in openGL mode is more smooth, which may hurt sps.
  • I have also deleted all old maps, since they are useless in both osr, and rs3 now. If you have a custom SPS map which is high quality feel free to post it, and i can try and add it to the sps updater.

Feel free to post if any of you guys have questions :)

Ashaman88

2013-12-29 13:52:19

SPS has worked great at LRC, thanks Olly for the updates!

Sjoe

2013-12-29 13:56:00

Nice updates!

Euhm the one issue where sps.getPlayerPos(); fails is when runescape automatically shifts the minimap.
SPS has trouble finding its correct position then :( (This is with SPSAnyAngle enabled)

I'm sure it's cause of that, cause I manually re-allign my minimap and it works perfectly again.

Also clicking the compass won't help, because the 'angle shift' in the minimap stays.

Wu-Tang Clan

2013-12-29 14:01:51

I overrode an update and am still getting this:


Exception in Script: Runtime error: "Access violation" at line 65, column 18 in file "C:\Simba\Includes\sps\sps-rs3.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image, 2]
File[C:\Simba\Includes\SRL-6/logs/SRL log (24-12-13 at 02.40.58 PM).txt] has not been freed in the script, freeing it now.

Do you know anything about that?

Olly

2013-12-29 14:10:16

From: Wu-Tang Clan
I overrode an update and am still getting this:


Exception in Script: Runtime error: "Access violation" at line 65, column 18 in file "C:\Simba\Includes\sps\sps-rs3.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image, 2]
File[C:\Simba\Includes\SRL-6/logs/SRL log (24-12-13 at 02.40.58 PM).txt] has not been freed in the script, freeing it now.

Do you know anything about that?


Are your plugins updated?

Wu-Tang Clan

2013-12-29 14:44:46

From: Olly
Are your plugins updated?


Opened the wrong script and didn't have the SPS include written right, so problem solved.

superduperd

2013-12-29 16:48:35

does the following error has anything to do with this update?


Exception in Script: Unknown declaration "SPS_GatherRotatedMinimap" at line 277, column 19 in file "C:\software\simba\Simba\Scripts\AIO_Divination-master\div_include.simba"

Olly

2013-12-29 17:19:22

Yea i combined two functions to make it alot faster and cleaner.

superduperd

2013-12-29 17:49:21

ok thank you for the update!

footballjds

2013-12-30 10:17:34

I need to do some updating… I've fallen out of the loop.
Olly, if you wanna give me a special nudge when you change so much, haha jk

Spartan 117

2014-01-03 01:49:41

My sps\img\runescape_surface folder is completely empty. How do I get the spa maps? I have updated srl and sps

The Mayor

2014-01-03 03:58:52

From: grahambr
My sps\img\runescape_surface folder is completely empty. How do I get the spa maps? I have updated srl and sps


There isn't any as the old maps are now useless with RS3. You have to make your own maps, which are more accurate anyway.

Here is a tutorial how to do it. Although it is old the same ideas still apply. Its actually really easy now since you can expand the minimap really big to get your screenshot ;)

Spartan 117

2014-01-03 12:58:37

thanks for the help

CRASH_OVERRIDE

2014-07-07 06:41:04

So if i wanted to use TWO maps on the same surface(RUNESCAPE_OTHER), how would i implement this?

Turpinator

2014-07-07 13:27:56

From: CRASH_OVERRIDE
So if i wanted to use TWO maps on the same surface(RUNESCAPE_OTHER), how would i implement this?

From: Olly
SPS for RS3 has had quite a few changes, the biggest being changing sps to use a TSPSArea record. Why is this? It allows us to have multiple maps loaded at once.

ie. something like this will work;

var
map_underground, map_above_ground: TSPSArea;

begin
map_underground.setup('underground', RUNESCAPE_OTHER);
map_above_ground.setup('aboveground', RUNESCAPE_SURFACE);

writeln(map_above_ground.getPlayerPos());
writeln(map_underground.getPlayerPos());
end.

did i miss something here?

Olly

2014-07-07 15:33:29

From: Turpinator
did i miss something here?


No sir that is correct!

CRASH_OVERRIDE

2014-07-08 06:20:41

Ok, just because i am not 100% fluent at following someones post/tutorial(?) doesn't really mean i should deserve blank answers, i mean i am trying to learn here, come on guys. I will try and abbreviate my question a bit better for you.

With a script i am working on, all the walkpaths work fine everytime, i tested it over and over, on both maps. As soon as it comes to using 2 maps, it wont walk either paths.



In the main "begin end." after setupSRL(); i have the following procedure calls:
load_DTMs();
load_SPSPaths();

the load_SPSPaths() procedure:

procedure load_SPSPaths();
begin
pathToTree:= [Point(70, 138), Point(122, 157), Point(167, 153)];
pathToRock:= [Point(167, 153), Point(122, 157), Point(70, 138)];
pathToBird:= [Point(322, 358), Point(334, 349)];
pathToBlock:= [Point(322, 358), Point(342, 367), Point(363, 369)];
pathToBoat:= [Point(182, 141), Point(119, 160), Point(96, 148)];
pathToPerson:= [Point(184, 143), Point(143, 157), Point(103, 153), Point(65, 149)];
pathToTest:= [Point(413, 343), Point(392, 355), Point(374, 367), Point(349, 368), Point(324, 359)];
SPSAnyAngle := true;

path1.setup('crash_map1', RUNESCAPE_OTHER);
path2.setup('crash_map2', RUNESCAPE_OTHER);
end;

My scrips main "Variables" for walking:


path1, path2: TSPSArea;

pathToTree, pathToRock, pathToBird, pathToBlock, pathToBoat, pathToPerson, pathtoTest: TPointArray;

My walking procedure for walking to one of the above:
procedure walkToRock();
begin
sps.walkPath(pathToRock);
//some other stuff here...
end;


Now, when i use the above, it will not walk to any of my paths, it just skips that step(haven't added failsafes yet!), but when i get rid of the path1, path2: TSPSArea variables and blank out one of these paths lets say //path1 and rename the other path to SPS.setup('crash_map2', RUNESCAPE_OTHER); it walks all those paths that use path2 fine.

I can't seem to get it to work when i add both walkpaths.

I assumed this was because its trying to use RUNESCAPE_OTHER twice for 2 maps? Which is why i asked how you would do it for the same SURFACE? I believe the script would work fine if i stuck one of the maps into RUNESCAPE_SURFACE, but i really don't want it in their as it is not the appropriate area so could you give some feedback on a way for this to work, and maybe a response as to what i did wrong?.

Press Play

2014-07-08 06:26:17

From: CRASH_OVERRIDE

It's because you need to use
path1.walkPath(pathToRock);
// OR
path2.walkPath(pathToRock);
because those are the paths TSPSAreas you are setting up (in load_SPSPaths())

CRASH_OVERRIDE

2014-07-08 07:33:03

Makes sence, can't believe i couldn't work that out :duh:.

However, it can't hurt now for others to see how that works now.


Thankyou "Press Play".

CRASH_OVERRIDE

2014-07-30 01:32:55

Here are some maps i have made, they both work 110% so far with no issues for 3 weeks.

Falador Mine:

Dwarven Mine:

Ian

2014-07-30 01:37:31

Dwarven Mine and Dwarven Mine Resource Dungeon would be more accurate. They look pretty good though.