SRL Archive - Archive

iroki - SRL Member Application Form


iroki_

2008-03-25 09:13:44

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

What is the meaning to life?


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


Programming Knowledge
php, javascript, HTML, delphi .and more

Other Communitys


How Long have You Played Runescape
2 years

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

Second try. When i try first my script wasn't 90% my. Now i made script which is 100% made by myself. I know that is to short but i havent any idea what i should write here :( And sorry for my englisch.

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

Program IrokiSmelter;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}



Const
WorldNumber = 61;

YourRSName = ''; // Your UserName
YourRSPass = ''; //Your PassWord
YourRSBPin = ''; // Your BankPin
YourRSNick = ''; // Your Nick (3-4 letters from your username)

Bars = 'Steel'; // What kind of bars you want to smelt ( Bronze, Iron, Silver, Steel, Gold, Mithril, Adamant, Rune )
UseMusic = 'No'; // Yes or No

YourSRLID = '';
YourSRLPass = '';

Version = '1.00';



Var
Tin, Copper, Iron, Silver, Coal, Gold, BarMask, FirstOreDTM, SecondOreDTM,
Mithril, Adamant, Rune, MyMusicColor, MyTemporaryColor, OreMask, TempPWrite,
xTempOre, yTempOre, NextLVL, LVL, Smelted, MyVSmelted: Integer;
xOreName, yOreName, VSmelting: String;



Procedure DeclarePlayers;

Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := YourRSName;
Players[0].Pass := YourRSPass;
Players[0].Nick := YourRSNick;
Players[0].Active := True;
Players[0].Strings[0] := YourRSBPin;
Players[0].Strings[1] := Bars;
End;



Procedure Signature;

Begin
ClearDebug;
WriteLn(' __ __ __');
Wait(100);
WriteLn('| |__ __ __ | | __ __ ____ ____ __ ____ _____| |_ ___ ');
Wait(100);
WriteLn('| | | / _ \| |/ |__| / ___| __\ | /__| _ \ / ___|');
Wait(100);
WriteLn('| | / |_| | < | _\__ \ <__| /| | |_| | |___ \');
Wait(100);
WriteLn('|__|__|\____/|__|\__|__| |______/____/__| |__| __ /__|_____/');
Wait(100);
WriteLn(' |__|');
Wait(650);
WriteLn(' Presents...');
Wait(1500);
ClearDebug;
WriteLn(' /~~~~~~~~~~~~~~~~~~~~~~~~~\');
WriteLn(' | Iroki Smelter v' + (Version) + ' |');
WriteLn(' \~~~~~~~~~~~~~~~~~~~~~~~~~/');
Wait(2000);
End;



Procedure ProgressReport;

Begin
WriteLn('');
WriteLn('~~~~~~~~~~~~~~~~~~~~~ Progress Report ~~~~~~~~~~~~~~~~~~~~~');
WriteLn('');
WriteLn('~ Worked for : ' + Timerunning);
WriteLn('~ Bars smelted: ' + IntToStr(Smelted));
WriteLn('');
WriteLn('~~');
End;



Procedure DeclareDTMs;

Begin
Tin := DTMFromString('78DA635462606030654001DD8D0D0C22409A1' +
'188FF0301A3209061C68006189148202D0F249C08A831001206F8' +
'D50000F6720707');
Copper := DTMFromString('78DA635462606010614001D7ABCDC0428C40F' +
'C1F081805810C090634C0884402697920A144408D019010C0AF06' +
'00CADF0684');
Iron := DTMFromString('78DA635466606028634001FE862A0C22409A1' +
'188FF0301A3209051CA800618914820AD0F24F209A85100124DF8' +
'D50000DC42071F');
Silver := DTMFromString('78DA635462606098CA800256ADDACA2002A41' +
'981F83F10300A0219D319D000231209A46581C422026A0C80C404' +
'FC6A00B1D30903');
Coal := DTMFromString('78DA63D4676260100262246067A7C52004A41' +
'981F83F1030CA02E54550D54064612490D604CACB1150630E9417' +
'25A04615282F46408D35509E1BBF1A002EEC0664');
Gold := DTMFromString('78DA63546060601065400157D74A318800694' +
'620FE0F048C7C408618031A60442281B414905024A0461748F0E3' +
'570300CFC50688');
Mithril := DTMFromString('78DA635460606028614001DE3E050C22409A1' +
'188FF0301231F9051CA8006189148202D0B241A09A8D10512F9F8' +
'D5000006C00774');
Adamant := DTMFromString('78DA635460606098C280027C13FD184480342' +
'310FF0702463E206332031A60442281B42C905848408D2E90E8C7' +
'AF06002B4D07E7');
Rune := DTMFromString('78DA6394676060D8C2800202732A184480342' +
'310FF0702463E20631B031A60442281B42C903848408D2E90588F' +
'5F0D0071B008A2');
BarMask := DTMFromString('78DA637467626078CB8006189148206D0354F' +
'380801A3FA09AFB04D49802D5BC24A0C602A8E6090135BE4035CF' +
'09A8B105AA7947408D1750CD3D026A40E17387801A47A09ADB04D' +
'43810614E0050CD23026ACC806A9EE1570300BD2D0F29');
OreMask := DTMFromString('78DA63CC64626058C6C8800A189148200D52D' +
'34D404D3550CD24026A0A816A161050130B543383083584CC4926' +
'C23DF940355309A849226C17006EDC0945');
NextLVL := DTMFromString('78DA6374606060D8C2C8800CFC3C3DC0344C9' +
'4D10248CC455513E2E78BAA461F484C435513191C84AA460648F4' +
'A2AAF176734355A3062456A3AAD9BDBA07554D3A90A8475563696' +
'A82AAC61B48D4A1AA51555242556304241A0998630B241A50D518' +
'EAE9A1AA0905121B50D538D9D9A2AA0906120B0898E3032466A3A' +
'A7175744055A30E245A51D5D85858A0A80100FCD21565');
End;



Procedure TakingValues;

Var
ForOneBar: Integer;
temp_Bar: String;

Begin
temp_Bar := Players[CurrentPlayer].Strings[1]
If (temp_Bar = '') Then
Begin
WriteLn('~~');
WriteLn('Please enter name of bars at line 15');
TerminateScript;
End;
Case temp_Bar Of
'Bronze':
Begin
xTempOre := 14;
yTempOre := 14;
xOreName := 'Tin';
yOreName := 'Copper';
ForOneBar := 14;
End;
'Iron':
Begin
xTempOre := 28;
yTempOre := 0;
xOreName := 'Iron';
yOreName := '';
ForOneBar := 28;
End;
'Silver':
Begin
xTempOre := 28;
yTempOre := 0;
xOreName := 'Silver';
yOreName := '';
ForOneBar := 28;
End;
'Steel':
Begin
xTempOre := 18;
yTempOre := 9;
xOreName := 'Coal';
yOreName := 'Iron';
ForOneBar := 9;
End;
'Gold':
Begin
xTempOre := 28;
yTempOre := 0;
xOreName := 'Gold';
yOreName := '';
ForOneBar := 28;
End;
'Mithril':
Begin
xTempOre := 20;
yTempOre := 5;
xOreName := 'Coal';
yOreName := 'Mithril';
ForOneBar := 5;
End;
'Adamant':
Begin
xTempOre := 24;
yTempOre := 4;
xOreName := 'Coal';
yOreName := 'Adamant';
ForOneBar := 4;
End;
'Rune':
Begin
xTempOre := 24;
yTempOre := 3;
xOreName := 'Coal';
yOreName := 'Rune';
ForOneBar := 3;
End;
End;
If (TempPWrite = 0) Then
If (yTempOre = 0) Then
Begin
WriteLn('~~');
WriteLn('We are smelting ' + (temp_Bar) + ' bars. We need ' + (IntToStr(xTempOre/ForOneBar)) + ' ' + (xOreName) + ' ore per one bar.');
End Else
Begin
WriteLn('~~');
WriteLn('We are smelting ' + (temp_Bar) + ' bars. We need ' + (IntToStr(xTempOre/ForOneBar)) + ' ' + (xOreName) + ' ore[s] and ' + (IntToStr(yTempOre/ForOneBar)) + ' ' + (yOreName) + ' ore per one bar.');
End;
TempPWrite := 1;
VSmelting := IntToStr(ForOneBar);
End;


Procedure LoadDTMs;

Begin
TakingValues;
DeclareDTMs;
Case xOreName Of
'Tin' :
Begin
FirstOreDTM := Tin;
End;
'Iron' :
Begin
FirstOreDTM := Iron;
End;
'Silver' :
Begin
FirstOreDTM := Silver;
End;
'Coal' :
Begin
FirstOreDTM := Coal;
End;
'Gold' :
Begin
FirstOreDTM := Gold;
End;
End;
If (yOreName <> '') Then
Case yOreName Of
'Copper' :
Begin
SecondOreDTM := Copper;
End;
'Iron' :
Begin
SecondOreDTM := Iron;
End;
'Mithril' :
Begin
SecondOreDTM := Mithril;
End;
'Adamant' :
Begin
SecondOreDTM := Adamant;
End;
'Rune' :
Begin
SecondOreDTM := Rune;
End;
End;
End;



Procedure CheckOres;

Var
I: Integer;

Begin
TakingValues;
I := xTempOre + yTempOre;
If Not ExistsItem(I) Then
Begin
WriteLn('~~');
WriteLn('No ores... Logging Out.');
LogOut;
ProgressReport;
TerminateScript;
End;
End;



Procedure TakeOres;

Var
x, y, i: Integer;

Begin
If Not LoggedIn Then Exit;
LoadDTMs;
Repeat
MyTemporaryColor := GetColor(490, 76);
Until (MyTemporaryColor = 3358280);
If PinScreen Then
If Not InPin(YourRSBPin) Then
Begin
WriteLn('~~');
Writeln('Wrong pin. Logging Out.');
Wait(900 + Random(500));
CloseBank;
LogOut;
TerminateScript;
End;
For i := 1 To 28 Do
Begin
If ExistsItem(i) Then
Begin
MouseItem(i, false);
Wait(100 + Random(50));
ChooseOption('All');
Wait(1000 + Random(500));
End;
End;
MyTemporaryColor := GetColor(475, 80);
If (MyTemporaryColor = 1777699) Then Mouse(475, 65, 3, 5, True);
FindDTM(FirstOreDTM, x, y, 70, 40, 490, 300);
Mouse(x, y, 5, 5, False);
Wait(900 + Random(500));
If (xTempOre = 28) Then
Begin
ChooseOption('Withdraw All');
Wait(900 + Random(500));
End Else
Begin
ChooseOption('Withdraw X');
Wait(1200 + RandomRange(400, 600));
TypeSend((IntToStr(xTempOre)));
Wait(900 + Random(500));
End;
If Not (yOreName = '') Then
Begin
FindDTM(SecondOreDTM, x, y, 70, 40, 490, 300);
Mouse(x, y, 5, 5, False);
Wait(900 + Random(500));
ChooseOption('Withdraw X');
Wait(1200 + RandomRange(400, 600));
TypeSend((IntToStr(yTempOre)));
Wait(900 + Random(500));
End;
CloseBank;
CheckOres;
End;



Function FindFurnace: Boolean;

Var
x, y: Integer;

Begin
Repeat
If FindObj(x, y, 'Smelt', 3355447, 15) Then
Begin
Wait(RandomRange(50, 120));
Mouse(x, y, 0, 0, True);
Result := True;
End;
Until Result;
FindNormalRandoms;
End;


Procedure ToSmelt;

Var
x, y, VSmelting: Integer;

Begin
VSmelting := 0;
SymbolAccuracy := 0.5;
Mouse(480, 30, 5, 5, True);
FindNormalRandoms;
FFlag(1);
If (VSmelting = 0) Then
Begin
If FindSymbol(x, y, 'Furnace') Then
Begin
FindNormalRandoms;
Mouse(x, y, 2, 2, True);
FindNormalRandoms;
Wait(1500);
FFlag(1);
VSmelting := 1;
End Else
VSmelting := 0;
End;
If (VSmelting = 0) Then
Begin
FindNormalRandoms;
Mouse(630, 32, 1, 1, True);
FindNormalRandoms;
FFlag(1);
End;
FindFurnace;
End;



Procedure Smelt; Forward;
Procedure ToBank; Forward;



Function CheckLVL: Boolean;

Var
x, y: Integer;

Begin
DeclareDTMs;
If FindDTM(NextLVL, x, y, MIX1, MIY1, MIX2, MIY2) Then
Begin
LVL := LVL + 1;
Result := True;
ClickToContinue;
Smelt;
WriteLn('~~');
WriteLn('Level Up. Now your level is: ' + IntToStr(LVL) + '.');
End;
End;



Procedure Smelt;

Var
x, y: Integer;

Begin
DeclareDTMs;
Repeat
Wait(200);
MyTemporaryColor := GetColor(483, 372);
Until (MyTemporaryColor = 7238703);
FindText(x, y, Bars, StatChars, 28, 428, 488, 443);
Wait(100 + RandomRange(200, 250));
Mouse(x + 5, y - 7, 4, 4, False);
Wait(900 + Random(500));
ChooseOption('Smelt X');
Wait(1200 + Random(500));
TypeSend(VSmelting);
Wait(500 + Random(500));
Repeat
Wait(200);
If FindNormalRandoms Then
Begin
FindTalk;
FindNormalRandoms;
ToBank;
End;
CheckLVL;
Until Not FindDTM(OreMask, x, y, MIX1, MIY1, MIX2, MIY2);
MyVSmelted := StrToInt(VSmelting);
Smelted := Smelted + MyVSmelted;
End;



Procedure ToBank;

Var
x, y, VBanking: Integer;

Begin
SymbolAccuracy := 0.6;
VBanking := 0
FindNormalRandoms;
Mouse(645, 114, 0, 1, True);
FindNormalRandoms;
FFlag(1);
Mouse(163, 312, 2, 3, True);
FindNormalRandoms;
FFlag(1);
If (VBanking = 0) Then
If FindSymbol(x, y, 'Bank') Then
Begin
FindNormalRandoms;
Mouse(x, y, 2, 2, True);
FindNormalRandoms;
FFlag(1);
VBanking := 1;
End;
If (VBanking = 0) Then
Begin
FindNormalRandoms;
Mouse(598, 121, 1, 1, True);
FindNormalRandoms;
FFlag(1);
VBanking := 1;
End;
FindNormalRandoms;
OpenBankFast('akb');
FindNormalRandoms;
End;



Procedure SetUpScript;

Begin
ScriptID := '718';
SRLID := YourSRLID;
SRLPassword := YourSRLPass;
TempPWrite := 0;
DeclarePlayers;
If Not LoggedIn Then LoginPlayer;
SetAngle(True);
MakeCompass('N');
LVL := GetSkillInfo('Smithing', False);
GameTab(4);
TakingValues;
End;



Begin
If (YourSRLID = '') Or (YourSRLPass = '') Then
Begin
WriteLn('~~');
WriteLn('Please enter your SRLID and SRLPass in lines 22-23.');
TerminateScript;
End;
SmartSetupEx(WorldNumber, False, True);
SetTargetDC(SmartGetDC);
SetUpSRL;
Signature;
If (Not(LoggedIn)) Then
If (UseMusic = 'No') Then
Begin
Repeat
MyTemporaryColor := GetColor(745, 480);
Until (MyTemporaryColor = 8156790) Or (MyTemporaryColor = 1315974);
MyMusicColor := GetColor(745, 480);
If (MyMusicColor = 8156790) Then
Begin
Mouse(745, 480, 10, 10, True);
Wait(500 + Random(500));
End;
End;
SetUpScript;
OpenBankFast('akb');
Repeat
TakeOres;
ToSmelt;
Smelt;
ToBank;
SRLRandomsReport;
SendSRLReport;
Until Not LoggedIn;
ProgressReport;
End.

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

n3ss3s

2008-03-25 09:16:21

MultiPlayer is the top requirement after the script being home-brew ofcourse.

Without it, - adding one extremely fast, you wont most likely make it.


Also the script is quite simple, and you use coordinated clicking as the walking.

Also, you need to learn to use failsafes, for example in the smelting procedure, those two loops are most likely the ones that will run forever.

Sorry, I'm afraid you didn't get in this time.

However, after reading this and making sure your script has got all the requirements in there, you may try again after a month.

Good luck…

Harry

2008-03-25 09:24:10

Oh noez… not the coordinate walking?

Holding vote :p

gerauchert

2008-03-25 10:07:17

Seems like he has a decent knowledge of scripting, he just doesnt apply some of the more basic things that are necessary for the script.

I like the Forwarding of the procedures, cuz few people even know about that (i didnt up until a month or two ago). You DO have failsafes, but it is not designed for multiplayer as you Terminate the script for most of them :(

also:

 If FindDTM(NextLVL, x, y, MIX1, MIY1, MIX2, MIY2) Then

that will search the inventory…you want to use mcx1 mcy1 ect. I think. :D

I vote yes if you can add in the multiplayer, which im sure you can. ;)

iroki_

2008-03-25 10:30:17

I'm not tested this, but i think that mutiplayer is working.

Program IrokiSmelter;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}



Const
WorldNumber = 61;

YourRSName = ''; // Your UserName
YourRSPass = ''; //Your PassWord
YourRSBPin = ''; // Your BankPin
YourRSNick = ''; // Your Nick (3-4 letters from your username)

Bars = 'Steel'; // What kind of bars you want to smelt ( Bronze, Iron, Silver, Steel, Gold, Mithril, Adamant, Rune )
LoadsToDo = 30; // How many times you want walk to furnace
UseMusic = 'No'; // Yes or No

YourSRLID = '';
YourSRLPass = '';

Version = '1.00';

//////// If you have more then one player setup lines 50 - 69 and line 39 //



Var
Tin, Copper, Iron, Silver, Coal, Gold, BarMask, FirstOreDTM, SecondOreDTM,
Mithril, Adamant, Rune, MyMusicColor, MyTemporaryColor, OreMask, TempPWrite,
xTempOre, yTempOre, NextLVL, LVL, Smelted, MyVSmelted, LoadsDo, MyPlayer: Integer;
xOreName, yOreName, VSmelting: String;



Procedure DeclarePlayers;

Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;

Players[0].Name := YourRSName;
Players[0].Pass := YourRSPass;
Players[0].Nick := YourRSNick;
Players[0].Active := True;
Players[0].Strings[0] := YourRSBPin;
Players[0].Strings[1] := Bars;

{ Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Strings[0] := '';
Players[0].Strings[1] := '';

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Strings[0] := '';
Players[0].Strings[1] := '';

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Strings[0] := '';
Players[0].Strings[1] := ''; }

End;



Procedure Signature;

Begin
ClearDebug;
WriteLn(' __ __ __');
Wait(100);
WriteLn('| |__ __ __ | | __ __ ____ ____ __ ____ _____| |_ ___ ');
Wait(100);
WriteLn('| | | / _ \| |/ |__| / ___| __\ | /__| _ \ / ___|');
Wait(100);
WriteLn('| | / |_| | < | _\__ \ <__| /| | |_| | |___ \');
Wait(100);
WriteLn('|__|__|\____/|__|\__|__| |______/____/__| |__| __ /__|_____/');
Wait(100);
WriteLn(' |__|');
Wait(650);
WriteLn(' Presents...');
Wait(1500);
ClearDebug;
WriteLn(' /~~~~~~~~~~~~~~~~~~~~~~~~~\');
WriteLn(' | Iroki Smelter v' + (Version) + ' |');
WriteLn(' \~~~~~~~~~~~~~~~~~~~~~~~~~/');
Wait(2000);
End;



Procedure ProgressReport;

Begin
WriteLn('');
WriteLn('~~~~~~~~~~~~~~~~~~~~~ Progress Report ~~~~~~~~~~~~~~~~~~~~~');
WriteLn('');
WriteLn('~ Worked for : ' + Timerunning);
WriteLn('~ Bars smelted: ' + IntToStr(Smelted));
WriteLn('');
WriteLn('~~');
End;



Procedure DeclareDTMs;

Begin
Tin := DTMFromString('78DA635462606030654001DD8D0D0C22409A1' +
'188FF0301A3209061C68006189148202D0F249C08A831001206F8' +
'D50000F6720707');
Copper := DTMFromString('78DA635462606010614001D7ABCDC0428C40F' +
'C1F081805810C090634C0884402697920A144408D019010C0AF06' +
'00CADF0684');
Iron := DTMFromString('78DA635466606028634001FE862A0C22409A1' +
'188FF0301A3209051CA800618914820AD0F24F209A85100124DF8' +
'D50000DC42071F');
Silver := DTMFromString('78DA635462606098CA800256ADDACA2002A41' +
'981F83F10300A0219D319D000231209A46581C422026A0C80C404' +
'FC6A00B1D30903');
Coal := DTMFromString('78DA63D4676260100262246067A7C52004A41' +
'981F83F1030CA02E54550D54064612490D604CACB1150630E9417' +
'25A04615282F46408D35509E1BBF1A002EEC0664');
Gold := DTMFromString('78DA63546060601065400157D74A318800694' +
'620FE0F048C7C408618031A60442281B414905024A0461748F0E3' +
'570300CFC50688');
Mithril := DTMFromString('78DA635460606028614001DE3E050C22409A1' +
'188FF0301231F9051CA8006189148202D0B241A09A8D10512F9F8' +
'D5000006C00774');
Adamant := DTMFromString('78DA635460606098C280027C13FD184480342' +
'310FF0702463E206332031A60442281B42C905848408D2E90E8C7' +
'AF06002B4D07E7');
Rune := DTMFromString('78DA6394676060D8C2800202732A184480342' +
'310FF0702463E20631B031A60442281B42C903848408D2E90588F' +
'5F0D0071B008A2');
BarMask := DTMFromString('78DA637467626078CB8006189148206D0354F' +
'380801A3FA09AFB04D49802D5BC24A0C602A8E6090135BE4035CF' +
'09A8B105AA7947408D1750CD3D026A40E17387801A47A09ADB04D' +
'43810614E0050CD23026ACC806A9EE1570300BD2D0F29');
OreMask := DTMFromString('78DA63CC64626058C6C8800A189148200D52D' +
'34D404D3550CD24026A0A816A161050130B543383083584CC4926' +
'C23DF940355309A849226C17006EDC0945');
NextLVL := DTMFromString('78DA6374606060D8C2C8800CFC3C3DC0344C9' +
'4D10248CC455513E2E78BAA461F484C435513191C84AA460648F4' +
'A2AAF176734355A3062456A3AAD9BDBA07554D3A90A8475563696' +
'A82AAC61B48D4A1AA51555242556304241A0998630B241A50D518' +
'EAE9A1AA0905121B50D538D9D9A2AA0906120B0898E3032466A3A' +
'A7175744055A30E245A51D5D85858A0A80100FCD21565');
End;



Procedure TakingValues;

Var
ForOneBar: Integer;
temp_Bar: String;

Begin
temp_Bar := Players[CurrentPlayer].Strings[1]
If (temp_Bar = '') Then
Begin
WriteLn('~~');
WriteLn('Please enter name of bars at line 15');
TerminateScript;
End;
Case temp_Bar Of
'Bronze':
Begin
xTempOre := 14;
yTempOre := 14;
xOreName := 'Tin';
yOreName := 'Copper';
ForOneBar := 14;
End;
'Iron':
Begin
xTempOre := 28;
yTempOre := 0;
xOreName := 'Iron';
yOreName := '';
ForOneBar := 28;
End;
'Silver':
Begin
xTempOre := 28;
yTempOre := 0;
xOreName := 'Silver';
yOreName := '';
ForOneBar := 28;
End;
'Steel':
Begin
xTempOre := 18;
yTempOre := 9;
xOreName := 'Coal';
yOreName := 'Iron';
ForOneBar := 9;
End;
'Gold':
Begin
xTempOre := 28;
yTempOre := 0;
xOreName := 'Gold';
yOreName := '';
ForOneBar := 28;
End;
'Mithril':
Begin
xTempOre := 20;
yTempOre := 5;
xOreName := 'Coal';
yOreName := 'Mithril';
ForOneBar := 5;
End;
'Adamant':
Begin
xTempOre := 24;
yTempOre := 4;
xOreName := 'Coal';
yOreName := 'Adamant';
ForOneBar := 4;
End;
'Rune':
Begin
xTempOre := 24;
yTempOre := 3;
xOreName := 'Coal';
yOreName := 'Rune';
ForOneBar := 3;
End;
End;
If (TempPWrite = 0) Then
If (yTempOre = 0) Then
Begin
WriteLn('~~');
WriteLn('We are smelting ' + (temp_Bar) + ' bars. We need ' + (IntToStr(xTempOre/ForOneBar)) + ' ' + (xOreName) + ' ore per one bar.');
End Else
Begin
WriteLn('~~');
WriteLn('We are smelting ' + (temp_Bar) + ' bars. We need ' + (IntToStr(xTempOre/ForOneBar)) + ' ' + (xOreName) + ' ore[s] and ' + (IntToStr(yTempOre/ForOneBar)) + ' ' + (yOreName) + ' ore per one bar.');
End;
TempPWrite := 1;
VSmelting := IntToStr(ForOneBar);
End;


Procedure LoadDTMs;

Begin
TakingValues;
DeclareDTMs;
Case xOreName Of
'Tin' :
Begin
FirstOreDTM := Tin;
End;
'Iron' :
Begin
FirstOreDTM := Iron;
End;
'Silver' :
Begin
FirstOreDTM := Silver;
End;
'Coal' :
Begin
FirstOreDTM := Coal;
End;
'Gold' :
Begin
FirstOreDTM := Gold;
End;
End;
If (yOreName <> '') Then
Case yOreName Of
'Copper' :
Begin
SecondOreDTM := Copper;
End;
'Iron' :
Begin
SecondOreDTM := Iron;
End;
'Mithril' :
Begin
SecondOreDTM := Mithril;
End;
'Adamant' :
Begin
SecondOreDTM := Adamant;
End;
'Rune' :
Begin
SecondOreDTM := Rune;
End;
End;
End;



Procedure CheckOres;

Var
I: Integer;

Begin
TakingValues;
I := xTempOre + yTempOre;
If Not ExistsItem(I) Then
Begin
WriteLn('~~');
WriteLn('No ores... Logging Out.');
LogOut;
ProgressReport;
NextPlayer(True);
End;
End;



Procedure TakeOres;

Var
x, y, i: Integer;

Begin
If Not LoggedIn Then Exit;
LoadDTMs;
Repeat
MyTemporaryColor := GetColor(490, 76);
Until (MyTemporaryColor = 3358280);
If PinScreen Then
If Not InPin(YourRSBPin) Then
Begin
WriteLn('~~');
Writeln('Wrong pin. Logging Out.');
Wait(900 + Random(500));
CloseBank;
LogOut;
NextPlayer(True);
End;
For i := 1 To 28 Do
Begin
If ExistsItem(i) Then
Begin
MouseItem(i, false);
Wait(100 + Random(50));
ChooseOption('All');
Wait(1000 + Random(500));
End;
End;
MyTemporaryColor := GetColor(475, 80);
If (MyTemporaryColor = 1777699) Then Mouse(475, 65, 3, 5, True);
FindDTM(FirstOreDTM, x, y, 70, 40, 490, 300);
Mouse(x, y, 5, 5, False);
Wait(900 + Random(500));
If (xTempOre = 28) Then
Begin
ChooseOption('Withdraw All');
Wait(900 + Random(500));
End Else
Begin
ChooseOption('Withdraw X');
Wait(1200 + RandomRange(400, 600));
TypeSend((IntToStr(xTempOre)));
Wait(900 + Random(500));
End;
If Not (yOreName = '') Then
Begin
FindDTM(SecondOreDTM, x, y, 70, 40, 490, 300);
Mouse(x, y, 5, 5, False);
Wait(900 + Random(500));
ChooseOption('Withdraw X');
Wait(1200 + RandomRange(400, 600));
TypeSend((IntToStr(yTempOre)));
Wait(900 + Random(500));
End;
CloseBank;
CheckOres;
End;



Function FindFurnace: Boolean;

Var
x, y: Integer;

Begin
Repeat
If FindObj(x, y, 'Smelt', 3355447, 15) Then
Begin
Wait(RandomRange(50, 120));
Mouse(x, y, 0, 0, True);
Result := True;
End;
Until Result;
FindNormalRandoms;
End;


Procedure ToSmelt;

Var
x, y, VSmelting: Integer;

Begin
VSmelting := 0;
SymbolAccuracy := 0.5;
Mouse(480, 30, 5, 5, True);
FindNormalRandoms;
FFlag(1);
If (VSmelting = 0) Then
Begin
If FindSymbol(x, y, 'Furnace') Then
Begin
FindNormalRandoms;
Mouse(x, y, 2, 2, True);
FindNormalRandoms;
Wait(1500);
FFlag(1);
VSmelting := 1;
End Else
VSmelting := 0;
End;
If (VSmelting = 0) Then
Begin
FindNormalRandoms;
Mouse(630, 32, 1, 1, True);
FindNormalRandoms;
FFlag(1);
End;
FindFurnace;
End;



Procedure Smelt; Forward;
Procedure ToBank; Forward;



Function CheckLVL: Boolean;

Var
x, y: Integer;

Begin
DeclareDTMs;
If FindDTM(NextLVL, x, y, MCX1, MCY1, MCX2, MCY2) Then
Begin
LVL := LVL + 1;
Result := True;
ClickToContinue;
Smelt;
WriteLn('~~');
WriteLn('Level Up. Now your level is: ' + IntToStr(LVL) + '.');
End;
End;



Procedure Smelt;

Var
x, y: Integer;

Begin
DeclareDTMs;
Repeat
Wait(200);
MyTemporaryColor := GetColor(483, 372);
Until (MyTemporaryColor = 7238703);
FindText(x, y, Bars, StatChars, 28, 428, 488, 443);
Wait(100 + RandomRange(200, 250));
Mouse(x + 5, y - 7, 4, 4, False);
Wait(900 + Random(500));
ChooseOption('Smelt X');
Wait(1200 + Random(500));
TypeSend(VSmelting);
Wait(500 + Random(500));
Repeat
Wait(200);
If FindNormalRandoms Then
Begin
FindTalk;
FindNormalRandoms;
ToBank;
End;
CheckLVL;
Until Not FindDTM(OreMask, x, y, MIX1, MIY1, MIX2, MIY2);
MyVSmelted := StrToInt(VSmelting);
Smelted := Smelted + MyVSmelted;
LoadsDo := LoadsDo + 1;
If LoadsDo = LoadsToDo Then
Begin
WriteLn('~~');
WriteLn('Next player');
LogOut;
Players[CurrentPlayer].Active := False;
NextPlayer(True);
End;
End;



Procedure ToBank;

Var
x, y, VBanking: Integer;

Begin
SymbolAccuracy := 0.6;
VBanking := 0
FindNormalRandoms;
Mouse(645, 114, 0, 1, True);
FindNormalRandoms;
FFlag(1);
Mouse(163, 312, 2, 3, True);
FindNormalRandoms;
FFlag(1);
If (VBanking = 0) Then
If FindSymbol(x, y, 'Bank') Then
Begin
FindNormalRandoms;
Mouse(x, y, 2, 2, True);
FindNormalRandoms;
FFlag(1);
VBanking := 1;
End;
If (VBanking = 0) Then
Begin
FindNormalRandoms;
Mouse(598, 121, 1, 1, True);
FindNormalRandoms;
FFlag(1);
VBanking := 1;
End;
FindNormalRandoms;
OpenBankFast('akb');
FindNormalRandoms;
End;



Procedure SetUpScript;

Begin
MyPlayer := 0
ScriptID := '718';
SRLID := YourSRLID;
SRLPassword := YourSRLPass;
TempPWrite := 0;
DeclarePlayers;
If Not LoggedIn Then LoginPlayer;
SetAngle(True);
MakeCompass('N');
LVL := GetSkillInfo('Smithing', False);
GameTab(4);
TakingValues;
End;



Begin
If (YourSRLID = '') Or (YourSRLPass = '') Then
Begin
WriteLn('~~');
WriteLn('Please enter your SRLID and SRLPass in lines 22-23.');
TerminateScript;
End;
SmartSetupEx(WorldNumber, False, True);
SetTargetDC(SmartGetDC);
SetUpSRL;
Signature;
If (Not(LoggedIn)) Then
If (UseMusic = 'No') Then
Begin
Repeat
MyTemporaryColor := GetColor(745, 480);
Until (MyTemporaryColor = 8156790) Or (MyTemporaryColor = 1315974);
MyMusicColor := GetColor(745, 480);
If (MyMusicColor = 8156790) Then
Begin
Mouse(745, 480, 10, 10, True);
Wait(500 + Random(500));
End;
End;
Repeat
If (MyPlayer = 0) Then
Begin
SetUpScript;
OpenBankFast('akb');
MyPlayer := 1;
End;
Repeat
TakeOres;
ToSmelt;
Smelt;
ToBank;
SRLRandomsReport;
SendSRLReport;
Until Not LoggedIn;
MyPlayer := 0;
ProgressReport;
NextPlayer(True);
Until False;
End.

gerauchert

2008-03-25 10:38:10

I think you have made a good attempt, but I am going to vote no. Sorry, but I think you need more practice with the use of multiplayer in your testing. You have it designed to run until it is logged out instead of after X amount of loads.

You use NextPlayer(True) in your failsafes…which will keep the current player active even if he is lost or has no more ores to smelt. A big no no.

Good luck and apply with a killer script in one month ;)

iroki_

2008-03-25 10:50:23

Maybe you are right that i need more practice. I try later :) with killer script and multiplayer :). How to became a SRL junior member??

gerauchert

2008-03-25 10:52:24

From: iroki
How to became a SRL junior member??


Theres a some tutorials on it lol ;)

ShowerThoughts

2008-03-25 10:55:26

Good job, just learn more and maybe you skip junior and go to the adult members :p

But i have to vote ''No'' most of the things already stated above ;)

P1nky

2008-03-25 12:31:31

sorry no… coord walking and stuff above

Torrent of Flame

2008-03-25 13:06:00

Im voting no aswell.

You need to have definate MultiPlayer. Also, you have no failsafes, and if you include a NextPlayer(True) then its likely it will be banned (It stands with no ores.. like hwy would you stand for hours doing nothing?)

Co-Ordinate clicking is very bad aswell, as it is unreliable.

Try again next month. :]

n3ss3s

2008-03-25 13:12:10

Sorry, the "multiplayer" you added there is only half of it - the other half of it is the functionality/purpose. It's supposed to change player when something goes wrong, for example you get a random yet unsolvable by SRL, and SRL logs you out, but your script still does NextPlayer(True).

Even if you would now change it to the correct one, I'm sorry, but most of us agree that people are supposed to apply with a ready requirement-filling script, not edit it while the poll is on.

Richard

2008-03-25 13:47:15

I'm sorry but I'll have to vote no because theres not that much that is actually the main script, alot of it is just you huge sig and too much declaring things.

You need to add more stuff to it because its just missing too much.

Cazax

2008-03-26 16:46:47

No, read my tut on getting here and n3ss3s one…

Why? Coords walking, no multiplayer.

the scar noob

2008-03-26 18:26:57

I also think that you should make a better script and apply with it in a month:)

However, I think you've got potential, I see you know Delphi (basics?), which is a "step-forward" to SCAR Scripting.

My advice: Read other people's their scripts, read inside the SRL Folder and practice!;)

See you in a month:)

-Tsn.

BobboHobbo

2008-03-27 04:06:59

You have a goog attitude to scripting so goodluck with future scripts hope to see a killer appliance by in a month

Camaro'

2008-03-28 19:26:31

Stuff to work on..

1: For multiplayer to work, you cant just have them fill in all the usernames.

Either, When a part of your script fails, :NextPlayer(false);
Or when your character has Done The X number of loads : NextPlayer(true);

True means it will come back to him.
False means it will skip him next turn around.
(think of a game when you get a card.. "skip your turn");

2. Failsafes are essential for any script to be successful.

This can be put in front of most procedures..

If not (loggedin) then exit;

or

If not (loggedin) then
NextPlayer(false);

Another way of good failsafes are declareing a variable as a integer.

Example:

Var Tries:integer;

Procedure Bank;

Tries := 0;
BankStuff;
Tries := Tries+1;
If Tries > 5 then//this tells ur script if u have tryed 5 times it will go to the next //player
begin
NextPlayer(False);
end;

Also Instead of using Cord Clicking, try useing radial walk to walk.

nielsie95

2008-03-29 05:43:15

I'm afraid you're not getting in this time.
You may try again in one month, good luck :)
Closed.