SRL Archive - Archive

KingKong - SRL Member Application


KingKong

2011-04-03 06:31:54

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


Are you affilated in anyway with Jagex LTD?
No way!

Were you Referred to SRL?
does google count? :P


What is your general programming knowledge?
Pascal and Python


Are you a member of any other communities?
http://xsellize.com/ and http://www.icheats.org/


Tell us about yourself…
Im 17, studying last year of highschool. I usually play badminton, soccer and handball and read books and hang out with friends. In the whatever time I have left i hack my iphone games and make scripts for botting on RS.


Please show us one (or multiple) of your scripts.
For some reason the system wont let me attach the files, and the scripts are long so it might be a bit hard to read them. Also please don't release this yet, i still want to do some stuff to it.
Script1:

program PrinceAliRescue;
{=========================================================================]
[ Instructions ]
[=========================================================================]
[1. Fill out DeclarePlayers. ]
[2. Make sure you have all these items in your inventory: ]
[ 3 ball of wool, ash, water, redberries, pinkskirt, softclay, bronzebar, 3 beer, ]
[40 coins, yellow dye or 2 onions + 5 coins and rope or 15 coins ]
[3.If this a new account make sure you finish the goblin Intervention task]
[because it will stuff up the walking ]
[4.Stand in the lumbridge courtyard and click play. ]
[=========================================================================}

{$DEFINE SMART}
{$i SRL\SRL.scar}
{$i reflection\reflection.simba}

const
SMARTSERVER = 123;

procedure DeclarePlayers;
var
a : Integer;
Ar_Name, Ar_Pass : Array of string;
Ar_Active : Array of Boolean;

begin
HowManyPlayers := 2; // How many players declared?
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Ar_Name := ['username1', 'username2']; //use multiplayer like this
Ar_Pass := ['password1', 'password2'];
Ar_Active := [True, True];

for a := 0 to HowManyPlayers - 1 do
with Players[a] do
begin
Name := Ar_Name[a];
Pass := Ar_Pass[a];
Active := Ar_Active[a];
end;
end;

function StepFuncs(Functions: Array of String; Conditions: Array of Boolean): Boolean;
{will progress through the list of Functions with no parameters if Condition is met eg:
if this then
if that then
if thisandthat then
blahblahblah
Also, if Conditions are the same then just use it once in an array eg:
StepFuncs(['func1', 'func2', 'func3'], [True]) is the same as
StepFuncs(['func1', 'func2', 'func3'], [True, True, True])
}
var
a, b: Integer;
c: TVariantArray;
begin
b:= High(Functions);
if Length(Functions) <> Length(Conditions) then
begin
SetLength(Conditions, b + 1);
for a:= 1 to b do
Conditions[a]:= Conditions[0];
end;
for a:= 0 to b do
begin
if CallProc(Functions[a], c) <> Conditions[a] then
begin
writeln('An error has occured while trying to execute:' + Functions[a]);
break;
end;
end;
Result:= True;
end;

function ChatTextOptions(Text: Array of String; Action: fnct_ActionOptions; Continue: Boolean): Boolean;
//will wait for Text to show up and do Action
var
a, b, c: Integer;
begin
Result:= False;
b:= High(Text);
for c:= 0 to b do
begin
while (a < 6) and (not FindNPCChatText(Text[c], Nothing)) do
begin
wait(600 + RandomRange(250, 380));
Inc(a);
end;
if Continue then
begin
if FindNPCChatText(Text[c], Action) and ClickContinue(True, True) then
Result:= True;
end else
if FindNPCChatText(Text[c], Action) then
Result:= True;
if Result = False then
begin
writeln('An error has occured while trying to click:' + Text[c]);
break;
end;
wait(300 + RandomRange(200, 300));
end;
end;

function ChatTextOption(Text: String; Action: fnct_ActionOptions; Continue: Boolean): Boolean;
begin
Result:= ChatTextOptions([Text], Action, Continue);
end;

function ChatboxExists: Boolean;
//looks for the username-black color
begin
if InIntArray(GetColorsBox(9, 461, 29, 470, True), 0) then
Result:= True
else
Result:= False;
end;

function CheckPlayer: Boolean;
var
a: Integer;
coins: TInvItem;
IDs, Amount: TIntegerArray;
begin
{wool, ash, water, redberries, pinkskirt, softclay, bronzebar, beer, dye, onion, rope, coins}
IDs:= [1759, 592, 1929, 1951, 1013, 1761, 2349, 1917, 1765, 1957, 954, 995];
Amount:= [3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 1, 60];
for a:= 0 to 7 do
if R_CountItem(IDs[a]) < Amount[a] then
begin
writeln('Could not find item ID: ' + IntToStr(IDs[a]));
TerminateScript;
end;
R_ItemExists(IDs[11], coins);
if coins.StackSize < Amount[11] then
begin
writeln('Failed to find coins in the inventory');
TerminateScript;
end;
Result:= True;
end;

function InteractNPC(Name, Text: String; UseTile: boolean): Boolean;
var
ID, Height, a, b: Integer;
NPC: TNPC;
NPC_Point: TPoint;
NPC_Tile: TTile;
begin
Result := False;
case Name of
'guardl': NPC_Tile:= Tile(3266, 3229);
'guardr': NPC_Tile:= Tile(3269, 3229);
'hassan': ID := 923;
'osman': NPC_Tile:= Tile(3286, 3180);
'leela': NPC_Tile:= Tile(3113, 3263);
'ned': ID := 918;
'aggie': ID := 922;
'keli': ID:= 919;
'joe': ID:= 916;
'ali': ID:= 920;
end;
case Name of
'guardl', 'guardr': Height := 1151;
'hassan': Height := 811;
'osman': Height := 808;
'leela': Height := 796;
'ned': Height := 817;
'aggie': Height := 893;
'keli': Height:= 800;
'joe': Height:= 803;
'ali': Height:= 821;
end;
while (a < 6) and (CharacterMoving) do
begin
wait(700 + RandomRange(-50, 200));
Inc(a);
end;
a:= 0;
while (b < 11) and (Result = False) do
begin
if not ChatboxExists then
begin
Result := True;
break;
end;
if UseTile then
begin
NPC_Point := TileToMS(NPC_Tile, Height);
end else
begin
NPC := GetNullNPCMulti([ID]);
NPC_Point := TileToMS(NPC.Tile, Height);
end;
Mouse(NPC_Point.x, NPC_Point.y, 0, 0, False);
WaitOption(Text, 1500);
if DidRedClick then
while (a < 6) and (IsMoving) do
begin
wait(700 + RandomRange(-50, 200));
Inc(a);
end;
a:= 0;
while (a < 6) and (ChatboxExists) do
begin
wait(700 + RandomRange(-50, 200));
Inc(a);
end;
if InteractingWithMe(NPC) or (not ChatboxExists) then
Result := True;
Inc(b);
end;
end;

function Walk(Place: String): Boolean;
var
a: Integer;
begin
Result:= False;
RunEnergy(50);
case Place of
'lum-ak':
if WalkPath([Tile(3226, 3217), Tile(3237, 3224), Tile(3252, 3224), Tile(3266, 3226)]) then
Result:= True
else
writeln('Failed while trying to walk from Lum to Ak');
'ak-hassan':
if WalkPath([Tile(3278, 3214), Tile(3287, 3206), Tile(3289, 3195), Tile(3294, 3183),
Tile(3295, 3171), Tile(3299, 3163)]) then
Result:= True
else
writeln('Failed while trying to walk from Ak to Hassan');
'hassan-osman':
if Walkpath([Tile(3295, 3167), Tile(3293, 3181), Tile(3286, 3181)]) then
Result:= True
else
writeln('Failed while trying to walk from Hassan to Osman');
'osman-ak':
if WalkPath([Tile(3283, 3194), Tile(3275, 3205), Tile(3274, 3219), Tile(3271, 3225)]) then
Result:= True
else
writeln('Failed while trying to walk from Osman to Ak');
'ak-leela':
if WalkPath([Tile(3253, 3224), Tile(3239, 3224), Tile(3228, 3232), Tile(3221, 3242),
Tile(3208, 3245), Tile(3194, 3245), Tile(3181, 3246), Tile(3173, 3253),
Tile(3160, 3256), Tile(3148, 3259), Tile(3134, 3261), Tile(3120, 3261),
Tile(3116, 3261)]) then
Result:= True
else
writeln('Failed while trying to walk from Ak to Leela');
'aggie-keli':
if WalkPath([Tile(3102, 3263), Tile(3111, 3253), Tile(3124, 3249), Tile(3128, 3247)]) then
Result:= True
else
writeln('Failed while trying to walk from Aggie to Keli');
'keli-ak':
if WalkPath([Tile(3141, 3249), Tile(3155, 3253), Tile(3169, 3256), Tile(3182, 3253),
Tile(3194, 3246), Tile(3207, 3246), Tile(3218, 3246), Tile(3226, 3234),
Tile(3237, 3225), Tile(3251, 3224), Tile(3266, 3226)]) then
Result:= True
else
writeln('Failed while trying to walk from Keli to Ak');
'ak-osman':
if WalkPath([Tile(3275, 3213), Tile(3279, 3201), Tile(3283, 3188), Tile(3286, 3181)]) then
Result:= True
else
writeln('Failed while trying to walk from Ak to Osman');
'leela-keli':
if WalkPath([Tile(3119, 3251), Tile(3128, 3248)]) then
Result:= True
else
writeln('Failed while trying to walk from Leela to Keli');
end;
if Result = False then
TerminateScript;
while (a < 6) and (CharacterMoving) do
begin
wait(500 + randomrange(100, 300));
Inc(a);
end;
end;

function OpenDoor(Which: String): Boolean;
var
a, b, c, d, x, y: Integer;
Colors: TIntegerArray;
TL, DR: TPoint;
TPA, TPA2: TPointArray;
ATPA : T2DPointArray;
begin
case Which of
'ned':
begin
Colors:= [2117479, 2184046];
TL:= TileToMSEx(Tile(3101, 3259), 0, 0, 0);
DR:= TileToMSEx(Tile(3102, 3257), 1, 1, 0);
end;
'aggie':
begin
Colors:= [2117479, 2184046];
TL:= TileToMSEx(Tile(3088, 3259), 0, 0, 0);
DR:= TileToMSEx(Tile(3089, 3257), 1, 1, 0);
end;
'prisonout':
begin
Colors:= [6716292, 6716292];
TL:= TileToMSEx(Tile(3128, 3248), 0, 0, 0);
DR:= TileToMSEx(Tile(3129, 3246), 1, 1, 0);
end;
'prisonin':
begin
Colors:= [4934735, 5789788];
TL:= TileToMSEx(Tile(3123, 3245), 0, 0, 0);
DR:= TileToMSEx(Tile(3124, 3243), 1, 1, 0);
end;
end;
while(a < 6) and (Result = False) do
begin
Result:= False;
while (Length(TPA) < 1) or ( b < 6) do
begin
//using ref and col to find the door faster
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Colors[0], TL.x, TL.y, DR.x, DR.y, 15);
FindColorsSpiralTolerance(MSCX, MSCY, TPA2, Colors[1], TL.x, TL.y, DR.x, DR.y, 15);
TPA:= CombineTPA(TPA, TPA2);
Inc(b);
if Length(TPA) > 0 then
break;
end;
b:= 0;
ATPA := TPAtoATPA(TPA, 15);
c := High(ATPA);
for d:= 0 to c do
begin
MiddleTPAEx(ATPA[d], x, y);
MMouse(x, y, 0, 0);
Wait(400 + RandomRange(80, 120));
if IsUpTextMultiCustom(['Open Door', 'Open Prison Door']) then
begin
Wait(400 + RandomRange(80, 120));
if IsUpTextMultiCustom(['Open Door', 'Open Prison Door']) then
begin
ClickMouse2(True); //checks the uptext twice to double check
Result:= True; //incase someone messes with it while its waiting
end else
if IsUpTextMultiCustom(['Close Door']) then
Result:= True;
if Result = True then
break;
end else
if IsUpTextMultiCustom(['Close Door']) then
begin
Result:= True;
break;
end;
end;
while (b < 6) and (CharacterMoving) do
begin
wait(500 + RandomRange(100, 150));
Inc(b);
end;
b:= 0;
if Result = True then
break;
Inc(a);
end;
wait(500 + RandomRange(-50, 310));
end;

function GetPastGuard(Guard: String): Boolean;
var
a: Integer;
CurTile: TTile;
begin
Result:= False;
CurTile:= GetMyPos;
if InteractNPC(Guard, 'alk-', True) then
begin
ChatTextOptions(['come', 'toll'], Nothing, True);
ChatTextOption('pay', ClickLeft, False);
if ChatTextOption('kay', Nothing, True) then
begin
while (a < 6) and (GetMyPos = CurTile) do
begin
wait(400 + RandomRange(-50, 200));
Inc(a);
end;
if GetMyPos <> CurTile then
Result:= True;
end;
end else
writeln('Failed while trying to get past Guards');
end;

function TalktoHassan: Boolean;
begin
if Walk('lum-ak') and GetPastGuard('guardl') then
begin
if Walk('ak-hassan') and InteractNPC('hassan', 'alk-', False) then
begin
ClickContinue(True, True);
ChatTextOption('help', ClickLeft, False);
ChatTextOption('help', Nothing, True);
if ChatTextOption('need', Nothing, True) then
Result:= True;
end;
end else
begin
writeln('Failed while trying to reach Hassan');
TerminateScript;
end;
end;

function TalktoOsman: Boolean;
begin
if Walk('hassan-osman') and InteractNPC('osman', 'alk-', True) then
begin
ChatTextOptions(['chanc', 'reeti', 'princ'], Nothing, True);
ChatTextOption('first', ClickLeft, False);
ChatTextOptions(['first', 'princ', 'coil', 'good', 'dista', 'blond', 'daugh'], Nothing, True);
if ChatTextOption('lurking', Nothing, True) then
Result:= True;
end else
begin
writeln('Failed while trying to reach Osman');
TerminateScript;
end;
end;

function TalktoLeela: Boolean;
begin
if Walk('osman-ak') and GetPastGuard('guardr') then
begin
if Walk('ak-leela') and InteractNPC('leela', 'alk-', True) then
begin
ChatTextOptions(['help', 'free', 'emplo'], Nothing, True);
if ChatTextOption('rest', Nothing, False) then
Result:= True;
end;
end else
begin
writeln('Failed while trying to reach Leela');
TerminateScript;
end;
end;

function TalktoNed: Boolean;
var
a: Integer;
begin
WalkPath([Tile(3105, 3258)]);
while (a < 6) and (CharacterMoving) do
begin
wait(500 + randomrange(100, 300));
Inc(a);
end;
if OpenDoor('ned') and InteractNPC('ned', 'alk-', False) then
begin
if R_CountItem(954) < 1 then
begin
ChatTextOption('somet', ClickLeft, False);
ChatTextOption('rope', Nothing, True);
ChatTextOption('rope', ClickLeft, False);
ChatTextOptions(['like', 'sell', 'from', 'cours', 'hemp', 'want'], Nothing, True);
ChatTextOption('rope', ClickLeft, False);
ChatTextOptions(['sell', 'fines', 'coil'], Nothing, True);
end;
if InteractNPC('ned', 'alk-', False) then
begin
ChatTextOption('somet', ClickLeft, False);
ChatTextOption('rope', Nothing, True);
ChatTextOption('other', ClickLeft, False);
ChatTextOptions(['other', 'thinki'], Nothing, True);
ChatTextOption('wig', ClickLeft, False);
ChatTextOptions(['wig', 'inter'], Nothing, True);
ChatTextOption('make', ClickLeft, False);
ChatTextOptions(['have', 'will', 'hand', 'you', 'prett'], Nothing, True);
ChatTextOption('more', Nothing, False);
end;
if (R_CountItem(2421) >= 1) and OpenDoor('ned') then
Result:= True;
end else
begin
writeln('Failed while trying to reach Ned');
TerminateScript;
end;
end;

function TalkToAggie: Boolean;
var
a: Integer;
begin
WalkPath([Tile(3090, 3258)]);
while (a < 6) and (CharacterMoving) do
begin
wait(500 + randomrange(100, 300));
Inc(a);
end;
if OpenDoor('aggie') and InteractNPC('aggie', 'ake-', False) then
begin
if R_CountItem(1765) < 1 then
begin
ChatTextOption('onion', ClickLeft, False);
ChatTextOptions(['yello', 'hand'], Nothing, True);
end;
if InteractNPC('aggie', 'alk-', False) then
begin
ChatTextOption('help', Nothing, True);
ChatTextOption('escue', ClickLeft, False);
ChatTextOptions(['skin', 'alrea'], Nothing, True);
ChatTextOption('pleas', ClickLeft, False);
ChatTextOptions(['pleas', 'simpl', 'ash', 'hands', 'deari'], Nothing, True);
end;
if R_CountItem(1765) > 0 then
begin
R_ClickItemBy(1765, True, '');
wait(300 + random(200));
R_ClickItemBy(2421, True, '');
wait(300 + random(200));
if (R_CountItem(2424) > 0)then
if OpenDoor('aggie') then
Result:= True;
end;
end else
begin
writeln('Failed while trying to reach Aggie');
TerminateScript;
end;
end;

function TalkToKeli: Boolean;
begin
if Walk('aggie-keli') and OpenDoor('prisonout') then
begin
if (InteractNPC('keli', 'alk-', False)) then
begin
ChatTextOptions(['famou', 'heard'], Nothing, True);
ChatTextOption('famou', ClickLeft, False);
ChatTextOptions(['great', 'very'], Nothing, True);
ChatTextOption('plan', ClickLeft, False);
ChatTextOptions(['plan', 'valua', 'rewar'], Nothing, True);
ChatTextOption('get', ClickLeft, False);
ChatTextOptions(['try', 'relea', 'world'], Nothing, True);
ChatTextOption('key', ClickLeft, False);
ChatTextOptions(['key', 'put', 'shows'], Nothing, True);
ChatTextOption('touch', ClickLeft, False);
ChatTextOptions(['key', 'momen', 'piece', 'great', 'welco'], Nothing, True);
if OpenDoor('prisonout') then
Result:= True;
end;
end else
begin
writeln('Failed while trying to reach Keli');
TerminateScript;
end;
end;

function MakeKey: Boolean;
begin
if Walk('keli-ak') and GetPastGuard('guardl') then
begin
if Walk('ak-osman') and InteractNPC('osman', 'alk-', True) then
begin
if ChatTextOptions(['key', 'impri', 'from'], Nothing, True) then
Result:= True;
end;
end else
begin
writeln('Failed while trying to reach Osman(2)');
TerminateScript;
end;
end;

function ObtainKey: Boolean;
begin
if Walk('osman-ak') and GetPastGuard('guardr') then
begin
if Walk('ak-leela') and InteractNPC('leela', 'alk-', True) then
begin
ChatTextOptions(['caref', 'copy'], Nothing, True);
if ChatTextOptions(['guard', 'basic'], Nothing, False) then
Result:= True;
end;
end else
begin
writeln('Failed while trying to reach Leela(2)');
TerminateScript;
end;
end;

function RescuePrince: Boolean;
begin
if Walk('leela-keli') then
begin
if OpenDoor('prisonout') and InteractNPC('joe', 'alk-', False) then
begin
ChatTextOption('beer', ClickLeft, False);
ChatTextOptions(['beer', 'lovel', 'cours', 'beer', 'perfe', 'too', 'care',
'bette', 'keep', 'two', 'wash', 'drunk'], Nothing, True);
if R_CountItem(1917) = 0 then
begin
if R_ClickItemBy(954, True, '') and InteractNPC('keli', 'ope', False) then
if ChatTextOption('overp', Nothing, True) then
WalkPath([Tile(3122, 3245)]);
if not OpenDoor('prisonin') then
begin
writeln('Failed to open prison door');
TerminateScript;
end;
if InteractNPC('ali', 'alk-', False) then
begin
ChatTextOptions(['rescu', 'kind', 'disgu', 'key', 'hand', 'pay', 'close'], Nothing, True);
if ChatTextOption('frien', Nothing, True) then
Result:= True;
end;
end;
end;
end else
begin
writeln('Failed while trying to Rescue Prince');
TerminateScript;
end;
end;

function ObtainReward: Boolean;
var
a: Integer;
CurTile: TTile;
begin
if OpenDoor('prisonin') and WalkPath([Tile(3130, 3246)]) then
begin
if OpenDoor('prisonout') and Walk('keli-ak') then
begin
InteractNPC('guardl', 'alk-', True);
if ChatTextOptions(['come', 'free'], Nothing, True) then
while (a < 6) and (GetMyPos = CurTile) do
begin
wait(500 + RandomRange(-50, 200));
Inc(a);
end;
if GetMyPos <> CurTile then
Walk('ak-hassan');
if InteractNPC('hassan', 'alk-', False) then
if ChatTextOption('etern', Nothing, True) then
Result:= True;
end;
end else
begin
writeln('Almost finished the quest, but failed to get the reward :(');
TerminateScript;
end;
end;

function SetUpPlayer: Boolean;
begin
if not LoggedIn then
LogInPlayer;
ClickNorth(true);
ChatsOff;
if GetCurrentTab <> 25 then
GameTab(25);
Result:= CheckPlayer;
end;

function PrinceAliRescue: Boolean;
begin
if StepFuncs(['SetUpPlayer', 'TalktoHassan', 'TalktoOsman', 'TalktoLeela',
'TalktoNed', 'TalkToAggie', 'TalkToKeli', 'MakeKey', 'ObtainKey',
'RescuePrince', 'ObtainReward'], [True]) then
Result:= True;
end;

procedure SetUpScript;
begin
Smart_Members := False;
Smart_Server := SMARTSERVER;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
SetUpReflectionEx(True);
MouseSpeed := 18;
DeclarePlayers;
end;

procedure MainLoop;
var
a: Integer;
begin
SetUpScript;
repeat
ClearDebug;
if PrinceAliRescue then
Players[CurrentPlayer].Status:= 'Quest successfully completed!'
else
Players[CurrentPlayer].Status:= 'Failed to complete the quest :(';
NextPlayer(False);
until (PlayersActive = 0);
for a:= 0 to HowManyPlayers do
writeln(Players[a].Name + ': ' + Players[a].Status);
end;

begin
MainLoop;
end.


Script2(not complete):

program FaladorSmith;
{$DEFINE SMART}
{$i SRL\SRL.scar}
{$i reflection\reflection.simba}

procedure WaitRand;
begin
case random(3) of
0: wait(600 + randomrange(-30, 60));
1: wait(800 + randomrange(-30, 80));
2: wait(700 + randomrange(-30, 70));
end;
end;

procedure ClickTile(WhichTile: TTile; Height, rx, ry, ClickType: Integer);
{clicks the given tile if its on the screen
0-Move
1-Left click
2-Right click}
var
coords: TPoint;
begin
coords:= TileToMS(WhichTile, Height);
case ClickType of
0:MMouse(coords.x, coords.y, rx, ry);
1:Mouse(coords.x, coords.y, rx, ry, True);
2:Mouse(coords.x, coords.y, rx, ry, False);
end;
end;

function InterfaceUp: boolean;
//returns true if interface is up
begin
if InIntArray(GetColorsBox(385, 359, 389, 366, True), 0) then
Result:= True
else
Result:= False;
end;

function ChatboxExists: boolean;
//returns true if chatbox exists
begin
if InIntArray(GetColorsBox(9, 461, 14, 471, True), 0) then
Result:= True
else
Result:= False;
end;

function WithdrawIngots: Boolean;
begin
//20503
Result:= False;
ClickTile(Tile(3061, 9705 + random(2)), 100, 10, 10, 2);
WaitOptionMultiEx(['ake'], 'action', ClickLeft, 1000);
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
Mouse(RandomRange(233, 285), RandomRange(400, 441), 0, 0, True)
else
WithdrawIngots;
while not invfull do
begin
wait(300 + randomrange(-100, 300));
if invfull then
begin
Result:= True;
break;
end;
end;
WaitRand;
end;

function ClickAnvil: Boolean;
begin
Result:= False;
ClickTile(Tile(3061, 9709), 80, 0, 0, 2);
WaitOptionMultiEx(['mith'], 'action', ClickLeft, 1000);
if DidRedClick then
Result:= True;
WaitRand;
end;

procedure Track;
begin
if ClickAnvil then
MMouse(RandomRange(221, 298), RandomRange(399, 452), 0, 0);
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
ClickMouse2(True);
while ExistsItem(28) do
begin
R_FindRandoms;
wait(500);
end;
WaitRand;
//20525-40
//20526-60
//20527-80
//20528-100
end;

procedure Rails;
begin
//20515
if WithdrawIngots and ClickAnvil then
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
Mouse(RandomRange(70, 134), RandomRange(399, 452), 0, 0, True);
while GetItemIDAt(14) <> 20515 do
begin
R_FindRandoms;
wait(250);
if GetItemIDAt(14) = 20515 then
break;
wait(250);
end;
end;

procedure BasePlate;
begin
//20516
if ClickAnvil then
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
Mouse(RandomRange(150, 211), RandomRange(399, 452), 0, 0, True);
while GetItemIDAt(28) <> 20516 do
begin
R_FindRandoms;
wait(500);
end;
WaitRand;
end;

procedure Spikes;
begin
//20517
if WithdrawIngots and ClickAnvil then
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
Mouse(RandomRange(227, 292), RandomRange(399, 452), 0, 0, True);
while GetItemIDAt(28) <> 20517 do
begin
R_FindRandoms;
wait(500);
end;
WaitRand;
end;

procedure Joint;
begin
//20518
if WithdrawIngots and ClickAnvil then
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
Mouse(RandomRange(307, 369), RandomRange(399, 452), 0, 0, True);
while GetItemIDAt(28) <> 20518 do
begin
R_FindRandoms;
wait(500);
end;
WaitRand;
end;

procedure Ties;
begin
//20519
if WithdrawIngots and ClickAnvil then
while ChatBoxExists do
begin
wait(300);
if InterfaceUp then
break;
end;
if InterfaceUp then
Mouse(RandomRange(386, 448), RandomRange(399, 452), 0, 0, True);
while GetItemIDAt(28) <> 20519 do
begin
R_FindRandoms;
wait(500);
end;
WaitRand;
end;

procedure LayTrack;
begin
WalkToTile(Tile(3064, 9715), 0, 3);
ClickTile(Tile(3067, 9716), 220, 0, 0, 0);
end;


procedure MainLoop;
var
loads: Integer;
begin
ClearDebug;
repeat
Rails;
BasePlate;
Track; //40
Spikes;
Track; //60
Joint;
Track; //80
Ties;
Track; //100
LayTrack;
Inc(loads);
writeln('Running for: ' + TimeRunning);
writeln('Loads done: ' + IntToStr(loads));
writeln('Smithing exp: ' + ToStr(1365 * loads));
until(False);
end;

begin
Smart_Members := false;
Smart_Server := 123;
Smart_Signed := true;
Smart_SuperDetail := false;
SetupSRL;
SetupReflectionEx(True);
SetupRandomTool(1000, 5, 'alarm.wav');
MouseSpeed := 15;
MainLoop;
end.

NCDS

2011-04-03 11:17:41

Couple things to remember:

if (not LoggedIn) then
Exit;
You don't want your script thinking your logged in and still trying to work while your logged out or in lobby.

Also, the Result of a function can be set directly assuming the types are the same.

Result := OpenBank;
Would set Result := True; if OpenBank is successful.
Just saves you from having to do if..then Result := True; every time.

Looks like I'm voting yes, though I'm going to wait a bit because I just woke up.

Floor66

2011-04-03 11:30:07

Yes. I see reflection and colour, nuff said ;)

lordsaturn

2011-04-03 12:08:43

Great app. I like your style. Definite yes.


Also I hate xsellize. Nothing in their repo is original. Messy and outdated too.

Putnam

2011-04-03 14:22:07

Yes, :).
I love quest scripts, can't wait to see what you put out! Also reflection + color <3

TomTuff

2011-04-04 01:18:17

Lots of good apps as of late! Easy yes!

Blumblebee

2011-04-04 03:13:34

I like you. Yes

WT-Fakawi

2011-04-05 11:27:25

Ja!

Home

2011-04-05 11:29:02

Quest script, nice :)

Yep from me!

~Home

footballjds

2011-04-05 15:42:08

From: Home
Quest script, nice :)

Yep from me!

~Home


yes. A quester. not bad ;)
Can imagine why you choose prince ali rescue though. ;)
(do i smell a sorc garden?)

KingKong

2011-04-05 18:53:28

From: iTry
(do i smell a sorc garden?)


I don't think so, im not mem, but if you can provide me atleast 2 accs with membership then its possible.

TomTuff

2011-04-05 21:18:46

From: KingKong
I don't think so, im not mem, but if you can provide me atleast 2 accs with membership then its possible.


Why two?

footballjds

2011-04-06 00:06:08

From: KingKong
I don't think so, im not mem, but if you can provide me atleast 2 accs with membership then its possible.


Why else would you want to do Prince Ali Rescue???
:p

yeah sure, i'll give you my main…
not

cycrosism

2011-04-06 01:37:20

Almost everything I see is reflection. All the walking is reflection, you have included no colour walking, everything to do with NPC's is based of reflection.

No from me.

Good luck!

KingKong

2011-04-06 01:58:17

From: TomTuff
Why two?


Well I need one to actually get a rough idea of what do in the correct order and the other to iron out all the bugs/errors and to check since I don't want to release something that doesn't work 100%.

From: iTry
Why else would you want to do Prince Ali Rescue???
:p

yeah sure, i'll give you my main…
not


Im ready whenever you are :)


From: cycrosism
Almost everything I see is reflection. All the walking is reflection, you have included no colour walking, everything to do with NPC's is based of reflection.

No from me.

Good luck!


Actually the only thing that is reflection is walking and interacting with npc, and checking the players inventory for required items, everything else is color, so i dont know why you say almost everything is reflection. If you're talking about SPS based color walking, I don't think everyone has it and hence i decided to use reflection walking.

P.S. I guess that's one vote against me, would the other person who voted no kindly tell me their reason?

cycrosism

2011-04-06 02:00:55

From: KingKong
If you're talking about SPS based color walking, I don't think everyone has it and hence i decided to use reflection walking.


But because you think everyone doesn't have SPS based colour walking that does not mean you should or should not use it.

KingKong

2011-04-06 02:12:05

From: cycrosism
But because you think everyone doesn't have SPS based colour walking that does not mean you should or should not use it.


lol, there's no point in making something when only a few are able to use it, don't you think?

Edit: Also mind telling me how findnpcchattext is reflection?

Bad Boy JH

2011-04-06 07:31:32

cause cycro is looking for reflection.

Edit: that sounded a lot ruder than I intended, he is looking for reflection, therefore he is more likely to interpret names as reflection. Its natural…

WT-Fakawi

2011-04-13 10:10:24

In! Welcome.