SRL Archive - Archive

Bonfield - SRL Member Application Form


Bonfield

2008-03-06 18:57:44

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

What is the meaning to life?


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


Programming Knowledge
scar

Other Communitys
none

How Long have You Played Runescape
2-3 years i think

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

heres my superheater script ive put a fair bit of work into it and it runs pretty well, i posted the script yesterday but no one gave me any feedback and i thought id apply for members because this is a much better script that my autofighter :)

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


program SuperHeat;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/magic.scar}
{
==========================================================================
This script superheats any Ore to Bars
==========================================================================
Created for scar 3.12 and SRL 4 Rev 14

1. USE Runescape with Low Detail, Very Bright.
2. Set your Screen to 32 bit TRUE color.
3. Set Playernames and Passwords in DeclarePlayers.
4. Set NumberOfPlayers.
5. Position Players at Falador East Bank with fire staff equiped
and Nature runes in bank with nothing in your inventory
6. Make sure your Players has ores and nature runes

Credits to Rasta Magican and Cutem2it for all the help that
they both gave me with casting superheat

Version 1- Original release
==========================================================================
}
var
l, loads, x, y, c, nat: integer;

const
StartPlayer = 0; // Determines who will play first
MSpeed = 10; //speed of the mouse...higher number slower speed, lower number higher speed
MySRLID = 'ID'; // Must be a string!
MySRLPassword = 'Pass'; // Must be a string!
VersionNumber = 1; // No need to change

procedure DeclarePlayers;
begin
HowManyPlayers := 1; // Set Number of Players here.
NumberOfPlayers(HowManyPlayers); // Sets the Players Array Length;
CurrentPlayer := StartPlayer; // CurrentPlayer = Array Index

Players[0].Name := 'name'; //username
Players[0].Pass := 'pass'; //password
Players[0].Nick := 'nick'; //3-4 consecutive letters of your user name(NOT First letter)
Players[0].Strings[0] := 'steel'; //type of bar bronze,iron,steel,mithril,adamantite,runite,gold,silver,
Players[0].integers[0] := 100; //how many times to cast superheat
Players[0].Active := True; //are you going to use this player

end;

procedure AntiRandoms;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
if FindFight then RunTo('N',True);
case Random(100) of
0: RandomRClick;
1: PickupMouse;
2: randommovement;
end;
end;

procedure WithdrawNats;
begin
if (not (Loggedin)) then exit;
if (not (bankscreen)) then exit;
nat := DTMFromString('78DA638C61606028634001825DA20C5C409A1' +
'188FF0301631A9091C18006189148209D83690E869A4420D14840' +
'4D1890A827A026004894105013042472F0AB01004CF40A86');

if FindDTM(nat, x, y, MSX1, MSY1, MSX2, MSY2) then
else begin
writeln('no nats')
terminatescript;
end;
begin;
Mouse(x, y, 3, 3, false)
wait(100 + random(50))
begin
ChooseOption('Withdraw X');
Wait(1000 + Random(100));
TypeSend(IntToStr(players[currentplayer].Integers[0]) + Chr(13));
FreeDTM(nat);
end;
end;
end;

function FindOre(oreType: string; var rx, ry: integer; x1, y1, x2, y2: integer):
boolean;
var
ore, oreColor: integer;
oreMP: TDTMPointDef;
oreSP: array of TDTMPointDef;
oreSkel: TDTM;
begin
case lowercase(oreType) of
'copper': oreColor := 3834079;
'tin': oreColor := 8553356;
'iron': oreColor := 2305869;
'silver': oreColor := 11971499;
'coal': oreColor := 2702653;
'gold': oreColor := 1815515;
'mithril': oreColor := 7425357;
'adamantite': oreColor := 5268302;
'runite': oreColor := 7958098;
else
begin
writeln('ore type not found');
Logout;
end;
end;
setarraylength(oreSP, 4);

oreMP.x := 580;
oreMP.y := 229;
oreMP.areasize := 1;
oreMP.areashape := 0;
oreMP.color := oreColor;
oreMP.tolerance := 15;

oreSP[0].x := 576;
oreSP[0].y := 227;
oreSP[0].areasize := 0;
oreSP[0].areashape := 0;
oreSP[0].color := 65536;
oreSP[0].tolerance := 0;

oreSP[1].x := 574;
oreSP[1].y := 229;
oreSP[1].areasize := 0;
oreSP[1].areashape := 0;
oreSP[1].color := 65536;
oreSP[1].tolerance := 0;

oreSP[2].x := 563;
oreSP[2].y := 230;
oreSP[2].areasize := 0;
oreSP[2].areashape := 0;
oreSP[2].color := 65536;
oreSP[2].tolerance := 0;

oreSP[3].x := 592;
oreSP[3].y := 227;
oreSP[3].areasize := 0;
oreSP[3].areashape := 0;
oreSP[3].color := 65536;
oreSP[3].tolerance := 0;

oreSkel.MainPoint := oreMP;
oreSkel.SubPoints := oreSP;
ore := AddDTM(oreSkel);

result := findDTM(ore, rx, ry, x1, y1, x2, y2);
freeDTM(ore);
end;

procedure WithdrawOres;
begin;
l := 0
if (not (Loggedin)) then exit;
if (not (bankscreen)) then exit;
case lowercase(players[currentplayer].Strings[0]) of
'bronze':
begin
if findOre('copper', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find copper');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
Wait(1000 + Random(100));
if chooseOption('X') then
begin
wait(100 + random(100));
typesend('13');
end;
end;
wait(500 + random(500));
if findOre('tin', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find tin');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('13');
end;
closebank;
end;
end;
'iron':
begin
if findOre('iron', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find iron');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
chooseOption('All');
end;
closebank;
end;
'silver':
begin
if findOre('silver', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find silver');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
chooseOption('All');
end;
closebank;
end;
'steel':
begin
if findOre('iron', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find iron');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('9');
end;
end;
wait(500 + random(500));
if findOre('coal', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find coal');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('18');
end;
closebank;
end;
end;
'gold':
begin
if findOre('gold', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find gold');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
chooseOption('All');
end;
closebank;
end;
'mithril':
begin
if findOre('mithril', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find mirhril');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
chooseOption('5');
end;
wait(500 + random(500));
if findOre('coal', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find coal');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('20');
end;
closebank;
end;
end;
'adamantite':
begin
if findOre('adamantite', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find adamantite');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
Wait(1000 + Random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('3');
end;
end;
wait(500 + random(500));
if findOre('coal', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find coal');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('18');
end;
closebank;
end;
end;
'runite':
begin
if findOre('runite', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find runite');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('3');
end;
end;
wait(500 + random(500));
if findOre('coal', x, y, msx1, msy1, msx2, msy2) then
else
begin
writeln('Can not find coal');
Logout;
end;
begin
mouse(x, y, 3, 3, false);
wait(100 + random(100));
if chooseOption('X') then
begin
Wait(1000 + Random(100));
typesend('24');
end;
closebank;
end;
end;
end;
end;

procedure CastSuperheats;
var
i, randomClick :integer;
begin
c:= 0;
if (not (Loggedin)) then exit;
if players[currentplayer].Strings[0] = 'bronze' then
c := 27;
if players[currentplayer].Strings[0] = 'iron' then
c := 27;
if players[currentplayer].Strings[0] = 'steel' then
c := 9;
if players[currentplayer].Strings[0] = 'mithril' then
c := 5;
if players[currentplayer].Strings[0] = 'adamantite' then
c := 3;
if players[currentplayer].Strings[0] = 'runite' then
c := 3;
if players[currentplayer].Strings[0] = 'gold' then
c := 27;
if players[currentplayer].Strings[0] = 'silver' then
c := 27;
Gametab(7);
repeat
wait(200)
if not CastSpell(26) then break;
Wait(450 + random(150));
if players[currentplayer].Strings[0] = 'bronze' then
if not findOre('copper', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find copper');
break;
end;
if players[currentplayer].Strings[0] = 'iron' then
if not findOre('iron', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find iron');
break;
end;
if players[currentplayer].Strings[0] = 'steel' then
if not findOre('iron', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find steel');
break;
end;
if players[currentplayer].Strings[0] = 'mithril' then
if not findOre('mithril', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find mith');
break;
end;
if players[currentplayer].Strings[0] = 'adamantite' then
if not findOre('adamantite', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find addy');
break;
end;
if players[currentplayer].Strings[0] = 'runite' then
if not findOre('runite', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find rune');
break;
end;
if players[currentplayer].Strings[0] = 'gold' then
if not findOre('gold', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find gold');
break;
end;
if players[currentplayer].Strings[0] = 'silver' then
if not findOre('silver', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find silver');
break;
end;
begin
MMouse(x, y, 2, 2);
wait(250 + random(150));
if IsUpText('ore') then
begin
Mouse(x, y, 5, 5, True);
Wait(450 + random(150));
AntiRandoms;
c := c + 1;
end else
begin
writeln('Can not find ore');
break;
WithdrawOres;
c := c + 1;
MarkTime(randomClick);
repeat
i:= Random(27)+1;
if(not(ExistsItem(i))) then
begin
MouseItem(i,True);
Break;
end;
until(TimeFromMark(randomClick)>=10000)
end;
end;
until(false)
end;

procedure BankBars;
var
Bar, time: Integer;
begin
Bar := DTMFromString('78DA63946660601062400113DBDB19B880342' +
'310FF0702460520839B010D302291401A648E0C01353C40429880' +
'1A652021825F0D00B24D0699');

MarkTime(time);
repeat
if (not (Loggedin)) then break;
OpenBankQuiet('feb')
until (BankScreen or (TimeFromMark(time) > 120000));
if Bankscreen then
else exit;
begin
IsUpText('Bar')
Deposit(2, 3, 2);
CloseBank;
loads := l + 1;
AntiRandoms;
ReportVars[0] := ReportVars[0] + 1;
SRLRandomsReport;
end;
FreeDTM(Bar);
end;

procedure ProgressReport;
begin
ClearDebug;
Writeln('<|----------------------------------------------|>');
Writeln(' AutoFighter version 1 by Bonfield ');
Writeln(' ');
Writeln(' Worked for ' + TimeRunning);
Writeln(' ');
Writeln(' Cast Superheat ' + inttostr(c) + ' times');
Writeln('<|----------------------------------------------|>');
end;

procedure Setup;
begin;
SetupSRL;
ScriptID := '692';
SRLID := MySRLID;
SRLPassword := MySRLPassword; If ( SRLID = '' ) Or ( SRLPassword = '' )Then Begin Writeln(' You Need a SRL Stats Account, Create One');OpenWebPage('http://www.stats.srl-forums.com/');TerminateScript;End;
ActivateClient;
Mousespeed := Mspeed;
DeclarePlayers;
LoginPlayer;
SetAngle(true);
OpenBankQuiet('feb');
DepositAll;
WithdrawNats
AntiRandoms;
end;

begin
setup;
repeat
OpenBankQuiet('feb');
WithdrawOres;
CastSuperheats;
AntiRandoms;
BankBars;
ProgressReport;
until (c = Players[currentplayer].integers[0]);
if (LoggedIn) then
LogOut;
if (Players[CurrentPlayer].Active = false) then
terminatescript;
end.

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

munk

2008-03-06 19:07:10

hmm, looks real nice and is an original idea. I wanna say yes but idk.

Ah crap, gotta go on break. Ill vote when i get back.

Bonfield

2008-03-06 22:14:52

ohh did u end up voting no?

any reason i would really like to improve

Timothegreat

2008-03-07 00:38:58

needs multi-player… holding my vote

Santa_Clause

2008-03-07 03:03:23

You need to learn cases. Alot of this script could be shortened.

This part can be dramatically shortened:

  if players[currentplayer].Strings[0] = 'bronze' then
if not findOre('copper', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find copper');
break;
end;
if players[currentplayer].Strings[0] = 'iron' then
if not findOre('iron', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find iron');
break;
end;
if players[currentplayer].Strings[0] = 'steel' then
if not findOre('iron', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find steel');
break;
end;
if players[currentplayer].Strings[0] = 'mithril' then
if not findOre('mithril', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find mith');
break;
end;
if players[currentplayer].Strings[0] = 'adamantite' then
if not findOre('adamantite', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find addy');
break;
end;
if players[currentplayer].Strings[0] = 'runite' then
if not findOre('runite', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find rune');
break;
end;
if players[currentplayer].Strings[0] = 'gold' then
if not findOre('gold', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find gold');
break;
end;
if players[currentplayer].Strings[0] = 'silver' then
if not findOre('silver', x, y, MIX1, MIY1, MIX2, MiY2) then
begin
writeln('didnt find silver');
break;
end;

You can do it like this instead:

      if not(FindOre(Players[CurrentPlayer].Strings[0], X, Y, MIX1, MIY1, MIX2, MIY2)) then
begin
WriteLn('Didn''t Find ' + Players[CurrentPlayer].Strings[0]);
Break;
end;

Bonfield

2008-03-07 03:44:40

but that way wont work for steel, it will search for a colour that i havent given it, i made it like that to search for the ore of each bar

Negaal

2008-03-07 05:24:06

Yes, though it could be more complex and shorter. more usage of cases. Ah, just like Santy sayd I mean

My yes is based also on your longetivity and activity bar.
Also you've been kinda active for long time.

Wizzup?

2008-03-07 05:35:46

Yes. Learn cases though. :)

Pure1993

2008-03-07 08:16:58

Agreed with everything that has been said above…
YES

Naum

2008-03-10 06:21:03

Yes.
FTW!

Bonfield

2008-03-10 07:31:28

lol thanks how long does this thread stay opoen for?

Naum

2008-03-10 09:57:07

Close it now i think.

Sir R. M8gic1an

2008-03-10 15:09:57

Yes. ok script and great person. has lots of initiative. he pmed me for help and i had no clue who he was :p

hope you get in :)

~RM

richk1693

2008-03-10 15:27:15

Why use a DDTM for inventory? Static works good for inventory. All you need to do is set the tol to 255, and it works for all of that item. Ex: works for yew log, oak log, magic log etc.

Post some proof that you know how to use a case and it's a yes from me.

Richard

2008-03-10 17:19:46

Yes! I voted a little while ago but I thought I should say why I voted yes. Its original, I like that sorta thing. Its works :) Its got good standards, there are more things but I don't have long.

I suggest if you release this script (I suggest you do :p) you should add case to the CastSuperHeat procedure. You could shorten it by about half by using case … of

Case (Players[CurrentPlayer].Strings[0]) of
'bronze' : c := 27;
'iron' : c := 27;
etc until the end

end;

Bonfield

2008-03-10 18:44:46


Why use a DDTM for inventory? Static works good for inventory. All you need to do is set the tol to 255, and it works for all of that item. Ex: works for yew log, oak log, magic log etc.

Post some proof that you know how to use a case and it's a yes from me.


i use the DDTM in the function findores, it is used to find the ores in the bank screen and also inventory i used it because i originally used static DTMs for the ore but it wasnt working to good


Yes! I voted a little while ago but I thought I should say why I voted yes. Its original, I like that sorta thing. Its works Its got good standards, there are more things but I don't have long.

I suggest if you release this script (I suggest you do ) you should add case to the CastSuperHeat procedure. You could shorten it by about half by using case … of


Case (Players[CurrentPlayer].Strings[0]) of
'bronze' : c := 27;
'iron' : c := 27;
etc until the end

end;


thanks i had something like that already i used i had

if players[currentplayer].Strings[0] = 'bronze' then
c := 27;
if players[currentplayer].Strings[0] = 'iron' then
c := 27;

From: Rasta Magician
Yes. ok script and great person. has lots of initiative. he pmed me for help and i had no clue who he was :p

hope you get in :)

~RM


thanks

richk1693

2008-03-10 20:56:30

I don't see why one wouldn't work and one does, they're basically the same thing.

But anyways, yes.

Bonfield

2008-03-18 04:17:02

how long does this stay open for?

richk1693

2008-03-18 06:52:59

From: Bonfield
how long does this stay open for?


The poll is currently closed. You'll be an SRL member as soon as Wizzup? or someone shows up to promote you. Congratulations.

BobboHobbo

2008-03-18 06:54:13

I guess the Admins didnt see the thread yet.

Wizzup?

2008-03-18 07:00:25

In, Welcome!