SRL Archive - Outdated / Broken

AlKhaCo by Nielsie95 (Al-Kharid Cooker)


nielsie95

2012-04-09 11:06:10

AlKhaCo (Al-Kharid Cooker)
by Nielsie95


Hi y'all,

This is my first script in a long time. I wanted to create a simple script to test my scripting engine with Simba. My last script script left me with heaps of fish, so the logical successor would be a cooker: AlKhaCo. It cooks food at the range north of Al-Kharid bank. Unfortunately, I never end up with a 'simple' script. I always like to try out new stuff and overcomplicate things. Here's the list of features:

  • It cooks. Food is specified by a colour, so it cooks basically anything.
  • It banks. After cooking your food, it nicely deposits and withdraws another bunch for another round of cooking. Sweet, no?
  • It walks. Location finding on the minimap is done using multiple (independent) landmarks (symbols, bankers, cactus, hedge), so even in crowded worlds it will walk solidly.
  • It anticipates. It can select food and check your levels while walking. Time is money, right?

So basically just what you would expect from a cooker :p Of course, it also includes anti-ban, anti-randoms, multi-user and the whole caboodle!

Instructions
  1. You'll need Simba 0.99-rc4 or later (download here).
  2. You'll need the Lape branch of SRL 5 (download here).
  3. If you want to use SMART, you'll need v7.0 or later (download here).
  4. Set the interpreter to Lape.
  5. Make sure your players are near the Al-Kharid range or bank (or somewhere inbetween).
  6. Setup the script.
  7. Run!
  8. Post the progress report :)

Please let me hear your comments, suggestions and bugs!

~Nielsie95

Kyle Undefined

2012-04-09 11:08:47

Oh wow, a Niels script! Will be sure to check this out! :)

Dgby714

2012-04-09 11:20:27

Lape! Prob not gonna use the script, but very nice to see people using Lape (with SRL).

rice

2012-04-09 16:22:05

What's wrong with using lape wit srl

nielsie95

2012-04-09 16:55:43


~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 13 Minutes and 54 Seconds
~~ 3/8 players active
~~ 205 succesful loads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [F] ****(0): 26 banks in 44 minutes
~~ [F] ****(0): 34 banks in 58 minutes
~~ [F] ****(0): 12 banks in 19 minutes (Could not walk to bank)
~~ [F] ****(0): 23 banks in 40 minutes (Could not start cooking)
~~ [F] ****(0): 23 banks in 41 minutes (Could not walk to bank)
~~ [T] ****(0): 32 banks in 54 minutes
~~ [T] ****(0): 31 banks in 54 minutes
~~ [T] ****(0): 25 banks in 42 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stopped because of the client token. The inactive ones hit a random or lagged. Not sure why it didn't recognize the randoms, but I'm guessing it might have something to do with Linux x64.

rice

2012-04-09 16:58:59

Wow those nice proggies

[XoL]

2012-04-09 21:47:12

I find it quite frightening.. it is faster than me when i do it by hand >.<

bolshak25

2012-04-09 23:38:27

great, i finally release something i think others will use and you make the same thing (but probably coded much nicer)

nielsie95

2012-04-10 14:30:59

Don't worry.. not a lot of people will take the time to switch interpreters ;)

~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 12 Minutes and 21 Seconds
~~ 5/8 players active
~~ 197 succesful loads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ****(0): 42 banks in 73 minutes
~~ [F] ****(0): 14 banks in 23 minutes (Could not witdraw raws)
~~ [T] ****(0): 35 banks in 60 minutes
~~ [T] ****(0): 31 banks in 56 minutes
~~ [T] ****(0): 30 banks in 54 minutes
~~ [F] ****(0): 2 banks in 3 minutes (Could not open bank)
~~ [F] ****(0): 10 banks in 22 minutes (Could not start cooking)
~~ [T] ****(0): 35 banks in 60 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|====================================|
| ~ SRL ~ |
| Randoms Report |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
| |
| Certers Solved ~ 1 |
| Mime Solved ~ 1 |
| Abyss Solved ~ 1 |
| Sandwich Lady Solved ~ 1 |
| |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
|====================================|
1 false because of Molly, 1 false because of Mime and 1 false because of lag. Perhaps I should increase the max. waiting times..
Once again on Linux, by the way :)

Kyle Undefined

2012-04-10 14:54:59

Wow, the code is very clean and neat to look at! :)

Coh3n

2012-04-10 19:24:37

From: nielsie95
1 false because of Molly, 1 false because of Mime and 1 false because of lag. Perhaps I should increase the max. waiting times..
Once again on Linux, by the way :)
I'm assuming on Linux without Wine?

ReadySteadyGo

2012-04-10 19:41:15

Hi Nielsie, I really enjoyed reading through your script. I've been playing around with your WeightedPoint function, and would really like to use it in my scripts if that's ok, I've posted my implementation below. If not, no worries, I'll delete it. Looking forward to the transition to Lape!

program new;
{$DEFINE SMART}
{$i SRL\SRL.simba}
{$i srl\srl\misc\paintsmart.simba}
{$i 3DProjection.simba}



type
TLandmark = record
Func: function(out p: TPoint): Boolean;
OffSet: TPoint;
Weight: Integer;
end;

function WeightedPoint(Points: TPointArray; Weights: TIntegerArray): TPoint; // by nielsie95
var
i, Sum: Integer;
begin
Result := Point(0, 0);
if (Length(Points) <> Length(Weights)) then
Exit;

for i := 0 to High(Points) do
begin
Result.x := Result.x + Points[i].x * Weights[i];
Result.y := Result.y + Points[i].y * Weights[i];
Sum := Sum + Weights[i];
end;

if (Sum <> 0) then
begin
Result.x := Result.x div Sum;
Result.y := Result.y div Sum;
end
end;

function FindBankerDTM(out p: TPoint): Boolean;
var
DTM: Integer;
af: Extended;
begin
DTM := DTMFromString('mbQAAAHicY2VgYJjExMBQB8RVSFgeKO4DxAFAHAnEiQwQ8P87JwpWYGZgkGNAxYxYMBgAADDXDJ8=');
Result := FindDTMRotated(DTM, p.x, p.y, MMX1, MMY1, MMX2, MMY2, -Pi, Pi, Pi/60, af);
FreeDTM(DTM);
end;

function FindTreeAboveBank(out p: TPoint): Boolean;
var
i, c: Integer;
tpa: TPointArray;
atpa: T2DPointArray;
begin
Result := True;
FindColorsTolerance(tpa, 1400630, MMX1 + ((MMCX-MMX1) div 4)*3, MMY1, MMX2, MMY2, 20);
atpa := SplitTPA(tpa, 1);
c := 0;
SetLength(tpa, Length(atpa));
for i := 0 to High(atpa) do
begin
if Length(atpa[i]) < 6 then
Continue;
tpa[c] := MiddleTPA(atpa[i]);
Inc(c);
end;
SetLength(tpa, c);

SortTPAByY(tpa, True);

case Length(tpa) of
2: p := tpa[0];
3: p := tpa[1];
else Result := False;
end;
end;

function FindLadder(out p: TPoint): Boolean;
var
i, c: Integer;
tp: TPoint;
tpa: TPointArray;
atpa: T2DPointArray;
begin
Result := True;
FindColorsTolerance(tpa, 601946, MMX1, MMY1, MMX2, MMY2, 10);
atpa := SplitTPA(tpa, 2);
c := 0;
SetLength(tpa, Length(atpa));
for i := 0 to High(atpa) do
begin
if InRange(Length(atpa[i]), 10, 40) then
begin
tp := MiddleTPA(atpa[i]);
if rs_OnMinimap(tp.x, tp.y) then
begin
tpa[c] := tp;
Inc(c);
end;
end;
end;
SetLength(tpa, c);

SortTPAByX(tpa, True);

case Length(tpa) of
1: p := tpa[0];
2: p := tpa[1];
else Result := False;
end;
end;

function FindTwoTreesMP(out p: TPoint): Boolean;
var
i, c: Integer;
tpa: TPointArray;
atpa: T2DPointArray;
begin
Result := False;
FindColorsTolerance(tpa, 1400630, MMX1 + ((MMCX-MMX1) div 2), MMY1, MMX2, MMY2, 20);
atpa := SplitTPA(tpa, 1);
c := 0;
SetLength(tpa, Length(atpa));
for i := 0 to High(atpa) do
begin
if Length(atpa[i]) < 6 then
Continue;
tpa[c] := MiddleTPA(atpa[i]);
Inc(c);
end;
SetLength(tpa, c);
atpa := SplitTPA(tpa, 25);
c := 0;
for i := 0 to High(atpa) do
begin
if Length(atpa[i]) = 2 then
begin
Result := True;
tpa[c] := MiddleTPA(atpa[i]);
Inc(c);
end;
end;
SetLength(tpa, c);
SortTPAByX(tpa, True);
if Length(tpa) <> 0 then
p := tpa[0];
end;

function FindWallPoint(out p: TPoint): Boolean;
var
i, c: Integer;
tpa, Dots, Walls: TPointArray;
atpa: T2DPointArray;
begin
Result := True;
FindColorsTolerance(tpa, clWhite, MMX1, MMY1, MMX2, MMY2, 40);
Dots := GetMiniMapDots('white');
c := 0;
SetLength(Walls, Length(tpa));
for i := 0 to High(tpa) do
if not NearbyPointInArrayEx(tpa[i], 7, 7, Dots) then
begin
Walls[c] := tpa[i];
Inc(c);
end;
SetLength(Walls, c);
atpa := SplitTPA(tpa, 2);
SetLength(tpa, Length(atpa));
for i := 0 to High(atpa) do
tpa[i] := MiddleTPA(atpa[i]);
SortTPAByY(tpa, True);
if Length(atpa[0]) < 95 then
Result := False;
p := tpa[0];
end;

function FindBeaconSymbol(out p: TPoint): Boolean;
var
Bmp: Integer;
acc: Extended;
begin
Bmp := BitmapFromString(2, 4, 'meJzLyPTMyPRkZGAAoua2CUAUEhIJ' +
'RABVEwdr');
FindDeformedBitmapToleranceIn(Bmp, p.x, p.y, MMX1, MMY1, MMX2, MMY2, 10, 0, True, acc)
Result := acc > SymbolAccuracy;
FreeBitmap(Bmp);
end;

function OffsetPoint(p, Offset: TPoint): TPoint;
begin
Result := Point(p.x + Offset.x, p.y + Offset.y);
end;

function MFlag(x, y, rx, ry: Integer): Boolean;
var
xMod, yMod: Integer;
v: TVector;
begin
v := CreateVector(Point(x, y), Point(MMCX, MMCY), True);
xMod := Round(v.x);
yMod := Round(v.y);
Result := MouseFlagEx(x, y, rx, ry, xMod, yMod, 0, False, False);
end;

function WalkWeighted(wpa: Array of TLandmark): Boolean;
var
i, l: Integer;
p: TPoint;
WalkPoints: TPointArray;
Weights: TIntegerArray;
begin
Result := False;
l := Length(wpa);
SetLength(WalkPoints, l);
SetLength(Weights, l);
for i := 0 to High(wpa) do
if not wpa[i].Func(p) then
begin
Weights[i] := 0
end
else
begin
WalkPoints[i] := OffsetPoint(p, wpa[i].Offset);
Weights[i] := wpa[i].Weight;
end;
p := WeightedPoint(WalkPoints, Weights);
if p = Point(0, 0) then
Exit;
Result := MFlag(p.x, p.y, 3, 3);
end;

function IsIdle: Boolean;
begin
Result := not IsMoving;
end;

function CrossWall: Boolean;
var
i, t, t2: Integer;
p, w: TPoint;
tpa: TPointArray;
atpa: T2DPointArray;
begin
Result := False;
MarkTime(t);
repeat
if not FindWallPoint(w) then
Continue;
if not MMToMSTileEx(p.x, p.y, w.x, w.y, True, clWhite) then
if TimeFromMark(t) > 10000 then
Exit
else
Continue;
SetColorToleranceSpeed(2);
SetColorspeed2Modifiers(1.18, 2.0);
FindColorsTolerance(tpa, 4014664, p.x-80, p.y-80, p.x+80, p.y+80, 8);
SetColorToleranceSpeed(1);
SetColorspeed2Modifiers(0.2, 0.2)
atpa := TPAtoATPA(tpa, 50);
SetLength(tpa, Length(atpa));
for i := 0 to High(atpa) do
tpa[i] := MiddleTPA(atpa[i]);
SortTPAFrom(tpa, p);
for i := 0 to High(tpa) do
begin
MMouse(tpa[i].x, tpa[i].y, 4, 4);
Wait(600+ Random(200));
if CountColorTolerance(12896779, 6, 9, 198, 24, 45) > 160 then
begin
GetMousePos(p.x, p.y);
Mouse(p.x, p.y, 0, 0, mouse_Left);
if DidYellowClick then
Break;
MarkTime(t2);
repeat
FindWallPoint(p);
if WaitColor(251, 51, 2070783, 5, 100) then
begin
MouseBox(146, 249, 224, 290, mouse_Left); // turn back on Doomslayer in Lumbridge
end;
if TimeFromMark(t2) > 10000 then
Exit;
until p.y > MMCY;
if WaitFunc(@IsIdle, 150, 2000) then
Result := True;
Exit;
end;
end;
until False;
end;

function WalkToZam: Boolean;
var
LandMarks: Array of TLandmark;
begin
SetLength(LandMarks, 3);
LandMarks[0].Func := @FindTreeAboveBank;
LandMarks[0].OffSet := Point(14, -11);
LandMarks[0].Weight := 2;
LandMarks[1].Func := @FindLadder;
LandMarks[1].OffSet := Point(19, 24);
LandMarks[1].Weight := 1;
LandMarks[2].Func := @FindBankerDTM;
LandMarks[2].OffSet := Point(0, 0);
LandMarks[2].Weight := 3;
WalkWeighted(LandMarks);

SetLength(LandMarks, 4);
LandMarks[0].Func := @FindWallPoint;
LandMarks[0].OffSet := Point(6, 10);
LandMarks[0].Weight := 1;
LandMarks[1].Func := @FindTwoTreesMP;
LandMarks[1].OffSet := Point(20, -11);
LandMarks[1].Weight := 3;
LandMarks[2].Func := @FindLadder;
LandMarks[2].OffSet := Point(24, -35);
LandMarks[2].Weight := 2;
LandMarks[3].Func := @FindBeaconSymbol;
LandMarks[3].OffSet := Point(53, -10);
LandMarks[3].Weight := 2;
WalkWeighted(Landmarks);
Wait(RandomRange(600, 800));

CrossWall;

SetLength(LandMarks, 3);
LandMarks[0].Func := @FindBeaconSymbol;
LandMarks[0].OffSet := Point(75, -86);
LandMarks[0].Weight := 2;
LandMarks[1].Func := @FindTwoTreesMP;
LandMarks[1].OffSet := Point(37, -87);
LandMarks[1].Weight := 3;
LandMarks[2].Func := @FindLadder;
LandMarks[2].OffSet := Point(41, -112);
LandMarks[2].Weight := 2;
WalkWeighted(LandMarks);
end;

var
kk: TPoint;
begin
SMART_Server := 10;
SMART_Members := True;
SMART_Signed := True;
SetupSRL;
{
FindTreeAboveBank;
FindLadder;
FindBankerDTM;

FindWallPoint;
FindTwoTreesMP;
FindLadder;
FindBeaconSymbol;

FindMiningSymbol;
FindWaterPoint; }
//FindTreeAboveBank(kk);
//FindLadder(kk);
//FindTwoTreesMP(kk);
//FindWallPoint(kk);
//FindBeaconSymbol(kk);

WalkToZam;
end.

nielsie95

2012-04-11 04:33:40

From: Coh3n
I'm assuming on Linux without Wine?

Yup, the Linux x64 version of Simba with Linux x64 SMART.

From: ReadySteadyGo
Hi Nielsie, I really enjoyed reading through your script. I've been playing around with your WeightedPoint function, and would really like to use it in my scripts if that's ok, I've posted my implementation below. If not, no worries, I'll delete it. Looking forward to the transition to Lape!

Sure, no problem. I like your use of the TLandmark record. Another change you might want to look into is the use a polar offset (which is compass angle independent). This could increase precision with larger offsets.

ReadySteadyGo

2012-04-11 10:53:15

Cool, thanks.

Yeah, I did think about making it compass angle independent.

You could just use the following and not have to change anything else:


function OffsetPoint(p, Offset: TPoint): TPoint;
begin
CA := rs_GetCompassAngleRadians;
p := RotatePoint(p, CA, MMCX, MMCY);
p := Point(p.x + Offset.x, p.y + Offset.y);
Result := RotatePoint(p, -CA, MMCX, MMCY);
end;

nielsie95

2012-04-11 10:59:06

Clever :)


~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 6 Minutes and 0 Seconds
~~ 6/8 players active
~~ 202 succesful loads
~~ 1 succesful recover
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ****(0): 29 banks in 48 minutes
~~ [T] ****(0): 23 banks in 39 minutes
~~ [F] ****(0): 24 banks in 40 minutes (Random: Leo)
~~ [T] ****(0): 24 banks in 40 minutes
~~ [T] ****(0): 23 banks in 39 minutes
~~ [T] ****(0): 21 banks in 36 minutes
~~ [F] ****(0): 30 banks in 53 minutes (Random: Pillory (Cage))
~~ [T] ****(0): 28 banks in 48 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|====================================|
| ~ SRL ~ |
| Randoms Report |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
| |
| Sandwich Lady Solved ~ 1 |
| Pillory (Cage) Failed ~ 1 |
| |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
|====================================|


~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 57 Seconds
~~ 6/8 players active
~~ 196 succesful loads
~~ 1 succesful recover
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ****(0): 24 banks in 39 minutes
~~ [T] ****(0): 27 banks in 45 minutes
~~ [T] ****(0): 35 banks in 59 minutes
~~ [F] ****(0): 7 banks in 11 minutes (Random: Pillory (Cage))
~~ [T] ****(0): 30 banks in 57 minutes
~~ [T] ****(0): 31 banks in 52 minutes
~~ [T] ****(0): 35 banks in 62 minutes
~~ [F] ****(0): 9 banks in 12 minutes (Could not witdraw raws)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|====================================|
| ~ SRL ~ |
| Randoms Report |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
| |
| Mime Solved ~ 1 |
| Pillory (Cage) Failed ~ 1 |
| Beekeeper Solved ~ 1 |
| |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
|====================================|
The last player was out of food.


~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 5 Hours, 59 Minutes and 7 Seconds
~~ 6/8 players active
~~ 194 succesful loads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ****(0): 32 banks in 56 minutes
~~ [R] ****(0): 30 banks in 54 minutes
~~ [F] ****(0): 13 banks in 17 minutes (Could not start cooking)
~~ [T] ****(0): 28 banks in 49 minutes
~~ [T] ****(0): 32 banks in 55 minutes
~~ [T] ****(0): 23 banks in 39 minutes
~~ [F] ****(0): 9 banks in 15 minutes (Could not open bank)
~~ [T] ****(0): 30 banks in 51 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|====================================|
| ~ SRL ~ |
| Randoms Report |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
| |
| Frog Solved ~ 1 |
| Sandwich Lady Solved ~ 1 |
| Rewards Solved ~ 2 |
| |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
|====================================|
The third player was out of food.

ReadySteadyGo

2012-04-14 02:28:12

Nice progress reports nielsie!

nielsie95

2012-04-18 12:11:06

Uploaded version 0.40!

  • Increased max waiting times;
  • Added option to try and recover after a player went inactive (but is not in a random). This could help people with bad connections or when walks fails (although I have not seen it walk wrong in about 1500 loads);
  • Added option to randomize player order;
  • Some tweaking here and there.

Simba 0.99-rc4 is released, so no need to download a nightly build now! :)


~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 5 Minutes and 2 Seconds
~~ 5/8 players active
~~ 183 succesful loads
~~ 1 succesful recover
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] eavy(0): 36 banks in 61 minutes
~~ [F] nstr(0): 25 banks in 42 minutes (Could not start cooking)
~~ [T] eddy(0): 30 banks in 56 minutes
~~ [T] alki(0): 28 banks in 49 minutes
~~ [T] obli(0): 29 banks in 49 minutes
~~ [F] orld(0): 2 banks in 17 minutes (Cooking failed)
~~ [F] yhel(0): 11 banks in 15 minutes (Could not witdraw raws)
~~ [T] nton(0): 29 banks in 52 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|====================================|
| ~ SRL ~ |
| Randoms Report |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
| |
| Pillory (Cage) Solved ~ 1 |
| Freaky Forester Solved ~ 1 |
| Beekeeper Solved ~ 1 |
| Rewards Solved ~ 2 |
| |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
|====================================|
2 players were out of food.

Wizzup?

2012-04-20 05:25:15

I've tried about four manually picked colours, but it keeps trying to withdraw runes instead of raw shrimp… Using Smart with EIOS on Linux x86_64. :(

E: Got it. 'aw' is part of any bank uptext - Withdraw. ;)

E2:
~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 9 Minutes and 59 Seconds
~~ 1/1 player active
~~ 6 succesful loads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ot(0): 6 banks in 9 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Still running.

E: Final:

Finalizing player

~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 1 Hours, 12 Minutes and 5 Seconds
~~ 0/1 player active
~~ 32 succesful loads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [F] ot(0): 32 banks in 53 minutes (Random: Molly)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Successfully executed.

nielsie95

2012-04-20 10:46:13

You're right about the uptext. Nice catch!


~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 5 Minutes and 17 Seconds
~~ 7/8 players active
~~ 202 succesful loads
~~ 1 succesful recover
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ****(0): 35 banks in 58 minutes
~~ [T] ****(0): 20 banks in 33 minutes
~~ [T] ****(0): 26 banks in 43 minutes
~~ [T] ****(0): 35 banks in 58 minutes
~~ [T] ****(0): 25 banks in 42 minutes
~~ [T] ****(0): 28 banks in 49 minutes
~~ [F] ****(0): 11 banks in 18 minutes (Could not start cooking)
~~ [T] ****(0): 24 banks in 42 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 player out of food.

Harry

2012-04-22 22:31:45

Looks nice. May I suggest a Lodestone teleport if AK-teleport's is unlocked, and Lumbridge if it's not, and just the short walk away? Would be a good idea for those pesky players that may go false due to lag- teleport home and attempt to correct their positions :D

Probably going to run this on my army in a bit - going to gather lots of fish to cook first!

nielsie95

2012-04-23 13:00:22

I've been thinking about the Lodestone recovery, but I don't think it's worth it. Players never get lost and the current recovery function will work just fine in most cases. It would be a nice addition if SRL had the option to 'guess' random events (so the script could recover from the tele-away).

nielsie95

2012-04-23 17:08:16

Uploaded version 0.50!

  • Fixed uptext issue in bank;
  • Optional breaks;
  • Some tweaking here and there.

I've cooked about 170k fish so far with this script, without any notable problems :)

Wizzup?

2012-04-23 17:21:22

~~~~~~~~~~~ AlKhaCo by Nielsie95 ~~~~~~~~~~~
~~ 6 Hours, 40 Seconds
~~ 1/1 player active
~~ 153 succesful loads
~~ 1 succesful recover
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ [T] ot(0): 153 banks in 262 minutes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

|====================================|
| ~ SRL ~ |
| Randoms Report |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
| |
| Drill Demon Solved ~ 1 |
| Pillory (Cage) Solved ~ 1 |
| Beekeeper Solved ~ 1 |
| |
|&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;|
|====================================|

Still running… :)
(Lape, SMART and Linux 64 bit)

nielsie95

2012-08-14 08:41:45

Uploaded 0.51, which compiles with the latest SRL (lape branch). Not tested.