SRL Archive - Jr. Member General Help and Discussion

SRL Members, what do you think of my scripts?


Twinki

2015-01-11 22:02:35

I'm considering applying for SRL Member, but i'm not sure if my scripts are up to standards.

I'll post my scripts in order of when I made them with some extra info to the side. These scripts are all made for RSPS's.

First I made a Ardy Knight Pickpocket script, it was meant for easy money. It does have ACA, but keep in mind this was the first script I ever started working with.


Program KnighPP;
{$I SRL/SRL.Simba}
{$I RLInclude.Simba}

Const
MaxHP = 990; //Your Total HP
StartEating = 24; // This will start eating food at 24% of your total HP
StopEating = 90; // This will sttop eating food at 90% of your total HP

// Figuring out HP Percentages \\
{
The HP Orb by the Minimap will start blinking red when you get 20-25%
below your Health. This should be the same at all levels.

HP Orb turns yellow at around 50-60% below health
HP Orb turns green around 80-90% below health

If you wish to figure out what percentage to use on your own,
visit [url]http://www.csgnetwork.com/csgpercent.html[/url] and use the
Calculate The Value Of A Percentage Of A Value Section.
}
Var
PickPockets, RockTail:Integer;

// ACA for Knight \\
function KnightColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.19, 0.78);

FindColorsSpiralTolerance(MSCX, MSCY, arP, 11542895, MSX1, MSY1, MSX2, MSY2, 21);
if (Length(arP) = 0) then
begin
Writeln('Failed to find Knight, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;

arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);

for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 2.75) and (X <= 26.73) and (Y >= 1.72) and (Y <= 15.51) and (Z >= 7.95) and (Z <= 84.02) then
begin
Result := arC[i];
//Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('Failed to find the Knight');
end;

// Find and PickPocket Knight \\
procedure FindKnight;
var
X, Y:Integer;
begin
if FindColorTolerance(X, Y, KnightColor, 5, 3, 511, 329, 10) then
begin
WriteLn('Found Knight');
MMouse(x, y, 0, 0);
ClickMouse2(False);
wait(2000);
ChooseOption('Pickpocket Knight');
wait(250);
WriteLn('Picked Knight');
inc(PickPockets);
end;
end;

// Eat Rockatils when low HP \\
procedure EatFood;
var
X, Y, HPLevel, StartEatHP, StopEatHP:Integer;
ColourString:String;
begin

HPLevel := RL_GetMMLevels('hp', ColourString);

StartEatHP := Round(MaxHP / 100 * StartEating);
StopEatHP := Round(MaxHP / 100 * StopEating);
if (HPLevel <= StartEatHP) then // if the value we get is lower than 20% start eating.
begin
Repeat
if FindDTM(RockTail, X, Y, MIX1, MIY1,MIX2, MIY2) then
begin
MMouse(x, y, 0, 0);
ClickMouse2(True);
wait(1500);
WriteLn('Eating Rocktail...');

HPLevel := RL_GetMMLevels('hp', ColourString); //Call this again, to get new value
end else Exit; //Exits the procedure if we CANNOT find food , failsafe.
Until(HPLevel >= StopEatHP) // until we get the value of 80%
end;
end;

// Progress Report \\
procedure ProgressReport;
begin
wait(500);
ClearDebug;
WriteLn('***************PROGRESS REPORT*************************************');
WriteLn('* Script has run for : '+ TimeRunning +'');
WriteLn('* You have picpocketed '+ IntToStr(PickPockets) +' times!');
WriteLn('*******************************************************************');



end;

// Main Loop \\
begin
SetupSRL;
ClearDebug;
RockTail := DTMFromString('mWAAAAHicY2FgYDjKxMBwEogPA/ERIOZlZGBgB2JBIOYE4vyERIaO0jKGvYuXMDQXFjKgA0Y0DAIADxEJZA==');
Repeat
EatFood;
FindKnight;
ProgressReport;
Until (False)
FreeDTM(RockTail);
end.


At the time I was reading Mayor's guides on RSPS scripting. The script really wasn't viable for release since I was using the direct client, which would sometimes mess up with the client dimensions. It required a lot of changing and such, but it worked and it ran for hours on end. When I was scripting this, I was also developing an Include to make things easier. Some of the include was copied and pasted from SRL that I ended up editting and changing some things around to make it work for the RSPS I was scripting for.

So here's RLTools.

{
RL Tools Include
}
Var
RL_MIX1, RL_MIY1, RL_MIX2, RL_MIY2, RL_MMCX, RL_MMCY:Integer;
Inventory:TBoxArray;

(*
RL_InCombat
~~~~~~~~~~~

.. code-block:: pascal

Function RL_InCombat

Detects if the player is in combat using AveragePixelShift
Returns -1 if failed.

.. note::

by RL Anon for RLTools Include
Must copy the function into the script



function Rl_InCombat: Boolean;
var
PBox: TBox;
begin
PBox := IntToBox(245, 110, 285, 175);
Result := (AveragePixelShift(PBox, 300, 100) > 700);
Writeln(IntToStr(AveragePixelShift(PBox, 300, 250)));
end;
*)



(*
RLGetMMLevels
~~~~~~~~~~~

.. code-block:: pascal

Function GetMMLevels(LevelType : String;var ColorSign : String): integer;

Returns the level shown next to the minimap.
Colorsign returns the color of the text (Green,Yellow,Orange,Red).
Returns -1 if failed.

.. note::

by Raymond / Wizzup / Sabzi / NCDS

Edited by RL Anon for RLTools

Example:

.. code-block:: pascal

Value := RLGetMMLevels( 'hp' ) ; // Will retrieve your Hit Points
Value := RLGetMMLevels( 'pray' ) ; // Will retrieve your Prayer Points
Value := RLGetMMLevels( 'run' ) ; // Will retrieve your Run energy
Value := RLGetMMLevels( 'summon' ) ; // Will retrieve your Summoning Points

*)
function RLGetMMLevels(LevelType: string; var ColorSign: string): Integer;
var
Colors : TIntegerArray;
Signs: TStringArray;
P: TPointArray;
I: Integer;
B: TBox;
begin;
Result := -1;
ColorSign := '';
case LowerCase(Leveltype) of
'health', 'hp', 'hitpoints', 'constitution': B := IntToBox(722,28,744,40);
'prayer', 'pray' : B := IntToBox(735,66,762,82);
'run','energy' : B := IntToBox(735,103,762,122);
'summon', 'summoning' : B := IntToBox(719,119,745,156);
else
begin;
//srl_Warn('GetMMLevels', 'Invalid LevelType: ''' + LevelType + '', warn_AllVersions);
Exit;
end;
end;
Colors := [65280, 65535, 2070783, 255];
Signs := ['Green', 'Yellow', 'Orange', 'Red'];
for I := 0 to 3 do
begin
With B do
FindColorsTolerance(P, Colors[i], x1, y1, x2, y2, 50);
if Length(P) < 1 then
Continue;
Result := StrToIntDef(GetNumbers(GetTextAtExWrap(B.X1, B.Y1, B.X2, B.Y2, 0, 4, 4, Colors[i], 20, statChars)), -1);
if (Result > -1) then
begin
ColorSign := Signs[i];
Exit;
end;
end;
end;


function RL_FindCoins(var X, Y: Integer; Area: string): Boolean;
var
B: TBox;
CTS, I, J, H, L: Integer;
Pts, tPts: TPointArray;
ATPA: T2DPointArray;
V: array [0..1] of TVariantArray;
begin
case Lowercase(Area) of
'inv', 'inventory': B := IntToBox(RL_MIX1, RL_MIY1, RL_MIX2, RL_MIY2);
'bank': B := IntToBox(MBx1, MBy1, MBx2, MBy2);
'trade': B := IntToBox(323, 73, 509, 302);
'your trade': B := IntToBox(9, 73, 196, 302);
end;
V[0] := [1606307, 4, 0.09, 1.32]; //Darker colour (top of coins)
V[1] := [2209251, 8, 0.04, 1.08]; //Lighter colour (rest of the coins)
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetLength(tPts, 0);
try
for I := 0 to 1 do
begin
SetColorSpeed2Modifiers(V[I][2], V[I][3]);
FindColorsTolerance(Pts, V[I][0], B.X1, B.Y1, B.X2, B.Y2, V[I][1]);
if (Length(Pts) < 10) then Exit;
ATPA := SplitTPAEx(Pts, 10, 10);
h := High(ATPA);
L := High(tPts) + 1;
SetLength(tPts, L + h + 1);
for J := 0 to H do
tPts[L + j] := MiddleTPA(ATPA[J]);
end;
ATPA := SplitTPAEx(tPts, 20, 20);
H := High(ATPA);
for I := 0 to H do
if (High(ATPA[I]) = 1) then
Break;
if (I > H) then Exit;
Result := True;
MiddleTPAEx(ATPA[I], X, Y);
finally
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
end;

//-----------------------------------------------------------------\\
//-- RL Tools --\\
//-- Compass functions --\\
//-----------------------------------------------------------------\\

(*
RL_ClickNorth
~~~~~~~~~~~~~~~
Clicks on the compass to face the north position.
.. note::
by RL Anon
*)
procedure RL_ClickNorth;
begin
if (Random(4) = 1) then
begin
Mouse(545, 5, 0, 0, mouse_right);
WaitOptionMulti(['ace', 'orth'], 1200);
end else
Mouse(545, 5, 0, 0, mouse_left);
end;

(*
RL_ClickNorthAngleHigh
~~~~~~~~~~~~~~~
Clicks on the compass to face the north position and makes
the angle the highest.
.. note::
by RL Anon
*)
procedure RL_ClickNorthAngleHigh;
begin
if (Random(4) = 1) then
begin
Mouse(545, 5, 0, 0, mouse_right);
WaitOptionMulti(['ace', 'orth'], 1200);
end else
Mouse(545, 5, 0, 0, mouse_left);
Wait(500);
KeyDown(38);
wait(RandomRange(1000, 1500));
KeyUp(38);
end;

(*
RL_MoveCameraEast
~~~~~~~~~~~~~~~
Moves the camera or compass to the east position
.. note::
by RL Anon
*)
Procedure RL_MoveCameraEast;
begin
RL_ClickNorth;
wait(1000);
KeyDown(37);
wait(1000);
KeyUp(37);
end;

(*
RL_MoveCameraWest
~~~~~~~~~~~~~~~
Moves the camera or compass to the West position
.. note::
by RL Anon
*)
Procedure RL_MoveCameraWest;
begin
RL_ClickNorth;
wait(1000);
KeyDown(39);
wait(1000);
KeyUp(39);
end;

(*
RL_MoveCameraSouth
~~~~~~~~~~~~~~~
Moves the camera or compass to the South position
.. note::
by RL Anon
*)
Procedure RL_MoveCameraSouth;
begin
RL_ClickNorth;
wait(1000);
KeyDown(39);
wait(2000);
KeyUp(39);
end;

(*
RL_SetHighAngle
~~~~~~~~~~~~~~~
Sets the camera angle to the highest
.. note::
by RL Anon
*)
Procedure RL_SetHighAngle;
begin
KeyDown(38);
wait(RandomRange(1000, 1500));
KeyUp(38);
end;

(*
RL_SetLowAngle
~~~~~~~~~~~~~~~
Sets the camera angle to the lowest
.. note::
by RL Anon
*)
Procedure RL_SetLowAngle;
begin
KeyDown(40);
wait(RandomRange(1000, 1500));
KeyUp(40);
end;

(*
RL_GetCompassAngleRadians
~~~~~~~~~~~~~~~
Gets the compass angle radians
.. note::
by RL Anon
*)
Function RL_GetCompassAngleRadians: Extended;
var
TPA: TPointArray;
T: TPoint;
B: TBox;
begin
B := IntToBox(523, 2, 570, 48);
with B do
FindColorsSpiralTolerance(T.x, T.y, TPA, 0, x1, y1, x2, y2, 0);
if Length(TPA) < 1 then
exit;
T := MiddleTPA(TPA);
Result := ArcTan2(-(T.Y - 24), T.X - 543) + Radians(90);
Result := fixRad(Result - Pi);
end;

(*
RL_PrintCompassAngleRadians
~~~~~~~~~~~~~~~
Prints the Compass Angle degree
.. note::
by RL Anon
*)
function RL_PrintCompassAngleDegrees: Extended;
begin
Result := Degrees(RL_GetCompassAngleRadians());
Writeln(Result);
end;

//-----------------------------------------------------------------\\
//-- RL Tools --\\
//-- Inventory functions --\\
//-----------------------------------------------------------------\\



function ExplodeBox(bx: TBox; rows, columns: integer): TBoxArray;
var
r, c, w, h, ew, eh, ow, oh, i, x, y: integer;
begin
if ((rows > 0) and (columns > 0) and (bx.X1 <= bx.X2) and (bx.Y1 <= bx.Y2)) then
begin
w := ((bx.X2 - bx.X1) + 1);
h := ((bx.Y2 - bx.Y1) + 1);
if (rows < 1) then
rows := 1
else
if (rows > h) then
rows := h;
if (columns < 1) then
columns := 1
else
if (columns > w) then
columns := w;
w := (w div columns);
h := (h div rows);
ew := (((bx.X2 - bx.X1) + 1) - (w * columns));
eh := (((bx.Y2 - bx.Y1) + 1) - (h * rows));
SetLength(Result, (rows * columns));
y := bx.Y1;
for r := 0 to (rows - 1) do
begin
x := bx.X1;
if ((eh > 0) and (r < eh)) then
oh := 1
else
oh := 0;
for c := 0 to (columns - 1) do
begin
if ((ew > 0) and (c < ew)) then
ow := 1
else
ow := 0;
i := ((r * columns) + c);
Result[i].X1 := x;
Result[i].X2 := (x + (w - 1) + ow);
Result[i].Y1 := y;
Result[i].Y2 := (y + (h - 1) + oh);
x := (Result[i].X2 + 1);
end;
y := (Result[i].Y2 + 1);
end;
end else
SetLength(Result, 0);
end;

function RSPS_SlotFull(slot:Integer):Boolean;
var
x, y:Integer;
begin
if FindColor(x, y, 65536, Inventory[slot].x1, Inventory[slot].y1, Inventory[slot].x2, Inventory[slot].y2) then
result := true;
end;

function rsps_Invcount:Integer;
var
i:Integer;
begin
for i := 0 to high(Inventory) do
begin
if rsps_slotFull(i) then
result := result + 1;
end;
end;

function RSPS_InvFull:Boolean;
begin
result := (rsps_invcount = 28);
end;

function RSPS_InvEmpty:Boolean;
begin
result := (rsps_invcount = 0);
end;

function RSPS_InvEmptyButOne:Boolean;
begin
result := (rsps_invcount = 1);
end;

function RSPS_CountInventoryDTM(DTMSearch:Integer):Integer;
var
i, x, y:Integer;
begin
for i := 0 to high(Inventory) do
begin
if FindDTM(DTMSearch, x, y, Inventory[i].x1, Inventory[i].y1, Inventory[i].x2, Inventory[i].y2) then
result := result + 1;
end;
end;


procedure SetupRLTools;
begin
RL_MIX1 := 548;
RL_MIY1 := 191;
RL_MIX2 := 737;
RL_MIY2 := 463;
RL_MMCX := 627;
RL_MMCY := 85;
Mousespeed := 15;
Inventory := ExplodeBox(IntToBox(557, 212, 726, 460), 7, 4);
end;

At the time I barely understood how Includes worked and were loaded. I did get it to work, but I don't even know if I did it correctly. I looked at other includes like SRL or OSR and just looked at how they were organized and laid out. I tried copying the organization and such, and it worked, was never sure if that's actually how it's meant to be done.

So my final script was a bit more complicated. It doesn't use ACA, and has some DTM walking. I wanted to use DTM's to the fullest. The RSPS had some commands I could easily abuse, which was mobile banking. All I had to do was move out of combat, and use ::bank, which would open up the bank interface where I could easily take out any food and pots.


program SlayerAFKer;
{$I SRL/SRL.Simba}
{$I RLInclude.Simba}
{$i ObjectDTM\ObjDTMInclude.simba}


// If only using Rocktails for health set both to false
Const //Set both to false if not using Prayer at all
UsingPrayer = False; // Set to false if not using prayer
UsingSoulSplit = False; // Set to false if not using Soul Split

MaxHP = 990; //Your Total HP
StartEating = 24; // This will start eating food at 24% of your total HP
StopEating = 90; // This will sttop eating food at 90% of your total HP

MaxPrayer = 990; //Your Total HP
StartDrinking = 24; // This will start eating food at 24% of your total HP
StopDrinking = 90; // This will sttop eating food at 90% of your total HP

Var
PrayerPot, RockTail, AteRocktail, DrankPrayerPot, HPLevel, StartEatHP, StopEatHP, PrayerPoints, StartDrinkPP,
StopDrinkPP, SafeSpot, BankDepositAll, BankCloseButton, HoundSpawnSpot:Integer;

ColourString:String;


// Drinks Prayer Pots when low PP \\
procedure DrinkPrayerPot;
var
X, Y:Integer;
ColourString:String;
begin
if UsingPrayer = True then
begin

PrayerPoints := GetMMLevels('prayer', ColourString);

StartDrinkPP := Round(MaxPrayer / 100 * StartDrinking);
StopDrinkPP := Round(MaxPrayer / 100 * StopDrinking);


if (PrayerPoints <= StartDrinkPP) then // if the value we get is lower than 20% start eating.
begin
Repeat
if FindDTM(PrayerPot, X, Y, MIX1, MIY1,MIX2, MIY2) then
begin
MMouse(x, y, 0, 0);
ClickMouse2(True);
wait(1500);
WriteLn('Drinking Prayer Pot..');
inc(DrankPrayerPot);

PrayerPoints := GetMMLevels('prayer', ColourString); //Call this again, to get new value
end else Exit; //Exits the procedure if we CANNOT find food , failsafe.
Until(PrayerPoints >= StopDrinkPP) // until we get the value of 80%
end;
end;
end;



// Eat Rockatils when low HP \\
procedure EatRocktail;
var
X, Y:Integer;
ColourString:String;
begin
if UsingSoulSplit = False then
begin

HPLevel := GetMMLevels('HP', ColourString);

StartEatHP := Round(MaxHP / 100 * StartEating);
StopEatHP := Round(MaxHP / 100 * StopEating);


if (HPLevel <= StartEatHP) then // if the value we get is lower than 20% start eating.
begin
Repeat
if FindDTM(RockTail, X, Y, MIX1, MIY1,MIX2, MIY2) then
begin
MMouse(x, y, 0, 0);
ClickMouse2(True);
wait(1500);
WriteLn('Eating Rocktail...');
inc(AteRocktail);
Wait(250);
ClearDebug;

HPLevel := GetMMLevels('hp', ColourString); //Call this again, to get new value
end else Exit; //Exits the procedure if we CANNOT find food , failsafe.
Until(HPLevel >= StopEatHP) // until we get the value of 80%
end;
end;
end;

// Withdraws Rocktails when it can't find any \\
procedure WithdrawRocktails;
Var
X, Y:Integer;
begin
if UsingPrayer = False then
if not FindDTM(RockTail, X, Y, MIX1, MIY1,MIX2, MIY2) then
begin
ClickDTMRotatedIn(SafeSpot, MMX1,MMY1, MMX2,MMY2, -Pi, Pi, Pi/30, [], mouse_Left);
if FlagPresent = True then
begin
Repeat
WriteLn('Waiting..');
Wait(500);
Until FlagPresent = False
end;
TypeSend('::bank');
Wait(500);
if FindDTM(BankDepositAll, X, Y, MSX1, MSY1,MSX2, MSY2) then
begin
MMouse(X, Y, 0, 0);
Wait(200);
ClickMouse2(True)
end;
if FindDTM(RockTail, X, Y, MSX1, MSY1,MSX2, MSY2) then
begin
MMouse(X, Y, 0, 0);
Wait(200);
ClickMouse2(False)
ChooseOption('Withdraw-All');
end;
if FindDTM(BankCloseButton, X, Y, MSX1, MSY1,MSX2, MSY2) then
begin
MMouse(X, Y, 0, 0);
Wait(200);
ClickMouse2(True)
end;
KeyDown(112);
wait(200);
KeyUp(112);
wait(2000);
if FindDTM(RockTail, X, Y, MIX1, MIY1,MIX2, MIY2) then
ClickDTMRotatedIn(HoundSpawnSpot, MMX1,MMY1, MMX2,MMY2, -Pi, Pi, Pi/30, [], mouse_left);
end;
end;



// Progress Report \\
procedure ProgressReport;
begin
wait(500);
ClearDebug;
WriteLn('***************PROGRESS REPORT*************************************');
WriteLn('* Script has run for : '+ TimeRunning +'');
WriteLn('* Current HP '+ IntToStr(GetMMLevels('hp', ColourString)) +'');
if UsingPrayer = True then
begin
WriteLn('* Current Prayer Points '+ IntToStr(GetMMLevels('prayer', ColourString)) +'');
WriteLn('* Will start drinking pots at '+ IntToStr(StartDrinkPP) +' Prayer Points');
end;
if UsingSoulSplit = False then
begin
WriteLn('* Ate Rocktails '+ IntToStr(AteRocktail) +' times');
WriteLn('* Will start eating at '+ IntToStr(StartEatHP) +' HP');
end;
if UsingPrayer = True then
begin
WriteLn('* Drank Prayer Pots '+ IntToStr(DrankPrayerPot) +' times');
end;
WriteLn('*******************************************************************');

end;

// Load DTM's \\
procedure LoadDTMs;
begin
PrayerPot := DTMFromString('mlwAAAHicY2dgYHjGzMDwEIjfMEPYz4H4IxDfBWINRgYGeSAWBWJ+INZlhIiBsNWhfqBuJqyYlQE3YMSDoQAAVjMI/Q==');
RockTail := DTMFromString('mlwAAAHicY2dgYOABYlEozcUAAfxALA7lc0PlJYBYACrPDMSaAqxAkgkrhpmDDTDiwVAAAHZxARU=');
SafeSpot := DTMFromString('mbQAAAHicY2VgYJjCBMG9QDwHiDuAuBwong/EtUBcAsRZQMy02ZaBnY0ZBWMDjFgwGAAAEvAGYQ==');
BankDepositAll := DTMFromString('mggAAAHicY2NgYKhkZGCoB+IkIE4G4gYgbgJiYyDWgGIHKDYB4r0L0oG6GLFg7ACbSoRqAD+mBdg=');
BankCloseButton := DTMFromString('mbQAAAHicY2VgYHjFyMDwAYofA/FDIFYEimsCsQwQawGxNIgtIcrAxcUFx4ZaSgzYACMWDAYAMDwGaQ==');
HoundSpawnSpot := DTMFromString('mbQAAAHicY2VgYEhmYmCoAeIQII5jgvCbgeINQNwExBFAvAKIY2JCGXg0NRi41VQYPrAxM3x6+4KBGSiOjhmxYDAAAKyiChw=');
end;

procedure FreeDTMS;
begin
FreeDTM(RockTail);
FreeDTM(PrayerPot);
FreeDTM(SafeSpot);
FreeDTM(BankDepositAll);
FreeDTM(BankCloseButton);
FreeDTM(HoundSpawnSpot);
end;


// Main Loop \\
begin
SetupSRL;
ObjDTM_Setup;
ClearDebug;
LoadDTMs;
Repeat
EatRocktail;
ProgressReport;
DrinkPrayerPot;
WithdrawRocktails;
Until IsKeyDown(123)
AddOnTerminate('FreeDTMs');
end.

I was actually pretty proud of this script. It was a script I could run for quite awhile, until I just ran out of supplies. There was issues where I had to adjust my color variables to make it work, but again it worked. I guess I was especially proud of this script mainly because I looked around me and what I could abuse. I ended up using the Icon on the map to get back into the spot that aggroed all the Hell Hounds.

I used to have several more scripts that were never completed, that ended up just being scripts I had made to mess around and see what I could get working. I had actually finally got SMART to load up RSPS's correctly, and I messed around with SPS, but I could never get it to work. I lost most of my scripts due to drive failure, but I was able to find the threads I made here when asking for help where I posted my finished script.

So SRL Members, what do you think?

NKN

2015-01-11 22:08:23

You're using an include from like, 3 years ago.

Twinki

2015-01-11 22:11:42

From: NKN
You're using an include from like, 3 years ago.


Indeed, these scripts are a bit old.

I had intentionally used an old version of SRL because the RSPS was an older version of RS. I was trying to see what functions would work for the RSPS with the correct configurations, from there I took it out and changed it around in my own include. Added some things and removed some things.

Ian

2015-01-11 23:10:13

They're fairly simple and standards could use some work but you seem to have a good start. If you're interested in continuing I highly recommend reading this tutorial: https://villavu.com/forum/showthread.php?t=107757

It will help you learn more advanced scripting practices as well as using SRL6, which is quite different from the SRL used in the scripts you've made so far.

As for the members application itself, this is the reference you should use to decide whether you're ready: https://villavu.com/forum/showthread.php?t=74195

Let me know if you've any other questions :)