OpenHearts
2008-08-06 17:41:12
OpenHearts - SRL Member Application Form
OpenHearts
What is the meaning to life?
Where you Referred to SRL? If yes, by whom?
Programming Knowledge
Other Communitys
How Long have You Played Runescape
Three years
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
After playing for two years and a bit, I had a runescape account which was level 112. Shortly after I had gained 100 cb, I noticed my friend gaining extreme amounts of Exp's overnight.
Long story cut short; I used this script, but shortly became banned, as I was already on a last chance appeal. I confess; I was addicted. However. This addiction has slowly over time grown into a passion for learning everything about SCAR and scripting. I want to make sure that I, and others; learn to use scripts in a sensible manner. Whether this be better anti-ban, or simply working with others to identify the best ways to go undetectable using SCAR and SRL.
I am self-motivated, and of course as I mentioned; very passionate about scripting.
Thank you for giving me the opportunity to prove not only to SRL members that I have what it takes, but me also.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
{========================\\\\\\\\\\\\\////////////=============================]
[ ]
[ ]
[ ####### ##### ##### ### ## ]
[ ## ## ## ## ## ## # ## ]
[ ## ## ###### ##### ## # ## ]
[ ## ## ## ## ## # ## ]
[ ####### ## ##### ## ### ]
[ ]
[ && && &&&& && &&&&& &&&& && ]
[ && && && &&&& && && && && ]
[ &&&&&&& &&&& && && &&&&& && &&& ]
[ && && && &&&&&&&& && && && && ]
[ && && &&&& && && && && && && ]
[ ]
[ ]
[ ]
[ Draynor Willow Chopzor ]
[ ]
[ ~~~Credits~~~ ]
[ Me of course, BH for his Ent finder and DDTM walking. ]
[ Mixster for fixing the only error I couldn't fix :P ]
[ ]
[=================================SETUP========================================] ]
[ 1. Set your Screen to 32 bit TRUE color. ]
[ 2. Set Usernames and Passwords. ]
[ 3. Drag Crosshair on RuneScape client. ]
[ 4. Make sure to start with an axe in your first inventory slot. ]
[ 5. Start in Draynor bank, preferably in first bank booth. ]
[ 6. If you set bank logs to TRUE, set drop random event items to FALSE. ]
[==============================================================================}
Program Willow Chopzor;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.Scar}
{.include SRL/SRL/Skill/Woodcutting.Scar}
{.include srl/srl/misc/users.scar}
const
SRLStatsID = ''; // Your SRL Stats ID
SRLStatsPW = ''; // Your SRL Stats Password
World = 11; //World S.M.A.R.T will load in
var Willow,x,y,LoadNumber,DroppedLogs,HP,HPTime,Banked,Dropped : Integer;
MT : LongInt;
ColorSign : string;
{******************************************************************************}
procedure SetUpPlayer;
begin
if not (LoggedIn) then
begin
LogInPlayer;
end;
if LoggedIn then
begin
SetAngle(true)
SetRun(True);
MakeCompass('N');
Wait(450 + Random(650));
end;
end;
{******************************************************************************}
function InFight: Boolean; //Credits to FrÕzÑ_§ÕµL for this.
begin
if not (LoggedIn) then
Exit;
if Players[CurrentPlayer].Integers[4] = 0 then
begin
Players[CurrentPlayer].Integers[4] := GetSkillInfo('hitpoints', False);
GameTab(4);
end else
if Players[CurrentPlayer].Integers[4] > HP then
if TimeFromMark(HPTime) >= 60000 then
begin
x := TimeFromMark(HPTime) - 60000;
MarkTime(HPTime);
DecEx(HPTime, x);
Inc(HP);
end;
if FindColor(x, y, 65280, 217, 129, 297, 209) then
begin
x := GetMMLevels('hp', ColorSign);
if x = -1 then
begin
Result := FindFight;
Exit;
end;
if (x < HP) then
begin
Result := True;
WriteLn('******** FOUND FIGHTING RANDOM ********');
WriteFileString(TheFile, '******** FOUND FIGHTING RANDOM ********' + Chr(13));
TakeScreen('Found Fight');
Inc(Fights);
MarkTime(HPTime);
HP := GetMMLevels('hp', ColorSign);
if HP = -1 then
HP := Players[CurrentPlayer].Integers[4];
end;
end;
end;
{******************************************************************************}
Function FindRandoms: Boolean;
begin
If not (LoggedIn) then Exit;
If FindNormalRandoms then Result:= True;
if FindInventoryRandoms then result := true;
if FindNonInventoryRandoms then result := true;
if (InFight) then
begin
Case Random(10) of
0: begin
TypeSend('ffs');
Wait(40+random(20));
end;
1: begin
TypeSend('F F S');
Wait(25+random(30));
end;
2: begin
TypeSend('>.>');
Wait(30+random(10));
end;
end;
RunTo('E', True)
FFlag(3);
Wait(150 + random(550));
if FindSymbol(x, y, 'fish') then
begin
mouse(x, y + 20, 6, 6, true);
Writeln('Found Fish Symbol - w00t :D');
FFlag(2);
end;
If FindDead then
begin
Writeln('LOL ur dead and u never got a funeral...');
LogOut;
Exit;
end;
If IsChatBlackTextAnyLine('have an axe') then
begin
Writeln('Broke axe - BLAST back to bob...');
LogOut;
Exit;
end;
If FindTalk then Result:= True
end;
end;
{******************************************************************************}
function EntFinderText(react: boolean): boolean;
var
EFX, EFY: integer;
begin
if (InvFull) or (not LoggedIn) then
Exit;
Result := FindColorTolerance(EFX, EFY, 388075, 80, 6, 127, 20, 30);
if (Result) and IsUpText('Chop') then
begin
if React then
begin
Mouse(x, y - 2, 0, 0, true);
EntsAvoided := EntsAvoided + 1;
end;
end;
end;
{******************************************************************************}
procedure LoadWillowDTM;
begin
Willow := DTMFromString('78DA6374666660E06262400651818A609A11C' +
'A67F405AA614655039385AB0904AA1122A0C60EA84682801A13A0' +
'1A41026A2C816A58F0AB01009FEE02D4');
end;
{******************************************************************************}
function GroundDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 849;
dtmMainPoint.y := 425;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 2778230;
dtmMainPoint.Tolerance := 5;
dtmSubPoints[0].x := 849;
dtmSubPoints[0].y := 425;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 2778230;
dtmSubPoints[0].Tolerance := 5;
dtmSubPoints[1].x := 854;
dtmSubPoints[1].y := 420;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2977660;
dtmSubPoints[1].Tolerance := 5;
dtmSubPoints[2].x := 844;
dtmSubPoints[2].y := 409;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976124;
dtmSubPoints[2].Tolerance := 5;
dtmSubPoints[3].x := 852;
dtmSubPoints[3].y := 420;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2977660;
dtmSubPoints[3].Tolerance := 5;
dtmSubPoints[4].x := 849;
dtmSubPoints[4].y := 426;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2779510;
dtmSubPoints[4].Tolerance := 5;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
{*****************************************************************************}
function BankDDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 878;
dtmMainPoint.y := 365;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 4539722;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 878;
dtmSubPoints[0].y := 365;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 4539722;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 869;
dtmSubPoints[1].y := 365;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4539722;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 872;
dtmSubPoints[2].y := 370;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 10218994;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 872;
dtmSubPoints[3].y := 360;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 4539722;
dtmSubPoints[3].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
{******************************************************************************}
procedure ProgressRep;
begin
ClearDebug;
Writeln('|| (Worked For : '+ (TimeRunning));
Writeln('|| Dropped ' + IntToStr(LoadNumber) + ' Loads ||');
Writeln('|| Chopped ' + IntToStr(Banked) + ' Loads ||');
Writeln('|| Avoided ' + IntToStr(EntsAvoided) + ' Ents ||');
Writeln('||-------------------------------------------------------||');
Writeln('|| Thanks for using OH Willow Chopzor ||');
SRLRandomsReport;
end;
{*****************************************************************************}
procedure CountWillows;
begin
LoadWillowDTM;
Willow:=Willow + ItemAmount('inv', 'dtm', Willow, []);
end;
{******************************************************************************}
procedure FindBrokenAxe;
var
T: integer;
begin
if not (LoggedIn) then Exit;
if TimeFromMark(T) < 1000 then Exit;
FindRandoms;
MarkTime(T);
if (FindBlackChatMessage('You do not')) then
begin
Writeln('Broken Axe, logging out.');
end;
end;
{******************************************************************************}
function WalkToWillows: Boolean;
var
GroundDTM: integer;
begin
if not (LoggedIn) then Exit;
SetRun(True);
GroundDTM := GroundDDTM;
if FindDTM(GroundDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X , Y, 8, 8, True);
WriteLn('Moving to willows now');
FFlag(0);
Result := True;
end else
if RadialWalk(FindWaterColor,150,250,72,4,4) then
begin
Writeln('DDTM failed, now using RW to go to willows');
Result := True;
end else
if FindSymbol(x, y, 'fish') then
begin
mouse(x, y + 20, 6, 6, true);
Writeln('Found Fish Symbol *Phew*');
FFlag(2);
Exit;
Result := False;
FreeDTM(GroundDTM);
if not (Result) then
begin
Writeln('Could not find willows using various methods, logging out')
players[currentplayer].Active := False;
Logout;
exit;
end;
end;
end;
{******************************************************************************}
function WalkToBank: Boolean;
var
BankDTM: integer;
begin
if not (LoggedIn) then Exit;
SetRun(True);
MakeCompass('N');
BankDTM := BankDDTM;
if FindDTM(BankDTM, X, Y, MMx1,MMy1,MMx2,MMy2) then
begin
Mouse(X, Y, 8, 8, True);
WriteLn('Going to bank');
FFlag(0);
Result := True;
end else
if RadialWalk(BankColor,24,39,53,3,3) then
begin
Writeln('DDTM failed, now using RW to bank');
Result := True;
end else
if FindSymbol(x, y, 'bank') then
begin
FindRandoms;
mouse(x, y, 2, 2, true);
Writeln('Found Bank Symbol');
FFlag(2);
Exit;
begin
Result := False;
FreeDTM(BankDTM);
if not (Result) then
begin
Writeln('Could not find bank using various methods, logging out')
Players[currentplayer].Active := False;
Logout;
exit;
end;
end;
end;
end;
{******************************************************************************}
procedure AntiBan;
begin
if(not(LoggedIn))then Exit;
if not IsUpText('Willow') or (TimeFromMark(MT) < 4500 + random(5000)) then
begin
case Random(13) of
0: begin
HoverSkill('Woodcutting', false);
wait(2200+Random(900));
end;
1: begin
HoverSkill('Woodcutting',false);
wait(2400+Random(600));
GameTab(4);
end;
2: begin
RandomRClick;
wait(500 + random(500));
GameTab(1 + random(10));
end;
3: begin
GameTab(1 + random(10));
wait(900 + random(600));
GameTab(1 + random(200));
end;
4: begin
IdleTime(1000 + Random(500), 480, 0.4);
Wait(500 + random(750));
end;
5: begin
RandomRClick;
wait(500 + random(600));
end;
end;
end;
end;
{******************************************************************************}
procedure ChopWillows;
var
x,y,TC,WCTime: Integer;
begin
MarkTime(WCTime);
Wait(4000+random(400))
begin
if not (LoggedIn) then Exit;
If (FindNormalRandoms) or (InvFull) then Exit;
Writeln('Cutting Willows');
repeat
FindBrokenAxe;
if (FindObjTPA(x, y, 4876128, 20, 2, 15, 25, 10, ['illow']))then
begin
if(IsUpText('illow'))then
Mouse(x, y, 0, 0, true);
EntFinderText(true);
FindObjTPA(x, y, 4876128, 20, 2, 25, 25, 10, ['illow'])
FindNormalRandoms;
FindBrokenAxe;
end;
repeat
Wait(900+random(240))
Until not IsUpText('Willow') or (InvFull);
FTWait(0);
FindNormalRandoms;
EntFinderText(true);
AntiBan;
Until InvFull or (TimeFromMark(WCTime) > 600000+random(60000));
end;
end;
{******************************************************************************}
procedure SRLstats;
begin
SetupSRL;
begin
SRLID := SRLStatsID;
SRLPassword := SRLStatsPW;
end;
end;
function Bank: Boolean;
begin
if not (LoggedIn) then Exit;
MakeCompass('N');
OpenBankFast('db');
Flag;
wait(500+random(500));
BankScreen;
FixBank;
wait(40+random(20))
Deposit(2, 28, true);
CloseBank;
Banked := Banked +1
begin
Result := True;
end;
end;
{******************************************************************************}
function IsDroppingStuck: Boolean;//Checks if dropping is stuck due clicking on willow and fixes :D
begin
If not LoggedIn then Exit;
if (IsUpText('willow logs -> willow logs')) then
GameTab(4);
Result := True;
end;
{******************************************************************************}
Procedure DropStuff;
var
WillowDTM : Integer;
i : Integer;
DropArr : Array of Integer;
begin
FindRandoms;
If not LoggedIn then Exit;
If (players[currentplayer].Booleans[0]=false) and (players[currentplayer].Booleans[1]=true) then
begin
LoadWillowDTM;
If FindDTM(WillowDTM,x,y,MIX1,MIY1,MIX2,MIY2) then
Begin
if (IsUpText('illow'))then
begin
Mouse(x,y,0,0,False);
ChooseOption('Drop');
IsDroppingStuck;
FindRandoms;
FreeDTM(WillowDTM);
Dropped := Dropped +1
end;
end;
end;
If (players[currentplayer].Booleans[0]=false) and (players[currentplayer].Booleans[1]=false) then
begin
FindRandoms;
DropArr:= [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28];
for i := 1 to 26 do
If ExistsItem(DropArr[i]) then
DropItem(DropArr[i]);
IsDroppingStuck;
DroppedLogs := DroppedLogs + 1
end;
end;
{******************************************************************************}
begin
SetupSRL;
SRLPlayerForm(True, ['Bank logs','Drop random event items'], ['Rounds to do'], [], []);
SmartSetupEx(World, True, True, False);
SetTargetDC(SmartGetDC);
ActivateClient;
Wait (1000+random(120));
repeat
SetUpPlayer;
repeat
WalkToWillows;
ChopWillows;
if InvFull and (players[currentplayer].Booleans[0]=false) then
begin
DropStuff;
ProgressRep;
end;
if InvFull and (players[currentplayer].Booleans[0]=true) then
begin
WalkToBank;
Bank;
ProgressRep;
end;
until (Players[CurrentPlayer].Integers[0] = Banked) or (Players[CurrentPlayer].Integers[0] = Dropped);
NextPlayer(Players[CurrentPlayer].Active);
until false;
end.
EDIT: If you deem my lack of posts a reason not to accept me, then I understand, however; please do not auto-deny me. At least take into consideration the information I have given, and then deny me :p
From: laurenssie0
I can't vote, but anyways, you need:
* DTMs / DDTMs Check!
* Decent complex working script. Little amount of procedures (18)
* FailSafes Check!
* MultiPlayer Check!
* Break out of potential endless loops Cannot find "break"
* Standards! Required to get people read your script. Check!
* RadialWalk / DDTM Walking Check, both!
++++Scoreboard++++
Yes: 5 +
Failz: 2 +
++++++++++++++++++
Pretty good right? :p
——————————————————
<!– END TEMPLATE: formanswers –>