SRL Archive - Archive

IP-Drowner - SRL Member Application Form


Daniel

2008-01-13 22:48:09

IP-Drowner - SRL Member Application Form
IP-Drowner

What is the meaning to life?


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



Programming Knowledge
I know a bit of PHP, CSS and HTML.

Other Communitys
I used to visit MoparIsTheBest!

How Long have You Played Runescape
3 years since last count.

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

Well, my name is IP-Drowner and i am sure you have seen/heard/met me around the forums. I am a very active scripter who is talented and a fast learner. R0b0t1 said that he would vote Yes on my next members application (This Application) for learning quite quick of procedures and functions (Well, something similar…).

Um, that's about it.

P.S. If there are previous posts in this Applying For Membership section. It isn't my fault. I pressed submit, it downloaded a file called newpost.php and Firefox kept on opening blank tabs. So now i am using Internet Explorer.

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

{===================================================================]
[ IP-owerMiner ]
[ ]
[ NAME : IP-owerMiner ]
[ WRITER : IP-Drowner ]
[ CATEGORY : Miner ]
[ DESCRIPTION : Mines near specified rock. ]
[ AUTOCOLOR : Yes (Except for Runite Ores) ]
[ SRL Used : 4.00 Revision #9 ]
[ SCAR Used : 3.12c - 3.13 ]
[ Version : 1.1 ]
[ ]
[ More Scripts can be found at ]
[ [url]www.SRL-Forums.com[/url] ]
[ ]
[===================================================================]
[ Instructions. ]
[===================================================================]
[ 1. USE Runescape with Low Detail, Very Bright. ]
[ 2. Set your Screen to 32 bit TRUE colour. ]
[ 3. Setup lines 52-55 and lines 65-135. ]
[ 6. Have Pick in first inventory section or have it wielded. ]
[ 7. Start the script Logged Out or Logged in. ]
[ ]
[===================================================================]
[ Credits ]
[===================================================================]
[ Sumilion (I Hope) - For letting me use his Gem Stone Mask. ]
[ ]
[===================================================================]
[ Version Tracker ]
[===================================================================]
[ 1.0 - BETA Release. ]
[ 1.1 - Fixed few BETA Errors. Now in Theta stage! ]
[ ]
[===================================================================}
/////////////////////////////////////
// Variable List //
//---------------------------------//
// //
// Ore Variables (CaSE senSITive): //
// Runite - Adamantite - //
// Mithril - Gold - Iron - //
// Copper - Tin - Clay //
// //
/////////////////////////////////////


program IP_OwerMiner;
{.include SRL\SRL.scar}
{.include SRL\SRL\skill\Mining.scar}
{.include IPIncludes.scar}

const
IPSrlStatsID = '1669'; //Your SRL Statistics ID.
IPSrlPass = 'someone'; //Your SRL Statistics Password.
IPOreTolerance = 4; //Tolerance of the Ore. Recommended to be kept at 4.
IPGasTolerance = 6; //Tolerance of Gas. Change higher if you find broken pick-axes.

procedure DeclarePlayers;
begin
HowManyPlayers := 6;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
SRLID := IPSrlStatsID;
SRLPassword := IPSrlPass;

Players[0].Name := ''; // Your Runescape Username
Players[0].Pass := ''; // Your Runescape Password
Players[0].Nick := ''; // 3-4 letters from the middle of your Username. NO CAPS.
Players[0].Strings[0] := 'Iron'; //What ore to mine. See a list of variables above.
Players[0].Integers[0] := 1; //How many loads to do.
Players[0].Strings[1] := 'mining'; //Skill to train upon lamp (Must Be lowercase).
Players[0].Strings[2] := 'n'; //Run direction if find's a fight?
Players[0].Booleans[0] := True; //Run further away then usual. It will run back.
Players[0].Integers[1] := 5; //Approximately how many seconds does it take to mine
// the ore you have chosen?
Players[0].Active := True;

Players[1].Name := ''; // Your Runescape Username
Players[1].Pass := ''; // Your Runescape Password
Players[1].Nick := ''; // 3-4 letters from the middle of your Username. NO CAPS.
Players[1].Strings[0] := 'Iron'; //What ore to mine.
Players[1].Integers[0] := 10; //How many loads to do.
Players[1].Strings[1] := 'mining'; //Skill to train upon lamp.
Players[1].Strings[2] := 'n'; //Run direction if find's a fight?
Players[1].Booleans[0] := True; //Run further away then usual. It will run back.
Players[1].Integers[1] := 4; //Approximately how many seconds does it take to mine
// the ore you have chosen?
Players[1].Active := False;

Players[2].Name := ''; // Your Runescape Username
Players[2].Pass := ''; // Your Runescape Password
Players[2].Nick := ''; // 3-4 letters from the middle of your Username. NO CAPS.
Players[2].Strings[0] := 'Iron'; //What ore to mine.
Players[2].Integers[0] := 10; //How many loads to do.
Players[2].Strings[1] := 'mining'; //Skill to train upon lamp.
Players[2].Strings[2] := 'n'; //Run direction if find's a fight?
Players[2].Booleans[0] := True; //Run further away then usual. It will run back.
Players[2].Integers[1] := 4; //Approximately how many seconds does it take to mine
// the ore you have chosen?
Players[2].Active := False;

Players[3].Name := ''; // Your Runescape Username
Players[3].Pass := ''; // Your Runescape Password
Players[3].Nick := ''; // 3-4 letters from the middle of your Username. NO CAPS.
Players[3].Strings[0] := 'Iron'; //What ore to mine.
Players[3].Integers[0] := 10; //How many loads to do.
Players[3].Strings[1] := 'mining'; //Skill to train upon lamp.
Players[3].Strings[2] := 'n'; //Run direction if find's a fight?
Players[3].Booleans[0] := True; //Run further away then usual. It will run back.
Players[3].Integers[1] := 4; //Approximately how many seconds does it take to mine
// the ore you have chosen?
Players[3].Active := False;

Players[4].Name := ''; // Your Runescape Username
Players[4].Pass := ''; // Your Runescape Password
Players[4].Nick := ''; // 3-4 letters from the middle of your Username. NO CAPS.
Players[4].Strings[0] := 'Iron'; //What ore to mine.
Players[4].Integers[0] := 10; //How many loads to do.
Players[4].Strings[1] := 'mining'; //Skill to train upon lamp.
Players[4].Strings[2] := 'n'; //Run direction if find's a fight?
Players[4].Booleans[0] := True; //Run further away then usual. It will run back.
Players[4].Integers[1] := 4; //Approximately how many seconds does it take to mine
// the ore you have chosen?
Players[4].Active := False;

Players[5].Name := ''; // Your Runescape Username
Players[5].Pass := ''; // Your Runescape Password
Players[5].Nick := ''; // 3-4 letters from the middle of your Username. NO CAPS.
Players[5].Strings[0] := 'Iron'; //What ore to mine.
Players[5].Integers[0] := 10; //How many loads to do.
Players[5].Strings[1] := 'mining'; //Skill to train upon lamp.
Players[5].Strings[2] := 'n'; //Run direction if find's a fight?
Players[5].Booleans[0] := True; //Run further away then usual. It will run back.
Players[5].Integers[1] := 4; //Approximately how many seconds does it take to mine
// the ore you have chosen?
Players[5].Active := False;
end;

var
x, y, xr, yr : Integer;
ARune, AAddy, AMith, ASteel, AIron, ABronze : Integer;
RColour : array[1..5] of Integer;
GColour : array[1..10] of Integer;
MSymbol : array[0..4] of Integer;
GemMask : Integer;

procedure LoadColours;
begin
if(Players[CurrentPlayer].Strings[0]='Clay') then
begin
RColour[1]:= 5279663;
RColour[2]:= 3695995;
RColour[3]:= 0;
RColour[4]:= 0;
RColour[5]:= 0;
end;
if(Players[CurrentPlayer].Strings[0]='Copper') then
begin
RColour[1]:= 4417938;
RColour[2]:= 3165032;
RColour[3]:= 4879522;
RColour[4]:= 5077674;
RColour[5]:= 4483989;
end;
if(Players[CurrentPlayer].Strings[0]='Tin') then
begin
RColour[1]:= 8421514;
RColour[2]:= 6053220;
RColour[3]:= 6184806;
RColour[4]:= 7566204;
RColour[5]:= 6381928;
end;
if(Players[CurrentPlayer].Strings[0]='Iron') then
begin
RColour[1]:= 2503251;
RColour[2]:= 1976386;
RColour[3]:= 0;
RColour[4]:= 0;
RColour[5]:= 0;
end;
if(Players[CurrentPlayer].Strings[0]='Coal') then
begin
RColour[1]:= 2768703;
RColour[2]:= 1318430;
RColour[3]:= 2768446;
RColour[4]:= 3295562;
RColour[5]:= 2636604;
end;
if(Players[CurrentPlayer].Strings[0]='Gold') then
begin
RColour[1]:= 5029331;
RColour[2]:= 3970470;
RColour[3]:= 0;
RColour[4]:= 0;
RColour[5]:= 0;
end;
if(Players[CurrentPlayer].Strings[0]='Mithril') then
begin
RColour[1]:= 7096649;
RColour[2]:= 5651258;
RColour[3]:= 7950930;
RColour[4]:= 0;
RColour[5]:= 0;
end;
if(Players[CurrentPlayer].Strings[0]='Adamantite') then
begin
RColour[1]:= 5466195;
RColour[2]:= 4478276;
RColour[3]:= 0;
RColour[4]:= 0;
RColour[5]:= 0;
end;
if(Players[CurrentPlayer].Strings[0]='Runite') then
begin
RColour[1]:= 0;
RColour[2]:= 0;
RColour[3]:= 0;
RColour[4]:= 0;
RColour[5]:= 0;
end;
end;

procedure LoadGasColours;
begin
GColour[1]:= 16777215; //Gas Colour 01
GColour[2]:= 16777215; //Gas Colour 02
GColour[3]:= 16777215; //Gas Colour 03
GColour[4]:= 16777215; //Gas Colour 04
GColour[5]:= 16777215; //Gas Colour 05
GColour[6]:= 16777215; //Gas Colour 06
GColour[7]:= 16777215; //Gas Colour 07
GColour[8]:= 16777215; //Gas Colour 08
GColour[9]:= 16777215; //Gas Colour 09
GColour[10]:= 16777215; //Gas Colour 10
end;

procedure IP_OssibleSymbols;
begin
MSymbol[1] := BitmapFromString(6, 5, 'beNpzdNxy8CAQTVm4sKK1' +
'Nbe+DsgOTUpKyM3NLCsDciEIogCIgFIQcYguIOorcm1Ptgaqh3MLI' +
'rUTvCRMALHHL2g=');
MSymbol[2] := BitmapFromString(8, 4, 'beNo7eHDLQRDqK3ItiNSO' +
'sRSbsnAhEIUmJUEEE7w0Ai0FIIJAEaB4e7I1UNDFiB8uCBEHakdWC' +
'UUAM2Uxtw==');
MSymbol[3] := BitmapFromString(4, 3, 'beNpLSoqxFJuycCEQhSYl' +
'QRhbDh6EsIEMEBsATt8Txw==');
MSymbol[4] := BitmapFromString(9, 10, 'beNo7eHDLQSiasnBhRWt' +
'rbn0dXASIQpOSEnJzM8vKgOIQBGQjawEioBq4AiAXWXtfkWt7sjXE' +
'BLegIGTxgkjtBC8JE0dHoHa4FEQ8xlIMbjJECiie4KURaCkAEYc4D' +
'MgAGe6l4WLEDxeHSwHNQVaP7Ga4y5HFQQgAx+OVNw==');
end;

procedure LoadDTMS;
begin
ARune := DTMFromString('78DA6314606060606240019E8939609A11CA6' +
'7640312CCA86A8C9CBD50D5B00209165435FA0EEEA86A38895023' +
'0E24D851D5046497A3AA1106126CA86A2C7D4230CDE1405563E2E' +
'687AA861FD33D26CA6C286A003180071C');
AAddy := DTMFromString('78DA631462606060624001F6FEF6609A11CA6' +
'79406121CA86ACCDD2C50D5880209365435569E56A86A2431CDD1' +
'B7D64755C309245808A8E10512ACA86A742C7450D50861AAD1936' +
'74555C34E845DAC98E618D91BA1A801005B0B0660');
AMith := DTMFromString('78DA631462606060624001D61AEC609A11CA6' +
'7640512ACA86AF40DDC51D57062AAD1D5754655C34B841A6920C1' +
'85AAC6CC3C10558D08906027A0461C4870A0AA3132F222DD2E50F' +
'8B0A1AAB1B58D4655C34FD85F00055807A7');
ASteel := DTMFromString('78DA6314606060606240014D9515609A11CA6' +
'7640312ACA86A42FDFD51D53003091654355121C1A86A24800427' +
'0135C240821D554D5A7C3CAA1A014CF794E5E6A2AA1103121C04E' +
'C1204126CA86AF2D3D351D57011E177294C7FC16449091F00085A' +
'0C08');
AIron := DTMFromString('78DA63146460606061400126CA6C609A11CA6' +
'7640512ECA86AECAC2C51D54802096E026A84810427AA1A2F5757' +
'5435A2986A5CECED51D54801091E5435D6E666A86AC489700F179' +
'06023600E37A6DF31D4F011A14600538D9A140B8A1A006C5C0816');
ABronze := DTMFromString('78DA6314646060606440038C4824906605122' +
'C04D4700009565415C6EAE2A86A7831CDC150238CA926CE431B55' +
'8D1490E04455E3642C87AA460448B01350238EA9C6DB5209550D1' +
'F116EE627C2EF207FB1A1AA71335340510300E36B0601');
end;

procedure LoadExtraImages;
begin
GemMask := BitmapFromString(23, 24, 'z78DA3330183EC00D0C686732' +
'F10097AEC1E33BFC2EA77F08936AD7A84B465D428C8DA32E19750' +
'931F68EBA6434B50C45978CCC929F785B68ED1E52CDA76E9B90BA' +
'7E74A3180CFE3E0200FDE18F27');
//^^ Stolen off Sumilions Rimmington Miner :p Hope he's okay with that.
end;

function FindFastRandoms: Boolean; // By WT-Fakawi. Shortened by ME!
var
i: Integer;
begin
for I := 1 to 11 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;
8: begin
if(InBlack)then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
9 : if(RC)then Result := True;
10 : if(FindFight)then
begin
Result := True;
RunTo(Players[CurrentPlayer].Strings[2], Players[CurrentPlayer].Booleans[0]);
Wait(2000+Random(356))
RunBack(1, 4);
end;
11: if(FindTalk)then Result := True;
end;
Wait(1);
end;
end;

function GetAntiRandoms : Boolean;
var p : integer;
begin
for p:= 1 to 4 do
begin
case p of
1: FindFastRandoms;
2: FindNormalRandoms;
3: FindLamp(Players[CurrentPlayer].Strings[1]); //Middle of the script!
4: begin
if(not(FindPickHeadColor)) then FindPick;
end;
end;
end;
end;

function IP_DetectAxe: String;
begin
if(not(LoggedIn)) then Exit;
GameTab(5);
if(FindDTM(ABronze,x,y,556,282,615,333)) then
begin
MMouse(x,y,3,2);
Result:='AB';
end;
if(FindDTM(AIron,x,y,556,282,615,333)) then
begin
MMouse(x,y,3,5);
Result:='AI';
end;
if(FindDTM(ASteel,x,y,556,282,615,333)) then
begin
MMouse(x,y,3,3);
Result:='AS';
end;
if(FindDTM(AMith,x,y,556,282,615,333)) then
begin
MMouse(x,y,3,1);
Result:='AM';
end;
if(FindDTM(AAddy,x,y,556,282,615,333)) then
begin
MMouse(x,y,1,2);
Result:='AA';
end;
if(FindDTM(ARune,x,y,556,282,615,333)) then
begin
MMouse(x,y,2,3);
Result:='AR';
end;
if (not(Result='AB')) or (not(Result='AI')) or (not(Result='AS')) or (not(Result='AM')) or (not(Result='AA')) or (not(Result='AR')) then
begin
Result:='UW';
end;
GameTab(4);
end;

function IP_RandomRotate:Boolean;
begin
case random(5) of
0: begin
MakeCompass('N');
Writeln('Changed the compass to North');
Result:=True;
end;
1: begin
MakeCompass('S');
Writeln('Changed the compass to South');
Result:=True;
end;
2: begin
MakeCompass('E');
Writeln('Changed the compass to East');
Result:=True;
end;
3: begin
MakeCompass('W');
Writeln('Changed the compass to West');
Result:=True;
end;
4: begin
Writeln('Did not change the compass angle.');
Result:=True;
end;
end;
end;

procedure IP_RockWait;
begin
if(not(LoggedIn)) then Exit;
GetAntiRandoms;
case Random(15) of
0: RandomRClick;
1: GameTab(1+Random(7));
2: BoredHuman;
3: PickUpMouse;
4: AlmostLogOut;
5: RandomMovement;
6: HoverSkill('mining', False);
7: IP_RandomRotate;
8: AlmostLogout;
9: TypeSend('Oh My God!');
10: TypeSend('OMG!!!');
11: TypeSend('Mining is boring');
12: TypeSend('Mining is bworing.');
13: TypeSend('Mining is fun, yay!');
14: TypeSend('this TAkes forever...');
end;
GetAntiRandoms;
end;

var
LoadsDone, OresMined : Integer;
TotalOres, TotalLoads : Integer;

procedure IProgress;
begin
Writeln(' /======================================================\');
Writeln('| IP-owerMiner Progress Report |');
Writeln('| Created by IP-Drowner |');
Writeln('|--------------------------------------------------------|');
Writeln('| Current Players Report: |')
Writeln('| Player Name: '+Players[CurrentPlayer].Nick);
Writeln('| Loads Completed: '+IntToStr(LoadsDone));
Writeln('| Ore''s Mined: '+IntToStr(OresMined));
Writeln('| Current Mining Level: '+IntToStr(Players[CurrentPlayer].Level[15]));
Writeln('|--------------------------------------------------------|');
Writeln('| Total Players Progress Report |');
Writeln('| Script Run Time: '+TimeRunning);
Writeln('| Total Completed Loads: '+IntToStr(TotalLoads));
Writeln('| Total Ores Mined: '+IntToStr(TotalOres));
Writeln('| Player''s Being Used: '+IntToStr(HowManyPlayers));
Writeln('|--------------------------------------------------------|');
Writeln('| IP-owerMiner Progress Report |');
Writeln('| Created by IP-Drowner |');
Writeln(' \======================================================/');
end;

function SetSecondToMSec(IntNum: Integer): Integer;
begin
Result:=Players[CurrentPlayer].Integers[IntNum]*1000;
end;

procedure CaseRandom;
begin
if(not(LoggedIn)) then Exit;
case Random(2) of
0: begin
SendMouse(x+random(1),y+random(4),3,5);
Wait(451+Random(324))
SendClick(True);
end;
1: begin
MMouse(x+random(3),y+random(4),2,4);
Wait(412+Random(413))
Mouse(x+random(1),y+random(2),3,1,True);
end;
end;
end;

function FindColorsMulti(Color1, Color2, Color3, Color4, Color5, xs, ys, xe, ye, ToleranceLevel: Integer): Boolean;
begin
if(FindColorTolerance(x,y,Color1,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color2,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color3,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color4,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color5,xs,ys,xe,ye,ToleranceLevel)) then Result:=True;
end;

function IP_FindRock: Boolean;
begin
if(FindColorsMulti(RColour[1], RColour[2], RColour[3], RColour[4], RColour[5], 0, 0, 500, 700, IPOreTolerance)) then Result:=True;
end;

function IP_GetGas: Boolean;
var g, i: integer;
begin
for i:=1 to 10 do
begin
if(FindColorTolerance(x,y,GColour[i],0,0,515,339,IPGasTolerance)) then g:=g+1;
end;
if(g>=5) then Result:=True;
end;

function IP_GetGems: Boolean;
begin
if(FindBitmapToleranceIn(GemMask,x,y,563,212,735,459,1)) then Result:=True;
end;

procedure IP_DropOres;
begin
if(not(LoggedIn)) then Exit;
if(IP_DetectAxe='UW') then
begin
DropToPosition(2,28);
LoadsDone:=LoadsDone+1;
OresMined:=OresMined+27;
ReportVars[0]:=ReportVars[0]+1;
ReportVars[1]:=ReportVars[1]+27;
end;
if(not(IP_DetectAxe='UW')) then
begin
DropAll;
LoadsDone:=LoadsDone+1;
OresMined:=OresMined+28;
ReportVars[0]:=ReportVars[0]+1;
ReportVars[1]:=ReportVars[1]+28;
end;
end;

procedure WalkToSymbol; forward;

procedure IP_MineOres;
begin
if(not(LoggedIn)) then Exit;
IP_DropOres;
if(IP_FindRock) then
begin
Mouse(x,y,3,5,True);
GetMousePos(x, y);
Wait(400+Random(800))
IP_RockWait;
if(IP_GetGas) or (FindGas(x, y)) then
begin
case Random(2) of
0: begin
WalkToSymbol;
Writeln('Found attempted gas. Walking to mining symbol.');
end;
1: begin
if(FindColorTolerance(x,y,16777215,648,82,648,84,1)) then
begin
CaseRandom;
Writeln('Found attempted gas. Moving away.');
end;
end;
end;
if(IP_GetGems) then
begin
ReportVars[2]:=ReportVars[2]+1;
end;
end;
Wait(SetSecondToMSec(1));
end;
IP_DropOres;
end;

procedure WalkToSymbol;
var w: integer;
begin
if(not(LoggedIn)) then Exit;
for w:=1 to 4 do
begin
if(FindBitmapToleranceIn(MSymbol[w],x,y,548,5,730,157,3)) then
begin
CaseRandom;
end;
end;
IP_MineOres;
end;

procedure GetCompassChange(Angle: String);
begin
case LowerCase(Angle) of
'n' : if(FindCompassAngle=0) then Writeln('Compass Angle is already at specified point.') else MakeCompass('n');
's' : if(FindCompassAngle=180) then Writeln('Compass Angle is already at specified point.') else MakeCompass('s');
'w' : if(FindCompassAngle=90) then Writeln('Compass Angle is already at specified point.') else MakeCompass('w');
'e' : if(FindCompassAngle=270) then Writeln('Compass Angle is already at specified point.') else MakeCompass('e');
end;
end;

procedure SetupScript;
begin
LoadsDone := 0;
TotalLoads := 0;
OresMined := 0;
TotalOres := 0;
LoadDTMS;
LoadExtraImages;
IP_OssibleSymbols;
SetupSRL;
DeclarePlayers;
ScriptID:='582';
ActivateClient;
Wait(1261+Random(761));
if(not(LoggedIn)) then LoginPlayer;
if(not(LOggedIn)) then ReportVars[4]:=ReportVars[4]+1;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars)
if(not(LoggedIn)) then Wait(1000+Random(497))
GetCompassChange('n');
Wait(100+Random(249))
HighestAngle;
Wait(10+random(159))
IP_DetectAxe;
Wait(812+Random(321))
end;

procedure BasicLoop;
begin
IP_MineOres;
if(not(LoggedIn)) then NextPlayer(False);
if(LoadsDone=Players[CurrentPlayer].Integers[0]) then
begin
LogOut;
TotalLoads:=TotalLoads+LoadsDone;
LoadsDone:=0;
Players[CurrentPlayer].Active := False;
NextPlayer(False);
ReportVars[3]:=Reportvars[3]+1;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars)
end;
SRLRandomsReport;
IProgress;
end;

function GetActivePlayers: Boolean;
var p, v: integer;
begin
for p:=CurrentPlayer to HowManyPlayers-1 do
begin
if(Players[p].Active=False) then v:=v+1;
end;
if(v=p) then Result:=True;
end;


procedure FreeEverything;
begin
FreeDTM(ARune);
FreeDTM(AAddy);
FreeDTM(AMith);
FreeDTM(ASteel);
FreeDTM(AIron);
FreeDTM(ABronze);
FreeBitmap(MSymbol[1]);
FreeBitmap(MSymbol[2]);
FreeBitmap(MSymbol[3]);
FreeBitmap(MSymbol[4]);
end;

begin
SetupScript
repeat
BasicLoop;
Until(GetActivePlayers);
FreeEverything;
IProgress;
Wait(1000)
Writeln('Thanks you for using my script :)');
Writeln('Please post the above progress report where you got this');
Writeln(' this script from.');
end.

gerauchert

2008-01-13 23:01:56

I vote yes. Seems that you have a good grasp on scripting with SCAR and SRL.

Suggestions:

For your antiban do NOT have it type messages especially when you have it a case 15 of 15 options…the script has a very high chance of repeating those typesends and will make the script very suspicious

Erm for your gas colors, why are they all the same? No need for an array of all the same color…unless you meant to go back and add new ones in of course

All in all I have to say good improvement and good luck scripting in the future ;)

Daniel

2008-01-13 23:18:05

From: gerauchert
I vote yes. Seems that you have a good grasp on scripting with SCAR and SRL.

Suggestions:

For your antiban do NOT have it type messages especially when you have it a case 15 of 15 options…the script has a very high chance of repeating those typesends and will make the script very suspicious

Erm for your gas colors, why are they all the same? No need for an array of all the same color…unless you meant to go back and add new ones in of course

All in all I have to say good improvement and good luck scripting in the future ;)


Didn't know that the script could repeat the messages. I thought it was random.

Also, about the Gas Colours. Check the SRL Junior Members forum in the Mining forum and look for the thread "IPowerMiner | By IP-Drowner", that explains everything.

P.S. Thanks for voting yes :)

footballjds

2008-01-14 00:10:54

function FindColorsMulti(Color1, Color2, Color3, Color4, Color5, xs, ys, xe, ye, ToleranceLevel: Integer): Boolean;
begin
if(FindColorTolerance(x,y,Color1,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color2,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color3,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color4,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color5,xs,ys,xe,ye,ToleranceLevel)) then Result:=True;
end;
could be much eaiser and shorter with an array and for loop… =p

Yes from me. good luck =p;)
EDIT you can also have 1 DTM for every pick ax.. not a separate one.

Daniel

2008-01-14 00:29:24

From: footballjds
function FindColorsMulti(Color1, Color2, Color3, Color4, Color5, xs, ys, xe, ye, ToleranceLevel: Integer): Boolean;
begin
if(FindColorTolerance(x,y,Color1,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color2,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color3,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color4,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color5,xs,ys,xe,ye,ToleranceLevel)) then Result:=True;
end;
could be much eaiser and shorter with an array and for loop… =p

Yes from me. good luck =p;)
EDIT you can also have 1 DTM for every pick ax.. not a separate one.

That was when i had no idea how to use Arrays or for to do's properly. You could do it like this:

function FindColorsMulti(Color: array[0..5] of integer; xs, ys, xe, ye, ToleranceLevel: Integer): Boolean;
var i, g: integer;
begin
for i:=1 to 5 do
begin
if(FindColorTolerance(x,y,Color[i],xs,ys,xe,ye,ToleranceLevel)) then
if(i=5) then Result:=True;
end;
end;
I think that could work, i didn't test it with SCAR though.

Sir R. M8gic1an

2008-01-14 01:55:56

haven't read through the script, but that last thing you posted wouldn't work, and color should actually be array[1..5], not 0
begin
Result := False
….
if(FindColorTolerance(x,y,Color,xs,ys,xe,ye,ToleranceLevel)) then begin
Result := true
break;
end;

Negaal

2008-01-14 02:01:47

Standards need bit fixing too…

Yes, from me:)

Daniel

2008-01-14 02:13:52

From: Negaal
Standards need bit fixing too…

Yes, from me:)

Thanks :)

And i don't understand. I do two spaces after every bold thing in the line above? Isn't that what you're meant to do?

Please tell me which one is more correct:
Standards 1:
MoveMouse(x,y);
if(FindBitmap(test,x,y)) then
begin
MoveMouse(x,y);
Wait(1000)
end;

Standards 2:

MoveMouse(x,y);
if(FindBitmap(test,x,y)) then
begin
MoveMouse(x,y);
Wait(1000)
end;

Standards 3:

MoveMouse(x,y);
if(FindBitmap(test,x,y)) then
begin
MoveMouse(x,y);
Wait(1000)
end;

^^Thanks!

Negaal

2008-01-14 02:30:18

2.

Go take a tutorial from island or look from other scripts :)

Daniel

2008-01-14 02:50:04

From: Negaal
2.

Go take a tutorial from island or look from other scripts :)


Oh, ok thanks :) I will sure do my scripts like that more often.

Naum

2008-01-14 02:52:23

Yes..

Daniel

2008-01-14 03:06:30

From: NaumanAkhlaq
Yes..

Thanks Nauman :)

I have a pretty good feeling about getting into SRL Members this week.

Sir R. M8gic1an

2008-01-14 06:17:02

too simple. Some of your functions only have one line! standards are slightly off.
your ActivePlayers procedure won't work properly

function GetActivePlayers: Boolean;
var p, v: integer;
begin
for p:=CurrentPlayer to HowManyPlayers-1 do
begin
if(Players[p].Active=False) then v:=v+1;
end;
if(v=p) then Result:=True;
end;

if your current player is your last player and it's just been set to false, then the script will terminate even if all the other players are active. the fix is very simple, but i'll wait for you to find it out for yourself. I like your attitude, but i'm still inclining slightly towards a no. how about you fix your standards, fix the active players procedure, possibly even take out those one function lines and i'll rethink my vote? Also you load so many DTMs, and you only look for pick if equipped. what if i have it on my inv?

also your multiplayer is wrong

if(LoadsDone=Players[CurrentPlayer].Integers[0]) then
begin
LogOut;
TotalLoads:=TotalLoads+LoadsDone;
LoadsDone:=0;
Players[CurrentPlayer].Active := False;
NextPlayer(False);
Players[CurrentPlayer].Active := False;
NextPlayer(False);

NextPlayer(False) already does what the line before it did. and it shouldn't be false because it did it's loads properly! it should remain as true.

no walking, the talkin in your antiban isn't really a good thing, but it's already been stated why.
…
~RM

King of Knives

2008-01-14 06:33:44

I've seen you posting many functions and procedures. You are very eager to learn and to make stuff, and that is indeed a very good attitude. You're taking all constructive criticism with a "thank you". With this attitude I could almost vote yes without looking at the script.

But I took a look at the script and it looks good. People have picked on you enough where I'd pick on you aswell, so there's no need for me to say anything about it.

It's a yes from me.

-Knives

richk1693

2008-01-14 06:52:46

Yes.

Gu3st...

2008-01-14 10:51:00

Yes

I've seen you in work and its great! the miner is great too.

Naum

2008-01-14 12:07:46

Hey zytex congrats on becomming an SRL Member if it wasn't for my promptness. The you would have to wait another 2 days :p.
Oh and Btw hover over my green minisqaure reputation thingy it says something different?

P1nky

2008-01-14 12:32:17

yes

great job way better than last app

Bobarkinator

2008-01-14 13:52:33

Sorry no from me. You seem to have lots of useless code. For instance, you have 10 gas color slots, with the same color in all of them. And having some of your rock colors set to 0 could give a false positive when calling FindColorsMutli as it might find black.

Jackrawl

2008-01-14 15:33:51

Yes

Daniel

2008-01-14 16:45:28

From: Bobarkinator
Sorry no from me. You seem to have lots of useless code. For instance, you have 10 gas color slots, with the same color in all of them. And having some of your rock colors set to 0 could give a false positive when calling FindColorsMutli as it might find black.


Bob, read other posts, like the third one. It specifically says that this script is in THETA stage (The stage above BETA). If you go to the Mining Section in SRL Junior Members and find IPowerMiner, it explains everything. Hmm, maybe i should put that in bold in the first post.

Daniel

2008-01-14 17:46:20

WTH!!! I just edited the first post and now it is gone. WHAT HAPPENED?

EDIT: Don't worry, i just went back to page one and it just disappeared there again without any changes. Why can't i edit the first post?

Bobarkinator

2008-01-14 22:19:55

Then why are you applying with a script that is in theta mode?

footballjds

2008-01-14 22:37:37

cause he'll get in anyhow… :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh: :duh:

Markus

2008-01-15 16:24:17

I suggest using cases in the LoadColours procedure.
FindFastRandoms -> Trash it.
Pickaxes: array and then for loop ;)
I like your Proggy, maybe add individual player stats to it?

function SetSecondToMSec(IntNum: Integer): Integer;
begin
Result:=Players[CurrentPlayer].Integers[IntNum]*1000;
end;
Useless imho.

function FindColorsMulti(Color1, Color2, Color3, Color4, Color5, xs, ys, xe, ye, ToleranceLevel: Integer): Boolean;
begin
if(FindColorTolerance(x,y,Color1,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color2,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color3,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color4,xs,ys,xe,ye,ToleranceLevel)) or
(FindColorTolerance(x,y,Color5,xs,ys,xe,ye,ToleranceLevel)) then Result:=True;
end;
Do you really need that one?


if(IP_DetectAxe='UW') then
begin
...
end;
if(not(IP_DetectAxe='UW')) then
Could've used Else instead :)

GetCompasschange can be trashed. MakeCompass does it all.

Neutral vote.

WT-Fakawi

2008-01-15 18:14:01

In.