SRL Archive - Archive

rogeruk - SRL Member Application Form


rogeruk

2007-08-31 16:11:18

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

What is the meaning to life?


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


Programming Knowledge
VB,PHP

Other Communitys


How Long have You Played Runescape
Since RS1 (on and off)

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

Ive been around SCAR scripting for quite some time, when Kaitnieks made SCAR 2.03.

Most of my scripting didn't include anything near of what is required now due to the no anti randoms in RS1. When Jagex introduced their anti macro systems (recording mouse click patterns, color clicking) i along with around 200+ people were banned (due to silent mouse). Since then i have been working my way back up, learning the new scripting standards and practices.

I have always had the general interest of scripting. I created a OCR for Dark-Future.org (anti scripting checks), which was some time ago tho.

Thats pretty much it i think.

Thanks,
Rogeruk

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

{=========================================================================]
[ ~Rogeruk's Draynor Oak Banker~ ]
[ ~Version: 2.5~ ]
[=========================================================================]
|~Description: |
| A script that chops and banks oaks at Draynor | |
|~Instructions: |
| 1. Set the Runescape brightness to V-bright, |
| 2. Set the Runescape quality to LOW, |
| 3. Need SCAR version 3.11 |
| 4. Need SRL version 4. |
| 5. Setup Lines 35-52 |
| 6. All players must be in bank |
| 7. Start with a axe in your first inventory slot or wielded. |
|~Features: |
| AntiBan |
| AntiRandoms |
| Ent Finding |
[=========================================================================]
|-Thanks to: |
| -SRL Team |
| -SonOfSheep(OakAnnihilator - Bank/Walking procedure) |
[=========================================================================}

program New;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/WoodCutting.scar}

var
success,x,axedtm,users,y,oaklogdtm,aoaklogs,trys:Integer;
CurrentWCLevel,TotalLoadsC,TotalOaks,starttime:Integer;
oakexp: extended;

const
YourSRLId = '';
YourSRLpass = '';
Debug = false;

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

Players[0].Name := ''; //Account's name
Players[0].Pass := ''; //Account's pass
Players[0].Nick := ''; //Nick 3-4 letters (NO Caps!)
Players[0].Loc := 'Bank'; //At Bank or Tree?
Players[0].Skill := 'Woodcutting'; //Skill
Players[0].Active := True; //Active?

Players[1].Name := ''; //Account's name
Players[1].Pass := ''; //Account's pass
Players[1].Nick := ''; //Nick 3-4 letters (NO Caps!)
Players[1].Loc := 'Bank'; //At Bank or Tree?
Players[1].Skill := 'Woodcutting'; //Skill
Players[1].Active := True; //Active?

NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;

Procedure BMP;
begin
oaklogdtm := DTMFromString('78DA63CC63626078CA8002CA632C187418191' +
'88088E13F10302601D5DC6540038C482490AE02AA794D404D2A50' +
'CD07026ACA806A6EE1570300C22C0BE9');
axedtm := DTMFromString('78DA634C616060706640010E0E09609A11CA6' +
'74C07121EA86A92843950D5C40009475435D9FEBCA86AC2804424' +
'AA9AAA682C6A82D1DCA3C780AA261ED3AE690502286A00B843088' +
'2');
end;

procedure Setup;
begin
SetupSRL;
SetupWoodcutting;
ScriptID := '261';
DeclarePlayers;
SRLID := YourSRLId;
SRLPassword := YourSRLPass;
BMP;
if (SRLID = '') or (SRLPassword = '') then
begin
ClearDebug;
Writeln('SRL Stats ID not found. Please register.');
Wait(1000);
Writeln('Loading registration page...');
Wait(1000);
OpenWebPage('http://stats.srl-forums.com/index.php?action=register');
TerminateScript;
end;
ClearDebug;
end;

procedure PlayerReport;
var
i : Integer;
Active : String;
begin
Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
Writeln(' ');
for i := 0 to HowManyPlayers - 1 do
begin
if Players[i].Active=True then Active:='T' else Active:='F';
Writeln ( IntToStr(i) + ' : '
+Players[i].Nick+' = '
+Active+' - '
//+IntToStr(Players[i].Worked)+' mins. '
+'Oaks chopped: '+IntToStr(Players[i].Integers[0])+'. '
+'Loads: '+IntToStr(Players[i].Integers[1])+'. '
+'Location: '+Players[i].Loc);
end;
Writeln(' ');
Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
end;

procedure ProgressReport;
begin
if not LoggedIn then Exit;
oakexp:=37.5*TotalOaks;
Writeln(' ');
Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
Writeln('| Rogeruks Oak Banker 2.5');
WriteLn('| ' + Players[CurrentPlayer].Name+'.');
Writeln('| Woodcutting Level: ' + IntToStr(CurrentWCLevel));
Writeln('| Worked for: ' + TimeRunning);
Writeln('| Banked: ' + IntToStr(TotalLoadsC) + ' times.');
Writeln('| Chopped: ' + IntToStr(TotalOaks) + ' oaks in total');
Writeln('| Total EXP: ' + FloatToStr(oakexp));
Writeln('[-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=]');
Writeln(' ');
Players[CurrentPlayer].Integers[0]:= 0 + Players[CurrentPlayer].Integers[0] + TotalOaks;
Players[CurrentPlayer].Integers[1]:= 0 + Players[CurrentPlayer].Integers[1] + TotalLoadsC;
PlayerReport;
end;

function CountItemDTMA(DTM: Integer): Integer;//Based off of the
var //one in srl for bmps
i, x, y: Integer;
TB: Tbox;
begin
if not LoggedIn then Exit
GameTab(4);
for i := 1 to 28 do
begin
TB := InvBox(i);
if ExistsItem(i) then
if FindDTM(DTM, x, y, TB.x1, TB.y1, TB.x2, TB.y2) then// Thanks 4 the input
Inc(Result);
end;
end;

Procedure RotateOrigin(RotAng : Double; x, y : Double; Var Nx, Ny : Double);
Var
SinVal : Double;
CosVal : Double;
Begin
SinVal := Sin(RotAng);
CosVal := Cos(RotAng);
Nx := x * CosVal - y * SinVal;
Ny := y * CosVal + x * SinVal;
End;

//--------------------------------------------------------------------------//
//----[ Rotate - Rotates x,y around ox, oy ]---->
//--------------------------------------------------------------------------//
Procedure Rotate(RotAng : Double; x, y, ox, oy : Double; Var Nx, Ny : Integer);
var
newX, newY : double;
Begin
RotateOrigin(RotAng, x - ox, y - oy, newx, Newy);
Nx := round(Newx + ox);
Ny := round(Newy + oy);
End;

Function NoContinueOn: Boolean;
var i, P: Integer;
Begin
P := 0;
For i:=0 to HowManyPlayers - 1 do
Begin
If(Players[i].Active = False) Then
P := P + 1;
end;
If(P = HowManyPlayers) Then
Result := True;
end;

Procedure NoMorePlayers;
begin
if(NoContinueOn = True) then
begin
WriteLn(TheTime + ' All players are inactive.');
SendSRLReport;
TerminateScript;
end;
end;

function FindAxeA: Boolean; //Modded SRL version
var
InvAxe, WieldAxe, Ix, Iy, i: Integer;
dtmAxes: array[0..6] of Integer;
begin
if LoggedIn then
begin
GameTab(4);
dtmAxes[1] := DTMFromString('78DA639CCEC4C0F09401051485F1318800694' +
'620FE0F048C4B806AEEA2AA718E4864E082AA0101C6C54035F751' +
'D5D887C6A1AA590A547313558D4B740A8A1A00CFA10E03'); //rune
dtmAxes[2] := DTMFromString('78DA6374606060686440014D497C0C22409A1' +
'188FF0301A337905187AAC6C6D786810BAA0604187D804415AA1A' +
'7B7F7B5435BE40A21C558D73B0338A1A00C1660AA8'); //addy
dtmAxes[3] := DTMFromString('78DA633CC4C4C010C0C8800C5A53F81852803' +
'448F43F10309E05AAF14155636111CCC0055503028CE7816A5C51' +
'D5D839C4A2AA3981A9C6C52D0D450D0061FC0C64'); //mith
dtmAxes[4] := DTMFromString('78DA632C626260B8CD80026A8A8B195881342' +
'310FF0702C632A09A7BA86AB24439C1342394CF9805547303554D' +
'5E101FAA9A14A09AF7A86A2AA351D50000921B0CE2'); //steel
dtmAxes[5] := DTMFromString('78DA63F46762605067644006413E3E0CAC401' +
'A24FA1F081843806A5451D540646124907607AA5121A0C601A8C6' +
'86801A17A01A6B026A5C816A74F0AB0100F37A07D5');
{:= DTMFromString('78DA63BCC9C4C0309191010498182020C6859' +
'34103488344FF0301E353A04C2F230332F0707161E082AA0101C6' +
'0740356DA86A22838351D5BC00AAE94655932ACA89AAE639A6394' +
'1DEDE286A00B1F90F6D');} //iron
dtmAxes[6] := DTMFromString('78DA63EC626060086140016DA97C0C22409A1' +
'188FF0301E33420C307558D97A5220317540D08304E051201A86A' +
'DCCCE451D54C07129EA86AFC6C5450D40000D77E0AA2'); //bronze
GameTab(5);
for WieldAxe := 1 to 7 do
begin
if(WieldAxe = 7)then
Break;
if(FindDtm(dtmAxes[WieldAxe], Ix, Iy, 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], Ix, Iy, MIX1, MIY1, MIX2, MIY2))then
Break;
end;

if(InvAxe = 7)and(WieldAxe = 7)then
begin
Result := False;
Writeln('No axe was found.');
for i := 0 to 6 do
FreeDtm(dtmAxes[i]);
Exit;
end;
if((InvAxe - WieldAxe) < 0)then
EquipAxe := False
else
EquipAxe := 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;
for i := 1 to 6 do
FreeDtm(dtmAxes[i]);
end;
end;

procedure checkaxe;
begin
if not LoggedIn then Exit;
if(FindAxeA = false)then
begin
writeln('No axe. Logging out');
Players[CurrentPlayer].Active := False;
Logout;
Exit;
end;
end;

function FindObjExA(var x, y: Integer; ObjText: string; x1, y1, x2, y2, Color,
tol, MinXDist, MinYDist, WaitPerCheck: Integer; Spiral: Boolean): Boolean;
var
Points: TPointArray;
I, Ci, n: Integer;
begin
if (Spiral) then
FindColorsSpiralTolerance(x, y, Points, Color, x1, y1, x2, y2, tol)
else
FindColorsTolerance(Points, Color, x1, y1, x2, y2, tol);
ci := 0;
n := GetArrayLength(Points);
for I := 1 to n - 1 do
begin
if (Distance(Points[ci].x, 0, Points[i].x, 0) >= MinXDist) and
(Distance(0, Points[ci].y, 0, Points[i].y) >= MinYDist) then
ci := I
else
begin
Points[I].x := 0;
Points[I].y := 0;
end;
end;
for i := 0 to n - 1 do
begin
if (Points[i].x <> 0) then
begin
MMouse(Points[i].x, Points[i].y, 0, 0);
Wait(WaitPerCheck); //adjust wait length for computer speed
if (IsUpText(ObjText)) then
begin
Result := True;
Break;
end;
end;
end;
if (Result) then
begin
x := Points[i].x;
y := Points[i].y;
end;
end;

procedure SOSAntiBan;
begin
case random(30) of
0 : FTWait(4+random(2));
1 : FTWait(4+random(2));
2 : FTWait(4+random(2));
3 : FTWait(4+random(2));
4 : HoverSkill('woodcutting',false);
5 : FTWait(4+random(2));
6 : FTWait(4+random(2));
7 : HoverSkill('woodcutting',false);
8 : FTWait(4+random(2));
9 : MMouse(MSX1, MSY1, MSX2, MSY2);
10 : FTWait(4+random(2));
11 : FTWait(4+random(2));
12 : HoverSkill('woodcutting',false);
13 : FTWait(4+random(2));
14 : FTWait(4+random(2));
15 : FTWait(4+random(2));
16 : FTWait(4+random(2));
17 : MMouse(MSX1, MSY1, MSX2, MSY2);
18 : FTWait(4+random(2));
19 : FTWait(4+random(2));
20 : FTWait(4+random(2));
else
FTWait(4+random(2))
end;
end;

procedure Counting;
begin
if not LoggedIn then Exit;
aoaklogs:=CountItemDTMA(oaklogdtm);
writeln('Count: ' +IntToStr(aoaklogs));
end;

Procedure OpenBankBooth;
var
x, y, BoothDTM, QBankDTM : integer;
z : extended;
begin
//HaveAxe := CheckAxe;
QBankDTM := DTMFromString('78DA63FCCBC0C070890105FCFFFF1F4C33023' + '11788E603B2AEE15603A69F301056F31C489C23A04601C8BACC80' + '15C0D59803596719D00D4255E38FE9E6D810775435518C187EC73' + '0470BC8BA45C0CD6C44A879C880E1667435001FFF2803');
BoothDTM := DTMFromString('78DA6364666460A8634001D5B9610C22401A2' + '8C3F01F08185981AC62543556A6A60C1A503520C0F8074814A0AA' + 'F1B7E1809B0356C3C348580D1FA67BEA0A2251D5FC021235A86A5' + 'A4AC231D5B4A3AA494888467533C83DAD686A224251D53001597D' + '04DCFC9381B01A3E22CC6103B2BA08B8E73F90E8C4AF060048511' + 'CE0');
x:= 600
y:= 100
if findDTMRotated(BoothDTM, x, y, 0, 0, 514, 336, 0, 360, 0.5, z)then
begin
mouse(x, y, 10, 10, false);
wait(500 + random(500));
if findDTM(QBankDTM, x, y, x - 200, y - 200, x + 200, y + 200)then
mouse(x - 20, y - 2, 80, 4, true);
CountFlag(0);
wait(1000 + random(1500));
if not getcolor(249, 40) = 2070783 then
exit;
status('Found booth successfully');
begin
Counting;
begin
Deposit(2, 28, 2);
end;
end;
repeat
CloseBank;
wait(500 + random(500));
until (not BankScreen);
success := success + 1
end
else
begin
writeln('Omg error with finding booth!');
aoaklogs:=0;
OpenBankBooth;
end;
end;

function LoadOakDTM(tolerancelevel : integer) : integer;
begin
case tolerancelevel of
1:Result := DTMFromString('78DA635CC1C4C010CB00068C108A4125808D8' +
'10BCAFF0F048CDB816AA270AB018BAF04AAF120A0E618508D2B7E' +
'3500B3D90A33');
2:Result := DTMFromString('78DA635CCCC4C090C400068C108A412E41988' +
'10BCAFF0F048C4B816A7C71AB018B6F00AA8927A0E620508D377E' +
'3500C7850A8F');
3:Result := DTMFromString('78DA635CC1C4C010CB00068C108A4125808D4' +
'104CAFF0F048CDB816AA270AB018BAF04AAF120A0E618508D2B7E' +
'3500BE290A5B');
4:Result := DTMFromString('78DA635CCCC4C090C400068C108A412E41984' +
'104CAFF0F048C4B816A7C71AB018B6F00AA8927A0E620508D377E' +
'3500D1D50AB7');
5:Result := DTMFromString('78DA635CC1C4C010CB00068C108A4125808D4' +
'112CAFF0F048CDB816AA270AB018BAF04AAF120A0E618508D2B7E' +
'3500C3510A6F');
6:Result := DTMFromString('78DA635CCCC4C090C400068C108A412E41984' +
'112CAFF0F048C4B816A7C71AB018B6F00AA8927A0E620508D377E' +
'3500D6FD0ACB');
7:Result := DTMFromString('78DA635CC1C4C010CB00068C108A4125808D4' +
'119CAFF0F048CDB816AA270AB018BAF04AAF120A0E618508D2B7E' +
'3500CDA10A97');
8:Result := DTMFromString('78DA635CCCC4C090C400068C108A412E41984' +
'119CAFF0F048C4B816A7C71AB018B6F00AA8927A0E620508D377E' +
'3500E14D0AF3');
end;
end;

function OakDtmTest(var x, y : integer; whatangle : extended) : boolean;
var
oakmm:Integer;
begin
wait(200+random(150));
{oakmm:= DTMFromString('78DA635CC3C4C010C400062C108AC155570A4' +
'C3302F17F20609C0754E3089163C5A2064C83D44443D8EC503111' +
'392114350045D6084B');}
oakmm := DTMFromString('78DA635CC9C4C010C400062C108A21CD9C970' +
'128CAC008C4FF8180710A90E78CAAE6F9B737609A11CA07AB0922' +
'424D1C7E3500020810CE');
if FindDTMRotated(oakmm, x, y, MMX1, MMY1, MMX2, MMY2, 340, 380, 0.5, WhatAngle)then
begin
writeln('Found !!');
result := true;
end;
end;

function FindOakDtms(var x, y : integer; whatangle : extended) : boolean;
var
i : integer;
begin
if not LoggedIn then Exit
result := false;
for i := 1 to 8 do
begin
if FindDTMRotated(LoadOakDTM(i), x, y, MMX1, MMY1, MMX2, MMY2, 340, 380, 0.5, WhatAngle)then
begin
result := true;
writeln('Found using dtm with a tolerance level of ' + inttostr(i));
break;
end;
wait(150 + random(50));
end;
end;

Procedure WalkToBank;
var
x, y, xs, ys, BankersDTM, trytime : integer;
z : extended;
resetcolors : boolean;
Label Retry;
begin
if not LoggedIn then Exit;
Status('Banking');
trys := trys + 1;
BankersDTM := DTMFromString('78DA630C676260F06540017FFE30318800694' + '61806A909C5AD8601A626928039FE44A80906AA094255931E9FC0' + 'A0816C5728504D1C7E3500D5740EF0');
Retry :
MakeCompass('N');
SetRun(true);
wait(500 + random(500));
if random(3) = 0 then
SetRun(true);
MarkTime(trytime);
while(not FindDTMRotated(BankersDTM, x, y, 556, 0, 764, 179, 0, 360, 0.5, z)) and (timefrommark(trytime) < 30000) do
begin
if not LoggedIn then
exit;
wait(50)
status('Error, can''t find bank. Resetting minimap to fix this')
case random(2)of
0 : Makecompass('S');
1 : MakeCompass('E');
2 : MakeCompass('W');
end
wait(500 + random(300))
MakeCompass('N');
wait(1000 + random(500));
FindNormalRandoms;
end;
if timefrommark(trytime) > 10000 then
begin
if resetcolors then
begin
Players[CurrentPlayer].Active := false;
resetcolors := false;
Logout;
Writeln('Relogin failed. Player "' + players[currentplayer].Name + '" has been lost.');
exit;
end
else
begin
writeln('Attempting Relogin to fix minimap colors.');
resetcolors := true;
Logout;
LoginPlayer;
Goto Retry;
end;
end;
wait(200 + random(200));
Rotate(z, x + 12, y + 10, x, y, xs, ys);
Mouse(xs, ys, 3, 3, true);
makecompass('W');
HighestAngle;
CountFlag(0);
freedtm(BankersDTM);
end;

Procedure OpenBankSheepStyle;
begin
if not LoggedIn then Exit;
WalkToBank;
wait(100+random(125));
OpenBankBooth;
//Bank;
end;

Procedure WalkToOak2;
var
xx, yy:integer;
whatangle : extended;
begin
if not LoggedIn then Exit;
SetRun(true);
Status('Walking: Bank -> Oak tree 2');
makecompass('N');
if(OakDtmTest(xx, yy, WhatAngle))then
begin
Rotate(whatangle, xx, yy, xx, yy, xx, yy);
MouseFindFlag(xx, yy, 1, 1);
wait(300+random(350));
CountFlag(0);
end else
begin
writeln('Cannot find oaks!!');
terminatescript;
end;
end;

Procedure WalkToOak;
var
xx, yy, TryTime : integer;
found : boolean;
whatangle : extended;
begin
if not LoggedIn then Exit;
SetRun(true);
Status('Walking: Bank -> Oak tree');
//AntiRandom;
makecompass('N');
MarkTime(trytime);
found:=false;
while(not FindOakDtms(xx, yy, WhatAngle)) and (timefrommark(trytime) < 10000) do
begin
if not LoggedIn then
exit;
//FindFastRandoms;
wait(50)
status('Error, can''t find oaks. Resetting minimap to fix this');
keydown(VK_LEFT);
wait(random(1000));
keyup(VK_LEFT);
wait(random(1000));
keydown(VK_RIGHT);
wait(random(1000));
keyup(VK_RIGHT);
wait(1100 + random(300))
MakeCompass('N');
wait(500 + random(1000));
end;
if timefrommark(trytime) < 10000 then
found := true;
if not found then
begin
Logout;
Players[CurrentPlayer].Active := False;
Writeln('Got lost while trying to find oak tree on map.');
exit;
end;
//FindFastRandoms;
writeln('Found oaks in ' + inttostr(timefrommark(trytime)) + 'ms.');
Rotate(whatangle, xx, yy, xx, yy, xx, yy);
MouseFindFlag(xx+10, yy, 1, 1);
wait(200+random(350));
//CountFlag(0);
while FlagPresent do wait(700);
end;

function FindEntA(fx, fy: Integer; AvoidWhenFound: Boolean): Boolean;
var
arUpTextEntColorPoints: TPointArray;
x, y, tcts: Integer;
begin
GetMousePos(x, y);
if(x <> fx)or(y <> fy)then
MMouse(fx, fy, 0, 0);
if(IsUpText('Chop'))then
begin
tcts := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.4, 0.4);
FindColorsTolerance(arUpTextEntColorPoints, 51657, 80, 6, 127, 20, 5);
Result := Length(arUpTextEntColorPoints) > 10;
ColorToleranceSpeed(tcts);
end;
if(Result)then
begin
WriteLn('Ent Found!!');
if(AvoidWhenFound)then
begin
Writeln('Waiting for it to go away.');
OpenBankSheepStyle;
WalkToOak;
wait(200+random(250));
EntsAvoided := EntsAvoided + 1;
end;
end;
end;

//--------------------------------------------------------------------------//
//----[ TreeAt - Checks for a large range of lum in area around xpos, ypos ]---->
//--------------------------------------------------------------------------//
function TreeAt(var xpos, ypos:integer) : boolean;
var cx, cy:integer;
h,s, l, ssmin, ssmax:extended;
begin
ssmax := 0;
ssmin := 100;
for cx := xpos - 2 to xpos + 2 do
for cy := ypos - 2 to ypos + 2 do
begin
ColortoHSL(getcolor(cx, cy), h, s, l);
if l > ssmax then ssmax := l;
if l < ssmin then ssmin := l;
end;
result := round(ssmax - ssmin) > 5;
end;

//--------------------------------------------------------------------------//
//----[ FindTreeMiddle - Find the middle of the tree at cx, cy and returns the radius ]---->
//--------------------------------------------------------------------------//
Procedure FindTreeMiddle(var cx, cy, radius :integer);
var UpX, DownX, UpY, DownY, count : integer;
begin
for count := 1 to 3 do
begin
UpX := cx;
DownX := cx;
repeat
UpX := UpX + 3;
until (not TreeAt(UpX, cy)) or (UpX > 515);
radius := UpX - cx;
cx := upx;
repeat
DownX := DownX - 3;
until (not TreeAt(DownX, cy)) or (DownX < 4);
cx := (UpX + DownX) div 2;
UpY := cy;
DownY := cy;
repeat
UpY := UpY + 3;
until (not TreeAt(cx, UpY)) or (UpY > 337);
if (UpY - cy) < radius then radius := UpY - cy;
repeat
DownY := DownY - 3;
until (not TreeAt(cx, DownY)) or (DownY < 4);
cy := (UpY + DownY) div 2;
end;
end;

function SLFindMiddleOfTree(var ax, ay: Integer; tColor: Integer): Boolean;
var rad, size : integer;
begin
if(FindColorSpiralTolerance(ax, ay, tColor, ax - 10, ay - 10, ax + 10, ay + 10, 5))and
(LoggedIn)then
begin
result := true;
FindTreeMiddle(ax, ay, size);
rad := random(360);
size := random(size) div 2;
Rotate(rad, ax+size, ay, ax, ay, ax, ay);
end;
end;

Function FindFastRandoms: Boolean; // By WT-Fakawi.
Var
i: Integer;
Begin
if not LoggedIn then Exit
For I := 1 To 11 Do
Begin
Case I Of
1: If FindDead Then
Result := True;
2: If FindMod Then
Result := True;
3: If FindMime Then
Result := True;
4: If FindMaze Then
Result := True;
5: If FindQuiz Then
Result := True;
6: If FindDemon Then
Result := True;
7: Begin
If NoGameTab Then
Begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Players[CurrentPlayer].Active := False;
Logout;
Exit;
End;
End;
8 : If RC THen
Result:=True;
9 : If FindFight Then
Begin
Result := True;
RunTo('W', False);
End;
10: If FindTalk Then
Result := True;
11: If FindCerter Then
Result := True;
End;
Wait(1);
End;
End;

procedure AntiRandom;
begin
if not LoggedIn then Exit;
FindTalk;
FindNormalRandoms;
FindFastRandoms;
FindLamp('Woodcutting');
SolvePinball;
end;

procedure ChopOak;
var
fx,fy,i,treegone,treecol:Integer;
begin
if not LoggedIn then Exit
if InvFull then exit;
status('Starting to look for oak tree');
MakeCompass('N');
wait(500+random(750));
If (FindObjExA(x,y,'Oak',37,50,402,331,4285541,0,5,5,300,false))then
begin
if(debug=true)then
writeln('Found the tree Obj');
SLFindMiddleOfTree(x,y,4285541);
FindFastRandoms;
if IsUpText('Oak')then
begin
fx := x;
fy := y;
MMouse(x,y,7,7);
FindEntA(x,y,true);
Mouse(x,y,0,0,true);
treecol:=getcolor(x,y);
if(debug = true)then writeln('Clicked tree');
wait(750+random(350));
FindEntA(x,y,true);
FindTalk;
FindFight;
end;
CountFlag(0);
MarkTime(i);
wait(100+random(80));
end;
while(FindColorSpiralTolerance(x,y,treecol,fx-12,fy-12,fx+12,fy+12,3)) and (TimeFromMark(i) < 7000 + random(2000)) and (InvFull = false)do
begin
status('Chopping Tree..');
FindFight;
FindEntA(x,y,true);
wait(300+random(350));
AntiRandom;
SOSAntiBan;
end;
MarkTime(treegone);
repeat
status('Waiting for tree to respawn');
FTWait(4+random(2));
FindFight;
AntiRandom;
until(timefrommark(treegone) > 6200) or InvFull or (FindColorSpiralTolerance(x,y,treecol,fx-12,fy-12,fx+12,fy+12,3));
end;

begin
Setup;
ActivateClient;
marktime(starttime);
if not LoggedIn then LoginPlayer;
HighestAngle;
checkaxe;
CurrentWCLevel := GetSkillLevel('Woodcutting');
repeat
WalkToOak;
repeat
ChopOak;
until (InvFull) or (not LoggedIn)
OpenBankSheepStyle;
TotalLoadsC := TotalLoadsC + 1;
TotalOaks:= TotalOaks + aoaklogs;
Banks := Banks + 1;
ReportVars[0] := ReportVars[0] + 27;
ProgressReport;
SRLRandomsReport;
aoaklogs:=0;
checkaxe;
WalkToOak;
wait(50+random(120));
if(not LoggedIn) and (NoContinueOn = false)then
begin
NextPlayer(Players[CurrentPlayer].Active);
TotalLoadsC:=0;
TotalOaks:=0;
aoaklogs:=0;
end;
until(NoContinueOn);
end.

——————————————————
<!– END TEMPLATE: formanswers –>

Killerdou

2007-08-31 16:43:54

if credits are all correct and if you can fix the standards i guess its alright:)

Just Kidding

2007-08-31 17:27:42

I remember your name from somewhere. Maybe kaits. Who knows?

rogeruk

2007-08-31 17:35:41

Am i allowed to post here?
If so, i was on kait's forum yea.

Credits should be all good as far as i can tell.

Smartzkid

2007-08-31 17:36:24

Holding my vote.

Better standards would be nice.

procedure SOSAntiBan;
begin
case random(30) of
0 : FTWait(4+random(2));
1 : FTWait(4+random(2));
2 : FTWait(4+random(2));
3 : FTWait(4+random(2));
4 : HoverSkill('woodcutting',false);
5 : FTWait(4+random(2));
6 : FTWait(4+random(2));
7 : HoverSkill('woodcutting',false);
8 : FTWait(4+random(2));
9 : MMouse(MSX1, MSY1, MSX2, MSY2);
10 : FTWait(4+random(2));
11 : FTWait(4+random(2));
12 : HoverSkill('woodcutting',false);
13 : FTWait(4+random(2));
14 : FTWait(4+random(2));
15 : FTWait(4+random(2));
16 : FTWait(4+random(2));
17 : MMouse(MSX1, MSY1, MSX2, MSY2);
18 : FTWait(4+random(2));
19 : FTWait(4+random(2));
20 : FTWait(4+random(2));
else
FTWait(4+random(2))
end;
end;

can be shortened to

procedure SOSAntiBan;
begin
case random(30) of
4, 7, 12 : HoverSkill('woodcutting',false);
9, 17 : MMouse(MSX1, MSY1, MSX2, MSY2);
else
FTWait(4+random(2))
end;
end;

Also, CurrentWCLevel isn't updated when you switch players; not good…

Santa_Clause

2007-08-31 19:48:25

It's a yes from me…

Tails111

2007-08-31 22:05:16

A lot of procedures where copied… but seeing the SRL Stats has run for 1 day +, anti-ban, antiRandoms, and multiplayer, I will vote yes,

The standards were good for the most part but near the end they started to reeally drop.

RAM

2007-09-01 00:15:55

I like it when people apply with a script that has a Script Id, and some stats…Even if it isn't perfect, it shows they have a pretty good understanding and are trying to improve their skills.

WhiteShadow

2007-09-01 00:33:07

The script is nice, overall. I voted yes. :)

gerauchert

2007-09-01 01:04:20

A yes from me as well ;)

Rikje

2007-09-01 02:02:52

Looks good :)
iam not a scripting standaard king either so its a yes from me ;)

WT-Fakawi

2007-09-01 06:23:33

Yes!

Santa_Clause

2007-09-01 07:01:39

Auto-accept?

n3ss3s

2007-09-01 07:11:04

Definite yes from me. And that object finding function is pretty sexy :D

EDIT: Im pretty sure SLFindMiddleOfTree and FindTreeMiddle are by Lorax?

Anyways, I take the SL there as credit ;)

rogeruk

2007-09-01 07:20:09

Thanks for support people.

Sorry for missing credits, FindObjExA, is SRL. I modified it to add some random x,y to the mouse but decided against it in the end.

the scar noob

2007-09-01 08:49:55

A yes from me to ;)
[OFFTOPIC]
Btw, what happened to Justkidding's status? de-memberdize?
[OFFTOPIC]

LordGregGreg

2007-09-01 09:28:49

yes from me.

conditional though, add in some standards so i don't think you are lazy or illiterate.


EquipAxe := False
semi colons!!!! babies!!!!
Wranaanagaaaaavg!

MasterKill

2007-09-01 10:17:44

i voted yes. script looks fine.

WT-Fakawi

2007-09-01 11:12:00

Innah.