SRL Archive - Archive

ss23 - SRL Member Application Form


ss23

2008-07-12 08:59:07

<!– BEGIN TEMPLATE: formanswers –>
ss23 - SRL Member Application Form
ss23

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
Php mainly, Visual Basic, A little (very small amount) of Assembly

Other Communitys
Sythe.org irc, not the forums.

How Long have You Played Runescape
On and off for the last 4 yearsish

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

I joined SRL forums a long while back and learnt to script. My first script was a rune essence miner which auctally worked :) so I was pleased with that. I then stoped scripting + runescape for a few months, and now I'm back. This is a highly modified version of my first script. You see, it was made with the idea that one could run this with only a pic axe. It mined essence, then crafted it at the altar. This script so far only crafts earth runes though :)

Ive been trying to decide for awhile now whether or not I should submit a script and after talking on IRC for abit I decided I might as well :) Nothing to lose.

As you can see, I have a WalkToBank + WalkToBankOld which dont get used. I just updated it within the last 2 hours and havent got the fail safes in for NewWalkToBank yet, but they are still here so you can see my scripting skills :)

If you need anything else, you can see me in the irc channel from 6 - 12 (+12gmt) at night.

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

program EarthCrafter_2_01;
{=========================================================================]
[ ]
[ NAME : Earth Crafter ]
[ VERSION : 2.01 ]
[ CODER : ss23 ]
[ CATEGORY : Runecrafting ]
[ USAGE : Crafts earth runes in a free world ]
[ CONTACT : ss23 or [email]twocrazymen23@gmail.com[/email] ]
[ ]
[=========================================================================]
[ Instructions. ]
[=========================================================================]
[ 1. Use Runescape with low detail, very bright. ]
[ 2. Set your screen to 32 bit TRUE color. ]
[ 3. Move players to varrock east bank with tiara equiped ]
[ 4. Set playernames and passwords in PlayerSetup ]
[ 5. Use safe mode an set everything to 'low' before running. It also ]
[ helps if you login and set the brightness to full ]
[ 6. Drag cross hair over the Runescape client window and start script ]
[=========================================================================]
[ Aditional Info ]
[=========================================================================]
[ You can use anything in any of my script (unless otherwise stated) AS ]
[ LONG AS YOU GIVE CREDIT. If you are planning on using a large portion ]
[ of one of my scripts, just send me pm or something like that. ]
{=========================================================================}
{.include srl\srl.scar}

Var
x, y, x2, y2 : Integer;
Blind : Boolean;

Procedure PlayerSetup;
Begin
SRLID := ''; //<- Your SRLID. Leave blank if you dont have one.
SRLPassword := ''; //<- Your SRL Password here if you want to have yout stats logged
CurrentPlayer := 0;
HowManyPlayers:= 1;
NumberOfPlayers(HowManyPlayers);

Players[0].Name := 'Username'; // Username
Players[0].Pass := 'Password'; // Password
Players[0].Nick := 'ern'; // Nickname, 3 - 4 letters of username
Players[0].Loc := 'Bank'; // Players Location - Use bank
Players[0].Active := True; // Active?
Players[0].Pin := 'none'; //BankPin - No pin = none
end;

Procedure Info;
Begin
ClearDebug;
Writeln('Earth Crafter - V 2.01');
Writeln('Please post bugs errors etc in the forums');
end;

Procedure Setup;
Begin
SetAngle(True);
MakeCompass('n');
ChatsOff;
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'Bank';
end;

Procedure WLoad; // By LeeLokHin
begin
while getcolor(21, 29) = 0 do wait(100);
end;

Function SetDDTM1 : Integer;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array[0..5] of TDTMPointDef;
TempTDTM: TDTM;
Col : Integer;
Begin
Col := FindVarrockRoadColor;
dtmMainPoint.x := 852;
dtmMainPoint.y := 413;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Col;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 852;
dtmSubPoints[0].y := 413;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Col;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 877;
dtmSubPoints[1].y := 417;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Col;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 914;
dtmSubPoints[2].y := 412;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Col;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 890;
dtmSubPoints[3].y := 417;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Col;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 844;
dtmSubPoints[4].y := 410;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := Col;
dtmSubPoints[4].Tolerance := 0;

dtmSubPoints[5].x := 931;
dtmSubPoints[5].y := 405;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := Col;
dtmSubPoints[5].Tolerance := 0;

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

Function SetDDTM2 : Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: array[0..7] of TDTMPointDef;
TempTDTM: TDTM;
Col : Integer;
Begin
Col := FindVarrockRoadColor;

dtmMainPoint.x := 863;
dtmMainPoint.y := 403;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Col;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 863;
dtmSubPoints[0].y := 403;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Col;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 858;
dtmSubPoints[1].y := 388;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Col;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 871;
dtmSubPoints[2].y := 359;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Col;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 880;
dtmSubPoints[3].y := 357;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Col;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 856;
dtmSubPoints[4].y := 365;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := Col;
dtmSubPoints[4].Tolerance := 0;

dtmSubPoints[5].x := 853;
dtmSubPoints[5].y := 348;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := Col;
dtmSubPoints[5].Tolerance := 0;

dtmSubPoints[6].x := 860;
dtmSubPoints[6].y := 414;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := Col;
dtmSubPoints[6].Tolerance := 0;

dtmSubPoints[7].x := 857;
dtmSubPoints[7].y := 379;
dtmSubPoints[7].AreaSize := 0;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := Col;
dtmSubPoints[7].Tolerance := 0;

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

Function SetDDTM3: Integer;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..6] of TDTMPointDef;
TempTDTM: TDTM;
Col : Integer;
Begin
Col := FindVarrockRoadColor;

dtmMainPoint.x := 656;
dtmMainPoint.y := 416;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Col;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 656;
dtmSubPoints[0].y := 416;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Col;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 659;
dtmSubPoints[1].y := 399;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Col;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 654;
dtmSubPoints[2].y := 393;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Col;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 662;
dtmSubPoints[3].y := 361;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Col;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 658;
dtmSubPoints[4].y := 328;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := Col;
dtmSubPoints[4].Tolerance := 0;

dtmSubPoints[5].x := 653;
dtmSubPoints[5].y := 422;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := Col;
dtmSubPoints[5].Tolerance := 0;

dtmSubPoints[6].x := 650;
dtmSubPoints[6].y := 376;
dtmSubPoints[6].AreaSize := 0;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := Col;
dtmSubPoints[6].Tolerance := 0;

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

Function SetDDTM4: Integer;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..5] of TDTMPointDef;
TempTDTM: TDTM;
Col : Integer;
Begin
Col := FindVarrockRoadColor;

dtmMainPoint.x := 613;
dtmMainPoint.y := 398;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Col;
dtmMainPoint.Tolerance := 0;

dtmSubPoints[0].x := 613;
dtmSubPoints[0].y := 398;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Col;
dtmSubPoints[0].Tolerance := 0;

dtmSubPoints[1].x := 607;
dtmSubPoints[1].y := 367;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Col;
dtmSubPoints[1].Tolerance := 0;

dtmSubPoints[2].x := 594;
dtmSubPoints[2].y := 364;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Col;
dtmSubPoints[2].Tolerance := 0;

dtmSubPoints[3].x := 673;
dtmSubPoints[3].y := 410;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Col;
dtmSubPoints[3].Tolerance := 0;

dtmSubPoints[4].x := 660;
dtmSubPoints[4].y := 389;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := Col;
dtmSubPoints[4].Tolerance := 0;

dtmSubPoints[5].x := 665;
dtmSubPoints[5].y := 352;
dtmSubPoints[5].AreaSize := 0;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := Col;
dtmSubPoints[5].Tolerance := 0;

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

function RadialWalkCus(TheColor: Integer; StartRadial, EndRadial: Integer; Radius: Integer; Xmod, Ymod: Integer): Boolean;
var
tpa: TPointArray;
i: Integer;
begin
FindNormalRandoms;
Result := False;
if RadialWalkEx(tpa, MMCX, MMCY, TheColor, 0, StartRadial, EndRadial, Radius) then
for i := 0 to High(tpa) do
if MFNF(tpa[i].x, tpa[i].y, Xmod, Ymod) then
begin
FindNormalRandoms;
Result := True;
Break;
end;
end;

Function PlayersActive: Integer;
Var
i : Integer;
Begin
For i := 0 to High(Players) do
If Players[i].Active = True then
Inc(Result);
end;

Procedure AntiBan;
begin
case Random(6) of
0: HoverSkill('random', False);
1: PickUpMouse;
2: AlmostLogout;
3: RandomMovement;
4: BoredHuman;
end;
MakeCompass('N');
end;

// Made by 0wnForSkill, edited by ss23
Function LoginCharacter : Boolean;
Var
Login, Enter : Integer;
Begin
Login := BitmapFromString(48, 14, 'beNpjYBiEIM0YBdHUfJK00Nr' +
'L1FKPx4NoYYvLEGQpNJVYNZJkFDFS+P2L5n7i3YNHJVYpktyD6bzh' +
'5B7K44sk9xAZs0TmZfLcgyaCKy+QkYtJcg9mnsUjS0Z+x5qbCAYIV' +
'Yo4mhaqRNYCg8Q9xBfOJAAATglq/A==');
Enter := BitmapFromString(64, 21, 'beNrtlkEWgCAIRL1GB2' +
'jl/e/X3hCGUUF7+VopjV9BoJQPjHpf4ocb/PxzT8EZnMjfcw1nBga' +
'G+Fcif2/TAP5mqZkxFVxe8IoH8Lv2jeTnIhDkJx4LGHvvyUX8ujjN' +
'r1vq/MTFTo8fb4oYyaK57xcv5Xvmn835EQVvFV7X/9BbIEfI4ifyp' +
'95FEOIB/OYRTPGR/h+vFN5VXHwHftELRMt62HgAbwbiaQ==');
Result := False;
Writeln('Loging in player ' + Players[CurrentPlayer].Name);
Wait(Random(1000));
If(FindBitmap(Login,x,y)) then
Begin
Mouse(x, y, 3, 3, True);
Wait(500 + Random(500));
TypeSEnd(Players[CurrentPlayer].Name);
Wait(500 + Random(300));
TypeSEnd(Players[CurrentPlayer].Pass);
Wait(7000 + Random(1000));
If(FindBitmap(Enter, x, y)) then
Result := True;
Mouse(x, y, 3, 3, True);
Wait(2000 + Random(500));
End;
End;

Procedure Bank;
Begin
FFlag(1);
FindBank('veb')
Flag;
Wait(100 + Random(500));
If not(BankScreen) then
Begin
If not(OpenBankQuiet('veb')) then
Begin
Writeln(Players[CurrentPlayer].Name + ': Cant find bank. Setting location = lost');
Players[CurrentPlayer].Loc := 'Lost';
end;
end else
Begin
InPin(Players[CurrentPlayer].Pin);
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'Bank';
end;
end;

Procedure EndBank;
Var
Amount2 : Integer;
Begin
If not(BankScreen) then Players[CurrentPlayer].Loc := 'Lost' else
Begin
FixBank;
Inc(ReportVars[0]);
Amount2 := RuneAmount('inv', 'earth');
Players[CurrentPlayer].Integers[2] := Players[CurrentPlayer].Integers[2] + Amount2;
ReportVars[1] := ReportVars[1] + Amount2;
DepositAll;
Writeln(Players[CurrentPlayer].Name + ': Deposited inventory');
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'Bank';
Inc(Players[CurrentPlayer].Banked);
end;
end;

Procedure WithdrawEss;
Var
Tries, Ess : Integer;
Begin
If BankScreen then
Begin
Ess := DTMFromString('78DA634C606060F061400169F1710C72409A1' +
'188FF030163289011C98006189148201D0024BC08A801D9154D40' +
'4D16900821A0260748F812618E077E350034080A2A');
Repeat
FindDTM(Ess, x, y, MSX1, MSY1, MSX2, MSY2);
Mouse(x, y, 5, 5, False);
Wait(60 + Random(20));
ChooseOption('All');
Tries := Tries + 1;
Wait(500 + Random(200));
until (InvFull) or (Tries = 4);
If Tries > 3 then
Begin
Players[CurrentPlayer].Loc := 'Lost';
Writeln(Players[CurrentPlayer].Name + ': Cant seem to withdraw essence');
end else Players[CurrentPlayer].Loc := 'WTA';
end else
Begin
Writeln(Players[CurrentPlayer].Name + ': Cant find bank. Setting location = lost');
Players[CurrentPlayer].Loc := 'Lost';
end;
FreeDTM(Ess);
end;

Procedure WalkToAltar;
Begin
Writeln(Players[CurrentPlayer].Name + ': Withdrawn Rune Essence');
RadialWalkCus(FindVarrockRoadColor, 0, 45, 50, 3, 3);
FFlag(3);
RadialWalkCus(FindVarrockRoadColor, 80, 100, 70, -5, -3);
FFlag(3);
RadialWalkCus(FindVarrockRoadColor, 45, 75, 60, 5, 5);
FFlag(3);
RadialWalkCus(FindVarrockRoadColor, 330, 390, 65, 5, 5);
FFlag(3);
RadialWalkCus(FindVarrockRoadColor, 35, 85, 70, -5, -5);
//add failsafes
Flag;
end;

Procedure MMAltar;
Var
x2, y2 : Integer;
Begin
If FindSymbol(x2, y2, 'transportation') then
Begin
Writeln(Players[CurrentPlayer].Name + ': Can see the teleportation symbol');
If FindSymbol(x, y, 'tree') then // If Find teleport + Tree
Begin
Writeln(Players[CurrentPlayer].Name + ': Can see the tree symbol');
x := (x + x2 + 30)/2;
y := (y + y2)/2;
Mouse(x, y, 5, 5, True);
Wait2(500 + Random(500), True);
Flag;
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'OutsideAltar';
end;
end else if FindSymbol(x, y, 'tree') then // Else If you cant find teleport colour
Begin
Mouse(x + 10, y - 22, 5, 5, True);
Wait2(200 + Random(500), True);
Fflag(3);
Writeln(Players[CurrentPlayer].Name + ': Tree symbol, but no teleportation symbol -> Alternative method');
If FindSymbol(x2, y2, 'transportation') then // If found teleport symbol
Begin
Writeln(Players[CurrentPlayer].Name + ': Found teleportation symbol using alternate method =) ');
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'OutsideAltar';
end else // Else if we cant see teleport symbol
Begin
Players[CurrentPlayer].Loc := 'Lost';
Writeln(Players[CurrentPlayer].Name + ': No teleportation symbol using alternate method =) ');
Writeln(Players[CurrentPlayer].Name + ': Lost');
end;
end else // Else if we cant see either symbol
Begin
Players[CurrentPlayer].Loc := 'Lost';
Writeln(Players[CurrentPlayer].Name + ': Couldnt find any symbol to signify player is at altar');
Writeln(Players[CurrentPlayer].Name + ': Lost');
end;
end;

Procedure EnterAltar; // By: n3ss3s, modified by ss23
Var
TPAA: T2DPointArray;
CTS, L, I, Tries : Integer;
TPA: TPointArray;
ExitLoop : Boolean;
Begin
FindNormalRandoms;
Tries := 0;
Repeat
Tries := Tries + 1;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.4, 0.4);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5725540, MSX1, MSY1, MSX2, MSY2, 20);
TPAA := TPAToATPAEx(TPA, 100, 150);
SortATPAFromSize(TPAA, 8000, True);
L := High(TPAA);
ColorToleranceSpeed(CTS);
For I := 0 To L Do
Begin
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
If IsUpText('ysterio') Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
Wait(100 + Random(25));
Flag;
Break;
End;
End;
SetColorSpeed2Modifiers(0.2, 0.2);
Wait2(10 + Random(50), True);
Flag;
Wait2(500 + Random(500), True);
WLoad;
If (FindSymbol(x, y, 'tree') <> True) then ExitLoop := True;
until (ExitLoop = True) or (Tries = 10);
If Tries > 10 then
Begin
Players[CurrentPlayer].Loc := 'Lost';
Writeln(Players[CurrentPlayer].Name + ': Couldnt click on altar');
Writeln(Players[CurrentPlayer].Name + ': Lost');
end else
Begin
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'InAltar';
Writeln(Players[CurrentPlayer].Name + ': Clicked on altar, inside now');
end;
end;

////////////////////////////////////////////////////////////////////////////////
///// Function: FindEarthPortalColor : Boolean /////
///// By: PhantomCode & ss23 /////
///// Description: Finds the interior Earth Temple portal on the Minimap /////
////////////////////////////////////////////////////////////////////////////////
Function FindEarthPortal : Boolean;
Var
I ,PortalColor, NumOfCoords, Col : Integer;
PCC : TPointArray;
Begin
If not(LoggedIn) then Exit;
Result := False;
PortalColor := 2249307;
FindColorsSpiralTolerance(615, 125, PCC, PortalColor, MMX1,MMY1,MMX2,MMY2, 60);
NumOfCoords := GetArrayLength(PCC);
For i := 1 to NumOfCoords Do
Begin
If (Result = True) then Break;
Col := GetColor(PCC[i-1].x, PCC[i-1].y) - GetColor(PCC[i-1].x + 1, PCC[i-1].y);
If (Col > -800000) and (Col < -700000) then
Begin
Result := True;
x := PCC[i-1].x;
y := PCC[i-1].y;
Writeln('Portal color (' + IntToStr(GetColor(PCC[i-1].x, PCC[i-1].y)) + ') found at ' + IntToStr(x) + ',' + IntToStr(y));
end;
end;
If Result = True then
Begin
Writeln(Players[CurrentPlayer].Name + ': Found patch');
Mouse(x, y, 5, 5, True);
Wait(20 + Random(20));
Flag;
end else
Begin
Result := False;
Blind := True;
Mouse(621, 129, 5, 5, True);
Wait(20 + Random(20));
Flag;
end;
end;

Function PortalEscape : Boolean;
Var
Point2 : TPoint;
PointArray : TPointArray;
Begin
Result := False;
If Blind = True then Exit;
FindColorsTolerance(PointArray, 1850959, 110, 100, 350, 280, 20);
Point2 := MiddleTPA(PointArray);
MMouse(Point2.x, Point2.y, 5, 5);
Wait(5);
If IsUpText('ortal') Then
Begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
Wait(20 + Random(20));
Flag;
Result := True;
Exit;
end;
end;

Procedure CraftAltar;
Var
Tries, Time : Integer;
ExitLoop : Boolean;
Begin
ExitLoop := False;
Tries := 0;
FindNormalRandoms;
Wait(1000 + Random(500));
Mouse(630, 45, 10, 5, True);
Wait(100 + Random(100));
FindNormalRandoms;
Flag;
Repeat
If FindObjTPA(x, y, 5593184, 25, -1, 100, 100, 300, ['raft','altar','tar','rune','alt']) then
begin
Writeln(Players[CurrentPlayer].Name + ': Clicked on Altar');
Mouse(x, y, 5, 5, True);
MarkTime(Time);
AntiBan;
Repeat Wait(100) Until TimeFromMark(Time) > 3000;
Wait(2000 + Random(1000));
FindNormalRandoms;
If Not(InvFull) then ExitLoop := True;
end else If Random(3) = 1 then
MakeCompass('e') else If Random(3) = 2 then
MakeCompass('s');
FindNormalRandoms;
Wait(400 + Random(200));
Tries := Tries + 1;
until (ExitLoop = True) or (Tries = 10);
If Tries > 9 then
Begin
Players[CurrentPlayer].Loc := 'Lost';
Writeln(Players[CurrentPlayer].Name + ': Didnt find the altar after 15 tries');
Writeln(Players[CurrentPlayer].Name + ': Lost');
end else MakeCompass('n');
Wait(100 + Random(100));
end;

Procedure ExitAltar;
Var
Tries : Integer;
ExitLoop : Boolean;
Begin
Tries := 0;
ExitLoop := False;
FindEarthPortal;
Wait(100 + Random(50));
If not(PortalEscape) then
Begin
Repeat
If FindObjTPA(x, y, 6721176, 25, -1, 15, 15, 5, ['rtal','Por','se P']) then
Begin
Mouse(x, y, 2, 2, True);
Wait(500 + Random(500));
end;
Inc(Tries);
If Blind = True then Inc(Tries);
FindNormalRandoms;
Wait(2000 + Random(100));
If FindSymbol(x, y, 'transportation') or FindSymbol(x, y, 'tree') then
ExitLoop := True;
until (ExitLoop = True) or (Tries > 29);
If Tries > 29 then
Begin
Players[CurrentPlayer].Loc := 'Lost';
Writeln(Players[CurrentPlayer].Name + ': Didnt find portal after 15 tries');
Writeln(Players[CurrentPlayer].Name + ': Lost');
end else
Begin
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'OutsideAltar';
Writeln(Players[CurrentPlayer].Name + ': Outside Altar');
end;
end else
Begin
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'OutsideAltar';
Writeln(Players[CurrentPlayer].Name + ': Outside Altar');
end;
Wait(100 + Random(100));
Flag;
end;

Procedure OldWalkToBank;
Begin
Writeln(Players[CurrentPlayer].Name + ': Trying old walking now');
RadialWalkCus(FindVarrockRoadColor, 200, 180, 60, 3, 3);
Wait(10);
RadialWalkCus(FindVarrockRoadColor, 270, 220, 70, 3, 3);
Wait(10);
RadialWalkCus(FindVarrockRoadColor, 280, 200, 40, 3, 3);
Wait(100 + Random(200));
end;

Procedure WalkToBank;
Var
OutRock, BankRock : Integer;
Begin
RadialWalkCus(FindVarrockRoadColor, 220, 180, (65 + Random(5)), 5, 5);
SetRun(True);
GameTab(4);
RadialWalkCus(FindVarrockRoadColor, 225, 160, (60 + Random(15)), 5, 5);
OutRock := BitmapFromString(12, 11, 'beNpjYMAKHBycwsPDIAhTV' +
'kNDw9zczNvbG64GUxmmAjQ1QAXIaoAMoKVobkBWA+QiK0B2A4QNUY' +
'/HDRowQLwb0NSguQEzTDDdgKkMzQ0IAACAizWn');
Wait(50);
Flag;
Wait(10);
If FindBitmapToleranceIn(OutRock, x, y, MMX1, MMY1, MMX2, MMY2, 50) then
Begin
x := x - 20;
y := y + 30;
Mouse(x, y, 5, 5, True);
FFlag(5);
BankRock := BitmapFromString(18, 24, 'beNrtkTsOgDAMQ3ucnICu' +
'iLU7vf9NsLCIrP7IDlaG0uYlOElJZWallFpPRM5bCghp+344hcBnk' +
'HIkCPa9GAsE+aAQ5ZYjM3eYAJORwzMqMBYDcUTrvw5QKRw4EByCFP' +
'+q2ZdOtfdFF0qp3x7Ekz3Syj3SUHzVXr4F9Tv0pftSin6H+6Iv3Zf' +
'ezxZNeXdmNve/vqULMtp65A==');
If FindBitmapToleranceIn(BankRock, x, y, MMX1, MMY1, MMX2, MMY2, 50) then
Begin
x := x - 20;
y := y + 20;
Mouse(x, y, 5, 5, True);
end else RadialWalkCus(FindVarrockRoadColor, 265, 220, (60 + Random(10)), 5, 5);
end else OldWalkToBank; // Attempt to continue walking using old method
FreeBitmap(OutRock);
FreeBitmap(BankRock);
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'Bank';
Wait(10);
end;

Procedure NewWalkToBank;
Var
WalkDTM : Integer;
Begin
WalkDTM := SetDDTM1;
If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
end else Writeln('Failed at walk 1');
FreeDTM(WalkDTM);
WalkDTM := SetDDTM2;
FFlag(1);
If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
end else Writeln('Failed at walk 2');
FreeDTM(WalkDTM);
WalkDTM := SetDDTM3;
FFlag(1);
If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
end else Writeln('Failed at walk 3');
FreeDTM(WalkDTM);
WalkDTM := SetDDTM4;
FFlag(1);
If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
end else Writeln('Failed at walk 4');
FreeDTM(WalkDTM);
FFlag(1);
RadialRoadWalk(FindVarrockRoadColor, 290, 240, 45, 3, 3);
If (Players[CurrentPlayer].Loc <> 'Lost') then Players[CurrentPlayer].Loc := 'Bank';
end;

Procedure EndProgy;
Var
H,M,S,i : Integer;
Begin
ConvertTime(GetTimeRunning, H,M,S)
M := M + (H * 60);
Writeln(' Final PROGRESS REPORT (EarthCrafter 2.01 by ss23)');
Writeln('****************************************************');
Writeln(' Ran for '+ IntToStr(M)+' minutes working '+ IntToStr(HowManyPlayers)+' players');
Writeln('****************************************************');
For i := 0 to High(Players) do
Begin
Players[i].Integers[4] := TimeFromMark(Players[i].Integers[3]);
Players[i].Integers[4] := (Players[i].Integers[4] / 100 / 60) / 10;
Writeln(' Name : '+ Players[i].Name);
Writeln(' Number : '+ IntToStr(i));
Writeln(' Worked : '+ IntToStr(Players[i].Integers[4])+' minutes');
Writeln(' Banked : '+ IntToStr (Players[i].Banked) + ' loads');
Writeln(' Crafted : '+ IntToStr(Players[i].Integers[2])+' earth runes');
Writeln(' Location: '+ Players[i].loc);
Writeln('****************************************************');
end;
SRLRandomsReport;
end;

Procedure Progy;
Begin
Players[CurrentPlayer].Integers[4] := TimeFromMark(Players[CurrentPlayer].Integers[3]);
Players[CurrentPlayer].Integers[4] := (Players[CurrentPlayer].Integers[4] / 100 / 60) / 10;
Writeln(' PROGRESS REPORT (EarthCrafter 2.01 by ss23)');
Writeln('****************************************************');
Writeln(' Name : '+ Players[CurrentPlayer].Name);
Writeln(' Number : '+ IntToStr(CurrentPlayer));
Writeln(' Worked : '+ IntToStr(Players[CurrentPlayer].Integers[4])+' mins');
Writeln(' Banked : '+ IntToStr (Players[CurrentPlayer].Banked) + ' loads');
Writeln(' Crafted : '+ IntToStr(Players[CurrentPlayer].Integers[2])+' earth runes');
Writeln(' Location: '+ Players[CurrentPlayer].loc);
Writeln('****************************************************');
SRLRandomsReport;
end;

Procedure SwitchPlayers;
Begin
Players[CurrentPlayer].Active := False
If PlayersActive > 0 then
Begin
Logout;
NextPlayer(False);
MarkTime(Players[CurrentPlayer].Integers[3]);
LoginCharacter;
Progy;
end else
Begin
Progy;
EndProgy;
TerminateScript;
end;
end;

// __________________________________________________________________________ \\

begin
Info;
SetupSRL;
ScriptID := '900';
ActivateClient;
PlayerSetup;
MarkTime(Players[CurrentPlayer].Integers[3]);
If not(Loggedin) then LoginCharacter;
Setup;
Repeat
FindNormalRandoms;
Case Players[CurrentPlayer].Loc of
'Bank' :
Begin
Progy;
Bank;
EndBank;
WithdrawEss;
end;
'WTA' :
Begin
WalkToAltar;
MMAltar;
FindNormalRandoms;
EnterAltar;
end;
'InAltar' :
Begin
CraftAltar;
FindNormalRandoms;
ExitAltar;
end;
'OutsideAltar' : NewWalkToBank;
else SwitchPlayers;
end;
If Players[CurrentPlayer].Active = False then SwitchPlayers;
Until(PlayersActive < 1)
end.

//_______________ Version History _______________

// 1.0 : Edited my Essence miner to change it to a earth crafter :D. I've
// decided to leave out the essence miner part till further notice.
// 1.1 : Added alot more fail safes and fixed all the formatting.
// 1.2 : Added text for debuging. Added WLoad procedure. Tweaked MMAltar. Moved
// some Global Vars to local.
// 1.2a : Fixed problems with variables (Internal release)
// 1.3 : Added banking fail safe along with other minor fixes
// 1.4 : Multiplayer added (not fully tested). Changed walking to procedures,
// wont stop working between load screens. New portal clicking procedure.
// This along with other minor fixes, 1 hour stability.
// 1.5 : Added new AntiBan and AntiRandom functions. Changed back to FindObjTPA
// for portal finding. New failsafe for checking if exited altar
// correctly. Changed altar crafting failsafe.
// 2.0 : Tweaked wait times. New patch finding for ExitAltar. Added SRL stats.
// Updated progy. Fixed multiplayer. New WalkToBank. Added running. Auto
// chat - private. Changed main loop. Withdraw essence from any slot.
// New portal finding.
// 2.01 : Updated to work with new RS. Minor updates to walking. Issues with
// MMAltar transport symbol finding should now be fixed. New DTM for
// walking back to bank. New craft altar.


//_______________ Bugs _______________

// Patch finding very inaccurate. Can cause problems
// Walking to altar fails about 50% of the time
//_______________ Future Updates _______________

// Walking tweaked again, there and back.
// Add feature for saving proggy to keep from losing it when Scar closes
// Support for tally
// Add a auto locate feature
// New procedure for waiting for antiban in CraftAltar, current method
// If craft altar fails, exits through the portal and tries again
// means that you have to wait an extened period of time.
// Add a working essence miner for a "dual" mode, mines essence then crafts it

——————————————————
<!– END TEMPLATE: formanswers –>

the scar noob

2008-07-12 09:14:15

I like it! Better then the everage application we receive these days! I see a bit of everything. TPA, DTM, DDTM, etc..

I like how your mainloop is set up and how the script decides what to do by the players location, I do that to!!:D

I also like that you load your ddtm in a variable and free it afterwards, which 70 % of the people who apply don't do, most even forget to free their dtm or they free them in an unproper way:p

Good job, really! I can say, imo, that your application is the best one that's pending atm.

I don't say it's perfect or so, I think I saw some little mistakes here and there (I didn't looked at it closely, I just "scanned" through your script) but I can be wrong.

I'll wait a bit before I vote, I first want to see what my fellow members think, but you have for 70 % my "yes" vote:p:p

-Tsn.

Naum

2008-07-12 09:17:38

Well Done! This should be an auto-accept :)

the scar noob

2008-07-12 09:20:55

From: NaumanAkhlaQ
Well Done! This should be an auto-accept :)


Uhhmm dunno, that's supposed to be very rare:p

-Tsn.

Waddo

2008-07-12 09:23:33

This is a very good app. I may be wrong but I see some problems

If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
end else Writeln('Failed at walk 3');
FreeDTM(WalkDTM);
WalkDTM := SetDDTM4;
FFlag(1);

What's happening here is if it finds the DTM then it clicks it
then frees the DTM and loads the next one then flags
but if it doesn't find the DTM it still flags I may be wrong
but I think you should do

If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
wait(100+random(50));
FFlag(1);
end else Writeln('Failed at walk 3');
FreeDTM(WalkDTM);
WalkDTM := SetDDTM4;

But an excellent app IMHO I would be surprised if you don't get in.
+ You have good quality posts.
An Imaginary yes from me as i cant vote yet =]. Well done.

ss23

2008-07-12 09:27:53

From: Waddo
This is a very good app. I may be wrong but I see some problems

If DTMRotated(WalkDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
Begin
Mouse(x, y, 5, 5, True);
end else Writeln('Failed at walk 3');
FreeDTM(WalkDTM);
WalkDTM := SetDDTM4;
FFlag(1);

What's happening here is if it finds the DTM then it clicks it
then frees the DTM and loads the next one then flags
but if it doesn't find the DTM it still flags I may be wrong
but I think you should do



Ya sorry about that. I havent put in the fail safes yet, Im just a little too tired to do it at the moment (1:30am). But if you look in WalkToBank you can see some there from before this version of the script.

Glad to see everyone seems to like it :)

Wizzup?

2008-07-12 09:37:00

Yes.

Waddo

2008-07-12 10:44:31

Oh thankgod for that lol I was expecting me to be wrong. Hmm im considering voting as I really do think you deserve this your an excellent scripter and you have high quality posts.
What do you guys think should I vote?

3Garrett3

2008-07-12 10:46:28

NO! Dont vote or I will shoot you.
Nah. Go ahead. No reason to vote anyway, he's in for sure.

Lee Lok Hin

2008-07-12 11:07:41

*Glances at script and wonders why he is'nt at credits.*

*Gasps*

*Votes No*

Joking. It's a yes. Great script.
You..

Negaal

2008-07-12 11:52:17

Lol. enjoy your stay.

Waddo

2008-07-12 11:59:13

Could I ask what the sudden obsession with
writing in white text?

I hope you get 100% I was on my way there then hobbit voted no =]

Harry

2008-07-12 12:06:48

Forgot a few semi-colons.

Repeat Wait(100) Until TimeFromMark(Time) > 3000;

can simply be Wait(3000);, no?
Or if not, do:
while TimeFromMark(Time) > 3000 then
Wait(100);


Mouse(630, 45, 10, 5, True);

O noez, not a bad coord click.

It's a yes from me, just make sure you get your activity bar up .. a lot.

P1nky

2008-07-12 12:23:26

yikes havent seen this kind of coding for a while(from a junior) YES!

the scar noob

2008-07-12 12:25:23

From: Waddo
Could I ask what the sudden obsession with
writing in white text?

I hope you get 100% I was on my way there then hobbit voted no =]


Sudden? Haha!! I see you're very new:) It's already a somekinda of tradition over here:) GoF started with it if I remember correct, from one he was an SRL Member which is already a very long time.

GoF's getiing old and ugly! Isn't it GoF? j/k:p
('lil tip for the new ones: DON'T argue with GoF, you just can't win:p)

-Tsn.

Dusk412

2008-07-12 14:24:05

Hey nice work, DDTMs and TPAs at last in an application, the last application we got with those was… mine lol. I won't vote out of my sheer newness to being a member unless for some reason tons of people start voting no, in which case I will come back and vote yes for you :D. Looks like you are getting in. Oh and not a 100% lol, I would have too except a certain member was high and came in and randomly flamed me n voted no rofl. Good luck, hope to see you in members soon.

Scaper

2008-07-12 16:23:43

i voted yes i remeber thius script from w while back you left ya user and pass in so i pm'd ya them back remember lol

again
yes

ss23

2008-07-12 18:17:27

From: Scaper
i voted yes i remeber thius script from w while back you left ya user and pass in so i pm'd ya them back remember lol

again
yes


Ya I remeber that :( Lets just hope I dont do it again.

Yahs for members!

Daniel

2008-07-12 21:59:34

False Statement:
It seems lack the knowledge of most SRL Member requirements. Such as:
  • DDTMs/DTMs
  • Walking
  • TPAs
  • Standards
  • Anti Randoms/Ban

I'll vote a NO for now.

True Statement:
You know a lot of the knowledge that an SRL Member application requires. You have included good walking, and a lot of use of TPAs and DTMs (Inc. DDTMs). I vote YES. P.S: Don't pay attention to the 2 paragraphs above, because it was a joke.

skilld u

2008-07-13 14:56:26

yes.

Metagen

2008-07-13 21:28:28

I really wanted to vote no but i couldnt :(

Naike

2008-07-14 06:44:21

Yes..

MasterKill

2008-07-14 07:29:39

From: Hy71194

Or if not, do:
while TimeFromMark(Time) > 3000 then
Wait(100);


ownt:

while TimeFromMark(Time) < 3000 then
Wait(100);

yes from me.

GoF

2008-07-14 07:38:06

Yes from moi.

Starblaster100

2008-07-14 11:43:07

Welcome in