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
——————————————————
<!– END 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 –>