SRL Archive - Archive

Fizzi - SRL Member Application Form


Fizzi

2007-07-20 00:29:44

<!– BEGIN TEMPLATE: formanswers –>
Fizzi - SRL Member Application Form
Fizzi

What is the meaning to life?


Where you Referred to SRL? If yes, by whom?
no


Programming Knowledge
Java, VB

Other Communitys
None

How Long have You Played Runescape
Put it this way… a red mask was 45k

Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.

I'm 17 years old and I just graduated high school. I'm gonna be a freshman at McGill University in Montreal starting this coming August and I'll be majoring in computer engineering. I started programming when I was a freshman in high school. I took a computer sciences course because I've always loved computers and technology in general. I learned VB that year, liked it, and took Java the year after. I received a 4 on my computer sciences AP exam. I was actually really looking to get back into programming when I found out about this community, and I'm really glad I did. I'm programming again and it's a lot of fun :).

——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted

{-------------------WHAT SOFT CLAY FARMER DOES-----------------------
Soft clay farmer runs from Falador east bank to rimmington mining site,
then mines a full inventory of clay, then runs to the well in falador,
fills your buckets and turns the clay into soft clay, banks the clay in
Falador east bank, and repeats. }

{--------------HOW TO SET UP SOFT CLAY FARMER------------------------
1) Setting up your script options
-Set the number of buckets you want to use (I use two, using more
than one is nice because the well fills buckets at the same time).
-Set the number of loads to do before switching characters.
-Set up all of your players in the DeclarePlayers procedure.

2) Setting up your players
-Place your buckets in your first inventory slots.
Example:
You are using two buckets, place them in inventory slots 1 and 2.
Your Inventory looks like this:
1 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
-Place your pick in the inventory slot after the buckets (If you are not
wielding it).
-Put all of your players in the western-most bank stall in falador east
bank.

3) Starting the script
-Stabilize your colors first! You do this by logging on any player and
then logging out. (If you do not stabilize your colors, your first
player will NOT find the fork south of fally).
-After stabilizing your colors, start the script when logged out.

4) Posting a progress report :)
-After you run the script. Copy the progress report in the debug screen
and post it on my thread. Please!
}

// START OF NO TOUCH ZONE! (Don't touch!)
program SoftClayFarmer;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/Mining.scar}
{.include SRL/SRL/extended/xInventory.scar}

var
LoadsCount, TotalLoads, ClayCount : Integer;
DidRandomHappen: Boolean;
MMFallyRoadCol, MMRoadCol : Integer;
EmptyBucketDTM, FullBucketDTM, ClayDTM, SoftClayDTM : Integer; //DTM's
ForkNofMineDDTM, ForkSofFallyDDTM, ForkFallyDDTM : Integer; //DDTM's

const
MMMineColTemp = 871551;
MSWellCol = 4351604;
MSClayCol1 = 8435411;
MSClayCol2 = 7581647;
MSClayCol3 = 5273999;
// END OF NO TOUCH ZONE!

// START OF TOUCH ZONE!
const
NumLoads = 3; //Number of loads before switching players
NumBuckets = 2; //Number of buckets to use (Same on ALL characters)

procedure DeclarePlayers;
begin
HowManyPlayers := 7; //Number of PLAYERS. active or not.
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Player to start on.

Players[0].Name := 'Name';
Players[0].Pass := 'password';
Players[0].Nick := '3-4 letters of name'; //Pick lowercase letters
Players[0].Boolean1 := True; //Pickaxe equipped?
Players[0].Active := True;

Players[1].Name := 'Name';
Players[1].Pass := 'password';
Players[1].Nick := '3-4 letters of name'; //Pick lowercase letters
Players[1].Boolean1 := False; //Pickaxe equipped?
Players[1].Active := True;

Players[2].Name := 'Name';
Players[2].Pass := 'password';
Players[2].Nick := '3-4 letters of name'; //Pick lowercase letters
Players[2].Boolean1 := False; //Pickaxe equipped?
Players[2].Active := True;

Players[3].Name := 'Name';
Players[3].Pass := 'password';
Players[3].Nick := '3-4 letters of name';
Players[3].Boolean1 := True; //Pickaxe equipped?
Players[3].Active := True;

Players[4].Name := 'Name';
Players[4].Pass := 'password';
Players[4].Nick := '3-4 letters of name'; //Pick lowercase letters
Players[4].Boolean1 := True; //Pickaxe equipped?
Players[4].Active := True;

Players[5].Name := 'Name';
Players[5].Pass := 'password';
Players[5].Nick := '3-4 letters of name';
Players[5].Boolean1 := True; //Pickaxe equipped?
Players[5].Active := True;

Players[6].Name := 'Name';
Players[6].Pass := 'password';
Players[6].Nick := '3-4 letters of name';
Players[6].Boolean1 := True; //Pickaxe equipped?
Players[6].Active := True;

NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
// END OF TOUCH ZONE

// DO NOT TOUCH ANYTHING BELOW (Unless you know what you are doing)
procedure Proggy; //Progress report
var
i : Integer;
begin
ClearDebug;
Writeln('OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO');
Writeln('O Soft Clay Farmer 1.01 ');
Writeln('O by Fizzi ');
Writeln('O==========================================');
Writeln('O Worked For : ' + ScriptTime2(2));
Writeln('O Loads : ' + IntToStr(TotalLoads));
Writeln('O Banked ' + IntToStr(ClayCount) + ' Soft Clay')
Writeln('OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO');
Writeln('O Error Report ');
Writeln('O==========================================');
for i := 0 to (HowManyPlayers-1) do
begin
if(Players[i].String1 = '') then Players[i].String1 := 'Still Running!';
Writeln('O '+Players[i].Name+' : '+Players[i].String1);
end;
Writeln('OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO');
SRLRandomsReport;
end;

procedure DeactivatePlayer(reason: string); //Called a lot in script, Sets the player
//inactive, does a count, and calls the progress report.
begin
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].String1 := reason; //Used for report so I know what happened to your character
Proggy;
Writeln(reason);
LogOut;
end;

//Random Finding, all credit goes to WT-Fakawi
function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
if (Result = true) then
DidRandomHappen := true;
end;

//Random finding
procedure FindRandoms;
begin
if(not(LoggedIn)) then Exit;
if(FindFight) then
begin
RunAwayDirection('N');
Wait(20000+random(5000));
RunBack;
if(HPPercent < 40) then //Checks to make sure you didn't get beat too bad
begin
DeactivatePlayer('HP low');
Exit;
end;
end;
FindFastRandoms;
FindNormalRandoms;
end;

//MakeDDTM by mastaraymond
Procedure MakeDDTM(var TheDTM:integer;TheDDTM: TIntegerArray);
var
TempLength,i:integer;
DDTM:TDTM;
begin;
TempLength:= (Length(TheDDTM) div 6);
If (TempLength < 2) then exit;
DDTM.MainPoint.x:= TheDDTM[0];
DDTM.MainPoint.y:= TheDDTM[1];
DDTM.MainPoint.AreaSize:= TheDDTM[2];
DDTM.MainPoint.AreaShape:= TheDDTM[3];
DDTM.MainPoint.Color:= TheDDTM[4];
DDTM.MainPoint.Tolerance:= TheDDTM[5];
SetArrayLength(DDTM.SubPoints, 0);
for i := 0 to TempLength -2 do
begin
SetArrayLength(DDTM.SubPoints, Length(DDTM.SubPoints) +1);
DDTM.SubPoints[Length(DDTM.SubPoints) -1].x:= TheDDTM[(I+1)*6 + 0];
DDTM.SubPoints[Length(DDTM.SubPoints) -1].y:= TheDDTM[(I+1)*6 + 1];
DDTM.SubPoints[Length(DDTM.SubPoints) -1].AreaSize:= TheDDTM[(I+1)*6 + 2];
DDTM.SubPoints[Length(DDTM.SubPoints) -1].AreaShape:= TheDDTM[(I+1)*6 + 3];
DDTM.SubPoints[Length(DDTM.SubPoints) -1].Color:= TheDDTM[(I+1)*6 + 4];
DDTM.SubPoints[Length(DDTM.SubPoints) -1].Tolerance:= TheDDTM[(I+1)*6 + 5];
end;
TheDTM := AddDTM(DDTM);
end;

function ClickNpcChatTextRight(txt : String) : Boolean; //Like ClickNpcChatText
//by Kernel Klink or Stupid3000, font by Masquerader, only this one Right-Clicks as per FT-Fakawi's modification.
var
tx,ty,s:integer;
begin
s := CreateBitmapMaskFromText(txt, npcchars);
if FindBitmapMaskTolerance(s, tx, ty, 9, 348, 523, 471, 50, 10) then
begin
Mouse(tx, ty, 0, 0, False);
Result:=True;
end;
FreeBitmap(s);
end;

procedure RandomActivity; //Antiban
{RandomActivity is called very often, I want it to very rarely do
one of the activities. The player is usually very busy moving the mouse
anyway, meaning a real player would have less time to do something
"random", therefore the script does not need to do something random
too often. Random(100) makes it do the activities rarely.}
begin
if(not(LoggedIn))then Exit;
case Random(100) of
0: PickUpMouse;
1: begin
HoverSkill('Mining', false);
wait(2000+random(1000));
GameTab(4);
end;
2: SleepAndMoveMouse(1000+random(250));
end;
end;

procedure SetupScript; //Only called once, to set up the script
begin
SetupSRL;
SetupSRLMining;
DeclarePlayers;
ActivateClient;
Wait(1000+random(100));
end;

procedure Prepare; //Prepares each character for their runs
begin
MouseSpeed := 1;
LampSkill := 'mining';
LoginPlayer;
MakeCompass('N');
HighestAngle;
SetChat('on',1);
SetChat('off',2);
SetChat('off',3);
LoadsCount := 0;
FindPickHeadColor;
EquipPick := Players[CurrentPlayer].Boolean1;
Wait(3000+random(1000));
end;

//RadialRoadWalk by WT-Fakawi & Wizzup? and modified by Ron.
//Added XDist and Ydist integers that get added to the coordinates
//of the clicking procedure. This use in my script so I can
//walk south-east of a road to find the mining symbol in rimmington mine.
//Can be used to walk off a road in any direction.
function RadialOffRoadWalk(TheColor: Integer; StartRadial, EndRadial: Integer;
Radius: Integer; XDist, YDist: Integer; Xmod, Ymod: Integer): Boolean; // By Wizzup? and WT-Fakawi.
var
i, X1, Y1: Integer;
begin
if (RoadColorChecker) then
if (DebugRadialRoad) then
WriteLn(' THROUGH RADIALROADWALK= ---> ' + IntToStr(RoadColor));
if (StartRadial = EndRadial) then
begin
WriteLn('Using LinearRoadWalk, equal values.')
if LinearRoadWalk(TheColor, StartRadial, Radius, Xmod, Ymod) then
Result := True;
end
else if (StartRadial < EndRadial) then
begin
repeat
for i := StartRadial to EndRadial do
begin
x1 := Round(Radius * Sine(i)) + 646;
y1 := Round(-Radius * Cose(i)) + 84;
if Not LoggedIn then Exit;
if (FindColor(x, y, TheColor, X1, Y1, X1 + 1, Y1 + 1)) then
begin
MouseFindNoFlag(X+XDist,Y+YDist,Xmod,Ymod);
Result := True;
CountFlag(10);
Exit;
end;
end;
Radius := Radius - 4;
until (Radius <= 1);
end else
if (StartRadial > EndRadial) then
begin
repeat
for i := StartRadial downto EndRadial do
begin
x1 := Round(Radius * Sine(i)) + 646;
y1 := Round(-Radius * Cose(i)) + 84;
if Not LoggedIn then Exit;
if (FindColor(x, y, TheColor, X1, Y1, X1 + 1, Y1 + 1)) then
begin
MouseFindNoFlag(X+XDist,Y+YDist,Xmod,Ymod);
Result := True;
CountFlag(10);
Exit;
end;
end;
Radius := Radius - 4;
until (Radius <= 1);
end
end;

//Checks if the road color has changed due to loading, and if it has, it changes it.
function FixRoadCol(RoadCol: Integer; Location: String) : Integer;
begin
if(not(FindMMColor(x, y, RoadCol))) then
begin
if(Location = 'fally') then RoadCol := FindFallyRoadColor;
if(Location = 'road') then RoadCol := FindRoadColor;
end;
Result := RoadCol;
end;

//Banks all items beyond your buckets and pick
procedure BankLoad;
begin
if(not(LoggedIn)) then Exit;
SoftClayDTM := DTMFromString('78DA635CCCC4C020C9C8800CF282F818B8803' +
'448F43F10302E01AAE1475503918591407A1D508D0801356B806A' +
'6408A8590454A34C40CD54A01A59026A661336070021050A2C'); //DTM used to count soft clay
ClayCount := ClayCount + CountItemDTM(SoftClayDTM);
FreeDTM(SoftClayDTM);
Status('Banking');
if (Players[CurrentPlayer].Boolean1 = True) then //If pick equipped,
begin
Deposit(NumBuckets + 1, 28, 2);
end else Deposit(NumBuckets + 2, 28, 2); //pick in inventory
LoadsCount := LoadsCount + 1;
TotalLoads := TotalLoads + 1;
Proggy;
Wait(2000+random(1000));
CloseBank;
Wait(2500+random(1000));
if(HPPercent < 40) then
begin
DeactivatePlayer('HP low');
Exit;
end;
FindRandoms;
Wait(2500+random(1000));
end;

//----------Start of walking procedures.-------------\\
//Goes to south gate.
procedure LeaveFally;
var
TLeaveFally, TryFind : Integer;
begin
if(not(LoggedIn)) then Exit;
if(InvFull) then //Make sure you aren't full before leaving
begin
OpenBankQuiet('feb');
Wait(1000+random(500));
BankLoad;
end;
SetRun(True);
Status('Leaving Fally');
TryFind := 0;
repeat //Added this because for some reason the script was failing to find the color sometimes
MMFallyRoadCol := FindFallyRoadColor;
Wait(500+random(100));
TryFind := TryFind + 1;
until(MMFallyRoadCol <> 0) or (TryFind > 15);
if(MMFallyRoadCol = 0) then
begin
DeactivatePlayer('Could not find Fally road color');
Exit;
end;
MMFallyRoadCol := FixRoadCol(MMFallyRoadCol, 'fally');
RadialRoadWalk(MMFallyRoadCol, 240, 160, 40, 2, 2);
FFlag(0);
MarkTime(TLeaveFally);
repeat
MMFallyRoadCol := FixRoadCol(MMFallyRoadCol, 'fally');
RadialRoadWalk(MMFallyRoadCol, 160, 220, 45, 2, 2);
FFlag(0);
if(TimeFromMark(TLeaveFally) > 60000) then
begin
DeactivatePlayer('Failed to leave Fally');
Exit;
end;
until(FindRoadColor <> 0);
MMFallyRoadCol := FixRoadCol(MMFallyRoadCol, 'fally');
RadialRoadWalk(MMFallyRoadCol, 160, 220, 35, 2, 2); //Used to make sure you are close
//enough to click on road color
end;

//Walks from south gate to south of fally fork to mine fork
procedure SouthGateToFork;
var
TFindSoFFork, TFindNoMFork : Integer;
begin
if(not(LoggedIn)) then Exit;
MMRoadCol := FindRoadColor;
MakeDDTM(ForkSofFallyDDTM,[641,102,0,0,MMRoadCol,10,
624,71,2,0,MMRoadCol,10,
611,104,2,0,MMRoadCol,10,
672,116,2,0,MMRoadCol,10]); //DDTM For South of Fally Fork
Status('Left Fally, looking for south of Fally fork');
MarkTime(TFindSoFFork);
repeat
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
RadialRoadWalk(MMRoadCol, 140, 220, 40, 2, 2);
RandomActivity;
FFlag(0);
Wait(500+random(250));
if(TimeFromMark(TFindSoFFork) > 90000) then
begin
DeactivatePlayer('Failed to find south of fally fork.');
Exit;
end;
until(DTMRotated(ForkSofFallyDDTM, x, y, MMX1, MMCY-30, MMX2, MMY2)); //The MMCY-30 is
//used because sometimes the script was confusing the mine fork with this
//or vice versa. I use selective areas to look for fork DDTM's nearly every time for this reason
Status('Found south of Fally fork');
Mouse(x, y, 2, 2, true); //Clicks on the fork
FFlag(0);
FreeDTM(ForkSofFallyDDTM);
MakeDDTM(ForkNofMineDDTM,[616,67,0,0,MMRoadCol,10,
594,48,2,0,MMRoadCol,10,
645,66,2,0,MMRoadCol,10,
598,88,2,0,MMRoadCol,10]);
Status('Looking for mine fork');
MarkTime(TFindNoMFork);
repeat
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
RadialRoadWalk(MMRoadCol, 230, 310, 40, 2, 2);
RandomActivity;
FFlag(0);
Wait(500+random(250));
if(TimeFromMark(TFindNoMFork) > 90000) then
begin
DeactivatePlayer('Could not find north of mine fork.');
Exit;
end;
until(DTMRotated(ForkNofMineDDTM, x, y, MMX1, MMY1, MMCX+30, MMY2));
Status('Found mine fork');
Mouse(x, y, 2, 2, true);
FFlag(0);
FreeDTM(ForkNofMineDDTM);
end;

//Walks from mine fork to mining site symbol
procedure ForkToMine;
var
TFindMine, XInc, YInc : Integer;
begin
if(not(LoggedIn)) then Exit;
Status('Looking for mine');
MarkTime(TFindMine);
repeat
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
RadialOffRoadWalk(MMRoadCol, 180, 270, 55, 20+XInc, 15+YInc, 2, 2);
//OffRoadWalk is used to walk next to the road to find the mine.
FFlag(0);
Wait(500+random(250));
if (XInc < 13) then XInc := XInc + 12;
if (YInc < 3) then YInc := YInc + 2;
if(TimeFromMark(TFindMine) > 90000) then
begin
DeactivatePlayer('Failed to find mine');
Exit;
end;
until(FindSymbol(x, y, 'mining site'));
Status('Found mine');
Mouse(x, y, 2, 2, true); //Click symbol
FFlag(0);
end;

//Finds the clay rocks
procedure ToClayRocks;
var
TLeaveRoad : Integer;
begin
if(not(LoggedIn)) then Exit;
SetRun(False);
MarkTime(TLeaveRoad);
repeat
RadialWalk(FindStoneColor, 160, 20, 70, 2, 2); //Walks to the east side of mine
FFlag(0);
Wait(1000+random(500));
if(TimeFromMark(TLeaveRoad) > 50000) then
begin
DeactivatePlayer('Could not find clay rocks.');
Exit;
end;
until((FindMSColorTol(x, y, MSClayCol1, 4)) or (FindMSColorTol(x, y, MSClayCol2, 4)) or
(FindMSColorTol(x, y, MSClayCol3, 4))); //Until find clay rocks
if (FindMSColorTol(x, y, MSClayCol1, 4)) or (FindMSColorTol(x, y, MSClayCol2, 4)) or
(FindMSColorTol(x, y, MSClayCol3, 4)) then
begin
Status('Found clay rocks!');
MMouse(x, y, 2, 2);
Wait(500+random(250));
if (IsUpText('ocks')) then Mouse(x, y, 2, 2, true);
FFlag(0);
Wait(2000+random(500));
end else
begin
DeactivatePlayer('Could not find clay.');
Exit;
end;
end;

//Walking procedures from bank to mine.
procedure WalkToMine;
begin
LeaveFally;
SouthGateToFork;
ForkToMine;
ToClayRocks;
end;

//Gets a full inventory of clay.
procedure MineClay;
var
Tries, FailFind, TSwing : Integer;
begin
if(not(LoggedIn)) then Exit;
SetRun(True);
Status('Mining...');
repeat
if (FindMSColorTol(x, y, MSClayCol1, 4)) or (FindMSColorTol(x, y, MSClayCol2, 4))
or (FindMSColorTol(x, y, MSClayCol3, 4)) then
begin
FailFind := 0; //FailFind is used incase something goes wrong and it no longer finds clay rocks
MMouse(x, y, 2, 2);
FindGas(x,y)
Wait(250+random(250));
if(IsUpText('ocks')) then Mouse(x, y, 2, 2, true);
Wait(1000+random(250));
TSwing := 0;
MarkTime(TSwing);
while(FindBlackChatMessage('swing your')) do //Makes script more human-like
begin
Wait(500+random(250));
if(TimeFromMark(TSwing) > 60000) then Break;
end;
if(ClickToContinue) then
begin
Wait(1000+random(500));
if(not(FindBlackChatMessage('dvanced'))) then FindPick;
end;
if(not(FindBlackChatMessage('manage to'))) then Tries := Tries + 1;
if(FindBlackChatMessage('manage to')) then Tries := 0;
if(Tries > 9) then
begin
DeactivatePlayer('Attempted to mine clay 10 times and failed.');
Exit;
end;
end else
begin
FailFind := FailFind + 1;
if(FailFind > 20) then
begin
DeactivatePlayer('No longer finding clay rocks');
Exit;
end;
end;
FindRandoms;
RandomActivity;
until(InvFull); //Failsafes are inside loop.
Status('Full! Going to well.');
end;

//Walks from mine to mine fork
procedure MineToFork;
var
TLeaveClay, TFindNoMFork : Integer;
begin
if(not(LoggedIn)) then Exit;
SetRun(False);
Status('Looking for road');
MarkTime(TLeaveClay);
repeat
RadialWalk(FindStoneColor, 340, 260, 70, 2, 2); //Walks to west side of mine
FFlag(0);
Wait(1000+random(500));
if(TimeFromMark(TLeaveClay) > 50000) then
begin
DeactivatePlayer('Failed to find road from mine.');
Exit;
end;
until(FindRoadColor <> 0);
Status('Found road, running north looking for mine fork');
MMRoadCol := FindRoadColor;
MakeDDTM(ForkNofMineDDTM,[616,67,0,0,MMRoadCol,10,
594,48,2,0,MMRoadCol,10,
645,66,2,0,MMRoadCol,10,
598,88,2,0,MMRoadCol,10]);
MarkTime(TFindNoMFork);
repeat
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
RadialRoadWalk(MMRoadCol, 420, 300, 50, 2, 2);
if(not(FlagPresent)) then RadialRoadWalk(MMRoadCol, 420, 300, 70, 2, 2);
//Used when road is too far from position in mine
RandomActivity;
FFlag(0);
Wait(500+random(250));
if(TimeFromMark(TFindNoMFork) > 90000) then
begin
DeactivatePlayer('Failed to find north of mine fork.');
Exit;
end;
until(DTMRotated(ForkNofMineDDTM, x, y, MMX1, MMY1, MMX2, MMY2));
Status('Found mine fork');
Mouse(x, y, 2, 2, true);
FFlag(0);
FreeDTM(ForkNofMineDDTM);
end;

//From mine fork to south of fally fork
procedure ForkToNorthRoad;
var
TFindSoFFork : Integer;
begin
if(not(LoggedIn)) then Exit;
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
MakeDDTM(ForkSofFallyDDTM,[641,102,0,0,MMRoadCol,10,
624,71,2,0,MMRoadCol,10,
611,104,2,0,MMRoadCol,10,
672,116,2,0,MMRoadCol,10]);
Status('Looking for south of Fally fork.');
MarkTime(TFindSoFFork);
repeat
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
RadialRoadWalk(MMRoadCol, 120, 60, 40, 2, 2);
RandomActivity;
FFlag(0);
Wait(500+random(250));
if(TimeFromMark(TFindSoFFork) > 90000) then
begin
DeactivatePlayer('Failed to find south of fally fork.');
Exit;
end;
until(DTMRotated(ForkSofFallyDDTM, x, y, MMCX-30, MMY1, MMX2, MMY2));
Status('Found south of Fally fork.');
Mouse(x, y, 2, 2, true);
FFlag(0);
FreeDTM(ForkSofFallyDDTM);
end;

//From south of fally fork to well
procedure NorthRoadToWell;
var
TFindFFally, TFindWell : Integer;
begin
if(not(LoggedIn)) then Exit;
Status('Looking for Fally.');
MakeDDTM(ForkFallyDDTM, [638,86,0,0,MMFallyRoadCol,10,
607,105,2,0,MMFallyRoadCol,10,
648,97,2,0,MMFallyRoadCol,10,
645,64,2,0,MMFallyRoadCol,10]);
MarkTime(TFindFFally);
repeat
MMRoadCol := FixRoadCol(MMRoadCol, 'road');
RadialRoadWalk(MMRoadCol, 320, 400, 40, 2, 2);
RandomActivity;
FFlag(0);
Wait(500+random(250));
if(TimeFromMark(TFindFFally) > 90000) then
begin
DeactivatePlayer('Failed to find fally.');
Exit;
end;
until(DTMRotated(ForkFallyDDTM, x, y, MMX1, MMY1, MMX2, MMCY+30));
Status('Found Fally fork');
Mouse(x, y, 2, 2, true);
FFlag(0);
FreeDTM(ForkFallyDDTM);
Status('Looking for well');
Wait(1000+random(500));
MMFallyRoadCol := FindFallyRoadColor;
MarkTime(TFindWell);
repeat
MMFallyRoadCol := FixRoadCol(MMFallyRoadCol, 'fally');
RadialRoadWalk(MMFallyRoadCol, 300, 200, 40, 2, 2);
FFlag(0);
if(TimeFromMark(TFindWell) > 40000) then
begin
DeactivatePlayer('Failed to find well.');
Exit;
end;
until(FindSymbol(x, y, 'water'));
Mouse(x, y, 0, 0, true);
Status('Found well');
FFlag(0);
end;

//Walking procedures from mine to well
procedure WalkToWell;
begin
MineToFork;
ForkToNorthRoad;
NorthRoadToWell;
end;

//Turns all of the clay to soft clay at the well
procedure WetClay;
var
xa, ya, xb, yb, TWetClay : Integer;
begin
if(not(LoggedIn)) then Exit;
EmptyBucketDTM := DTMFromString('78DA63F467626090656440066DB5350C5C401' +
'A24FA1F08187D816A8451D524FB88C3D5800023C81C6E54353059' +
'B89A084C7330D48400D5A81050E30154A34A408D1B508D347E350' +
'00D8D0955');
FullBucketDTM := DTMFromString('78DA63AC60626090656440060DE5E50C5C401' +
'A24FA1F0818416A8451D5D4D4CC86AB0101C64AA01A6E54353059' +
'B89A26A01A21026A1A816AE408A82905AA5123A0261FA84682809' +
'A42A01A25FC6A00E4620BCC');
ClayDTM := DTMFromString('78DA63AC6062604866644006339BC219B8803' +
'448F43F10305602D544A3AA81C8C24820DD0C54134F404D35504D' +
'2A0135F940352904D49403D56410505345D83D0021140B9E');
GameTab(4);
Status('Using well to soften clay.')
if(FindMSColorTol(x, y, MSWellCol, 4)) then
begin
MarkTime(TWetClay);
while(FindDTM(ClayDTM, x, y, MIX1, MIY1, MIX2, MIY2)) do
begin
if (FindDTM(EmptyBucketDTM, xa, ya, MIX1, MIY1, MIX2, MIY2)) and
(FindMSColorTol(xb, yb, MSWellCol, 4)) then
begin
Mouse(xa, ya, 2, 2, true);
Wait(750+random(250));
Mouse(xb+20, yb+10, 3, 3, true); //Color finding always finds color in top left corner.
Wait((NumBuckets*1000)+random(500));
end;
while (FindDTM(FullBucketDTM, xa, ya, MIX1, MIY1, MIX2, MIY2)) and
(FindDTM(ClayDTM, xb, yb, MIX1, MIY1, MIX2, MIY2)) do
begin
Mouse(xa, ya, 2, 2, true);
Wait(500+random(250));
Mouse(xb, yb, 2, 2, true);
Wait(750+random(250));
if ClickNpcChatTextRight('oft') then
begin
Wait(250+random(100));
ChooseOption(x, y, 'll');
Wait((NumBuckets*1250)+random(250));
end;
end;
FindRandoms;
if(TimeFromMark(TWetClay) > 210000) then
begin
DeactivatePlayer('Took over 3 mins to wet clay');
Exit;
end;
end;
end else
begin
DeactivatePlayer('Could not find well');
Exit;
end;
Status('Completed softening clay.');
FreeDTM(EmptyBucketDTM);
FreeDTM(FullBucketDTM);
FreeDTM(ClayDTM);
end;

//Walks from well to bank
procedure WalkToBank;
var
BankDTM, TFindBank, TFindScreen : Integer;
begin
if(not(LoggedIn)) then Exit;
BankDTM := DTMFromString('78DA635CC2C4C0E0CC8002FEFC61621001D28' +
'C40FC1F0818D762AAF9F78F0FAE06041867E03707AC660E116A56' +
'10560300B5A512E3'); //DTM of bankers
MarkTime(TFindBank);
Status('Looking for bank.');
repeat
MMFallyRoadCol := FixRoadCol(MMFallyRoadCol, 'fally');
RadialRoadWalk(MMFallyRoadCol, 330, 530, 40, 2, 2);
FFlag(5);
if(TimeFromMark(TFindBank) > 40000) then
begin
DeactivatePlayer('Failed to find bank.');
Exit;
end;
until(DTMRotated(BankDTM, x, y, MMX1, MMY1, MMX2, MMY2));
Status('Found bank!');
MarkTime(TFindScreen);
repeat //Wasn't always opening bank screen, added this to make sure it did
FindBank('feb');
Wait(2000+random(200));
until(BankScreen) or (TimeFromMark(TFindScreen) > 90000);
if (TimeFromMark(TFindScreen) > 90000) then
begin
DeactivatePlayer('Failed to find bank screen');
Exit;
end;
Wait(1000+random(250));
FreeDTM(BankDTM);
end;

//Main Loop
begin
SetupScript;
repeat
Prepare;
repeat
WalkToMine;
MineClay;
WalkToWell;
WetClay;
WalkToBank;
BankLoad;
until(LoadsCount = NumLoads) or not(LoggedIn);
NextPlayer(Players[CurrentPlayer].Active);
until(False);
end.

——————————————————
<!– END TEMPLATE: formanswers –>

YoHoJo

2007-07-20 01:07:59

From you thread i can see it looks good from review.
Tarajaky liked it, you got a 27 minute report and code looks fine to me.
But why do you have Radial Road Walk rpocedure in your script?
Its already in srl.

EDIT:
Put it this way… a red mask was 45k

ROFL, nice =)

Pentti

2007-07-20 04:38:46

Yes for sure!

Santa_Clause

2007-07-20 05:09:17

Haha…very nice for a first script.

Killerdou

2007-07-20 05:13:14

From: YoHoJo

But why do you have Radial Road Walk rpocedure in your script?
Its already in srl.


he edited it so it clicks a little bit lower/higher left/right

n3ss3s

2007-07-20 05:28:40

He obviously pwns :D Yes

Santa_Clause

2007-07-20 07:48:58

He's only been here since June…? Wow…must have learnt pretty quickly.

n3ss3s

2007-07-20 16:21:45

Lets somehow replace silver spoon… Hmm…
Aha! : Maybe he borned client window handle in his mouth? :)

Santa_Clause

2007-07-20 22:33:03

What exactly does that mean?!

jhildy

2007-07-20 23:09:35

rich people are "born with silver spoons in there mouth" or maybe its lucky people or something like that.

Santa_Clause

2007-07-21 00:26:58

From: n3ss3s
Aha! : Maybe he borned client window handle in his mouth?


I meant this part…

Bobarkinator

2007-07-21 00:33:47

SCAR gets the client window handle.


Yes for sure man, you have a great script and that was a good idea to do to radial walk. I might use that.

oliver1205

2007-07-22 12:45:09

yes. i got almost 5k soft clay in about 4 days with this script.

LordGregGreg

2007-07-22 20:22:24

You forgot a semi colon on line 132…

and line 321

and line 590

and line 778

i know it doesnt matter, but you should still try to catch them.

Hmm, i would also have like to see more posts from you…it makes me suspicious that your are someone else, or that your trying to hide something.

ok, enough negative.
Point is, the script looks good, is a full yes from me.

WhiteShadow

2007-07-23 00:37:52

Fizzi is a cool username so I voted yes.

Santa_Clause

2007-07-23 01:02:54

Lol Whiteshadow

Da Der Der

2007-07-24 18:52:34

From: SantaClause
He's only been here since June…? Wow…must have learnt pretty quickly.


I was just going to say the same thing :) I'm going to vote yes. Very nice script and I like the idea of it too. Very unique. Definate yes from me :p

Smartzkid

2007-07-24 19:07:58

No.

Great script, but I think you should get to know the community better.

Dark_Sniper

2007-07-24 19:15:30

wow something is up thats to good of a script dude…

and from what i see no background with scar use at all.
but with your learning experince it does seem possible to learn this extremly easy language in s short ammount of time.

dont get me wrong its a nice script but…. something in my gut says to vote no?

Bobarkinator

2007-07-25 00:28:26

I've been thinking about this guy and would just like to bring up that it could be MOB. I think a mod/admin should look into it. After all he has been here a short amount of time and he's got a great script.

Fizzi

2007-07-27 20:39:38

Thank you very much for all the compliments :) .

As to confirming my identity. Well… I really didn't lie in my application. I'm not sure who this MOB is, but I'm not him. I just really liked scripting and I spent a few full days learning things. I believe I learned all forms of radial walking and auto-coloring in one day, and I learned DTMs and DDTMs another day, and more. I spent time just looking through the manual for useful functions and procedures.

Here's a link that pretty much shows when I started learning: http://www.srl-forums.com/forum/taking-apart-script-t9548p3.html post #50

This is a link to my first script: http://www.villavu.com/forum/showthread.php?t=13003

Ejjman

2007-07-27 21:05:05

I looked through all of his posts. His first 20 or so were asking questions about how to run scripts, about 4 or so were helping other people with OTHER PEOPLE's script errors, and then the next 6 or so were from his own script and helping people.


I am not voting. Great script, I'm going to go give it a go for ya ;)


-Ejj

RAM

2007-07-27 21:30:55

Fizzi, you seem to have quite a bit of talents , I'm glad you understand everyone's hesitation here, as it's not often a new person of your caliber comes along, that isn't well known.

@Ejjman1, good detective work, I to looked over his posts, and saw his quick progression, and can't debunk him as being anyone other than who he says he is….

I'd like to hear from JAD and GOF as well…

Good Luck Fizzi

~RAM

Bobarkinator

2007-07-27 22:01:31

As long as you say he's ok. I am really looking foward to working with you Fizzi.

Santa_Clause

2007-07-27 22:04:39

Haha.

Can we start flaming MOB now?

Dark_Sniper

2007-07-27 23:59:37

yes fizzi please dont take me wrong when i voted no.

seems you do pretty good..

just didnt want MOB here again.

see you should be allowed in…

like ram rune said not often we get someone of your caliber applying.

congrats I'm sure you will be accepted into this community very quickly and keep up the good work.

Bobarkinator

2007-07-28 00:31:32

It was no reflection on you when I made that comment but we must be careful and not let someone reckless like MOB in again.

WT-Fakawi

2007-08-02 09:14:26

Welcome!