Orbital
2009-12-16 08:29:42
How Long have You Played Runescape?
1 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
php, action-script, javascript
Are you a member of any other communities?
Evokeone
Tell us about yourself…
Please show us one (or multiple) of your scripts.
1 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
php, action-script, javascript
Are you a member of any other communities?
Evokeone
Tell us about yourself…
From: newbiezkid
Have to go over this again :/
I'm 15 and go to school in Australia… This was the first forum I ever visited… So its kinda special…
I enjoy graphics alot… I think sp0rk-eh and c0de are responsible for that…
I stepped down to junior member to polish my skills and this is my second attempt to regain my membership…
Please show us one (or multiple) of your scripts.
{____________________________________________________________________________________
\\ //
// What it does? \\
\\ //
// Smelts ores at Falador east bank into bars. \\
// //
\\ Instructions \\
// //
\\ Set your character at Falador east bank and fill out the character details. \\
// Then press play. //
\\ And then do something else. \\
// //
\\ Please post any bugs with the script \\
// //
____________________________________________________________________________________}
program FallyEasySmither;
{.include SRL\SRL\Misc\Smart.scar}
{.include SRl/SRl.scar}
var
Loads: Integer;
Bars: Integer;
LoadsToGo: integer;
procedure declarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //username
Pass := ''; //password
Nick := ''; //3-4 letters from your username
Skill:= '';
loc := '';
Active := true;
end;
end;
const
SpamDebugBox = True;
Load = 10; // Loads Until Next Player
procedure DebugText(what: string);
begin
if SpamDebugBox then
begin
Writeln(what);
Status(what);
Disguise(what);
end else
begin
Status(what);
end;
end;
procedure Prog(what: string);
var
X,I,Time: integer;
begin
MarkTime(time);
repeat
X := GetSkillInfo('Smithing', False);
if timefrommark(time) > 4000 then
Break;
until(X > 0);
WriteLn('----------------------------');
WriteLn('----------------------------');
case what of
'full':
begin
WriteLn('');
WriteLn('Newbiz Smither East Fally ');
WriteLn('');
WriteLn('Ran For '+ TimeRunning);
If Bars > 0 then
WriteLn('Bars Made : '+IntToStr(Bars));
If Loads > 0 then
WriteLn('Loads done ' + IntToStr(Loads));
if X > 0 then
WriteLn('X');
WriteLn('');
WriteLn('----------------------------');
WriteLn('----------------------------');
end;
end;
Writeln('Player Info:');
WriteLn('');
WriteLn('|---------------------------');
Disguise('-• Loads Done: ' + IntToStr(Loads)+'•––');
for i := 0 to HowManyPlayers - 1 do
begin
WriteLn('| ' + Players[i].loc);
WriteLn('|---------------------------');
WriteLn('|---------------------------');
end;
end;
function FindOre(what: string): Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
Color: Integer;
begin
begin
case what of
'iron': Color:=2305869;
'silver': Color:=11971499;
'coal': Color:=2702653;
'gold': Color:=1815515;
end;
end;
dtmMainPoint.x := 1080;
dtmMainPoint.y := 406;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := Color;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 1080;
dtmSubPoints[0].y := 406;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := Color
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 1074;
dtmSubPoints[1].y := 392;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 65536;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 1092;
dtmSubPoints[2].y := 399;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 65536;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 1073;
dtmSubPoints[3].y := 419;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 65536;
dtmSubPoints[3].Tolerance := 0;
dtmSubPoints[4].x := 1063;
dtmSubPoints[4].y := 404;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 65536;
dtmSubPoints[4].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
DebugText('Loading DDTMs');
end;
function FallyRRdColor: Integer;
var
H,S,L,X,Y,Z : Extended;
R,G,B,P,A,Color : Integer;
TPA : TPointArray;
begin
FindColorsSpiralTolerance(MMCX, MMCY, TPA, 6187895, MMX1, MMY1, MMX2, MMY2, 60)
P := High(TPA);
for A := 0 to P do
begin
if RS_OnMinimap(TPA[A].X, TPA[A].Y) then
begin
Color := GetColor(TPA[A].X, TPA[A].Y);
if SimilarColors(Color, 6187895, 50) then
begin
ColorToRGB(Color, R, G, B);
ColorToXYZ(Color, X, Y, Z);
if InRange(R - G, -8, 32) then
if InRange(R - B, 5, 45) then
if InRange(G - B, -7, 33) then
if InRange(Round(X) - Round(Y), -7, 7) then
if InRange(Round(Y) - Round(Z), -5, 9) then
if GetColor(TPA[A].X + 2, TPA[A].Y + 2) = Color then
if GetColor(TPA[A].X + 1, TPA[A].Y + 1) = Color then
begin
Result := Color;
Exit;
end;
end;
end;
end;
Writeln('Color Was Not Found.');
DebugText('Color Not Foind');
Result := 0;
end;
function FallyRdColor: Integer;
begin
if FindFallyRoadColor = 0 then
begin
Result := FallyRRDColor;
Exit;
end else Result:= FindFallyRoadColor;
end;
function WalkDTM(where:string):Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
case where of
'1':
begin
dtmMainPoint.x := 1100;
dtmMainPoint.y := 302;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FallyRdColor;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 1100;
dtmSubPoints[0].y := 302;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FallyRdColor;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 1094;
dtmSubPoints[1].y := 294;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 1664615;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 1103;
dtmSubPoints[2].y := 309;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 1530207;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 1103;
dtmSubPoints[3].y := 292;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 1598051;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 1087;
dtmSubPoints[4].y := 299;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16119795;
dtmSubPoints[4].Tolerance := 15;
DebugText('Loaded DTM1');
end;
'2':
begin
dtmMainPoint.x := 1147;
dtmMainPoint.y := 343;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := FallyRdColor;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 1147;
dtmSubPoints[0].y := 343;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := FallyRdColor;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 1130;
dtmSubPoints[1].y := 335;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2117978;
dtmSubPoints[1].Tolerance := 12;
dtmSubPoints[2].x := 1153;
dtmSubPoints[2].y := 357;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2185566;
dtmSubPoints[2].Tolerance := 12;
dtmSubPoints[3].x := 1136;
dtmSubPoints[3].y := 355;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2119002;
dtmSubPoints[3].Tolerance := 12;
DebugText('Loading DDTM 2');
end;
end;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
Function Walk(WhereTo: string): boolean;
var
DTMM: integer;
X,Y: Integer;
begin
if not LoggedIn then
Exit;
SetRun(True);
case whereTo of
'Smith':
begin
If RadialWalk(FallyRdColor,00,00,00,2,2) then
begin
Writeln('RoadColor Is Good');
DebugText('Walked Step 1');
end else
begin
Writeln('RadialWalk Failed, DDTM now');
if not DTMRotated(WalkDTM('1'), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('did not found bank dtm');
Nextplayer(false);
DebugText('Bank Not found');
Exit;
end;
FFlag(0);
end;
if RadialWalk(FallyRdColor,20,80,65,2,2) then
begin
Writeln('Walked To Point 2');
DebugText('WalkedToPoint 2');
end else
begin
DebugText('Radial Failed DDTM');
if not DTMRotated(WalkDTM('2'), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('did not found dtm');
DebugText('No DDTM found NecxPlayer');
Nextplayer(false);
Exit;
end;
FFlag(0);
end;
if (findSymbol(x, y, 'bank')) then
begin
writeln('Bank Symbol Found');
DebugText('Found Symbol,, Arrived');
Mouse(x, y -5, 2 , 2, true);
FFlag(0);
Writeln('Arrived At Bank');
Exit;
end;
Mouse(661, 129 - 5 , 2, 2, True);
FFlag(0);
end;
'Bank':
begin
DTMM := DTMFromString('78DA633466616098C6C8800CB6ACEA07D3305' +
'1460BA09AD9A86AFEFC61425563805D0D3FB21A73A09A3904D4D8103' +
'6070012480E37');
if Not RadialWalk(FallyRdColor,250,330,67, 2 , 2) then
begin
if not DTMRotated(WalkDTM('2'), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
Writeln ('did not found dtm');
DebugText('DTM not found');
Nextplayer(false);
Exit;
end;
FFlag(0);
if not DTMRotated(WalkDTM('1'), x, y, MMX1, MMY1, MMX2, MMY2) then
begin
RadialWalk(FallyRdColor,180, 240 , 70 ,2 ,2);
Writeln ('did not found dtm');
DebugText('DTM not found');
end;
FFlag(0);
if not DTMRotated(DTMM, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
DebugText('DTM not found');
DebugText('backing up');
Mouse(630, 87,2,2,true);
end;
FFlag(0);
end;
end;
end;
FindNormalRandoms;
Result:= True;
FreeDTM(walkDTM('1'));
FreeDTM(walkDTM('2'));
end;
function FindSmelt : Boolean;
var
Z,I : Integer;
TPA: TPointArray;
TPAS: T2DPointArray;
begin
SetAngle(True);
if not LoggedIn then Exit;
FindColorsSpiralTolerance(MSCX, MSCY - 75, TPA, 4022675, MSX1, MSY1, MSX2, MSY2, 10);
for z:= 0 to High(TPA)do
begin
TPAS := TPAToATPA(TPA, 25);
if GetArrayLength(TPAS) < 6 then
Exit;
for I := 0 To High(TPAS) do
TPA[i] := MiddleTPA(TPAS[i]);
for I := 0 To Length(TPA) do
MMouse(TPA[i].X , TPA[i].Y , 5, 5);
if IsUpText('melt') then
begin
Result := True;
FindNormalRandoms;
DeBugText('Found');
Exit;
end;
Wait(350+random(350));
end;
Result := False;
FindNormalRandoms;
DeBugText('Not found');
end;
function FindPerson : Boolean;
var
Person: TPointArray;
People: T2DPointArray;
I: integer;
begin
if not LoggedIn then
Exit;
if not FindColorsSpiralTolerance(MSCX, MSCY, Person, 456736775, MSX1, MSY1, MSX2, MSY2, 40) then
Exit;
People := TPAToATPA(Person, 16);
if GetArrayLength(people) < 3 then
Exit;
for I := 0 To High(People) do
Person[i] := MiddleTPA(People[i]);
for I := 0 To Length(Person) do
begin
MMouse(Person[i].X , Person[i].Y , 5, 5);
if IsUpText('alk') then
begin
Result:= True;
Exit;
wait(1);
end;
end;
end;
function PosArray(Text: array of string): Boolean;
var
I : integer;
II: string;
begin
Result := False;
GetLastChatText(II);
for I := 0 to High(Text) do
if Pos(Lowercase(Text[i]), Lowercase(II)) > 0 then
Result := True;
wait(1)
end;
procedure AutoRespond;
var
Text: string;
OldMessage: string;
X: integer;
begin
GetLastChatText(Text);
if OldMessage = Text then
Exit;
if not FindPerson then
begin
DeBugText('Not found People Around');
Exit;
end;
if PosArray(['smith l','lvl', 'ith lv', 'sm l', 'smithing lvl']) then
begin
repeat
X := GetSkillInfo('Smithing', False);
until(X > 0);
Case Random(14) of
0: TypeSend(IntToStr(x));
1: TypeSend('im ' + IntToStr(x) + ' and you?');
2: TypeSend('go away');
3: TypeSend('I' + chr(39) + 'm ' + IntToStr(x));
end;
exit;
end;
if PosArray(['lol','ha','lmao','rofl','lmfao']) then
begin
case random(15) of
0: TypeSend('ahahah good 1');
1: TypeSend('lol');
2: TypeSend('rofl');
3: TypeSend('lmao');
4: TypeSend('Meh.');
end;
Exit;
end;
if PosArray(['hi','hello','sup']) then
begin
case random(15) of
0: TypeSend('hey');
1: TypeSend('lol hey');
2: TypeSend('hi');
3: TypeSend('hi!!!!');
4: TypeSend('yessum?');
end;
Exit;
end;
end;
Function Smith(Number: integer): boolean;
begin
while LoggedIn do
begin
DeBugText('Clicking Smithing Box');
MouseBox(40+(Number - 1)* 50,398,61+(Number - 1)* 50,412,1);
wait(500 + random(300));
FindNormalRandoms;
Result:= True;
end;
end;
procedure Banking;
var
KK,x,y:integer;
begin
DeBugText('Banking');
repeat
OpenBankFast('FWB');
if TimeFromMark(Kk) > 20000 then
Exit;
wait(4);
until(BankScreen);
if BankScreen then
begin
DeBugText('Banking');
Deposit(1,28,true);
end else
begin
NextPlayer(False);
DeBugText('Next Player');
end;
Wait(500+random(100));
begin
case (Players[CurrentPlayer].Skill) of
'iron':
begin
FindOre('iron');
begin
mouse(x,y,3,3,false);
wait(200+random(100));
chooseOption('All');
FreeDTM(FindOre('iron'));
end;
end;
'silver':
begin
FindOre('silver');
begin
mouse(x,y,3,3,false);
wait(200+random(100));
chooseOption('All');
FreeDTM(FindOre('silver'));
end;
end;
'steel':
begin
FindOre('iron');
begin
mouse(x,y,3,3,false);
wait(200+random(100));
if chooseOption('X') then
begin
wait(300+random(100));
typesend('9');
end;
FreeDTM(FindOre('iron'));
end;
FindOre('coal');
begin
mouse(x,y,3,3,false);
wait(200+random(100));
if chooseOption('X') then
begin
wait(300+random(100));
typesend('18');
end;
end;
FreeDTM(FindOre('coal'));
end;
'gold':
begin
FindOre('gold');
begin
mouse(x,y,3,3,false);
wait(200+random(100));
chooseOption('All');
FreeDTM(FindOre('gold'));
end;
end;
end;
wait(1000+random(200));
CloseBank;
FindNormalRandoms;
AutoRespond;
end;
end;
function AntiBan(High:string): boolean;
begin
case High of
'high':
begin
case random(3) of
1:begin
BoredHuman;
Result := True;
end;
2:begin
RandomRClick;
Wait(2000 + random(2500));
Result := True;
end;
3:begin
PickUpMouse;
Wait(2000 + random(2500));
Result := True;
end;
end;
Result := True;
end;
'low':
begin
case random(5) of
1:begin
if GameTab(1+random(8)) then wait(random(500));
end;
2:begin
if GameTab(1+random(2)) then wait(random(500));
end;
3:wait(random(1000));
4:PickUpMouse;
5:RandomRClick;
end;
Result := True;
end;
end;
end;
procedure Main;
var
XX,X,Y: integer;
begin
Banking;
DeBugText('Looping');
if walk('There') then
begin
if FindSmelt then
begin
GetMousePos(X, Y);
Mouse(X, Y, 0, 0, True);
end;
end else
begin
DeBugText('Lost NextPLayer');
NextPlayer(False);
Exit;
end;
begin
case (Players[CurrentPlayer].Skill) of
'iron' : Smith(1);
'steel' : Smith(4);
'gold' : Smith(6);
'silver' : Smith(2);
end;
end;
MarkTime(XX);
repeat
AntiBan('high');
AntiBan('low');
AutoRespond;
if TimeFromMark(xx) > 25000 then
Break;
wait(2);
until(false);
FindNormalRandoms;
if walk('There') then
begin
DeBugText('+ 1 Loads');
Exit;
Loads:= Loads + 1;
Bars:= Bars + 1;
end;
Writeln('Lost');
NextPlayer(False);
Exit;
end;
procedure Loop;
begin
repeat
Main;
LoadsToGo:= LoadsToGo - 1;
Prog('full');
until(LoadsToGo = 0)or(not LoggedIn);
NextPlayer(true);
end;
begin
Smart_Server := 110;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
LoadsToGo := Load;
DeclarePLayers;
LoginPlayer;
SetAngle(true);
SetChat('on',1);
SetChat('on',2);
SetChat('on',3);
SetChat('on',4);
SetChat('on',5);
SetRun(true);
MakeCompass ('n');
repeat
Loop;
until(false);
end.