SRL Archive - Archive

Jethr0x - SRL Member Application Form


Jethr0x

2008-06-08 00:38:50

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

What is the meaning to life?


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


Programming Knowledge
Java, PHP, Basic (Robotics)

Other Communitys
Sythe, Fagex, Mopar, Rune-Server

How Long have You Played Runescape
4 years

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

I am not a "noob," or a "leecher." My dad is head software engineer for DRS Tactical systems, so I have been around computers, and programming for quite a while. These kind of things come to me easily, and I am always willing to learn. I know I wont be "the best" coder around, but im pretty sure with some help \ looking around, I can become pretty decent.

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

Program VialBuyer;
{ script by Jethr0x}
{.include SRL\SRL.scar}
{
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IMPORTANT NOTE!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
___ _ ____ _ _
| \ | | | | |____ _____ ____ | |
| _ \ ___ ___ ___| | | [] | | _ \ ___ | ___| __ \ | |
| _\ _ \ \\ | | _ | | ___\ _ \ |___| ___\|_|
| |\ \ ___\ o \_ [] | | | | | |__\ \_\ \__ | |__ _
|_| \_|___\\_____\___| |_| |_|____\\_______\__|____\ |_|
DO NOT SELL THE VIALS FOR LOWEST IN GE!!! THESE ARE GREAT FOR TRANSFERRING MONEY!
IF THE PRICE OF VIALS DROPS DRAMTICALLY, I WILL NOT UPDATE THIS SCRIPT!!!!!!!!!
IF YOU MUST SELL IN THE GE, SELL FOR MID PRICE OR HIGHER!!! IT WILL SELL!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~Credits:
1. ZephyrsFury For his ZephFlag.
2. Me.
3. Nicbaz for helping me a little.
4. The SRL-Devs for creating SRL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}

var
BankBoothMM : integer;
Walk1DTMM, Walk2DTMM : integer;
x, y, Vials : integer;

const
GEWealth = 90; // Price of Vial in the Grand Exchange
NumVials = 0; // How many Vials do u have already?

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);

Players[0].Name := 'Jagex';
Players[0].Pass := 'you_phail';
Players[0].Nick := 'age';
Players[0].Active := true;
Players[0].loc := '';
end;

Procedure LoadDTMs;
begin

Walk1DTMM := DTMFromString('78DA637CC8C4C050CB8002B2925318B880342' +
'394CF0852D38AAAA6A05A1E55CD5BA09A3A02E6DC06AAA927A0E6' +
'15504D0BAA1A597F2EB89AFF400000E886104D');

Walk2DTMM := DTMFromString('78DA630C66626030614001F9E9E90C5C409A1' +
'188FF03016338508D3DA61A06A81A301D0B54A343408D2F508D01' +
'0135614498E30554638EAA26BE4911554D3C508D35AA9A17AFBFA' +
'0AA01F95D0D554D3A9A39006AA51364');

BankBoothMM := DTMFromString('78DA632C676260086200032608C5D050D3C62' +
'007A41981F83F1030D623D4C0C0DBB7109A11CA67AC00AAF14755' +
'F3E4FD5B543520BB4208A82902AA09445503720FB21A006BB1127' +
'E');

writeln('DTM''s Loaded.')
end;

{------------------------------------------------------------------------------]
[ procedure ZephFlag(Distance: Integer); ]
[ by: ZephyrsFury ]
[ Description: My version of FFlag with AntiRandoms. ]
{------------------------------------------------------------------------------}
procedure ZephFlag(Dist: Integer);
var
Dx, Dy, m, d1, d2: Integer;
begin
while (FindColor(Dx, Dy, 255, MMX1, MMY1, MMX2, MMY2)) do
begin
d1 := Distance(Dx, Dy + 14, MMCX, MMCY);
if (d1 >= Dist) then
begin
Inc(m);
Wait(100);
if (m mod 5 = 0) then FindNormalRandoms; //So that a random doesn't make it
if (m mod 100 = 0) then //get lost.
if (d1 = d2) then
begin
if (FindColor(Dx, Dy, 255, MMX1, MMY1, MMX2, MMY2)) then
Mouse(Dx, Dy + 14, 1, 1, True)
else
Mouse(MMCX, MMCY, 0, 0, True);
end else d2 := d1;
end else Break;
end;
end;

{*******************************************************************************
function OpenBankQuiet(WhichBank: string): Boolean;
By: WT-Fakawi and modified by Ron
Description: Opens any given bank in the free world using
FindDeformedBitmapToleranceIn. Avoids strange mouse movements. Will cause
significant lag (approx. 1 second), but finds the bank with one click.

Edited by : Jethr0x
********************************************************************************}
function OpenBankQuiet2(WhichBank: string): Boolean;
var
TheCounter, dx, dy, tol, Mark2, Mark3: Integer;
acc, accthres : Extended;
begin
case WhichBank of
'asb', 'ardy': TheCounter := BitmapFromString(1, 13, 'beNoLDwr090yJi8hIiQOSceFB4' +
'aFQFBHklRQHZcQBAAxdDUg=');
end;

MarkTime(Mark3);
tol := 1;
accthres := 0.6;
repeat
if BankScreen or PinScreen then
begin
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
if IsUpTextMultiCustom(['ank', 'Bo', 'ot']) then
begin
GetMousePos(dx, dy);
Mouse(dx, dy, 0, 0, False);
if ChooseOption('uickly') then
begin
MarkTime(Mark2);
repeat
Wait(10);
if TimeFromMark(Mark2) > 20000 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
if(FindSymbol(x, y, 'bank')) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
Flag;
end;
Exit;
end;
until BankScreen or PinScreen;
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
end;

FindDeformedBitmapToleranceIn(TheCounter, dx, dy, MSX1 + 50, MSY1 + 50, MSX2
- 50, MSY2 - 50, tol, 4, True, acc);
if (acc >= accthres) then
begin
if BankScreen or PinScreen then
begin
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
MMouse(dx, dy, 0, 0);
if IsUpTextMultiCustom(['ank', 'Bo', 'ot']) then
begin
GetMousePos(dx, dy);
Mouse(dx, dy, 0, 0, False);
if ChooseOption('uickly') then
begin
MarkTime(Mark2);
repeat
Wait(10);
if TimeFromMark(Mark2) > 20000 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
Exit;
end;
until BankScreen or PinScreen;
end;
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
end;
Wait(100);
tol := tol + 4;
if tol >= 20 then
begin
tol := 1;
accthres := accthres - 0.1;
if accthres < 0.2 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
Exit;
end;
end;
until TimeFromMark(Mark3) > 60000;
FreeBitmap(TheCounter);
end;

Procedure CheckRun;
var
RunP : integer;
Energy : String;
begin
RunP := GetMMLevels('run', Energy)
CloseBank;
if(Energy = 'green')then
begin
writeln('[Walk] Setting Run on...');
SetRun(True);
end;
end;

Procedure AntiBan;
begin
writeln('[AntiBan] Performing Random AntiBan...');
Case Random(10) of
0: SetRun(True);
1: Gametab(1+random(12));
2: HoverSkill('random', false);
3: wait(1000);
4: wait(1000);
5: wait(1000);
6: FindNormalRandoms;
7: FindNormalRandoms;
end;
end;

Procedure ToStore;
var MMA : Extended;
begin
LoadDTMs;
begin
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end
else
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
CheckRun;
ZephFlag(15);
end;
end;
if(FindDTMRotated(Walk2DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
ZephFlag(10);
Writeln('[Walk] DTM Found, #2.');
Mouse(x-15, y, 0, 0, true)
Players[CurrentPlayer].loc := 'WalkDTM2';
Exit;
end
else
begin
Writeln('[Walk] Radial Road Walk #2');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
ZephFlag(20);
Exit;
end;
end;

procedure FindKeepers;
var
TMT, Times: Integer;
begin
TMT := 0;
AntiBan;
if not ShopScreen then
begin
wait(2000+random(3000))
FLAG;
Writeln('[Trade] Shop is not Open. Finding Keeper...');
if(FindSymbolIn(x, y, 'store', MMX1, MMY1, MMX2, MMY2)) then
begin
Flag;
Writeln('[Walk] General Store Found.');
Mouse(x, y, 0, 0, true)
Flag;
end;
repeat
Times:=0;
TMT := TMT + 1
if FindObjEx(X, Y, ['emad', 'ortan'], [7510470, 6522541, 7500667],
10, 241, 173, 0.5, 58, 63, 368, 263) then
begin
Wait(50 + Random(20));
Mouse(X, Y, 1, 1, false);
Wait(50 + Random(20));
if ChooseOption('rade') then
begin
Writeln('[Trade] Attempted...');
repeat
Times:= Times + 1
wait(100);
until (ShopScreen) or (Times > 50);
if shopscreen then
begin
writeln('[Trade] Successful');
exit;
end;
end;
end;
until (TMT > 5);
if (not(ShopScreen)) then
begin
if(FindSymbolIn(x, y, 'store', MMX1, MMY1, MMX2, MMY2)) then
begin
ZephFlag(10)
Writeln('[Trade] General Store Found.');
Mouse(x, y, 0, 0, true)
Players[CurrentPlayer].loc := 'Store';
FindKeepers;
end;
end
else
Writeln('[Trade] Could Not Find Keeper.');
end
else
Logout;
end;

Procedure FreeDTMs;
begin
FreeDTM(BankBoothMM);
FreeDTM(Walk1DTMM);
FreeDTM(Walk2DTMM);
end;

Procedure BuyVials;
begin
FindKeepers;
begin
wait(random(2000));
MouseBox(67, 110, 92, 127, 3)
if(IsUpText('Vial'))then
begin
getmousepos(x, y)
wait(100)
Mouse(x,y,0,0,false)
ChooseOption('Buy X')
Wait(1000)
Case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;
end
else
begin
MouseBox(50, 70, 116, 79, 1)
wait(random(600))
BuyVials;
end;
Wait(400)
end;
end;

Procedure ToBank;
var MMA : extended;
begin
LoadDTMs;
wait(random(5000))
if(FindDTMRotated(Walk2DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
ZephFlag(10);
Writeln('[Walk] DTM Found, #2.');
Mouse(x-15, y, 0, 0, true)
Players[CurrentPlayer].loc := 'WalkDTM2';
end
else
begin
Writeln('[Walk] Radial Road Walk #2');
RadialRoadWalk(FindRoadColor, 110, 80, 72, 0, 0)
FindNormalRandoms;
ZephFlag(20);
end;
FindNormalRandoms;
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end
else
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 130, 90, 50, 0, 0)
FindNormalRandoms;
CheckRun;
Flag;
end;
if(FindDTMRotated(BankBoothMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
AntiBan;
Flag;
end
else
if(FindSymbol(x, y, 'bank'))then
begin
Writeln('[Bank] Symbol Found.');
Mouse(x, y, 3, 3, true)
AntiBan;
end;
end;

Procedure OpenBankJ;
var tries : integer;
begin
tries := 0;
fLAG;
begin
Repeat
tries := tries + 1;
fLAG;
OpenBankQuiet2('asb');
if (FindSymbol(x, y, 'store'))then ToBank;
wait(200)
until((BankScreen) or (Tries >= 5))
end;
end;



Procedure WithDrawJ;
var MMA : extended;
begin
Flag;
if(Bankscreen)then
begin
FixBank;
DepositAll;
MouseBox(80, 73, 108, 90, 3)
if(isUptext('oin'))then
begin
GetMousePos(x, y)
Mouse(x, y, 0, 0, false)
ChooseOption('X')
wait(1000+random(1000))
TypeSend('280')
wait(random(2000))
Case Random(3) of
0: CheckRun;
1: wait(1000);
end;
end;
end
else
if(FindDTMRotated(BankBoothMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
Flag;
OpenBankJ;
end;
end;

Procedure DepositJ;
begin
if(BankScreen)then
begin
Flag;
DepositAll;
Vials := Vials + 28;
wait(random(2000));
end
else
if(FindSymbol(x, y, 'bank'))then
begin
writeln('Opening Bank...');
OpenBankJ;
end
else
if(FindSymbol(x, y, 'store'))then ToBank;
end;

Procedure SetupJ;
begin
SetupSRL;
Wait(1000)
ActivateClient;
Wait(2000)
DeclarePlayers;
if(not LoggedIn) then LoginPlayer;
wait(1000)
SetAngle(True);
MakeCompass('N');
wait(1000)
end;

Procedure ProgressReport;
var TotalSpent, Profit, GEPrice, RateP, RateV, Sec : integer;
begin
TotalSpent := Vials * 10;
GEPrice := Vials * GEWealth;
Profit := GEPrice - TotalSpent;
Sec := GetTimeRunning div 1000+1;
RateP:= 3600 * Profit / Sec; // by mastaraymond.
RateV := 3600 * Vials / Sec;
begin
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
Writeln('|| Jethr0x''s Vial Buyer v0.1 ||');
Writeln('|| Spent: ' + IntToStr(TotalSpent) + 'gp. ||');
Writeln('|| Bought: ' + IntToStr(Vials) + ' vials. [' +IntToStr(RateV)+' Vials per hour.] ||');
Writeln('|| Profit: ' + IntToStr(Profit) + ' gp. [' +IntToStr(RateP)+'GP per hour.] ||');
Writeln('|| Ran For: ' + TimeRunning + ' ||');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
writeln('|| Post This or I RAPE you :) ||');
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
end;
end;

begin
Vials := NumVials;
SetupJ;
Wait(2000)
OpenBankJ;
repeat
WithDrawJ;
ToStore;
BuyVials;
ToBank;
OpenBankJ;
DepositJ;
ClearDebug;
ProgressReport;
FreeDTMs;
wait(1000)
until(False)
end.

Here is the latest version of script… version 0.02

Program VialBuyer;
{ script by Jethr0x}
{.include SRL\SRL.scar}
{
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IMPORTANT NOTE!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
___ _ ____ _ _
| \ | | | | |____ _____ ____ | |
| _ \ ___ ___ ___| | | [] | | _ \ ___ | ___| __ \ | |
| _\ _ \ \\ | | _ | | ___\ _ \ |___| ___\|_|
| |\ \ ___\ o \_ [] | | | | | |__\ \_\ \__ | |__ _
|_| \_|___\\_____\___| |_| |_|____\\_______\__|____\ |_|
DO NOT SELL THE VIALS FOR LOWEST IN GE!!! THESE ARE GREAT FOR TRANSFERRING MONEY!
IF THE PRICE OF VIALS DROPS DRAMTICALLY, I WILL NOT UPDATE THIS SCRIPT!!!!!!!!!
IF YOU MUST SELL IN THE GE, SELL FOR MID PRICE OR HIGHER!!! IT WILL SELL!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~Credits:
1. Zephyr For his ZephFlag.
2. Me.
3. Nicbaz for helping me a little.
4. The SRL-Devs for creating SRL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}

var
BankBoothMM : integer;
Walk1DTMM, Walk2DTMM : integer;
x, y, Vials : integer;

const
GEWealth = 90; // Price of Vial in the Grand Exchange
NumVials = 0; // How many Vials do u have already?

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);

Players[0].Name := 'Jagex';
Players[0].Pass := 'you_phail';
Players[0].Nick := 'age';
Players[0].Active := true;
Players[0].loc := '';
{
Players[1].Name := 'Jagex';
Players[1].Pass := 'you_phail';
Players[1].Nick := 'age';
Players[1].Active := true;
Players[1].loc := '';

Players[2].Name := 'Jagex';
Players[2].Pass := 'you_phail';
Players[2].Nick := 'age';
Players[2].Active := true;
Players[2].loc := ''; }
end;

Procedure LoadDTMs;
begin
Walk1DTMM := DTMFromString('78DA637CC8C4C050CB8002B2925318B880342' +
'394CF0852D38AAAA6A05A1E55CD5BA09A3A02E6DC06AAA927A0E6' +
'15504D0BAA1A597F2EB89AFF400000E886104D');
Walk2DTMM := DTMFromString('78DA630C66626030614001F9E9E90C5C409A1' +
'188FF03016338508D3DA61A06A81A301D0B54A343408D2F508D01' +
'0135614498E30554638EAA26BE4911554D3C508D35AA9A17AFBFA' +
'0AA01F95D0D554D3A9A39006AA51364');
BankBoothMM := DTMFromString('78DA635CCAC4C090CE0006CC108AE1EBF3F70' +
'C72409A1188FF0301E35AA09A340614F0F62D846684F2195703D5' +
'14A1AAF9F3870955CD3C203F07554D434D1BAA9A99403549A86AE' +
'2232251D400003F8112A4');
writeln('DTM''s Loaded.')
end;

{------------------------------------------------------------------------------]
[ procedure ZephFlag(Distance: Integer); ]
[ by: ZephyrsFury ]
[ Description: My version of FFlag with AntiRandoms. ]
{------------------------------------------------------------------------------}
procedure ZephFlag(Dist: Integer);
var
Dx, Dy, m, d1, d2: Integer;
begin
while (FindColor(Dx, Dy, 255, MMX1, MMY1, MMX2, MMY2)) do
begin
d1 := Distance(Dx, Dy + 14, MMCX, MMCY);
if (d1 >= Dist) then
begin
Inc(m);
Wait(100);
if (m mod 5 = 0) then FindNormalRandoms; //So that a random doesn't make it
if (m mod 100 = 0) then //get lost.
if (d1 = d2) then
begin
if (FindColor(Dx, Dy, 255, MMX1, MMY1, MMX2, MMY2)) then
Mouse(Dx, Dy + 14, 1, 1, True)
else
Mouse(MMCX, MMCY, 0, 0, True);
end else d2 := d1;
end else Break;
end;
end;

{*******************************************************************************
function OpenBankQuiet(WhichBank: string): Boolean;
By: WT-Fakawi and modified by Ron
Description: Opens any given bank in the free world using
FindDeformedBitmapToleranceIn. Avoids strange mouse movements. Will cause
significant lag (approx. 1 second), but finds the bank with one click.

Edited by : Jethr0x
********************************************************************************}
function OpenBankQuiet2(WhichBank: string): Boolean;
var
TheCounter, dx, dy, tol, Mark2, Mark3: Integer;
acc, accthres : Extended;
begin
case WhichBank of
'asb', 'ardy': TheCounter := BitmapFromString(1, 10, 'beNqLiwgPDQr094wI8oKjlPDgl' +
'LgIEAIAmN4KFA==');
end;
MarkTime(Mark3);
tol := 1;
accthres := 0.6;
repeat
if BankScreen or PinScreen then
begin
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
if IsUpTextMultiCustom(['ank', 'Bo', 'ot']) then
begin
GetMousePos(dx, dy);
Mouse(dx, dy, 0, 0, False);
if ChooseOption('uickly') then
begin
MarkTime(Mark2);
repeat
Wait(10);
if TimeFromMark(Mark2) > 20000 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
if(FindSymbol(x, y, 'bank')) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
ZephFlag(0);
end;
Exit;
end;
until BankScreen or PinScreen;
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
end;
FindDeformedBitmapToleranceIn(TheCounter, dx, dy, MSX1 + 50, MSY1 + 50, MSX2
- 50, MSY2 - 50, tol, 4, True, acc);
if (acc >= accthres) then
begin
if BankScreen or PinScreen then
begin
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
MMouse(dx, dy, 0, 0);
if IsUpTextMultiCustom(['ank', 'Bo', 'ot']) then
begin
GetMousePos(dx, dy);
Mouse(dx, dy, 0, 0, False);
if ChooseOption('uickly') then
begin
MarkTime(Mark2);
repeat
Wait(10);
if TimeFromMark(Mark2) > 20000 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
Exit;
end;
until BankScreen or PinScreen;
end;
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
end;
Wait(100);
tol := tol + 4;
if tol >= 20 then
begin
tol := 1;
accthres := accthres - 0.1;
if accthres < 0.2 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
Exit;
end;
end;
until TimeFromMark(Mark3) > 60000;
FreeBitmap(TheCounter);
end;

{*******************************************************************************
Name: CheckRun
By: Jethr0x
Discription: Its supposed to check the color of the 'run' orb on the minimap,
and if its green, to set run on. Im not sure if this works.
*******************************************************************************}
Procedure CheckRun;
var
RunP : integer;
Energy : String;
begin
RunP := GetMMLevels('run', Energy)
CloseBank;
if(Energy = 'green')then
begin
writeln('[Walk] Setting Run on...');
SetRun(True);
end;
end;

{*******************************************************************************
Name: AntiBan
By: Jethr0x
Discription: A quick Anti-Ban
*******************************************************************************}
Procedure AntiBan;
begin
writeln('[AntiBan] Performing Random AntiBan...');
Case Random(10) of
0: SetRun(True);
1: Gametab(1+random(12));
2: HoverSkill('random', false);
3, 4, 5: wait(1000);
6, 7 : FindNormalRandoms;
end;
end;

{*******************************************************************************
Name: ToStore;
By: Jethr0x
Description: Walks Player to Ardougne General Store from South Bank.
*******************************************************************************}
Procedure ToStore;
var MMA : Extended;
begin
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end else
if(FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
CheckRun;
ZephFlag(15);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
if(FindDTMRotated(Walk2DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
ZephFlag(10);
Writeln('[Walk] DTM Found, #2.');
Mouse(x-15, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM2';
Exit;
end else
if(FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #2');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
ZephFlag(20);
Exit;
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
end;

{*******************************************************************************
Name: FindStore
By: Jethr0x
Description: Finds the General store on the minimap, then looks for the shop
keepers. If Not Found, it kills the current player, and switches
to the next active player.
Uses: if(FindStore(x, y)) then
*******************************************************************************}
Function FindStore(x, y : integer): boolean;
begin
if(FindSymbolIn(x, y, 'store', MMX1, MMY1, MMX2, MMY2)) then
begin
ZephFlag(10);
Writeln('[Trade] General Store Found.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'Store';
Result := True;
Exit;
end else
begin
Result := False;
Writeln('Could not find General Store Killing Player...');
NextPlayer(False);
Logout;
wait(random(5000))
if not(LoggedIn) then LoginPlayer;
end;
end;

{*******************************************************************************
Name: FindKeepers;
By: Jethr0x
Discription: Finds the Ardougne general store shop keepers, If not found the 1st
time, it clicks shop on the minimap, and tries again. If still not
successful, it logs out, and switches player.
*******************************************************************************}
Procedure FindKeepers;
var
TMT, Times: Integer;
begin
TMT := 0;
AntiBan;
if not ShopScreen then
begin
if(FindStore(x, y))then
begin
ZephFlag(0);
wait(100);
repeat
Times := 0;
TMT := TMT + 1
if FindObjEx(X, Y, ['emad', 'ortan'], [7510470, 6522541, 7500667],
10, 241, 173, 0.5, 58, 63, 368, 263) then
begin
Wait(50 + Random(20));
Mouse(X, Y, 1, 1, false);
Wait(50 + Random(20));
if ChooseOption('rade') then
begin
Writeln('[Trade] Attempted...');
repeat
Times:= Times + 1
wait(100);
until (ShopScreen) or (Times > 50);
if shopscreen then
begin
writeln('[Trade] Successful');
exit;
end;
end;
end;
until (TMT > 5);
if (not(ShopScreen)) then
begin
Writeln('[Trade] Could Not Find Keeper.');
NextPlayer(False);
Logout;
wait(random(5000))
if not(LoggedIn) then LoginPlayer;
end;
end;
end;
end;

{*******************************************************************************
Name: FreeDTMs;
By: Jethr0x
Discription: Frees the DTMs, reducing LAG. (Hopefully).
*******************************************************************************}
Procedure FreeDTMs;
begin
FreeDTM(BankBoothMM);
FreeDTM(Walk1DTMM);
FreeDTM(Walk2DTMM);
end;

{*******************************************************************************
Name: BuyVials;
By: Jethr0x
Discription: Uses FindKeepers; to open the general store, then checks to make
sure shop is in the right tab, if not it fixes, then buys vials,
hitting 2 keys that arenext to eachother. (unlike using a
randomness where the 2 keys can be on opposite sides of the keypad,
this is more human like.)
*******************************************************************************}
Procedure BuyVials;
begin
FindKeepers;
begin
wait(random(2000));
MouseBox(67, 110, 92, 127, 3)
if(IsUpText('Vial'))then
begin
getmousepos(x, y);
wait(100);
Mouse(x,y,0,0,false)
ChooseOption('Buy X')
Wait(1000);
Case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;
end else
begin
Writeln('[Trade] Shop is in wrong tab, fixing...');
MouseBox(50, 70, 116, 79, 1);
wait(random(600));
BuyVials;
end;
Wait(400)
end;
end;

{*******************************************************************************
Name: ToBank;
By: Jethr0x
Discription: Uses DTMs, with a RadialRoadWalk failsafe to walk to bank. If road
is not found, it sets the current player false, and goes to next
player.
*******************************************************************************}
Procedure ToBank;
var MMA : extended;
begin
wait(random(5000));
if(FindDTMRotated(Walk2DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
ZephFlag(10);
Writeln('[Walk] DTM Found, #2.');
Mouse(x-15, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM2';
end else
if (FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #2');
RadialRoadWalk(FindRoadColor, 110, 80, 72, 0, 0);
FindNormalRandoms;
ZephFlag(20);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
FindNormalRandoms;
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end else
if (FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 130, 90, 50, 0, 0)
FindNormalRandoms;
CheckRun;
ZephFlag(0);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
if(FindDTMRotated(BankBoothMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
AntiBan;
ZephFlag(0);
end else
if(FindSymbol(x, y, 'bank'))then
begin
Writeln('[Bank] Symbol Found.');
Mouse(x, y, 3, 3, true)
AntiBan;
end;
end;

{*******************************************************************************
Name: OpenBankJ;
By: J(ethr0x)
Discription: Uses a modded version of OpenBankQuiet, and opens the ardougne bank
If not found, it sets the current player false, and moves on.
*******************************************************************************}
Procedure OpenBankJ;
var tries : integer;
begin
tries := 0;
ZephFlag(0);
begin
Repeat
tries := tries + 1;
ZephFlag(0);
OpenBankQuiet2('asb');
if (FindSymbol(x, y, 'store')) then ToBank;
wait(200)
until((BankScreen) or (Tries >= 5))
end;
if BankScreen then
begin
Exit;
end else
begin
Writeln('Banking failed');
NextPlayer(False);
end;
end;

{*******************************************************************************
Name: WithDrawJ;
By: J(ethr0x)
Discription: Checks for BankScreen, then checks to see if Coins are in the 1st
slot. Withdraws them.
*******************************************************************************}
Procedure WithDrawJ;
var MMA : extended;
begin
ZephFlag(0);
if(Bankscreen)then
begin
FixBank;
DepositAll;
MouseBox(85, 73, 104, 88, 3)
if(isUptext('ns'))then
begin
GetMousePos(x, y)
Mouse(x, y, 0, 0, false)
ChooseOption('X')
wait(1000+random(1000))
TypeSend('280')
wait(random(2000))
Case Random(3) of
0: SetRun(True);
1: wait(1000);
end;
end else
if(FindDTMRotated(BankBoothMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi,
0.1, MMA)) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
ZephFlag(0);
OpenBankJ;
end;
end;
end;

{*******************************************************************************
Name: DepositJ.
By: J(ethr0x)
Discription: Deposites Inventory into bank.
*******************************************************************************}
Procedure DepositJ;
begin
if(BankScreen)then
begin
ZephFlag(0);
DepositAll;
Vials := Vials + 28;
wait(random(2000));
end else
if(FindSymbol(x, y, 'bank'))then
begin
writeln('Opening Bank...');
OpenBankJ;
end else
if(FindSymbol(x, y, 'store'))then ToBank;
end;

{*******************************************************************************
Name: SetupJ
By: Jethr0x
Discription: Sets up the Scripts and players.
*******************************************************************************}
Procedure SetupJ;
begin
SetupSRL;
Wait(1000)
ActivateClient;
Wait(2000)
DeclarePlayers;
if(not LoggedIn) then LoginPlayer;
wait(1000)
SetAngle(True);
MakeCompass('N');
wait(1000)
end;

{*******************************************************************************
Name: Progress Report;
By: Jethr0x
Discription: A Progress Report...
*******************************************************************************}
Procedure ProgressReport;
var TotalSpent, Profit, GEPrice : integer;
begin
TotalSpent := Vials * 10;
GEPrice := Vials * GEWealth;
Profit := GEPrice - TotalSpent;
begin
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
Writeln('|| Jethr0x''s Vial Buyer v0.1 ||');
Writeln('|| Spent: ' + IntToStr(TotalSpent) + 'gp. ||');
Writeln('|| Bought: ' + IntToStr(Vials) + ' vials. ||');
Writeln('|| Profit: ' + IntToStr(Profit) + ' gp. ||');
Writeln('|| Ran For: ' + TimeRunning + ' ||');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
writeln('|| Post This or I RAPE you :) ||');
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
end;
end;
{*******************************************************************************
------------------------------] MAIN LOOP! [------------------------------------
*******************************************************************************}
begin
Vials := NumVials;
SymbolAccuracy := 0.4;
SetupJ;
LoadDTMs;
Wait(2000)
OpenBankJ;
repeat
WithDrawJ;
ToStore;
BuyVials;
ToBank;
OpenBankJ;
DepositJ;
ClearDebug;
wait(100)
Vials := Vials + 28;
ProgressReport;
wait(1000)
until(False)
end.
——————————————————
<!– END TEMPLATE: formanswers –>

Jackrawl

2008-06-08 01:22:25

I'm voting no mainly because I doubt you plan on sticking around. 166 posts and you've been here much longer than I have. No one here can really say they know you.

Other than that, there are only a few problems.

Procedure AntiBan;
begin
writeln('[AntiBan] Performing Random AntiBan...');
Case Random(10) of
0: SetRun(True);
1: Gametab(1+random(12));
2: HoverSkill('random', false);
3: wait(1000);
4: wait(1000);
5: wait(1000);
6: FindNormalRandoms;
7: FindNormalRandoms;
end;
end;
could be

Procedure AntiBan;
begin
writeln('[AntiBan] Performing Random AntiBan...');
Case Random(10) of
0: SetRun(True);
1: Gametab(1+random(12));
2: HoverSkill('random', false);
3, 4, 5: wait(1000);
6, 7: FindNormalRandoms;
end;
end;
FindDTMRotated can be simplified by DTMRotated, there were inconsistencies with player locations…

Writeln('[Trade] Shop is not Open. Finding Keeper...');
if(FindSymbolIn(x, y, 'store', MMX1, MMY1, MMX2, MMY2)) then
begin
Flag; //??? no mouse click...
Writeln('[Walk] General Store Found.');
Mouse(x, y, 0, 0, true)
Flag;
     end;
end //Wrong standards
else
Writeln('[Trade] Could Not Find Keeper.'); //Makes me think weird logic
end
else
Logout;
end;
You skipped a ton of semicolons.

Procedure BuyVials;
begin
FindKeepers;
begin
wait(random(2000));
MouseBox(67, 110, 92, 127, 3)
if(IsUpText('Vial'))then
begin
getmousepos(x, y)
wait(100)
Mouse(x,y,0,0,false)
ChooseOption('Buy X')
Wait(1000)
Case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;
end
else
begin
MouseBox(50, 70, 116, 79, 1)
wait(random(600))
BuyVials;
end;
However, my main issue with the script was that you continually loaded and freed DTMs - one in the first procedure that they are used in, and one in the main loop. Why? It doesn't conserve memory, or least of all speed up the script.

Another thing that I was wondering was why you used Flag and ZephFlag.

Also, keep in mind that since FindRoadColor returns an integer, you can use it to check where you are as a failsafe, and save time by simply assigning the value it returns to any variable, and switching that variable in with RadialRoadWalk. It saves a lot of debug space.

You probably will get in, because it isn't a bad script.

Good luck.

Jethr0x

2008-06-08 01:29:19

thanks for the constuctive criticism. And yes, I will be sticking around. (Just so you know)

I was on sythe for quite a while.. but I'm tired of all the leechers, and scammers :(

I am updating the script with your suggestions, then updating my post in the SRL-Junior member's (Collecting \ Banking) Section.

I'm not sure If I am aloud to update the script in this thread, because in my eyes, thats cheating (in a sense).

Now for your other questions.

This script was made a while ago by me for me. Nicbaz saw how people <3'd me on sythe, and told me to post something here. So I updated. I added the walking using DTMS (so I called the DTMs in there)… I must have kept going and called them in again (during the main loop). I saw ZephFlag in his Yew Script. and I thought it really pwned. So I added it in the walking.

Jackrawl

2008-06-08 02:02:42

From: Jethr0x
thanks for the constuctive criticism. And yes, I will be sticking around. (Just so you know)

I was on sythe for quite a while.. but I'm tired of all the leechers, and scammers :(

I am updating the script with your suggestions, then updating my post in the SRL-Junior member's (Collecting \ Banking) Section.

I'm not sure If I am aloud to update the script in this thread, because in my eyes, thats cheating (in a sense).

Now for your other questions.

This script was made a while ago by me for me. Nicbaz saw how people <3'd me on sythe, and told me to post something here. So I updated. I added the walking using DTMS (so I called the DTMs in there)… I must have kept going and called them in again (during the main loop). I saw ZephFlag in his Yew Script. and I thought it really pwned. So I added it in the walking.


Blegh, I used to work with sythe. So boring there. I registered once, looked through posts, and since 90% were requests I just left.

The only person who cares about making corrections during an application is HyperSecret. So long as you don't overrite the initial script, and make it in a seperate post, theres no problem - just make sure to make corrections that were not specified while you are at it.

markuska815

2008-06-08 02:36:08

The first thing i have to say is you def need to work on your standards. It makes it look nice and easier to read. Next:

Repeat
tries := tries + 1;
fLAG;
OpenBankQuiet2('asb');
if (FindSymbol(x, y, 'store'))then ToBank;
wait(200)
until((BankScreen) or (Tries >= 5))

This won't work I don't think because if you open the bank the MM is still visible so i will just go to the if(FindSymbol… part every time and will just repeat walking to the bank until tries >= 5. Instead try

if not(OpenBankQuiet2('asb')) then
if (FindSymbol(x, y, 'store')) then
ToBank;

Instead of this in your BuyVials function:
      Case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;

just do:
TypeSend(InttoStr(randomRange(28, 100)));
Its more random cause after a while yours would be repetitive.

Also if your going to make the BuyVials procedure recursive like you did you need to add more failsafes. That is bound to mess up sometime and will create an infinite loop.

Thats what i have so far. I'll keep looking at it. But it needs some serious work.

MasterKill

2008-06-08 02:40:38

  • I don't see multi player
  • I don't see functions made by you.

you made a good start at scripting but it's not enough yet to get in srl members. Keep it up and try again next month.

no.

JuKKa

2008-06-08 05:16:42

No.

Mainly because of the standards, fix them and next time u apply im sure ill vote yes.

Jethr0x

2008-06-08 08:08:13

From: markuska815
The first thing i have to say is you def need to work on your standards. It makes it look nice and easier to read. Next:

Repeat
tries := tries + 1;
fLAG;
OpenBankQuiet2('asb');
if (FindSymbol(x, y, 'store'))then ToBank;
wait(200)
until((BankScreen) or (Tries >= 5))

This won't work I don't think because if you open the bank the MM is still visible so i will just go to the if(FindSymbol… part every time and will just repeat walking to the bank until tries >= 5. Instead try



Instead of this in your BuyVials function:
      Case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;

just do:
TypeSend(InttoStr(randomRange(28, 100)));
Its more random cause after a while yours would be repetitive.

Also if your going to make the BuyVials procedure recursive like you did you need to add more failsafes. That is bound to mess up sometime and will create an infinite loop.



The Bank I think if fine, because it kind of acts like a failsafe, but I guess your version is shorter, So I will put that in.

Also the buy vials, I put it like that based on how I play, I don't a random 3 keys on far sides of the keypad… I hit 2 keys close together, because its faster. Well if the way I play legitly will get me banned for macroing, I guess I can change the script, and the way I play :)

@ Masterkill

I could easilly add multi player, but I never saw the need to with this script… I mean its mostly for transferring money from one account to main \ pure. I doubt anyone would run this with 2 player.

Also, I didnt really see a need in making my own functions. (Besides find shopkeeper, and editing the openbankquiet) … because everything else works very well.

@ Jukka

By standards, you mean indenting? Im pretty sure I did that :(

Jethr0x

2008-06-08 09:53:06

Is this any better?

Program VialBuyer;
{ script by Jethr0x}
{.include SRL\SRL.scar}
{
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IMPORTANT NOTE!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
___ _ ____ _ _
| \ | | | | |____ _____ ____ | |
| _ \ ___ ___ ___| | | [] | | _ \ ___ | ___| __ \ | |
| _\ _ \ \\ | | _ | | ___\ _ \ |___| ___\|_|
| |\ \ ___\ o \_ [] | | | | | |__\ \_\ \__ | |__ _
|_| \_|___\\_____\___| |_| |_|____\\_______\__|____\ |_|
DO NOT SELL THE VIALS FOR LOWEST IN GE!!! THESE ARE GREAT FOR TRANSFERRING MONEY!
IF THE PRICE OF VIALS DROPS DRAMTICALLY, I WILL NOT UPDATE THIS SCRIPT!!!!!!!!!
IF YOU MUST SELL IN THE GE, SELL FOR MID PRICE OR HIGHER!!! IT WILL SELL!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~Credits:
1. Zephyr For his ZephFlag.
2. Me.
3. Nicbaz for helping me a little.
4. The SRL-Devs for creating SRL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}

var
BankBoothMM : integer;
Walk1DTMM, Walk2DTMM : integer;
x, y, Vials : integer;

const
GEWealth = 90; // Price of Vial in the Grand Exchange
NumVials = 0; // How many Vials do u have already?

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := 'Jagex';
Players[0].Pass := 'you_phail';
Players[0].Nick := 'age';
Players[0].Active := true;
Players[0].loc := '';
end;

Procedure LoadDTMs;
begin
Walk1DTMM := DTMFromString('78DA637CC8C4C050CB8002B2925318B880342' +
'394CF0852D38AAAA6A05A1E55CD5BA09A3A02E6DC06AAA927A0E6' +
'15504D0BAA1A597F2EB89AFF400000E886104D');
Walk2DTMM := DTMFromString('78DA630C66626030614001F9E9E90C5C409A1' +
'188FF03016338508D3DA61A06A81A301D0B54A343408D2F508D01' +
'0135614498E30554638EAA26BE4911554D3C508D35AA9A17AFBFA' +
'0AA01F95D0D554D3A9A39006AA51364');
BankBoothMM := DTMFromString('78DA632C676260086200032608C5D050D3C62' +
'007A41981F83F1030D623D4C0C0DBB7109A11CA67AC00AAF14755' +
'F3E4FD5B543520BB4208A82902AA09445503720FB21A006BB1127' +
'E');
writeln('DTM''s Loaded.')
end;

{------------------------------------------------------------------------------]
[ procedure ZephFlag(Distance: Integer); ]
[ by: ZephyrsFury ]
[ Description: My version of FFlag with AntiRandoms. ]
{------------------------------------------------------------------------------}
procedure ZephFlag(Dist: Integer);
var
Dx, Dy, m, d1, d2: Integer;
begin
while (FindColor(Dx, Dy, 255, MMX1, MMY1, MMX2, MMY2)) do
begin
d1 := Distance(Dx, Dy + 14, MMCX, MMCY);
if (d1 >= Dist) then
begin
Inc(m);
Wait(100);
if (m mod 5 = 0) then FindNormalRandoms; //So that a random doesn't make it
if (m mod 100 = 0) then //get lost.
if (d1 = d2) then
begin
if (FindColor(Dx, Dy, 255, MMX1, MMY1, MMX2, MMY2)) then
Mouse(Dx, Dy + 14, 1, 1, True)
else
Mouse(MMCX, MMCY, 0, 0, True);
end else d2 := d1;
end else Break;
end;
end;

{*******************************************************************************
function OpenBankQuiet(WhichBank: string): Boolean;
By: WT-Fakawi and modified by Ron
Description: Opens any given bank in the free world using
FindDeformedBitmapToleranceIn. Avoids strange mouse movements. Will cause
significant lag (approx. 1 second), but finds the bank with one click.

Edited by : Jethr0x
********************************************************************************}
function OpenBankQuiet2(WhichBank: string): Boolean;
var
TheCounter, dx, dy, tol, Mark2, Mark3: Integer;
acc, accthres : Extended;
begin
case WhichBank of
'asb', 'ardy': TheCounter := BitmapFromString(1, 10, 'beNqLiwgPDQr094wI8oKjlPDgl' +
'LgIEAIAmN4KFA==');
end;
MarkTime(Mark3);
tol := 1;
accthres := 0.6;
repeat
if BankScreen or PinScreen then
begin
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
if IsUpTextMultiCustom(['ank', 'Bo', 'ot']) then
begin
GetMousePos(dx, dy);
Mouse(dx, dy, 0, 0, False);
if ChooseOption('uickly') then
begin
MarkTime(Mark2);
repeat
Wait(10);
if TimeFromMark(Mark2) > 20000 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
if(FindSymbol(x, y, 'bank')) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
ZephFlag(0);
end;
Exit;
end;
until BankScreen or PinScreen;
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
end;
FindDeformedBitmapToleranceIn(TheCounter, dx, dy, MSX1 + 50, MSY1 + 50, MSX2
- 50, MSY2 - 50, tol, 4, True, acc);
if (acc >= accthres) then
begin
if BankScreen or PinScreen then
begin
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
MMouse(dx, dy, 0, 0);
if IsUpTextMultiCustom(['ank', 'Bo', 'ot']) then
begin
GetMousePos(dx, dy);
Mouse(dx, dy, 0, 0, False);
if ChooseOption('uickly') then
begin
MarkTime(Mark2);
repeat
Wait(10);
if TimeFromMark(Mark2) > 20000 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
Exit;
end;
until BankScreen or PinScreen;
end;
Result := True;
FreeBitmap(TheCounter);
Exit;
end;
end;
Wait(100);
tol := tol + 4;
if tol >= 20 then
begin
tol := 1;
accthres := accthres - 0.1;
if accthres < 0.2 then
begin
WriteLn('couldnt find the bank. Exiting');
FreeBitmap(TheCounter);
Exit;
end;
end;
until TimeFromMark(Mark3) > 60000;
FreeBitmap(TheCounter);
end;

{*******************************************************************************
Name: CheckRun
By: Jethr0x
Discription: Its supposed to check the color of the 'run' orb on the minimap,
and if its green, to set run on. Im not sure if this works.
*******************************************************************************}
Procedure CheckRun;
var
RunP : integer;
Energy : String;
begin
RunP := GetMMLevels('run', Energy)
CloseBank;
if(Energy = 'green')then
begin
writeln('[Walk] Setting Run on...');
SetRun(True);
end;
end;

{*******************************************************************************
Name: AntiBan
By: Jethr0x
Discription: A quick Anti-Ban
*******************************************************************************}
Procedure AntiBan;
begin
writeln('[AntiBan] Performing Random AntiBan...');
Case Random(10) of
0: SetRun(True);
1: Gametab(1+random(12));
2: HoverSkill('random', false);
3, 4, 5: wait(1000);
6, 7 : FindNormalRandoms;
end;
end;

{*******************************************************************************
Name: ToStore;
By: Jethr0x
Description: Walks Player to Ardougne General Store from South Bank.
*******************************************************************************}
Procedure ToStore;
var MMA : Extended;
begin
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end else
if(FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
CheckRun;
ZephFlag(15);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
if(FindDTMRotated(Walk2DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
ZephFlag(10);
Writeln('[Walk] DTM Found, #2.');
Mouse(x-15, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM2';
Exit;
end else
if(FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #2');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
ZephFlag(20);
Exit;
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
end;

{*******************************************************************************
Name: FindStore
By: Jethr0x
Description: Finds the General store on the minimap, then looks for the shop
keepers. If Not Found, it kills the current player, and switches
to the next active player.
Uses: if(FindStore(x, y)) then
*******************************************************************************}
Function FindStore(x, y : integer): boolean;
begin
if(FindSymbolIn(x, y, 'store', MMX1, MMY1, MMX2, MMY2)) then
begin
ZephFlag(10);
Writeln('[Trade] General Store Found.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'Store';
Result := True;
Exit;
end else
begin
Result := False;
Writeln('Could not find General Store Killing Player...');
NextPlayer(False);
Logout;
wait(random(5000))
if not(LoggedIn) then LoginPlayer;
end;
end;

{*******************************************************************************
Name: FindKeepers;
By: Jethr0x
Discription: Finds the Ardougne general store shop keepers, If not found the 1st
time, it clicks shop on the minimap, and tries again. If still not
successful, it logs out, and switches player.
*******************************************************************************}
Procedure FindKeepers;
var
TMT, Times: Integer;
begin
TMT := 0;
AntiBan;
if not ShopScreen then
begin
if(FindStore(x, y))then
begin
repeat
Times := 0;
TMT := TMT + 1
if FindObjEx(X, Y, ['emad', 'ortan'], [7510470, 6522541, 7500667],
10, 241, 173, 0.5, 58, 63, 368, 263) then
begin
Wait(50 + Random(20));
Mouse(X, Y, 1, 1, false);
Wait(50 + Random(20));
if ChooseOption('rade') then
begin
Writeln('[Trade] Attempted...');
repeat
Times:= Times + 1
wait(100);
until (ShopScreen) or (Times > 50);
if shopscreen then
begin
writeln('[Trade] Successful');
exit;
end;
end;
end;
until (TMT > 5);
if (not(ShopScreen)) then
begin
Writeln('[Trade] Could Not Find Keeper.');
NextPlayer(False);
Logout;
wait(random(5000))
if not(LoggedIn) then LoginPlayer;
end;
end;
end;
end;

{*******************************************************************************
Name: FreeDTMs;
By: Jethr0x
Discription: Frees the DTMs, reducing LAG. (Hopefully).
*******************************************************************************}
Procedure FreeDTMs;
begin
FreeDTM(BankBoothMM);
FreeDTM(Walk1DTMM);
FreeDTM(Walk2DTMM);
end;

{*******************************************************************************
Name: BuyVials;
By: Jethr0x
Discription: Uses FindKeepers; to open the general store, then checks to make
sure shop is in the right tab, if not it fixes, then buys vials,
hitting 2 keys that arenext to eachother. (unlike using a
randomness where the 2 keys can be on opposite sides of the keypad,
this is more human like.)
*******************************************************************************}
Procedure BuyVials;
begin
FindKeepers;
begin
wait(random(2000));
MouseBox(67, 110, 92, 127, 3)
if(IsUpText('Vial'))then
begin
getmousepos(x, y);
wait(100);
Mouse(x,y,0,0,false)
ChooseOption('Buy X')
Wait(1000);
Case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;
end else
begin
Writeln('[Trade] Shop is in wrong tab, fixing...');
MouseBox(50, 70, 116, 79, 1);
wait(random(600));
BuyVials;
end;
Wait(400)
end;
end;

{*******************************************************************************
Name: ToBank;
By: Jethr0x
Discription: Uses DTMs, with a RadialRoadWalk failsafe to walk to bank. If road
is not found, it sets the current player false, and goes to next
player.
*******************************************************************************}
Procedure ToBank;
var MMA : extended;
begin
wait(random(5000));
if(FindDTMRotated(Walk2DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
ZephFlag(10);
Writeln('[Walk] DTM Found, #2.');
Mouse(x-15, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM2';
end else
if (FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #2');
RadialRoadWalk(FindRoadColor, 110, 80, 72, 0, 0);
FindNormalRandoms;
ZephFlag(20);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
FindNormalRandoms;
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1, MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end else
if (FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 130, 90, 50, 0, 0)
FindNormalRandoms;
CheckRun;
ZephFlag(0);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;
if(FindDTMRotated(BankBoothMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
AntiBan;
ZephFlag(0);
end else
if(FindSymbol(x, y, 'bank'))then
begin
Writeln('[Bank] Symbol Found.');
Mouse(x, y, 3, 3, true)
AntiBan;
end;
end;

{*******************************************************************************
Name: OpenBankJ;
By: J(ethr0x)
Discription: Uses a modded version of OpenBankQuiet, and opens the ardougne bank
If not found, it sets the current player false, and moves on.
*******************************************************************************}
Procedure OpenBankJ;
var tries : integer;
begin
tries := 0;
ZephFlag(0);
begin
Repeat
tries := tries + 1;
ZephFlag(0);
OpenBankQuiet2('asb');
if (FindSymbol(x, y, 'store')) then ToBank;
wait(200)
until((BankScreen) or (Tries >= 5))
end;
if BankScreen then
begin
Exit;
end else
begin
Writeln('Banking failed');
NextPlayer(False);
end;
end;

{*******************************************************************************
Name: WithDrawJ;
By: J(ethr0x)
Discription: Checks for BankScreen, then checks to see if Coins are in the 1st
slot. Withdraws them.
*******************************************************************************}
Procedure WithDrawJ;
var MMA : extended;
begin
ZephFlag(0);
if(Bankscreen)then
begin
FixBank;
DepositAll;
MouseBox(80, 73, 108, 90, 3)
if(isUptext('oin'))then
begin
GetMousePos(x, y)
Mouse(x, y, 0, 0, false)
ChooseOption('X')
wait(1000+random(1000))
TypeSend('280')
wait(random(2000))
Case Random(3) of
0: SetRun(True);
1: wait(1000);
end;
end else
if(FindDTMRotated(BankBoothMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi,
0.1, MMA)) then
begin
Writeln('[Bank] Found on Minimap.')
Mouse(x, y, 2, 2, true)
ZephFlag(0);
OpenBankJ;
end;
end;
end;

{*******************************************************************************
Name: DepositJ.
By: J(ethr0x)
Discription: Deposites Inventory into bank.
*******************************************************************************}
Procedure DepositJ;
begin
if(BankScreen)then
begin
ZephFlag(0);
DepositAll;
Vials := Vials + 28;
wait(random(2000));
end else
if(FindSymbol(x, y, 'bank'))then
begin
writeln('Opening Bank...');
OpenBankJ;
end else
if(FindSymbol(x, y, 'store'))then ToBank;
end;

{*******************************************************************************
Name: SetupJ
By: Jethr0x
Discription: Sets up the Scripts and players.
*******************************************************************************}
Procedure SetupJ;
begin
SetupSRL;
Wait(1000)
ActivateClient;
Wait(2000)
DeclarePlayers;
if(not LoggedIn) then LoginPlayer;
wait(1000)
SetAngle(True);
MakeCompass('N');
wait(1000)
end;

{*******************************************************************************
Name: Progress Report;
By: Jethr0x
Discription: A Progress Report...
*******************************************************************************}
Procedure ProgressReport;
var TotalSpent, Profit, GEPrice, RateP, RateV, Sec : integer;
begin
TotalSpent := Vials * 10;
GEPrice := Vials * GEWealth;
Profit := GEPrice - TotalSpent;
begin
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
Writeln('|| Jethr0x''s Vial Buyer v0.1 ||');
Writeln('|| Spent: ' + IntToStr(TotalSpent) + 'gp. ||');
Writeln('|| Bought: ' + IntToStr(Vials) + ' vials. ||');
Writeln('|| Profit: ' + IntToStr(Profit) + ' gp. ||');
Writeln('|| Ran For: ' + TimeRunning + ' ||');
Writeln('||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||');
writeln('|| Post This or I RAPE you :) ||');
Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
end;
end;
{*******************************************************************************
------------------------------] MAIN LOOP! [------------------------------------
*******************************************************************************}
begin
Vials := NumVials;
SetupJ;
LoadDTMs;
Wait(2000)
OpenBankJ;
repeat
WithDrawJ;
ToStore;
BuyVials;
ToBank;
OpenBankJ;
DepositJ;
ClearDebug;
wait(100)
Vials := Vials + 28;
ProgressReport;
wait(1000)
until(False)
end.

I changed a few things…
if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end else
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
CheckRun;
ZephFlag(15);
end;

is now

if(FindDTMRotated(Walk1DTMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, 0.1,
MMA)) then
begin
Writeln('[Walk] DTM Found, #1.');
Mouse(x, y, 0, 0, true);
Players[CurrentPlayer].loc := 'WalkDTM1';
end else
if(FindRoadColor > 0) then
begin
Writeln('[Walk] Radial Road Walk #1 ');
RadialRoadWalk(FindRoadColor, 270, 310, 72, 0, 0);
FindNormalRandoms;
CheckRun;
ZephFlag(15);
end else
begin
Writeln('Could not find road color');
Logout;
NextPlayer(False);
end;

FreakyMonkey

2008-06-08 13:17:18

Not sure….kinda doubtful at this point.

You have some basic failsafes and all the requirements: mapwalking, and the works.

HOWEVER, you have no mulitplayer like masterkill said and a lot of the good stuff comes from other people. Way too basic of a script.

I voted no on this one man.

Jethr0x

2008-06-08 14:01:27

it actually does have multiplayer, when it cant find he road \ bank \ store… it has..

NextPlayer(False);

then, if u add more players, woudnt that log in on the new one?

or is it so strict around here that i need to comment out extra player slots… if thats the case, I can have that done in probably 10 seconds…

Harry

2008-06-08 14:16:25

It actually has MultiPlayer, just he didn't set up the DeclarePlayers to work with it.

He has a fine amount of posts, and I talk with him on MSN and he seems knowledgeable and I think he will keep it up in Members, so I say yes. Don't make me regret it =]

Jethr0x

2008-06-08 15:01:32

Ha, of course I wont make u regret it :). I plan to work here till you all love me as much as they love me on sythe :) (if it never happens… ill still try my hardest
>_<!)

Jethr0x

2008-06-10 00:46:07

if it means anything…

MainForm compiled in 15 milliseconds!
Add linearwalk!
Add tform!
Add fflag!
Add Players!
Add SRL!
Add if not loggedin then exit!
Add freeform!
Add tdtmpointdef!
Add tpa!
Add walkpath!
Add tpointarray!
Add reportvars!
Add record!
Add tpoint!
Add labels!
Add goto commands!
[===============================]
[ ~ Result = 123
[===============================]
Apply for members, unless you have cheated this
Successfully executed

I scored a 123 with BobboHobbo's SRL Member Application tool :)

Wizzup?

2008-06-10 02:31:02

Just wondering why you set this integer called 'RunP'.
{*******************************************************************************
Name: CheckRun
By: Jethr0x
Discription: Its supposed to check the color of the 'run' orb on the minimap,
and if its green, to set run on. Im not sure if this works.
*******************************************************************************}
Procedure CheckRun;
var
RunP : integer;
Energy : String;
begin
RunP := GetMMLevels('run', Energy)
CloseBank;
if(Energy = 'green')then
begin
writeln('[Walk] Setting Run on...');
SetRun(True);
end;
end;

It looks alright, try adding proper multiplayer now… :)

The Claw

2008-06-10 03:04:42

From: Wizzup?
Just wondering why you set this integer called 'RunP'.
{*******************************************************************************
Name: CheckRun
By: Jethr0x
Discription: Its supposed to check the color of the 'run' orb on the minimap,
and if its green, to set run on. Im not sure if this works.
*******************************************************************************}
Procedure CheckRun;
var
RunP : integer;
Energy : String;
begin
RunP := GetMMLevels('run', Energy)
CloseBank;
if(Energy = 'green')then
begin
writeln('[Walk] Setting Run on...');
SetRun(True);
end;
end;

It looks alright, try adding proper multiplayer now… :)


Short for RunPercent maybe? Anyways, looks like you have all the neccessary things to get into SRL Members. So yes from me

Wizzup?

2008-06-10 03:43:40

From: The Claw
Short for RunPercent maybe? Anyways, looks like you have all the neccessary things to get into SRL Members. So yes from me


Yea, but he doesn't use it afterwards… :p

Jethr0x

2008-06-10 08:44:39

From: Wizzup?
Just wondering why you set this integer called 'RunP'.
{*******************************************************************************
Name: CheckRun
By: Jethr0x
Discription: Its supposed to check the color of the 'run' orb on the minimap,
and if its green, to set run on. Im not sure if this works.
*******************************************************************************}
Procedure CheckRun;
var
RunP : integer;
Energy : String;
begin
RunP := GetMMLevels('run', Energy)
CloseBank;
if(Energy = 'green')then
begin
writeln('[Walk] Setting Run on...');
SetRun(True);
end;
end;

It looks alright, try adding proper multiplayer now… :)


hmm, I thought I did add multiplayer in the updated one :o …

Negaal

2008-06-10 10:40:55

yes

Jethr0x

2008-06-10 11:10:39

thank you.

Smartzkid

2008-06-10 21:12:21

Not voting atm, don't feel like reading it (will tomorrow), so I can't fairly evaluate your script, but I see talent; enough, atleast, to justify reading through your script.

Jethr0x

2008-06-11 00:28:12

thanks. someone discouraged me about this script… so I started working on a Seers village magic tree cutter + banker… I dont know if its allowed, since I applied with this script, but If its okay, I can post the wc'er tomorrow… since its a little more advanced… If not, Ill just wait my month, then post it.

Smartzkid

2008-06-11 15:49:10

Go ahead, feel free to post it.

If you don't get in this time, when your new script is ready, PM Wizzup or another admin, and ask for permission to reapply in 2 weeks.

Runescapian321

2008-06-11 15:59:32

I'll vote Yes. You seem like you know what you're doing and the script is decent with most (if not all) requirements.

EDIT: I only see 2 functions that aren't his :confused:

Jethr0x

2008-06-11 16:58:52

Thank you sir :)

nielsie95

2008-06-29 05:56:44

It seems like you're not getting in, sorry.
Due to SRL being down for some time, you may apply again without waiting.
Closed.