SRL Archive - Archive

BigFate - SRL Member Application


BigFate

2012-09-20 18:49:00

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
No


What is your general programming knowledge?
C++


Are you a member of any other communities?
Sythe


Tell us about yourself…
From: BigFate
My name is Joe I am 17 and I am currently studying computing (C++ language) maths and chemistry here in the UK. I like to play basketball in my spare time along with going to the gym. If I have nothing else to do, I can't resist watching some prank videos on youtube (especially Japanese pranks).

I realise that the scripts I have released to the public so far are money making scripts but this is because that was the only thing I was interested in at the time. I think everyone starts like that..only wanting to make scripts for themselves to benefit from and not thinking about the community. I found it really tough to make a script for something I didn't feel enthusiastic about or something that a script has already been made for/isn't challenging. I am not interested in making scripts like these any more and I am moving on to creating scripts for the community to enjoy.

I am not a frequent poster but I am active and I do go on the website for a couple hours everyday. I try not to post something that is a waste of time to read and I try to reply to threads in the help section as much as I can (there is a lot of competition from people trying to help lol).

Sorry for the long winded block of text but I thought it would be good to explain some things. I understand if I don't become a member, it is just a case of taking the feedback and working on it. Regardless, I am thankful of what this community has taught me so far :)



Please show us one (or multiple) of your scripts.
{Sorry it's another money maker :S but I think it best displays what I've learnt
and what techniques I am able to use in my scripts now.

What it does: Collects zammy wines at chaos temple
Where to start: Start on tile in front of wine respawn}




program ZammyWineScript;
{$DEFINE SMART}
{$i srl/srl.simba}
{$I SRL/SRL/Misc/Online.simba}
{$i srl/srl/skill/magic.simba}
{$I SRL/SRL/MISC/SMARTGRAPHICS.SIMBA}


var
X,Y,Z,TimeGone,Wines,WinesPerHour,ProfitPerHour,Wine_Price,ChooseWorld: Integer;
BreakTime,Break_Counter,WorldHop_Counter,Reset_Counter,WinesMissed: Integer;
WorldHop: Array of Integer;
Recalibrate: Boolean;
v,t : Integer;
aFound: Extended;

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

with Players[0] do
begin
Name := ''; // Character Name
Pass := ''; // Character Pass
Pin := ''; // Character Pin
Nick := ''; // Character Nickname
Active := True; // Use player in script?
Member := False; // Member?
Booleans[0] := False; // Take breaks? (True means yes, take breaks / False means no, do not take breaks)

Integers[0] := 120; // Minimum time to play before breaking (in minutes)
Integers[1] := 180; // Maximum time to play before breaking (in minutes)
end;
ChooseWorld:= 80; //select the world you want the script to run on
WorldHop := [10, 11, 13, 14]; //select the worlds you want the script to hop to if a low amount of wines are collected
end;
//by Narcle
Function Loc(Location: string): Boolean;
begin
Result := Players[CurrentPlayer].Loc = Lowercase(Location);
end;
//by Narcle
Procedure SetLoc(Location: string);
begin
Players[CurrentPlayer].Loc := Lowercase(Location);
end;
//by freezyp
procedure BreakText;
begin
SMART_DrawText(100,200,UpCharsEx,'Just Taking A Human-Like Break,script still running',clAqua);
end;
//by Inception
procedure ResetBreakTimer;
begin
BreakTime := GetSystemTime + RandomRange(Players[CurrentPlayer].Integers[0] * 60000, Players[CurrentPlayer].Integers[1] * 60000);
end;
//by Flight
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;

randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
procedure SetupLogin;
begin
ClearDebug;
WriteLn('SMART & SRL Loading...');
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 10;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
{SRL_SixHourFix := True;}
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetupSRL;
MouseSpeed:= 25;
DeclarePlayers;
SetupRandomTool(100000, 5, '');
If not LoggedIn Then
Begin
Wait(1000);
LoginPlayerToLob;
SelectWorld(ChooseWorld);
LoginPlayer;
End;
Wine_Price := GetGEPrice(245);
Wines:= 0;
Players[CurrentPlayer].Loc := 'take the wine';
ActivateClient;
ResetBreakTimer;
Recalibrate:= False;
ClickNorth(0);
end;
Procedure Antiban;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;

Case Random(50) Of
0: Begin WriteLn('Performing Antiban') GameTab(tab_Stats); Wait(3000 + Random(500)); GameTab(tab_Inv) End;
1: Begin WriteLn('Performing Antiban') PickUpMouse; SleepAndMoveMouse(3000 + Random(500)); End;
2: Begin WriteLn('Performing Antiban') IdleTime(100+random(700), 100+Random(100), 0.2+RandomE/2) End;
3: Begin WriteLn('Performing Antiban') GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
4: Begin WriteLn('Performing Antiban') SleepAndMoveMouse(6000 + Random(1500)) End;
end;

end;
Procedure Proggy;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;

TimeGone:= (GetTimeRunning/1000);
WinesPerHour := (3600*(Wines))/((TimeGone));
ProfitPerHour := ((WinesPerHour)*(Wine_Price));
ClearDebug;
WriteLn('====================================================');
WriteLn(' ZammyWines ');
WriteLn('====================================================');
WriteLn('Running for: '+MsToTime(GetTimeRunning, Time_Formal)+'');
WriteLn('# of wines collected: '+IntToStr(Wines)+'');
WriteLn('Rate: ' +IntToStr(WinesPerHour)+ ' wines per hour');
WriteLn('Wines missed: ' +IntToStr(WinesMissed)+ '');
WriteLn('Profit: ' +IntToStr(ProfitPerHour)+ ' coins per hour');
WriteLn('Breaks Taken: ' +IntToStr(Break_Counter)+ '');
WriteLn('Worlds hopped: ' +IntToStr(WorldHop_Counter)+ '');
WriteLn('Resets: ' +IntToStr(Reset_Counter)+ '');
WriteLn('====================================================');
end;
Procedure HopWorld;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
WriteLn('Low amount of wines collected...switching worlds.');
ExitToLobby;
SelectWorld(WorldHop[Z]);
LoginPlayer;
inc(WorldHop_Counter);
inc(Z);
if Z > High(WorldHop) then
Z := 0
end;
function WineFinder: Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;

begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(1.19, 3.10);
FindColorsSpiralTolerance(MSCX-36,MSCY-9, TPA, 5465533, MSCX-43, MSCY-19, MSCX-25, MSCY+1, 20)
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 0, 0);
Wait(10+Random(10));
ClickMouse2(0);
Wait(400);
If(OptionsExist(['ke W','ine','f zam','orak'],False)) then
begin
GetMousePos(x,y);
Result := True;
end;
end;
end;
function TempleColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
R, G, B: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(25.00, 1.29);

FindColorsSpiralTolerance(MMCX, MMCY, arP, 6645088, MMX1, MMY1, MMX2, MMY2, 5);
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
ColorToRGB(arC[i], R, G, B);

if (R >= 96) and (R <= 107) and (G >= 92) and (G <= 103) and (B >= 92) and (B <= 103) then
begin
ColorToXYZ(arC[i], X, Y, Z);

if (X >= 10.98) and (X <= 12.66) and (Y >= 11.50) and (Y <= 13.13) and (Z >= 11.98) and (Z <= 14.47) then
begin
Result := arC[i];
Break;
end;
end;
end;

ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);

if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
function TempleDTM: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 1301;
dtmMainPoint.y := 305;
dtmMainPoint.AreaSize := 4;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := TempleColor;
dtmMainPoint.Tolerance := 5;

dtmSubPoints[0].x := 1301;
dtmSubPoints[0].y := 305;
dtmSubPoints[0].AreaSize := 4;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := TempleColor;
dtmSubPoints[0].Tolerance := 5;

dtmSubPoints[1].x := 1315;
dtmSubPoints[1].y := 299;
dtmSubPoints[1].AreaSize := 4;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := TempleColor;
dtmSubPoints[1].Tolerance := 5;

dtmSubPoints[2].x := 1297;
dtmSubPoints[2].y := 297;
dtmSubPoints[2].AreaSize := 4;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := TempleColor;
dtmSubPoints[2].Tolerance := 5;

dtmSubPoints[3].x := 1295;
dtmSubPoints[3].y := 307;
dtmSubPoints[3].AreaSize := 4;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := TempleColor;
dtmSubPoints[3].Tolerance := 5;

dtmSubPoints[4].x := 1308;
dtmSubPoints[4].y := 309;
dtmSubPoints[4].AreaSize := 4;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := TempleColor;
dtmSubPoints[4].Tolerance := 5;

TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
//by jakeyboy29
function BankFinder(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;

begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.21, 0.47);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4269871, MSX1, MSY1, MSX2, MSY2, 12) // Banker colour
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
SortATPAFromFirstPoint(ATPA,Point(MSCX,MSCY));
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
Wait(50+Random(50));
If(IsUpTextMultiCustom(['to B','o Ban','anke','nker'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
function LodestoneTeleportEx(Where: String): Boolean;
var
TPA: TPointArray;
TSA: TStringArray;
CTS, I: Integer;
begin
If not LoggedIn then Exit;
If not LodestoneScreen then Exit;

CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);

TSA := ['Lunar Isle', 'Yanille', 'Ardougne', 'Seers Village', 'Catherby', 'Taverley',
'Burthorpe', 'Edgeville', 'Falador', 'Port Sarim', 'Draynor Village', 'Lumbridge',
'Varrock', 'Al Kharid', 'Bandit Camp'];

TPA := [Point(45, 78), Point(160, 262), Point(167, 211), Point(192, 158), Point(223, 181),
Point(253, 180), Point(251, 145), Point(293, 160), Point(278, 206), Point(276, 249), Point(308, 211),
Point(327, 243), Point(345, 182), Point(362, 229), Point(326, 297)];

for I := 0 to 14 do
if Capitalize(Where) = TSA[I] then
begin
MMouse(TPA[I].X, TPA[I].Y, 2, 2);

{if (WaitUptextMulti(['Teleport', 'ele', 'ort', 'lepo', 'epor'], 400)) then
begin
ClickMouse2(Mouse_Left);
Result := true;
end;}
Result := True;
end;

ColorToleranceSpeed(CTS);
end;
function TeleportEdgeville: Boolean;
Var
b: TBox;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;


if not(GameTab(tab_Magic)) then
begin
FTab(tab_Magic);
end;

if (SpellAvailable(b, 'lumbridge home teleport')) then
begin
mouseBox(b.x1, b.y1, b.x2, b.y2, mouse_left);
Writeln('teleporting to Edgeville');
Wait(600+random(100));
end else
begin
Writeln('could not find Home teleport...terminating');
TerminateScript;
end;
wait(600+random(100));

If LodestoneScreen then
begin
LodestoneTeleportEx('Edgeville');
ClickMouse2(Mouse_Left);
Result:= True;
end else
begin
SetLoc('tele to edgeville');
Result:= False;
exit;
end;
FTab(tab_Inv);
Sleep(17000+random(1000));
end;
function TeleportFalador: Boolean;
Var
b: TBox;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;

if not(GameTab(tab_Magic)) then
begin
FTab(tab_Magic);
end;
if (SpellAvailable(b, 'lumbridge home teleport')) then
begin
mouseBox(b.x1, b.y1, b.x2, b.y2, mouse_left);
Writeln('teleporting to Falador');
Wait(600+random(100));
end else
begin
Writeln('could not find Home teleport..terminating');
TerminateScript;
end;
wait(600+random(200));
If LodestoneScreen then
begin
LodestoneTeleportEx('Falador');
ClickMouse2(Mouse_Left);
Result:= True;
end else
begin
SetLoc('tele to Falador');
Result:= False;
exit;
end;
FTab(tab_Inv);
Sleep(17000+random(1000));
end;
Function WalkToWine: Boolean;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
WriteLn('walking to temple');
MMouse(MMCX-42,MMCY-57,0,0);
ClickMouse2(1);
wait(1000);
repeat
Wait(400);
until not (IsMoving);
MMouse(MMCX-33,MMCY-64,0,0);
ClickMouse2(1);
wait(1000);
repeat
Wait(400);
until not (IsMoving);
MMouse(MMCX-4,MMCY-72,0,0);
ClickMouse2(1);
wait(5000);
repeat
Wait(600);
until not (IsMoving);
MMouse(MMCX+23,MMCY-54,0,0);
ClickMouse2(1);
wait(1000);
repeat
Wait(600);
until not (IsMoving);

If FindDTMRotated(TempleDTM,X,Y,MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x+3, y+6, 1, 1, True);
wait(400);
repeat
Wait(200);
until not (IsMoving);
Result:= True;
end else
begin
WriteLn('could not find temple..resetting');
SetLoc('tele to falador');
Result:= False;
end;
FreeDTM(TempleDTM);
end;
Function WalkToBank: Boolean;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
WriteLn('walking to Edgeville bank..');
MMouse(MMCX+73,MMCY+5,1,0);
ClickMouse2(1);
wait(1000);
repeat
Wait(400);
until not (IsMoving);
if LinearWalkTolerance(4938338,126,49,1,1,300) then
begin
repeat
Wait(50);
until not (IsMoving);
Result:= True;
end else
begin
SetLoc('tele to edgeville');
Result:= False;
exit;
end;
end;
Function BankWines: boolean;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
WriteLn('banking wines..');
If BankFinder(x,y) then
begin
ClickMouse2(0);
WaitOptionMulti(['nk B', 'k Ban'], 500);
Wait(1500+random(500));
if WaitFunc(@BankScreen, RandomRange(50, 100), 3000) then
begin
Deposit(2, 28, True);
Wait(500 + Random(500));
CloseBank;
Wait(400+random(200));
Result:=True;
end else
begin
WriteLn('could not find bank..trying again');
SetLoc('tele to edgeville');
Result:= False;
exit;
end;
end;
end;
Function InPosition: Boolean;
var
CTS: Integer;
TPA: TPointArray;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.16, 0.54);
if FindColorsSpiralTolerance(MSCX,MSCY, TPA, 793897, MSX1, MSY1, MSX2, MSY2, 3) then
begin
SortTPAFrom(TPA,Point(MSX1+600,MSY2));
x:= TPA[0].x;
y:= TPA[0].y;
MMouse(x, y, 1, 1);
Wait(30);
If WaitUptextMulti(['ttack'],300) then
begin
ClickMouse2(Mouse_Right);
WaitOptionMulti([ 'alk', 'ere'], 500);
end else
ClickMouse2(Mouse_Left);
wait(400);
repeat
wait(200);
until not IsMoving;
if FindColorsSpiralTolerance(MSCX,MSCY, TPA, 793897, MSX1, MSY1, MSX2, MSY2, 3) then
begin
SortTPAFrom(TPA,Point(MSX1+600,MSY2));
x:= TPA[0].x;
y:= TPA[0].y;
MMouse(x, y, 1, 1);
Wait(30);
If WaitUptextMulti(['ttack'],300) then
begin
ClickMouse2(Mouse_Right);
WaitOptionMulti([ 'alk', 'ere'], 500);
end else
ClickMouse2(Mouse_Left);
end else
begin
WriteLn('could not get into position..resetting');
SetLoc('tele to falador');
ColorToleranceSpeed(CTS);
Result:= False;
exit;
end;
end else
begin
WriteLn('could not get into position..resetting');
SetLoc('tele to falador');
ColorToleranceSpeed(CTS);
Result:= False;
exit;
end;
Result:= True;
ColorToleranceSpeed(CTS);
end;
Procedure CastSpell;
Var
b: TBox;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
if not(GameTab(tab_Magic)) then
begin
FTab(tab_Magic);
end;
Wait(1000+random(500));
if (SpellAvailable(b, 'telekinetic grab')) then
begin
mouseBox(b.x1, b.y1, b.x2, b.y2, mouse_left);
WriteLn('telekinetic grab selected');
FTab(tab_Inv);
end else
begin
WriteLn('Out of runes..ending script');
LogOut;
TerminateScript;
end;
MMouse(x,y,2,2);
Wait(1000+random(500));
end;
Function TakeWine: Boolean;
var
timer,PlusOne,NoWineCount: Integer;
BreakOut: Boolean;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;
MarkTime(timer);
repeat
if WineFinder then
break;
if TimeFromMark(timer) > 60000 then
begin
BreakOut:= True;
break;
end;
wait(100);
until FindNormalRandoms or not LoggedIn;

if BreakOut then
begin
WriteLn('could not find wine..resetting');
SetLoc('lost');
Result:= False;
exit;
end;

MMouse(x,y,2,2);
WriteLn('wine position found.');
NoWineCount:= 0;
Wait(1000+random(500));

repeat
PlusOne:= InvCount + 1;
CastSpell;
repeat
Wait(2);
Until FindColorTolerance(v,t,2039,MMCX-8, MMCY-4, MMCX-3, MMCY,40);
//ClickMouse(x,y,mouse_Left);
ClickMouse2(1);
Wait(7000+random(500));
If InvCount=PlusOne Then
begin
WriteLn('Got the wine.');
NoWineCount:= 0;
inc(Wines);
end else
begin
WriteLn('crap, too slow');
inc(WinesMissed);
inc(NoWineCount);
end;
If NoWineCount >= 2 then
begin
HopWorld;
SetLoc('take the wine');
NoWineCount:= 0;
Result:= False;
exit;
end;
If InvCount >= 18 then
begin
if not Recalibrate then
begin
SetLoc('take the wine');
Result:= False;
WriteLn('Recalibrating wine position.');
Recalibrate:= True;
exit;
end;
end;
Wait(5000+random(500));
Proggy;
until InvFull or not LoggedIn

Result:= True;
Recalibrate:= False;
end;
procedure Restart;
begin
ClearDebug;
WriteLn('RESTARTING SMART');
smartkillclient(Smart_CurrentClient);
Smart_FixSpeed := True;
SetupSmart(true);
ActivateClient;
LoginPlayerToLob;
SelectWorld(ChooseWorld);
LoginPlayer;
ClickNorth(SRL_ANGLE_HIGH);
FindNormalRandoms;
SetLoc('lost');
end;
function Reset: Boolean;
begin
if FindNormalRandoms then
begin
SetLoc('lost');
exit;
end;
if not LoggedIn then
Restart;
WriteLn('something went wrong, resetting..')

Inc(Reset_Counter);
if InvFull then
begin
SetLoc('tele to edgeville');
Result:= True;
exit;
end;

SetLoc('tele to varrock');
Result:= True;
end;
//by Inception from his tut: [url]http://villavu.com/forum/showthread.php?t=75053[/url]
procedure TakeBreak;
var
H, M, S, T, BreakFor: Integer;
begin
if FindNormalRandoms then
exit;
if not LoggedIn then
begin
SetLoc('lost');
exit;
end;

if (GetSystemTime >= BreakTime) and Players[CurrentPlayer].Booleans[0] then
begin
Logout;
BreakFor := RandomRange(10 * 60000, 15 * 60000); // Between 10-15 minutes
ConvertTime(BreakFor, H, M, S);
Writeln('Break for: ' + IntToStr(M)+ 'm:' + IntToStr(S)+ 's');
BreakText;
MarkTime(T);
Repeat
Sleep(5000);
until (BreakFor < TimeFromMark(T))
LogInPlayer;
ResetBreakTimer;
Wait(4000);
SMART_ClearCanvasArea(IntToBox(2, 3, 515, 335));
FindNormalRandoms;
Inc(Break_Counter);
end;
end;

begin
SetupLogin;
repeat
Case Players[CurrentPlayer].Loc of
'lost':
if not Reset then
begin
WriteLn('could not reset');
Logout;
TerminateScript;
end;
'take the wine':
if TakeWine then
SetLoc('tele to edgeville');
'tele to edgeville':
if TeleportEdgeville then
SetLoc('walk to bank');
'walk to bank':
if WalkToBank then
SetLoc('bank the wines');
'bank the wines':
if BankWines then
SetLoc('tele to falador');
'tele to falador':
if TeleportFalador then
SetLoc('walk to wine');
'walk to wine':
if WalkToWine then
SetLoc('get in position');
'get in position':
if InPosition then
SetLoc('checks');
'checks':
begin
Antiban;
Proggy;
TakeBreak;
SetLoc('take the wine');
end;
end;
until (false);
end.


EtherFreak

2012-09-20 20:19:00

I like the fact that you seem to enjoy writing scripts that are changing, and not just for personal gain. I find it is always rewarding making a script that does amazing things, and then some time later (after updates) you open it, and it still works after said updates because of the time put into it. There are some things that I question in the script, namely the one line procedures. I personally (and could be wrong) would eliminate a few lines and just put the line where it maters. As for the question of how I voted…yes would be the vote.

Sin

2012-09-20 20:28:29

Yes from me, increase the activity though!

P1ng

2012-09-20 20:41:28

1. CTS2
2. DDTM
3. TPAs
4. WaitFunc



1. Lots of global variables - I understand many of them are needed
2. Mainloop until false - I understand you have many failsafes and that it won't just repeat forever, but y'know.
3. 2x procedures/functions that are identical -

//by Narcle
Function Loc(Location: string): Boolean;
begin
Result := Players[CurrentPlayer].Loc = Lowercase(Location);
end;
//by Narcle
Procedure SetLoc(Location: string);
begin
Players[CurrentPlayer].Loc := Lowercase(Location);
end;
4. You have HumanMMouse in your script but you never use it?

Overall - I think you have displayed an appropriate level of scripting ability. I'd like to see a bit more activity from you around the forums, but I like that none of your posts are useless and they all have something valid to contribute. It's a yes from me.

Le Jingle

2012-09-20 20:50:10

Hello BigFate!

It's good to see you applying. From first glance, as well as stated by Shay, I would like to see more activity. Other than that, I'll dive right into my personal opinions on your application. (I do this so I can offer my perspective and hopefully something's derived from my opinion, on your end, that will serve useful later :> )

Pro's:
  • Nice use of global variables, for example, using MMCX as opposed to simple static coordinates with integer values.
  • Utilizing the fourth level (what I like to call files that aren't in the SRL include/setup) includes (graphics/online/magic .simba's), as well as the includes in general.
  • Script length is decent, given there's parts that could be cleaned up/reduced, you managed to work with a larger script size.
  • Better use of finding items/places/people. It's nice to see function dedicated to search for something rather than using a FindObject function.
  • Standards are decent. Granted it's not the same as me, but I do like the fact that I can easily read your script without having to use Dgby's parser.
  • LinearWalkTolerance - Have not seen this used in recent scripts. I think it fits the script well as you do walk against a wall when traveling to/from the wines.

Con's:
  • A little too much global variables. Try not to go crazy here for a small-medium(ish) script.
  • In a couple of places you use ClickMouse2(0); or ClickMouse2(1); - I think, personally, changing these to mouse_left/mouse_right would be better values.
  • Small repeat loops like:

  • repeat
    Wait(400);
    until not (IsMoving);
    … I don't exactly like, as I see it personally as a script breaker. I'd suggest changing these to include fail safes (timer check) and possibly more use as opposed to simply a ismoving check.
  • CTS, I think there's some reliability on tutorial/examples, but you do make good use of them. Perhaps improving these functions and being a little more creative in terms of fail safes and precise checks would definitely do justice. You do example effective use of them nonetheless, given your time around the community.
  • More use of waitfunc, when applicable - I'd use it at spots where you do static waits between functions. For example, in the BankWines function, on the deposit or close bank functions (is where it could be applied)

Conclusion: I really enjoy your applying, and thanks for the intro, I feel like you are able to really get to know the community. You seem like you are a good learner, as this is a decent applying script. My feedback (Pro's vs. Con's) leads me to conclude personally that I will vote, Yes. In my opinion, my Pro's carry much more weight then my Con's. My Con's, in my opinion, are miniscule and could potentially be easily accomplished via you.

P.S. - I do encourage you to continue learning and continuing to develop your skills. I definitely think you have a lot of potential. My only concern is really your time around the forums. Being active can be hard at times, I know, but I still defend my vote of Yes.

Cheers,
Lj

Edit : I switched my vote to No. It's come to my attention (from later posts on this thread) that you've not been honest. This is a crucial part in Applying. Hence, I now vote no, as I don't see such actions from you at this time worthy of SRL Members.

Nebula

2012-09-20 20:58:17

Break Procedure was stolen from this tut: http://villavu.com/forum/showthread.php?t=75053

TPA object finding ripped from other peoples' scripts. A google search found this (from before he was even registered) which is nearly identical to the TPA finding used in this script, with even the same comment "// Banker colour"
From: jakeyboy29
function BankFinder(x, y: Integer): Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.25, 0.35);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3830891, MSX1, MSY1, MSX2, MSY2, 18) // Banker colour
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 2, 2);
Wait(200+Random(50));
If(IsUpTextMultiCustom(['anker'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;


I'm sure I could find more things that are ripped but the above are enough for me to think that 50%+ of this script isn't even yours. Take away flight's mouse function(s), the slightly modified lodestone function, ACA, etc, and this script doesn't show much. Also you aren't very active. So I'm voting no.

cause

2012-09-20 22:29:41

EDIT: no

[XoL]

2012-09-20 22:39:58

Voting no because of copyright issues that Nebula found.

Sirenia

2012-09-21 01:57:42

If its indeed copied function then you should state who you borrowed them from

BigFate

2012-09-21 07:55:07

Thanks to everyone for looking at my application and posting. This is in regards to Nebula's feedback..




Sorry, I honestly did not think about the break procedure taken from the tut. Because it was from a tut I thought anyone could use it without needing to credit just like how you would use something from the include and it just passed over me..I apologize about this and I will give credit, I was wrong.

I also apologize for the bank finder function, obviously it is very similar but I have used my own ATPA manipulation, colours, hue and sat, and uptext. My thought was that this function is very standard and a lot of scripts will have something very similar…how else would you find the banker accurately other than looping through a set of ATPA's until you find the correct uptext? I actually thought I did a good thing by doing this, demonstrating I could use TPA's and ATPA's instead of using functions like openbank from the include again. It may look like I've stolen it and not been honest but seriously this isn't my intention and what I am really like…just an honest mistake. I understand everything that is going on in the script I haven't just stuck something in and hope it worked.

As for saying this script doesn't show much I can't agree with that.
-I have used a DDTM with autocolor to get inside the temple everytime
-I have used my own InPosition function with a lot of different TPA manipulation and Uptext failsafes to get to the exact tile in front of the wine (it is hard to get yourself on a particular tile consistently)
-I've used a range of walking techniques..point clicking, linearwalktolerance, DDTM
-I have my own BankWines function using waitfunc to wait for the bankscreen
-I created my own cast spell and teleportEdgeville/teleFalador procedures that makes use of the include very well
-I have my own accurate proggy that makes use of the GetGEPrice function so that you don't have to enter the price manually everytime you use the script
-I have my own SetupLogin procedure which includes using the RandomTool
-I use the WineFinder function to get the position of the wine, then grab the wine using my TakeWine function that is faster than humans are able to grab the wine
-I don't use uptext or Mainscreen colours to click the wine when it respawns because they are unreliable instead I use the minimap and check for when the red dot appears and I only search with a small area so that normal drop dots from bones etc don't affect it
-My TakeWine function has a lot of failsafes and even recalibrates the position of the wine after a while because the wine respawns increasingly in a position to the left or right after the first time you've taken it
-I have my own Restart procedure for the six hour update so that it will log back in and keep on running
-I have my own Reset function so that the script will never stop completely because it will just teleport to edgeville or falador depending on how many wines are in your inventory and continue as normal unless there is an unsolvable random in which case the script terminates.
-I have a case statement mainloop which is very neat and effective and is failsafed so that if a function returns false it won't try to continue and mess up, instead it will reset and figure out if it needs to bank or take wines or is in a random
-I also have my own hopworld procedure if another bot is taking the wines faster than you and you can set which worlds you want to hop to
-I make use of many different variable types Integer, array of Integer, Extended, Boolean, TBox, TPA, ATPA

I think the script demonstrates a load of different things and can run for a very long time. I have made a lot of the functions and procedures myself and utilised the include well, saying 50%+ isn't mine feels a bit unfair to me when I've worked on it very hard. One of the requirements to become a SRL Member is to use the include. I didn't think you would have to start everything from scratch otherwise most SRL Members could be developers.

It is true I am not very active in regards to posting so I will definitely work on it and post more threads but I do go on the forum a lot reading threads and tuts and pming people. This is probably one of the things I need to work on the most and post a lot more. I get a bit hesitant when I'm posting something in-case I say something wrong or something that looks like spam and has already been said.



Sorry if it looked like I was dishonest but genuinely that is not what I'm about.
Thank-you very much for taking the time to read through my application and give me feedback I will look over all of it and work on all the points made whatever happens.

Sirenia

2012-09-21 08:35:24

I can see that you have done alot of job on this script and going to read it through alot more indepth when I come home from school, one small thing I noticed is ur repeat - wait - until not - ismoving loops, theres not much wrong with that since your character wont run forever unless something goes very wrong however you can short that down to one line: while isMoving do Wait(100 + random(50));

litoris

2012-09-21 10:07:24

Seems like you have plagiarized, but I'd personally vote no tot his application simply because you don't show a good understanding of the SRL include. You wouldn't have to credit others for adding stuff to the player record if you knew how it worked. I really think applicants should know how stuff like this work, because it is one of the most essential parts in a script.

Ashaman88

2012-09-21 10:54:05

Yes

BigFate

2012-09-25 08:22:52

thanks for replies, I will apply in a couple months when I am less busy

BraK

2012-09-25 09:04:56

Good to see your not discouraged by this. Onward to the future. Closed.