Kasi
2011-04-07 16:01:48
How Long have You Played Runescape?
6 Year(s)
Are you affilated in anyway with Jagex LTD?
NO
Were you Referred to SRL?
What is your general programming knowledge?
Just Pascal
have taken a look at HTML but not long enough to remember =]
Are you a member of any other communities?
NO
Tell us about yourself…
Please show us one (or multiple) of your scripts.
6 Year(s)
Are you affilated in anyway with Jagex LTD?
NO
Were you Referred to SRL?
What is your general programming knowledge?
Just Pascal
have taken a look at HTML but not long enough to remember =]
Are you a member of any other communities?
NO
Tell us about yourself…
From: pur3b100d
i play runescape not often but i consider it a hobby. i like watching movies and playing games. the games that i play are normally competitive and involve strategy. recently i have not been as active. been busy with school work and other life =]. the type of movies im in to are adventure, action comedy and horror.
Please show us one (or multiple) of your scripts.
Program BucketFiller;
{$DEFINE SMART}
{$DEFINE UseLaptopMouse}
{$I SRL\SRL.SCAR}
Var
X, Y, DTM : Integer;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := '';
Pass := '';
Pin := '';
Integers[0] := 100;
Active := True;
End;
End;
Function WalkToBank : Boolean;
Begin
Result := FindSymbol(X, Y, 'Bank');
Mouse(X, Y, 2, 2, True);
FFlag(0);
End;
Function WalkToWater : Boolean;
Begin
Result := FindSymbol(X, Y, 'Water');
Mouse(X, Y, 2, 2, True);
FFlag(0);
End;
function FindWell(var fx, fy: Integer): Boolean;
var
arP, arAP: TPointArray;
arC, arUC: TIntegerArray;
ararP: T2DPointArray;
tmpCTS, i, j, arL, arL2: Integer;
P: TPoint;
R, G, B: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.05, 0.62);
if not(FindColorsSpiralTolerance(MSCX, MSCY, arP, 4545385, MSX1, MSY1, MSX2, MSY2, 13)) then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
arUC := arC;
ClearSameIntegers(arUC);
arL := High(arUC);
arL2 := High(arC);
for i := 0 to arL do
begin
ColorToRGB(arC[i], R, G, B);
if (R >= 70) and (R <= 134) and (G >= 58) and (G <= 123) and (B >= 39) and (B <= 104) then
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.53) and (X <= 19.10) and (Y >= 4.60) and (Y <= 19.91) and (Z >= 2.64) and (Z <= 15.68) then
begin
for j := 0 to arL2 do
begin
if (arUC[i] = arC[j]) then
begin
SetLength(arAP, Length(arAP) + 1);
arAP[High(arAP)] := arP[j];
end;
end;
end;
end;
end;
SortTPAFrom(arAP, Point(MSCX, MSCY));
ararP := SplitTPAEx(arAP, 50, 50);
arL := High(ararP);
for i := 0 to arL do
begin
if (Length(ararP[i]) < 10) then Continue;
P := MiddleTPA(ararP[i]);
MMouse(P.x, P.y, 5, 5);
Wait(100 + Random(100));
if (IsUpText('-> We')) then
begin;
Result := True;
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Exit;
GetMousePos(fx, fy);
end;
Function FillBuckets : Boolean;
Begin
DTM := DTMFromString('mggAAAHicY2NgYHBiYmDwAWJrIPYCYksgdgTiF0C5u0D8AYjfA/E9IL4GxCVxJkCSCQOLAElWLJgRB4YAAAQJCDs=');
GameTab(25);
If FindDTM(DTM, X, Y, MIX1, MIY1, MIX2, MIY2) Then
Begin
WriteLn('DTM');
Mouse(X, Y, 7, 7, True);
Wait(100 + Random(100));
If FindWell(X, Y) Then
Begin
Mouse(X, Y, 5, 5, True);
Result := True;
End;
End;
FreeDTM(DTM);
End;
Function Finished : Boolean;
Begin
GameTab(4);
DTM := DTMFromString('mggAAAHicY2NgYHBigmBLIPYBYkcgtgfiB0C5T0D8DIqvMUDESkragCQTCgaJiQBZrGgYJMaIA0MAAHJRChY=');
Result := (CountItemsIn('inv', 'dtm', DTM, []) = 28);
FreeDTM(DTM);
End;
Function Bank : Boolean;
Begin
DTM := DTMFromString('mggAAAHicY2NgYHBiYmDwAWJrIPYCYksgdgTiF0C5u0D8AYjfA/E9IL4GxCVxJkCSCQOLAElWLJgRB4YAAAQJCDs=');
Repeat
OpenBankFast('eb');
Until(BankScreen Or PinScreen);
Repeat
If PinScreen Then
InPin(+Players[CurrentPlayer].Pin);
Until(BankScreen);
Repeat
DepositAll;
Until(InvEmpty);
Repeat
If FindDTM(DTM, X, Y, MBX1, MBY1, MBX2, MBY2) Then
Begin
Mouse(X, Y, 6, 6, False);
Wait(200 + Random(200));
ChooseOption('w-A');
End;
Until(InvFull);
FreeDTM(DTM);
End;
Procedure Progress;
Var
I : Integer;
Begin
WriteLn('BucketFiller, Ran For '+TimeRunning);
For I := 0 To High(HowManyPlayers - 1) Do
Writeln('P '+IntToStr(I)+', B '+IntToStr(Players[CurrentPlayer].Integers[1])+'.');
If (Players[CurrentPlayer].Integers[1] >= Players[CurrentPlayer].Integers[0]) Then
NextPlayer(False);
End;
Procedure MainLoop;
Begin
Bank;
If WalkToWater Then
Begin
If FillBuckets Then
Begin
While Not Finished Do Wait(100 + Random(50));
If WalkToBank Then
IncEx(Players[CurrentPlayer].Integers[1], 28);
End;
End;
Progress;
End;
Begin
Smart_Members := True;
Smart_Server := 106;
Smart_Signed := True;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Repeat
SetAngle(TRue);
MakeCompass(0);
MainLoop;
Until(AllPlayersInactive);
End.
// AirCrafter Been publicly released.
Program AirCrafter;
{$DEFINE SMART}
{$DEFINE UseLaptopMouse}
{$I SRL\SRL.SCAR}
{$I Reflection\Reflection.Simba}
Var
AirPath, BankPath : TPointArray;
BankBooth, OutAlter, InAlter, Portal, Musician, RTile : TPoint;
CAni, ARune, Tiara, Essence, I, DTM, X, Y, BreakCount : Integer;
Const
BreakEvery = 15;
SMART_WORLD = 106;
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
With Players[0] Do
Begin
Name := '';
Pass := '';
Pin := '';
Integers[0] := 50; // Loads
Active := True;
End;
{ With Players[1] Do
Begin
Name := '';
Pass := '';
Pin := '';
Integers[0] := 50; // Loads
Active := True;
End;
With Players[2] Do
Begin
Name := '';
Pass := '';
Pin := '';
Integers[0] := 50; // Loads
Active := True;
End;
With Players[3] Do
Begin
Name := '';
Pass := '';
Pin := '';
Integers[0] := 50; // Loads
Active := True;
End; }
End;
Function CheckTile(Tile : TPoint) : Boolean;
Begin
Result := TileOnMM(Tile);
End;
Function ReturnAirs : Integer;
Var
Temp : TInvItem;
begin
If (GetItemIDAt(1) = ARune) Then
Begin
Temp := GetInvItemAt(1);
Result := Temp.StackSize;
End Else
Result := 0;
End;
Function EssInINV : Boolean;
Begin
Result := (R_CountItem(Essence) > 0);
End;
Function TiaraEquiped : Boolean;
Begin
Result := IsEquippedName('Air tiara');
SetAngle(True);
End;
Function WalkAntiban : Boolean;
Begin
Case Random(1250) Of
12..65: MouseBox(0, 0, MIX2, MIY2, 3);
66..75: PickUpMouse;
76..85: GameTab(21 + Random(10));
91..93: HoverSkill('runecrafting', False);
97..250: MouseBox(MMX1, MMY1, MMX2, MMY2, 3);
0..1250: Wait(250 + Random(250));
End;
GameTab(25);
Result := True;
End;
Function ClickMap(Tile : TPoint; Rand, Flag : Integer) : Boolean;
Begin
Result := False;
Tile := RandomizeTile(Tile, Rand, Rand);
RTile := TileToMM(Tile);
If Not RS_OnMiniMap(RTile.X, RTile.Y) Then
Exit;
Mouse(RTile.X, RTile.Y, 1, 1, True);
Wait(RandomRange(80, 100));
Result := True;
End;
Function RunWait(Tile : TPoint; Rand, Flag : Integer) : Boolean;
Begin
Result := False;
Repeat
If (Flag = 0) Then
Begin
If (DistanceFrom(Tile) < 6) And Not(CharacterMoving)Then
Result := True;
End;
If (Flag > 0) Then
Begin
If (DistanceFrom(Tile) <= Flag) Then
Result := True;
End;
If Not R_FlagExists And Not(CharacterMoving) And Not (DistanceFrom(Tile) < 6) Then
ClickMap(Tile, Rand, Flag);
If Not Result Then
WalkAntiban;
Until(Result);
End;
Function WalkTile(Tile : TPoint; Rand, Flag : Integer) : Boolean;
begin
Result := False;
If (R_GetMMLevels('energy') >= 95) Then SetRun(True);
Repeat
ClickMap(Tile, Rand, Flag);
Result := RunWait(Tile, Rand, Flag);
Until(Result);
End;
Function CTileOption(Tile : TPoint; Opt : String; Rx, Ry : Integer) : Boolean;
Var
Temp : TPoint;
Click : Boolean;
Begin
Click := False;
Click := (Opt = '');
If Not (DistanceFrom(Tile) < 6) Then
WalkTile(Tile, 0, 0);
Temp := TileToMS(Tile, 10);
Mouse(Temp.X, Temp.Y, Rx, Ry, Click);
Result := Click;
If (Click = False) Then
Begin
Wait(200 + Random(100));
Result := ChooseOption(+Opt);
End;
If Result Then Wait(1500 + Random(500));
End;
Function WaitResting : Boolean;
Begin
If R_IsResting Then
While Not (R_GetMMLevels('energy') = 100) Do
Begin
If Not R_IsResting Then
CTileOption(Musician, 'n-t', 3, 3);
R_FindRandoms;
WalkAntiban;
End;
Result := True;
End;
Procedure LoadInfo;
Begin
SetLength(AirPath, 6);
SetLength(BankPath, 6);
AirPath[0] := Point(3174, 3428);
AirPath[1] := Point(3164, 3424);
AirPath[2] := Point(3153, 3421);
AirPath[3] := Point(3145, 3414);
AirPath[4] := Point(3138, 3407);
AirPath[5] := Point(3128, 3407);
BankPath[0] := Point(3138, 3407);
BankPath[1] := Point(3145, 3414);
BankPath[2] := Point(3153, 3421);
BankPath[3] := Point(3164, 3424);
BankPath[4] := Point(3174, 3428);
BankPath[5] := Point(3183, 3435);
BankBooth := Point(3181, 3436);
OutAlter := Point(3127, 3405);
InAlter := Point(2844, 4834);
Portal := Point(2841, 4828);
Musician := Point(3153, 3422);
CAni := 791;
ARune := 556;
Essence := 1436;
MouseSpeed := 13;
End;
Function AnimateWait(Animation : Integer; WaitA : Boolean) : Boolean;
Begin
Result := (Not(GetAnimation = -1));
Result := (GetAnimation = Animation);
If WaitA Then
While (GetAnimation = Animation) Do Wait(50 + Random(50));
End;
Procedure Progress;
Begin
ClearDebug;
WriteLn('Air Crafter');
WriteLn(+TimeRunning);
WriteINI('Time', 'TimeRunning', +TimeRunning, +ScriptPath+'Progress Report.ini');
For I := 0 To HowManyPlayers - 1 Do
Begin
WriteLn('P : '+IntToStr(I)+', A : '+BoolToStr(Players[I].Active)+', C : '+IntToStr(Players[I].Integers[1])+', XP : '+IntToStr(Players[I].Integers[2]*140)+', '+IntToStr(Players[I].Integers[2])+'/'+IntToStr(Players[I].Integers[0])+'.');
WriteINI(Players[I].Name, 'C', +IntToStr(Players[CurrentPlayer].Integers[1]), +ScriptPath+'Progress Report.ini');
WriteINI(Players[I].Name, 'L', +IntToStr(Players[CurrentPlayer].Integers[2]), +ScriptPath+'Progress Report.ini');
WriteINI(Players[I].Name, 'XP', +IntToStr(Players[CurrentPlayer].Integers[2]*140), +ScriptPath+'Progress Report.ini');
WriteINI(Players[I].Name, 'A', +BoolToStr(Players[CurrentPlayer].Active), +ScriptPath+'Progress Report.ini');
End;
End;
Function BankAirs : Boolean;
Begin
If (ReturnAirs > 0) Then
Begin
IncEx(Players[CurrentPlayer].Integers[1], ReturnAirs);
Inc(Players[CurrentPlayer].Integers[2]);
Inc(BreakCount);
End;
Progress;
Repeat
While Not R_BankScreen And Not EssInInv And Not R_PinScreen Do
If CTileOption(BankBooth, 'e-q', 5, 5) Then
While CharacterMoving Do Wait(50 + Random(50));
Wait(300 + Random(200));
While R_PinScreen Do
InPin(+Players[CurrentPlayer].Pin);
Wait(300 + Random(200));
If R_BankScreen And Not R_InvEmpty And Not EssInInv Then
R_DepositAll(True);
If R_InvEmpty And R_BankScreen Then
Begin
DTM := DTMFromString('78DA6334656060C8654001AE4E4E0C22409A1' +
'188FF0301A333A61A0606260656A81A1060D400123904D4980189' +
'4A026A1C80442901355A40A284801A27209146408D26904825A04' +
'60F48941350630D242AF0AB0100576B0BA3');
If FindDTM(DTM, X, Y, MBX1, MBY1, MBX2, MBY2) Then
Begin
Mouse(X, Y, 0, 0, False);
Wait(300 + Random(200));
ChooseOption('w-All R');
End;
FreeDTM(DTM);
End;
Until(EssInInv);
Result := EssInInv;
End;
Function CraftAirs : Boolean;
Begin
Repeat
If CheckTile(OutAlter) And EssInInv Then
Begin
CTileOption(OutAlter, '', 10, 10);
While CharacterMoving Do Wait(50 + Random(50));
End;
If CheckTile(InAlter) And EssInInv Then
Begin
CTileOption(InAlter, '', 10, 10);
While CharacterMoving Do Wait(50 + Random(50));
AnimateWait(CAni, True);
End;
If CheckTile(Portal) And Not EssInInv Then
Begin
CTileOption(Portal, '', 3, 3);
While CharacterMoving Do Wait(50 + Random(50));
End;
Until((ReturnAirs > 0) And CheckTile(OutAlter));
Result := True;
End;
Function WalkToAlter(SkipFirst : Boolean) : Boolean;
Begin
If Not SkipFirst Then
Begin
WalkTile(AirPath[0], 1, 5);
WalkTile(AirPath[1], 1, 5);
If (R_GetMMLevels('energy') < 35) Then
Begin
WalkTile(AirPath[2], 1, 0);
Repeat
Result := CTileOption(Musician, 'n-t', 3, 3);
Until(Result);
WaitResting;
End Else;
WalkTile(AirPath[2], 1, 5);
End;
WalkTile(AirPath[3], 1, 5);
WalkTile(AirPath[4], 1, 5);
WalkTile(AirPath[5], 1, 0);
End;
Function WalkToBank(SkipFirst : Boolean) : Boolean;
Begin
If Not SkipFirst Then
Begin
WalkTile(BankPath[0], 1, 5);
WalkTile(BankPath[1], 1, 5);
If (R_GetMMLevels('energy') < 35) Then
Begin
WalkTile(BankPath[2], 1, 0);
Repeat
Result := CTileOption(Musician, 'n-t', 3, 3);
Until(Result);
WaitResting;
End Else;
WalkTile(BankPath[2], 1, 5);
End;
WalkTile(BankPath[3], 1, 5);
WalkTile(BankPath[4], 1, 5);
WalkTile(BankPath[5], 1, 0);
End;
Function MainLoop : Boolean;
Begin
Repeat
Result := False;
If Not LoggedIn Then
Begin
If Players[CurrentPlayer].Active = True Then LoginPlayer;
If Players[CurrentPlayer].Active = False Then
Begin
NextPlayer(False);
BreakCount := 0;
End;
End;
R_FindRandoms;
If Not EssInINV And CheckTile(BankBooth) Then BankAirs;
R_FindRandoms;
If EssInINV And CheckTile(BankBooth) Then WalkToAlter(False);
If EssInINV And CheckTile(OutAlter) Or CheckTile(InAlter) Then CraftAirs;
R_FindRandoms;
If Not EssInInv And CheckTile(InAlter) Then CraftAirs;
R_FindRandoms;
If Not EssInInv And CheckTile(OutAlter) Then WalkToBank(False);
R_FindRandoms;
If Not EssInInv And CheckTile(Musician) Then WalkToBank(True);
R_FindRandoms;
If EssInInv And CheckTile(Musician) Then WalkToAlter(True);
R_FindRandoms;
If Not CheckTile(BankBooth) And
Not CheckTile(OutAlter) And
Not CheckTile(InAlter) And
Not CheckTile(Musician)Then
Begin
R_FindRandoms;
If Not EssInInv Then
WalkToBank(False);
If EssInInv Then
WalkToAlter(False);
End;
Result := (Players[CurrentPlayer].Integers[2] = Players[CurrentPlayer].Integers[0]);
Until((BreakCount >= BreakEvery) Or (Result));
If Result Then
Begin
NextPlayer(False);
If Not TiaraEquiped Then
Begin
Progress;
TerminateScript;
End;
Exit;
End;
BreakCount := 0;
NextPlayer(True);
If Not TiaraEquiped Then
Begin
Progress;
TerminateScript;
End;
End;
Begin
Smart_Members := False;
Smart_Server := SMART_WORLD;
Smart_Signed := True;
SetupSRL;
SetupReflectionEx(False);
LoadInfo;
DeclarePlayers;
LoginPlayer;
Wait(3000 + Random(2000))
If Not TiaraEquiped Then
Begin
Progress;
TerminateScript;
End;
Repeat
MainLoop;
Until(AllPlayersInactive);
Progress;
End.