~BobFm~
2008-11-07 16:22:13
<!– BEGIN TEMPLATE: formanswers –>
~BobFm~ - SRL Member Application Form
~BobFm~
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
Other Communitys
Sythe.com
How Long have You Played Runescape
About 2 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I read lots of tuts and understand tons (I think) about scar. I have made this script and have gotten over 1k oaks from it so it is pretty good. I hope this gets me into Members if not I wll not give up I will try hard to take all of your info that you give me and make this script better.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END TEMPLATE: formanswers –>
~BobFm~ - SRL Member Application Form
~BobFm~
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
Other Communitys
Sythe.com
How Long have You Played Runescape
About 2 years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
I read lots of tuts and understand tons (I think) about scar. I have made this script and have gotten over 1k oaks from it so it is pretty good. I hope this gets me into Members if not I wll not give up I will try hard to take all of your info that you give me and make this script better.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
// Varrock East Oak Cut And Banker //
// Made by : ~BOBFM~ //
// Start in Varrock East Bank or east of the //
// bank by the 2 oak trees with the axe in the //
// first slot of your players inv or weiled //
// Fill in the //
// const and DeclarePlayers and hit play //
program VEOCB;
{.include SRL/SRL.Scar}
{.include SRL/SRL/Skill/Woodcutting.Scar}
Var
RoadDDTM, Road2DDTM : integer;
WieldAxe,InvAxe,OakLogsBanked,BrokenDTM,NormalaxeDTM, OakLogsChopped : Integer;
EquipAxe2: Boolean;
dtmAxes: array[0..6] of integer;
const
SRLStatsID = '6004'; // Your SRL Stats ID
SRLStatsPW = 'Jehovah'; // Your SRL Stats Password
Version = '0.1'; // Do NOT change this!
Procedure DeclarePlayers;
begin
HowManyPlayers:= 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:= 0;
Players[0].Name := ''; //UserName
Players[0].Pass := ''; //Password
Players[0].Nick := ''; //Nickname
Players[0].Active := True; //Active
Players[0].integers[0]:= 50; // Loads to do
WriteLn('Using ' +IntToStr(HowManyPlayers) + ' Players');
end;
Function FindBankers(Var Bank: TPoint; Var Angle: Extended): Boolean; //Wizzup?
Var
I: Integer;
B, gB: TPointArray;
aTPA: T2DPointArray;
Begin
Result := False;
FindColorsSpiralTolerance(MMCX, MMY2, B, 60909, MMX1, MMY1, MMX2, MMY2, 0);
aTPA := SplitTPA(B, 10);
SortATPASize(aTPA, True);
If Length(aTPA) = 0 Then
Exit;
B := aTPA[0];
For I := 0 To High(B) - 1 Do
Begin
If (Abs(B[I].Y - B[I + 1].Y) < 15) And (Abs(B[I].X - B[I + 1].X) < 60) Then
Begin
SetLength(gB, Length(gB) + 1);
gB[High(gB)] := B[I];
If High(gB) > 3 Then // 4 bankers.
Begin
Bank := MiddleTPA(gB);
Bank.Y := Bank.Y - 5;
Angle := Degrees(ArcTan2(gB[0].y - gB[High(gB)].y, gB[0].x - gB[High(gB)].x)) + 90;
If Angle < 0 Then
Angle := 90 - (Angle * -1) + 270;
Result := True;
Exit;
End;
End
Else
SetLength(gB, 0);
End;
End;
Procedure ClickBlueBar2;
begin
Mouse(60 + random(600), -225, 3, 3, true);
end;
Procedure GetAxe;
begin
ActivateClient;
OpenBankFast('veb');
Wait(800 + Random(200));
Deposit(1,28,True)
FixBank;
ClickBlueBar2;
SearchBank('axe');
MMouse(51, 103, 5, 5);
IsUpText('xe')
Mouse(51, 103, 5, 5, True);
closebank;
end;
function CheckForAllRandoms: boolean; // Shuttleu =P Edited a bit
begin
if Pos('tch sp', lowercase(GetTalkingNPCName)) > 0 then ClickContinue(true, true);
if FindNormalRandoms then result := true;
if FindInventoryRandoms then result := true;
if FindNonInventoryRandoms then result := true;
if FindTalk then result := true;
if FindFight then
begin
RunAway('N', true, 1, 3000);
end;
end;
procedure SetupDTMS;
begin
BrokenDTM := DTMFromString('78DA8DCA4B0E40401444D1F7EC7F13BE8D961' +
'684089B73874C54D7E0D6E4F85298356EDFF9ABFC85A98539315D' +
'8689C2AC9820CC8C19858998439880B985E9319B3003260933615' +
'A6112A61466C754FFE60175E211E0');
NormalaxeDTM := DTMFromString('78DA636C63626058C2C8800CFAB204C1344C9' +
'4B11FA86611AA1A982C5CCD44A09A1504D4F401D5AC26A0A68B08' +
'73DA8850D30254B386809A26A09A4D04D43402D56C23A0A60EA86' +
'6370135B54035DB89306713116E5E4A84DF17E2570300BF2E120E' +
'');
end;
function LoadRoad2DDTM: Integer;
var
Roadcolor2 : integer;
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
Roadcolor2 := FindVarrockRoadColor;
dtmMainPoint.x := 716;
dtmMainPoint.y := 317;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Roadcolor2;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 716;
dtmSubPoints[0].y := 317;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Roadcolor2;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 735;
dtmSubPoints[1].y := 308;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Roadcolor2;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 734;
dtmSubPoints[2].y := 324;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Roadcolor2;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 700;
dtmSubPoints[3].y := 317;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Roadcolor2;
dtmSubPoints[3].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Road2DDTM := AddDTM(TempTDTM);
end;
function LoadRoadDDTM: Integer;
var
Roadcolor : integer;
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
Roadcolor := FindVarrockRoadColor;
dtmMainPoint.x := 731;
dtmMainPoint.y := 309;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Roadcolor;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 731;
dtmSubPoints[0].y := 309;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Roadcolor;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 736;
dtmSubPoints[1].y := 290;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := Roadcolor;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 739;
dtmSubPoints[2].y := 322;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := Roadcolor;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 715;
dtmSubPoints[3].y := 307;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := Roadcolor;
dtmSubPoints[3].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
RoadDDTM := AddDTM(TempTDTM);
end;
function Location(loc: string): boolean;
var
P: TPoint;
A: Extended;
begin
case Lowercase(loc) of
'bank':
begin
SymbolAccuracy := 0.6;
if not(FindSymbol(x, y, 'bank'))then
begin
If FindBankers(P, A) Then
begin
Result := True;
Writeln('Found Bank');
Exit;
end else
begin
Writeln('Bank not found.');
Result := false;
Exit;
end;
end else
begin
Writeln('Found Bank with bank symbol.');
Result := True;
Exit;
end;
end;
'road':
begin
RoadColor := FindVarrockRoadColor;
LoadRoadDDTM;
if not(DTMRotated(RoadDDTM, x, y, MMX1, MMY1, MMX2, MMY2))then
begin
Result := False;
Writeln('Could not find Road.');
FreeDTM(RoadDDTM);
Exit;
end else
begin
Result := True;
Writeln('Found Road.');
FreeDTM(RoadDDTM);
Exit;
end;
end;
end;
end;
procedure AntiBan;
begin
if (not (LoggedIn)) then
Exit;
case (Random(57)) of
1,2: begin
PickUpMouse;
Boredhuman;
end;
4: begin
GameTab(1 + Random(11));
end;
17: begin
MMouse(Random(MSX2), Random(MSY2), 15, 15);
end;
21: begin
HoverSkill('Mining',false);
GameTab(1 + Random(13));
Wait(1000+ random(600));
Gametab(4);
MMouse(Random(MSY1), Random(MSX1), 15, 15);
end;
28: begin
GameTab(1 + Random(13));
Wait(1000+ random(600));
Gametab(4);
end;
34: begin
HoverSkill('Woodcutting', False);
gametab(4);
end;
39: begin
case (Random(5)) of
1: Typesend('cutting!');
2: Typesend('.!?@#$%^&*()');
4: Typesend('bored');
5: Typesend('LALALALALALA');
end;
end;
end;
end;
function CheckAxe: Boolean; // Sumilion
begin
if LoggedIn then
begin
GameTab(4);
dtmAxes[1] := DTMFromString('78DA639CCEC4C0F09401051485F1318800694' +
'620FE0F048C4B806AEEA2AA718E4864E082AA0101C6C54035F751' +
'D5D887C6A1AA590A547313558D4B740A8A1A00CFA10E03');
dtmAxes[2] := DTMFromString('78DA6374606060686440014D497C0C22409A1' +
'188FF0301A337905187AAC6C6D786810BAA0604187D804415AA1A' +
'7B7F7B5435BE40A21C558D73B0338A1A00C1660AA8');
dtmAxes[3] := DTMFromString('78DA633CC4C4C010C0C8800C5A53F81852803' +
'448F43F10309E05AAF14155636111CCC0055503028CE7816A5C51' +
'D5D839C4A2AA3981A9C6C52D0D450D0061FC0C64');
dtmAxes[4] := DTMFromString('78DA63CC636260D8C3C8800C5A53F81852803' +
'448F43F10305602D5EC4055939B9ACAC0055503028CD540351B51' +
'D594E5E5A2AA29C154D3545989A20600C3BC0E32');
dtmAxes[5] := DTMFromString('78DA63DCCDC4C0B09791011974660831FC07D' +
'220D1FF40C07800A86623AA1A882C8C04D23B806A4E1150B30DA8' +
'E6380135BB806A761150B39708F7EC07AAD9815F0D00F3891069');
dtmAxes[6] := DTMFromString('78DA63EC626060086140016DA97C0C22409A1' +
'188FF0301E33420C307558D97A5220317540D08304E051201A86A' +
'DCCCE451D54C07129EA86AFC6C5450D40000D77E0AA2');
GameTab(5);
for WieldAxe := 1 to 7 do
begin
if(WieldAxe = 7)then
Break;
if(FindDtm(dtmAxes[WieldAxe], x, y, MIX1, MIY1, MIX2, MIY2))then
Break;
end;
GameTab(4);
for InvAxe := 1 to 7 do
begin
if(InvAxe = 7)then
Break;
if(FindDtm(dtmAxes[InvAxe], x, y, MIX1, MIY1, MIX2, MIY2))then
Break;
end;
if(InvAxe = 7)and(WieldAxe = 7)then
begin
Result := False;
Writeln('No axe was found');
GetAxe;
end;
if((InvAxe - WieldAxe) < 0)then
EquipAxe := False
else
EquipAxe2 := True;
case Min(WieldAxe, InvAxe) of
1: WriteLn('Using Rune axe');
2: WriteLn('Using Addy axe');
3: WriteLn('Using Mith axe');
4: WriteLn('Using Steel axe');
5: WriteLn('Using Iron axe');
6: WriteLn('Using Bronze axe');
end;
Result := True;
end;
end;
procedure SetupAutoResponder;
var
HowManyQuestions : integer;
begin
HowManyQuestions := 3;
SetArrayLength(QnR, HowManyQuestions);
QnR[0][0] := ['wc lvl', 'woodcutting?', 'wc?', 'wc lvls']; //Questions
QnR[0][1] := [IntToStr(Players[CurrentPlayer].Integers[2]), 'my wc lvl is'+IntToStr(Players[CurrentPlayer].Integers[2]), IntToStr(Players[CurrentPlayer].Integers[2])+':D']; //Answers
QnR[1][0] := ['hi', 'hey', 'hiya', 'hello', 'elo', 'wassup', 'sup']; //Questions
QnR[1][1] := ['hey', 'hello', 'hi', 'hiya', 'ello', 'helo']; //Answers
QnR[2][0] := ['bye', 'bibi', 'cya', 'm goin', 'm leavin']; //Questions
QnR[2][1] := ['bibi', 'cya', 'bye', 'okay', 'see ya', 'later']; //Answers
SetArrayLength(QnR, Length(QnR));
end;
Procedure WalkToOak;
begin
if Location('bank')then
begin
if (not (LoggedIn)) then
Exit;
SetAngle(True);
SetRun(True);
Wait(750);
GameTab(4);
begin
if not(RadialRoadWalk(FindVarrockRoadColor, 50, 90, 70, 0, 1))then Writeln('Walk # 1 messed up');
if not(RadialRoadWalk(FindVarrockRoadColor, 80, 100, 50, 0, 1))then Writeln('Walk # 2 messed up');
if not(Location('road'))then
Writeln('Walking messed up');
LoadRoad2DDTM;
if DTMRotated(Road2DDTM, x, y, MMX1, MMY1, MMX2, MMY2)then
begin
Mouse(x, y, 3, 3, True);
FFlag(2);
end;
end;
end;
end;
procedure BankOak;
var
P: TPoint;
A: Extended;
begin
if (not (LoggedIn)) then
Exit;
if (FindSymbol(x, y, 'Bank')) then
SetAngle(True);
SetRun(True);
Wait(750);
GameTab(4);
if not(RadialRoadWalk(FindVarrockRoadColor, 230, 280, 75, 1, 1))then Writeln('Walk # 1 messed up');
if not(Location('bank'))then
Writeln('Walking messed up');
begin
CheckForAllRandoms;
SetupAutoResponder;
If FindBankers(P, A) Then // wizzup?
Begin
Mouse(P.x, P.y, 0, 0, True);
FTWait(1);
FFlag(0);
OpenBankFast('veb');
Deposit(2,28,True)
Wait(800 + Random(200));
CloseBank;
End;
OakLogsBanked := OakLogsBanked + 1;
Inc(ReportVars[1]);
end;
end;
procedure BankOakAxeBroken;
var
P: TPoint;
A: Extended;
begin
if (not (LoggedIn)) then
Exit;
SetAngle(True);
SetRun(True);
Wait(750);
GameTab(4);
CheckForAllRandoms;
SetupAutoResponder;
if not(RadialRoadWalk(FindVarrockRoadColor, 230, 280, 75, 1, 1))then Writeln('Walk # 1 messed up');
if not(Location('bank'))then
Writeln('Walking messed up');
begin
CheckForAllRandoms;
SetupAutoResponder;
If FindBankers(P, A) Then // wizzup?
Begin
Mouse(P.x, P.y, 0, 0, True);
FTWait(1);
FFlag(0);
OpenBankFast('veb');
Deposit(1,28,True)
Wait(800 + Random(200));
FixBank;
GetAxe;
End;
OakLogsBanked := OakLogsBanked + 1;
Inc(ReportVars[1]);
end;
end;
Procedure checkaxeoak;
begin
gametab(4);
if (FindDTM(BrokenDTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteLn('Broken axe =(');
BankOakAxeBroken;
Checkaxe;
end;
WalkToOak;
end;
Procedure WaitWhileChopping;
Var IMark : Integer;
Begin
MarkTime(IMark);
If Not (LoggedIn) Then Exit;
Repeat
CheckForAllRandoms;
SetupAutoResponder;
AntiBan;
SetupAutoResponder;
If InvFull Then Break;
If FindDead Then Break;
Until(TimeFromMark(IMark) > 6500 + Random(2000));
end;
procedure ChopTheOak;
var
i, x, y : integer;
OakTreeColor: array[0..3] of Integer;
begin
if Location('road')then
begin
OakTreeColor[0] := 6464409;
OakTreeColor[1] := 2195310;
OakTreeColor[2] := 1715244;
OakTreeColor[3] := 11818;
repeat
if not Loggedin then Exit;
for i := 0 to 3 do
begin
if(FindEnt(x, y, false))then break;
if (FindObjCustom(X, Y, ['ak', 'Oak'], [OakTreeColor[i]], 3)) then
begin
Mouse(x, y, 3, 3, True);
GameTab(4);
WaitWhileChopping;
if FindBlackChatMessage('have an axe') then checkaxeoak;
end;
end;
until (invfull);
OakLogsChopped := OakLogsChopped + 28;
ReportVars[1] := ReportVars[1] + 28;
SendSRLReport;
end;
end;
procedure Proggie;
begin
ClearDebug;
WriteLn('| =================================');
WriteLn('| Varrock East Chopper + Banker ');
WriteLn('| =================================');
WriteLn('| ~BOBFM~ ');
WriteLn('|-----------------------------------');
WriteLn('|> Worked for '+(TimeRunning));
WriteLn('|> Chopped '+IntToStr(OakLogsChopped)+' Logs! ');
WriteLn('|> Banked '+IntToStr(OakLogsBanked)+' Loads! ');
WriteLn('| =================================');
WriteLn('| POST PROGRESS REPORT!!! ');
WriteLn('Using ' +IntToStr(HowManyPlayers) + ' Players');
SendSRLReport;
SRLRandomsReport;
end;
begin
SRLId := SRLStatsID;
SRLPassword := SRLStatsPW;
SetupSRL;
SetupDTMS;
ScriptID := '1065';
ActivateClient;
DeclarePlayers;
begin
GetApplication.Minimize;
if (not (LoggedIn)) then
LoginPlayer;
checkaxe;
repeat
repeat
if(Location('bank'))then
WalkToOak;
ChopTheOak;
Proggie;
BankOak;
Proggie;
until (OakLogsBanked >= (Players[CurrentPlayer].Integers[0])) or (not (LoggedIn));
if (not (LoggedIn)) then
NextPlayer(False);
until (False);
end;
end.——————————————————
<!– END TEMPLATE: formanswers –>