Eduard
2013-01-02 19:46:59
How Long have You Played Runescape?
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
WT-Fawaki, Sumillion
What is your general programming knowledge?
ASM,C,PHP,A bit of Java, Pascal, Delphi
Are you a member of any other communities?
Powerbot
Tell us about yourself…
Please show us one (or multiple) of your scripts.
P.S.
I soon will show you guys what i'm actually capable off. This is only the beginning.
6 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
WT-Fawaki, Sumillion
What is your general programming knowledge?
ASM,C,PHP,A bit of Java, Pascal, Delphi
Are you a member of any other communities?
Powerbot
Tell us about yourself…
From: Eduard
I've been a programmer since I was 14 (2006). I've been programming and scripting for a very long time. I've been on and off with runescape that's why I haven't filled in the Members aplication form yet. I've written lot of different things. From webcam drivers to advanced reversed winsock keyloggers. I have enough knowledge to contribute to the forums on a very friendly maner :)
Please show us one (or multiple) of your scripts.
I have picked up SRL/Simba since a day or two. This is my latest script that shows a littlebit of the knowledge I currently have. I'm lacking a good script skeleton but it's the only up to date script I currently have :):
[simba]
program EduardsWillowChopper;
{$Define SMART8}
{$include SRL/SRL.simba}
{$include SPS/SPS.simba}
{$include SRL/SRL/Misc/SmartGraphics.simba}
var
BankAttempts, TreeAttempts, StartXP: integer;
BankPath, CuttingPath: TPointArray;
const
CurrentVersion = '04';
Update = 'on';
SD = 'on';
MSDB = 'on';
BCol = 4419476;
BSat = 0.5;
BHue = 0.08;
BTol = 21;
BankCol = 2964288;
BankSat = 1.89;
BankHue = 0.92;
BankTol = 3;
BankHairCol = 2308415;
BankHairSat = 0.27;
BankHairHue = 0.43;
BankHairtol = 3;
BankSymbolCol = 6932961;
BankSSymbolSat = 1.29;
BankSymbolHue = 0.05;
BankSymboltol = 17;
WillowMMCol = 1068856;
WillowMMSat = 2.21;
WillowMMHue = 1.33;
WillowMMTol = 6;
WillowCol = 2569268;
WillowSat = 0.43;
WillowHue = 0.48;
WillowTol = 7;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
Active := true;
end;
end;
function VersionChecker: string;
var
MyHttpClient: integer;
begin
MyHttpClient := InitializeHttpClient(true, false);
result := GetHTTPPage(MyHttpClient, 'http://pastebin.com/raw.php?i=anP5DPNF');
FreeHTTPClient(MyHttpClient);
end;
function DownloadNewVersion: boolean;
var
UpdatedFile, MyHttpClient: integer;
UpdatePath, UpdatedFileString: string;
begin
result := false;
UpdatePath := (AppPath + 'Scripts\' + 'EduardDraynorCutter' + VersionChecker + '.simba');
UpdatedFile := RewriteFile(UpdatePath, false);
MyHttpClient := InitializeHttpClient(true, false);
UpdatedFileString := GetHTTPPage(MyHttpClient, 'http://pastebin.com/raw.php?i=2ns6BWHT');
if (WriteFileString(UpdatedFile, UpdatedFileString)) then
begin
result := true;
end;
FreeHTTPClient(MyHttpClient);
CloseFile(UpdatedFile);
end;
procedure PaintDebug(Txt: string);
var
ClearBox: Tbox;
begin
if (SD = 'on') then
begin
ClearBox.x1 := 350;
ClearBox.X2 := 525;
ClearBox.Y1 := 75;
ClearBox.Y2 := 130;
SMART_ClearCanvas;
Smart_DrawText(375, 26, 'FriendChars', 'Eduard Willow Chopper V1', clWhite);
Smart_DrawText(375, 41, 'FriendChars', txt, ClYellow);
end
else
writeln(txt);
end;
procedure PaintDebugProgress;
var
CharBox: Tbox;
TimeRan, LogsChopped, XpGain, XpBar: integer;
TimeInMinutes: string;
XpPerHour: Extended;
begin
CharBox.x1 := 375;
CharBox.X2 := 500;
CharBox.Y1 := 105;
CharBox.Y2 := 220;
Smart_ClearCanvasArea(CharBox);
XpBar := GetXpBarTotal;
XpGain := XpBar - StartXp;
LogsChopped := XpGain / 67;
Smart_DrawText(375, 56, 'FriendChars', ('XP Gain ' + inttostr(XpGain)), Clpurple);
Smart_DrawText(375, 71, 'FriendChars', ('Logs Chopped ' + inttostr(LogsChopped)), Clred);
if (LogsChopped > 0) then
begin
TimeRan := GetTimeRunning;
XpPerHour := ((TimeRan / XpGain) * 360);
TimeInMinutes := MsToTime(TimeRan, Time_Abbrev);
Smart_DrawText(375, 86, 'FriendChars', ('Xp per hour ' + floattostr(XpPerHour) + 'xp'), ClWhite);
Smart_DrawText(375, 101, 'FriendChars', (TimeInMinutes), Clgreen);
end;
end;
function BankAutoColorMM: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Bankhue, BankSat);
FindColorsSpiralTolerance(MMCX, MMCY, arP, BankCol, MMX1, MMY1, MMX2, MMY2, BankTol);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
TerminateScript;
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.69) and (X <= 5.46) and (Y >= 2.91) and (Y <= 6.01) and (Z >= 2.15) and (Z <= 3.91) then
begin
Result := arC[i];
PaintDebug('Bank Minimap Color ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function BankWorkerAutoColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.08, 0.50);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 4419476, MSX1, MSY1, MSX2, MSY2, 21);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 4.31) and (X <= 40.46) and (Y >= 4.42) and (Y <= 38.16) and (Z >= 2.53) and (Z <= 21.47) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function BankWorkerHairColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.43, 0.27);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2308415, MSX1, MSY1, MSX2, MSY2, 3);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.75) and (X <= 5.02) and (Y >= 2.89) and (Y <= 5.45) and (Z >= 1.62) and (Z <= 2.81) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function WillowAutoColorMM: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(WillowMMHue, WillowMMSat);
FindColorsSpiralTolerance(MMCX, MMCY, arP, WillowMMCol, MMX1, MMY1, MMX2, MMY2, WillowMMTol);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
TerminateScript;
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.27) and (X <= 5.80) and (Y >= 3.71) and (Y <= 9.43) and (Z >= 0.94) and (Z <= 2.42) then
begin
Result := arC[i];
PaintDebug('Willow Minimap Color ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function SymbolColorMM: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.05, 1.29);
FindColorsSpiralTolerance(MMCX, MMCY, arP, 6932961, MMX1, MMY1, MMX2, MMY2, 17);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 32.94) and (X <= 70.36) and (Y >= 36.30) and (Y <= 75.78) and (Z >= 10.35) and (Z <= 50.46) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function WillowAutoColorMS: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(WillowHue, WillowSat);
FindColorsSpiralTolerance(MSCX, MSCY, arP, WillowCol, MSX1, MSY1, MSX2, MSY2, WillowTol);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
TerminateScript;
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 1.31) and (X <= 5.40) and (Y >= 1.50) and (Y <= 5.97) and (Z >= 1.07) and (Z <= 4.37) then
begin
Result := arC[i];
PaintDebug('Willow tree color ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function Antiban: boolean;
begin
case Random(500) of
1:
begin
PaintDebug('Antiban hovering woodcutting');
HoverSkill('woodcutting', False);
end;
2:
begin
PaintDebug('Antiban hovering random skill');
HoverSkill('random', False);
end;
3:
begin
PaintDebug('Antiban Bored human');
Boredhuman;
end;
4:
begin
PaintDebug('Antiban waiting random 2 to 7 seconds');
Wait(2500 + random(4500));
end;
5:
begin
PaintDebug('Antiban picking up mouse');
PickUpMouse;
end;
6:
begin
PaintDebug('Antiban RandomMovement');
RandomMovement;
end;
7:
begin
PaintDebug('Antiban RandomRClick');
RandomRClick;
end;
end;
result := false;
end;
function WaitLoggedIn(Time: Integer): Boolean;
var
T: Integer;
begin
MarkTime(T);
repeat
SRL_ResetNavBar;
if TimeFromMark(T) > Time then
begin
Result := False;
Exit;
end;
until (GetColor(472, 490) = 16777215);
result := True;
end;
function StillCutting: boolean;
var
CharBox: Tbox;
PixelShiftMS: integer;
MiddleCoor: Tpoint;
begin
CharBox.x1 := 240;
CharBox.X2 := 280;
CharBox.Y1 := 140;
CharBox.Y2 := 200;
PixelShiftMS := AveragePixelShift(CharBox, 200, 500);
if (PixelShiftMS > 150) then
begin
if (MSDB = 'on') then
Smart_DrawBoxEx(false, false, CharBox, ClGreen);
PaintDebugProgress;
AntiBan;
result := true;
end
else
begin
if (MSDB = 'on') then
Smart_DrawBoxEx(false, false, CharBox, ClRed);
result := false
end;
end;
function StillRunning: boolean;
var
CharBox: Tbox;
MiddleCoor: Tpoint;
iShift: integer;
begin
CharBox.x1 := 240;
CharBox.X2 := 275;
CharBox.Y1 := 140;
CharBox.Y2 := 190;
iShift := AveragePixelShift(CharBox, 200, 500);
if (Ishift > 200) then
begin
MiddleCoor := MiddleBox(CharBox);
//Smart_DrawText(MiddleCoor.x, MiddleCoor.y, 'FriendChars', inttostr(iShift), ClYellow);
result := true;
end
else
begin
result := false
end;
end;
procedure WalkToBank;
var
TPA, TPA2: TPointArray;
ATPA: T2DPointArray;
MIddle: Tpoint;
tmpCTS: integer;
SpecificBox, BankBox: Tbox;
ATPAcounter, x, y, FlagAttempts: integer;
begin
if (FindColorsTolerance(TPA, BankAutoColorMM, MMX1, MMY1, MMX2, MMY2, Banktol)) then
begin
SplitTPAExWrap(TPA, 5, 5, ATPA);
SortATPASize(ATPA, true);
for ATPACounter := 0 to High(ATPA) do
begin
BankBox := GetTPABounds(ATPA[ATPAcounter]);
if (FindColorsTolerance(TPA2, SymbolColorMM, BankBox.x1, BankBox.y1, BankBox.x2, BankBox.y2, BankSymbolCol)) then
begin
Middle := MiddleBox(Bankbox);
Mouse(Middle.x, Middle.y, 1, 1, 1);
Break;
end;
end;
end;
Wait(1050 + random(200));
while (stillrunning) do
wait(200);
while (FlagPresent) do
begin
wait(200);
PaintDebug('Still seeing flag ' + inttostr(FlagAttempts) + ' times');
cleardebug;
inc(FlagAttempts);
if (FlagAttempts > 20) then
begin
PaintDebug('Flag probably stuck at bank trying to bank');
Exit;
end;
end;
end;
procedure WalkToWillows;
var
Middle: Tpoint;
TPA: TPointArray;
ATPA: T2DPointArray;
ATPABox, SpecificBox: Tbox;
tmpCTS: integer;
begin
tmpCTS := GetColorToleranceSpeed;
if (FindColorsTolerance(TPA, WillowAutoColorMM, 545, 25, 650, 220, WillowMMTol)) then
begin
SplitTPAExWrap(TPA, 5, 5, ATPA);
SortATPASize(ATPA, true);
Middle := MiddleTPA(ATPA[0]);
Mouse(Middle.x, Middle.y, 1, 1, 1);
if (MSDB = 'on') then
begin
Smart_DrawBoxEx(false, false, SpecificBox, ClPurple);
Smart_DrawDotsMulti(False, ATPA);
end;
Wait(250 + random(200));
while (stillrunning) do
PaintDebug('Walking to willows');
end;
end;
procedure FindBanker;
var
TPA2, TPA: TPointarray;
ATPA: T2DPointArray;
ATPACounter, x, y: integer;
Workerboxes: Tbox;
begin
if (OpenBankFast('db')) then
begin
if (Bankscreen) then
begin
DepositAll;
CloseBank;
Wait(540 + random(200));
end
else
begin
PaintDebug('Bankscreen failed!');
TerminateScript;
end;
end
else
begin
PaintDebug('OpenBankFast failed!');
TerminateScript;
end
end;
procedure CutTree;
var
MiddleBoxTP: TPoint;
TPA: TPointArray;
ATPA: T2DPointArray;
ATPABox: Tbox;
x, y, i, tmpCTS: integer;
begin
tmpCTS := GetColorToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(WillowHue, WillowSat);
if (FindColorsSpiralTolerance(x, y, TPA, WillowAutoColorMS, MSX1, MSY1, MSX2, MSY2, WillowTol)) then
begin
TpatoATPAExWrap(TPA, 25, 25, ATPA);
SortATPASize(ATPA, true);
for i := 0 to High(ATPA) do
begin
ATPABox := GetTPABounds(ATPA[i]);
MiddleBoxTP := MiddleBox(ATPABox);
if (MSDB = 'on') then
begin
Smart_DrawBoxEx(false, false, ATPABox, ClPurple);
Smart_DrawDotsMulti(False, ATPA);
end;
MMouse(MiddleBoxTP.x, MiddleBoxTP.y, 0, 0);
Wait(300 + random(100));
PaintDebug('Finding tree');
inc(TreeAttempts);
if (TreeAttempts > 6) then
begin
PaintDebug('Cant find tree walking back to Willow spot');
WalkToWillows;
TreeAttempts := 0;
Exit;
end;
if (IsUpText('hop down Willow')) then
begin
Mouse(MiddleBoxTP.x, MiddleBoxTP.y, 0, 0, 1);
Wait(300 + random(200));
PaintDebug('Cutting tree');
TreeAttempts := 0;
while StillCutting do
begin
Wait(20);
end;
Exit;
end;
end;
end;
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.2, 0.2);
end;
procedure BankInventory;
begin
PaintDebug('Inventory is full');
WalkToBank;
FindBanker;
Wait(1000);
if Bankscreen then
begin
DepositAll;
CloseBank;
end;
Wait(350 + random(200));
end;
procedure UpdateScript;
begin
if (Update = 'on') then
begin
writeln('Current version: ' + (CurrentVersion) + '.');
if (CurrentVersion <> VersionChecker) then
begin
if (VersionChecker <> '') then
begin
writeln('Newest version: ' + (VersionChecker) + '');
if (DownloadNewVersion) then
begin
writeln('Succesfully downloaded newest version, its located in your script path. Please open this version!');
TerminateScript;
end
else
begin
writeln('Could not download newest version, this is a filewriting error! Please check your file access!');
TerminateScript;
end;
end
else
begin
writeln('Newest version: Unavailable, please check the forums or disable updater');
TerminateScript;
end;
end
else
writeln('You have the newest version');
end;
end;
procedure Setup;
begin
{$IFDEF SIMBAMAJOR980}
SMART_SERVER := 10;
SMART_MEMBERS := TRUE;
SMART_SIGNED := TRUE;
SMART_SUPERDETAIL := FALSE;
{$ELSE}
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
{$ENDIF}
ClearDebug;
UpdateScript;
SetupSRL;
SPS_Setup(RUNESCAPE_SURFACE, ['10_8', '11_8']);
DeclarePlayers;
if not WaitLoggedIn(1000) then
begin
LoginPlayer;
end;
Smart_ClearCanvas;
SetRun(true);
StartXp := GetXpBarTotal;
LoadSRLFonts;
ClickNorth(SRL_ANGLE_HIGH);
ExitSquealOfFortune;
Gametab(tab_inv);
Smart_DrawText(200, 14, 'FriendChars', 'Eduard Willow Chopper V1', clWhite);
end;
begin
Setup;
repeat
FindNormalRandoms;
if (loggedIn) then
begin
if (InvFull) then
begin
BankInventory;
WalkToWillows;
end;
CutTree;
end;
until (false)
end.P.S.
I soon will show you guys what i'm actually capable off. This is only the beginning.