SRL Archive - Archive

KillerTHC - SRL Member Application


KillerTHC

2010-12-04 20:44:12

How Long have You Played Runescape?
8 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Java, C++, VB.Net


Are you a member of any other communities?
Previously a member of IBot, Sythe, but that was years ago.


Tell us about yourself…
From: KillerTHC
I am 17, I enjoy botting, so much that after taking a break from RS I botted other games, but eventually it didnt compare to botting RS. I enjoy script and computer programing.



RM:
Edited to show script. Thread here: http://villavu.com/forum/showthread.php?t=60377


program FaladorSmith;

{$I SRL/SRL/misc/SMART.scar}
{$I SRL/SRL.scar}
{$I Reflection/Reflection.simba}

var
SmeltingAnimation, FurnaceID, AntiBanPercent, BankAttempts, Breaks,
StopReason, StartTime, BreakTime: Integer;
WalkToFurnace, WalkToBank, WalkToFurnace2, WalkToBank2: TTileArray;
SmithyTile, BankTile, FurnaceTile: TTile;
FurnaceObj: TRSObject;
TP: TPoint;
Failed: Boolean;

const
SmartWorld = 0;
Members = False;
SignedClient = True;
HighDetail = False;
Version = 1.3;
//Stop Reasons
LOADSDONE = 1;
BANKFAIL = 2;
SMELTFAIL = 3;
WALKFAIL = 4;
BREAKFAIL = 5;
NOORE = 6;
//Script States
BANKING = 1;
WALK = 2;
SMELTING = 3;
BREAK = 4;

procedure DeclarePlayers; //Player setup
begin
AntiBanPercent := 1; //1 = do antiban 1% of the time(recommended)
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

with Players[0] do
begin
Name := '';
Pass := '';
Pin := '';
Nick := '';
Active := True;
Integers[5] := 100;//Loads to do
Integers[6] := 30;//Rest every X minutes
Integers[7] := 5;//Rest for X minutes
//bronze, iron, silver, steel, gold, mithril, adamantite, rune, best
Strings[0] := 'steel'; //Must be lower case!!!!
Booleans[0] := False; //Always make best bar (not recomended)
end;

with Players[1] do
begin
Name := '';
Pass := '';
Pin := '';
Nick := '';
Active := False; //Change this to activate this player
Integers[5] := 20;//Loads to do
Integers[6] := 15;//Rest every X minutes
Integers[7] := 1;//Rest for X minutes
//bronze, iron, silver, steel, gold, mithril, adamantite, rune, best
Strings[0] := 'iron'; //Must be lower case!!!!
Booleans[0] := False; //Always make best bar (not recomended)
end;
end;

procedure FindRandoms();
begin
if not R_FindRandoms then
FindNormalRandoms;
end;

procedure AntiBan();
begin
FindRandoms();
case Random(6) of
0: HoverSkill('Smithing',False);
1: PickUpMouse;
2: BoredHuman;
3: ExamineInv;
4: HoverSkill('Random',False);
5:
begin
RandomMovement();
Wait(250 + Random(250));
SetAngle(True);
end;
6: Wait(500 + Random(15000));
end;
end;

procedure ProgressReport;
var
I, TotalLoads, TotalAntiBans, TotalLevelsGained, TotalBars, CPBars, CPLoads, CPAntiBan, CPLevelsGained: Integer;
S, S2, S3, S4, S5, Active : String;
begin
ClearDebug;
CPLoads := Players[CurrentPlayer].Integers[0];
CPAntiBan := Players[CurrentPlayer].Integers[1];
CPLevelsGained := Players[CurrentPlayer].Integers[2];
CPBars := Players[CurrentPlayer].Integers[3];

for I := 0 to HowManyPlayers - 1 do
begin
TotalLoads := TotalLoads + Players[I].Integers[0];
TotalAntiBans := TotalAntiBans + Players[I].Integers[1];
TotalLevelsGained := TotalLevelsGained + Players[I].Integers[2];
TotalBars := TotalBars + Players[I].Integers[3];
end;
//Credits to Tickyy for his ProgReport
S := ' ';
S2 := 'FaladorSmith ~ By KillerTHC';
S3 := 'Ver 1.3';
S4 := 'Players Report';
S5 := 'Credits to Tickyy for his ProgReport';

WriteLn('[----------------------------------------------------------------------------]');
WriteLn('[' + padr(padl(S3, 38 + Length(S3) / 2), 76) + ']');
WriteLn('[----------------------------------------------------------------------------]');
WriteLn('[' + Padr(Padl(TheDate(2) + s + (TheTime), 38 + Length(TheDate(2) + s + TheTime) / 2), 76) + ']');
WriteLn('[----------------------------------------------------------------------------]');
WriteLn('[' + Padr(padl(S2, 38 + Length(S2) / 2), 76) + ']');
WriteLn('[----------------------------------------------------------------------------]');
WriteLn('[' + Padr(padl(S5, 38 + Length(S5) / 2), 76) + ']');
WriteLn('[----------------------------------------------------------------------------]');
WriteLn(padr('[ Total Time Running: ' + TimeRunning, 77) + ']');
WriteLn(PadR('[ Total Breaks: ' + IntToStr(Breaks), 77) + ']');
WriteLn(PadR('[ Total Loads Done: ' + IntToStr(TotalLoads), 77) + ']');
WriteLn(PadR('[ Total Bars Smelted and Banked: ' + IntToStr(TotalBars), 77) + ']');
WriteLn(PadR('[ Smelting Rate: ' + IntToStr(Round((TotalBars * 3600) / (GetTimeRunning / 1000))) + ' Bars/Hr', 77) + ']');
WriteLn(PadR('[ Smithing Levels Gained: ' + IntToStr(TotalLevelsGained), 77) + ']');
Writeln(PadR('[ AntiBans Done: ' + IntToStr(TotalAntiBans), 77) + ']');
WriteLn('[----------------------------------------------------------------------------]');
Writeln('[' + padr(padl(S4, 38 + Length(S4) / 2), 76) + ']');
Writeln('[----------------------------------------------------------------------------]');
Writeln(Padr('[ Player Number | Nick | Active | Loads', 77) + ']');

for i:= 0 to High(Players) do
begin
if (Players[I].Active = True) then
Active := 'T'
else
Active := 'F';
Writeln(Padr(Padr(Padr(Padr(Padr(Padr(Padr(Padr('[', 12) + (IntToStr(I)), 24) + '|', 31) + (players[I].nick), 39) + '|', 47) + (Active), 55)
+ '|', 64) + (IntToStr(Players[I].Integers[0])), 77) + ']');
end;
Writeln('[----------------------------------------------------------------------------]');
Writeln('');
end;

procedure StopCause;
begin
case StopReason of
0: WriteLn('Unknown reason for stopping...');
LOADSDONE: WriteLn('Stopped due to load amount reached');
BANKFAIL: WriteLn('Stopped due to banking failure');
WALKFAIL: WriteLn('Stopped due to walking failure');
BREAKFAIL: WriteLn('Stopped due to break failure');
SMELTFAIL: WriteLn('Stopped due to smelting failure');
NOORE: WriteLn('Stopped due to all ore being used');
end;
end;

procedure Bling;
var
I: Integer;
PictureArray: TStringArray;
begin
PictureArray := [' W ',
' WWW ',
' WWW ',
' WWWWW ',
' W WWWWW W ',
' WWW WWWWW WWW ',
' WWW WWWWW WWW ',
' WWW WWW WWW ',
' WWW WWW WWW ',
' WWWWWWW ',
' WWWW | WWWW ',
' | ',
' | ',
' ',
' _ _ _ _____ ___ ',
' /\ /(_) | | ___ _ _/__ \/\ /\/ __\',
' / //_/ | | |/ _ \ |__|/ /\/ /_/ / / ',
'/ __ \| | | | __/ | / / / __ / /___ ',
'\/ \/|_|_|_|\___|_| \/ \/ /_/\____/ '];

for I := 0 to High(PictureArray) do
WriteLn(PictureArray[I]);

Wait(5000);
end;

function NearTile(DTile: TTile; Distance: Integer): Boolean;
var
MyTile: TTile;
x1, x2, y1, y2, tx, ty: Integer;
begin
MyTile := GetMyPos;
tx := MyTile.x;
ty := MyTile.y;
x1 := DTile.x - Distance;
x2 := DTile.x + Distance;
y1 := DTile.y - Distance;
y2 := DTile.y + Distance;

if (tx >= x1) and (tx <= x2) and (ty >= y1) and (ty <= y2) then
Result := True;
end;

procedure SetupVars;
begin
//Booleans
Failed := False;
//Integers
StartTime := GetSystemTime;
StopReason := 0;
FurnaceID := 11666;
SmeltingAnimation := 3243;
//Tiles, TileArrays
BankTile := Tile(3013, 3356);
SmithyTile := Tile(2975, 3369);
FurnaceTile := Tile(2976,3369);
WalkToFurnace := [Tile(3012, 3363), Tile(3004, 3364), Tile(2996, 3367),
Tile(2986, 3373), Tile(2979, 3376), Tile(2973, 3372),
Tile(2975, 3369)];
WalkToFurnace2 := [Tile(3006, 3359), Tile(2995, 3364), Tile(2981, 3372),
Tile(2975, 3369)];
WalkToBank2 := [Tile(2975, 3369), Tile(2982, 3376), Tile(2993, 3367),
Tile(3004, 3366), Tile(3009, 3361), Tile(3013, 3356)];
WalkToBank := [Tile(2975, 3369), Tile(2975, 3369), Tile(2979, 3375),
Tile(2986, 3374), Tile(2992, 3370), Tile(2998, 3365),
Tile(3003, 3364), Tile(3013, 3363), Tile(3013, 3356)];
end;

procedure SetBest;
begin
case GetSkillLevel('smithing') of
1 - 14: Players[CurrentPlayer].Strings[0] := 'bronze';
15 - 19: Players[CurrentPlayer].Strings[0] := 'iron';
20 - 29: Players[CurrentPlayer].Strings[0] := 'silver';
30 - 39: Players[CurrentPlayer].Strings[0] := 'steel';
40 - 49: Players[CurrentPlayer].Strings[0] := 'gold';
50 - 69: Players[CurrentPlayer].Strings[0] := 'mithril';
70 - 84: Players[CurrentPlayer].Strings[0] := 'adamantite';
85 - 99: Players[CurrentPlayer].Strings[0] := 'rune';
end;
end;

function WithdrawNoFix(Col, Row, Amount: Integer): Boolean;
var
BBox: TBox;
X, Y: Integer;
begin
Result := False;

BBox := BankIndexToMSBox(BankPointToBankIndex(Point(Col, Row)));
GetMousePos(X, Y);
if (not PointInBox(Point(X, Y), BBox)) then
MouseBox(BBox.X1 + 5, BBox.Y1 + 5, BBox.X2 - 5, BBox.Y2 - 5, 3);

ClickMouse2(Amount = 1);
if (Amount = 1) then
begin
Result := True;
Wait(RandomRange(250, 550));
Exit;
end;

if (Amount = 0) then
Result := WaitOptionMulti(['Withdraw-All', 'w-A'], 300)
else
Result := WaitOptionMulti(['Withdraw-' + IntToStr(Amount), 'w-' + IntToStr(Amount)] , 300);

if (not (Result)) and (Amount > 0) then
begin
MouseBox(BBox.X1 + 5, BBox.Y1 + 5, BBox.X2 - 5, BBox.Y2 - 5, 2);
if WaitOptionMulti(['Withdraw-X', 'w-X'], 500) then
begin
X := GetSystemTime + 10000;
while (X >= GetSystemTime) and (not (InRange(CountColor(0, 250, 396, 307, 410), 155, 165))) do
Wait(50);
Wait(RandomRange(75, 400));
TypeSend(IntToStr(Amount));
Result := True;
end;
end;
end;

function WithdrawItems(OreType: String; Amount: Integer): Boolean;
var
OreName: String;
begin
case RandomRange(1, 2) of
1: OreName := OreType + ' Ore';
2: OreName := OreType + ' ore';
end;

if OreType = 'Coal' then
begin
SearchBank(OreType);
Wait(RandomRange(250, 750));
if WithdrawNoFix(0, 0, Amount) then Result := True;
end else
begin
SearchBank(OreName);
Wait(RandomRange(250, 750));
if WithdrawNoFix(0, 0, Amount) then Result := True;
end;
end;

function WithdrawOre(): Boolean;
begin
case Capitalize(Players[CurrentPlayer].Strings[0]) of
'Bronze':
begin
if WithdrawItems('Copper', 14) then Result := True;
Wait(RandomRange(500, 1000));
if WithdrawItems('Tin', 14) then Result := True;
end;
'Iron': if WithdrawItems('Iron', 28) then Result := True;
'Silver': if WithdrawItems('Silver', 28) then Result := True;
'Steel':
begin
if WithdrawItems('Iron', 9) then Result := True;
Wait(RandomRange(500, 1000));
if WithdrawItems('Coal', 0) then Result := True;
end;
'Gold': if WithdrawItems('Gold', 28) then Result := True;
'Mithril':
begin
if WithdrawItems('Mithril', 5) then Result := True;
Wait(RandomRange(500, 1000));
if WithdrawItems('Coal', 0) then Result := True;
end;
'Adamantite':
begin
if WithdrawItems('Adamantite', 4) then Result := True;
Wait(RandomRange(500, 1000));
if WithdrawItems('Coal', 0) then Result := True;
end;
'Rune':
begin
if WithdrawItems('Rune', 3) then Result := True;
Wait(RandomRange(500, 1000));
if WithdrawItems('Coal', 0) then Result := True;
end;
end;
end;

function DoBanking(): Boolean;
begin
Wait(RandomRange(500, 1500));
FindRandoms;
if R_OpenBankBooth('feb') then
begin //Opened the bank successfully
Wait(500 + Random(500));
R_DepositAll(True);
Wait(500 + Random(500));
if WithdrawOre() then
Result := True;
end else
begin //Reflection failed trying non reflection
if OpenBankFast('feb') then
begin
Wait(500 + Random(500));
R_DepositAll(True);
Wait(500 + Random(500));
if WithdrawOre() then
Result := True;
end else
begin //Non reflection failed trying a different one
if OpenBank('feb', False, False) then
begin
WriteLn('Bank booth opened, depositing all items');
Wait(500 + Random(500));
R_DepositAll(True);
Wait(500 + Random(500));
if WithdrawOre() then
Result := True;
end;
end;
end;
CloseBank;
end;

function WalkFunc(): Boolean;
var
Energy: Integer;
begin
Energy := R_GetMMLevels('run');
if(Energy < 15+random(15)) then
R_Rest(30+random(20));
if(not R_IsRunning) then
SetRun(True);
FindRandoms;
//Walking to smithy
if TileOnMM(BankTile) then
if RandomRange(1, 2) = 1 then
begin
if WalkPath(WalkToFurnace) then
begin
Result := True;
Exit;
end;
end else
begin
if WalkPath(WalkToFurnace2) then
begin
Result := True;
Exit;
end;
end;

//Walking to bank
if RandomRange(1, 2) = 1 then
begin
if WalkPath(WalkToBank) then
begin
Result := True;
Exit;
end;
end else
begin
if WalkPath(WalkToBank2) then
begin
Result := True;
Exit;
end;
end;
end;

function InteractWithFurnace(): Boolean;
begin
FurnaceObj := GetObjectByID(FurnaceID, OBJECT_TYPE_INTERACTABLE, 5)
TP := TileToMS(FurnaceObj.Tile, 1);
if TP.x > 0 then
begin
Mouse(TP.x, TP.y, 10, 10, False);
if not R_ChooseOptionMulti(['Smelt','smelt','melt']) then
begin
WriteLn('Reflection ChooseOptionMulti failed, using SRL');
Mouse(TP.x, TP.y, 5, 5, False);
if ChooseOptionMulti(['Smelt','smelt','melt']) then
begin
Result := True;
end;
end else
begin
Result := True;
end;
end else
begin
TP := TileToMS(FurnaceTile, 1);
Mouse(TP.x, TP.y, 10, 10, False);
if not R_ChooseOptionMulti(['Smelt','smelt','melt']) then
begin
WriteLn('Reflection ChooseOptionMulti failed, using SRL');
if ChooseOptionMulti(['Smelt','smelt','melt']) then
begin
Result := True;
end;
end else
begin
Result := True;
end;
end;
end;

function NotSmelting(): Boolean;
var
CAnimation: Integer;
begin
CAnimation := GetAnimation;
if not CAnimation = SmeltingAnimation then
Result := True;
end;

function GetBarID(): Integer;
var
BarID: Integer;
begin
case Capitalize(Players[CurrentPlayer].Strings[0]) of
'Bronze': BarID := 2349; //Copper Ore
'Iron': BarID := 2351;
'Silver': BarID := 2355;
'Steel': BarID := 2353;
'Gold': BarID := 2357;
'Mithril': BarID := 2359;
'Adamantite': BarID := 2361;
'Rune': BarID := 2363;
end;

Result := BarID
end;

function CalculateBars(): Integer;
var
I, BarID, Count: Integer;
Item: TInvItem;
begin
BarID := GetBarID();
Count := 0;
for I := 1 to 28 do
begin
Item := GetInvItemAt(I);
if Item.ID = BarID then
begin
Count := Count + 1;
end;
end;
Result := Count;
end;

function GetOreID(): Integer;
var
OreID: Integer;
begin
case Capitalize(Players[CurrentPlayer].Strings[0]) of
'Bronze': OreID := 436; //Copper Ore
'Iron': OreID := 440;
'Silver': OreID := 442;
'Steel': OreID := 440;
'Gold': OreID := 444;
'Mithril': OreID := 447;
'Adamantite': OreID := 449;
'Rune': OreID := 451;
end;

Result := OreID
end;

function HaveOre(): Boolean;
var
I, OreID: Integer;
Item: TInvItem;
begin
OreID := GetOreID();
for I := 1 to 28 do
begin
Item := GetInvItemAt(I);
if Item.ID = OreID then
begin
Result := True;
Exit;
end;
end;
end;

function SmeltBar(): Boolean;
begin
case Capitalize(Players[CurrentPlayer].Strings[0]) of
'Bronze': TP := Point(260, 420);
'Iron': TP := Point(260, 420);
'Silver': TP := Point(260, 420);
'Steel': TP := Point(290, 420); //Different for steel
'Gold': TP := Point(260, 420);
'Mithril': TP := Point(260, 420);
'Adamantite': TP := Point(260, 420);
'Rune': TP := Point(260, 420);
end;

case RandomRange(1, 2) of
1:
begin
Mouse(TP.x, TP.y, 25, 25, False);
if not R_ChooseOptionMulti(['Make All','make all','all']) then
begin
WriteLn('Reflection ChooseOptionMulti failed, using SRL');
if not ChooseOptionMulti(['Make All','make all','all']) then
begin
Result := False;
Exit;
end
end;
end;
2: Mouse(TP.x, TP.y, 25, 25, True);
end;

repeat
if not HaveOre() then
begin
Result := True;
Exit;
end;
if ClickToContinue then
begin
InteractWithFurnace();
Wait(RandomRange(1500, 3000));
SmeltBar();
end;
if Random(100) <= AntiBanPercent then
begin
AntiBan;
Players[CurrentPlayer].Integers[1] := Players[CurrentPlayer].Integers[1] + 1;
end;
until(NotSmelting);

Result := True;
end;

function DoSmelting(): Boolean;
begin
Wait(RandomRange(500, 1500));
FindRandoms;
if InteractWithFurnace() then
begin
Wait(RandomRange(1500, 3000));
if SmeltBar() then
Result := True;
end;
end;

function IsBreakTime(): Boolean;
var
TFromMark, TimeToBreak: Integer;
begin
if not LoggedIn then
Exit;
if (Players[CurrentPlayer].Integers[6] = 0) or (Players[CurrentPlayer].Integers[7] = 0) then
Exit;
TimeToBreak := Players[CurrentPlayer].Integers[6] * 60000;
TFromMark := GetSystemTime - StartTime;
if(TFromMark >= TimeToBreak) then
begin
BreakTime := GetSystemTime + (Players[CurrentPlayer].Integers[7] * 60000)+RandomRange(-150000,150000);
Result := True;
end;
end;

procedure TakeBreak();
begin
case RandomRange(1, 3) of
1:
begin
ExitToLobby;
repeat
WriteLn('Time Left in Break:'+MsToTime((BreakTime-GetSystemTime),Time_Short));
if(BreakTime-GetSystemTime>60000) then
begin
wait(RandomRange(180000,300000));
end else
begin
wait(RandomRange(40000,60000));
end;
until(BreakTime<GetSystemTime);
WriteLn('Break Over');
end;
2:
begin
repeat
WriteLn('Time Left in Break:'+MsToTime((BreakTime-GetSystemTime),Time_Short));
if(BreakTime-GetSystemTime>60000) then
begin
wait(RandomRange(180000,300000));
end else
begin
wait(RandomRange(40000,60000));
end;
until(BreakTime<GetSystemTime);
WriteLn('Break Over');
end;
3:
begin
Logout;
repeat
WriteLn('Time Left in Break:'+MsToTime((BreakTime-GetSystemTime),Time_Short));
if(BreakTime-GetSystemTime>60000) then
begin
wait(RandomRange(180000,300000));
end else
begin
wait(RandomRange(40000,60000));
end;
until(BreakTime<GetSystemTime);
WriteLn('Break Over');
end;
end;
end;

function GetState(): Integer;
begin
if IsBreakTime() then
begin
Result := BREAK;
Exit;
end;

if NearTile(BankTile, 10) and not InvFull() and HaveOre() then
begin
Result := WALK;
StopReason := NOORE;
Exit;
end;

if NearTile(BankTile, 10) and not InvFull() then
begin
Result := BANKING;
Exit;
end;

if NearTile(BankTile, 10) and InvFull() then
begin
Result := WALK;
Exit;
end;

if NearTile(SmithyTile, 10) and not HaveOre() then
begin
Result := WALK;
Exit;
end;

if NearTile(SmithyTile, 10) and HaveOre() then
begin
Result := SMELTING;
Exit;
end;
end;

procedure CheckLevels();
var
New, Gained: Integer;
begin
New := GetSkillLevel('smithing');
if New > 0 then
begin
Gained := New - Players[CurrentPlayer].Integers[4];
if Gained > 0 then
Players[CurrentPlayer].Integers[2] := Gained;
end;
end;

begin
SetupSRL;
SetupReflectionEx(True);
DeclarePlayers;
ClearDebug;
Bling;

repeat
ClearDebug;
WriteLn('Welcome to FaladorSmith'+' '+Players[CurrentPlayer].Name+'!');
while not LoggedIn() do
LoginPlayer();
SetAngle(True);
SetRun(True);
Players[CurrentPlayer].Integers[4] := GetSkillLevel('smithing');
SetupVars;
repeat
if Players[CurrentPlayer].Booleans[0] then
SetBest;
if Players[CurrentPlayer].Integers[0] < Players[CurrentPlayer].Integers[5] then
begin
case GetState() of
BANKING:
begin
WriteLn('In the bank, withdrawing ores');
if not DoBanking() then
begin
LogOut;
Failed := True;
StopReason := BANKFAIL;
end;
BankAttempts := BankAttempts + 1;
if BankAttempts > 2 then
begin
LogOut;
Failed := True;
StopReason := BANKFAIL;
end;
Wait(RandomRange(250, 1000));
end;
WALK:
begin
WriteLn('Walking...');
BankAttempts := 0;
if not WalkFunc() then
begin
LogOut;
Failed := True;
StopReason := WALKFAIL;
end;
end;
SMELTING:
begin
WriteLn('Smelting ore');
if not DoSmelting() then
begin
LogOut;
Failed := True;
StopReason := SMELTFAIL;
end;
CheckLevels;
Players[CurrentPlayer].Integers[0] := Players[CurrentPlayer].Integers[0] + 1;
Players[CurrentPlayer].Integers[3] := Players[CurrentPlayer].Integers[3] + CalculateBars();
ProgressReport;
if StopReason = NOORE then
begin
LogOut;
Failed := True;
end;
end;
BREAK:
begin
WriteLn('Taking a break');
StopReason := BREAKFAIL;
TakeBreak();
Breaks := Breaks + 1;
SetupVars;
end;
end;
end else
begin
WriteLn('Player reached load limit, changing to next player');
StopReason := LOADSDONE;
LogOut;
end;
until not(LoggedIn);
if Failed then
begin
StopCause;
NextPlayer(False);
end;
until(AllPlayersInActive);
end.

Players Array Notes
Integers:
0 - LoadsCompleted
1 - AntiBansDone
2 - LevelsGained
3 - BarsSmelted
4 - StartingSmithingLevel
5 - LoadsToDo
6 - RestEvery
7 - RestFor
Strings:
0 - BarType
Booleans:
0 - MakeBestBarType

Sir R. M8gic1an

2010-12-04 20:59:22

Cool, interesting code, however I think your player will end up stuck in randoms.

On a first look I didn't really see you calling any anti-randoms.

Also, Distance(x1, y1, x2, y2) exists as a function ;)

~RM

KillerTHC

2010-12-04 21:02:50

The FindRandoms procedure is called at the start of AntiBan, DoSmelting, DoBanking, and WalkFunc. AntiBan is used constantly during the smelting procedure.

Sir R. M8gic1an

2010-12-04 21:05:37

Well good job on your app, this is some of the solidest logic I've seen in a while.

~RM

KillerTHC

2010-12-04 21:06:49

Thank you. I try my best. Also I found Distance being used in MMWalk functions, however I could not find the DIstance function itself.

Cstrike

2010-12-04 21:39:57

I voted yes. Solid script from what it seems. Compiles. Shows multiplayer. Solid reflection knowledge, uses SRL as a failsafe killing two birds with one stone. TPoint usage with tiles, you understand the concept.

Very impressive, wish you called R_FindRandoms more.

My only suggestion is
procedure FindRandoms();
begin
if not R_FindRandoms then
FindNormalRandoms;
end;
Best to stick with one, IIRC R_FindRandoms returns true when it has found a random, false when it hasnt, so it will always run FindNormalRandoms. Me being picky, but it'd be best to just use one if you wanted or have the user specify. Really though, my point has no bearing on your application. Great job :)


With how this is set up, if I can get reflection even more developed, you will be able to get your hands on nice procedures that will make all your scripts continue to be unstoppable.


Assuming KillerTHC doesn't stop here, I think he will one day put out a script that will blow us all away if he keeps on this path.

TomTuff

2010-12-04 23:00:47

Easy yes from me.

lordsaturn

2010-12-04 23:41:08

[ if blah then Result := True;] can be reduced to [Result := blah] will make your code a lot cleaner in a lot of places.

Good job with standards. The one big chance you had to impress me (object finding) you used reflection instead :( Good antiban loop.

You did a good job though. Yes from me.

Cstrike

2010-12-04 23:51:28

From: lordsaturn
[ if blah then Result := True;] can be reduced to [Result := blah] will make your code a lot cleaner in a lot of places.

Good job with standards. The one big chance you had to impress me (object finding) you used reflection instead :( Good antiban loop.

You did a good job though. Yes from me.


Reflection instead O_o ?
You make it sound like it's a bad thing :(

KillerTHC

2010-12-05 00:00:20

From: lordsaturn
[ if blah then Result := True;] can be reduced to [Result := blah] will make your code a lot cleaner in a lot of places.

Good job with standards. The one big chance you had to impress me (object finding) you used reflection instead :( Good antiban loop.

You did a good job though. Yes from me.


I prefer reflection to using colors but plan to expand my knowledge greatly.

Frement

2010-12-05 00:04:23

Yes from me. Script looked clean and it was easy to follow.

lordsaturn

2010-12-05 02:51:37

From: cstrike
Reflection instead O_o ?
You make it sound like it's a bad thing :(


He's applying for SRL members, not reflection members. afaik reflection is not in the srl include.

Bad Boy JH

2010-12-05 02:55:30

I nearly sent this guy a PM earlier to tell him to apply, so its a definate YES from me.

Goddamn lord saturn, reflection is going to be a extremely important part of SRL, stop whining because you didn't have it when you applied. I didn't either, but I think we will all be better off with it….RAWG!

Sir R. M8gic1an

2010-12-05 09:41:26

From: Bad Boy JH
I nearly sent this guy a PM earlier to tell him to apply, so its a definate YES from me.

Goddamn lord saturn, reflection is going to be a extremely important part of SRL, stop whining because you didn't have it when you applied. I didn't either, but I think we will all be better off with it….RAWG!


I'd think lord saturn would know better what will or won't be an important part of SRL, guessing he's a dev and all…

And I don't think he's whinning :p

~RM

KillerTHC

2010-12-07 16:36:43

Just curios, but how much longer does the poll run? I want to get my hands on a Range/Mage script that works. lol

MylesMadness

2010-12-07 16:45:46

From: KillerTHC
Just curios, but how much longer does the poll run? I want to get my hands on a Range/Mage script that works. lol
You'll (sadly) find that the SRL members scripts area is near dead.

Cstrike

2010-12-07 17:37:02

From: MylesMadness
You'll (sadly) find that the SRL members scripts area is near dead.


This

Basically, for one to become an SRL member, they've gotten to the point where they can usually make the script themselves.

Though there are some nice scripts on there like my runite miner [/ego, /self promotion]

Bad Boy JH

2010-12-07 18:18:12

that silly internet in melbourne, I don't know what got replied to and what didn't, it was very sporadic.
I didn't reall think lord saturn was whining, its more the constant message by some members that Reflection is a non-essential part of SRL, when it improves both speed and accuracy.

Cstrike, I do consider you one of the better scripters, You are certainly way above my head.

Cstrike

2010-12-07 18:22:49

From: Bad Boy JH
that silly internet in melbourne, I don't know what got replied to and what didn't, it was very sporadic.
I didn't reall think lord saturn was whining, its more the constant message by some members that Reflection is a non-essential part of SRL, when it improves both speed and accuracy.

Cstrike, I do consider you one of the better scripters, You are certainly way above my head.


I'd say you and me are on the same level :)

KillerTHC

2010-12-07 18:25:25

Well, I guess I will have to release some scripts there. I will have to think of some genius ideas first. lol

Heavenguard

2010-12-07 19:25:20

Color was the heart of my scripting. Its the heartbeat man D: if anything don't try to downgrade it with reflection, just say their both good :D.

Nice script :D

Sir R. M8gic1an

2010-12-07 19:52:35

From: KillerTHC
Well, I guess I will have to release some scripts there. I will have to think of some genius ideas first. lol


Well honestly I was waiting a few more days as I was expecting some no votes due to reflection… guess not!

Welcome! :)

~RM

Bad Boy JH

2010-12-08 08:19:23

Congrats on SRL Member