SRL Archive - JM Competition Judging

BMWxi


BraK

2012-11-06 11:59:02

What this script does: Mines gold then smelts into gold bars using Superheat Item spell. Has banking or alching options for the gold bars.

Where this script works: Crafting Guild

What Skills it trains: Mining, Smithing, Magic

Setup needed: Says in script

I don't know how to attach it so here it is!
program MineSmeltAlch;

{$Define smart}
{$i srl/srl.simba}


//////////////////////////////////////////////////////////////////////////////////////////////
// ===================== //
// MineSmeltAlch //
// ===================== //
// //
// Requirements: 40 Crafting //
// 40 Mining //
// 40 Smithing //
// 55 Magic (43 if Banking) //
// Brown Apron (for entering guild) //
// //
// Instructions: Wear Brown Apron and Equip Staff of Fire //
// Put character inside the ring of gold rocks at the crafting guild //
// Have Nature Runes in 1st Slot of Inv, Pickaxe in 2nd, Clan Vexilium in 3rd //
// Fill out DelarePlayers and BankOptions //
// Press Run! //
// //
//////////////////////////////////////////////////////////////////////////////////////////////


Const

BankOptions = '1'; //Valid Options:
//'1' = Alch gold bars in the guild. (Faster XP)
//'2' = Bank gold bars in Port Sarim. (Better Profits)

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

with Players[0] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_Smithing;
Active := True;
end;

with Players[1] do
begin
Name := ''; // Player username
Pass := ''; // Player password
BoxRewards := ['XP', 'ostume', 'mote', 'oins', 'une', 'ssence'];
LampSkill := Skill_Smithing;
Active := True;
end;
end;


Var
SmeltCounter, AlchCounter, Bars, ItemsAlched, GoldOre: Integer;


procedure StartLogin;

begin
ClearDebug;
{$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}
DeclarePlayers;
LoginPlayer;
MakeCompass('S');
SetAngle(SRL_ANGLE_HIGH);
end;

Procedure DigGold;
Var
x, y, a, b, OreCounter, PlusOne: Integer;
begin
if not LoggedIn then Exit;
MakeCompass('S');
FindNormalRandoms;
Wait(randomrange(400,600));
PlusOne:= InvCount + 1
If FindObjCustom(x, y, ['old', 'Go'], [5034237, 5231101], 3) Then
Begin
WriteLn('Digging Gold')
Begin
GetMousePos(a, b);
Mouse(a, b, 1, 1, false);
WaitOption('old', 500);
Flag;
MarkTime(OreCounter);
Repeat
wait(100);
If InvCount=PlusOne Then
WriteLn('.');
Until(InvCount=PlusOne) Or (TimeFromMark(OreCounter) > 10000)

End;
GoldOre := GoldOre + 1
End;
End;

Procedure SmeltGold;
var
l, m, k, r, GoldOreDTM, SuperHeatDTM: Integer;

begin
if not LoggedIn then Exit;
GoldOreDTM := DTMFromString('mFQEAAHic42VgYJjAxMDQAMWtQNwNxDOAeC4QzwPi6UA8BYh7gbgNqs6XkYEhAIhDoTgaSnsDsRsQOwKxAxDbQfk+QLyqQxJoGxNJ2IiBdMBIBkYBACrpDOE=');
SuperHeatDTM := DTMFromString('mwQAAAHic42RgYDjKxMBwCIhPAfEZID4JxMeA+DAQ7wPiPUAcyMjAEA7EYUAcDMTeQOwBxC5QdhAQv6lhYrBlhGBdBgj2Z2UE0zAxLgbCgJEIDAcAn3ENIQ==');

begin
FTab(tab_Magic);
Repeat
If FindDTM(SuperHeatDTM, k, r, MIX1, MIY1, MIX2, MIY2) Then
begin;
Mouse(k, r, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(GoldOreDTM, l, m, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Case Random(20) Of
0..19: Mouse(l, m, 10, 10, true);
20: MissMouse(l+random(400),m+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
Bars := Bars + 1
end else
begin
HoverSkill(skill_Smithing, False);
WriteLn('Antiban: Smithing XP Check Performed');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes');
LogOut;
end;
Until(TimeFromMark(SmeltCounter) > 85000)
end;
FreeDTM(GoldOreDTM);
FreeDTM(SuperHeatDTM);
end;

Procedure AlchBars;
var
Hx, Hy, Bx, By, GoldBarDTM, HighAlchDTM: Integer;

begin
if not LoggedIn then Exit;
GoldBarDTM := DTMFromString('m1gAAAHic42JgYFBkZWAQAmJJVghbDYh1gVgHiFWAWA6IxYH4GCMDw0UgvgbEN4D4ChCfZYSIH4biU0C8rEUcaCoTQSzCQBxgJBIjAACZUgr5');
HighAlchDTM := DTMFromString('m6wAAAHic42ZgYPBkZWCwBGJHIPYAYj8gDgBiHyD2ZYXIOwGxFRCvYmRgWAPE66F4LRAvB+LFQDwPiOdD+SuA+NACfgYZBkYwxgVh8iIMxANGEjASAACIcAyc');

begin
FTab(tab_Magic);
Repeat
If FindDTM(HighAlchDTM, Hx, Hy, MIX1, MIY1, MIX2, MIY2) Then
begin
Mouse(Hx, Hy, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(GoldBarDTM, Bx, By, MIX1, MIY1, MIX2, MIY2) Then
begin
ItemsAlched := ItemsAlched + 1
FindNormalRandoms;
Case Random(20) Of
0..19: Mouse(Bx, By, 10, 10, true);
20: MissMouse(Bx+random(400),By+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
end else
begin
HoverSkill(skill_Magic, False);
WriteLn('Antiban: Magic XP Check Performed');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes')
LogOut;
end;
Until(TimeFromMark(AlchCounter) > 85000);
end;
FreeDTM(GoldBarDTM);
FreeDTM(HighAlchDTM);
end;

Procedure AlchGems;
var
Hx, Hy, Gx, Gy, CutGemDTM, HighAlchDTM: Integer;

begin
if not LoggedIn then Exit;
CutGemDTM := DTMFromString('mAAEAAHiclc07CoBAEIPhuL4aSxEFsVgEPbKdp/BkioIg619MYekGviIzRSpJTyadCChyqYTDRT+w47ZfitZJk/HoUaPDYLcZDUZs68KK+y0oLkmkb149Fwu8');
HighAlchDTM := DTMFromString('m6wAAAHic42ZgYPBkZWCwBGJHIPYAYj8gDgBiHyD2ZYXIOwGxFRCvYmRgWAPE66F4LRAvB+LFQDwPiOdD+SuA+NACfgYZBkYwxgVh8iIMxANGEjASAACIcAyc');

begin
FTab(tab_Magic);
Repeat
If FindDTM(HighAlchDTM, Hx, Hy, MIX1, MIY1, MIX2, MIY2) Then
begin
Mouse(Hx, Hy, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(CutGemDTM, Gx, Gy, MIX1, MIY1, MIX2, MIY2) Then
begin
ItemsAlched := ItemsAlched + 1
FindNormalRandoms;
Case Random(20) Of
0..18: Mouse(Gx, Gy, 10, 10, true);
19: begin
Mouse(Gx, Gy, 10, 10, true);
HoverSkill(skill_Magic, False);
WriteLn('Antiban: Magic XP Check Performed');
end;
20: MissMouse(Gx+random(400),Gy+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
end else
begin
WriteLn('No Gems');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes')
LogOut;
end;
Until(TimeFromMark(AlchCounter) > 5000);
end;
FreeDTM(CutGemDTM);
FreeDTM(HighAlchDTM);
end;

Procedure CraftGems;
Var
UncutGemDTM, GemCounter, p, q: Integer;

Begin
if not LoggedIn then Exit;
UncutGemDTM := DTMFromString('mPwEAAHicpc3NCkBQEMXxc72AvKen8bHAQrpCkbIgb8f/1qwsr1O/ZmpOTSqpS6QahSlRoUWPGR6L7RMGNNicNGLGjgMnbnPZDLfVeqHvkWY535Moj+LjfvjkBZZ6FVA=');

If ExistsItemDTM(UncutGemDTM, p, q) then
begin
MarkTime(GemCounter);
Repeat
If FindDTM(UncutGemDTM, p, q, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Mouse(p, q, 4, 4, true);
MMouse(247,410,20,20);
wait(randomrange(200,300))
ClickMouse2(true);
wait(randomrange(200,300))
WriteLn('Crafting a gem');
wait(randomrange(1500,1900));
Mouse(p, q, 4, 4, true);
WaitOption('rop', 500);
end;
Until(TimeFromMark(GemCounter) > 7000);
end;
FreeDTM(UncutGemDTM);
End;

Procedure TeleUrn;
Var
UrnDTM, Ux, Uy: Integer;

Begin
if not LoggedIn then Exit;
UrnDTM := DTMFromString('m1gAAAHic42JgYKhiYmCoB+IcJgi7E4gLoLgZiEuAuB0kzgiUB+IuIJ7KCOHXAfFkKB8k1wDEGlJCQFOZiMDEAUYiMQIAAApFCqo=');

begin
If FindDTM(UrnDTM, Ux, Uy, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Mouse(Ux, Uy, 4, 4, true);
wait(randomrange(1000,1300))
WriteLn('Urn Ported');
end;
end;
FreeDTM(UrnDTM);
End;

Procedure PortTele;

begin
if not LoggedIn then Exit;
FTab(tab_Magic);
wait(randomrange(300,500))
MMouse(620,276,5,5);
ClickMouse2(true)
wait(randomrange(700,1000))
MMouse(270, 237, 5, 5);
ClickMouse2(true);
wait(randomrange(14000,16000));
end;

Procedure WalkToBox;

begin
if not LoggedIn then Exit;
wait(randomrange(300,500))
MMouse(537,16,10,10);
ClickMouse2(true)
SetAngle(SRL_ANGLE_HIGH);
wait(randomrange(500,700))
RadialWalkTolerance(1521477,80,90,70,5,5,10);
RadialWalkTolerance(1521477,5,50,40,5,5,10);
RadialWalkTolerance(1521477,5,50,30,5,5,10);
RadialWalkTolerance(1521477,70,95,60,5,5,10);
RadialWalkTolerance(1521477,90,110,35,5,5,10);
WriteLn('Checking For Box');
wait(randomrange(1200,1800))
end;

Procedure ClanTele;

begin
if not LoggedIn then Exit;
wait(randomrange(500,800));
FTab(tab_Equip);
wait(randomrange(600,900));
MMouse(570,290,30,30);
ClickMouse2(false);
WaitOption('T', 1000);
wait(randomrange(1200,1800));
TypeSend('1');
wait(randomrange(5000,6000))
end;

Procedure WalkToGuild;

begin
if not LoggedIn then Exit;
wait(randomrange(300,500))
MMouse(537,16,10,10);
ClickMouse2(true)
SetAngle(SRL_ANGLE_HIGH);
wait(randomrange(500,700))
RadialWalkTolerance(4935245,280,330,75,5,5,10);
RadialWalkTolerance(4935245,265,285,70,5,5,10);
RadialWalkTolerance(4935245,160,200,35,5,5,10);
WriteLn('Checking For Guild Door');
Wait(randomrange(1000,1200));
end;

Procedure WalkToRocks;

begin
if not LoggedIn then Exit;
MakeCompass('N');
RadialWalkTolerance(3368818,143,148,60,5,5,5);
MouseItem(3, mouse_left);
end;

Procedure BankBox;
Var
Dx, Dy, Bx, By, GoldBarDTM: Integer;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Dx, Dy, ['Dep', 'osit'], [6056824], 5) Then
Begin
WriteLn('Banking')
Begin
GetMousePos(Dy, Dx);
Mouse(Dy, Dx, 3, 3, false);
WaitOption('osit', 500);
Flag;
wait(randomrange(1300,1700));
End;
end;
begin
GoldBarDTM := DTMFromString('m6wAAAHic42ZgYNjJxMCwEYg3APEuID4IxMeA+DgQHwLifUC8DYhXA7EXIwNDGBB7A7EzELsCsTsQ+wJxEFQuAogDgXhJswTQdCaisBGQJBYzkoCRAABRrg8M');
begin
If FindDTM(GoldBarDTM, Bx, By, MSX1, MSY1, MSX2, MSY2) Then
begin
FindNormalRandoms;
MMouse(Bx, By, 3, 3);
ClickMouse2(false);
WaitOption('All', 500);
end else
begin
WriteLn('Gold Bars not found');
exit;
end;
end;
FreeDTM(GoldBarDTM);
begin
MMouse(432,40,5,5);
wait(randomrange(100,200))
ClickMouse2(true);
wait(randomrange(1300,1700));
end;
end;
MouseItem(3, mouse_left);
end;

Procedure BoxCheck;
Var
Dx, Dy: Integer;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Dx, Dy, ['Dep', 'osit'], [6056824], 5) Then
Begin
WriteLn('Found Box');
exit;
end else
begin
WriteLn('Box Not Found. Trying Again');
PortTele;
WalkToBox;
BoxCheck;
end;
end;

Procedure OpenDoor;
Var
Doo, oor: Integer;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Doo, oor, ['Do', 'oor'], [2449020, 2449277], 5) Then
begin
WriteLn('Entering Guild')
begin
Mouse(Doo, oor, 5, 5, false);
WaitOption('pen', 500);
Flag;
end;
end;
end;

Procedure DoorCheck;
Var
Doo, oor: Integer;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
If FindObjCustom(Doo, oor, ['Do', 'oor'], [2449020, 2449277], 5) Then
Begin
WriteLn('Found Door');
exit;
end else
begin
WriteLn('Door Not Found. Trying Again');
ClanTele;
WalkToGuild;
DoorCheck;
end;
end;

Procedure Proggy;
var
GoldBarsPH, MiningXPPH, SmithingXPPH, MagicXPPH, GPPH :Integer;

begin;
if not LoggedIn then Exit;
case Lowercase(BankOptions) of
'2':
begin
GoldBarsPH := Round((Bars * 3600) / (GetTimeRunning / 1000));
MiningXPPH := Round(((GoldOre * 65) * 3600) / (GetTimeRunning / 1000));
SmithingXPPH := Round(((Bars * 22.5) * 3600) / (GetTimeRunning / 1000));
MagicXPPH := Round(((Bars * 53) * 3600) / (GetTimeRunning / 1000));
GPPH := Round(((GoldOre * 130) * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('~~~~~~~~~~~~~~MineSmeltAlch~~~~~~~~~~~~~');
Writeln(' ');
Writeln('Bars Banked: ' + IntToStr(Bars) + ' (' + IntToStr(GoldBarsPH) + ' P/H)');
Writeln('Mining XP earned: ' + (ToStr(GoldOre * 65)+ ' (' + IntToStr(MiningXPPH)) + ' P/H)');
Writeln('Smithing XP earned: ' + (ToStr(Bars * 22.5))+ ' (' + IntToStr(SmithingXPPH) + ' P/H)');
Writeln('Magic XP earned: ' + (ToStr(Bars * 53) + ' (' + IntToStr(MagicXPPH)) + ' P/H)');
Writeln('GP Earned: ' + IntToStr(GoldOre * 130) + ' (' + IntToStr(GPPH) + ' P/H)');
Writeln('Total Time: ' + TimeRunning);
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;

'1':
begin
GoldBarsPH := Round((Bars * 3600) / (GetTimeRunning / 1000));
MiningXPPH := Round(((GoldOre * 65) * 3600) / (GetTimeRunning / 1000));
SmithingXPPH := Round(((Bars * 22.5) * 3600) / (GetTimeRunning / 1000));
MagicXPPH := Round((((Bars * 53)+(ItemsAlched *65)) * 3600) / (GetTimeRunning / 1000));
GPPH := Round(((GoldOre * 69) * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('~~~~~~~~~~~~~~MineSmeltAlch~~~~~~~~~~~~~');
Writeln(' ');
Writeln('Bars Alched: ' + IntToStr(Bars) + ' (' + IntToStr(GoldBarsPH) + ' P/H)');
Writeln('Mining XP earned: ' + (ToStr(GoldOre * 65)+ ' (' + IntToStr(MiningXPPH)) + ' P/H)');
Writeln('Smithing XP earned: ' + (ToStr(Bars * 22.5))+ ' (' + IntToStr(SmithingXPPH) + ' P/H)');
Writeln('Magic XP earned: ' + (ToStr((Bars * 53) + (ItemsAlched * 65))+ ' (' + IntToStr(MagicXPPH)) + ' P/H)');
Writeln('GP Earned: ' + IntToStr(GoldOre * 69) + ' (' + IntToStr(GPPH) + ' P/H)');
Writeln('Total Time: ' + TimeRunning);
Writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
end;
end;


procedure YourChoice;

begin
if not LoggedIn then Exit;
case Lowercase (BankOptions) of
'2':
begin
WriteLn('Digging Gold...');
Repeat
DigGold
TeleUrn
Proggy
Until(InvFull);
WriteLn('Finished Digging Gold');
WriteLn('Smelting Gold...');
CraftGems
MarkTime(SmeltCounter);
SmeltGold
AlchGems
PortTele;
WalkToBox;
BoxCheck;
BankBox;
ClanTele;
WalkToGuild;
DoorCheck;
OpenDoor;
WalkToRocks;
Proggy;
WriteLn('Done Banking');
end;

'1':
begin
WriteLn('Digging Gold...');
Repeat
DigGold
HoverSkill(skill_Smithing, False);
WriteLn('Antiban: Smithing XP Check Performed');
TeleUrn
Proggy
Until(InvFull);
WriteLn('Finished Digging Gold');
WriteLn('Smelting Gold...');
CraftGems
MarkTime(SmeltCounter);
SmeltGold
MarkTime(AlchCounter);
AlchBars
AlchGems
Proggy;
WriteLn('Done Alching Gold');
end;
end;
end;
begin
SetupSRL;
DeclarePlayers;
repeat
StartLogin
Proggy
repeat
YourChoice;
until(Not LoggedIn);
NextPlayer(False);
until(AllPlayersInactive);
end.


Thanks for having this competition, I learned a lot :)


BMWxi

NKN

2012-11-28 19:27:03

Technique ( 60/100)
-Basic object finding methods
-Redundant Functions
Individuality (65 /100)
+ Used DTMS
- Used FindObj
+More than 1 script option
-Infinite Loops
-Static clicking

Follow all SRL rules ( 80/100)
-Infinite loops
+Redundant procedures
Creativity ( 65/100)
+Three options
-Basic methods of doing things(FindObj)

Efficiency (70/100)
-Basic finding methods
+Some failsafes

Presentation (75 /100)
+Instructions at start
+- Okay progress report
Meeting all Requirements ( 85/100)
+Banking
+Walking
+Multiplayer
-No comments
Added Extras ( 55/100)
+Added one other option
Average (69.375 /100)

euphemism

2012-12-01 03:42:11

Technique (77/100)
Good:
  • Compiles.
  • No unused variables, which seems to be a rare thing among scripters.
  • Decent standards (See 'Not So Good' section).
Not So Good:
  • Capitalization of bold words. Looks bad. Inconsistent with keeping spaces around math symbols and after commas.
  • No scripter-written functions, only procedures.
  • Might fall under 'Follow all SRL rules' as well, but True/False are used in place of the mouse constants when using mouse functions. i.e.:

//Using
Mouse(a, b, 1, 1, false);
//Instead of
Mouse(a, b, 1, 1, mouse_right);
  • No check to make sure the super heating interface opens before checking for the gold ore option, and an odd implementation of antiban in the middle of the smelting loop, but on the plus side, this does allow the antiban to be more specific to the current action:

Repeat
If FindDTM(SuperHeatDTM, k, r, MIX1, MIY1, MIX2, MIY2) Then
begin;
Mouse(k, r, 4, 4, true);
wait(randomrange(500,700));
begin
If FindDTM(GoldOreDTM, l, m, MIX1, MIY1, MIX2, MIY2) Then
begin
FindNormalRandoms;
Case Random(20) Of
0..19: Mouse(l, m, 10, 10, true);
20: MissMouse(l+random(400),m+random(400));
end;
MMouse(700,241,20,20);
wait(randomrange(1500,1900));
Bars := Bars + 1
end else
begin
HoverSkill(skill_Smithing, False);
WriteLn('Antiban: Smithing XP Check Performed');
exit;
end;
end;
end else
begin
WriteLn('Out of Nature Runes');
LogOut;
end;
Until(TimeFromMark(SmeltCounter) > 85000)
  • 'AlchBars' and 'AlchGems' are the exact same procedure, and could easily be replaced by one function (more on that) with a parameter.
  • None of the main actions the script takes are within functions, so there is not a fail-safe check to see if a certain one, like alching gems or bars was successful, the procedures just logout internally and some of the reasons, like being out of nature runes are assumed and not actually checked.
  • Oddly named variables, i.e. the two variables used to represent a rectangular coordinate are universally accepted to be x and y. Why use Door and oor? p and q? p and q are used for logic problems.

//example 1
Doo, oor: Integer;

///example 2
Var
UncutGemDTM, GemCounter, p, q: Integer;

Begin
if not LoggedIn then Exit;
UncutGemDTM := DTMFromString('mPwEAAHicpc3NCkBQEMXxc72AvKen8bHAQrpCkbIgb8f/1qwsr1O/ZmpOTSqpS6QahSlRoUWPGR6L7RMGNNicNGLGjgMnbnPZDLfVeqHvkWY535Moj+LjfvjkBZZ6FVA=');

If ExistsItemDTM(UncutGemDTM, p, q) then
begin
MarkTime(GemCounter);
Repeat
If FindDTM(UncutGemDTM, p, q, MIX1, MIY1, MIX2, MIY2) Then
Individuality (60/100)
Good:
  • Uses DTMs for some finding routines, and radial walk for walking.
Not So Good:
  • Uses FindObj/FindObjCustom instead of custom, more efficient object finding code.

Follow all SRL rules (70/100)
Good:
  • LoggedIn checks, random checks, randomness in mouse functions, random waits.
Not So Good:
  • Some standards issues.
  • Infinite loops, i.e.:

Repeat
DigGold
TeleUrn
Proggy
Until(InvFull);
  • Redundancy, not the good kind as in failsafes or backups, but in code like previously mentioned with the 'AlchBars' and 'AlchGems' procedures, which are also very similar to SmeltGold. It's possible all three could be combined into one method.
  • Script does not appear as though it can recover from errors.
Creativity (65/100)
Good:
  • Progress report changes format/displayed values based on alching or banking.
  • This bit here is clever:

PlusOne:= InvCount + 1
Not So Good:
  • Little variation in object finding techniques.

Efficiency (60/100)
Good:
  • Straightforward logic, little fluff.
Not So Good:
  • Inefficient waits between actions, could be sped up with proper checks to know when an action is complete. These waits could also be bad if there is lag.

Presentation (100/100)
Good:
  • Friendly, clean title banner in the script.
  • Straightforward instructions.
  • Standards of code make it easy to read.
Not So Good:
  • N/A.

Meeting all Requirements (100/100)
Good:
  • Two or more complimentary skills.
  • Multiplayer.
  • Walking within restrictions.
  • Banking.
  • F2P.
  • Not a dungeon script.
Not So Good:
  • N/A.

Added Extras (60/100)
Good:
  • Banking or Alching options.
Not So Good:
  • Very few extras.

Average (74/100)

Ashaman88

2012-12-01 08:54:17

Not as good as olly's! Sorry things have got in the way :/ If I can get to it today before the announcement i'll post i