SRL Archive - OSR Help

Fail-safe trading !!


ssshhhaaa

2012-06-30 11:32:22

Ok so one problem that I'm always having in an idea for a script is adding fail-safes to trading a shop keeper.

What I want my bot to do is to trade lets say a shopkeeper (which is the easy part), and then buy a few different items one by one and then exit.

But lets say the shop screen might close randomly in-between buying the items by a monster attacking me, how would I detect that a monster is fighting me and then after its has been killed by the bot start the loop again from the beginning where I am going to trade the shop keeper and buy the stuff then exit.

I guess this is really difficult, but I:fiery: need some ideas or some help on this!

Thanks for reading.

Sin

2012-06-30 11:33:21

Lemme guess, buying/selling fire runes in Aubury's Rune Shop while the Mugger is attacking you.

ssshhhaaa

2012-06-30 11:34:12

From: Shay
Lemme guess, buying/selling fire runes in Aubury's Rune Shop while the Mugger is attacking you.


Nope but good guess :/

Anyway please help me :3

Sir Ducksworthy

2012-06-30 12:04:47

Well Umm.. Heres a few scripts I made to be Sneaky Ninja
Arrow Shaft Buying Bot
It will like spam the trade in g.e with mutiple different things and accept the trade and thank them with different ways

program LeetzMoneyMakingTradeAccepting;
{$DEFINE SMART}
{$i SRL/srl.simba}
const
//////////////////////////////////////////IMPORTANT!!IMPORTANT!!IMPORTANT!!IMORTANT\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Welcome Leetsxc, Please review the STEPS below and complete which are required before starting the script.\\
// \\ // \\
//////////////////////////////Start of $etup////////////////////////////////////
SERVER = 15; // Enter "0" to pick a random server. STEP 1 //
MEMBERS = False; //False if F2P True for P2P STEP 2 //
NumbOfPlayers = 1; //Dont touch Unless you wanna use multi player setup //
StartPlayer = 0; //Dont touch //

CheckEmails = True; /////BREAKING SETUP\\\\\ //
Registeraccs = False;
UseBreaks = True; //Do you want to take breaks? STEP 3 \\
SwitchWorld = True; //Do you want to switch worlds after the break? STEP 4 \\
BreakIn = 290; //How many minutes until you take a break? STEP 5 \\
BreakInRandom = 10; //How many minutes should the "BreakIn" time be varied by? STEP 6 \\
BreakFor = 7; //How many minutes will you break for? STEP 7 \\
BreakForRandom = 7;//How many minutes should the "BreakFor" time be varied by? STEP 8 //


var
Time, StartTime,x,y, AccountCount: integer;
AccountName: string;
User:TstringArray;
ItemAM:Tbox;

procedure DeclarePlayers;
var
i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
begin
Players[i].BoxRewards := ['amp'];
Players[i].LampSkill := 13;
end;
With Players[0] do
begin
Name := ''; //Username. STEP 12
Pass := ''; //Password. STEP 13
Active := True;
end;
{ With Players[1] do //For more players uncomment the {'s at top left and bottem right
begin
Name := ''; //Username.
Pass := ''; //Password.
Active := True;
end; }
end;
////////////////////////////// End of Setup////////////////////////////////////

procedure DTMZ;
begin
end;

procedure FREEDTMZ;
begin
end;

begin
Smart_server := SERVER;
Smart_Signed := TRUE;
Smart_Members := MEMBERS;
Smart_SuperDetail := FALSE;
SetupSRL;
DeclarePlayers;
LoginPlayer;
mousespeed:=25+random(4);
Wait(2000);
StartTime:=GetSystemTime;
ItemAM.X1:=315;
ItemAM.Y1:=50;
ItemAM.X2:=361;
ItemAM.Y2:=95;
repeat
writeln('Waiting for first trade...');
while Findcolortolerance(x,y,8388736,13, 446,162, 456,5)=false do
begin
Case random(14) of
0:
Typesend('Neeed People to help buy me Arrow Shafts! Paying 15gp ea');
1:
Typesend('Need People to help buy me Arrow Shafts! Paying 15gp ea');
2:
Typesend('Need Peoplez to help buy me Arrow Shafts! Paying 15gp ea');
3:
Typesend('Need Peopless to help buy me Arrow Shafts! Paying 15gp ea');
4:
Typesend('Need People to helpz me getz Arrow Shafts! Paying 15gp ea');

5:
Typesend('Make your self a quick profit by selling em to me for 15gp ea and help me out');
6:
Typesend('Make your self a quick profit by selling shaftz to me for 15gp ea');
7:
Typesend('Make your self a quick profit by selling em to me for 15gp ea..');
8:
Typesend('Make your self a quick profit by selling em to me for 15gp!');
9:
Typesend('Make your self a quick profit by selling emm to me for 15gp ea and help me out');

10:
Typesend('Buy 20k arrow shafts from the g.e for 13gp ea and sell to me for 15!');
11:
Typesend('Buy 20k arrow shaftss from the g.e for 13gp ea and sell to me for 15!');
12:
Typesend('Buyy 20k arrow shafts from the g.e for 13gp ea and sell to me for 15!');
13:
Typesend('Buy 20k arrow shafts fromm the g.e for 13gp ea and sell to me for 15!');
14:
Typesend('Buy 20k arroww shafts from the g.e for 13gp ea and sell to me for 15!');
End;
sleep(600+random(2000));
end;
mouse(18,447, 100, 3, true);
while tradeScreen()=0 do
begin
sleep(50);
end;
writeln('In Trade ! XD');
Marktime(time);
while(GetAmountBox(ItemAM) < 1) do sleep(100);
Mouse(173, 44,43,7, true);
Mouse(173, 44,43,7, true);
sleep(1300+random(300));
Typesend(inttostr(GetAmountBox(ItemAM)*15));
Mouse(235,134,30,20,true);
While tradeScreen()=1 do
begin
sleep(100);
end;
Writeln('Other player accepted.. now confirming and waiting for other player to');
sleep(500);
Mouse(195,300,60,21,true);
While tradescreen()=2 do
begin
sleep(100);
end;

Case random(20) of
1:
Typesend('Thx');
2:
Typesend('Ty');
3:
Typesend('Tyz');
4:
Typesend(':)');
5:
Typesend('=D');
6:
Typesend('Ty ;)');
7:
Typesend('Tyz :)');
8:
Typesend(':) tyy');
9:
Typesend('tyy');
10:
Typesend('Cheers');
11:
Typesend('Cheerz');
12:
Typesend('Thankyou');
13:
Typesend('Thankyou :)');
14:
Typesend('Thankyouu :)');
15:
Typesend(':)!');
16:
Typesend('Ty..');
17:
Typesend('Tyz..');
18:
Typesend(':D');
19:
Typesend('Ty...');
20:
Typesend('Tyz!');
End;

writeln('First Trade Done!!!');
until (false);
end.

Here is a script that contains nice fail safed trading
It would buy feathers from fishing store off multiple noobs and trade them onto a main acc
program leetzmoneymaking;
{$DefIne SMArt}
{$i srl/srl.simba}
{$i sps/sps.simba}
const

//////////////////////////////////////////ImportAnt!!ImportAnt!!ImportAnt!!ImortAnt\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//welcome to , by leetsxc, please review the steps below and complete which are required before starting the script.\\
// \\ // \\
//////////////////////////////start of $etup////////////////////////////////////
server = 15; // enter "0" to pick a random server. step 1 //
members = true; //false if f2p true for p2p step 2 //
numbofplayers = 1; //dont touch unless you wanna use multi player setup //
startplayer = 0; //dont touch //

checkemails = false; /////breAkInG setup\\\\\ //
registeraccs = false;
usebreaks = true; //do you want to take breaks? step 3 \\
switchworld = false; //do you want to switch worlds after the break? step 4 \\
breakIn = 290; //How many minutes until you take a break? step 5 \\
breakInrandom = 10; //How many minutes should the "breakIn" time be varied by? step 6 \\
breakfor = 7; //How many minutes will you break for? step 7 \\
breakforrandom = 7;//How many minutes should the "breakfor" time be varied by? step 8 //


var
Bait,Bait2,Bait3,LimitButton,PlayButton, LoginButton, customizer, tickbox, vialswithwater, starttime,x,y, Accountcount: integer;
Accountname: string;
user:tstringArray;
pts:tpointArray;

procedure declareplayers;
var
i:integer;
begin
numberofplayers(numbofplayers);
currentplayer := startplayer;
for i := 0 to numbofplayers-1 do
begin
players[i].boxrewards := ['amp'];
players[i].lampskill := 13;
end;
with players[0] do
begin
name := Accountname; //username. step 12
pass := ''; //password. step 13
Active := true;
end;
{ with players[1] do //for more players uncomment the {'s at top left and bottem right
begin
name := ''; //username.
pass := ''; //password.
Active := true;
end; }
end;
////////////////////////////// end of setup////////////////////////////////////

function findtpa(Huemodifier, satmodifier:extended; color, tol, xx1, yy1, xx2, yy2:Integer; text, option:tstringArray): boolean;
var
xx,yy,cts, I: Integer;
tpA: tpointArray;
AtpA: Array of tpointArray;
begin
cts := Getcolortolerancespeed;
colortolerancespeed(2);
setcolorspeed2modifiers(Huemodifier, satmodifier);
findcolorsspiraltolerance(x, y, tpA, color, xx1, yy1, xx2, yy2, tol);
colortolerancespeed(cts);
AtpA := tpAtoAtpAex(tpA, 15, 15);

for I := 0 to High(AtpA) do
begin
middletpAex(AtpA[i], x, y);
mmouse(x, y, 2, 2);
Getmousepos(x, y);
If(waituptextmulti(text,1000)) then
begin
mouse(x,y,0,0,false);
if(waitoptionmulti(option, 1000))then
begin
result := true;
break;
end;
end;
end;
end;

Function ShopScreenz : Boolean;
Begin
Result := Findcolortolerance(x, y, 5353701, 148, 50, 213, 62, 4);
End;

procedure mainmethod;
var
ItemAM,ItemAM2:Tbox;
time,Count:integer;
begin
if(FindDTM(Bait,x,y,553, 206,736, 312) or FindDTM(Bait2,x,y,553, 206,736, 312) or FindDTM(Bait3,x,y,553, 206,736, 312)) then
begin
mouse(x,y,0,0,false);
while waitoption('Drop', 300)=false do
mouse(x,y,0,0,false);
end;
if(findcolortolerance(x,y,10658730,556, 207,735, 300,6))then
begin
mouse(x,y,0,0,false);
while waitoption('Drop', 300)=false do
mouse(x,y,0,0,false);
end;
while findtpa(0.01, 0.95, 990933, 12, msx1, msy1, msx2, msy2, ['EEL1TE'], ['with'])=false do
begin
sleep(100);
mouse(170,376,100,50,true);
end;
writeln('waiting for response.. from other character');
while tradescreen()=0 do
begin
sleep(100);
end;
sleep(500);
writeln('In trade ! xd');
while tradescreen()=1 do
begin
if(waitfindcolor(x,y, 1808317, 325, 74,356, 90, 4, 15000))then
begin
writeln('Gold has appeared Accepting trade..');
mouse(235,134,54,22,true);
writeln('Accepted waiting for other player to accept');
Marktime(time);
while ((tradescreen()=1) and (timefrommark(time) < 10000)) do
sleep(100);
if(tradescreen()=2)then
break;
sleep(100);
end;
end;

writeln('other player accepted.. now confirming and waiting for other player to');
sleep(500);
mouse(195,300,60,21,true);
while tradescreen()=2 do
begin
sleep(100);
end;
writeln('trade done!!!');
repeat
repeat
if(findtpa(0.31, 0.07, 7172466, 9, msx1, msy1, msx2, msy2, ['Hank'], ['rade']))then
break;
if(findtpa(0.42, 0.06, 5330261, 8, msx1, msy1, msx2, msy2, ['Hank'], ['rade']))then
break;
until(false);
Marktime(Time);
while ((shopscreenz()=false) and (TimeFromMark(Time) < 15000)) do
sleep(100);
if(TimeFromMark(Time) < 15000)then
break;
until(false);
ItemAM.X1:=279;
ItemAM.Y1:=130;
ItemAM.X2:=327;
ItemAM.Y2:=183;
writeln('In Shop now.. Buying feathers!!!');
Marktime(time);
while GetAmountBox(ItemAM) < 999 do
begin
mouse(486, 44, 3, 4,true);
sleep(200);
end;
mouse(279, 130, 48, 53, false);
while WaitOption('All', 200+random(100)) = false do
begin
mouse(279, 130, 48, 53, false); //feathers
end;
{while GetAmountBox(ItemAM) > 10 do
begin
mouse(279, 130, 48, 53, false); //feathers
waitoption('All', 2000);
sleep(100+random(200));
end; }
//Perfect Fail Safing with simple functions
mouse(228, 130, 48, 53, false);
while WaitOption('All', 200+random(100)) = false do
begin
mouse(228, 130, 48, 53, false); //bait
end;
mouse(496, 18,3,3,true); //Close Shop Screen
while shopscreenz()=true do //
begin
sleep(100);
end;
writeln('time to trade player :)');

while findtpa(0.01, 0.95, 990933, 12, msx1, msy1, msx2, msy2, ['EEL1TE'], ['rade'])=false do
begin
sleep(100);
end; 10
writeln('waiting for response.. from other character');
while tradescreen()=0 do
begin
sleep(100);
end;
writeln('In trade!');
writeln('Githing feathers and fish bait');

while (FindDTM(Bait,x,y,553, 206,736, 312) or FindDTM(Bait2,x,y,553, 206,736, 312) or FindDTM(Bait3,x,y,553, 206,736, 312))=false do
mouse(x,y,0,0,false);
while waitoption('X', 300)=false do
mouse(x,y,0,0,false);
Sleep(1000);
TypeSend('750');

while findcolortolerance(x,y,10658730,556, 207,735, 300,6) do
begin
mouse(x,y,0,0,false);
waitoption('All', 600);
sleep(200);
end;
mouse(235,134,54,22,true);
while tradescreen()=1 do
begin
sleep(100);
end;
writeln('other player accepted.. now confirming and waiting for other player to');
sleep(500);
mouse(195,300,60,21,true);
while tradescreen()=2 do
begin
sleep(100);
end;
writeln('trade done!!!');
//finished switch player
end; 10

procedure locationmanager;
var
posx, posy:integer;
mypos:tpoint;
notInzone:boolean;
begin
//mypos := sps_Getmypos();
//posx:=mypos.x; posy:=mypos.y;
//writeln('my position is ' + inttostr(posx) + ', ' + inttostr(posy));
//if(sps_walktopos(point(4635, 3675)))then
// writeln('reached position');
if(sps_walktopos(point(4615, 3651)))then
writeln('reached position') else locationmanager;

end;

procedure randomcustomizechar;
var
randy:integer;
begin
mouse(162,160, 734, 153, true);
mouse(574, 124, 279, 5, true);
case randomrange(1,2) of
1: mouse(414, 108, 15, 10, true);
2: mouse(494, 108, 15, 10, true);
end;
mouse(665, 468, 15, 10, true); //contin
sleep(500);
mouse(654, 467, 15, 10, true); //firm
sleep(500);
Accountname := Inttostr(random(99)) + user[Accountcount] + Inttostr(random(99));
mouse(206, 217,10,3,true);
sleep(500);
typesend(Accountname);
sleep(500);
mouse(160, 343,3,3,true); //continue
Accountname := user[Accountcount]+'@tormail.net';
sleep(5000);
end;

procedure LoginAccount;
begin
While FindDTM(LoginButton, x, y, 283, 253, 482, 298)=False do sleep(100);
Mouse(407, 186, 0, 0, true);
sleep(100);
Typesend(AccountName);
Typesend('YOUR PASSS');
Repeat
While FindDTM(PlayButton, x, y, 244, 434, 516, 487)=False do sleep(100);
if(FindDTM(PlayButton, x, y, 244, 434, 516, 487))then
Mouse(x,y,5,5,true);
While ((Loggedin()=false) and (FindDTM(LimitButton, x, y, 290, 296, 472, 332)=False)) do sleep(100);
if(FindDTM(LimitButton, x, y, 290, 296, 472, 332))then
begin
Mouse(x,y,0,0,true);
end else
begin
break;
end;
Until(false);

writeln('Logged into: ' + AccountName);
end;

procedure dtmz;
begin
tickbox := dtmfromstring('mwAAAAHicy2fgyjjHxmdqcsr7gHgpejcdxuqbuAkIe4e4sumiGAc3nwxqdl/jwAuuq8amabgeAfyzct8=');
customizer:= DTMFromString('mQwAAAHicY2ZgYHBjYmCIB+IyIK5nQOCb544znNuykOHqylYGDiAfhhmRMBAAAG0PCVE=');
LoginButton := DTMFromString('mggAAAHicY2NgYAhnYmD4z8jA8BaKC4H8LCDWhGI5IDaBYhB7ZQELGB9P5mcoNxMC4/Pp/AwsQLOwYUYcGAIA5dwLcQ==');
PlayButton:= DTMFromString('mbQAAAHicY2VgYKhnBBJA/BuIa4C4CYjPAPEJID4JxLuA+B4Qv36wh+Hf3xtg/PHuGoZ9K3IYmIFa0TEjFgwGAOkFEwo=');
LimitButton:= DTMFromString('mbQAAAHicY2VgYPBkZmD4zsTAMANIOwOxCxCbA/lmUKwDxA5A/PrBHoZ1wcJgfCOLn6HPQYwBG2DEgsEAANY5CnU=');
Bait:= DTMFromString('mbQAAAHicY2VgYJjDwsAwE4gXAPFcFgifjRGB2YGYBYjX1EgAVTOhYE4GTMCIBYMBAJDCBKA=');
Bait2:= DTMFromString('mLgAAAHicY2JgYPgAxVOBeAoQb2qUBJJMDCIMEMAIxQwMAJNRBHA=');
Bait3:= DTMFromString('mQwAAAHicY2ZgYPjBhsCCjAwMQkAsAMRbmiSBskxgzMmAAIxIGAgA7mgEkw==');
// vialswithwater:= dtmfromstring('mlgAAAHicy2jgyHbghobrqpydIp7//z8ywwAjfdmwAAdukggz');
end;

procedure freedtmz;
begin
freedtm(tickbox);
freedtm(customizer);
FreeDTM(LoginButton);
FreeDTM(PlayButton);
FreeDTM(LimitButton);
FreeDTM(Bait);
FreeDTM(Bait2);
FreeDTM(Bait3);
end;

begin
smart_server := server;
smart_signed := true;
smart_members := members;
smart_superdetail := f10Alse;
setupsrl;
Addonterminate('freedtmz');
dtmz;
sps_setup(runescApe_surfAce, ['11_9','11_8']);
// up to mrs tabs in registering
user := [
'acc1',
'ACC2 ETC',
];
FreeSRL;
repeat
accountname := user[accountcount]+'@EMAILL.net';
Mousespeed:=28+Random(5);
if(not(LoggedIn()))then
LoginAccount;
SetupSRL;
setangle(0); //fix controls bullshit xd
SetRun(True);
mouse(331, 314,0,0,true);
locationmanager;
mainmethod;
sleep(300);
While LoggedIn() do
begin
mouse(747,3, 4, 4, true);
sleep(200);
mouse(578, 394, 20, 10, true);
end;
if(accountname='LLASTACC@EMAIIL.net')then
terminatescript();
accountcount:=accountcount+1;
FreeSRL;
until (false);
end.

This Script would a accept those trades n pay for the feathers it would be used on the Main acc
program LeetzMoneyMakingTradeAccepting;
{$DEFINE SMART}
{$i SRL/srl.simba}
const
//////////////////////////////////////////IMPORTANT!!IMPORTANT!!IMPORTANT!!IMORTANT\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Welcome to Trade Accepter + Feather buyer, by Leetsxc, Please review the STEPS below and complete which are required before starting the script.\\
// \\ // \\
//////////////////////////////Start of $etup////////////////////////////////////
SERVER = 15; // Enter "0" to pick a random server. STEP 1 //
MEMBERS = False; //False if F2P True for P2P STEP 2 //
NumbOfPlayers = 1; //Dont touch Unless you wanna use multi player setup //
StartPlayer = 0; //Dont touch //

CheckEmails = True; /////BREAKING SETUP\\\\\ //
Registeraccs = False;
UseBreaks = True; //Do you want to take breaks? STEP 3 \\
SwitchWorld = True; //Do you want to switch worlds after the break? STEP 4 \\
BreakIn = 290; //How many minutes until you take a break? STEP 5 \\
BreakInRandom = 10; //How many minutes should the "BreakIn" time be varied by? STEP 6 \\
BreakFor = 7; //How many minutes will you break for? STEP 7 \\
BreakForRandom = 7;//How many minutes should the "BreakFor" time be varied by? STEP 8 //


var
Time, StartTime,x,y, AccountCount: integer;
AccountName: string;
User:TstringArray;

procedure DeclarePlayers;
var
i:integer;
begin
NumberOfPlayers(NumbOfPlayers);
CurrentPlayer := StartPlayer;
for i := 0 to NumbOfPlayers-1 do
begin
Players[i].BoxRewards := ['amp'];
Players[i].LampSkill := 13;
end;
With Players[0] do
begin
Name := ''; //Username. STEP 12
Pass := ''; //Password. STEP 13
Active := True;
end;
{ With Players[1] do //For more players uncomment the {'s at top left and bottem right
begin
Name := ''; //Username.
Pass := ''; //Password.
Active := True;
end; }
end;
////////////////////////////// End of Setup////////////////////////////////////

procedure DTMZ;
begin
end;

procedure FREEDTMZ;
begin
end;

begin
Smart_server := SERVER;
Smart_Signed := TRUE;
Smart_Members := MEMBERS;
Smart_SuperDetail := FALSE;
SetupSRL;
DeclarePlayers;
LoginPlayer;
mousespeed:=25+random(4);
Wait(2000);
StartTime:=GetSystemTime;
repeat
writeln('Waiting for first trade...');
WithdrawFromPouch(210000);
while Findcolortolerance(x,y,8388736,13, 446,162, 456,5)=false do
sleep(100);
mouse(18,447, 100, 3, true);
while tradeScreen()=0 do
begin
sleep(50);
end;
writeln('In Trade ! XD');
repeat
Marktime(time);
if(GetAmountBox(ItemAM) > 8999)then
begin
if(FindCoins(x, y, 'inv'))then
Mouse(x,y,0,0, false);
if(waitoption('All',3000))then break;
end else
begin
if(timefrommark(time)>15000)then
break;
end;
until(false);
Mouse(235,134,30,20,true);
While tradeScreen()=1 do
begin
sleep(100);
end;
Writeln('Other player accepted.. now confirming and waiting for other player to');
sleep(500);
Mouse(195,300,60,21,true);
While tradescreen()=2 do
begin
sleep(100);
end;
writeln('First Trade Done!!!');
until (false);
end.