SRL Archive - Archive

dan cardin - SRL Member Application Form


Dan Cardin

2007-06-17 21:03:06

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

What is the meaning to life?


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


Programming Knowledge


Other Communitys
moparisthebest(rarely)

How Long have You Played Runescape
3-4 years(on and off)

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

well Ive been scripting for 1-2 months(i dont remember). Hadnt really thought much about languages other than HTML, which wasnt much, and i started looking around. Then i thought there might be a way to screw up jagex, cuz i had an account banned. So i looked around for days and finally found SCAR. And here i am.

Also whats with the "What is the meaning to life?"…its not one of the Questions…but yea its "Stay away from the light"

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

program DNASmilther;
{}{ ___ _ _ }{}
{}{ |.--\ | \ || /\ }{}
{}{ || \\ ||\\ || //\\ }{}
{}{ || || || \\ || //__\\ }{}
{}{ ||__// || \\|| //----\\ }{}
{}{ |___/ || \_| // \\ }{}
{}{ _______ }{}
{}{/.-----.\ || || __||__ || }{}
{}{\\______ || --..-- ||___ _-_ /\ }{}
{}{ `-----.\ /\ /\ || || || |.--.\ || \\ //\\ }{}
{}{ _______\\ //\\//\\ || || || || || ||_// || }{}
{}{/-------./ // \/ \\ || || || || || \\___ || }{}
{Thanks to WT-Fakawi, LordGreggreg1, Boreas, and Rs-Monkey, and to
anyone else that helped, remind me(i've been working on this too long to
remember everyone) }

{}{ INSTRUCTIONS }{}
{}{ 1. Start in West Fally Bank. }{}
{}{\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\_/`\}{}
{}{ wow that was easy }{}
{}{|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|^_^|}{}

{.include srl/srl.scar}
{.Include SRL/SRL/Extended/xAutoTalk.SCAR}
{.Include SRL/SRL/Extended/xAntiban.SCAR}
var
Anvil,BarsCounter,BarsMaker,Bars,Xamine,Exitit,RockColor:integer;
DidRandomHappen: Boolean;
var SubPoints: array[0..2] of TDTMPointDef;
var MainPoint : TDTMPointDef;
var MasterTDTM,RoadTDTM: TDTM;
var TheDTM,RoadDTM:Integer;
CGx, CGy,DirtRoadColor,BridgeColor: Integer;
WhichAngle: Extended;
MyTBox : tbox;

procedure DeclarePlayersReadln; //ty Boreas for bringing this idea to life
begin
try
HowManyPlayers:=strtoint(readln('how many players are you using'));
except end;
NumberOfPlayers(HowManyPlayers);

for CurrentPlayer:= 0 to HowManyPlayers-1 do
begin
try
Players[CurrentPlayer].Name:=readln('Player['+inttostr(CurrentPlayer)+']'+chr(39)+'s Username');
except end;
if Players[CurrentPlayer].Name='terminatescript' then terminatescript;

try
Players[CurrentPlayer].Pass:=readln(Players[CurrentPlayer].Name+chr(39)+'s Password');
except end;
if Players[CurrentPlayer].Pass='terminatescript' then terminatescript;

try
Players[CurrentPlayer].Nick:=readln(Players[CurrentPlayer].Name+chr(39)+'s Nick');
except end;
if Players[CurrentPlayer].Nick='terminatescript' then terminatescript;

try
Players[CurrentPlayer].string1:=readln(Players[CurrentPlayer].Name+chr(39)+'s bar type');
except end;
if Players[CurrentPlayer].string1='terminatescript' then terminatescript;

try
Players[CurrentPlayer].integer1:=strtoint(readln(Players[CurrentPlayer].Name+chr(39)+'s will do how many loads'));
except end;
if Players[CurrentPlayer].integer1=0 then terminatescript;
end;

try
CurrentPlayer:=strtoint(readln('Which Player will start?'));
except end;
end;

procedure Signature;
begin
ClearDebug;
writeln(' DNA Smilther - By:Dan Cardin ');
writeln(' ______ __ __ ');
writeln('| ___ \ / \ / / /\ ');
writeln('| | \ \ / /\ \ / / / \ ');
writeln('| | \ \ / / \ \ / / / /\ \ ');
writeln('| | / / / / \ \/ / / /__\ \ ');
writeln('| |___/ / / / \ / / /----\ \ ');
writeln('|______/ /_/ \/ /_/ \_\');
wait(3000 + random(750));
end;

procedure LoadBmps;
begin
Xamine := BitmapFromString(13, 13, 'z78DA33301889C00D091023' +
'4EAA999498432DF7D0CE6DD4328D16B1300A8801007921C979');
Anvil := BitmapFromString(1, 23, '433418433E3E433E3E4844444' +
'641414C47474844444C47474C47474F4A48544E4E5953535C5656' +
'665F5E665F5E665F5E4844444844444844444F4A48524B4B524B4' +
'B4B3C1B');
end;

Procedure Login;
begin
ClearDebug;
ActivateClient;
Wait(3000 +random(3000));
if(not(LoggedIn))then
LoginPlayer;
Writeln('You have successfully logged in.');
wait(3000+random(1000));
CheckUserNicks;
end;

procedure Compass;
begin
SetRun(true);
Writeln('Run is turned on.');
Wait (200+random(50));
HighestAngle;
Writeln('Angle is hightened.');
MakeCompass('N');
Writeln('Compass is set to north.');
Wait (1000+random(200));
SetChat('Off', 1);
Wait(1000+random(500));
SetChat('Off', 2);
Wait(1000+random(500));
SetChat('On', 3);
Wait(1000+random(500));
end;

Procedure GetBronze;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'in',7960962,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(14));
end;
if FindObj(x,y,'opper',4032748,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(14));
CloseBank;
end;
end;

Procedure GetIron;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'ron',1646131,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(28));
CloseBank;
end;
end;

Procedure GetSteel;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'ron',2240332,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(9));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(18));
CloseBank;
end;
end;

Procedure GetMith;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'ith',5715253,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(5));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(20));
CloseBank;
end;
end;

Procedure GetAddy;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'ddy',5267534,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(4));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(24));
CloseBank;
end;
end;

Procedure GetRune;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'une',8482648,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(3));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(24));
CloseBank;
end;
end;

Procedure GetSilver;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'ilver',12169134,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(28));
end;
end;

Procedure GetGold;
begin
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if FindObj(x,y,'old',1816029,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(28));
end;
end;

procedure WalkToSmelter;
var Step:integer;
begin
Step := DTMFromString('78DA63EC60606008614001E9F622609A11CA6' +
'76C25524D3801355D44AA0921424D10116A0208A8E924424D3B11' +
'6A5A89541344845D61F8D50000A8A91310');
If FindDTM(Step,x,y,849, 207,798, 245) Then
begin
Mouse(x,y,3,3,true);
FFlag(3);
if(FindSymbol(x,y,'funace')) or FindDTM(Step,x,y,798, 254,851, 203)then
begin
Mouse(x,y,2,2,true);
FFlag(3);
end;
end;
end;

function Smelt:Boolean;
begin
MakeCompass('E');
if(FindObj(x,y,'urnace',1451652,5))then
begin
result:=true
Wait(1000+random(500));
ChooseOption(x,y,'x');
Wait(1000+random(500));
HitKeys(true);
exitit:=1
end;
end;

procedure WalkToBank;
var Step1,Bank1,Bank2:integer;
begin
Step1 := DTMFromString('78DA63EC60606008614001E9F622609A11CA6' +
'76C25524D3801355D44AA0921424D10116A0208A8E924424D3B11' +
'6A5A89541344845D61F8D50000A8A91310');
Bank1 := DTMFromString('78DA6314606060106500035608C5F0E70F130' +
'317906604E2FF40C0C88BA9E6ED5B06B81A106094C06F0E588D18' +
'A69A3367B0982386AAE6EE5D34359240420455CDD7AF686A406E1' +
'64655F3EF1F1FAA1A41C26A004D4414E1');
Bank2 := DTMFromString('78DA6314646060106600035608C570F72E030' +
'317906604E2FF40C0C8076408A2AAF9FA15A1060418B931D5209B' +
'0356C389A9E6CF1F2654359244D82504240450D5FCFBC787AA460' +
'C53CD9E4DD351D400005C1B12B0');
If FindDTM(Step1,x,y,736, 244,710, 197) Then
begin
Mouse(x,y,3,3,true);
FFlag(3);
end
if FindSymbol(x,y,'bank') or
FindDTM(Bank1,x,y,MMX1, MMY1, MMX2, MMY2)or
FindDTM(Bank2,x,y,MMX1, MMY1, MMX2, MMY2)then
begin
Mouse(x,y+5,2,2,true);
FFlag(3);
end;
end;

procedure WalkToSmithy;
var LadderThing:integer;
begin
LadderThing := DTMFromString('78DA6394626060106200035608C510A401A11' +
'981F83F10304A001902B8D580695922D58812A14682801A90BC38' +
'116A08D905F2BB180135F2986A6000AE06242F42400DC81C49026' +
'A2430FD8EA1461A48481150A380DF3D3C400C00B9B30ADF');
if(FindDTM(LadderThing,x,y,MMX1, MMY1, MMX2, MMY2))then
begin
Mouse(x-30,y,2,2,true);
FFlag(3);
end;
end;

procedure WalkToVarrok;
var EndOfWall,WierdLadder:integer;
begin
WierdLadder := DTMFromString('78DA630C676060B0624001AEF2109A11CA670' +
'C0512B604D48401090B026A4288546346404D38116A2281842901' +
'355144F81DA4C686809A0822D44411F63B007E6D0A95');
EndOfWall := DTMFromString('78DA631463606010654001EB1776836946289' +
'F51044808A2AA79F2E10BAA1A4922D44803096122D48812502301' +
'24C408A81125420DC82E21026AC488F09714A6BFD0C310004C311' +
'BBD');

ActivateClient;
if FindDTM(WierdLadder,x,y,MMX1, MMY1, MMX2, MMY2) or FindSymbol(x,y,'water')then
begin
Mouse(x+50,y,2,2,true);
FFlag(3);
end;
if FindDTM(EndOfWall,x,y,MSX1,MSY1,MSX2,MSY2)then
begin
Mouse(x,y,2,2,true);
FFlag(3);
if FindColorSpiralTolerance(x,y,5855584,MSX1,MSY1,MSX2,MSY2,5) then
begin
Mouse(x,y,2,2,true);
FFlag(3);
end;
if FindColorTolerance(x,y,8161159,MSX1,MSY1,MSX2,MSY2,5)then
Mouse(x,y,2,2,false);
if FindBitmap(Xamine,x,y)then
begin
Mouse(x,y,2,2,true);
Mouse(x,y,2,2,true);
end;
RadialRoadWalk(FindDirtRoadColor, 402, 420, 70, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 382, 411, 73, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 93, 111, 68, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 108, 141, 72, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 102, 132, 69, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 121, 155, 62, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 88, 121, 69, 0, 0);
Flag;
RadialRoadWalk(FindDirtRoadColor, 49, 105, 73, 0, 0);
Flag;
Mouse(715, 83,20,20,true);
end;
end;

procedure AssembleDTM;
begin
MainPoint .x:=821;
MainPoint .y:=242;
MainPoint .areasize:=0;
MainPoint .areashape:=0;
MainPoint .color:=DirtRoadColor;
MainPoint .tolerance:=0;

SubPoints[0].x:=823;
SubPoints[0].y:=256;
SubPoints[0].areasize:=1;
SubPoints[0].areashape:=0;
SubPoints[0].color:=WaterColor;
SubPoints[0].tolerance:=0;

SubPoints[1].x:=823;
SubPoints[1].y:=230;
SubPoints[1].areasize:=1;
SubPoints[1].areashape:=0;
SubPoints[1].color:=WaterColor;
SubPoints[1].tolerance:=0;

SubPoints[2].x:=801;
SubPoints[2].y:=239;
SubPoints[2].areasize:=1;
SubPoints[2].areashape:=0;
SubPoints[2].color:=DirtRoadColor;
SubPoints[2].tolerance:=0;

SubPoints[3].x:=843;
SubPoints[3].y:=241;
SubPoints[3].areasize:=1;
SubPoints[3].areashape:=0;
SubPoints[3].color:=DirtRoadColor;
SubPoints[3].tolerance:=0;

MasterTDTM.MainPoint := MainPoint;
MasterTDTM.SubPoints := SubPoints;
TheDTM:= AddDTM(MasterTDTM);
end;

procedure ResumeVarrokWalk;
begin
MainPoint.x:=152;
MainPoint.y:=108;
MainPoint.areasize:=0;
MainPoint.areashape:=0;
MainPoint.color:=RoadColor;
MainPoint.tolerance:=0;

SubPoints[0].x:=103;
SubPoints[0].y:=90;
SubPoints[0].areasize:=0;
SubPoints[0].areashape:=0;
SubPoints[0].color:=DirtRoadColor;
SubPoints[0].tolerance:=0;

SubPoints[1].x:=130;
SubPoints[1].y:=93;
SubPoints[1].areasize:=0;
SubPoints[1].areashape:=0;
SubPoints[1].color:=RoadColor;
SubPoints[1].tolerance:=0;

SubPoints[2].x:=126;
SubPoints[2].y:=101;
SubPoints[2].areasize:=0;
SubPoints[2].areashape:=0;
SubPoints[2].color:=RockColor;
SubPoints[2].tolerance:=0;

RoadTDTM.MainPoint := MainPoint;
RoadTDTM.SubPoints := SubPoints;
RoadDTM := AddDTM(RoadTDTM);
end;

procedure ResumeAgain;
var VarrokBank:integer;
begin
VarrokBank := DTMFromString('78DA63FCC2C8C0F09F010E803C86B76F116C2' +
'610FD0BC89267C4A9064CFF04B2C409A8F90A64B133E2B78B08F7' +
'0000221A106B');
RoadColor:=FindRoadColor;
RadialRoadWalk(RoadColor, 77, 113, 71, 0, 0);
Flag;
RadialRoadWalk(RoadColor, 59, 107, 74, 0, 0);
Flag;
RadialRoadWalk(RoadColor, 382, 432, 72, 0, 0);
Flag;
begin
MyTBox.x1 := 776;
MyTBox.y1 := 152;
MyTBox.x2 := 858;
MyTBox.y2 := 252;
if FindColorTolerance(x,y,3956588,MyTBox.x1,MyTBox.y1,MyTBox.x2,MyTBox.y2,5) then
Mouse(x,y,2,2,true);
end;
if FindDtmRotated(VarrokBank, x, y, MMX1, MMY1, MMX2, MMY2, -PI*2, PI*2, 0.2,WhichAngle) then
begin
Mouse(x,y,2,2,true);
end;
end;

procedure OpenBankForHammer;
var Hammer:integer;
begin
Hammer := DTMFromString('78DA6314676060906140014E3A0C0C46409A1' +
'188FF0301A33090A1C0801530C2687E20A141408D1090D026A046' +
'0C48A81150230524E409A89105125204D428020909026A5481841' +
'801354A4498A30C248409A811C58C0BACE12349408D0C11E680CC' +
'50C4AF0600E56207F7');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(Hammer,x,y,MSX1,MSY1,MSX2,MSY2))then
Mouse(x,y,2,2,true);
end;

Procedure GetBronzeBars;
var BronzeBar:integer;
begin
BronzeBar := DTMFromString('78DA63146560601064400141B9950C46409A1' +
'188FF0301A32490C1C58006189148202D0F247808A851C0B40B43' +
'8D0C901025A006E41E09026A4066C81050C30B24A409A86103129' +
'204D4B0020911026A40E1C78F5F0D004ED10738');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(BronzeBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

Procedure GetIronBars;
var IronBar:integer;
begin
IronBar := DTMFromString('78DA63946060601065400129B1310C46409A1' +
'188FF030123279021CE8006189148200D52234D400D2F909025A0' +
'461848C813500372B3020135D244D805B24792801A2520214684B' +
'F8409A801B9978F801A6520C14F408D0A61BB006B4207D6');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(IronBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

Procedure GetSteelBars;
var SteelBar:integer;
begin
SteelBar := DTMFromString('78DA8D914B0A80300C44D3AD8288A2D662FD5' +
'52FE025BBF6C43AEED42E2681BE74F1C804627A1171F2A9334639' +
'D00DDE8532053E9DFCCABC889EA773122703BC62CE4C9C1258885' +
'3012B711A2010C7021B7106C53E4E91350123719E9C813841718B' +
'1DB00AA75564D5C4F1FCA637EBD109C7');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(SteelBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

Procedure GetMithBars;
var MithBar:integer;
begin
MithBar := DTMFromString('78DA6394666060106240013E3E850C46409A1' +
'188FF0301231F9021C8800618914820CD05244489502349400DC8' +
'1E19026A4066C8115003728B2C0135BC40428A801A5922D428020' +
'931026A548084300135AA448433480D1F11EEE1C1AF0600460807' +
'E7');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(MithBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

Procedure GetAddyBars;
var AddyBar:integer;
begin
AddyBar := DTMFromString('78DA8DCFCB0D80201045D16165347E3144143' +
'5C612AC8426ECBF047DECD4856F26E1C2E22480F122D2C86BE219' +
'E5C06EB02E8C2971A8E533E651EC39D2119321BDC20CC4A4F78CC' +
'4A43F4DC4582410E3909918AFB82B28FEB5208E980DB1C4EC48AB' +
'3015312B52FC9B1B0C4907F3');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(AddyBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

Procedure GetRuneBars;
var RuneBar:integer;
begin
RuneBar := DTMFromString('78DA63146660601062400141B9950C46409A1' +
'188FF0301231790C1CF800618914820CD8E690E861A5620214284' +
'1A09026A388184140135BC40429A801A907B6509A81123C21C492' +
'2DC0C32438C801A5922C24701480810A18697801A1920C18D5F0D' +
'00435B07E2');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(RuneBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

procedure GetSilverBars;
var SilverBar:integer;
begin
SilverBar := DTMFromString('78DA63146160601067400173E6AC603002D28' +
'C40FC1F081839800C510634C08844026956202141841A19026AB8' +
'81841C013502404281801A90BF1409A801B95796801A907B2509A' +
'85120227C406A0409A8910612FCF8D500005DCF0840');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(SilverBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

procedure GetGoldBars;
var GoldBar:integer;
begin
GoldBar := DTMFromString('78DA631467606010644001E7660B301801694' +
'620FE0F048C3C986A181898E06A4080911348883060000C351268' +
'0A18D1D4F003092902760903091974352CA86A40F6C8A299C2C88' +
'AAA0664862401BB1489F09732901042F316139A7B5480041F01BF' +
'CB03096EFC6A005C300A0D');
OpenBankQuiet('vwb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
if(FindDtm(GoldBar,x,y,MSX1,MSY1,MSX2,MSY2))then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
HitKeys(true);
CloseBank;
HighestAngle;
MakeCompass('n');
end;
end;

function Smith:Boolean;
var AllBars,SmithingLevel,xAnvil, yAnvil:integer;
begin
AllBars := DTMFromString('78DA8D914B0A80300C44D3AD8288A2D662FD5' +
'5CFDAB527AEE34EED6212E84B178F4C20661411279FBA6294846E' +
'F012CA54F80CF22BF3227A99CFC99C02F08A392B716A60234E03E' +
'CC4E980401C0B1CC49914FB3845D602CCC4797226E204C52D4EC0' +
'2A9C5E91D512C7F39BDEDF9F0A94');
SmithingLevel:=GetSkillLevel('smithing');
repeat
If FindDTM(AllBars,x,y,MIX1, MIY1, MIX2, MIY2)then
begin
Mouse(x,y,2,2,true);
if FindDeformed(xAnvil, yAnvil, Anvil, MSX1+30, MSY1, MSX2, MSY2)then
begin
result:=true
Mouse(x,y,2,2,true);
Wait(1000+random(500));
end;
end else
Exit;
until not FindDTM(AllBars,x,y,MIX1, MIY1, MIX2, MIY2);
Exitit:=1
end;

function CustomAntiBan:boolean;
begin
case (10) of
1:RandomRClick;
2:begin
case 3 of
1:TypeSend('lol 1+1= a window....lolo!!!');
2:TypeSend(' ');
3:TypeSend('1 down a billion more hours to go');
4:TypeSend('Tum TumTum Tum TUMS!!!!!!!!!!');
5:TypeSend('sjkhjdjadjalfnskdkfnsixsi');
6:TypeSend('sajswoqncskfusor djirnsjf');
7:TypeSend('jdhdkgojdionneropsd kdklsd');
end;
end;
3:PickUpMouse;
4:AlmostLogout;
5:DontBanMe(1);
6:ArrangeInv;
end;
result:=true
end;

procedure WalkToBankFromSmithy;
var LadderThing:integer;
begin
LadderThing := DTMFromString('78DA6394626060106200035608C510A401A11' +
'981F83F10304A001902B8D580695922D58812A14682801A90BC38' +
'116A08D905F2BB180135F2986A6000AE06242F42400DC81C49026' +
'A2430FD8EA1461A48481150A380DF3D3C400C00B9B30ADF');
if(FindDTM(LadderThing,x,y,MMX1, MMY1, MMX2, MMY2))then
begin
Mouse(x-30,y,2,2,true);
FFlag(3);
end;
if FindSymbol(x,y,'bank')then
begin
Mouse(x,y,2,2,true);
MakeCompass('w');
LowestAngle;
end;
end;

{/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

----------> Random Finding <----------

\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/}

function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
if (Result = true) then
DidRandomHappen := true;
end;

///////////////////////////////////////////////////////////////////////////

procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
if (FindNormalRandoms) then
DidRandomHappen := true;
end;


BEGIN
Signature;
SetupSRL;
DeclarePlayersReadLn;
ActivateClient;
Bars:=Players[CurrentPlayer].integer1
LoadBmps;
Login;
Compass;
repeat
begin
case LowerCase(Players[CurrentPlayer].string1) of
'bronze':begin
GetBronze;
end;
'iron':begin
GetIron;
end;
'steel':begin
GetSteel
end;
'mith':begin
GetMith;
end;
'addy':begin
GetAddy;
end;
'rune':begin
GetRune;
end;
'silver':begin
GetSilver;
end;
'gold':begin
GetGold;
end;
end;
end;
WalkToSmelter;
exitit:=0
while Smelt do
begin
repeat
FindRandoms;
CustomAntiBan;
until exitit=1
end;
WalkToBank;
until (BarsCounter>=Bars);
WalkToVarrok;
WaterColor:=FindWaterColor;
BridgeColor:=FindBridgeColor;
DirtRoadColor:=FindDirtRoadColor;
AssembleDTM;
if FindDtmRotated(TheDTM, CGx, CGy, MMX1, MMY1, MMX2, MMY2, -PI*2, PI*2, 0.2,WhichAngle) then
begin
Mouse(x,y,2,2,true);
ResumeVarrokWalk;
if FindDtmRotated(RoadDTM, CGx, CGy, MMX1, MMY1, MMX2, MMY2, -PI*2, PI*2, 0.2,WhichAngle) then
begin
Mouse(x,y,2,2,true);
ResumeAgain;
end;
end
else NextPlayer(true);
OpenBankForHammer;
repeat
begin
case LowerCase(Players[CurrentPlayer].string1) of
'bronze':begin
GetBronzeBars;
end;
'iron':begin
GetIronBars;
end;
'steel':begin
GetSteelBars;
end;
'mith':begin
GetMithBars;
end;
'addy':begin
GetAddyBars;
end;
'rune':begin
GetRuneBars;
end;
'silver':begin
GetSilverBars;
end;
'gold':begin
GetGoldBars;
end;
end;
end;
WalkToSmithy;
exitit:=0
while Smith do
begin
repeat
FindRandoms;
CustomAntiBan;
until exitit=1
end;
WalkToBankFromSmithy;
until (BarsMaker>=Bars);
end.

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

YoHoJo

2007-06-17 21:26:14

Meh no failsaifes at all and they are really needed in this script.
You used findobj for bank, iv never seen that before, its mainly usefull for mainscreen.
Why findobj in bank when you can use a DTM or bitmap and never fail?

You also have a bunch of repetitive procedures like withdrawing where you can just use a case and save about 100+ lines of coding.

Also, why do you have a WalkToVarrok to a falador smelter?
Does it smelt in fally and then smith and varock?
If so thats a nice idea, but not very reliable because its a long walk and lots of palces to mes up.

Why not make them into two different scripts?

Theres also some nice stuff in here ill tell you later though.

And people, i still didnt say what im going to vote, so please dont base your vote off what i said -.-.
I will be editing when im less busy and adding some positive feedback also, like his use of DDTMs (nice).

Dan Cardin

2007-06-17 21:32:27

well the repetetiveness…sry but i wasnt thinking…i was focused on fixing my main procedure…saved 200 lines…i only used DTMs in the bank for the ores, because i was worried about them not having black outlines…but w/e. CRAP i 4got failsafes…well i have a few(like 2 lol)sry….

and yes its supposed to smelt in fally and smith in varrok,i liked the idea of all short trips and 1 long, instead of short trips and medium trips(to go to the dwarf's anvil+u'd need to have done a quest, i dont like many requirements)

badandymitch

2007-06-17 21:34:30

It looks nice but i do also want to see more FailSafes, And when i run the script, after i fill it all out, it just says Successfully executed. I dunno what i am going to vote yet, Because you do help a lot of people and you helped my with my First script that i got in with.

Dan Cardin

2007-06-17 21:37:08

did u drag the crosshair? mine doesnt do that….and ik dam failsafes

EDIT:Btw if i get i'll definately addfailsafes…actually even if i dont get in i will

badandymitch

2007-06-17 21:40:55

kk yea it works, srry i was just running to see if it would work, yea it looks good and good idea i will probally vote yes.

YoHoJo

2007-06-17 22:39:07

I would seriously suggest breaking it into two scripts though.
Its gonna be very chalangeing to walk from fally to varock, but whatever floats your boat.s
I dont wnt to make you think nothings possible =), just my suggestion.
As for DTMs, use outline, and UNLIKE my tutorial, for the parrent point use a tolerance of about 50-70 instead of 225.
That would make each bar DTM unique.

JAD

2007-06-17 22:49:27

[Offtopic]
boat.s

YoHoJo, you need something like


var boat: TPoint;

lol.. :p Just reminded me of TPoint when I saw that.[/Offtopic]

Anyways, back on topic.

No offense Dan Cardin, but you would be more liked if you had less post count actually. You've helped some people, but you've also had some posts that weren't as helpful as others which may have just been posted to give you a + on your post count.

So don't take this personally, but people would like and respect you more if you had a lower post count with more of a percentage of your posts helpful.

But the script is kinda good.. You really need fail safes though, and fail safes is what makes a script unique, and is where originality can come into play with scripting.

You should check out my tut about it Learning the things to become a SRL member. I don't have to many fail safes in there, but it will give you a good idea.

Sorry, it's a no from me for now. And like I said, consider having less posts, but more of your posts being helpful. And please don't take that personally; it's just a suggestion.

Santa_Clause

2007-06-18 01:22:29

Yes from me…

WhiteShadow

2007-06-18 01:45:59

From the looks of your script it's far from stable. "/

I like the ideas, and you seem quite capable but your script seems pretty disorganized and half assed ("p).

Sorry, it'll be no from me. "O

Ramage

2007-06-18 02:06:11

function CustomAntiBan:boolean;
begin
case (10) of
1:RandomRClick;
2:begin
case 3 of
1:TypeSend('lol 1+1= a window....lolo!!!');
2:TypeSend(' ');
3:TypeSend('1 down a billion more hours to go');
4:TypeSend('Tum TumTum Tum TUMS!!!!!!!!!!');
5:TypeSend('sjkhjdjadjalfnskdkfnsixsi');
6:TypeSend('sajswoqncskfusor djirnsjf');
7:TypeSend('jdhdkgojdionneropsd kdklsd');
end;
end;
3:PickUpMouse;
4:AlmostLogout;
5:DontBanMe(1);
6:ArrangeInv;
end;
result:=true
end;
Case(10) and Case(3)? It will always choose number 10 and 3 then… I'm guessing you're trying to do
case random(10) of
?

Otherwise it's quite good.

Holding vote.

badman1

2007-06-18 02:37:22

Yes from me. I like what I've seen of you.

Good luck Dan

n3ss3s

2007-06-18 04:06:32

Im holding too.
btw, Unknown Identifier "Boat" in script "Scripts\YoHoJo's Post.scar" :D

The Claw

2007-06-18 05:49:33

yup from me, looks nice

Dan Cardin

2007-06-18 06:28:31

From: Ramage
function CustomAntiBan:boolean;
begin
case (10) of
1:RandomRClick;
2:begin
case 3 of
1:TypeSend('lol 1+1= a window....lolo!!!');
2:TypeSend(' ');
3:TypeSend('1 down a billion more hours to go');
4:TypeSend('Tum TumTum Tum TUMS!!!!!!!!!!');
5:TypeSend('sjkhjdjadjalfnskdkfnsixsi');
6:TypeSend('sajswoqncskfusor djirnsjf');
7:TypeSend('jdhdkgojdionneropsd kdklsd');
end;
end;
3:PickUpMouse;
4:AlmostLogout;
5:DontBanMe(1);
6:ArrangeInv;
end;
result:=true
end;
Case(10) and Case(3)? It will always choose number 10 and 3 then… I'm guessing you're trying to do
case random(10) of
?

Otherwise it's quite good.

Holding vote.


lol…yea random…oops


I like the ideas, and you seem quite capable but your script seems pretty disorganized and half assed ("p).

i dont really see how it's diorganized…and not half assed…cuz i know i made mistakes, but i worked hard on this…and as i said before either way im going to add failsafes



also what do i have to get to get in? over 50%?

GoF

2007-06-18 06:53:36

Those "GetIron", "GetSteel" kind of procedures are quite useless.. Why not to just use a case? And there's even more of those there.. I don't like repetitive(sp) procedures.. Not that many failsafes either, and they're very necessary. Generally this is a nice script and you're active around the community.. So I'll think what I'll vote.

Dan Cardin

2007-06-18 07:01:31

well i dont really think that making a case out of the getsteel and GetIron procedures would do much…because u need to take different amounts of each ore…so you'd save some lines…but not many…on the other hand i could do that with the Bars parts…and i just added some failsafes(not that it really has anything to do with this app)

EDIT:Well thanks for your criticisms, i have edited my script from 1043 lines to 835

EDIT2: ooops i forgot to mention…that even though i didnt have many failsafes…i quite like this 1
exitit:=0
while Smelt do
begin
repeat
FindRandoms;
CustomAntiBan;
until exitit=1
and then at the end of my smelt procedure i had Exitit:=1…so it keeps checking…kinda like a failsafe…or is it?:p :eek: :confused: :D :confused: :eek: :p

shaunthasheep

2007-06-18 10:40:25

i think they ment timefrommark, if its has tooken longer then it should have (like 2 minutes to open a door (and still hasn't opened it yet)) it will logout/switch players, etc..

and for cases.

program OreCaseTest;
{.include SRL/SRL.scar}

//i made my own type cause i was bored. You can do this other ways, i like it neat tho
type
TOre = record //as in T-Ore
orenames : Array of string;
orecolors : Array of integer;
oreamounts : Array of integer;
end;

procedure GetOre(ore : string);
var
Bars : TOre;
i : integer;
begin
case ore of
'bronze' : begin
Bars.orenames := ['in', 'opper'];
Bars.orecolors := [7960962, 4032748];
Bars.oreamounts := [14, 14];
end;
'iron' : begin
Bars.orenames := ['ron'];
Bars.orecolors := [1646131];
Bars.oreamounts := [28];
end;
'steel' : begin
Bars.orenames := ['ron', 'oal'];
Bars.orecolors := [2240332, 1585453];
Bars.oreamounts := [9, 18];
end;
'mithril': begin
Bars.orenames := ['ith', 'oal'];
Bars.orecolors := [5715253, 1585453];
Bars.oreamounts := [5, 20];
end;
'adamant': begin
Bars.orenames := ['ddy', 'oal'];
Bars.orecolors := [5267534, 1585453];
Bars.oreamounts := [4, 24];
end;
'runite' : begin
Bars.orenames := ['une', 'oal'];
Bars.orecolors := [8482648, 1585453];
Bars.oreamounts := [3, 24];
end;
'silver' : begin
Bars.orenames := ['ilver'];
Bars.orecolors := [12169134];
Bars.oreamounts := [28];
end;
'gold' : begin
Bars.orenames := ['old'];
Bars.orecolors := [1816029];
Bars.oreamounts := [28];
end;
end;

// ---> Debugging Start
Writeln('Withdrawing ore for ' + ore);
for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
Writeln(' --> Ore nick: ' + Bars.orenames[i] + ' , Amount : ' + inttostr(Bars.oreamounts[i]) + ' <-- ');
end;

Exit; //REMOVE THIS TO TEST THE SCRIPT!!!!!!!!

// <--- Debugging End

OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then begin FixBank; DepositAll; end;

for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
if FindObj(x,y,Bars.orenames[i],Bars.orecolors[i],5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(Bars.oreamounts[i]));
end;
Wait(1000 + random(1000));
end;
CloseBank;
end;

begin
SetupSrl;
GetOre('bronze'); //btw, this doesn't have a failsafe if it doesn't find the ore the first time.
GetOre('iron');
GetOre('steel');
GetOre('mithril');
GetOre('adamant');
GetOre('runite');
GetOre('silver');
GetOre('gold');
end.


To test, just run it. Remove line 69 for the script to actually withdraw the stuff from your bank. Else it justs shows that it knows everything to withdraw, i used arrays and a special type to make it neater.

Dan Cardin

2007-06-18 11:43:33

well i dont have many repeats, so the timefrommark thing isnt really necissary…a lot…

but isnt that going to get all ore out?…not just the ones i want? so i changed to this

Procedure GetOre;
begin
if(not(LoggedIn))then
Exit;
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then
begin
FixBank;
DepositAll;
end;
begin
case LowerCase(Players[CurrentPlayer].string1) of
'bronze':begin
if FindObj(x,y,'in',7960962,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(14));
end;
if FindObj(x,y,'opper',4032748,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(14));
CloseBank;
end;
end;
'iron':begin
if FindObj(x,y,'ron',1646131,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(28));
end;
end;
'steel':begin
if FindObj(x,y,'ron',2240332,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(9));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(18));
CloseBank;
end;
end;
'mith':begin
if FindObj(x,y,'ith',5715253,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(5));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(20));
CloseBank;
end;
end;
'addy':begin
if FindObj(x,y,'ddy',5267534,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(14));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(24));
CloseBank;
end;
end;
'rune':begin
if FindObj(x,y,'une',8482648,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(3));
end;
if FindObj(x,y,'oal',1585453,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(24));
CloseBank;
end;
end;
'silver':begin
if FindObj(x,y,'ilver',12169134,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(28));
end;
end;
'gold':begin
if FindObj(x,y,'old',1816029,5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(28));
end;
end;
end;
end;
CloseBank;
end;
didnt save much, but it saved some lines.

shaunthasheep

2007-06-18 11:49:39

what i had should only get the ore you specify.

GetOre('bronze');
should get 14 copper, and 14 tin. Delete line 69 first (the Exit; line). also if you want me to comment it i will. Just say the word =]

LordGregGreg

2007-06-18 12:24:12

this is a good script. I'll show you how to make a case out of your getOre; functions. It would be a cool thing to actualy have a function of your own like,
getOreFromBank(oreType:String);
and then have a case on "oretype".

Ill explain it when I catch you on aim.

Also, about your post count, it's true that you have alot of worthless posts. But you also have some pretty good ones. So, if I completly disregard all of your usless posts, your post could drops way down. Leving you with (i think)
enogh good posts left over.

shaunthasheep

2007-06-18 12:28:46

From: lordgreggreg1
this is a good script. I'll show you how to make a case out of your getOre; functions. It would be a cool thing to actualy have a function of your own like,
getOreFromBank(oreType:String);
and then have a case on "oretype".

Ill explain it when I catch you on aim.

Also, about your post count, it's true that you have alot of worthless posts. But you also have some pretty good ones. So, if I completly disregard all of your usless posts, your post could drops way down. Leving you with (i think)
enogh good posts left over.


mine should work fine =S


program OreCaseTest;
{.include SRL/SRL.scar}

//i made my own type cause i was bored. You can do this other ways, i like it neat tho
type
TOre = record //as in T-Ore
orenames : Array of string;
orecolors : Array of integer;
oreamounts : Array of integer;
end;

procedure GetOre(ore : string);
var
Bars : TOre; //the variable that holds what we should get
i : integer;
begin
case ore of
'bronze' : begin
Bars.orenames := ['in', 'opper']; //we only need tin and copper.
Bars.orecolors := [7960962, 4032748]; //1rst is tin color, 2nd is copper color
Bars.oreamounts := [14, 14]; //first is tin amount, 2nd is copper amount
end;
'iron' : begin
Bars.orenames := ['ron']; //we only need iron
Bars.orecolors := [1646131]; //iron color
Bars.oreamounts := [28]; //withdraw 28
end;
'steel' : begin
Bars.orenames := ['ron', 'oal']; //we need iron (ron) and coal(oal)
Bars.orecolors := [2240332, 1585453]; //1rst is iron color, 2nd is coal color
Bars.oreamounts := [9, 18]; //we need 9 iron, 18 coal
end;
'mithril': begin
Bars.orenames := ['ith', 'oal']; //you get it now? (mith, coal)
Bars.orecolors := [5715253, 1585453];
Bars.oreamounts := [5, 20];
end;
'adamant': begin
Bars.orenames := ['ddy', 'oal']; //addy, coal
Bars.orecolors := [5267534, 1585453];
Bars.oreamounts := [4, 24];
end;
'runite' : begin
Bars.orenames := ['une', 'oal']; //rune, coal
Bars.orecolors := [8482648, 1585453];
Bars.oreamounts := [3, 24];
end;
'silver' : begin
Bars.orenames := ['ilver']; //silver
Bars.orecolors := [12169134];
Bars.oreamounts := [28];
end;
'gold' : begin
Bars.orenames := ['old']; //goal
Bars.orecolors := [1816029];
Bars.oreamounts := [28];
end;
end;

// ---> Debugging Start
Writeln('Withdrawing ore for ' + ore);
for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
Writeln(' --> Ore nick: ' + Bars.orenames[i] + ' , Amount : ' + inttostr(Bars.oreamounts[i]) + ' <-- ');
end;
//alll this does is tells us what we are getting out^^^^^^^^^^^^
//Exit; //REMOVE THIS TO TEST THE SCRIPT!!!!!!!!

// <--- Debugging End

//opens bank blah
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then begin FixBank; DepositAll; end;

//heres important part. This Gets the amount of ores that we said we needed. So for tin and copper, Getarraylength(bars.orenames) gets back 2, then we minus 1. so its for i := 0 to 1 do (if you know arrays this is good.
for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
//if i := 0, it will get the first ore name back, and use the color to find it, then use the ore amount if u look at type send
if FindObj(x,y,Bars.orenames[i],Bars.orecolors[i],5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(Bars.oreamounts[i]));
end;
Wait(1000 + random(1000));
//were done getting an ore out. if were done with all the ores, it should end;, else it goes back in the loop.. get it?
end;
CloseBank;
end;

begin
SetupSrl;
GetOre('bronze');
end;
have 14 tin/copper in bank and it should get =S

Dan Cardin

2007-06-18 13:00:00

GetOre('bronze');
should get 14 copper, and 14 tin. Delete line 69 first (the Exit; line). also if you want me to comment it i will. Just say the word =]


i dont get whatcha mean..i dont see how this will go with what they type in as what they are smelting/smithing and do that…

i may have a lot of worthless posts…but many of them are in the bbq pit and stuff like that…where its not bad..if i could delete all my bad posts on other forums…i would

EDIT:i understand now…is it ok if i use that???

LordGregGreg

2007-06-18 13:01:56

From: The_Rs_Monkey
mine should work fine =S


Hey, that looks really nice, thats nearly exactly what I was thinking :)

shaunthasheep

2007-06-18 13:22:14

From: dan cardin
i dont get whatcha mean..i dont see how this will go with what they type in as what they are smelting/smithing and do that…

i may have a lot of worthless posts…but many of them are in the bbq pit and stuff like that…where its not bad..if i could delete all my bad posts on other forums…i would


Ok.. idk if you know arrays that well, but you have to know them to understand what i am doing.

I will explain my function in detail.

program OreCaseTest;
{.include SRL/SRL.scar}

You should know what that stuff is^

type
TOre = record //as in T-Ore
orenames : Array of string;
orecolors : Array of integer;
oreamounts : Array of integer;
end;

I'm making my own type, (etc: integer, string are types.)

instead of doing this
Variablename.orenames : Array of string;
Variablename.orecolors : Array of integer;
Variablename.oreamounts : Array of integer;

after declaring the type, all i have to do is

VariableName : TOre;


procedure GetOre(ore : string);
var
Bars : TOre; //the variable that holds what we should get
i : integer;
begin

ore : string; : the string that we want to withdraw (eg 'bronze');
bars : TOre; : Has oresnames (Array of string), orecolors and oreamounts (Array of integer);


  case ore of
'bronze' : begin
Bars.orenames := ['in', 'opper']; //we only need tin and copper.
Bars.orecolors := [7960962, 4032748]; //1rst is tin color, 2nd is copper color
Bars.oreamounts := [14, 14]; //first is tin amount, 2nd is copper amount
end;
'iron' : begin
Bars.orenames := ['ron']; //we only need iron
Bars.orecolors := [1646131]; //iron color
Bars.oreamounts := [28]; //withdraw 28
end;
'steel' : begin
Bars.orenames := ['ron', 'oal']; //we need iron (ron) and coal(oal)
Bars.orecolors := [2240332, 1585453]; //1rst is iron color, 2nd is coal color
Bars.oreamounts := [9, 18]; //we need 9 iron, 18 coal
end;
'mithril': begin
Bars.orenames := ['ith', 'oal']; //you get it now? (mith, coal)
Bars.orecolors := [5715253, 1585453];
Bars.oreamounts := [5, 20];
end;
'adamant': begin
Bars.orenames := ['ddy', 'oal']; //addy, coal
Bars.orecolors := [5267534, 1585453];
Bars.oreamounts := [4, 24];
end;
'runite' : begin
Bars.orenames := ['une', 'oal']; //rune, coal
Bars.orecolors := [8482648, 1585453];
Bars.oreamounts := [3, 24];
end;
'silver' : begin
Bars.orenames := ['ilver']; //silver
Bars.orecolors := [12169134];
Bars.oreamounts := [28];
end;
'gold' : begin
Bars.orenames := ['old']; //goal
Bars.orecolors := [1816029];
Bars.oreamounts := [28];
end;
end;

our case statement. Bars is what holds the ore information.
Bars.orenames := ['in', 'opper'];
this is the same thing as doing
Bars.orenames[0] := 'in';
Bars.orenames[1] := 'opper';
same thing with bars.orecolors, and oreamounts. so far Bars is holding this information (if we were to do GetOre('Bronze');

Bars.orenames[0] := 'in'; //tin uptext
Bars.orenames[1] := 'opper'; //copper uptext
Bars.orecolors[0] := 7960962; //tin color
Bars.orecolors[1] := 4032748; //copper color
Bars.oreamounts[0] := 14;//how much to withdraw of tin (14)
Bars.oreamounts[1] := 14;//how much to withdraw of copper (14)

and thats it. so now we move on


  // ---> Debugging Start
Writeln('Withdrawing ore for ' + ore);
for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
Writeln(' --> Ore nick: ' + Bars.orenames[i] + ' , Amount : ' + inttostr(Bars.oreamounts[i]) + ' <-- ');
end;
//alll this does is tells us what we are getting out^^^^^^^^^^^^
//Exit; //REMOVE THIS TO TEST THE SCRIPT!!!!!!!!

// <--- Debugging End

This was to show me that it was working right.
Writeln('Withdrawing ore for ' + ore);

tells us what we are withdrawing.
  for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
Writeln(' --> Ore nick: ' + Bars.orenames[i] + ' , Amount : ' + inttostr(Bars.oreamounts[i]) + ' <-- ');
end;
ok look at what we did earlier, the [0] and [1].
since we have 2 orenames, the GetArrayLength will bring back then number 2. We subtract 1 because arrays start at 0, so were pretty much doing (with bronze):

for i := 0 to 1 do
Writeln(' –> Ore nick: ' + Bars.orenames + ' , Amount : ' + inttostr(Bars.oreamounts) + ' <– ');

if you want to get technical, this is what its doing:

Writeln(' –> Ore nick: ' + Bars.orenames[0] + ' , Amount : ' + inttostr(Bars.oreamounts) + ' <– ');
Writeln(' –> Ore nick: ' + Bars.orenames[1] + ' , Amount : ' + inttostr(Bars.oreamounts) + ' <– ');


  //opens bank blah
OpenBankQuiet('feb');
if PinScreen then NextPlayer(false);
if not(PinScreen)then begin FixBank; DepositAll; end;
opens banks/handles pins (this part is eddited from your script, so is below)

  for i := 0 to GetArrayLength(Bars.orenames) - 1 do
begin
same as above (above pin)
if were doing bronze, i := 0 and 1;

so it goes throught the bottom procedure 2, while i := 0 the first time, 1 the 2nd time.
    if FindObj(x,y,Bars.orenames[i],Bars.orecolors[i],5)then
begin
Mouse(x, y, 2, 2, False);
ChooseOption(x, y, 'draw X');
Wait(3000 + Random(300));
TypeSend(inttostr(Bars.oreamounts[i]));
end;
Wait(1000 + random(1000));
//were done getting an ore out. if were done with all the ores, it should end;, else it goes back in the loop.. get it?
end;

since Bars.orenames[0] := 'in' (when were doing bronze) and Bars.orecolors[0] := tincolor, we will search for tin the first time. TypeSend will then type 14 because Bars.oreamounts[0] := 14.

  CloseBank;
end;

closes bank

begin
SetupSrl;
GetOre('bronze');
end;

Does procedure..


Srry this little tut thing is sloppy and the worst tut ever. You need to read an array tutorial to understand this function (as i said above im pretty sure)

LordGregGreg

2007-06-18 13:26:36

From: The_Rs_Monkey
Ok.. idk if you know arrays that well, but you have to know them to understand what i am doing.

:P You are a few minutes too late. I just walked him through your whole method on aim, lol. Btw, you did a great job on it, why isn't this part of srl yet?

Edit: dang, you didn't do a bad job of explaing all that! Very through! Perhaps you should post this in the tuts forum, I'm sure it wil help out quite a few people.

shaunthasheep

2007-06-18 13:31:52

From: lordgreggreg1
:P You are a few minutes too late. I just walked him through your whole method on aim, lol. Btw, you did a great job on it, why isn't this part of srl yet?

Edit: dang, you didn't do a bad job of explaing all that! Very through! Perhaps you should post this in the tuts forum, I'm sure it wil help out quite a few people.


Aww =[ I need a time machine… So i can say to you "You are a few minutes too late." lol :p

BTW, did a admin/mod change your sig, or did you, negative 20$ a mod did it lol =P

WhiteShadow

2007-06-18 13:34:21

I think monkey deserveths a pedobear.

Dan Cardin

2007-06-18 13:36:31

the thing that screwed me up was the type part and where u said GetOre('bronze');…so then lordgreggreg1 explained it…and then instead u'd put things…and yea!!good mini-tut.

By the way…can i use that??its really nice, and pretty… and yea..

LordGregGreg

2007-06-18 13:38:25

From: The_Rs_Monkey
Aww =[ I need a time machine… So i can say to you "You are a few minutes too late." lol :p
BTW, did a admin/mod change your sig, or did you, 20$ a mod did it lol =P


Rofl, yeah I know. No, actually that was me doing it all by myself, wihtout anyone even tellling me to :P
I finakly got out of my "Red or else" fase, although i still feel it, and have to edit half my posts because i make them red almost subconciously.
But um yeah, I figured trying to annoy pplz whasnt worth the effort.

(although if you remeber, i was arguing that red text was less anoying them most pplz avatars, so i specially made this one to prove me point)

anyhows, the point is, you owe me 20$ :P:spot:

shaunthasheep

2007-06-18 13:38:47

yea, that's why i made it, for your script :)
glad you understand it now too :p

EDIT:
From: lordgreggreg1

anyhows, the point is, you owe me 20$ :P:spot:


no, you owe me 20$

From: The_Rs_Monkey
BTW, did a admin/mod change your sig, or did you, negative 20$ a mod did it lol =P


lol, love the edit button <3

Dan Cardin

2007-06-18 14:11:38

ok ty you pwn

Drakan

2007-06-18 14:48:37

yes from me. Although you really really need to add failsafes. But looks pretty good and you seem to know what your doing. Just add thos.

Dan Cardin

2007-06-18 15:43:00

ty!!:D question for rs_monkey though, i have no clue what that exit's for…
  //Exit; //REMOVE THIS TO TEST THE SCRIPT!!!!!!!!
…am i missing something?

how long does this poll go for?

shaunthasheep

2007-06-18 17:41:11

The exit was there for me to test without it doing the second part, i posted the function on the first page un commented- you may want to add that one in you script. You can delete the exit; line, or delete the whole debug part (from ' –> Debugging Start' to '<– Debugging End ')

n3ss3s

2007-06-19 05:48:41

AHA!
begin
SetupSrl;
GetOre('bronze'); //btw, this doesn't have a failsafe if it doesn't find the ore the first time.
GetOre('iron');
GetOre('steel');
GetOre('mithril');
GetOre('adamant');
GetOre('runite');
GetOre('silver');
GetOre('gold');
end.

Rs, there you could have made an array for the names and just put

for i:= 0 to GetArrayLength(Array) do
begin
GetOre(Array);
end;

shaunthasheep

2007-06-19 07:45:15

rofl

program STFU;
var
whocares : Array of string;
i : integer;
begin
whocares := ['It', 'was', 'just', 'an', 'example!', 'Jeeze!'];
for i := 0 to GetArrayLength(whocares) - 1 do
begin
SendKeys(whocares[i] + ' ');
end;
end.
It was just an example! Jeeze!

n3ss3s

2007-06-19 09:30:21

hahaha :D got pissed?

shaunthasheep

2007-06-19 09:47:58

no, i think you mean Got Milk

btw, I voted yes.

Dan Cardin

2007-06-19 09:51:16

i love all of you that voted yes!!! and forthose who voted no…:p

but how long does this poll go for?…

shaunthasheep

2007-06-19 09:57:30

You got to be patient. Sometimes polls go for 2weeks, or until a admin closes the thread and your app is accepted/decline.

WT-Fakawi

2007-06-19 15:14:50

Accepted.