iroki_
2008-04-22 14:05:50
<!– 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
Java Script, PHP, MySQL, HTML
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.
So.. I again:)
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
——————————————————
<!– END 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
Java Script, PHP, MySQL, HTML
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.
So.. I again:)
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Program IrokiSmelter;
{.include SRL/SRL/Misc/Smart.scar}
{.include SRL/SRL.scar}
//~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Set up lines 14-21 and 46-53
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~
Const
SmartNumber = 67; //World number
TimePerPlayer = 120; // In minutes
UseMusic = 'Yes'; // Yes or No
YourSRLID = '';
YourSRLPass = '';
Version = '1.03';
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Var
Tin, Copper, Iron, Silver, Coal, Gold, BarMask, FirstOreDTM, SecondOreDTM,
Mithril, Adamant, Rune, MyTemporaryColor, OreMask, TempPWrite, RedCircleDTM,
xTempOre, yTempOre, NextLVL, LVL, PlayerTime, HousesColor, Smelted,
BankCenterDTM, FloorDTM, ToFurnaceDTM, ToBankDTM, Mx, My: Integer;
xOreName, yOreName, VSmelting, cVersion: String;
WhichAngle: Extended;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure DeclarePlayers;
Begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // Your UserName
Players[0].Pass := ''; // Your PassWord
Players[0].Nick := ''; // Your Nick (3-4 letters from your username)
Players[0].Active := True; // Use this player ??
Players[0].Skill := ''; // Skill to lamp
Players[0].Strings[0] := ''; // Your BankPin
Players[0].Strings[1] := ''; // What kind of bars you want to smelt ( Bronze, Iron, Silver, Steel, Gold, Mithril, Adamant, Rune )
Players[0].Loc := ''; // Starts at Al-Khaird bank
{
Players[1].Name := ''; // Your UserName
Players[1].Pass := ''; // Your PassWord
Players[1].Nick := ''; // Your Nick (3-4 letters from your username)
Players[1].Active := True; // Use this player ??
Players[1].Skill := 'Prayer'; // Skill to lamp
Players[1].Strings[0] := ''; // Your BankPin
Players[1].Strings[1] := 'Steel'; // What kind of bars you want to smelt ( Bronze, Iron, Silver, Steel, Gold, Mithril, Adamant, Rune )
Players[1].Loc := 'Bank'; // Starts at Al-Khaird bank
Players[2].Name := ''; // Your UserName
Players[2].Pass := ''; // Your PassWord
Players[2].Nick := ''; // Your Nick (3-4 letters from your username)
Players[2].Active := True; // Use this player ??
Players[2].Skill := 'Prayer'; // Skill to lamp
Players[2].Strings[0] := ''; // Your BankPin
Players[2].Strings[1] := 'Steel'; // What kind of bars you want to smelt ( Bronze, Iron, Silver, Steel, Gold, Mithril, Adamant, Rune )
Players[2].Loc := 'Bank'; // Starts at Al-Khaird bank
Players[3].Name := ''; // Your UserName
Players[3].Pass := ''; // Your PassWord
Players[3].Nick := ''; // Your Nick (3-4 letters from your username)
Players[3].Active := True; // Use this player ??
Players[3].Skill := 'Prayer'; // Skill to lamp
Players[3].Strings[0] := ''; // Your BankPin
Players[3].Strings[1] := 'Steel'; // What kind of bars you want to smelt ( Bronze, Iron, Silver, Steel, Gold, Mithril, Adamant, Rune )
Players[3].Loc := 'Bank'; // Starts at Al-Khaird bank
}
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure Signature;
Begin
ClearDebug;
WriteLn(' __ __ __');
Wait(100);
WriteLn('| |__ __ __ | | __ __ ____ ____ __ ____ _____| |_ ___ ');
Wait(100);
WriteLn('| | | / _ \| |/ |__| / ___| __\ | /__| _ \ / ___|');
Wait(100);
WriteLn('| | / |_| | < | _\__ \ <__| /| | |_| | |___ \');
Wait(100);
WriteLn('|__|__|\____/|__|\__|__| |______/____/__| |__| __ /__|_____/');
Wait(100);
WriteLn(' |__|');
Wait(1000);
WriteLn(' Presents...');
Wait(2000);
ClearDebug;
WriteLn(' ~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ~~ Iroki Smelter v' + (Version) + ' ~~');
WriteLn(' ~~~~~~~~~~~~~~~~~~~~~~~~~~~');
Wait(2000);
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure ProgressReport;
Begin
WriteLn('');
WriteLn('~~~~~~~~~~~~~~~~~~~~~~~ Progress Report ~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('');
WriteLn('~ Player : ' + Players[CurrentPlayer].Name);
WriteLn('~ Smithing LVL : ' + IntToStr(LVL));
WriteLn('~ Worked for : ' + IntToStr(TimeFromMark(PlayerTime) / 60000) + ' minutes');
WriteLn('~ Bars smelted : ' + IntToStr(Smelted));
WriteLn('~ Kind of bars : ' + Players[CurrentPlayer].Strings[1]);
WriteLn('~ Location : ' + Players[CurrentPlayer].Loc);
WriteLn('');
WriteLn('~~');
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// From #14
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function FindObjCustom2(Var cx, cy: Integer; Text: TStringArray; Color: TIntegerArray; Tolerance: Integer): Boolean;
Var
a, b, c, i, x1, y1, x2, y2: Integer;
Start: Boolean;
Begin
For b := 0 To (GetArrayLength(Color)-1) Do
Begin
If (FindColorSpiralTolerance(cx, cy, color[b], MSX1, MSY1, MSX2, MSY2, Tolerance)) Then
Begin
Start := True;
Break;
End;
End;
If(Start)Then
Begin
x1 := 245;
y1 := 165;
x2 := 277;
y2 := 185;
Repeat
If Not(LoggedIn)Then break;
a := a + 1;
If (a = 1) Then
c := c + 1
Else If (a = 3) Then
c := c + 1;
For i := 1 To c Do
Begin
If (a = 1) Then
Begin
x1 := x1 + 30;
x2 := x2 + 30;
End Else
If (a = 2) Then
Begin
y1 := y1 - 20;
y2 := y2 - 20;
End Else
If (a = 3) Then
Begin
x1 := x1 - 30;
x2 := x2 - 30;
End Else
If (a = 4) Then
Begin
y1 := y1 + 20;
y2 := y2 + 20;
end;
If (x1 = 485) And (x2 = 517) Then
x2 := x2 - 2;
If (y1 = 325) And (y2 = 345) Then
y2 := y2 - 7;
If (x2 > 515) Then
Break;
For b := 0 To (GetArrayLength(Color)-1) Do
Begin
If (FindColorTolerance(cx, cy, Color[b], x1, y1, x2, y2, tolerance)) Then
Begin
MMouse(cx, cy, 3, 3);
Wait(5+Random(10));
If (IsUpTextMultiCustom(Text)) Then
Begin
Result := True;
Exit;
End;
End;
End;
End;
If (a = 4) Then
a := 0;
Until (x2 > 515) Or (Result = True);
End;
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('78DA6354666060D8C680026C6C34183480342' +
'310FF0702464120633B031A60442281B41C903844408D0190D880' +
'5F0D0039C00831');
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');
RedCircleDTM := DTMFromString('78DA6314676060E86640038C0CFFC12403C37' +
'F2060940332AA31D52048202D0D242A08A81106120D04D480DCD3' +
'44400D3790A827A0461548D41150230B24BA08A85102126504D40' +
'8008912026A7889081F0922C219E4E622026AA48044217E3500EF' +
'690D42');
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure BankCenterDDTM;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..14] of TDTMPointDef;
TempTDTM: TDTM;
Begin
dtmMainPoint.x := 109;
dtmMainPoint.y := 66;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 12767442;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 109;
dtmSubPoints[0].y := 66;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 12767442;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 46;
dtmSubPoints[1].y := 72;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 3890544;
dtmSubPoints[1].Tolerance := 50;
dtmSubPoints[2].x := 55;
dtmSubPoints[2].y := 78;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 3890544;
dtmSubPoints[2].Tolerance := 50;
dtmSubPoints[3].x := 48;
dtmSubPoints[3].y := 80;
dtmSubPoints[3].AreaSize := 2;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 3890544;
dtmSubPoints[3].Tolerance := 50;
dtmSubPoints[4].x := 52;
dtmSubPoints[4].y := 94;
dtmSubPoints[4].AreaSize := 2;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 3890544;
dtmSubPoints[4].Tolerance := 50;
dtmSubPoints[5].x := 61;
dtmSubPoints[5].y := 102;
dtmSubPoints[5].AreaSize := 2;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 3890544;
dtmSubPoints[5].Tolerance := 50;
dtmSubPoints[6].x := 58;
dtmSubPoints[6].y := 109;
dtmSubPoints[6].AreaSize := 2;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 3890544;
dtmSubPoints[6].Tolerance := 50;
dtmSubPoints[7].x := 67;
dtmSubPoints[7].y := 120;
dtmSubPoints[7].AreaSize := 2;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 3890544;
dtmSubPoints[7].Tolerance := 50;
dtmSubPoints[8].x := 61;
dtmSubPoints[8].y := 115;
dtmSubPoints[8].AreaSize := 2;
dtmSubPoints[8].AreaShape := 0;
dtmSubPoints[8].Color := 3890544;
dtmSubPoints[8].Tolerance := 50;
dtmSubPoints[9].x := 73;
dtmSubPoints[9].y := 125;
dtmSubPoints[9].AreaSize := 2;
dtmSubPoints[9].AreaShape := 0;
dtmSubPoints[9].Color := 3890544;
dtmSubPoints[9].Tolerance := 50;
dtmSubPoints[10].x := 75;
dtmSubPoints[10].y := 132;
dtmSubPoints[10].AreaSize := 2;
dtmSubPoints[10].AreaShape := 0;
dtmSubPoints[10].Color := 3890544;
dtmSubPoints[10].Tolerance := 50;
dtmSubPoints[11].x := 122;
dtmSubPoints[11].y := 48;
dtmSubPoints[11].AreaSize := 1;
dtmSubPoints[11].AreaShape := 0;
dtmSubPoints[11].Color := 2643850;
dtmSubPoints[11].Tolerance := 50;
dtmSubPoints[12].x := 139;
dtmSubPoints[12].y := 61;
dtmSubPoints[12].AreaSize := 1;
dtmSubPoints[12].AreaShape := 0;
dtmSubPoints[12].Color := 3506780;
dtmSubPoints[12].Tolerance := 50;
dtmSubPoints[13].x := 93;
dtmSubPoints[13].y := 61;
dtmSubPoints[13].AreaSize := 4;
dtmSubPoints[13].AreaShape := 0;
dtmSubPoints[13].Color := 5338750;
dtmSubPoints[13].Tolerance := 50;
dtmSubPoints[14].x := 48;
dtmSubPoints[14].y := 91;
dtmSubPoints[14].AreaSize := 1;
dtmSubPoints[14].AreaShape := 0;
dtmSubPoints[14].Color := 11635825;
dtmSubPoints[14].Tolerance := 50;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
BankCenterDTM := AddDTM(TempTDTM);
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure FloorDDTM;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..6] of TDTMPointDef;
TempTDTM: TDTM;
Begin
dtmMainPoint.x := 98;
dtmMainPoint.y := 88;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6589074;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 99;
dtmSubPoints[0].y := 84;
dtmSubPoints[0].AreaSize := 2;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6589074;
dtmSubPoints[0].Tolerance := 50;
dtmSubPoints[1].x := 41;
dtmSubPoints[1].y := 81;
dtmSubPoints[1].AreaSize := 2;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 12228735;
dtmSubPoints[1].Tolerance := 50;
dtmSubPoints[2].x := 55;
dtmSubPoints[2].y := 137;
dtmSubPoints[2].AreaSize := 2;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 12228735;
dtmSubPoints[2].Tolerance := 50;
dtmSubPoints[3].x := 124;
dtmSubPoints[3].y := 66;
dtmSubPoints[3].AreaSize := 2;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 4282005;
dtmSubPoints[3].Tolerance := 50;
dtmSubPoints[4].x := 143;
dtmSubPoints[4].y := 79;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 4683867;
dtmSubPoints[4].Tolerance := 50;
dtmSubPoints[5].x := 85;
dtmSubPoints[5].y := 44;
dtmSubPoints[5].AreaSize := 1;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 2568014;
dtmSubPoints[5].Tolerance := 50;
dtmSubPoints[6].x := 82;
dtmSubPoints[6].y := 124;
dtmSubPoints[6].AreaSize := 1;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 4683867;
dtmSubPoints[6].Tolerance := 50;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
FloorDTM := AddDTM(TempTDTM);
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure ToFurnaceDDTM;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..8] of TDTMPointDef;
TempTDTM: TDTM;
Begin
dtmMainPoint.x := 128;
dtmMainPoint.y := 22;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6655124;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 121;
dtmSubPoints[0].y := 23;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6655124;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 97;
dtmSubPoints[1].y := 81;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 6655124;
dtmSubPoints[1].Tolerance := 50;
dtmSubPoints[2].x := 102;
dtmSubPoints[2].y := 118;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 6655124;
dtmSubPoints[2].Tolerance := 50;
dtmSubPoints[3].x := 38;
dtmSubPoints[3].y := 85;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 12228735;
dtmSubPoints[3].Tolerance := 50;
dtmSubPoints[4].x := 38;
dtmSubPoints[4].y := 103;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 12228735;
dtmSubPoints[4].Tolerance := 50;
dtmSubPoints[5].x := 61;
dtmSubPoints[5].y := 103;
dtmSubPoints[5].AreaSize := 1;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 5141641;
dtmSubPoints[5].Tolerance := 50;
dtmSubPoints[6].x := 79;
dtmSubPoints[6].y := 119;
dtmSubPoints[6].AreaSize := 1;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 4683867;
dtmSubPoints[6].Tolerance := 50;
dtmSubPoints[7].x := 122;
dtmSubPoints[7].y := 66;
dtmSubPoints[7].AreaSize := 1;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 3820937;
dtmSubPoints[7].Tolerance := 50;
dtmSubPoints[8].x := 139;
dtmSubPoints[8].y := 78;
dtmSubPoints[8].AreaSize := 1;
dtmSubPoints[8].AreaShape := 0;
dtmSubPoints[8].Color := 4683867;
dtmSubPoints[8].Tolerance := 50;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
ToFurnaceDTM := AddDTM(TempTDTM);
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure ToBankDDTM;
Var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..7] of TDTMPointDef;
TempTDTM: TDTM;
Begin
dtmMainPoint.x := 101;
dtmMainPoint.y := 147;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 6920601;
dtmMainPoint.Tolerance := 255;
dtmSubPoints[0].x := 101;
dtmSubPoints[0].y := 147;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 6920601;
dtmSubPoints[0].Tolerance := 255;
dtmSubPoints[1].x := 83;
dtmSubPoints[1].y := 146;
dtmSubPoints[1].AreaSize := 4;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 6920601;
dtmSubPoints[1].Tolerance := 50;
dtmSubPoints[2].x := 59;
dtmSubPoints[2].y := 72;
dtmSubPoints[2].AreaSize := 4;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 5407886;
dtmSubPoints[2].Tolerance := 50;
dtmSubPoints[3].x := 52;
dtmSubPoints[3].y := 91;
dtmSubPoints[3].AreaSize := 4;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 5407886;
dtmSubPoints[3].Tolerance := 50;
dtmSubPoints[4].x := 46;
dtmSubPoints[4].y := 73;
dtmSubPoints[4].AreaSize := 2;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 12228735;
dtmSubPoints[4].Tolerance := 50;
dtmSubPoints[5].x := 114;
dtmSubPoints[5].y := 131;
dtmSubPoints[5].AreaSize := 1;
dtmSubPoints[5].AreaShape := 0;
dtmSubPoints[5].Color := 2574192;
dtmSubPoints[5].Tolerance := 50;
dtmSubPoints[6].x := 131;
dtmSubPoints[6].y := 145;
dtmSubPoints[6].AreaSize := 1;
dtmSubPoints[6].AreaShape := 0;
dtmSubPoints[6].Color := 2976054;
dtmSubPoints[6].Tolerance := 50;
dtmSubPoints[7].x := 148;
dtmSubPoints[7].y := 88;
dtmSubPoints[7].AreaSize := 2;
dtmSubPoints[7].AreaShape := 0;
dtmSubPoints[7].Color := 608524;
dtmSubPoints[7].Tolerance := 50;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
ToBankDTM := AddDTM(TempTDTM);
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 DeclarePlayer procedure.');
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
Begin
WriteLn('~~');
WriteLn('We are smelting ' + (temp_Bar) + ' bars.');
WriteLn('~~');
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 AntiBan;
Var
B: Integer;
Begin
If Not LoggedIn Then Exit;
B := Random(360);
Case B Of
0: HoverSkill('random', False);
1: HoverSkill('random', False);
2: HoverSkill('Smithing', False);
3: PickUpMouse;
4: BoredHuman;
5: RandomMovement;
6: MMouse(Random(MSX2), Random(MSY2), 0, 0);
7: TypeSend('nie chce');
8: TypeSend('odwal sie odemnie glombie');
9: TypeSend('Smith lvl??');
10: TypeSend('jupi jej jestem gej :0 ;p');
11: TypeSend('?? co do kurwy');
12: TypeSend('o sole mio maj...');
13: TypeSend('krowa, kon, ketchup.');
End;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure AutoResponder;
Begin
If Not LoggedIn Then Exit;
If InChat(Players[CurrentPlayer].Nick) Then
Begin
Wait(RandomRange(1100, 1500));
Case Random(4) Of
0: TypeSend('hi');
1: TypeSend('????');
2: TypeSend('what??');
3: TypeSend('I swith off my public chat. :@ ...');
End;
Exit;
End;
If InChat('smith') Or InChat('hing lvl') Or InChat('elti') Or InChat('melt') Or InChat('ting lvl') And
Not InChat('Cong') Then
Begin
Wait(RandomRange(1100, 1500));
TypeSend(IntToStr(LVL));
Exit;
End;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure CheckOres;
Var
I: Integer;
Begin
If Not LoggedIn Then Exit;
TakingValues;
Wait(1000);
I := xTempOre + yTempOre;
If Not ExistsItem(I) Then
Begin
WriteLn('~~');
WriteLn('No ores... Logging Out.');
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'No ores';
// ProgressReport;
LogOut;
Exit;
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(Players[CurrentPlayer].Strings[0]) Then
Begin
WriteLn('~~');
Writeln('Wrong pin. Logging Out.');
Wait(900 + Random(500));
CloseBank;
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Wrong PIN';
// ProgressReport;
LogOut;
Exit;
End;
For I := 1 To 28 Do
Begin
If ExistsItem(I) Then
Begin
MouseItem(I, False);
Wait(RandomRange(400, 500));
ChooseOption('All');
Wait(1200 + Random(500));
End;
End;
MyTemporaryColor := GetColor(475, 80);
If (MyTemporaryColor = 1777699) Then FixBank;
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(1200 + Random(500));
End Else
Begin
ChooseOption('Withdraw X');
Wait(1200 + RandomRange(400, 600));
TypeSend((IntToStr(xTempOre)));
Wait(1200 + Random(500));
End;
If Not (yOreName = '') Then
Begin
FindDTM(SecondOreDTM, x, y, 70, 40, 490, 300);
Mouse(x, y, 5, 5, False);
Wait(1200 + Random(500));
ChooseOption('Withdraw X');
Wait(1200 + RandomRange(400, 600));
TypeSend((IntToStr(yTempOre)));
Wait(1400 + Random(500));
End;
CloseBank;
CheckOres;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure FurnaceCheck; Forward;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function FindFurnace: Boolean;
Var
x, y, MyTimes: Integer;
Begin
If Not LoggedIn Then Exit;
Repeat
If FindObjCustom2(x, y, ['Smelt'], [3355447, 3947585], 15) Then
Begin
Wait(RandomRange(50, 120));
Mouse(x, y, 0, 0, True);
Result := True;
End Else MyTimes := MyTimes + 1;
Until Result or ( MyTimes >= 3 );
If ( MyTimes = 3 ) Then
Begin
WriteLn('~~');
Writeln('Couldn''t find furnace. Logging out.');
Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'No furnace';
// ProgressReport;
LogOut;
Exit;
End;
FindNormalRandoms;
FurnaceCheck;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure FurnaceCheck;
Var
MyTime: Integer;
Begin
MarkTime(MyTime);
Repeat
Wait(200);
FindNormalRandoms;
MyTemporaryColor := GetColor(483, 372);
Until (MyTemporaryColor = 7238703) Or (TimeFromMark(MyTime) >= 10000);
If (TimeFromMark(MyTime) >= 10001) Then FindFurnace;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure ToFurnace;
Var
x, y, VSmelting: Integer;
Begin
VSmelting := 0;
SymbolAccuracy := 0.6;
If (VSmelting = 0) Then
Begin
If FindDtmRotated(ToFurnaceDTM, x, y, 547, MMY1, MMX2, MMY2,
-Pi / 2, Pi / 2, 0.1, WhichAngle) Then
Begin
Mouse(x, y, 0, 0, True);
Wait(10000);
FFlag(0);
VSmelting := 1;
End Else
VSmelting := 0;
End;
If (VSmelting = 0) Then
Begin
If FindSymbol(x, y, 'Furnace') Then
Begin
FindNormalRandoms;
Mouse(x + 2, y, 2, 2, True);
FindNormalRandoms;
Wait(5500);
FFlag(1);
VSmelting := 1;
End Else
End;
If (VSmelting = 0) Then
Begin
If RadialRoadWalk(HousesColor, 5, 18, 75, -2, 0) Then
Begin
FindNormalRandoms;
FFlag(0);
VSmelting := 1;
End Else
VSmelting := 0;
End;
If (VSmelting = 0) Then
Begin
WriteLn('~~');
Writeln('Player lost');
Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Lost';
// ProgressReport;
LogOut;
Exit;
End;
FindNormalRandoms;
FFlag(0);
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure Smelt; Forward;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function CheckLVL: Boolean;
Var
x, y: Integer;
Begin
If Not LoggedIn Then Exit;
DeclareDTMs;
If ( FindDTM(NextLVL, x, y, MCX1, MCY1, MCX2, MCY2) ) Then
Begin
LVL := LVL + 1;
Result := True;
ClickToContinue;
WriteLn('~~');
WriteLn('Level Up. Now your level is: ' + IntToStr(LVL) + '.');
FindFurnace;
Smelt;
End;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure Smelt;
Var
x, y, MySmeltingTime, MySmelting: Integer;
Begin
If Not LoggedIn Then Exit;
DeclareDTMs;
MySmelting := StrToInt(VSmelting);
If FindText(x, y, Players[CurrentPlayer].Strings[1], StatChars, 28, 428, 488, 443) Then
Begin
FindNormalRandoms;
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));
MarkTime(MySmeltingTime);
Repeat
Wait(2500);
AntiBan;
AutoResponder;
FindNormalRandoms;
SRLRandomsReport;
CheckLVL;
Until ( Not ( FindDTM(OreMask, x, y, MIX1, MIY1, MIX2, MIY2) ) ) Or ( TimeFromMark(MySmeltingTime) >= 40000 );
Smelted := Smelted + MySmelting;
SendSRLReport;
Exit;
End;{ Else
Begin
WriteLn('~~');
Writeln('Something wrong. Logging out.');
Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Something wrong';
// ProgressReport;
LogOut;
Exit;
End; }
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function FindBankBooth: Boolean;
Var
x, y, MyTimes: Integer;
Begin
If Not LoggedIn Then Exit;
Repeat
FindNormalRandoms;
If FindObjCustom2(x, y, ['Use Bank'], [6711660], 15) Then
Begin
FindNormalRandoms;
Mouse(x, y, 4, 0, False);
Wait(500 + Random(700));
if ClickOption('Use-quickly', 1) Then Result := True;
End Else MyTimes := MyTimes + 1;
Until Result or ( MyTimes >= 3 );
If ( MyTimes = 3 ) Then
Begin
WriteLn('~~');
Writeln('Couldn''t find bank booth. Logging out.');
Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'No bank booth';
// ProgressReport;
LogOut;
Exit;
End;
ChooseOption('Use-quickly');
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure ToBank;
Var
x, y, VBanking: Integer;
Begin
VBanking := 0
MakeCompass('N');
SymbolAccuracy := 1;
If (VBanking = 0) Then
Begin
If FindDtmRotated(ToBankDTM, x, y, MMX1, MMY1, MMX2, MMY2,
-Pi / 2, Pi / 2, 0.1, WhichAngle) Then
Begin
Mouse(x, y, 0, 0, True);
Wait(8000);
FFlag(0);
VBanking := 1;
End Else
VBanking := 0;
End;
If (VBanking = 0) Then
If FindSymbol(x, y, 'Bank') Then
Begin
FindNormalRandoms;
Mouse(x, y, 2, 2, True);
AntiBan;
AutoResponder;
FindNormalRandoms;
FFlag(0);
VBanking := 1;
End;
If (VBanking = 0) Then
Begin
FindNormalRandoms;
If RadialRoadWalk(HousesColor, 180, 250, 74, 0, 0) Then
Begin
FFlag(0);
FindNormalRandoms;
AntiBan;
AutoResponder;
VBanking := 1;
End;
End;
If (VBanking = 0) Then
Begin
// WriteLn('~~');
// Writeln('Player lost');
// Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
// Players[CurrentPlayer].Loc := 'Lost';
// ProgressReport;
LogOut;
Exit;
End;
FindNormalRandoms;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function GetHousesColor: Integer;
Var
x, y: Integer;
Begin
If Not LoggedIn Then Exit;
If FindColoredAreaTolerance(x, y, 5341056, 601, 63, 647, 100, 6, 35) Then
Result := GetColor(x, y)
Else
Begin
// WriteLn('~~');
Writeln('Couldn''t find houses color.');
Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'Serching colors';
LogOut;
Exit;
End;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Function GetHousesColorNew: Integer;
Var
x, y: Integer;
Begin
If Not LoggedIn Then Exit;
If FindDtmRotated(FloorDTM, x, y, MMX1, MMY1, MMX2, MMY2,
-Pi / 2, Pi / 2, 0.1, WhichAngle) Then
Begin
Result := GetColor(x, y);
// MMouse(x, y, 1, 1);
End Else
Begin
GetHousesColor;
End;
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Procedure SetUpPlayer;
Begin
If Not LoggedIn Then Exit;
FindNormalRandoms;
SetAngle(True);
Wait(RandomRange(300, 450));
MakeCompass('N');
Wait(RandomRange(300, 450));
LVL := GetSkillInfo('Smithing', False);
Wait(RandomRange(300, 450));
SetBar('Brightness', 4);
Wait(RandomRange(300, 450));
If (UseMusic = 'No') Then
Begin
SetBar('Volume', 1);
Wait(RandomRange(300, 450));
SetBar('Effect', 1);
Wait(RandomRange(300, 450));
SetBar('Area', 1);
Wait(RandomRange(300, 450));
End;
SetChat('On', 1);
Wait(RandomRange(300, 450));
SetChat('Friends', 2);
Wait(RandomRange(300, 450));
SetChat('Friends', 3);
Wait(RandomRange(300, 450));
SetChat('Friends', 4);
Wait(RandomRange(300, 450));
SetChat('Off', 5);
Wait(RandomRange(300, 450));
GameTab(4);
End;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Begin
cVersion := GetPage('http://www.irokiscripts.republika.pl/Smelter/Ver.txt');
If (cVersion > Version) Then
Begin
WriteLn('New version available. Download it from SRL-forums.');
TerminateScript;
End;
If (YourSRLID = '') Or (YourSRLPass = '') Then
Begin
WriteLn('~~');
WriteLn('Please enter your SRLID and SRLPass in lines 18 and 19.');
TerminateScript;
End;
SmartSetupEx(SmartNumber, False, False);
Wait(RandomRange(7000, 10000));
SetTargetDC(SmartGetDC);
Repeat
Wait(100);
Until (SmartGetColor(253, 233)<>1118604);
SetupSRL;
BankCenterDDTM;
FloorDDTM;
ToFurnaceDDTM;
ToBankDDTM;
ScriptID := '718';
SRLID := YourSRLID;
SRLPassword := YourSRLPass;
ActivateClient;
DeclarePlayers;
Signature;
Repeat
TempPWrite := 0;
MarkTime(PlayerTime);
LogInPlayer;
TakingValues;
SetUpPlayer;
If FindDtmRotated(BankCenterDTM, Mx, My, 550, MMY1, MMX2, MMY2,
-Pi / 2, Pi / 2, 0.1, WhichAngle) Then
Begin
Mouse(Mx, My, 0, 0, True);
FFlag(0);
End Else
Begin
WriteLn('~~');
Writeln('No at bank.');
Wait(900 + Random(500));
Players[CurrentPlayer].Active := False;
Players[CurrentPlayer].Loc := 'No at bank';
LogOut;
End;
HousesColor := GetHousesColorNew;
// WriteLn('~~');
WriteLn('Houses color: ' + IntToStr(HousesColor));
// OpenBank('akb', True, True);
FindBankBooth;
Repeat
TakeOres;
ClearDebug;
WriteLn(' ~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn(' ~~ Iroki Smelter v' + (Version) + ' ~~');
WriteLn(' ~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('');
WriteLn('~~ Time Running : ' + TimeRunning);
WriteLn('~~ Bars smelted : ' + IntToStr(Smelted));
SRLRandomsReport;
SendSRLReport;
ToFurnace;
FindFurnace;
Smelt;
// Status('Total bars smelted: ' + IntToStr(Smelted));
ToBank;
// FindLamp('prayer');
// FindInventoryRandoms;
MakeCompass('N');
SetAngle(True);
// OpenBankFast('Akb');
FindBankBooth;
Until ( Not ( LoggedIn ) ) Or ( TimeFromMark(PlayerTime) >= 60000 * TimePerPlayer );
If BankScreen then CloseBank;
LogOut;
ProgressReport;
NextPlayer(Players[CurrentPlayer].Active);
Until False;
end.——————————————————
<!– END TEMPLATE: formanswers –>