SRL Archive - Discussions & Debates

SRL Membership Templates


Abu

2012-03-25 18:01:55

Just a suggestion here, wouldn't it be a good idea to allow free members to view exemplary SRL Applications which have been accepted, so we know the standards we should aim to achieve before applying?

Thanks

Magiic

2012-03-25 18:05:19

That's what the guide's for, it gives general scripting tips and such that members look for. There's no real exemplar though, nowadays people mostly go off reputation/activity.

masterBB

2012-03-25 18:08:25

The application itself is only 50% of my vote… You need to be a part of the community too.

edit:
This is my standard guideline for scripts:
http://villavu.com/forum/showthread.php?t=40470

Sex

2012-03-25 18:18:44

Without the script? Sure. Won't do much for ya though..:).

Abu

2012-03-25 18:27:05

From: Sex
Without the script? Sure. Won't do much for ya though..:).


Meaning?

And yeh, I know there's guidelines, but there's a big difference on reading what you should know/do and actually seeing an exemplary application.

Sex

2012-03-25 18:41:17

From: abu_jwka
Meaning?

And yeh, I know there's guidelines, but there's a big difference on reading what you should know/do and actually seeing an exemplary application.


Meaning the main things people are looking for are the person's activity, attitude, and their scripting ability. I don't think the body of the application matters too much.

Abu

2012-03-25 18:49:11

Hmmm true, I just realised from pressing the apply button that the template is already there for you - you just have to fill it out.

Oh well, you learn something new every day I guess

LordJashin

2012-03-25 20:55:57

From: Sex
Meaning the main things people are looking for are the person's activity, attitude, and their scripting ability. I don't think the body of the application matters too much.

Is there anything worthwhile in the member's section/s? Or is it mainly runescape stuff?

Edit: should've just asked u over irc, w/e tho its already done…

Joe

2012-03-29 17:39:30

From: Sex
Meaning the main things people are looking for are the person's activity, attitude, and their scripting ability. I don't think the body of the application matters too much.


What would acceptable activity and scripting ability be?

kunzy

2012-04-03 20:02:45

yes we need for info :) im going to be applying very soon :D

mormonman

2012-04-03 20:07:13

Here's mine. It's super old.

program StickSmither;
{.Include SRL/SRL/Misc/Smart.scar}
{.Include SRL/SRL.SCAR}
{.Include SRL/SRL/Skill/Smithing.scar}

Type
Bar = Record
Kind, Anvil : String;
Col : Integer;
Up : TStringArray;
end;

Item = Record
Name : String;
Bars : Integer;
Up : TStringArray;
Scroll : Boolean;
end;

//idea from text.scar
ScreenChoice = (BankScreen, SmithingScreen);

var Hammer : Boolean; x, y, a, Loads, AllLoads, LevelsGained : Integer; Bars : Bar; Items : Item; MySRL, MySRLx : String;

const

{ // SRL-Stats \\ }
YourSRLID = ''; // SRL-Stats I.D.
YourSRLPassword = ''; // SRL-Stats PW
{ \\ SRL-Stats // }
Debug = False; //leave as false
{SMARTSETUP}
//Signed
Signed = True;
//World(Doesn't matter if Signed)
SmartWorld = 8;
//Members
Members = False;
{END of SMARTSETUP}

procedure DeclarePlayers;
begin

HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := ''; //username
Players[0].Pass := ''; //password
Players[0].Nick := ''; //3-4 letters from your username
Players[0].Pin := '0000'; //Leave '0000' if you don't have one.
Players[0].Active := True;
Players[0].Integers[0] := 5; //Loads to do before switching(5-8 recommended).
Players[0].Integers[2] := 2; //Rounds of Loads to do before setting player false.
Players[0].Strings[0] := ''; //Bar Type. Choices: bronze, iron, steel,
// mithril, adamant, rune.
Players[0].Strings[1] := ''; // Item To Smith. Choices: Dagger, Axe,
// Med Helm, Bolts, Sword, Nails,
// Arrowtips, Scimitar, Knife,
// Longsword, Full Helm, Square,
// Warhammer, BattleAxe, Chain, Skirt,
// Kite, TwoHand, Legs, PlateBody,
// Dart, Mace, Claws.

end;

////////////Don't Touch Anything Below This!!//////////////

{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}
// Start of Script \\
{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}


procedure SetVars;
begin
Case lowercase(Players[CurrentPlayer].Strings[0]) of
'bronze' :
begin
Bars.Kind := 'Bronze';
Bars.Col := 2242890;
Bars.Up := ['ronze', 'nze bar'];
end;
'iron' :
begin
Bars.Kind := 'Iron';
Bars.Col := 5000530;
Bars.Up := ['ron', 'on bar'];
end;
'steel' :
begin
Bars.Kind := 'Steel';
Bars.Col := 7368824;
Bars.Up := ['teel', 'eel bar'];
end;
'mithril', 'mith' :
begin
Bars.Kind := 'Mithril';
Bars.Col := 6111295;
Bars.Up := ['ithril', 'ril bar'];
end;
'adamant', 'adamantite' :
begin
Bars.Kind := 'Adamantite';
Bars.Col := 4346433;
Bars.Up := ['damant', 'mantite', 'tite bar'];
end;
'rune', 'runite' :
begin
Bars.Kind := 'Runite';
Bars.Col := 6511172;
Bars.Up := ['unite', 'nite bar'];
end;
end;
Bars.Anvil := 'nvil';
Case lowercase(Players[CurrentPlayer].Strings[1]) of
'dagger' :
begin
Items.Name := 'agger';
Items.Bars := 1;
Items.Scroll := False;
end;
'axe' :
begin
Items.Name := 'Axe';
Items.Bars := 1;
Items.Scroll := False;
end;
'mace' :
begin
Items.Name := 'Mace';
Items.Bars := 1;
Items.Scroll := False;
end;
'med helm' :
begin
Items.Name := 'edium helm';
Items.Bars := 1;
Items.Scroll := False;
end;
'bolts' :
begin
Items.Name := 'ossbow bolts';
Items.Bars := 1;
Items.Scroll := False;
end;
'sword' :
begin
Items.Name := 'Sword';
Items.Bars := 1;
Items.Scroll := False;
end;
'nails' :
begin
Items.Name := 'ails';
Items.Bars := 1;
Items.Scroll := False;
end;
'arrowtips' :
begin
Items.Name := 'rrow tips';
Items.Bars := 1;
Items.Scroll := False;
end;
'scimitar' :
begin
Items.Name := 'cimitar';
Items.Bars := 2;
Items.Scroll := False;
end;
'longsword' :
begin
Items.Name := 'ongsword';
Items.Bars := 2;
Items.Scroll := False;
end;
'full helm' :
begin
Items.Name := 'ull helm';
Items.Bars := 2;
Items.Scroll := False;
end;
'square' :
begin
Items.Name := 'quare shield';
Items.Bars := 2;
Items.Scroll := False;
end;
'warhammer' :
begin
Items.Name := 'arhammer';
Items.Bars := 3;
Items.Scroll := False;
end;
'battleaxe' :
begin
Items.Name := 'attleaxe';
Items.Bars := 3;
Items.Scroll := False;
end;
'chain' :
begin
Items.Name := 'hainbody';
Items.Bars := 3;
Items.Scroll := True;
end;
'kite' :
begin
Items.Name := 'iteshield';
Items.Bars := 3;
Items.Scroll := True;
end;
'twohand' :
begin
Items.Name := 'anded sword';
Items.Bars := 3;
Items.Scroll := True;
end;
'legs' :
begin
Items.Name := 'latelegs';
Items.Bars := 3;
Items.Scroll := True;
end;
'platebody' :
begin
Items.Name := 'latebody';
Items.Bars := 5;
Items.Scroll := True;
end;
'skirt' :
begin
Items.Name := 'lateskirt';
Items.Bars := 3;
Items.Scroll := True;
end;
'knife' :
begin
Items.Name := 'hrowing';
Items.Bars := 1;
Items.Scroll := False;
end;
'dart' :
begin
Items.Name := 'art tips';
Items.Bars := 1;
Items.Scroll := False;
end;
'claws' :
begin
Items.Name := 'laws';
Items.Bars := 2;
Items.Scroll := True;
end;
end;
end;

///////////////////////////////////////////////////////////

function HammerDTM : Integer; //hammer dtm
begin
Result := DTMFromString('78DA63F4636260606464400681E65C0C72401' +
'A24FA1F0818A3816A7E32A00146241248BB03D5F031E257E3C584' +
'C4C3A1C61FA88605BF1A00F487075E');
end;

///////////////////////////////////////////////////////////

function Barz: Integer;
var
BMP: TDTMPointDef;
BSP: Array [0..5] of TDTMPointDef;
BARDTM: TDTM;
begin
BMP.x := 977;
BMP.y := 303;
BMP.AreaSize := 2;
BMP.AreaShape := 0;
BMP.Color := Bars.Col;
BMP.Tolerance := 15;

BSP[0].x := 977;
BSP[0].y := 303;
BSP[0].AreaSize := 2;
BSP[0].AreaShape := 0;
BSP[0].Color := Bars.Col;
BSP[0].Tolerance := 15;

BSP[1].x := 987;
BSP[1].y := 300;
BSP[1].AreaSize := 0;
BSP[1].AreaShape := 0;
BSP[1].Color := 65536;
BSP[1].Tolerance := 5;

BSP[2].x := 992;
BSP[2].y := 305;
BSP[2].AreaSize := 0;
BSP[2].AreaShape := 0;
BSP[2].Color := 65536;
BSP[2].Tolerance := 5;

BSP[3].x := 986;
BSP[3].y := 312;
BSP[3].AreaSize := 0;
BSP[3].AreaShape := 0;
BSP[3].Color := 65536;
BSP[3].Tolerance := 5;

BSP[4].x := 974;
BSP[4].y := 316;
BSP[4].AreaSize := 0;
BSP[4].AreaShape := 0;
BSP[4].Color := 65536;
BSP[4].Tolerance := 5;

BSP[5].x := 965;
BSP[5].y := 311;
BSP[5].AreaSize := 0;
BSP[5].AreaShape := 0;
BSP[5].Color := 65536;
BSP[5].Tolerance := 5;

BARDTM.MainPoint := BMP;
BARDTM.SubPoints := BSP;
Result := AddDTM(BARDTM);
end;

///////////////////////////////////////////////////////////

procedure SetHammer(T : Boolean);
begin
Hammer := T;
end;

function BarUpText : Boolean;
begin
Result := IsUptextMultiCustom(Bars.Up);
end;

function ScreenWait(Screen : ScreenChoice; Seconds : Integer) : Boolean;
var T : LongInt; S : Integer;
begin
S := Seconds * 1000;
if not LoggedIn then Exit;
Result := Screen;
MarkTime(T);
repeat
Wait(100);
until Result or (TimeFromMark(T) >= S);
if (TimeFromMark(T) >= S) then
begin
WriteLn('No Screen... Probably Lagged Out!');
Exit;
end;
end;

{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}
// Start of Weird Functions \\
{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}

///////////////////////////////////////////////////////////

Function IsOption(Text : String): Boolean; //Cazax's function... should be in
Var //srl cuz its great!
TPA : TPointArray; //(I added if not Result part)
Box : TBox;
Begin
FindColorsTolerance(TPA, 4674653, 0, 0, 764, 502, 5);
Box := GetTPABounds(TPA);
Result := FindText(X, Y, Text, UpChars, Box.X1, Box.Y1, Box.X2, Box.Y2);
if not Result then
srl_Warn('IsOption', 'Option Not Found', warn_AllVersions);
End;

///////////////////////////////////////////////////////////

Function IsOptionMulti(Text : TStringArray): Boolean; {Changed it to help me!}
Var I : Integer;
Begin
For I:=0 To High(Text) do
If IsOption(Text[I]) Then
Begin
Result := True;
Exit;
End;
End;

///////////////////////////////////////////////////////////

function IfIsOptionChooseEx(cx, cy : Integer; randomx, randomy : Integer; MaxWait : Integer; ChooseThis : TStringArray; Click, Move : Boolean) : Boolean;
var T : Integer;
begin
MarkTime(T);
if Click then Mouse(cx, cy, randomx, randomy, False);
repeat
Wait(300);
until (IsOptionMulti(ChooseThis) or (TimeFromMark(T)>= MaxWait));
if (TimeFromMark(T)>= MaxWait) and Move then
begin
MMouse(cx - 50, cy, 15, 15);
Result := False;
end;
Result := ChooseOptionMulti(ChooseThis);

end;

///////////////////////////////////////////////////////////

function IfIsOptionChoose(MaxWait: Integer; ChooseThis : TStringArray; Move : Boolean) : Boolean;
begin
Result := IfIsOptionChooseEx(0, 0, 0, 0, MaxWait, ChooseThis, False, Move);
end;

///////////////////////////////////////////////////////////

{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}
// End of Weird Functions \\
{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}

///////////////////////////////////////////////////////////

function CountItemsDTMs(DTMs: TIntegerArray; Including: Boolean): integer; //thnx lordsaturn, even though you didn't want credits!
var
i, Hi, c: integer;
begin
if not Including then Result := InvCount;
Hi := High(DTMs);
if Hi < 0 then Exit;
for i := 0 to Hi do
begin
c := CountItems(DTMs[i], 'dtm', []);
if Including then
IncEx(Result, c)
else
DecEx(Result, c);
end;
if Debug then WriteLn(IntToStr(Result));
end;

///////////////////////////////////////////////////////////

function CountBarsInInv : Integer;
var barss : Integer;
begin
barss := Barz;
Result := CountItemsDTMs([Barss], True);
FreeDTM(Barz);
end;

///////////////////////////////////////////////////////////

function CountItemsSmithed : Integer;
var barss, hamm : Integer;
begin
barss := Barz;
hamm := DTMFromString('78DA63F4636260606464400681E65C0C72401' +
'A24FA1F0818A3816A7E32A00146241248BB03D5F031E257E3C584' +
'C4C3A1C61FA88605BF1A00F487075E');
Result := CountItemsDTMs([Hamm, barss], False);
FreeDTM(Barz);
FreeDTM(Hamm);
end;

///////////////////////////////////////////////////////////

function HammerOnly : Boolean;
var H, I : Integer;
begin
I := HammerDTM;
if FindDTM(I, x, y, MIX1, MIY1, MIX2, MIY2) then Result := True;
for H := 2 to 28 do
begin
if ExistsItem(H) then Result := False;
if not Result then Break;
end;
FreeDTM(I);
end;

///////////////////////////////////////////////////////////

function DepositAllButHammer : Boolean;
var H, I : Integer; TB : TBox;
begin
I := HammerDTM;
for H := 1 to 28 do
begin
TB := InvBox(H);
if ExistsItem(H) then
if not FindDTM(I, x, y, TB.X1, TB.Y1, TB.X2, TB.Y2) then
begin
MouseItem(H, False);
if not IfIsOptionChoose(4000, ['All'], False) then
ChooseOption('Deposit All');
Wait(RandomRange(800, 1000));
end;
end;
if HammerOnly then Result := True;
end;
{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}
// Start of Random Functions \\
{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}

///////////////////////////////////////////////////////////

procedure WalkAnvil; forward;
procedure WalkBank; forward;
function GetLocation : String; forward;

function HandleFight : Boolean;
var L : Integer; Loc, Color : String;
begin
Loc := Players[CurrentPlayer].Loc
Result := FindFight;
if Result then
begin
L := GetMMLevels('run', Color);
if (L >= 15) then SetRun(True);
Case Loc of
'Bank' :
begin
WalkAnvil;
end;
'Anvil' :
begin
WalkBank;
end;
end;
Flag;
if FindFight then {failsafe...}
begin
RunAway('n', False, 1, 4000);
GetLocation;
end;
end;
end;

///////////////////////////////////////////////////////////

function Randoms : Boolean; //too lazy to type findnormalrandoms...
var I : Integer;
begin
for I := 1 to 2 do
begin
case I of
1: Result := FindNormalRandoms;
2: Result := HandleFight;
end;
if Result then Break;
end;
end;

///////////////////////////////////////////////////////////

procedure FastAB;
begin
if not LoggedIn then Exit;
Case Random(13) of
1,9 : PickUpMouse;
2..5, 12 : SleepAndMoveMouse(500+random(1000));
6..8 : RandomRClick;
end;
end;

///////////////////////////////////////////////////////////

procedure WhileAB;
begin
if not LoggedIn then Exit;
case Random(40) of
10, 20, 30: Wait(500+random(7000));
1: begin
MakeCompass('E');
Wait(25+random(5));
MakeCompass('S');
Wait(25+random(5));
MakeCompass('W');
Wait(25+random(5));
MakeCompass('N');
Wait(random(200));
end;
2..5, 35: begin
HoverSkill('smithing' ,false);
Wait(random(2000));
GameTab(4);
end;
3, 15, 31..34: FastAB;
4, 7, 40: MouseBox(MSX1,MSY1,MSX2,MSY2,3);
6, 17, 23: MMouse(Random(500),Random(500), 15, 15);
end;
end;

///////////////////////////////////////////////////////////

{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}
// End of Random Functions \\
{-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-}

function GetSmithingLevel(Start : Boolean) : Boolean;
var
SmithLvl : Integer;
begin
Players[CurrentPlayer].Level[8] := GetSkillInfo('strength', False);
SmithLvl := GetSkillInfo('smithing', False);
if Start then
begin
Players[CurrentPlayer].Integers[3] := SmithLvl;
end;
Players[CurrentPlayer].Integers[4] := SmithLvl;
if SmithLvl > 0 then
begin
Result := True;
Writeln('Smithing lvl = ' + IntToStr(SmithLvl));
end
else
begin
Result := False;
Writeln('Error with getting Smithing lvl.');
Players[CurrentPlayer].Rand := 'Error getting Smithing lvl.';
LogOut;
Players[CurrentPlayer].Active := False;
end;
end;

function DTMS(Which : String) : Integer; //NOT DYNAMIC I KNOW, BUT I COULDN'T
var // GET THE OTHER WAY TO WORK FOR ME!
dtmMainPoint: TDTMPointDef; // PLUS I CAN EDIT THESE FASTER!
dtmSubPoints: Array of TDTMPointDef;
TempTDTM: TDTM;
begin
case lowercase(Which) of
'walkbank' :
begin //walk to bankers
SetArrayLength(dtmSubPoints, 6);
dtmMainPoint.x := 964;
dtmMainPoint.y := 219;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 15527148;
dtmMainPoint.Tolerance := 255;

dtmSubPoints[0].x := 964;
dtmSubPoints[0].y := 219;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 15527148;
dtmSubPoints[0].Tolerance := 255;

dtmSubPoints[1].x := 970;
dtmSubPoints[1].y := 218;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 30;

dtmSubPoints[2].x := 928;
dtmSubPoints[2].y := 215;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 30;

dtmSubPoints[3].x := 928;
dtmSubPoints[3].y := 225;
dtmSubPoints[3].AreaSize := 2;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 195836;
dtmSubPoints[3].Tolerance := 30;

dtmSubPoints[4].x := 971;
dtmSubPoints[4].y := 226;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 65536;
dtmSubPoints[4].Tolerance := 5;

dtmSubPoints[5].x := 964;
dtmSubPoints[5].y := 231;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 65536;
dtmSubPoints[5].Tolerance := 5;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'blackness' :
begin
SetArrayLength(dtmSubPoints, 6);
dtmMainPoint.x := 964;
dtmMainPoint.y := 219;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 15527148;
dtmMainPoint.Tolerance := 255;

dtmSubPoints[0].x := 964;
dtmSubPoints[0].y := 219;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 15527148;
dtmSubPoints[0].Tolerance := 255;

dtmSubPoints[1].x := 972;
dtmSubPoints[1].y := 226;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 65536;
dtmSubPoints[1].Tolerance := 5;

dtmSubPoints[2].x := 972;
dtmSubPoints[2].y := 231;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 65536;
dtmSubPoints[2].Tolerance := 5;

dtmSubPoints[3].x := 964;
dtmSubPoints[3].y := 231;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 65536;
dtmSubPoints[3].Tolerance := 5;

dtmSubPoints[4].x := 968;
dtmSubPoints[4].y := 230;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 65536;
dtmSubPoints[4].Tolerance := 5;

dtmSubPoints[5].x := 965;
dtmSubPoints[5].y := 229;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 65536;
dtmSubPoints[5].Tolerance := 5;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'inbank' :
begin
SetArrayLength(dtmSubPoints, 5);
dtmMainPoint.x := 1162;
dtmMainPoint.y := 163;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 195836;
dtmMainPoint.Tolerance := 30;

dtmSubPoints[0].x := 1162;
dtmSubPoints[0].y := 163;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 195836;
dtmSubPoints[0].Tolerance := 30;

dtmSubPoints[1].x := 1118;
dtmSubPoints[1].y := 168;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 30;

dtmSubPoints[2].x := 1119;
dtmSubPoints[2].y := 212;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 30;

dtmSubPoints[3].x := 1163;
dtmSubPoints[3].y := 203;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 195836;
dtmSubPoints[3].Tolerance := 30;

dtmSubPoints[4].x := 1118;
dtmSubPoints[4].y := 184;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 195836;
dtmSubPoints[4].Tolerance := 30;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'ladders' :
begin
SetArrayLength(dtmSubPoints, 3);
dtmMainPoint.x := 672;
dtmMainPoint.y := 286;
dtmMainPoint.AreaSize := 4;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := a;
dtmMainPoint.Tolerance := 20;

dtmSubPoints[0].x := 672;
dtmSubPoints[0].y := 286;
dtmSubPoints[0].AreaSize := 4;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := a;
dtmSubPoints[0].Tolerance := 20;

dtmSubPoints[1].x := 622;
dtmSubPoints[1].y := 263;
dtmSubPoints[1].AreaSize := 4;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := a;
dtmSubPoints[1].Tolerance := 20;

dtmSubPoints[2].x := 678;
dtmSubPoints[2].y := 207;
dtmSubPoints[2].AreaSize := 4;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := a;
dtmSubPoints[2].Tolerance := 20;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'middle' :
begin
SetArrayLength(dtmSubPoints, 4);
dtmMainPoint.x := 652;
dtmMainPoint.y := 177;
dtmMainPoint.AreaSize := 4;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := a;
dtmMainPoint.Tolerance := 20;

dtmSubPoints[0].x := 652;
dtmSubPoints[0].y := 177;
dtmSubPoints[0].AreaSize := 4;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := a;
dtmSubPoints[0].Tolerance := 20;

dtmSubPoints[1].x := 673;
dtmSubPoints[1].y := 299;
dtmSubPoints[1].AreaSize := 4;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := a;
dtmSubPoints[1].Tolerance := 20;

dtmSubPoints[2].x := 679;
dtmSubPoints[2].y := 224;
dtmSubPoints[2].AreaSize := 4;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := a;
dtmSubPoints[2].Tolerance := 20;

dtmSubPoints[3].x := 624;
dtmSubPoints[3].y := 281;
dtmSubPoints[3].AreaSize := 4;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := a;
dtmSubPoints[3].Tolerance := 20;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'anvilblack' :
begin
SetArrayLength(dtmSubPoints, 6);
dtmMainPoint.x := 638;
dtmMainPoint.y := 155;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6520976;
dtmMainPoint.Tolerance := 255;

dtmSubPoints[0].x := 638;
dtmSubPoints[0].y := 155;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6520976;
dtmSubPoints[0].Tolerance := 255;

dtmSubPoints[1].x := 639;
dtmSubPoints[1].y := 120;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 65536;
dtmSubPoints[1].Tolerance := 5;

dtmSubPoints[2].x := 649;
dtmSubPoints[2].y := 120;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 65536;
dtmSubPoints[2].Tolerance := 5;

dtmSubPoints[3].x := 649;
dtmSubPoints[3].y := 125;
dtmSubPoints[3].AreaSize := 2;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 65536;
dtmSubPoints[3].Tolerance := 5;

dtmSubPoints[4].x := 640;
dtmSubPoints[4].y := 125;
dtmSubPoints[4].AreaSize := 2;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 65536;
dtmSubPoints[4].Tolerance := 5;

dtmSubPoints[5].x := 646;
dtmSubPoints[5].y := 113;
dtmSubPoints[5].AreaSize := 2;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 195836;
dtmSubPoints[5].Tolerance := 5;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
'anvilfailsafe' :
begin
SetArrayLength(dtmSubPoints, 7);
dtmMainPoint.x := 636;
dtmMainPoint.y := 155;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6520976;
dtmMainPoint.Tolerance := 255;

dtmSubPoints[0].x := 636;
dtmSubPoints[0].y := 155;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6520976;
dtmSubPoints[0].Tolerance := 255;

dtmSubPoints[1].x := 639;
dtmSubPoints[1].y := 120;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 65536;
dtmSubPoints[1].Tolerance := 5;

dtmSubPoints[2].x := 649;
dtmSubPoints[2].y := 120;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 65536;
dtmSubPoints[2].Tolerance := 5;

dtmSubPoints[3].x := 649;
dtmSubPoints[3].y := 125;
dtmSubPoints[3].AreaSize := 2;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 65536;
dtmSubPoints[3].Tolerance := 5;

dtmSubPoints[4].x := 640;
dtmSubPoints[4].y := 125;
dtmSubPoints[4].AreaSize := 2;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 65536;
dtmSubPoints[4].Tolerance := 5;

dtmSubPoints[5].x := 646;
dtmSubPoints[5].y := 107;
dtmSubPoints[5].AreaSize := 2;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 65536;
dtmSubPoints[5].Tolerance := 5;

dtmSubPoints[6].x := 647;
dtmSubPoints[6].y := 115;
dtmSubPoints[6].AreaSize := 2;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 65536;
dtmSubPoints[6].Tolerance := 5;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
end;
end;

function GetLocation : String;
var InBanks, Anvils{, Middles} : Integer;
begin
a := FindLadderColor;
InBanks := DTMS('inbank');
Anvils := DTMS('ladders');
{Middles := DTMS('middle');
if DTMRotated(Middles, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Players[CurrentPlayer].Loc := 'Middle';
Result := 'Middle';
end
else }
if DTMRotated(InBanks, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Players[CurrentPlayer].Loc := 'Bank';
Result := 'Bank';
end
else
if DTMRotated(Anvils, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Players[CurrentPlayer].Loc := 'Anvil';
Result := 'Anvil';
end
else
begin
WriteLn('Location Not Found!');
Result := '';
Players[CurrentPlayer].Loc := 'LocationCheckFailed';
Players[CurrentPlayer].Active := False;
Logout;
FreeDTM(InBanks);
FreeDTM(Anvils);
{FreeDTM(Middles);}
Exit;
end;
WriteLn('At ' +(Players[CurrentPlayer].Loc)+ '.');
end;

procedure WalkBank;
var Black, Bankers : Integer;
begin
if not LoggedIn then Exit;
Black := DTMS('blackness');
Bankers := DTMS('walkbank');
if DTMRotated(Black, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Bank') then
begin
WriteLn('Walked To Bank Using Blackness');
Players[CurrentPlayer].Loc := 'Bank';
end;
end
else
if DTMRotated(Bankers, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Bank') then
begin
WriteLn('Walked To Bank Using Blackness');
Players[CurrentPlayer].Loc := 'Bank';
end;
end
else
if FindSymbol(x, y, 'bank') then
begin
Mouse(x, y, 2, 2, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Bank') then
begin
WriteLn('Walked To Bank Using Blackness');
Players[CurrentPlayer].Loc := 'Bank';
end;
end
else
begin
WriteLn('Walk To Bank Failed... Setting Player False');
Players[CurrentPlayer].Loc := 'BankWalkFailed';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
FreeDTM(Bankers);
FreeDTM(Black);
end;

procedure WalkAnvil;
var Black, Failsafe : Integer;
begin
if not LoggedIn then Exit;
if (Players[CurrentPlayer].Loc = 'Anvil') then Exit;
Black := DTMS('anvilblack');
Failsafe := DTMS('anvilfailsafe');
if DTMRotated(Black, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Anvil') then
begin
WriteLn('Walked To Anvil Using Blackness');
Players[CurrentPlayer].Loc := 'Anvil';
end;
end
else
if DTMRotated(Failsafe, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Anvil') then
begin
WriteLn('Walked To Anvil Using FailsafeDTM');
Players[CurrentPlayer].Loc := 'Anvil';
end;
end
else
if FindSymbol(x, y, 'anvil') then
begin
Mouse(x, y, 3, 3, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Anvil') then
begin
WriteLn('Walked To Anvil Using Anvil Symbol');
Players[CurrentPlayer].Loc := 'Anvil';
end;
end
else
if FindSymbol(x, y, 'guide') then
begin
Mouse(x, y, 3, 3, True);
Wait(500);
FFlag(0);
if (GetLocation = 'Anvil') then
begin
WriteLn('Walked To Anvil Using Guide Symbol');
Players[CurrentPlayer].Loc := 'Anvil';
end;
end
else
begin
WriteLn('Walk To Anvil Failed... Setting Player False');
Players[CurrentPlayer].Loc := 'AnvilWalkFailed';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
FreeDTM(Black);
FreeDTM(Failsafe);
end;

procedure GetHammer;
var H : Integer;
begin
H := HammerDTM;
if not LoggedIn then Exit;
if not (Players[CurrentPlayer].Loc = 'Bank') then WalkBank;
WriteLn('Getting hammer...');
MakeCompass('e');
OpenBank('vwb', False, False);
ScreenWait(BankScreen, 10);
SearchBank('hammer');
Wait(2000+random(500));
if FindDTM(H, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(x, y, 3, 3, False)
Wait(1000+random(500));
IfIsOptionChoose(5000, ['ammer', 'ithdraw Ham'], True);
Wait(1000+random(500));
CloseBank;
SetHammer(True);
end
else
begin
WriteLn('Hammer Not Found In Bank.');
Players[CurrentPlayer].Loc := 'NoHammerInBank';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
FreeDTM(H);
end;

procedure HCheck(Quick : Boolean);
var H : Integer;
begin
H := HammerDTM;
if not LoggedIn then Exit;
GameTab(4);
if not FindDTM(H, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if not Quick then GetHammer;
end else SetHammer(True);
if Hammer then WriteLn('Hammer Found.')
else
begin
WriteLn('Hammer Not Found.');
Players[CurrentPlayer].Loc := 'NoHammer';
Players[CurrentPlayer].Active := False;
Logout;
end;
FreeDTM(H);
end;

function LevelUpCheck : Boolean;
begin
Result := (GetColor(104, 367) = 0) and (GetColor(470, 370) = 0) and (GetColor(98, 424) = 0);
if not Result then
Result := (GetColor(474, 427) = 0) and (GetColor(267, 426) = 0);
end;

function FindBar(InBank, Click, Inv : Boolean) : Boolean;
begin
if not LoggedIn then Exit;
if InBank then
begin
if FindDTM(Barz, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
MMouse(x, y, 0, 0);
Wait(1000+random(500));
if IsUptextMultiCustom(Bars.Up) then
Mouse(x, y, 0, 0, False);
Result := IfIsOptionChoose(5000, ['All'], False)
if not Result then Result := ChooseOption('All');
end else
begin
if Inv then
begin
WriteLn('Bar Not Found.');
Players[CurrentPlayer].Loc := 'NoBars';
Players[CurrentPlayer].Active := False;
Logout;
end;
end;
end;
if not InBank then
begin
GameTab(4);
if FindDTM(Barz, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
if Click then
begin
WriteLn('Clicking Bar');
MMouse(x, y, 3, 3);
GetMousePos(x, y);
Result := BarUpText;
Mouse(x, y, 0, 0, True);
Wait(1000+random(500));
end
else
Result := True;
end else
begin
if Inv then
begin
WriteLn('Bar Not Found.');
Players[CurrentPlayer].Loc := 'NoBars';
Players[CurrentPlayer].Active := False;
Logout;
end;
end;
end;
if Result then
if Click then
WriteLn(Bars.Kind+' Bar Found.');
FreeDTM(Barz);
end;

function MyBank : Boolean;
var Bank, Time : LongInt; I : Integer;
begin
if not (Players[CurrentPlayer].Loc = 'Bank') then WalkBank;
MarkTime(Bank);
Result := BankScreen;
if not Result then
begin
repeat
if OpenBankFast('vwb') then
begin
MarkTime(Time);
repeat
Wait(50);
until (BankScreen) or (PinScreen) or (TimeFromMark(Time) >= 6000);
if PinScreen then InPin(Players[CurrentPlayer].Pin);
if Result then Break else
begin
Inc(I);
Continue;
end;
end;
until (BankScreen) or (I >= 10);
if (I >= 10) then
begin
WriteLn('Bank not opened.');
Players[CurrentPlayer].Loc := 'NoBank';
Players[CurrentPlayer].Active := False;
Logout;
end;
if BankScreen then FixBank;
end else Wait(500);
end;


procedure Withdraws;
var I : Integer; Close : LongInt;
begin
if not LoggedIn then Exit;
if (CountBarsInInv >= Items.Bars) then Exit;
if not HammerOnly then Exit;
if MyBank then
begin
I := 0;
repeat
FindBar(True, True, True)
Wait(1500+random(500));
Inc(I);
until (InvFull) or (I >= 8) or (CountBarsInInv >= Items.Bars);
if I >= 8 then
begin
SearchBank('bar');
Wait(2000+random(500));
I := 0;
repeat
FindBar(True, True, True)
Wait(1500+random(500));
Inc(I);
until (InvFull) or (I >= 4) or (CountBarsInInv >= Items.Bars);
end;
if I >= 4 then
begin
WriteLn('No Bars In Bank.');
Players[CurrentPlayer].Loc := 'NoBarsInBank';
Players[CurrentPlayer].Active := False;
Logout;
end;
MarkTime(Close);
repeat
CloseBank;
until (not Bankscreen) or (TimeFromMark(Close) >= 10000);
if GetSmithingLevel(False) then WriteLn('We are level ' + IntToStr(Players[CurrentPlayer].Integers[4]) + ' smithing.');
if not Bankscreen then WalkAnvil;
end;
end;

procedure Deposits;
var I : Integer;
begin
if not LoggedIn then Exit;
if not (Players[CurrentPlayer].Loc = 'Bank') then WalkBank;
if not HammerOnly then
begin
if MyBank then
begin
I := 0;
WriteLn('Depositing');
repeat
Deposit(2, 28, True);
Inc(I);
Wait(1000);
until (HammerOnly) or (I >= 10);
if HammerOnly then
begin
WriteLn('Items Deposited');
Inc(Loads);
Inc(AllLoads);
Inc(Players[CurrentPlayer].Integers[1]);
Inc(ReportVars[0]);
end;
if (I >= 10) then
begin
WriteLn('Depositing Error');
Players[CurrentPlayer].Loc := 'Depositing';
Players[CurrentPlayer].Active := False;
Logout;
end;
end;
end;
end;

function FindAnvil(Click : Boolean): Boolean;
Var
tpa : TPointArray;
atpa : T2DPointArray;
p : TPoint;
cts : Integer;
h, z : Integer;
begin
if not LoggedIn then Exit;
if not (Players[CurrentPlayer].Loc = 'Anvil') then WalkAnvil;
cts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.00, 0.06);
FindColorsSpiralTolerance(MSCX, MSCY, tpa, 4671308, MSX1, MSY1, MSX2, MSY2, 6);
ColorToleranceSpeed(cts);
SetColorspeed2Modifiers(0.2, 0.2);
if Length(tpa) > 20 then
begin
atpa := SplitTPAEx(tpa, 10, 10);
SortATPAFrom(atpa, p);
z := High(atpa);
for h := 0 to z do
if Length(atpa[h]) > 90 then
begin
MiddleTPAEx(atpa[h], x, y);
Wait(50 + random(100));
MMouse(x, y, 2, 2);
Wait(100 + random(50));
GetMousePos(x, y);
if Click then
begin
GetMousePos(x, y);
WriteLn('Anvil Found');
Mouse(x, y, 5, 5, False);
Result := IfIsOptionChoose(5000, [Bars.Anvil], False)
if not Result then Result := ChooseOption(Bars.Anvil);
FFlag(0);
end
else
begin
Result := True;
end;
if Result then Break;
end;
end;
end;

procedure Anvil;
begin
if not LoggedIn then Exit;
if not (Players[CurrentPlayer].Loc = 'Anvil') then WalkAnvil;
if not FindAnvil(True) then
begin
WriteLn('Anvil Not Found... weird error');
Players[CurrentPlayer].Loc := 'NoAnvil';
Players[CurrentPlayer].Active := False;
Logout;
end;
end;

{*******************************************************************************
Function SmithItems : Boolean;
By: n3ss3s Edited by Mormonman!
Description: Returns true if could smith the item Item.
*******************************************************************************}

function SmithItems : Boolean;
begin
If Items.Scroll Then
FixSmith(True);
If FindTextTPAEx(16777215, 10, MSX1, MSY1, MSX2, MSY2, x, y, Items.Name, statchars, Nothing) Then
begin
if (CountBarsInInv < Items.Bars) then
begin
srl_Warn('SmithItems', 'Not enough bars to smith', warn_Warning);
Exit;
end;
Mouse(x + 3, y + 3, 4, 4, False);
Result := IfIsOptionChoose(5000, ['ake All'], False)
if not Result then Result := ChooseOption('All');
end;
end;

function WaitForIt : Boolean; Forward;

procedure Load;
var LoadTime : LongInt; I : Integer;
begin
if not LoggedIn then Exit;
if not (CountBarsInInv >= Items.Bars) then Exit;
if not (Players[CurrentPlayer].Loc = 'Anvil') then WalkAnvil;
MarkTime(LoadTime);
I := 0;
repeat
FindBar(False, True, True);
Anvil;
ScreenWait(SmithingScreen, 5);
if SmithingScreen then Break;
begin
Inc(I);
WriteLn('Try #' +IntToStr(I));
end;
Wait(1000+random(500));
if SmithingScreen then Break;
until (SmithingScreen) or (I >= 15);
if SmithItems then
while not WaitForIt do Wait(500);
end;

function WaitForIt : Boolean;
begin
if not LoggedIn then Exit;
if not (Players[CurrentPlayer].Loc = 'Anvil') then Exit;
While (CountBarsInInv > 0) do
begin
Wait(1000);
if Randoms then
if not LoggedIn then
begin
Players[CurrentPlayer].Loc := 'RandomFail';
NextPlayer(False);
end;
if LevelUpCheck then
begin
Inc(Players[CurrentPlayer].Integers[3]);
Inc(LevelsGained);
ReportVars[1] := ReportVars[1] + 1;
Load;
end;
if not FindBar(False, False, False) then Break;
end;
if (CountBarsInInv = 0) or (not (FindBar(False, False, False))) then
Result := True;
end;

procedure SetupScript;
begin
WriteLn('Smart Loading...');
SmartSetupEx(Smartworld, Members, Signed, false);
wait(5000);
SetTargetDC(SmartGetDC);
repeat
wait(100);
until(SmartGetColor(253, 233)<>1118604);
WriteLn('Smart Loaded!');
SetupSRL;
SetupSmithing;
MySRL := YourSRLID;
MySRLx := YourSRLPassword;
If MySRL = '' Then MySRL := '6199';
If MySRLx = '' Then MySRLx := 'trenton';
SRLID := MySRL;
SRLPassword := MySRLx;
ScriptID := '1172';
SRL_Procs[0] := @FastAB;//antiban for walking
DeclarePlayers;
//SetAutoingDefaults;
end;

procedure SetupPlayer;
var L : Integer; color : String;
begin
if not LoggedIn then LoginPlayer;
Loads := 0;
MakeCompass('n');
SetAngle(True);
L := GetMMLevels('run', color);
if (L >= 50) then SetRun(True) else SetRun(False);
HCheck(False);
SetVars;
GetLocation;
if not (Players[CurrentPlayer].Integers[1] >= 1) then GetSmithingLevel(True);
end;

procedure Report;
var I : Integer;
begin
SendSRLReport;
if not Debug then ClearDebug;
WriteLn(' ');
WriteLn('[------Stick Smither------]');
WriteLn('[---Made By : Mormonman---]');
WriteLn('[--Time : '+TimeRunning+'--]');
WriteLn('[--Loads : '+IntToStr(AllLoads)+'--]');
WriteLn('[---Player Stats---]');
for I := 0 to High(Players) do
begin
Writeln('[---' + IntToStr(I) + ': ' + Players[I].Nick + ': ' + Players[I].Rand +
'[Loads : ' + IntToStr(Players[I].Integers[1]) + '] ' +
'[Levels Gained : ' + (IntToStr(Players[I].Integers[4] - Players[I].Integers[3])) + '] ' +
'[Current Lvl : ' + IntToStr(Players[I].Integers[4]) + '] ' +
'[Active : ' + BoolToStr(Players[I].Active) + '] ---] ');
end;
WriteLn('[Thank you for using my script!]');
end;

procedure ScriptTerminate;
begin
if not Debug then ClearDebug;
Report;
end;

procedure LoopoftheMain;
begin
repeat//player loop
SetupPlayer;
repeat //smithing loop
Withdraws;
Load;
Deposits;
until (Loads >= Players[CurrentPlayer].Integers[0]) or (not (LoggedIn)); //end of smithing loop
if LoggedIn then NextPlayer(True)
else NextPlayer(False);
until (AllPlayersInactive);//end of player loop
end;


begin
SetupScript;
//SetupPlayer;
LoopoftheMain;
end.

'Toxin

2012-04-03 20:11:30

There really is no standard as to why people get accepted into SRL… Everyone is very opinionated and everyone is unique in their own way. Some people can't really script that well, but have working knowledge of how to create a script, yet they're very nice around the community, don't really post useless crap… On the other hand, some have exceptional scripting skills, excessive knowledge of the library, yet aren't that active in the community… This is why there is really no 'GUIDE' and other peoples applications should not be posted anywhere other than the actual application section. Everyone is unique in their own way, and if you try to make yourself seem like someone else, well then… In my eyes personally, you're really not much of any use, because that's the same thing as copying and pasting someone else's work.

kunzy

2012-04-03 21:08:26

nicely said 0_o very intresting :)[QUOTE='Toxin;979731]There really is no standard as to why people get accepted into SRL… Everyone is very opinionated and everyone is unique in their own way. Some people can't really script that well, but have working knowledge of how to create a script, yet they're very nice around the community, don't really post useless crap… On the other hand, some have exceptional scripting skills, excessive knowledge of the library, yet aren't that active in the community… This is why there is really no 'GUIDE' and other peoples applications should not be posted anywhere other than the actual application section. Everyone is unique in their own way, and if you try to make yourself seem like someone else, well then… In my eyes personally, you're really not much of any use, because that's the same thing as copying and pasting someone else's work.

Er1k

2012-04-04 23:18:37

On the other hand, should we have a how not to apply for SRL membership templates for people to think twice before submitting no script / funny applications?

For the record, we have another one today :) It's quite hilarious.

Ashaman88

2012-04-04 23:57:02

From: Er1k
On the other hand, should we have a how not to apply for SRL membership templates for people to think twice before submitting no script / funny applications?

For the record, we have another one today :) It's quite hilarious.


^^ That would probably be better imo

Er1k

2012-04-05 00:22:36

Actually I have always wondered about those people who claim to be programmers and yet apply with no scripts :D

Also some people are really desperate :( It's like, you can see all sorts of things in members appliances.

Abu

2012-04-06 13:03:25

From: Er1k
On the other hand, should we have a how not to apply for SRL membership templates for people to think twice before submitting no script / funny applications?

For the record, we have another one today :) It's quite hilarious.


Support - it would be a good laugh and good example for all to learn from :)

Silentcore

2012-04-06 13:13:42

From: abu_jwka
Support - it would be a good laugh and good example for all to learn from :)


Yeah that would be good and make us learn from failed application. I'm going to apply in the funny way and hope my application would be there. I support this idea.

Abu

2012-04-06 13:31:56

From: Ucantseemebot
I'm going to apply in the funny way and hope my application would be there.


That would go against the whole idea of it…:huh:

Er1k

2012-04-18 10:47:29

From: abu_jwka
Support - it would be a good laugh and good example for all to learn from :)


Might be a small gravedig here, but I guess now you can see for yourself how an application can be a funny one :D

Abu

2012-04-18 10:53:51

From: Er1k
Might be a small gravedig here, but I guess now you can see for yourself how an application can be a funny one :D


Yeh, except it actually starts to get annoying… :p

Er1k

2012-04-18 11:26:15

I can only say that recent no-script appliances are lacking in sense of humor and creativity in general. The archives had some really funny appliances :)