Maninblack144
2009-01-17 11:34:41
<!– BEGIN TEMPLATE: formanswers –>
Maninblack144 - SRL Member Application Form
Maninblack144
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Actionscript, Visual Basic Script, Javascript, PHP, Pascal, Pawn, HTML and CSS.
Other Communitys
Aside from Moparscape nothing RS-related.
How Long have You Played Runescape
Around 4 years, with a lot of space inbetween periods.
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, I started out with Visual Basic Script. After that I got Flash, with Actionscript. Later we got Javascript, HTML, CSS and PHP at school. Before that, I also used Pawn for GTA: San Andreas Multiplayer servers, and now there is SCAR with Pascal (or at least Pascal-based).
Made a few tiny games in Flash, and a few fully functional webpages with HTML, CSS, Javascript and PHP (but not all at once). Never uploaded one though. Made a script for a SA-MP server especially for 1vs1 Deathmatch, to be able to kill my younger brother over and over again.
I recently started playing Runescape again (P2P), and a few days ago I picked SCAR up again. My first script ever, a mildy functional Goblin Killer, is still uploaded at the First Script section. (Can't find it because Search is down). Made that about 1/2 year(s) ago. After that I made some small scripts, like an Autotalker with AntiBan and Pause option, before I made the scripts included with this Application.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
SimplePowerChopper:
This one is a simple PowerChopper able to function at any place with any trees. Has AntiBan, AntiRandoms and ofcourse, FailSafes.
OakPlankMaker:
This one is my main project, still busy perfecting. As seen in the title, this script makes Oak Planks by walking back and forth from the Varrock East Bank to the Sawmill. This one has been extensively tested by both me and my younger brother, and thanks to a lot of improvements it can now run for hours straight. Every once in a (long) while the RadialWalk can screw up, but it's still an excellent way of making money, about 3Mil so far for me. It has AntiBan and a lot of FailSafes. It uses Dynamic DTM's to correct the cam at places where this is important. This makes sure the RadialWalk doesn't screw up (or at least a lot less). AntiRandoms were not needed when I made this, but I heard you can now also get Randoms when Banking so I have to build that in sometime soon. It can run around 1 run every 2 minutes, being 30 runs an hour. Averaging 5,4k profit every run, you can easily make 150k profit every hour. This is not that much, but it is still a reasonable amount.
Also, I build some command detection into it, so you can say something to make it stop instead of Alt-Tabbing to the SCAR screen and pressing F4. I modified 2 SRL-functions for this, the LastChatter and GetLastChatText ones, to make them return the actual text said instead of immediately running a check.
GoblinKiller:
Currently being worked on, but I finished the Multiplayer part already so I figured I could show this one too, just to show I know how to do Multiplayer. Nothing more to be said.
——————————————————
<!– END TEMPLATE: formanswers –>
Maninblack144 - SRL Member Application Form
Maninblack144
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
no
Programming Knowledge
Actionscript, Visual Basic Script, Javascript, PHP, Pascal, Pawn, HTML and CSS.
Other Communitys
Aside from Moparscape nothing RS-related.
How Long have You Played Runescape
Around 4 years, with a lot of space inbetween periods.
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Well, I started out with Visual Basic Script. After that I got Flash, with Actionscript. Later we got Javascript, HTML, CSS and PHP at school. Before that, I also used Pawn for GTA: San Andreas Multiplayer servers, and now there is SCAR with Pascal (or at least Pascal-based).
Made a few tiny games in Flash, and a few fully functional webpages with HTML, CSS, Javascript and PHP (but not all at once). Never uploaded one though. Made a script for a SA-MP server especially for 1vs1 Deathmatch, to be able to kill my younger brother over and over again.
I recently started playing Runescape again (P2P), and a few days ago I picked SCAR up again. My first script ever, a mildy functional Goblin Killer, is still uploaded at the First Script section. (Can't find it because Search is down). Made that about 1/2 year(s) ago. After that I made some small scripts, like an Autotalker with AntiBan and Pause option, before I made the scripts included with this Application.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
SimplePowerChopper:
This one is a simple PowerChopper able to function at any place with any trees. Has AntiBan, AntiRandoms and ofcourse, FailSafes.
program SimplePowerChopper;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/WoodCutting.scar}
const
TreeColor1=1665885;
TreeColor2=1391670;
TreeColor3=4551572;
LoadsToDo=10;
var
TreeX, TreeY:Integer;
MouseX, MouseY:Integer;
TillChoppingWaitTime:Integer;
TillChoppedAntiBanCounter:Integer;
LoadsDone:Integer;
FailCounter:Integer;
procedure LogoutM;
begin
Mouse(755, 14, 2, 2, true);
wait(100+random(200));
Mouse(646, 378, 3, 3, true);
TerminateScript;
end;
procedure Initiate;
begin
SetupSRL;
ActivateClient;
writeln('Basic Power Chopper, made by Maninblack144.');
writeln(inttostr(LoadsToDo)+' loads to do. Starting...');
wait(1000+random(500));
SetAngle(true);
wait(1000+random(500));
LoadsDone:=0;
FailCounter:=0;
end;
procedure HandleRandoms;
begin
FindBirdsNest;
FindEnt(TreeX, TreeY, true);
FindNormalRandoms;
end;
procedure StartChopping;
begin
if (FindColorSpiralTolerance(TreeX, TreeY, TreeColor1, MSX1, MSY1, MSX2, MSY2, 4)) then
begin
MMouse(TreeX, TreeY, 5, 5);
wait(300+random(200));
if (IsUpText('hop') and IsUpText('ree')) then
begin
HandleRandoms;
GetMousePos(MouseX, MouseY);
Mouse(MouseX, MouseY, 0, 0, true);
end else
begin
SendArrowSilentWait(1, 500+random(1000));
StartChopping;
end;
end else if (FindColorSpiralTolerance(TreeX, TreeY, TreeColor2, MSX1, MSY1, MSX2, MSY2, 4)) then
begin
MMouse(TreeX, TreeY, 5, 5);
wait(300+random(200));
if (IsUpText('hop') and IsUpText('ree')) then
begin
HandleRandoms;
GetMousePos(MouseX, MouseY);
Mouse(MouseX, MouseY, 0, 0, true);
end else
begin
SendArrowSilentWait(1, 500+random(1000));
StartChopping;
end;
end else if (FindColorSpiralTolerance(TreeX, TreeY, TreeColor3, MSX1, MSY1, MSX2, MSY2, 4)) then
begin
MMouse(TreeX, TreeY, 5, 5);
wait(300+random(200));
if (IsUpText('hop') and IsUpText('ree')) then
begin
HandleRandoms;
GetMousePos(MouseX, MouseY);
Mouse(MouseX, MouseY, 0, 0, true);
end else
begin
SendArrowSilentWait(1, 500+random(1000));
StartChopping;
end;
end else
begin
SendArrowSilentWait(1, 500+random(1000));
FailCounter:=FailCounter+1;
if (FailCounter>=5) then
begin
writeln('Could not find any of the colours specified.');
writeln('Check the colours and your current position, and try again.');
LogoutM;
TerminateScript;
end;
StartChopping;
end;
end;
procedure WaitTillChopping;
begin
TillChoppingWaitTime:=0;
repeat
wait(50);
TillChoppingWaitTime:=TillChoppingWaitTime+50;
if (TillChoppingWaitTime=15000) then
begin
TillChoppingWaitTime:=0;
writeln('Taking too long to find a tree. Retrying...');
TypeSend('lol');
StartChopping;
end;
until (FindBlackChatMessage('your axe at'));
end;
procedure WaitTillChopped;
begin
TillChoppedAntiBanCounter:=0;
repeat
wait(50);
TillChoppedAntiBanCounter:=TillChoppedAntiBanCounter+50;
if (TillChoppedAntiBanCounter=1000) then
begin
TillChoppedAntiBanCounter:=0;
if (random(100)<4) then
begin
SendArrowSilentWait(3, random(1000));
end;
end;
until (FindBlackChatMessage('get some log'));
end;
procedure HandleDropping;
begin
wait(200+random(300));
if (InvFull) then
begin
LoadsDone:=LoadsDone+1;
DropAll;
end;
wait(200+random(300));
end;
begin
Initiate;
repeat
StartChopping;
WaitTillChopping;
WaitTillChopped;
HandleDropping;
until (LoadsDone=LoadsToDo);
writeln('Succesfully completed. Done '+inttostr(LoadsToDo)+' loads.');
end.OakPlankMaker:
This one is my main project, still busy perfecting. As seen in the title, this script makes Oak Planks by walking back and forth from the Varrock East Bank to the Sawmill. This one has been extensively tested by both me and my younger brother, and thanks to a lot of improvements it can now run for hours straight. Every once in a (long) while the RadialWalk can screw up, but it's still an excellent way of making money, about 3Mil so far for me. It has AntiBan and a lot of FailSafes. It uses Dynamic DTM's to correct the cam at places where this is important. This makes sure the RadialWalk doesn't screw up (or at least a lot less). AntiRandoms were not needed when I made this, but I heard you can now also get Randoms when Banking so I have to build that in sometime soon. It can run around 1 run every 2 minutes, being 30 runs an hour. Averaging 5,4k profit every run, you can easily make 150k profit every hour. This is not that much, but it is still a reasonable amount.
Also, I build some command detection into it, so you can say something to make it stop instead of Alt-Tabbing to the SCAR screen and pressing F4. I modified 2 SRL-functions for this, the LastChatter and GetLastChatText ones, to make them return the actual text said instead of immediately running a check.
program OakPlankMaker;
{.include SRL/SRL.scar}
const
Runs=1;
SawColor=2386323;
NickName='';
CmdPass='';
{
Please refrain from touching anything below this point.
}
{
-----------STATUS REPORT----------
Current problems:
Problem: Tends to get lost at the Varrock crossroad, but only once every 3 hours or so.
Cause: Yet unknown.
Problem: A tree in front of the Sawmill might be in front of the Operator.
Cause: That damn tree.
Solution: Increase Y-position of the click to make it go IN FRONT of the Sawmill, instead of besides.
Test: Tested, works.
SOLVED
Usefulness of the script:
Good, but not yet entirely perfect. Can run for hours straight, with a bit of luck.
}
DRoadTol=30;
DirtRoadTolerance=70;
BankerColor=2904671;
DudeColor=13092264;
DoorColor=241;
var
RArrow1, RArrow2, RArrow3:Integer;
BankerColorX, BankerColorY:Integer;
MouseX, MouseY:Integer;
SawX, SawY:Integer;
DudeX, DudeY:Integer;
Counter:Integer;
CorrectDTM1, CorrectDTM1X, CorrectDTM1Y:Integer;
CorrectDTM2, CorrectDTM2X, CorrectDTM2Y:Integer;
CheckDTM, CheckDTMX, CheckDTMY:Integer;
CheckDTMA:Extended;
VRoadC:Integer;
CorrectDTM1MP: TDTMPointDef;
CorrectDTM1SP: array[0..3] of TDTMPointDef;
CorrectDTM1Skel: TDTM;
CorrectDTM2MP: TDTMPointDef;
CorrectDTM2SP: array[0..4] of TDTMPointDef;
CorrectDTM2Skel: TDTM;
CheckDTMMP: TDTMPointDef;
CheckDTMSP: array[0..1] of TDTMPointDef;
CheckDTMSkel: TDTM;
DRoadC:Integer;
DirtRoad:Integer;
CrashCounter:Integer;
LastChatterName, LastChatterText:String;
PauseBreak:Boolean;
DoorX, DoorY:Integer;
procedure Initiate;
begin
SetupSRL;
ActivateClient;
wait(200+random(300));
MakeCompass('n');
wait(100+random(200));
end;
function GetLastChatM: String;
var
x, y: Integer;
textP: TPoint;
begin
textP := TextCoords(8);
if findcolor(x, y, 16711680, textp.x, textp.y, textp.x + 200, textp.y + 14) then
begin
Result := LowerCase(Trim(GetTextAtEx(x - 3, textp.y - 2, 0, SmallChars, False,
False, -1, 1, 16711680, 60, False, tr_allChars)));
end;
end;
function LastChatterM: String;
var
i: Integer;
textP: TPoint;
name: String;
begin
textP := TextCoords(8);
name := LowerCase(Trim(GetTextAtEx(textP.x - 2, textP.y - 2, 0, SmallChars, False, False, 0, 1,
0, 60, False, tr_allChars)))
i := Pos(':', name)
if (i <> 0) then
begin
Delete(name, i, i);
Result := name;
end;
end;
procedure LogoutM;
begin
Mouse(755, 14, 2, 2, true);
wait(100+random(200));
Mouse(646, 378, 3, 3, true);
TerminateScript;
end;
function CheckString(substring, mainstring:String):Boolean;
begin
if (pos(substring, mainstring)>0) then
begin
Result:=True;
end else
begin
Result:=False;
end;
end;
procedure CheckForCommand;
begin
LastChatterName:=LastChatterM;
LastChatterText:=GetLastChatM;
if (LastChatterM=Nickname) then
begin
if (CheckString(CmdPass, LastChatterText)) then
begin
if (CheckString('quit this', LastChatterText)) then
begin
LogoutM;
writeln('Terminate command issued. Terminating.');
TerminateScript;
end;
end;
end;
end;
procedure LoadDDTM(BankThing:Boolean);
begin
VRoadC:=FindVarrockRoadColor;
if (BankThing=True) then
begin
if (FindColorTolerance(DoorX, DoorY, DoorColor, 570, 102, 591, 130, 50)) then
begin
DRoadC:=GetColor(DoorX+7, DoorY);
if (DRoadC>10000000) then
begin
wait(5000+random(500));
DRoadC:=GetColor(DoorX+7, DoorY);
end;
writeln('Dirtroad Color picked: '+inttostr(DRoadC));
end else
begin
if (FindColorTolerance(DoorX, DoorY, DoorColor, 604, 112, 621, 130, 50)) then
begin
DRoadC:=GetColor(DoorX, DoorY-2);
writeln('Dirtroad Color picked: '+inttostr(DRoadC));
end else
begin
writeln('Dirtroad Color not found. Terminating.');
TerminateScript;
end;
end;
end;
CorrectDTM1MP.x:=593;
CorrectDTM1MP.y:=49;
CorrectDTM1MP.areasize:=1;
CorrectDTM1MP.areashape:=0;
CorrectDTM1MP.color:=VRoadC;
CorrectDTM1MP.tolerance:=1;
CorrectDTM1SP[0].x:=566;
CorrectDTM1SP[0].y:=48;
CorrectDTM1SP[0].areasize:=1;
CorrectDTM1SP[0].areashape:=0;
CorrectDTM1SP[0].color:=VRoadC;
CorrectDTM1SP[0].tolerance:=1;
CorrectDTM1SP[1].x:=595;
CorrectDTM1SP[1].y:=25;
CorrectDTM1SP[1].areasize:=1;
CorrectDTM1SP[1].areashape:=0;
CorrectDTM1SP[1].color:=VRoadC;
CorrectDTM1SP[1].tolerance:=1;
CorrectDTM1SP[2].x:=677;
CorrectDTM1SP[2].y:=48;
CorrectDTM1SP[2].areasize:=1;
CorrectDTM1SP[2].areashape:=0;
CorrectDTM1SP[2].color:=VRoadC;
CorrectDTM1SP[2].tolerance:=1;
CorrectDTM1SP[3].x:=585;
CorrectDTM1SP[3].y:=106;
CorrectDTM1SP[3].areasize:=1;
CorrectDTM1SP[3].areashape:=0;
CorrectDTM1SP[3].color:=DRoadC;
CorrectDTM1SP[3].tolerance:=DRoadTol;
CorrectDTM1Skel.MainPoint:=CorrectDTM1MP;
CorrectDTM1Skel.SubPoints:=CorrectDTM1SP;
CorrectDTM1:=AddDTM(CorrectDTM1Skel);
CorrectDTM2MP.x:=609;
CorrectDTM2MP.y:=60;
CorrectDTM2MP.areasize:=1;
CorrectDTM2MP.areashape:=0;
CorrectDTM2MP.color:=VRoadC;
CorrectDTM2MP.tolerance:=1;
CorrectDTM2SP[0].x:=619;
CorrectDTM2SP[0].y:=29;
CorrectDTM2SP[0].areasize:=1;
CorrectDTM2SP[0].areashape:=0;
CorrectDTM2SP[0].color:=VRoadC;
CorrectDTM2SP[0].tolerance:=1;
CorrectDTM2SP[1].x:=582;
CorrectDTM2SP[1].y:=61;
CorrectDTM2SP[1].areasize:=1;
CorrectDTM2SP[1].areashape:=0;
CorrectDTM2SP[1].color:=VRoadC;
CorrectDTM2SP[1].tolerance:=1;
CorrectDTM2SP[2].x:=628;
CorrectDTM2SP[2].y:=95;
CorrectDTM2SP[2].areasize:=1;
CorrectDTM2SP[2].areashape:=0;
CorrectDTM2SP[2].color:=VRoadC;
CorrectDTM2SP[2].tolerance:=1;
CorrectDTM2SP[3].x:=639;
CorrectDTM2SP[3].y:=61;
CorrectDTM2SP[3].areasize:=1;
CorrectDTM2SP[3].areashape:=0;
CorrectDTM2SP[3].color:=DRoadC;
CorrectDTM2SP[3].tolerance:=DRoadTol;
CorrectDTM2SP[4].x:=591;
CorrectDTM2SP[4].y:=76;
CorrectDTM2SP[4].areasize:=1;
CorrectDTM2SP[4].areashape:=0;
CorrectDTM2SP[4].color:=DRoadC;
CorrectDTM2SP[4].tolerance:=DRoadTol;
CorrectDTM2Skel.MainPoint:=CorrectDTM2MP;
CorrectDTM2Skel.SubPoints:=CorrectDTM2SP;
CorrectDTM2:=AddDTM(CorrectDTM2Skel);
CheckDTMMP.x:=681;
CheckDTMMP.y:=90;
CheckDTMMP.areasize:=1;
CheckDTMMP.areashape:=0;
CheckDTMMP.color:=DoorColor;
CheckDTMMP.tolerance:=20;
CheckDTMSP[0].x:=660;
CheckDTMSP[0].y:=92;
CheckDTMSP[0].areasize:=1;
CheckDTMSP[0].areashape:=0;
CheckDTMSP[0].color:=DRoadC;
CheckDTMSP[0].tolerance:=DRoadTol;
CheckDTMSP[1].x:=694;
CheckDTMSP[1].y:=104;
CheckDTMSP[1].areasize:=1;
CheckDTMSP[1].areashape:=0;
CheckDTMSP[1].color:=DRoadC;
CheckDTMSP[1].tolerance:=DRoadTol;
CheckDTMSkel.MainPoint:=CheckDTMMP;
CheckDTMSkel.SubPoints:=CheckDTMSP;
CheckDTM:=AddDTM(CheckDTMSkel)
end;
procedure UnloadDDTM;
begin
FreeDTM(CorrectDTM1);
FreeDTM(CorrectDTM2);
FreeDTM(CheckDTM);
FreeBitmap(DirtRoad);
end;
procedure CorrectCamBank;
begin
LoadDDTM(True);
CrashCounter:=0;
repeat
SendArrowSilentWait(1, 100);
CrashCounter:=CrashCounter+100;
if (CrashCounter=30000) then
begin
CrashCounter:=0;
writeln('Crashed at the Bank. DDTM not found.');
LogoutM;
TerminateScript;
end;
until (FindDTM(CorrectDTM1, CorrectDTM1X, CorrectDTM1Y, MMX1, MMY1, MMX2, MMY2));
wait(500+random(500));
UnloadDDTM;
end;
procedure CorrectCamCrossroad;
begin
LoadDDTM(False);
CrashCounter:=0;
repeat
SendArrowSilentWait(1, 100);
CrashCounter:=CrashCounter+100;
if (CrashCounter=30000) then
begin
CrashCounter:=0;
writeln('Crashed at the Crossroad. DDTM not found.');
wait(50+random(100));
LogoutM;
TerminateScript;
end;
until (FindDTM(CorrectDTM2, CorrectDTM2X, CorrectDTM2Y, MMX1, MMY1, MMX2, MMY2));
wait(100+random(200));
UnloadDDTM;
end;
procedure RandomMouseMove;
begin
MMouse(random(800), random(600), 5, 5);
wait(100+random(200));
end;
procedure RandomArrowTwisting;
begin
RArrow1:=200+random(400);
RArrow2:=200+random(400);
RArrow3:=RArrow1-RArrow2;
SendArrowSilentWait(1, RArrow1);
wait(100+random(200));
SendArrowSilentWait(3, Rarrow2);
wait(100+random(200));
if (RArrow3>0) then
begin
SendArrowSilentWait(3, RArrow3);
wait(100+random(200));
end else if (RArrow3=0) then
begin
wait(100+random(200));
end else if (RArrow3<0) then
begin
SendArrowSilentWait(1, (0-RArrow3));
wait(100+random(200));
end;
end;
procedure RandomSpeechSaying;
begin
case random(4) of
0:TypeSend('lol');
1:TypeSend('w00t');
2:TypeSend('humtiedum');
3:TypeSend('lalalalaallala');
end;
wait(500+random(500));
end;
procedure RandomAntiBan;
begin
case random(3) of
0:RandomMouseMove;
1:RandomArrowTwisting;
end;
end;
procedure MOpenBank;
begin
if (FindColorSpiralTolerance(BankerColorX, BankerColorY, BankerColor, MSX1, MSY1, MSX2, MSY2, 2)) then
begin
MMouse(BankerColorX, BankerColorY, 2, 2);
wait(500+random(500));
if (IsUpText('ank')) then
begin
GetMousePos(MouseX, MouseY);
Mouse(MouseX, MouseY, 0, 0, false);
wait(500+random(500));
if (ChooseOption('uickly')=false) then
begin
wait(3000+random(2000));
MOpenBank;
end;
wait(3000+random(2000));
end else
begin
wait(3000+random(2000));
SendArrowSilentWait(1, 1000+random(500));
MOpenBank;
end;
end else
begin
wait(3000+random(3000));
SendArrowSilentWait(1, 1000+random(500));
MOpenBank;
end;
wait(3000+random(200));
Mouse(476, 84, 2, 2, true);
wait(500+random(500));
end;
procedure GetLogs;
begin
Mouse(52, 110, 3, 3, false);
wait(100+random(200));
if (ChooseOption('ll')=false) then
begin
LogoutM;
TerminateScript;
end;
wait(300+random(400));
Mouse(485, 40, 2, 2, true);
wait(200+random(300));
RandomAntiBan;
end;
procedure WalkToPlankDude;
begin
ActivateClient;
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 50, 80, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 80, 100, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
LoadDDTM(False);
if (FindDTMRotated(CheckDTM, CheckDTMX, CheckDTMY, MMX1, MMY1, MMX2, MMY2, 6.0, 6.56, 0.05, CheckDTMA)=false) then
begin
RadialWalk(FindVarrockRoadColor, 80, 100, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
end;
UnloadDDTM;
CorrectCamCrossroad;
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 340, 380, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 10, 20, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RandomAntiBan;
RadialWalk(FindFallyRoadColor, 300, 460, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RadialWalk(FindFallyRoadColor, 300, 460, 20, 1, 1);
wait(100+random(200));
CheckForCommand;
if (FindColorSpiralTolerance(SawX, SawY, SawColor, MMX1, MMY1, MMX2, MMY2, 3)) then
begin
Mouse(SawX, SawY+10, 2, 4, true);
end else
begin
RadialWalk(FindFallyRoadColor, 300, 460, 20, 1, 1);
wait(100+random(200));
if (FindColorSpiralTolerance(SawX, SawY, SawColor, MMX1, MMY1, MMX2, MMY2, 3)) then
begin
Mouse(SawX, SawY+10, 2, 4, true);
end else
begin
LogoutM;
TerminateScript;
end;
end;
wait(10000+random(3000));
end;
procedure BuyPlanks;
begin
SetAngle(false);
if (FindColorSpiralTolerance(DudeX, DudeY, DudeColor, MSX1, MSY1, MSX2, MSY2, 8)) then
begin
MMouse(DudeX, DudeY, 2, 30);
wait(100+random(200));
if (IsUpText('mill')) then
begin
GetMousePos(MouseX, MouseY);
Mouse(MouseX, MouseY, 0, 0, false);
wait(100+random(200));
if (ChooseOption('lank')=false) then
begin
LogoutM;
TerminateScript;
end;
wait(3000+random(1000));
end else
begin
writeln('Failed in finding the saw dude.');
LogoutM;
TerminateScript;
end;
end else
begin
writeln('Sawdude not found. Relocating camera.');
SendArrowSilentWait(2, 2000+random(1000));
wait(100+random(200));
BuyPlanks;
end;
Mouse(334, 112, 5, 5, false);
wait(100+random(200));
ChooseOption('ll');
wait(1000+random(500));
SetAngle(true);
end;
procedure WalkToBank;
begin
RadialWalk(FindFallyRoadColor, 180, 200, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 180, 210, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 130, 250, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RandomAntiBan;
RadialWalk(FindVarrockRoadColor, 160, 200, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
CorrectCamCrossroad;
wait(100+random(200));
CheckForCommand;
RadialWalk(FindVarrockRoadColor, 260, 300, 70, 1, 1);
wait(100+random(200));
CheckForCommand;
RandomAntiBan;
RadialWalk(FindVarrockRoadColor, 260, 280, 50, 1, 1);
wait(100+random(200));
CheckForCommand;
if (FindBank('veb')=false) then
begin
Mouse(626, 157, 1, 1, true);
wait(10000+random(2000));
FFlag(10);
if (FindBank('veb')=false) then
begin
writeln('Could not find the bank.');
LogoutM;
TerminateScript;
end;
end;
wait(100+random(200));
end;
procedure BankPlanks;
begin
Mouse(624, 226, 2, 2, false);
wait(100+random(200));
if (ChooseOption('ll')=false) then
begin
LogoutM;
TerminateScript;
end;
wait(1000+random(500));
end;
begin
Initiate;
Counter:=0;
FindBank('veb');
repeat
GetLogs;
CorrectCamBank;
WalkToPlankDude;
BuyPlanks;
WalkToBank;
BankPlanks;
Counter:=Counter+1;
Disguise(inttostr((Runs-Counter)*27)+' more Logs to do.');
until (Counter=Runs);
writeln('All runs done.');
Mouse(485, 40, 2, 2, true);
wait(500+random(500));
LogoutM;
end.GoblinKiller:
Currently being worked on, but I finished the Multiplayer part already so I figured I could show this one too, just to show I know how to do Multiplayer. Nothing more to be said.
program GoblinKiller;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Fighting.scar}
var
goblinX,goblinY:Integer;
goblinsKilled:Integer;
died:Integer;
const
goblinColor1=4955557;
goblinColor2=2852527;
NumberOfUsers=8;
StartPlayer=0;
procedure DeclarePlayers;
begin
HowManyPlayers:=NumberOfUsers;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:=StartPlayer;
Players[0].Name :='';
Players[0].Pass :='';
Players[0].Nick :='';
Players[0].Loc :='Bank';
Players[0].Active:=True;
Players[0].Boolean1 := True; // Is The Pick Equipped?
Players[1].Name :='';
Players[1].Pass :='';
Players[1].Nick :='';
Players[1].Loc :='Bank';
Players[1].Active:=True;
Players[1].Boolean1 := True; // Is The Pick Equipped?
Players[2].Name :='';
Players[2].Pass :='';
Players[2].Nick :='';
Players[2].Loc :='Bank';
Players[2].Active:=True;
Players[2].Boolean1 := True; // Is The Pick Equipped?
Players[3].Name :='';
Players[3].Pass :='';
Players[3].Nick :='';
Players[3].Loc :='Bank';
Players[3].Active:=True;
Players[3].Boolean1 := True; // Is The Pick Equipped?
Players[4].Name :='';
Players[4].Pass :='';
Players[4].Nick :='';
Players[4].Loc :='Bank';
Players[4].Active:=True;
Players[4].Boolean1 := True; // Is The Pick Equipped?
Players[5].Name :='';
Players[5].Pass :='';
Players[5].Nick :='';
Players[5].Loc :='Bank';
Players[5].Active:=True;
Players[5].Boolean1 := True; // Is The Pick Equipped?
Players[6].Name :='';
Players[6].Pass :='';
Players[6].Nick :='';
Players[6].Loc :='Bank';
Players[6].Active:=True;
Players[6].Boolean1 := True; // Is The Pick Equipped?
Players[7].Name :='';
Players[7].Pass :='';
Players[7].Nick :='';
Players[7].Loc :='Bank';
Players[7].Active:=True;
Players[7].Boolean1 := True; // Is The Pick Equipped?
Players[8].Name :='';
Players[8].Pass :='';
Players[8].Nick :='';
Players[8].Loc :='Bank';
Players[8].Active:=True;
Players[8].Boolean1 := True; // Is The Pick Equipped?
Players[9].Name :='';
Players[9].Pass :='';
Players[9].Nick :='';
Players[9].Loc :='Bank';
Players[9].Active:=True;
Players[9].Boolean1 := True; // Is The Pick Equipped?
end;
procedure Initiate;
begin
SetupSRL;
ClearDebug;
writeln(' /^^\ /^^\ _ |^^^\ ');
writeln(' / /\ \ / /\ \ |_| | |^ \');
writeln(' / / \ \ / / \ \ |^| | |/ /');
writeln(' / / \ \ / / \ \ | | | | ');
writeln(' / / \ \__/ / \ \ | | | ^\ \');
writeln(' / / \____/ \ \ | | | _/ /');
writeln('/_/ \_\ |_| |___/ ');
writeln('((=====Maninblack144s Goblin Killer====))');
end;
procedure CheckSwitch;
begin
end;
procedure HandleRandoms;
begin
FindNormalRandoms();
end;
begin
end.——————————————————
<!– END TEMPLATE: formanswers –>