SRL Archive - Archive

francishelie - SRL Member Application


Phran6

2009-04-21 01:49:21

How Long have You Played Runescape?
5 Year(s)


Are you affilated in anyway with Jagex LTD?
no

Were you Referred to SRL?
———————-


What is your general programming knowledge?
scar


Are you a member of any other communities?
sythe


Tell us about yourself…
From: francishelie
my primar language is french.



Please give show us one of your scripts.
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
/////// //
//////____| | | ___| | _) ///
///// | | | | __| _ \ _` | __| | _ \ __ \ ////
//// __| ___ | | | __/ ( | | | ( | | | /////
/// |_| (_)_| _|_) \____|_| \___|\__,_|\__|_|\___/ _| _| //////
// ///////
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////

program SOULWAR;
{.Include SRL\SRL\Misc\Smart.Scar}
{.Include SRL\SRL.Scar}
const
world=145;
TimeBewtweenHit=3741;
Plusrandom=3000;

Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
end;


//////////////////////////////////////////////////////////
///////////////// DONT TOUCH BELOW /////////////////////
//////////////////////////////////////////////////////////
var
InWaitingroom, Multicombat, Walk11, Walk12, walk13, walk13BackUp, a, b, c, d, e, f, dead : integer;
Action: string;


procedure DtmInWaitingRoom;
begin
InWaitingroom := DTMFromString('78DA634C606660B06364000126060878A8ACC' +
'C200AA419A17CC610A01A5D5435C669FF51D5A401D5E81350130E546' +
'383DF2E0063B1083A');
end;

procedure DtmMulticombat;
begin
Multicombat := DTMFromString('78DA6334646260286464000108C9C03071D22' +
'40651243EA325504D15AA9AA55E0CA86A34816AB250D51C387000558' +
'D05116AB4816ACA51D5FC3FE785AA4683B07B004BB40E9B');
end;

procedure DtmWalk11; //lava
begin
Walk11 := DTMFromString('78DA63FCC5C2C07097010C18211483B4A4244' +
'300129FF13450CD255435872649A0AA7909547384809AD740355709A' +
'8616765603847400D2F50CD1E026A1E02ED9A41400D33D09C29F8D50' +
'00011EC178C');
end;

procedure DtmWalk12;
begin
walk12 := DTMFromString('78DA63EC62626038CA00068C108AC1C3D999E' +
'13F129FB10EA8A61155CDBD15B20C6EC86AE601D5741150331FA8A68' +
'2809A1D40357504D41C01AA6926A0660E50CD29089B052AF6EEDD3B0' +
'639243500F95916D9');
end;

procedure DtmWalk13;
begin
walk13 := DTMFromString('78DA63AC626260E86400034608C5606B6DC9F' +
'01F89CFB801A8662784CD0215FBF2F2298306BA9AF5A86ADEBD7B87A' +
'AE60050CD7C026A9E60AAC1B0AB1DA8A604C266858AA94629300420A' +
'B2902AA598C5F0D00308B183B');
end;
procedure DtmWalk13BackUp;
begin
walk13BackUp := DTMFromString('78DA639CCFC4C0D0CD00066C108AC1D5C9812' +
'105483342F98C9B806A02216C26A8D8AD33D20C6EC86A6E00655642D' +
'8CC50B1979FDE33C821ABB90B54331755CDBB77EF50D53C05AA99845' +
'F0D00109F12AF');
end;

procedure DeclareDtms;
begin
DtmInwaitingroom;
dtmmulticombat;
dtmwalk11;
dtmwalk12;
dtmwalk13;
dtmwalk13backup;
end;

procedure FreeDtms;
begin
freedtm(Inwaitingroom);
freedtm(multicombat);
freedtm(walk11);
freedtm(walk12);
freedtm(walk13);
freedtm(walk13backup);
end;

function DDtmStartInGame: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..5] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 1109;
dtmMainPoint.y := 433;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 3355447;
dtmMainPoint.Tolerance := 255;

dtmSubPoints[0].x := 1109;
dtmSubPoints[0].y := 433;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 3355447;
dtmSubPoints[0].Tolerance := 255;

dtmSubPoints[1].x := 1112;
dtmSubPoints[1].y := 409;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 15659495;
dtmSubPoints[1].Tolerance := 32;

dtmSubPoints[2].x := 1097;
dtmSubPoints[2].y := 409;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 15659495;
dtmSubPoints[2].Tolerance := 32;

dtmSubPoints[3].x := 1108;
dtmSubPoints[3].y := 453;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 15659495;
dtmSubPoints[3].Tolerance := 32;

dtmSubPoints[4].x := 1087;
dtmSubPoints[4].y := 453;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 15659495;
dtmSubPoints[4].Tolerance := 32;

dtmSubPoints[5].x := 1081;
dtmSubPoints[5].y := 430;
dtmSubPoints[5].AreaSize := 3;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 15659495;
dtmSubPoints[5].Tolerance := 32;

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

procedure Sign;
begin
cleardebug;
writeln(' _____ _ _ ____ _ _ ');
writeln('| ___| | | | / ___|_ __ ___ __ _| |_(_) ___ _ __ ');
writeln('| |_ | |_| | | | | `__/ _ \/ _` | __| |/ _ \| `_ \ ');
writeln('| _|_| _ |_ | |___| | | __/ (_| | |_| | (_) | | | | ');
writeln('|_| (_)_| |_(_) \____|_| \___|\__,_|\__|_|\___/|_| |_| ');
end;



procedure ProgressReport;
begin
e := a + b + c + d
f := (d*3)+(b*1)+(c*2);
writeln(' /////////////////////|\\\\\\\\\\\\\\\\\\\\');
writeln(' /////// MADE BY FRANCISHELIE \\\\\\\\\\');
writeln(' ///////////////////////|\\\\\\\\\\\\\\\\\\\\\\');
writeln('- we have ran: ' + TimeRunning );
writeln('- we finished the game: ' + IntToStr(e) + ' times');
writeln('- we have won: ' + IntToStr(d) + ' times');
writeln('- we have loose ' + IntToStr(b) + ' times');
writeln('- we have drawn ' + IntToStr(c) + ' times');
writeln('- we didnt got zeal ' + IntToStr(a) + ' times because we entered to late');
writeln('- we got a total of ' + IntToStr(f) + ' zeal')
writeln('- we died in the minigame: ' + IntToStr(dead) + ' times');
writeln('_________________________________________________');
end;

procedure countpoint;
begin
if(not(LoggedIn))then Exit;
if FindBlackChatMessage('0') then
if FindBlackChatMessage('receive') then
begin
inc(a);
exit;
end;
if FindBlackChatMessage('1') then
if FindBlackChatMessage('receive') then
begin
inc(b);
exit;
end;
if FindBlackChatMessage('2') then
if FindBlackChatMessage('receive') then
begin
inc(c);
exit;
end;
if FindBlackChatMessage('3') then
if FindBlackChatMessage('receive') then
begin
inc(d);
exit;
end;
end;

procedure Terminate(Text: String);
begin
WriteLn(Text);
LogOut;
ProgressReport;
freedtms;
TerminateScript;
end;

Procedure WaitUntil(move:boolean; maxtimes: integer); //maxtime is in second
var
waite : integer;
begin
if(not(LoggedIn))then Exit;
maxtimes:= maxtimes*10;
repeat
wait(100)
inc(waite)
until((move) or (waite >= maxtimes));
end;

procedure PreparingOpening;
begin
SetupSRL;
SMARTSetupEx(world, True, false, False);
Wait(5000);
SetTargetDC(SmartGetDC);
repeat
wait(100);
until(SmartGetColor(253, 233)<>1118604);
DeclarePlayers;
LoginPlayer;
end;

function WhereWeAre:string;
var
x, y : integer;
begin
if(not(LoggedIn))then Exit;
if DTMRotated(Multicombat, x, y, MsX1, MsY1, MsX2, MsY2) then
begin
if FindColorTolerance(x, y, 1878754, MMX1, MMY1, MMX2, MMY2, 70) then
begin
result := 'InGame1';
action := 'InGame1';
status(action)
exit;
end;
if not FindColorTolerance(x, y, 1878754, MMX1, MMY1, MMX2, MMY2, 70) then
begin
result := 'InGame2';
action := 'InGame2';
status(action)
exit;
end;
end;
if not DTMRotated(Multicombat, x, y, MsX1, MsY1, MsX2, MsY2) then
begin
DtmInWaitingRoom;
if DTMRotated(InWaitingRoom, x, y, MsX1, MsY1, MsX2, MsY2) then
begin
result := 'InWaitingRoom' ;
action := 'InWaitingRoom' ;
status(action);
exit;
end;
if not DTMRotated(InWaitingRoom, x, y, MsX1, MsY1, MsX2, MsY2) then
begin
result := 'OutSide' ;
action := 'OutSide' ;
status(action);
exit;
end;
end;
end;

procedure WearingItemAntiBan(option:string); // xamine, ancel or random
var
v, i :integer;
z: tpoint;
begin
if(not(LoggedIn))then Exit;
repeat
v:= random(10)+1;
if WearingItem(v) then
begin
z := EquipmentCoords(v);
if option = 'random' then
begin
case Random(1) of
0: option := 'xamin';
1: option := 'ancel';
end;
end;
mouse(z.x, z.y, 6, 6, false);
if ChooseOption(option) then exit;
end;
Inc(i);
until(i > 11);
end;

procedure OverExtraSkill;
var
x, y :integer;
begin
if(not(LoggedIn))then Exit;
case Random(2) of
0:begin
gametab(2)
wait(400+random(1111));
mousebox(720, 247, 725, 399,3);
GetMousePos(x, y);
HoldMouse(x, y, True);
Wait(150 + Random(150));
mmouse(x-4+(random(8)),y+27,4 ,1)
GetMousePos(x, y);
ReleaseMouse(x, y, True);
wait(300+random(1000));
end;
1:begin
gametab(2)
wait(400+random(1111));
mousebox(717, 411, 728, 433,1);
end;
end;
case Random(3) of
0:begin
HoverSkill('summoning',false);
wait(500+random(900));
end;
1:begin
HoverSkill('hunter',false);
wait(500+random(900));
end;
2:begin
HoverSkill('construction',false);
wait(500+random(900));
end;
end;
case Random(2) of
0:begin
gametab(2);
wait(400+random(1111));
mousebox(720, 272, 725, 427,3);
GetMousePos(x, y);
HoldMouse(x, y, True);
Wait(150 + Random(150));
mmouse(x+4-(random(8)),y-27,4 ,1)
GetMousePos(x, y);
ReleaseMouse(x, y, True);
wait(300+random(1000));
end;
1:begin
gametab(2);
wait(400+random(1111));
mousebox(717, 242, 728, 265,1);
wait(300+random(1000));
end;
end;
end;

procedure switchTab;
var
I, T: integer;
begin
if(not(LoggedIn))then Exit;
I:=random(4)
repeat
gametab(random(12)+1);
wait(200+random(700));
inc(T);
until(T>I);
end;

function FindDeath : boolean;
begin
if(not(LoggedIn))then Exit;
if FindBlackChatMessage('dear') then
if FindBlackChatMessage('dead') then
begin
Result := True;
inc(dead);
writeln('Omg We Are DEAD, LETS GO RETURN TO THE WAR !!');
case Random(2) of
0:DoEmote(1+random(19));
1:WearingItemAntiBan('xamin');
end;
WhereWeAre;
wait(7000+random(2000));
Exit;
end;
if FindNPCChatText('emove', ClickLeft)then
begin
Result := True;
inc(dead);
writeln('Omg We Are DEAD, LETS GO RETURN TO THE WAR !!');
case Random(2) of
0:DoEmote(1+random(19));
1:WearingItemAntiBan('xamin');
end;
WhereWeAre;
Exit;
end;
end;

function CheckUpInGame: boolean;
var
x, y : integer;
begin
if not(FindDTM(multicombat, x, y, 426, 254, 508, 334)) then
begin
wait(5000)
if not(FindDTM(multicombat, x, y, 426, 254, 508, 334)) then
begin
wait(3000)
if not(FindDTM(multicombat, x, y, 426, 254, 508, 334)) then
begin
WhereWeAre;
result:= true
end;
end;
end;
if finddeath then result:= true;
end;

function TalkToPortal: boolean;
var
x, y : integer;
begin
if(not(LoggedIn))then Exit;
wait(3000+random(200));
result:=true;
if FindNPCChatText('rogres', nothing) then
begin
WaitUntil(FindNPCChatText('ontinue', ClickLeft),10);
wait(500+random(600));
WaitUntil(FindNPCChatText('nter', ClickLeft),10);
exit;
end;
if FindNPCChatText('almos', nothing) then
begin
WaitUntil(FindNPCChatText('ontinue', ClickLeft),10);
wait(500+random(600));
WaitUntil(FindNPCChatText('aiting', ClickLeft),10);
exit;
end;
if FindNPCChatText('left', nothing) then
begin
terminate('you can enter the minigame because you left during a game');
end;
DtmInWaitingRoom;
if DTMRotated(InWaitingRoom, x, y, MsX1, MsY1, MsX2, MsY2) then
begin
exit;
end;
end;

function ClickPortal1: boolean;
var
MyTPA : TPointArray;
x, y, i, H : Integer;
ATPA : T2DPointArray;
begin
if(not(LoggedIn))then Exit;
if action = 'InWaitingRoom' then exit;
if action = 'OutSide' then
begin
WaitUntil(ClickToContinue,7);
wait(700+random(500));
CountPoint;
end;
ProgressReport;
setangle(false);
wait(200+random(200));
MakeCompass(IntToStr(260+Random(20)));
wait(200+random(100));
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 4935303, MSx1, MSy1, MSx2, MSy2, 20);
ATPA := TPAtoATPA(MyTPA, 4);
if Length(MyTPA) = 0 then FindColorsTolerance(MyTPA, 14737919, MSX1, MSY1, MSX2, MSY2, 25);
ATPA := TPAtoATPA(MyTPA, 4);
H := High(ATPA);
For I := 0 To H Do
begin
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X, Y, 3, 3);
if (IsUpTextMultiCustom(['arri', 'ed'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
if ChooseOption('ass') then
begin
Wait(500+random(250));
result:=true;
if action= 'InGame1' then
begin
action:= 'Walk1';
status(action);
end;
if action = 'OutSide' then
begin
if TalkToPortal then
begin
action:='InWaitingRoom';
status(action);
end;
end;
Exit;
end;
end;
end;
end;

procedure WaitingRoomAntiBan;
var
x, y : integer;
begin
if(not(LoggedIn))then Exit;
if (FindDTM(multicombat, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
WhereWeAre;
Exit;
end;
case Random(25) of
0:begin
RandomRClick;
wait(300+random(1000));
ChooseOption('ancel');
wait(random(1000));
WaitingRoomAntiBan;
end;
1:begin
HoverSkill('random',false);
wait(200+random(1000));
MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
wait(200+random(400));
WaitingRoomAntiBan;
end;
2:begin
PickUpMouse;
wait(random(1000));
WaitingRoomAntiBan;
end;
3:begin
RandomMovement;
wait(random(1000));
WaitingRoomAntiBan;
end;
4:begin
MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
wait(random(1000));
WaitingRoomAntiBan;
end;
5:begin
SleepAndMoveMouse(random(300));
wait(random(1000));
WaitingRoomAntiBan;
end;
6:begin
MakeCompass(IntToStr(Random(360)));
MakeCompass(IntToStr(Random(360)));
MakeCompass('360');
setangle(true);
wait(random(1000));
WaitingRoomAntiBan;
end;
7:begin
WearingItemAntiBan('random');
wait(random(1000));
WaitingRoomAntiBan;
end;
8:begin
OverExtraSkill;
wait(random(1000));
WaitingRoomAntiBan;
end;
9:begin
switchTab;
wait(random(1000));
WaitingRoomAntiBan;
end;
10:begin
DoEmote(1+random(19));
wait(random(1000));
WaitingRoomAntiBan;
end;
end;
end;

procedure WaitForGame;
begin
if(not(LoggedIn))then Exit;
if action ='InWaitingRoom' then
begin
repeat
wait(1234+random(2234));
WaitingRoomAntiBan;
until(whereweare='InGame1');
end;
end;

function PassInGamePortal1: boolean;
var
WalkDTM, x, y : integer;
begin
if(not(LoggedIn))then Exit;
if action = 'Walk1' then exit;
if CheckUpIngame then exit;
if action = 'InGame1' then
begin
wait(200+random(200));
MakeCompass('360');
WalkDTM := DDtmstartInGame;
if DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 3, 3, True);
FFlag(6);
Result := True;
end;
ClickPortal1;
FreeDTM(WalkDTM);
end;
end;

function PassInGamePortal2: boolean;
var
MyTPA : TPointArray;
x, y, i, H : Integer;
ATPA : T2DPointArray;
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
if action = 'walk2' then exit;
if action = 'InGame2' then
begin
ProgressReport;
setangle(false);
wait(200+random(200));
MakeCompass(IntToStr(350+Random(10)));
wait(200+random(100));
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 4935303, MSx1, MSy1, MSx2, MSy2, 20);
ATPA := TPAtoATPA(MyTPA, 4);
if Length(MyTPA) = 0 then FindColorsTolerance(MyTPA, 14737919, MSX1, MSY1, MSX2, MSY2, 25);
ATPA := TPAtoATPA(MyTPA, 4);
H := High(ATPA);
For I := 0 To H Do
begin
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X, Y, 3, 3);
if (IsUpTextMultiCustom(['arri', 'ed'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
if ChooseOption('ass') then
begin
Wait(500+random(250));
result:=true;
action:= 'Walk2';
status(action);
Exit;
end;
end;
end;
end;
end;

procedure InFightAntiBan(WaitTime, RandomTime : integer);
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
case Random(35) of
0:begin
RandomRClick;
wait(300+random(1000));
ChooseOption('ancel');
wait(random(1000));
end;
1:begin
HoverSkill('random',false);
wait(200+random(1000));
MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
wait(200+random(400));
end;
2:begin
PickUpMouse;
wait(2000+random(1000));
end;
3:begin
RandomMovement;
wait(1000+random(1000));
end;
4:begin
MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
wait(3000+random(1000));
end;
5:begin
SleepAndMoveMouse(random(3000));
wait(random(1000));
end;
6:begin
MakeCompass(IntToStr(Random(360)));
MakeCompass(IntToStr(Random(360)));
MakeCompass('360');
setangle(true);
wait(random(1000));
end;
7:begin
WearingItemAntiBan('ancel');
wait(random(2000));
end;
8:begin
OverExtraSkill;
wait(random(1000));
end;
9:begin
switchTab;
wait(random(1000));
end;
10..34: wait(WaitTime+random(RandomTime))
end;
end;


function AttackBarricade: boolean;
var
MyTPA : TPointArray;
MyPoint : TPoint;
x, y, i, h : Integer;
ATPA : T2DPointArray;
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 8368058, MSx1, MSy1, MSx2, MSy2, 15);
ATPA := TPAtoATPA(MyTPA, 4);
if Length(MyTPA) = 0 then FindColorsTolerance(MyTPA, 14737919, MSX1, MSY1, MSX2, MSY2, 25);
ATPA := TPAtoATPA(MyTPA, 4);
H := High(ATPA);
For I := 0 To H Do
begin
MyPoint := MyTPA[i]
MMouse (MyPoint.x, MyPoint.y, 3, 3);
if (IsUpTextMultiCustom(['arric', 'icade'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
if ChooseOption('arric') then
begin
Wait(500+random(250));
result:=true;
Exit;
end;
end;
end;
end;

procedure UnstuckBarricade;
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
repeat
if CheckUpIngame then exit;
AttackBarricade;
InFightAntiBan(2134,4720);
until not AttackBarricade;
end;

function MyOwnFlag(distance:integer): boolean;
var
a, b : integer;
begin
if(not(LoggedIn))then Exit;
wait(400);
repeat
if CheckUpIngame then exit;
a:= FlagDistance;
wait(800);
b:= FlagDistance;
if not FlagPresent then
begin
result:=true;
exit;
end;
until((a=b) or (b<=distance));
if b<=distance then
begin
result:=true;
exit;
end;
if a=b then
begin
result:=false;
Unstuckbarricade;
exit;
end;
end;

function Walk1 : boolean;
var
x, y, i, walks: integer;
TPA : TPointArray;
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
if action ='Walk1' then
begin
setangle(true);
wait(200+random(200));
MakeCompass('360');
setrun(true);
for walks := 0 to 3 do
case walks of
0:if action ='Walk1' then
begin
if CheckUpIngame then exit;
if DTMRotated(walk11, x, y, MmX1, MmY1, MmX2, MmY2) then
begin
if CheckUpIngame then exit;
mouse(x,y,1,1,true);
if not MyOwnFlag(5) then
begin
walk1
exit;
end;
end;
end;
1:if action ='Walk1' then
begin
if CheckUpIngame then exit;
if DTMRotated(walk12, x, y, MmX1, MmY1, MmX2, MmY2) then
begin
if CheckUpIngame then exit;
mouse(x,y,1,1,true);
if not MyOwnFlag(5) then
begin
walk1
exit;
end;
end;
end;
2:if action ='Walk1' then
begin
if CheckUpIngame then exit;
if DTMRotated(walk13, x, y, MmX1, MmY1, MmX2, MmY2) then
begin
if CheckUpIngame then exit;
mouse(x,y,1,1,true);
if not MyOwnFlag(10) then
begin
walk1
exit;
end;
result:=true;
end;
if result=false then
begin
if CheckUpIngame then exit;
if DTMRotated(walk13BackUp, x, y, MmX1, MmY1, MmX2, MmY2) then
begin
if CheckUpIngame then exit;
mouse(x,y,1,1,true);
if not MyOwnFlag(5) then
begin
walk1
exit;
end;
end;
end;
result:=false;
end;
3:if action ='Walk1' then
begin
if CheckUpIngame then exit;
if RadialWalkEx(tpa, MMCX, MMCY, 15788534, 25, 280, 200, 71) then
for i := 0 to High(tpa) do
begin
if CheckUpIngame then exit;
if MFNF(tpa[i].x, tpa[i].y, 1, 1) then
begin
if not MyOwnFlag(5) then
begin
walk1
exit;
end;
action:='Attack';
status(action);
result:= true;
break;
end;
end;
end;
end;
end;
end;

procedure RunAwaye(dir: string; RunFar: Boolean; Action, WaitTime: Integer);
var
Rad, Deg, Tab, t: Integer;
begin
if not LoggedIn then exit;
Tab := GetCurrentTab;
if RunFar then
Rad := 63
else
Rad := 30;
case UpperCase(dir) of
'N': Deg := 0;
'E': Deg := 90;
'S': Deg := 180;
'W': Deg := 270;
else Deg := StrToIntDef(Dir, -1);
end;
if (Deg = -1) then
begin
Exit;
end;
if (Action < 3) then
begin
MFNF(Trunc(Rad * Sin(Radians(FixD(Rs_GetCompassAngleDegrees + Deg))) + MMCX + Random(5)),
Trunc(-Rad * Cos(Radians(FixD(Rs_GetCompassAngleDegrees + Deg))) + MMCY + Random(5)),
1, 1);
Wait(700);
t := GetSystemTime;
while ((GetSystemTime - t) < WaitTime) and LoggedIn do
if (Random(5) = 0) then
IdleTime(2000, 500, 1.0)
else
Wait((WaitTime - (GetSystemTime - t)) / 5);
end;
if (Action = 1) or (Action = 3) then
begin
MFNF(Trunc(Rad * Sin(Radians(FixD(Rs_GetCompassAngleDegrees + (Deg + 180)))) + MMCX - Random(5)),
Trunc(-Rad * Cos(Radians(FixD(Rs_GetCompassAngleDegrees + (Deg + 180)))) + MMCY - Random(5)),
1, 1);
Wait(700);
end;
GameTab(Tab);
end;

function Walk2:boolean;
var
i, walks: integer;
TPA : TPointArray;
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
if action ='Walk2' then
begin
setangle(true);
wait(200+random(200));
MakeCompass('360');
setrun(true);
for walks := 1 to 2 do
case walks of
1:if action ='Walk2' then
begin
if CheckUpIngame then exit;
RunAwaye('S', true, 2,0)
if not MyOwnFlag(0) then
begin
walk2
break;
end;
end;
2:if action ='Walk2' then
begin
if CheckUpIngame then exit;
if RadialWalkEx(tpa, MMCX, MMCY, 15333359, 20, 150, 200, 60) then
for i := 0 to High(tpa) do
begin
if CheckUpIngame then exit;
if MFNF(tpa[i].x, tpa[i].y, 1, 0) then
begin
if not MyOwnFlag(25) then
begin
walk2
exit;
end;
result:=true;
action:='Attack';
status('Attack')
break;
end;
end;
end;
end;
end;
end;

function AttackPyrefiend: boolean;
var
MyTPA : TPointArray;
MyPoint : TPoint;
x, y, i : Integer;
ATPA : T2DPointArray;
begin
if(not(LoggedIn))then Exit;
if action = 'Attack' then
begin
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 2909171, MSx1, MSy1, MSx2, MSy2, 15);
ATPA := TPAtoATPA(MyTPA, 3);
if Length(MyTPA) = 0 then FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 6721524, MSX1, MSY1, MSX2, MSY2, 20);
ATPA := TPAtoATPA(MyTPA, 3);
for i := 0 to High(ATPA)do
begin
MyPoint := MyTPA[i]
MMouse (MyPoint.x, MyPoint.y, 3, 3);
wait(100+random(200));
if (IsUpTextMultiCustom(['yref', 'ttac'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
wait(100+random(200));
if ChooseOption('yref') then
begin
result:=true;
InFightAntiBan(TimeBewtweenHit,PlusRandom);
Exit;
end;
end;
end;
end;
end;

function FindOtherPyrefiend : boolean;
var
x, y: integer;
begin
if(not(LoggedIn))then Exit;
if action = 'Attack' then
if FindColorSpiralTolerance(x, y, 1179390, 587, 56, 682, 135, 20) then
begin
mouse(x, y, 5, 5, true)
result:=true;
end;
end;

procedure attack;
var
x, y: integer;
begin
if(not(LoggedIn))then Exit;
if CheckUpIngame then exit;
if action = 'Attack' then
begin
GameTab(4);
writeln('WE ARE KILLING THOSE NOOB PYREFIEND');
repeat
begin
repeat
begin
if CheckUpIngame then exit;
AttackPyrefiend;
end;
until not (AttackPyrefiend);
if CheckUpIngame then exit;
FindOtherPyrefiend;
end;
until FindDeath or not(FindDTM(multicombat, x, y, MSX1, MSY1, MSX2, MSY2));
if not(FindDTM(multicombat, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
WhereWeAre;
Exit;
end;
end;
end;

procedure mainloop;
var
t:integer;
begin
WhereWeAre;
repeat
if action = 'OutSide' then
begin
repeat;
ClickPortal1
if whereweare = 'InGame' then break;
wait(3000);
inc(t)
until((t>4) or (action = 'InWaitingRoom'));
if t>4 then terminate('we didnt got able to enter waiting room');
end;
WaitForGame;
if PassInGamePortal1 then walk1;
if PassInGamePortal2 then walk2;
attack;
if(not(LoggedIn))then break;
until(AllPlayersInactive);
terminate('');
end;

begin
sign;
preparingopening;
activateclient;
setaudiooff
DeclareDtms;
mainloop;
terminate('');
end.




MY AUTO TELETAB MAKER

program LumbTeletabMaker;
{.Include SRL\SRL\Misc\Smart.Scar}
{.Include SRL\SRL.Scar}

var
x, y, SoftClay, HouseTeletab, LumbTeletabStudy, LumbTeletab, solftclaybitmap, a, b, d, e, ad, Tm, exp, ScriptBegin, BoutonOn, housebutton : integer;


const
world=157 ; //world you want to go only use if you use smart :)

Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Active:=True;
end;

procedure SetupTime;
begin
MarkTime(ScriptBegin);
end;
function TimeRunningToHours: Extended;
var
TimeInt: Integer;
HoursRunning: Extended;
begin
TimeInt := GetTimeRunning;
HoursRunning := TimeInt/(60*60*1000);
Result := HoursRunning;
end;

procedure ProgressReport;
begin
exp:= Tm*41;
writeln('===================================');
writeln('||||| MADE BY FRANCIS HELIE ||||');
writeln('===================================');
writeln('| we ran: ' + TimeRunning );
writeln('| we maked: ' + IntToStr(Tm) + ' lumbridge teletab!!');
writeln('| Exp gained ' + inttostr(exp) + ' experience in mage')
Writeln('| XP per Hour: ' + FloatToStr(exp/TimeRunningToHours));
writeln('| we did: ' + IntToStr(Ad) + ' anti ban!!');
writeln('===================================');
end;

procedure Terminate(Text: String);
begin
WriteLn(Text);
LogOut;
ProgressReport;
TerminateScript;
end;

procedure loadbitmap;
begin
solftclaybitmap := BitmapFromString(30, 18, 'beNqV1LsKAjEQBdBN4/' +
'vxGzYWFgqCFoqgIAqKKGhjYWFhI1j4+Y7e3SFmJmMMt1o2h+xNNlk' +
'WGW47riH7SZ7TrM7BE7ywGlbn/eqoW6ZZn9jDSfC8aHAkDp9i4k7V' +
'gqj4tFexZZ5+WeqJ4SQXtegLZuG6bgYxcKoC8qBT0nAnNeS2CX0f9' +
'2WVpfdJMBLDsYPxnh3Nve9aaqTPOK35++yFA58ckwOfcZaNg4EpEB' +
'6HMNIHTjKXHNs4KT+PbUT6jHPJsYZtWcUp1AaqsH+Qv2QsmEv+dWO' +
'4xDbAYvuo5ISL6I1L2We5XrBUcrKc4ywHrH/Y8Pclszkuzxsv1Wf/' +
'l7PiGk+JNl56JPdR');

BoutonOn := BitmapFromString(22, 1, 'beNoL8vX19fT0dAUiZEZE' +
'ZAiQERjkC0RANhBBGKGhgUAGUArIgKgMBACbXRQo');

housebutton := BitmapFromString(25, 25, 'beNp9lU9LG2EQh5Mv4' +
'CfoKaiISDEGWtpQ/+UkAQWtCKWpWnPRQqGCaFq85CCIF0Hx4EFo8a' +
'JQeuix9OQX89k8ZnzdVZdhmZ2defKbmTdJqdS/yvud4/ba99SIvF9' +
'sY83+1WjM1uuTGPk9K14ZR/u6dYCltBwwaEXg8OCwhKjN0arj05jA' +
'oBWA2VXUE50GhMLoN232Yb+lR/VQIsSgqCItNz3LUz0hJrBkpjlP7' +
'WL1U6s4lpRjpgnP0DBqodVqtRQSHCUJSddBWowdE1ivVvDhbLZb3K' +
'k1WU5Iio+QRubG0lSYwFfVsc8f5ltzr3e3VghKC/0hKWjBoQqjCqN' +
'8p93MzsP2+vXFAY8CybwTXJ8EmDtpBOFIwKgFQiGOqKufp9AESpOT' +
'00Ow8WY0IHKOOqvcL093QeGD+v/nBJPGV4Bd5PTAX5ibAYUqagN1d' +
'rgHgVpREERhPDZnJtxsqgcOtfYCDQIcS066XzqtKVE7izV8446R5J' +
'cjI546sPjK4BX5tOPEqMKxVhT+u6EB7n+vz0hAFdtxyylHAnfFk7/' +
'89gUlgVIeKOI45DAQCrs/vsGEQ1wO+aiyNYIaQaoYUYrKjmu1YoOH' +
'3Q4omLwl/9f5UayYzyLiTFSFL0qp5EjjER8OSkAhhkcyKUEADbJuU' +
'djH2QqvQhVqfZQmOYYcKAyFoACKgoMhGJ87KDryREkj7sZdOhqMeH' +
'hClZxA0UWgpBH0o5mtJ9CgCTf/fvOKiBCFIRun/7NcptxF4ABxTdE' +
'Oj3K4Cw8U8np64s+i7ClFObP18LDBQPHKmUOjhRyq+C/mKCjJOup9' +
's0TBd/jSQOEH6p5zC9LBqHA=');
end;

function DdtmBank: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 685;
dtmMainPoint.y := 149;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 596557;
dtmMainPoint.Tolerance := 255;

dtmSubPoints[0].x := 685;
dtmSubPoints[0].y := 149;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 596557;
dtmSubPoints[0].Tolerance := 255;

dtmSubPoints[1].x := 698;
dtmSubPoints[1].y := 140;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 195836;
dtmSubPoints[1].Tolerance := 50;

dtmSubPoints[2].x := 694;
dtmSubPoints[2].y := 145;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 195836;
dtmSubPoints[2].Tolerance := 50;

dtmSubPoints[3].x := 695;
dtmSubPoints[3].y := 153;
dtmSubPoints[3].AreaSize := 2;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 195836;
dtmSubPoints[3].Tolerance := 50;

dtmSubPoints[4].x := 695;
dtmSubPoints[4].y := 161;
dtmSubPoints[4].AreaSize := 2;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 195836;
dtmSubPoints[4].Tolerance := 0;

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

function DdtmToStudy: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..7] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 1264;
dtmMainPoint.y := 370;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 4479076;
dtmMainPoint.Tolerance := 100;

dtmSubPoints[0].x := 1264;
dtmSubPoints[0].y := 370;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 4479076;
dtmSubPoints[0].Tolerance := 100;

dtmSubPoints[1].x := 1235;
dtmSubPoints[1].y := 349;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 230;
dtmSubPoints[1].Tolerance := 33;

dtmSubPoints[2].x := 1230;
dtmSubPoints[2].y := 343;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 230;
dtmSubPoints[2].Tolerance := 33;

dtmSubPoints[3].x := 1224;
dtmSubPoints[3].y := 334;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 230;
dtmSubPoints[3].Tolerance := 33;

dtmSubPoints[4].x := 1219;
dtmSubPoints[4].y := 329;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 230;
dtmSubPoints[4].Tolerance := 33;

dtmSubPoints[5].x := 1271;
dtmSubPoints[5].y := 381;
dtmSubPoints[5].AreaSize := 3;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 230;
dtmSubPoints[5].Tolerance := 33;

dtmSubPoints[6].x := 1240;
dtmSubPoints[6].y := 374;
dtmSubPoints[6].AreaSize := 3;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 230;
dtmSubPoints[6].Tolerance := 33;

dtmSubPoints[7].x := 1261;
dtmSubPoints[7].y := 361;
dtmSubPoints[7].AreaSize := 3;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 230;
dtmSubPoints[7].Tolerance := 33;

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


function DdtmToGlory: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..5] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 1264;
dtmMainPoint.y := 285;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 4874348;
dtmMainPoint.Tolerance := 90;

dtmSubPoints[0].x := 1264;
dtmSubPoints[0].y := 285;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 4874348;
dtmSubPoints[0].Tolerance := 90;

dtmSubPoints[1].x := 1245;
dtmSubPoints[1].y := 254;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 238;
dtmSubPoints[1].Tolerance := 30;

dtmSubPoints[2].x := 1262;
dtmSubPoints[2].y := 269;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 238;
dtmSubPoints[2].Tolerance := 30;

dtmSubPoints[3].x := 1261;
dtmSubPoints[3].y := 253;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 238;
dtmSubPoints[3].Tolerance := 30;

dtmSubPoints[4].x := 1246;
dtmSubPoints[4].y := 270;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 238;
dtmSubPoints[4].Tolerance := 30;

dtmSubPoints[5].x := 1257;
dtmSubPoints[5].y := 265;
dtmSubPoints[5].AreaSize := 1;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 238;
dtmSubPoints[5].Tolerance := 30;

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




procedure DTMS;
begin
SoftClay:= DTMFromString('78DA63CC676260886064000108C9C09017CCC' +
'72086C467AC05AA0945550362A1A82903AA4924A02603A82689809A2' +
'4A09A68026A2A89505340D82E00344A0737');

HouseTeletab := DTMFromString('78DA6364666560E064620001460608D8B7750' +
'B8328129F9111A88603558D9BA323AA1A9039ACA86A6494EF62AAE12' +
'5A08603D33D186AFEB13030701150F38D05C31C100B450D0BD02E71F' +
'C6A00D7420AB8');

LumbTeletabStudy := DTMFromString('78DA6354646660A86600034608C5909D9CCC2' +
'08EC4675405AAA94755D3BF790BAA1A59A09A3A22D4141350A300549' +
'389AA465AE92EA69A8904D41802D5541250C341580D00662C1134');

LumbTeletab := DTMFromString('78DA6364646560F8C7C80002109281212F3D8' +
'D410C89CFF89F054832A1A899B4753BAA1A2656C26A40E6FC61C4AFE' +
'633500D27AA3920168A1A1EA05D5C04D4F001D57C63C4AB0600B24F0' +
'E24');
end;

procedure AntiBan;
var
mx , my :integer;
begin
if(not(LoggedIn))then
Exit;
case Random(45) of
1:begin // Changes RS Music track :) credit to --> Hy71194 aka Harry
GameTab(13);
Wait(Random(2000));
MouseBox(715,284,728,435,1);
Wait(40+Random(3000));
if FindColorTolerance(mx,my, 65280, 562, 270, 661, 450, 5) then
begin
Mouse(mx + Random(125), my + Random(8), 0, 0, True);
Wait(Random(3000));
end else
begin
MouseBox(562,268,711,449,1);
Wait(Random(1000));
end;
GameTab(4)
inc(ad);
end;
2:begin
MakeCompass(IntToStr(Random(360)));
MakeCompass(IntToStr(Random(360)));
MakeCompass('360');
setangle(true);
inc(ad);
end;
3:begin
GameTab(1+Random(12));
GameTab(4);
inc(ad);
end;
4:begin
SleepAndMoveMouse(random(150));
inc(ad);
end;
5..10:begin
MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
inc(ad);
end;
11:begin
PickUpMouse;
inc(ad);
end;
12..13:begin
HoverSkill('magic',false);
GameTab(4)
inc(ad);
end;
14:begin
RandomRClick;
inc(ad);
end;
15..45:begin
wait(500+random(1945));
end;
end;
end;

function FindEdgBank: boolean;
var
WalkDTM, x, y : integer;
begin
if(not(LoggedIn))then Exit;
MakeCompass(IntToStr(355+Random(5)));
wait(200+random(200));
WalkDTM := DdtmBank;
repeat
Wait(100);
inc(b);
until(DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) or (b>200));
b:=0
if DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 3, 3, True);
FFlag(5);
Result := True;
end;
FreeDTM(WalkDTM);
end;

function OpenEdgBank: boolean;
var
MyTPA : TPointArray;
i, H, c : Integer;
ATPA : T2DPointArray;
begin
if(not(LoggedIn))then Exit;
setangle(true);
MakeCompass(IntToStr(260+Random(20)));
wait(200+random(100));
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 7437958, MSx1, MSy1, MSx2, MSy2, 20);
ATPA := TPAtoATPA(MyTPA, 4);
if Length(MyTPA) = 0 then FindColorsTolerance(MyTPA, 7701130, MSX1, MSY1, MSX2, MSY2, 25);
ATPA := TPAtoATPA(MyTPA, 4);
H := High(ATPA);
For I := 0 To H Do
begin
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X, Y, 3, 3);
if (IsUpText('booth')) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
if ChooseOption('quickly') then
begin
MarkTime(c);
repeat
Wait(100);
until (BankScreen) or (TimeFromMark(c) > 9000);
result:=true;
Exit;
end;
end;
end;
end;



procedure PreparingOpening;
begin
SetupSRL;
SMARTSetupEx(world, True, false, False);
Wait(5000);
SetTargetDC(SmartGetDC);
repeat
wait(100);
until(SmartGetColor(253, 233)<>1118604);
DeclarePlayers;
LoginPlayer;
end;

function WithdrawSoftClay:boolean;
begin
DTMS;
wait(422+random(200));
if DTMRotated(LumbTeletab, x, y, MiX1, MiY1, MiX2, MiY2) then
begin
mmouse(x, y, 10, 10)
wait(800+random(300));
if IsUpText('umbri') then
begin
mouse(x, y, 0, 0, false)
wait(800+random(300));
ChooseOption('Deposit-All')
wait(random(1000));
end;
end;
DTMS;
if DTMRotated(softclay, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mmouse(x, y, 3, 3)
wait(800+random(300));
if IsUpText('oft') then
begin
mouse(x, y, random(2), random(2), false)
wait(800+random(300));
if ChooseOption('Withdraw-All') then result:=true;
end;
CloseBank;
end;
freedtm(LumbTeletab);
freedtm(softclay);
end;

function WithdrawSoftclayBackup:boolean;
begin
if BankScreen=false then openedgbank;
loadbitmap;
writeln('backup soft clay');
wait(300+random(200));
if findBitmapToleranceIn(solftclaybitmap, x, y, MSX1, MSY1, MSX2, MSY2, 20) then // if FindBitmapSpiralTolerance(solftclaybitmap, x, y ,MSX1, MSY1, MSX2, MSY2,50)
begin
mmouse(x, y, 3, 3)
wait(800+random(300));
if IsUpText('oft') then
begin
mouse(x, y, 0, 0, false)
wait(800+random(300));
if ChooseOption('Withdraw-All') then
result:=true;
end;
CloseBank;
end;
FreeBitmap(solftclaybitmap);
end;



function TeleportToHouse:boolean;
begin
wait(100+random(200));
setangle(true);
MakeCompass(IntToStr(355+Random(5)));
gametab(4);
DTMS;
if DTMRotated(HouseTeletab, x, y, MiX1, MiY1, MiX2, MiY2) then
begin
mouse(x, y, 3, 3, true)
result:=true;
end;
freedtm(HouseTeletab);
wait(4234+random(1234));
end;

function BuildingMode:boolean;
var
WalkDTM : integer;
begin
WalkDTM := DdtmToStudy;
repeat
Wait(100);
inc(b);
until(DTMRotated(WalkDTM, X, Y, MmX1, MmY1, MmX2, MmY2) or (b>200));
b:=0
freedtm(DdtmToStudy);
antiban;
gametab(11);
loadbitmap;
repeat
Wait(100);
inc(b);
until(FindBitmapSpiralTolerance(housebutton, x, y, MiX1, MiY1, MiX2, MiY2, 40) or (b>200));
b:=0
if FindBitmapSpiralTolerance(housebutton, x, y, MiX1, MiY1, MiX2, MiY2, 40) then
begin
mouse(x, y, 5, 5,true)
end;
FreeBitmap(housebutton);
loadbitmap;
repeat
Wait(500);
inc(b);
until(FindBitmapSpiralTolerance(BoutonOn, x, y, MiX1, MiY1, MiX2, MiY2, 10) or (b>200) or (FindColorSpiralTolerance(x, y, 1777020, 603, 299, 628, 304, 10)));
b:=0
if FindColorSpiralTolerance(x, y, 1777020, 603, 299, 628, 304, 10) then
begin
result:=true
FreeBitmap(BoutonOn);
exit;
end;
if findBitmapToleranceIn(BoutonOn, x, y, MiX1, MiY1, MiX2, MiY2, 5) then
begin
mouse(x, y, 10, 10,true)
result:=true;
end;
FreeBitmap(BoutonOn);
antiban;
wait(3000+random(200));
b:=0
end;



function WalkToStudy:boolean;
var
WalkDTM : integer;
begin
setangle(true);
MakeCompass(IntToStr(355+Random(5)));
WalkDTM := DdtmToStudy;
MarkTime(a);
repeat
Wait(80);
until(DTMRotated(WalkDTM, X, Y, MmX1, MmY1, MmX2, MmY2)) or (TimeFromMark(a)>20000);
if DTMRotated(WalkDTM, X, Y, MmX1, MmY1, MmX2, MmY2) then
begin
mouse(x, y, 1, 1, true);
result:=true
fflag(6);
wait(800+random(200));
end;
freedtm(DdtmToStudy);
end;


function ClickStudy: boolean;
var
MyTPA : TPointArray;
x, y, i, H : Integer;
ATPA : T2DPointArray;
begin
case Random(3) of
1:gametab(4);
end;
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 7575210 , MSx1, MSy1, MSx2, MSy2, 10);
ATPA := TPAtoATPA(MyTPA, 1);
if Length(MyTPA) = 0 then FindColorsTolerance(MyTPA, 10858161, MSX1, MSY1, MSX2, MSY2, 25);
ATPA := TPAtoATPA(MyTPA, 1);
H := High(ATPA);
For I := 0 To H Do
begin
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X+(random(5)), Y-(random(6)), random(6), random(4));
wait(100+random(50));
if (IsUpText('ectern')) then
begin
case Random(2) of
0:begin
GetMousePos(x, y);
Mouse(x, y, random(2), 0, False);
if ChooseOption('tudy') then
begin
result:=true;
Exit;
end;
end;
1:begin
GetMousePos(x, y);
Mouse(x, y, random(2), 0, true);
result:=true;
exit;
end;
end;
end;
end;
end;

function MakeTab: boolean;
begin
DTMS;
MarkTime(d);
repeat
Wait(80);
until(DTMRotated(LumbTeletabStudy, x, y, MsX1, MsY1, MsX2, MsY2)) or (TimeFromMark(a)>10000);
if DTMRotated(LumbTeletabStudy, x, y, MsX1, MsY1, MsX2, MsY2) then
begin
mouse(x, y, 20, 20, true);
inc(Tm);
repeat
wait(10)
until not(finddtm(LumbTeletabStudy, x, y, MsX1, MsY1, MsX2, MsY2))
result:=true
end;
freedtm(LumbTeletabStudy);
end;

function WalkToGlory:boolean;
var
WalkDTM : integer;
begin
WalkDTM := DdtmToGlory;
MarkTime(e);
repeat
Wait(80);
until(DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2)) or (TimeFromMark(a)>20000);
if DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
mouse(x, y, random(2), random(2), true);
result:=true
fflag(0);
end;
freedtm(DdtmToGlory);
end;
function ClickGlory: boolean;
var
MyTPA : TPointArray;
x, y, i, H : Integer;
ATPA : T2DPointArray;
begin
if(not(LoggedIn))then
Exit;
setangle(false)
FindColorsSpiralTolerance(MSCX, MSCY,MyTPA, 2148596, MSx1, MSy1, MSx2, MSy2, 10);
ATPA := TPAtoATPA(MyTPA, 1);
if Length(MyTPA) = 0 then FindColorsTolerance(MyTPA, 11868044, MSX1, MSY1, MSX2, MSY2, 25);
ATPA := TPAtoATPA(MyTPA, 1);
H := High(ATPA);
For I := 0 To H Do
begin
MiddleTPAEx(ATPA[i], X, Y);
MMouse(X, Y, 3, 3);
wait(200+random(200));
if (IsUpText('mule')) then
begin
GetMousePos(x, y);
Mouse(x, y, 1, 1, False);
if ChooseOption('Rub') then
begin
repeat
wait(100);
until(FindNPCChatText('dgevill',Clickleft))
result:=true;
Exit;
end;
end;
end;
end;

procedure MainLoop;
var
WalkDTM : integer;
begin
SetAudio(1, 1, 1, nochange);
setangle(true);
MakeCompass('360');
WalkDTM := DdtmBank;
if DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
FreeDTM(WalkDTM);
repeat
setrun(true);
if findedgbank=false then terminate('we didnt got able find bank');
if openedgbank=false then
begin
if openedgbank=false then
if OpenBankFast('eb')=false then terminate('we didnt got able to open bank');
end;
if WithdrawSoftClay=false then
begin
if WithdrawSoftclayBackup=false then terminate('we didnt got able to withdraw soft clay');
end;
if TeleportToHouse=false then terminate('we didnt got able to teleport to house');
if BuildingMode=false then terminate('we didnt got able to open building mode');
if WalkToStudy=false then terminate('we didnt got able to walk to study');
repeat
if ClickStudy=false then
begin
if WalkToStudy=false then terminate('we didnt got able to walk to study');
if ClickStudy=false then
begin
if ClickStudy=false then terminate('we didnt got able to click study');
end;
end;
MakeTab;
antiban;
until(FindBlackChatMessage('iece'))
Tm:= Tm -1 ;
if walktoglory=false then terminate('we didnt got able to walk to glory');
if clickglory=false then
begin
if walktoglory=false then terminate('we didnt got able to walk to glory');
if clickglory=false then terminate('we didnt go able to click glory');
end;
antiban;
wait(300+random(1000));
progressreport;
until(false);
FreeDTM(WalkDTM);
end;



WalkDTM := DdtmToStudy;
if DTMRotated(WalkDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
freedtm(DdtmToStudy);
repeat
setrun(true);
if BuildingMode=false then terminate('we didnt got able to open building mode');
if WalkToStudy=false then terminate('we didnt got able to walk to study');
repeat
if ClickStudy=false then
begin
if WalkToStudy=false then terminate('we didnt got able to walk to study');
if ClickStudy=false then
begin
if ClickStudy=false then terminate('we didnt got able to click study');
end;
end;
MakeTab;
antiban;
until(FindBlackChatMessage('piece'))
Tm:= Tm -1 ;
if walktoglory=false then terminate('we didnt got able to walk to glory');
if clickglory=false then
begin
if walktoglory=false then terminate('we didnt got able to walk to glory');
if clickglory=false then terminate('we didnt go able to click glory');
end;
antiban;
wait(300+random(1000));
progressreport;
if findedgbank=false then terminate('we didnt got able find bank');
if openedgbank=false then
begin
if openedgbank=false then
if OpenBankFast('eb')=false then terminate('we didnt got able to open bank');
end;
if WithdrawSoftClay=false then
begin
if WithdrawSoftclayBackup=false then terminate('we didnt got able to withdraw soft clay');
end;
if TeleportToHouse=false then terminate('we didnt got able to teleport to house');
until(false);
end;
freedtm(DdtmToStudy);
end;

begin
PreparingOpening;
SetupTime;
mainloop;
end.

JAD

2009-04-21 02:02:25

Some things to look at:

Why a separate procedure for each DTM? You could just load them all in one proc.

in countpoint you could just check to see that it FindsBlackChatMessage '1', '2', '3', or '4' and if it does then if it finds 'receive then inc. would really shorten that procedure up.

Your waituntil procedure doesn't make sense to me… You never change the value of the move parameter, so what is this for? You could just do wait(time*1000) to accomplish the same thing I think.

In WearingItemAntiBan, you have a case random(1) and then 2 options, 0 and 1. You need to do a random(2), because that will return either a 0 or a 1. random(1) always returns 0.



I don't have time to point out any more things, but yeah. A lot of your logic is very weird in some places and could be simplified it seems.

Nava2

2009-04-21 04:34:39

I know your english isn't great, but you should try and read this:
http://tinyurl.com/cfs6l8

It should help you make your code more efficient.

Listen to JAD, he is right ;) Check out using arrays and loops more as well.

Raskolnikov

2009-04-21 04:45:43

Okay, I have a few things to talk about.

One: Use correct standards!! Look at the link in my signature if you need help.

Two: Do not use Hold/Release Mouse, instead there is an easier option

Mouse(x,y,randx,randy:integer; leftclick:boolean);

This can help shorten your code, and it is more efficient.

Sorry, i voted no, but better luck next time :(

Cut em2 it

Griff

2009-04-21 05:48:42

Some of the things you do in the script are a little inexperienced mistakes, like having dtms in different procedures, but I think the code looks good enough for me. Another thing to work on would be standards, btw.

lordsaturn

2009-04-21 10:03:27

Wow, 2k lines! Here we go..

Standards! It's aggravating to read through 2 thousand lines of code when you are having difficulty telling what method is included in what statement and in what loop.

Your DDTMs aren't dynamic, all values are static. If you don't plan on making them dynamic, please use DTMFromString.

CountPoint could be made much shorter by simply reordering your if statements.
if FindBlackChatMessage('receive') then
begin
if FindBlackChatMessage('0') then
Inc(a);
if FindBlackChatMessage('1') then
Inc(b);
//etc
Nice use of Inc().

You should only keep DTMs loaded in memory when you are using them, not all the time. Try loading them and freeing them within individual functions.

Antiban looks nice, but maybe too common?

Why in CheckUpInGame do you set result to be true after verifying that the DTM isn't found 3 times?

Nice use of TPAs in ClickPortal1, though there are no waits. So your mouse will essentially be flying across the screen at random, not having time to pause to check for uptext. Be sure to compensate lag for your script while coding. This goes for the rest of your TPA functions aswell.

PassInGamePortal1 could throw an access violation, it tries to free the DTM all the time when it is only loaded a portion of the time.

You could probably combine all of your antiban procedures into one, with a simple string parameter. e.g.
procedure AntiBan(Which: string);

Walk1 could be condensed ALOT. Avoid putting code in case statements which is alike across all cases.

Also you should probably credit whoever wrote RunAwayE, looks like you edited it from SRL maybe?

Alot of your TPA functions look the same, with a simple color change. Perhaps you could create a generic TPA finding function with a color paramater? e.g.
function FindObject(color: integer): Boolean;

So many repeats in BuildingMode! Simply use a for loop to loop through all of your DTMs rather than copying and pasting. Redundant code = no no.

You have some good object finding in the teletab maker, but I can't really tell what is going on in the mainloop, the standards are too bad. :(

Your script must be awfully slow with all of the DTMs loaded into memory constantly. I haven't seen you much around the forums, so on the subject of attitude I will stay neutral. However I'm not a fan of bad standards, but I can tell you put an enormous amount of effort into creating these two scripts. Frankly, there is a lot of bulk that could be cut down on, and if you put a little more effort into it, I'm sure it'd turn out to be a great script.
I'm undecided atm, i'll sleep on it and will edit my post with my decision later. :)

Edit: Yes. :)

ShowerThoughts

2009-04-21 10:06:21

I told you so! :p
If you would have read your pm you wouldn't had that post from Jad ;)
I am not going to vote.

Phran6

2009-04-24 01:08:25

hmm :( your hard !! thos script are my two first, im quite happy with poll but with thos post, ill need to work harder.

Naike

2009-04-25 01:47:52

Yes.

Listen to the feedback ^ have been giving you.

Phran6

2009-04-25 06:23:06

Thanx alot :)
sure ill do :p

Sir R. M8gic1an

2009-05-03 17:46:00

bump.

~RM

jakeyboy29

2009-05-03 18:18:06

bumping? humm… oh well ill vote now. 1 sek

EDIT:

some may go "zomg soul war. YES!"
iv looked over and used this. dtm, walking.. little. other stuff. so yeh its a yes

Hobbit

2009-05-05 09:00:07

In!

Welcome to SRL Members :)