SRL Archive - Archive

Vinyl Scratch - SRL Member Application


Vinyl Scratch

2012-12-17 20:14:12

How Long have You Played Runescape?
6 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Pascal, Java, Visual Basic(A little), C#(a little, mostly refer to a book.)


Are you a member of any other communities?
Stickpage, Darkdemon


Tell us about yourself…
From: Vinyl Scratch
Alright, so. I'm back. I've got a script that is actually coded by me. I know, I said that before, and it wasn't true. But this time I've learned. I've taken the time to learn more, and not think that I know everything. I know some of you said that you will never say yes to any of my applications ever. I'm sorry that I made you feel like that, and it's not without reason why. I've not come here to mope, but to try again. (Third time's a charm, eh?)

Anywhom, Maybe I can have another shot at SRL Members?



Please show us one (or multiple) of your scripts.
program VinylRunespan;
{$DEFINE SMART}
{$i SRL/SRL.simba}

{$IFDEF SMART}
{$i SRL/SRL/misc/smartgraphics.Simba}
{$ENDIF}


{BIG NOTE!!}
{You need to capitalize the Element, or it will not work!}

const
Version = '10.0A'; // Don't Touch.

NumbOfPlayers = 1; //Number of Players That You Will Be using.

StartPlayer = 0; //Start Which Player?

Forcenew = False; //Force a New Client When Starting or not?

Element = 'Blood'; {Esslings: Air, Water, Fire, Earth.
Esshound: Body, Law, Cosmic, Nature.
Esswraith: Blood, Death, Soul.
}

var
StartEXP:integer;
Exp, EXPH: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Your Username.
Pass := ''; // Your Password.
WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
end;
end;

procedure FindRandoms;
begin
FindNormalRandoms;
Wait(3000);
end;

procedure Proggy;
var
i1, i3, i4: string;
EXPGained: Integer;
begin
SMART_ClearCanvas;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
i1:= 'Time Running:'+ TimeRunning;
i3:= 'EXP Gained:'+inttostr(EXPGained);
i4:= 'EXP P/Hr:'+inttostr(EXPH);
Smart_DrawText(0, 0, StatChars, i1, ClWhite);
SMART_DrawText(0, 10, Statchars, i3, clwhite);
Smart_DrawText(0, 20, StatChars, i4, clwhite);
end;

procedure proggy2;
var
EXPGained: integer;
begin
ClearDebug;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
writeln('Time Running:'+ TimeRunning);
writeln('EXP Gained:'+inttostr(EXPGained));
writeln('EXP P/Hr:'+inttostr(EXPH));
end;

//credit to CynicRus for this part.\\
type TRune = record
DTM: integer;
name: string;
end;

type TRuneArray = array of TRune;
var
Air,Water,Fire,Earth,Law,Blood,Death: TRune;
Runes: TRuneArray;


Procedure FillDTMs;
begin
//intialise array
SetLength(Runes, 7);
//Air
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
Air.Name:='airs';
//Water
Water.DTM:=DTMFromString('mAAEAAHic42FgYNjOzMCwjxlCbwDiVVC8Doi3AfEhID4KxMeA+CAQz2BkYOgF4i4g7gPi6UA8B4iXAfEKIF4KxHOBeAoQ9wOxfP0uoC1MDHzSCmAaGXt7eTCYmhgxqKmpMoiKijDwScoxkAoYScTIAAAswxQl');
Water.name:='waters';
//Fire
Fire.DTM:=DTMFromString('m6wAAAHic42ZgYOBhYWAQBWJeIGYF4v/MEMwMZPMBsTgQSwOxFBDPYmRgmADE3UDcB8STgXgOEC8D4hVQei4QTwXib4ssgaYzgbGVpTkDn7QCQ3hoMENIcCBc3EBBgUFUVISBFMBIAkYCAFF0DuM=');
Fire.Name:='fires';
//Earth
Earth.DTM:=DTMFromString('mKgEAAHic42NgYHjEzMDwDIjfAvErIP4IxO+A+DUQPwHiO0B8DYivQPEtIH4AxCWMDAzpQJwHxNmMEH4NEDcBcQsQtwJxAxBXAnExVA1IfW+XI9BWJqKxrY0VlE0eYCQTowIA9/UVRg==');
Earth.Name:='earths';
//Law rune
Law.DTM:=DTMFromString('');
Law.Name:='laws';
//Blood rune
Blood.DTM:=DTMFromString('maQEAAHicE2RgYOhjZmCYDcRTgXgCEHcBcRsQ1wNxExA3QOlOqPwMIJ4C1TMHiOcC8SNGBoabQHwFiC9D8TUgvgvET4D4JRC/A+L3QPwRiN9A+S+h8g+A+JBmMgOftAIYMzAwwTGfpByDt5cHnB0ZHspgoKDA4ORgD8YgNkI95YCRChgDAAB+8x+l');
Blood.Name:='bloods';
//Death rune
Death.DTM:=DTMFromString('mqAEAAHicrc7fCwFBEAfw73Kl/Lg8nNx00b643Ju/Q1KiJH8kItJdKS8U/xPfXSMvHm/q0+7OzE4TAWgFQJvqFNCr+uPeDYooVgn1lFBX6zX9fzHAjrZ0oJP55G70oKe601VrBZ3pSHu10RlFnkMkRpYNsZjPEEof69WSm1e86WSMkbX+nqYDf7qeZkcQJtb79rp82WFK9i/eG8Abuw==');
Death.Name:='deaths';
Runes:=[Air, Water, Fire, Earth, Law, Blood, Death];
end;

procedure FreeRune(r: TRune);
begin
FreeDTM(r.DTM);
end;

procedure FreeDmt;
var
i: integer;
begin
for i:=0 to Length(runes) -1 do
begin
FreeRune(runes[i]);
end;
end;

function RunesCounter(RuneDTM: integer): Integer;
var
Count, x, y:Integer;
begin
If FindDTM(RuneDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Count := GetAmount(x, y);
Result:= Count;
end;
end;

procedure PrintRuneCount(const r: TRune; count: integer);
begin
WriteLn('You have'+#32+toStr(count)+#32+r.name+#32+'runes');
end;

function CheckInventory(): boolean;
var
i, x, y : integer;
begin
result:=false;
FillDTMs;
for i:=0 to Length(runes)-1 do
begin
If FindDTM(runes[i].DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
PrintRuneCount(runes[i],RunesCounter(runes[i].DTM));
result:=true;
end;
end;
FreeDmt;
end;
////////\\\\\\\\

function isSiphoning: Boolean;
var
SBox: TBox;
begin
SBox:= IntToBox(408, 336, 425, 292);
SMART_DrawBoxEx(false, false, SBox, CLBlue);
Result:= (AveragePixelShift(SBox, 300, 700) > 2000);
end;

procedure antiban;
var
w, h: integer;
begin
case Random(5) of
1: begin
GetClientDimensions(w, h);
MMouse(Random(w), Random(h), 0, 0);
end;
2: begin
MMouse(300, 0, 0, 0);
Wait(RandomRange(30000, 50000));
end;
3: begin
Typesend('Gahh.. so boring.');
end;
4: begin
MMouse(RandomRange(500, 600), 0, 0, 0);
Wait(RandomRange(10000, 60000));
MMouse(RandomRange(100, 700), RandomRange(100, 700), RandomRange(100, 500), RandomRange(100, 500));
MMouse(Random(w), Random(h), 30, 30);
end;
end;
end;

function Siphon(UpText: TStringArray; Color, Tol: Integer; HMod, SMod: Extended): Boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i, x, y: Integer;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMod, SMod);
if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
begin
ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);
for i := 0 to High(ATPA) do
begin
if length(atpa[i]) < 50 then
begin
MMouse(x, y, RandomRange( - 2, 2), RandomRange( - 2, 2));
if WaitUpTextMulti(UpText, 1500) then
begin
case Random(2) of
0:
begin
ClickMouse2(True);
if (DidRedClick()) then
begin
Result := True;
Wait(RandomRange(28000, 32000));
if isSiphoning then
begin
wait(RandomRange(20000, 40000));
end;
Antiban;
Break;
end
else
begin
FindNormalRandoms;
Result := False;
end;
end;
1:
begin
ClickMouse2(False);
if WaitOption('ipho', 1500) then
begin
Result := True;
if isSiphoning then
begin
wait(RandomRange(20000, 40000));
end;
AntiBan;
Break;
end
else
begin
FindNormalRandoms;
AntiBan;
Result := False;
end;
end;
end;
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
proggy;
proggy2;
end;

procedure SetupArguments;
begin
case Element of
'Air': Siphon(['iphon Air', 'hon Air', 'hon Air essling'], 11571554, 7, 3.47, 1.75);
'Fire': Siphon(['iphon Fire', 'hon fire', 'hon Fire Essling'], 5401236, 7, 0.10, 0.75);
'Earth': Siphon(['iphon earth', 'hon earth', 'hon earth Essling'], 6718649, 7, 0.09, 0.68);
'Water': Siphon(['iphon Water', 'hon Water', 'hon Water Essling'], 5194866, 7, 0.10, 0.75);



'body': Siphon(['iphon body', 'body', 'hon body Esshound'], 7093602, 7, 2.40, 0.83);
'law': Siphon(['iphon law', 'hon law', 'hon law Esshound'], 16771982, 7, 0.68, 1.2);
'astral': Siphon(['iphon astral', 'hon astral', 'hon astral Esshound'], 13346751, 7, 1.07, 0.35);


'blood': Siphon(['iphon blood', 'hon blood', 'hon blood Esswraith'], 3826285, 7, 0.39, 0.93);
'soul': Siphon(['iphon soul', 'hon soul', 'hon soul esswraith'], 8026467, 7, 4.16, 0.24);
'death': Siphon(['iphon death', 'hon death', 'hon death Esswraith'], 7692132, 7, 1.69, 0.24);
end;
end;

var
x, y: integer;

begin
{$IFDEF SMART}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
DeclarePlayers;
SetupSRL;
Proggy;
mousespeed:= 25 + random (5);
if(not(Loggedin))then
begin
LoginPlayerToLob;
ChangeWorld(RandomWorld(True, False));
sleep(4000 + Random(3000));
Setangle(0);
if(FindColorTolerance(x, y, 3978996, 485, 58, 506, 79, 5))then
begin
Mmouse(x, y, 3, 3);
Sleep(100+Random(100));
Clickmouse2(True);
Sleep(100+Random(100));
end;
end;
SetupArguments;
Antiban;
repeat
SetupArguments;
StartEXP := GetXPBarTotal;
FindNormalRandoms;
proggy;
proggy2;
until not LoggedIn;
end.

{Only script I'm posting, because it's the only script that I've finished after starting over.}

Here's an updated version of the script

program VinylRunespan;
{$DEFINE SMART}
{$i SRL/SRL.simba}

{$IFDEF SMART}
{$i SRL/SRL/misc/smartgraphics.Simba}
{$ENDIF}


const
Version = '10.0A'; // Don't Touch.

var
StartEXP:integer;
Exp, EXPH: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '*********'; // Your Username.
Pass := '*********'; // Your Password.
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
Strings[0] := 'air'; {Esslings: air, water, fire, earth.
Esshound: body, law, cosmic, nature.
Esswraith: blood, death, soul.}
end;
end;

procedure FindRandoms;
begin
FindNormalRandoms;
Wait(300);
end;

procedure proggy;
var
i1, i2, i3, i4: string;
EXPGained: integer;
begin
SMART_ClearCanvas;
ClearDebug;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
i1:= 'Time Running:'+ TimeRunning;
i2:= 'You are using version:' + Version;
i3:= 'EXP Gained:'+inttostr(EXPGained);
i4:= 'EXP P/Hr:'+inttostr(EXPH);
writeln('You are using Version:' + Version);
Smart_DrawText(0, 0, StatChars, i2, ClGreen);
writeln('Time Running:'+ TimeRunning);
Smart_DrawText(0, 10, StatChars, i1, ClWhite);
writeln('EXP Gained:'+inttostr(EXPGained));
SMART_DrawText(0, 20, Statchars, i3, clwhite);
writeln('EXP P/Hr:'+inttostr(EXPH));
Smart_DrawText(0, 30, StatChars, i4, clwhite);
end;



//credit to CynicRus for this part.\\
type TRune = record
DTM: integer;
name: string;
end;

type TRuneArray = array of TRune;
var
Air, Water, Fire, Earth, Blood, Death: TRune;
Runes: TRuneArray;

Procedure FillDTMs;
begin
//intialise array
SetLength(Runes, 6);
//Air
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
SetDTMName(Air.DTM, 'airDTM');
//Water
Water.DTM:=DTMFromString('mAAEAAHic42FgYNjOzMCwjxlCbwDiVVC8Doi3AfEhID4KxMeA+CAQz2BkYOgF4i4g7gPi6UA8B4iXAfEKIF4KxHOBeAoQ9wOxfP0uoC1MDHzSCmAaGXt7eTCYmhgxqKmpMoiKijDwScoxkAoYScTIAAAswxQl');
SetDTMName(Water.DTM, 'waterDTM');
//Fire
Fire.DTM:=DTMFromString('m6wAAAHic42ZgYOBhYWAQBWJeIGYF4v/MEMwMZPMBsTgQSwOxFBDPYmRgmADE3UDcB8STgXgOEC8D4hVQei4QTwXib4ssgaYzgbGVpTkDn7QCQ3hoMENIcCBc3EBBgUFUVISBFMBIAkYCAFF0DuM=');
SetDTMName(Fire.DTM, 'fireDTM');
//Earth
Earth.DTM:=DTMFromString('mKgEAAHic42NgYHjEzMDwDIjfAvErIP4IxO+A+DUQPwHiO0B8DYivQPEtIH4AxCWMDAzpQJwHxNmMEH4NEDcBcQsQtwJxAxBXAnExVA1IfW+XI9BWJqKxrY0VlE0eYCQTowIA9/UVRg==');
SetDTMName(Earth.DTM, 'earthDTM');
//Blood rune
Blood.DTM:=DTMFromString('maQEAAHicE2RgYOhjZmCYDcRTgXgCEHcBcRsQ1wNxExA3QOlOqPwMIJ4C1TMHiOcC8SNGBoabQHwFiC9D8TUgvgvET4D4JRC/A+L3QPwRiN9A+S+h8g+A+JBmMgOftAIYMzAwwTGfpByDt5cHnB0ZHspgoKDA4ORgD8YgNkI95YCRChgDAAB+8x+l');
SetDTMName(Blood.DTM, 'bloodDTM');
//Death rune
Death.DTM:=DTMFromString('mqAEAAHicrc7fCwFBEAfw73Kl/Lg8nNx00b643Ju/Q1KiJH8kItJdKS8U/xPfXSMvHm/q0+7OzE4TAWgFQJvqFNCr+uPeDYooVgn1lFBX6zX9fzHAjrZ0oJP55G70oKe601VrBZ3pSHu10RlFnkMkRpYNsZjPEEof69WSm1e86WSMkbX+nqYDf7qeZkcQJtb79rp82WFK9i/eG8Abuw==');
SetDTMName(Death.DTM, 'deathDTM');
Runes:=[Air, Water, Fire, Earth, Blood, Death];
end;

procedure FreeRune(r: TRune);
begin
FreeDTM(r.DTM);
end;

procedure FreeDmt;
var
i: integer;
begin
for i:=0 to Length(runes) -1 do
begin
FreeRune(runes[i]);
end;
end;

function RunesCounter(RuneDTM: integer): Integer;
var
Count, x, y:Integer;
begin
If FindDTM(RuneDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Count := GetAmount(x, y);
Result:= Count;
end;
end;

procedure PrintRuneCount(const r: TRune; count: integer);
begin
WriteLn('You have'+#32+toStr(count)+#32+r.name+#32+'runes');
end;

function CheckInventory(): boolean;
var
i, x, y : integer;
begin
result:=false;
FillDTMs;
for i:=0 to Length(runes)-1 do
begin
If FindDTM(runes[i].DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
PrintRuneCount(runes[i],RunesCounter(runes[i].DTM));
result:=true;
end;
end;
FreeDmt;
end;
////////\\\\\\\\



function isSiphoning: Boolean;
var
SBox: TBox;
begin
SBox:= IntToBox(408, 336, 425, 292);
SMART_DrawBoxEx(false, false, SBox, CLBlue);
Result:= (AveragePixelShift(SBox, 300, 700) > 2000);
end;

procedure antiban;
var
w, h: integer;
begin
case Random(3) of
0: begin
GetClientDimensions(w, h);
MMouse(Random(w), Random(h), 0, 0);
end;
1: begin
MMouse(300, 0, 0, 0);
Wait(RandomRange(30000, 50000));
end;
2: begin
MMouse(RandomRange(500, 600), 0, 0, 0);
Wait(RandomRange(10000, 60000));
MMouse(RandomRange(100, 700), RandomRange(100, 700), RandomRange(100, 500), RandomRange(100, 500));
MMouse(Random(w), Random(h), 30, 30);
end;
end;
end;

function Siphon(UpText: TStringArray; Color, Tol: Integer; HMod, SMod: Extended): Boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i, x, y: Integer;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMod, SMod);
if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
begin
ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);
for i := 0 to High(ATPA) do
begin
if length(atpa[i]) < 50 then
begin
MMouse(x, y, RandomRange( - 2, 2), RandomRange( - 2, 2));
if WaitUpTextMulti(UpText, 1500) then
begin
case Random(2) of
0:
begin
ClickMouse2(True);
if (DidRedClick()) then
begin
Result := True;
Wait(RandomRange(28000, 32000));
if isSiphoning then
wait(RandomRange(20000, 40000));
Antiban;
Break;
end
else
begin
FindNormalRandoms;
Result := False;
end;
end;
1:
begin
ClickMouse2(False);
if WaitOption('ipho', 1500) then
begin
Result := True;
if isSiphoning then
wait(RandomRange(20000, 40000));
AntiBan;
Break;
end
else
begin
FindNormalRandoms;
AntiBan;
Result := False;
end;
end;
end;
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
proggy;
end;

procedure SetupArguments;
begin
case Lowercase(Players[currentplayer].Strings[0]) of
'air': Siphon(['iphon Air', 'hon Air', 'hon Air essling'], 11571554, 7, 3.47, 1.75);
'fire': Siphon(['iphon Fire', 'hon fire', 'hon Fire Essling'], 5401236, 7, 0.10, 0.75);
'earth': Siphon(['iphon earth', 'hon earth', 'hon earth Essling'], 6718649, 7, 0.09, 0.68);
'water': Siphon(['iphon Water', 'hon Water', 'hon Water Essling'], 5194866, 7, 0.10, 0.75);

'body': Siphon(['iphon body', 'body', 'hon body Esshound'], 7093602, 7, 2.40, 0.83);
'law': Siphon(['iphon law', 'hon law', 'hon law Esshound'], 16771982, 7, 0.68, 1.2);
'astral': Siphon(['iphon astral', 'hon astral', 'hon astral Esshound'], 13346751, 7, 1.07, 0.35);

'blood': Siphon(['iphon blood', 'hon blood', 'hon blood Esswraith'], 3826285, 7, 0.39, 0.93);
'soul': Siphon(['iphon soul', 'hon soul', 'hon soul esswraith'], 8026467, 7, 4.16, 0.24);
'death': Siphon(['iphon death', 'hon death', 'hon death Esswraith'], 7692132, 7, 1.69, 0.24);
end;
end;

begin
{$IFDEF SMART}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
DeclarePlayers;
SetupSRL;
Proggy;
mousespeed:= 25 + random (5);
if(not(Loggedin))then
begin
LoginPlayerToLob;
ChangeWorld(RandomWorld(True, False));
sleep(4000 + Random(3000));
Setangle(0);
end;
repeat
SetupArguments;
StartEXP := GetXPBarTotal;
FindNormalRandoms;
proggy;
until not LoggedIn;
end.

Sin

2012-12-17 20:19:20

Going to vote Yes for various reasons:
Although you "dun slipped" in the beginning, you came back and persevered to get the member's rank.
Your activity is on par, if not above the standards (mine atleast) at which entry into SRL Members is granted.
Scripting is great, I see ATPA's, Custom functions, records, and types. Although standards could use a little bit more work, but that can come in time.
You seek help when its needed, swallowing your pride when you do.
Some dark humour here, but you gave credit.

Best of luck.



ily flight

Vinyl Scratch

2012-12-17 20:20:52

Thank you, Shay. I'll definitely work on my standards.

NKN

2012-12-17 20:35:33

Pretty short script.
Little failsafes.
Pretty basic.

And to top it off, isn't this the very same script I fixed for you a few months ago? Looks the -exact- same. >_>

Vinyl Scratch

2012-12-17 20:44:24

You did help me with proggies, NKN. Sorry that I didn't put enough failsafes, I'll do that next time.

NKN

2012-12-17 20:45:15

Also.. didn't Kyle make those records?

Vinyl Scratch

2012-12-17 20:51:04

Not the records. Cynic rus made them for me when I PM'd him needing something to count the runes. I credited him.

NKN

2012-12-17 20:52:10

procedure SetupArguments;
begin
case Element of
'Air': Siphon(['iphon Air', 'hon Air', 'hon Air essling'], 11571554, 7, 3.47, 1.75);
'Fire': Siphon(['iphon Fire', 'hon fire', 'hon Fire Essling'], 5401236, 7, 0.10, 0.75);
'Earth': Siphon(['iphon earth', 'hon earth', 'hon earth Essling'], 6718649, 7, 0.09, 0.68);
'Water': Siphon(['iphon Water', 'hon Water', 'hon Water Essling'], 5194866, 7, 0.10, 0.75);



'body': Siphon(['iphon body', 'body', 'hon body Esshound'], 7093602, 7, 2.40, 0.83);
'law': Siphon(['iphon law', 'hon law', 'hon law Esshound'], 16771982, 7, 0.68, 1.2);
'astral': Siphon(['iphon astral', 'hon astral', 'hon astral Esshound'], 13346751, 7, 1.07, 0.35);


'blood': Siphon(['iphon blood', 'hon blood', 'hon blood Esswraith'], 3826285, 7, 0.39, 0.93);
'soul': Siphon(['iphon soul', 'hon soul', 'hon soul esswraith'], 8026467, 7, 4.16, 0.24);
'death': Siphon(['iphon death', 'hon death', 'hon death Esswraith'], 7692132, 7, 1.69, 0.24);
This part, my bad, not records. Just the case

Vinyl Scratch

2012-12-17 20:54:24

No, I made that, lol.

riwu

2012-12-17 22:33:06

There are a few good things i've noticed about you/the script, but being pessimistic i'll just point out possible improvements of the script :p


NumbOfPlayers = 1; //Number of Players That You Will Be using.
StartPlayer = 0; //Start Which Player?
What are these duplicated const for?



WorldInfo := [27, 42, 45, 46, 48, 52, 59, 70, 72, 78, 79, 87, 104, 115, 117];
Read the include doc on WorldInfo, it doesn't work this way.



procedure FindRandoms;
begin
FindNormalRandoms;
Wait(3000);
end;
Why do you want to wait 3 seconds after each FindNormalRandoms call?



procedure Proggy;
var
i1, i3, i4: string;
EXPGained: Integer;
begin
SMART_ClearCanvas;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
i1:= 'Time Running:'+ TimeRunning;
i3:= 'EXP Gained:'+inttostr(EXPGained);
i4:= 'EXP P/Hr:'+inttostr(EXPH);
Smart_DrawText(0, 0, StatChars, i1, ClWhite);
SMART_DrawText(0, 10, Statchars, i3, clwhite);
Smart_DrawText(0, 20, StatChars, i4, clwhite);
end;

procedure proggy2;
var
EXPGained: integer;
begin
ClearDebug;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
writeln('Time Running:'+ TimeRunning);
writeln('EXP Gained:'+inttostr(EXPGained));
writeln('EXP P/Hr:'+inttostr(EXPH));
end;
You should combine these 2 procedures..



Law.DTM:=DTMFromString('');
Why null DTM for Law?



Count := GetAmount(x, y);
Result:= Count;
Combine the 2 statements.


if(FindColorTolerance(x, y, 3978996, 485, 58, 506, 79, 5))then
begin
Mmouse(x, y, 3, 3);
Sleep(100+Random(100));
Clickmouse2(True);
Sleep(100+Random(100));
end;
What does this do?


SRL_SixHourFix := True;
//....
until not LoggedIn;
How would SixHourFix work if you terminate on log out?


Also there isn't walking. Would be a big plus if you add a script that has walking (preferably not SPS/ODTM), or maybe add functionality to find the yellow wizard/whereever you can go in runespan?

I'll hold my vote.

Hobbit

2012-12-17 22:39:53

Yes.

Vinyl Scratch

2012-12-17 22:44:20

O.o

Didn't think Hobbit would vote yes, if at all for me, seeing as he's one of the admins who banned me fore my past behavior.

Thanks!

Le Jingle

2012-12-17 22:50:31

Offering my vote to your application is largely a process of pro's and con's. Note that I am using analysis from this list as well as action/behavior around form too. That being said, I don't elaborate on Pro's as I feel you get the idea of what you do well, and for con's, I elaborate in hopes to better extend useful tips/thoughts towards yourself/your application.

Pro's
  • used an ATPA
  • used a TPA
  • Implementation of basics in pascalscript
  • Record

Con's
  • instead of requiring proper input for string (case sensitive), I'd recommend using lowercase/upper case to allow for non-case sensitive strings from the user.
  • There are no box rewards needed for player info afaik
  • Lampskill is not needed for player info at all either
  • FindNormalRandoms could be shortened to something else (ex. find spin ticket/mod/etc) because there are no more random events
  • optional ifdef smart calls for use of smart graphic methods
  • only need 1 free dtm method afaik, no?
  • setting up DTMs once at script start instead of a constant load/free usage
  • less if/then statements, ex. = Siphon method
  • many if/then's w/ un-needed begin..ends
  • ex. =

    if isSiphoning then
    begin
    wait(RandomRange(20000, 40000));
    end;
  • many additional failsafes, primarily in the siphon method and outside it too
  • ex = making sure you gain xp or items when trying to siphon ex = making sure you are not using static waits (sub ex = waiting random 20-40 seconds) and something more concrete here
  • less static wait (as said in previous point) and more concrete check methods
  • code commenting; granted this script isn't extensive as compared to large projects (no bias here, simply noting), it's always good to comment methods, ex = saying what is done in said method, what it's purpose is, etc.
  • Activity isn't as high as I've seen it with you, at that, the percentage of helping the community as opposed to commenting on current events/related; granted this is as big, for me, as program aspect.
  • I'd strongly revise your main begin end. method.. As far as I can tell it sets up, then clicks some color, then loops setting stuff back up… not very functional imo
  • ex. of what I'm talking about, from your script;

    var
    x, y: integer;

    begin
    {$IFDEF SMART}
    SRL_SixHourFix := True;
    Smart_FixSpeed := True;
    {$ENDIF}
    DeclarePlayers;
    SetupSRL;
    Proggy;
    mousespeed:= 25 + random (5);
    if(not(Loggedin))then
    begin
    LoginPlayerToLob;
    ChangeWorld(RandomWorld(True, False));
    sleep(4000 + Random(3000));
    Setangle(0);
    if(FindColorTolerance(x, y, 3978996, 485, 58, 506, 79, 5))then // ?????
    begin
    Mmouse(x, y, 3, 3);
    Sleep(100+Random(100));
    Clickmouse2(True); // ????
    Sleep(100+Random(100));
    end;
    end;
    SetupArguments; //setup...
    Antiban;
    repeat // now we repeat setting up??? I'd recommend using the methods in script to actually do something..
    SetupArguments;
    StartEXP := GetXPBarTotal;
    FindNormalRandoms;
    proggy;
    proggy2;
    until not LoggedIn;
    end.

Hope this feedback is understandable and if you have any questions/comments that may need answering, I'd be more than happy to respond via here or PM, to them, whichever you prefer.

Cheers,
Lj

Vinyl Scratch

2012-12-17 23:11:44

@Riwu With the Law.DTM, I forgot to remove that, my bad. I'll fix it. I also didn't know exactly how long I'd need to wait after checking for randoms before going on in the script, so I gave it a surplus amount of time. I should look into the include more often.

@LJ, The
if isSiphoning then 
begin
Wait(bleh, bleh);
end;

was from me browsing the forums and I came across a thread where a guy was having trouble with the if.. then statements, and Brandon said he needed a begin..end around the calling of the procedures in the if..then. So I was just being precautionary.

I'll definitely work on everything else to get better with scripting, and once I fix all of these errors, I'll post it public.

Ps@LJ, I'll take out the const for choosing the element, and make it a string in the declare players, that way I can do something like

[simba]case LowerCase(Player[currentplayer].strings[0] of

in the setup arguments. That way it makes it lowercase, and is better off, right?

program VinylRunespan;
{$DEFINE SMART}
{$i SRL/SRL.simba}

{$IFDEF SMART}
{$i SRL/SRL/misc/smartgraphics.Simba}
{$ENDIF}


const
Version = '10.0A'; // Don't Touch.

NumbOfPlayers = 1; //Number of Players That You Will Be using.

StartPlayer = 0; //Start Which Player?

Forcenew = False; //Force a New Client When Starting or not?

var
StartEXP:integer;
Exp, EXPH: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Your Username.
Pass := ''; // Your Password.
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
Strings[0] := ''; {Esslings: Air, Water, Fire, Earth.
Esshound: Body, Law, Cosmic, Nature.
Esswraith: Blood, Death, Soul.}
end;
end;

procedure FindRandoms;
begin
FindNormalRandoms;
Wait(300);
end;

procedure proggy;
var
i1, i3, i4: string;
EXPGained: integer;
begin
SMART_ClearCanvas;
ClearDebug;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
i1:= 'Time Running:'+ TimeRunning;
i3:= 'EXP Gained:'+inttostr(EXPGained);
i4:= 'EXP P/Hr:'+inttostr(EXPH);
writeln('Time Running:'+ TimeRunning);
Smart_DrawText(0, 0, StatChars, i1, ClWhite);
writeln('EXP Gained:'+inttostr(EXPGained));
SMART_DrawText(0, 10, Statchars, i3, clwhite);
writeln('EXP P/Hr:'+inttostr(EXPH));
Smart_DrawText(0, 20, StatChars, i4, clwhite);
end;

//credit to CynicRus for this part.\\
type TRune = record
DTM: integer;
name: string;
end;

type TRuneArray = array of TRune;
var
Air, Water, Fire, Earth, Blood, Death: TRune;
Runes: TRuneArray;


Procedure FillDTMs;
begin
//intialise array
SetLength(Runes, 6);
//Air
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
Air.Name:='airs';
//Water
Water.DTM:=DTMFromString('mAAEAAHic42FgYNjOzMCwjxlCbwDiVVC8Doi3AfEhID4KxMeA+CAQz2BkYOgF4i4g7gPi6UA8B4iXAfEKIF4KxHOBeAoQ9wOxfP0uoC1MDHzSCmAaGXt7eTCYmhgxqKmpMoiKijDwScoxkAoYScTIAAAswxQl');
Water.name:='waters';
//Fire
Fire.DTM:=DTMFromString('m6wAAAHic42ZgYOBhYWAQBWJeIGYF4v/MEMwMZPMBsTgQSwOxFBDPYmRgmADE3UDcB8STgXgOEC8D4hVQei4QTwXib4ssgaYzgbGVpTkDn7QCQ3hoMENIcCBc3EBBgUFUVISBFMBIAkYCAFF0DuM=');
Fire.Name:='fires';
//Earth
Earth.DTM:=DTMFromString('mKgEAAHic42NgYHjEzMDwDIjfAvErIP4IxO+A+DUQPwHiO0B8DYivQPEtIH4AxCWMDAzpQJwHxNmMEH4NEDcBcQsQtwJxAxBXAnExVA1IfW+XI9BWJqKxrY0VlE0eYCQTowIA9/UVRg==');
Earth.Name:='earths';
//Blood rune
Blood.DTM:=DTMFromString('maQEAAHicE2RgYOhjZmCYDcRTgXgCEHcBcRsQ1wNxExA3QOlOqPwMIJ4C1TMHiOcC8SNGBoabQHwFiC9D8TUgvgvET4D4JRC/A+L3QPwRiN9A+S+h8g+A+JBmMgOftAIYMzAwwTGfpByDt5cHnB0ZHspgoKDA4ORgD8YgNkI95YCRChgDAAB+8x+l');
Blood.Name:='bloods';
//Death rune
Death.DTM:=DTMFromString('mqAEAAHicrc7fCwFBEAfw73Kl/Lg8nNx00b643Ju/Q1KiJH8kItJdKS8U/xPfXSMvHm/q0+7OzE4TAWgFQJvqFNCr+uPeDYooVgn1lFBX6zX9fzHAjrZ0oJP55G70oKe601VrBZ3pSHu10RlFnkMkRpYNsZjPEEof69WSm1e86WSMkbX+nqYDf7qeZkcQJtb79rp82WFK9i/eG8Abuw==');
Death.Name:='deaths';
Runes:=[Air, Water, Fire, Earth, Blood, Death];
end;

procedure FreeRune(r: TRune);
begin
FreeDTM(r.DTM);
end;

procedure FreeDmt;
var
i: integer;
begin
for i:=0 to Length(runes) -1 do
begin
FreeRune(runes[i]);
end;
end;

function RunesCounter(RuneDTM: integer): Integer;
var
Count, x, y:Integer;
begin
If FindDTM(RuneDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Count := GetAmount(x, y);
Result:= Count;
end;
end;

procedure PrintRuneCount(const r: TRune; count: integer);
begin
WriteLn('You have'+#32+toStr(count)+#32+r.name+#32+'runes');
end;

function CheckInventory(): boolean;
var
i, x, y : integer;
begin
result:=false;
FillDTMs;
for i:=0 to Length(runes)-1 do
begin
If FindDTM(runes[i].DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
PrintRuneCount(runes[i],RunesCounter(runes[i].DTM));
result:=true;
end;
end;
FreeDmt;
end;
////////\\\\\\\\

function isSiphoning: Boolean;
var
SBox: TBox;
begin
SBox:= IntToBox(408, 336, 425, 292);
SMART_DrawBoxEx(false, false, SBox, CLBlue);
Result:= (AveragePixelShift(SBox, 300, 700) > 2000);
end;

procedure antiban;
var
w, h: integer;
begin
case Random(5) of
1: begin
GetClientDimensions(w, h);
MMouse(Random(w), Random(h), 0, 0);
end;
2: begin
MMouse(300, 0, 0, 0);
Wait(RandomRange(30000, 50000));
end;
3: begin
Typesend('Gahh.. so boring.');
end;
4: begin
MMouse(RandomRange(500, 600), 0, 0, 0);
Wait(RandomRange(10000, 60000));
MMouse(RandomRange(100, 700), RandomRange(100, 700), RandomRange(100, 500), RandomRange(100, 500));
MMouse(Random(w), Random(h), 30, 30);
end;
end;
end;

function Siphon(UpText: TStringArray; Color, Tol: Integer; HMod, SMod: Extended): Boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i, x, y: Integer;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMod, SMod);
if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
begin
ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);
for i := 0 to High(ATPA) do
begin
if length(atpa[i]) < 50 then
begin
MMouse(x, y, RandomRange( - 2, 2), RandomRange( - 2, 2));
if WaitUpTextMulti(UpText, 1500) then
begin
case Random(2) of
0:
begin
ClickMouse2(True);
if (DidRedClick()) then
begin
Result := True;
Wait(RandomRange(28000, 32000));
if isSiphoning then
wait(RandomRange(20000, 40000));
Antiban;
Break;
end
else
begin
FindNormalRandoms;
Result := False;
end;
end;
1:
begin
ClickMouse2(False);
if WaitOption('ipho', 1500) then
begin
Result := True;
if isSiphoning then
wait(RandomRange(20000, 40000));
AntiBan;
Break;
end
else
begin
FindNormalRandoms;
AntiBan;
Result := False;
end;
end;
end;
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
proggy;
end;

procedure SetupArguments;
begin
case Lowercase(Players[currentplayer].Strings[0]) of
'air': Siphon(['iphon Air', 'hon Air', 'hon Air essling'], 11571554, 7, 3.47, 1.75);
'fire': Siphon(['iphon Fire', 'hon fire', 'hon Fire Essling'], 5401236, 7, 0.10, 0.75);
'earth': Siphon(['iphon earth', 'hon earth', 'hon earth Essling'], 6718649, 7, 0.09, 0.68);
'water': Siphon(['iphon Water', 'hon Water', 'hon Water Essling'], 5194866, 7, 0.10, 0.75);



'body': Siphon(['iphon body', 'body', 'hon body Esshound'], 7093602, 7, 2.40, 0.83);
'law': Siphon(['iphon law', 'hon law', 'hon law Esshound'], 16771982, 7, 0.68, 1.2);
'astral': Siphon(['iphon astral', 'hon astral', 'hon astral Esshound'], 13346751, 7, 1.07, 0.35);


'blood': Siphon(['iphon blood', 'hon blood', 'hon blood Esswraith'], 3826285, 7, 0.39, 0.93);
'soul': Siphon(['iphon soul', 'hon soul', 'hon soul esswraith'], 8026467, 7, 4.16, 0.24);
'death': Siphon(['iphon death', 'hon death', 'hon death Esswraith'], 7692132, 7, 1.69, 0.24);
end;
end;

begin
{$IFDEF SMART}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
DeclarePlayers;
SetupSRL;
Proggy;
mousespeed:= 25 + random (5);
if(not(Loggedin))then
begin
LoginPlayerToLob;
ChangeWorld(RandomWorld(True, False));
sleep(4000 + Random(3000));
Setangle(0);
end;
repeat
SetupArguments;
StartEXP := GetXPBarTotal;
FindNormalRandoms;
proggy;
until not LoggedIn;
end.


Here's the script, updated.

[XoL]

2012-12-17 23:34:15

I have seen you make strides towards improving; yes.
The script could use a little tweaking as stated above though, please keep continuing to help people and redeeming after that first incident :p

Justin

2012-12-17 23:36:12

Not going to write a whole review up on this as other members have pointed it out;

just wanted to know why you have unused procedures? eg: "FindRandoms" never used.


Version = '10.0A'; // Don't Touch.

NumbOfPlayers = 1; //Number of Players That You Will Be using.

StartPlayer = 0; //Start Which Player?

Forcenew = False; //Force a New Client When Starting or not?

Never used.

Also just a quick note on your antiban, 1/5 times it will say something into the text box ('Gahh.. so boring.'). Seeing as you are calling the antiban function often, won't that be showing up as bot-like activity? Just think on a larger scale, if lets say 5 people were to use your script on the same island?, wouldn't it look suspicious of all 5 people saying the same thing in a short period of time?

No SPS walking (I understand some scripts don't need walking but still nice to see, maybe a second script with some walking?)
No DDTMs (I highly vote on DDTMs as I know they can be a pain to make and get working after client reloads)
Minimal TPA\ATPA's, Would like to see some more (Maybe in another script if you feel like it?)

Activity is a bit low for my liking :|

I do believe in second chances but seeing as your past applications you were persistent in saying that the scripts in your applications where made by you even tho some of them induced reflection that was removed before you joined.

Going to hold my vote until closer to the closing date.


Best of luck.

Google

2012-12-17 23:41:42

I won't re-post everything everyone else said but here are a few things no one else mentioned. I won't go into full detail I' ll just post a few things.

The activity is decent which is a plus not so much for me but I'll settle on that.

You have a ton of un-needed begin ends, unnecessary waits and big code that can be simplified.

Also from everyone elses posts it seems you have alot of code which you were helped with and still applied with the script is a big no for me.

There is no walking in the script which is a requirement.

Where you set your DTM names in your calling procedure is incorrect it will still output a string of numbers. Ex. The following DTMs were not freed: [0, 1, 2, 3, 4, 5, 6].

The correct way would be:
procedure filldtms;
begin
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
setdtmname(air.dtm, 'air rune dtm');
end;

Which will output:
Successfully executed.
The following DTMs were not freed: [air rune]

Justin

2012-12-17 23:46:29

From: Google
I won't re-post everything everyone else said but here are a few things no one else mentioned. I won't go into full detail I' ll just post a few things.

The activity is decent which is a plus not so much for me but I'll settle on that.

You have a ton of un-needed begin ends, unnecessary waits and big code that can be simplified.

Also from everyone elses posts it seems you have alot of code which you were helped with and still applied with the script is a big no for me.

There is no walking in the script which is a requirement.

Where you set your DTM names in your calling procedure is incorrect it will still output a string of numbers. Ex. The following DTMs were not freed: [0, 1, 2, 3, 4, 5, 6].

The correct way would be:
procedure filldtms;
begin
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
setdtmname(air.dtm, 'air rune dtm');
end;

Which will output:
Successfully executed.
The following DTMs were not freed: [air rune]


I'm sorry, is walking a personal requirement or a SRL application requirement? I don't recall readying anything about walking

Google

2012-12-17 23:49:45

says it right here as a definite bud. @justin
http://villavu.com/forum/showthread.php?t=74195&highlight=srl+member

Edit: I will even quote his post if you dont want to click the link and read.


Definite:
Intrinsic documentation (is your script formatted properly [i.e. standards]? do you use suitable variable/method names?)
Use of TPAs (TPointArrays)
Custom object finding (that means using NO FindObj* or ACA, make up your own!)
Use of auto-colouring (NO ACA generated functions)
Walking (try not to use SPS, but instead try TPA walking/use RadialWalk)
Appropriate use of variable scope (i.e. local/global variables)
Loops (repeat..Until, while..do and for..to..do)
Arrays
Case statements
Randomisation (i.e. use Wait(200 + Random(300)) instead of just Wait(200))
Backups/fail safes (in case something goes wrong, do what?)
A most common fail-safe is to add if(not(LoggedIn)) then Exit;
Anti-randoms
A script greater than 300 lines

Vinyl Scratch

2012-12-17 23:51:04

Thanks, Justin. I didn't think about that. Would it be a god idea to put a case Random(x) of strings in the case?

Example:
case Random(2) of
0: begin
"hello";
end;
1: case Random(2) of
0: begin
"hello2";
end;
1: begin
"hello3";
end;
end;
end;


Edit: Google, you ninja'd me.

With the DTM thing, I'll fix that. I didn't know it would be a problem. I didn't make that part, either, Cynic Rus did.
I'll fix it right way.

Justin

2012-12-17 23:56:52

From: Google
says it right here as a definite bud. @justin
http://villavu.com/forum/showthread.php?t=74195&highlight=srl+member

Edit: I will even quote his post if you dont want to click the link and read.


Thanks for clearing that up Google, been awhile since I read that post!

@Preston: Personally, I would remove the talking all together as I just think its bot-like starting a conversation with people around you, they respond and then you don't say anything back for a few mins then you randomly say "Gahh.. so boring." again and repeat the above.

Vinyl Scratch

2012-12-18 00:02:41

Done, and done. I fixed the DTM problem, I think. I still have a little question on
Runes:=[Air, Water, Fire, Earth, Blood, Death];
this part. Do I take it out? Just want to make sure.

Google

2012-12-18 00:16:59

From: Vinyl Scratch
Done, and done. I fixed the DTM problem, I think. I still have a little question on
Runes:=[Air, Water, Fire, Earth, Blood, Death];
this part. Do I take it out? Just want to make sure.


Yes but to be completely honest I do not know what it does. Could you explain? And I held my vote.

Edit: Have you uploaded your changes?

CynicRus

2012-12-18 00:21:22

yes from me.

Vinyl Scratch

2012-12-18 00:45:12

I don't know what it does, either. Here's what I have:
program VinylRunespan;
{$DEFINE SMART}
{$i SRL/SRL.simba}

{$IFDEF SMART}
{$i SRL/SRL/misc/smartgraphics.Simba}
{$ENDIF}


const
Version = '10.0A'; // Don't Touch.

var
StartEXP:integer;
Exp, EXPH: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Your Username.
Pass := ''; // Your Password.
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
Strings[0] := ''; {Esslings: Air, Water, Fire, Earth.
Esshound: Body, Law, Cosmic, Nature.
Esswraith: Blood, Death, Soul.}
end;
end;

procedure FindRandoms;
begin
FindNormalRandoms;
Wait(300);
end;

procedure proggy;
var
i1, i2, i3, i4: string;
EXPGained: integer;
begin
SMART_ClearCanvas;
ClearDebug;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
i1:= 'Time Running:'+ TimeRunning;
i2:= 'You are using version:' + Version;
i3:= 'EXP Gained:'+inttostr(EXPGained);
i4:= 'EXP P/Hr:'+inttostr(EXPH);
writeln('You are using Version:' + Version;
Smart_DrawText(0, 0, StatChars, i2, ClGreen);
writeln('Time Running:'+ TimeRunning);
Smart_DrawText(0, 10, StatChars, i1, ClWhite);
writeln('EXP Gained:'+inttostr(EXPGained));
SMART_DrawText(0, 20, Statchars, i3, clwhite);
writeln('EXP P/Hr:'+inttostr(EXPH));
Smart_DrawText(0, 30, StatChars, i4, clwhite);
end;



//credit to CynicRus for this part.\\
type TRune = record
DTM: integer;
name: string;
end;

type TRuneArray = array of TRune;
var
Air, Water, Fire, Earth, Blood, Death: TRune;
Runes: TRuneArray;

Procedure FillDTMs;
begin
//intialise array
SetLength(Runes, 6);
//Air
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
SetDTMName(Air.DTM, 'airDTM');
//Water
Water.DTM:=DTMFromString('mAAEAAHic42FgYNjOzMCwjxlCbwDiVVC8Doi3AfEhID4KxMeA+CAQz2BkYOgF4i4g7gPi6UA8B4iXAfEKIF4KxHOBeAoQ9wOxfP0uoC1MDHzSCmAaGXt7eTCYmhgxqKmpMoiKijDwScoxkAoYScTIAAAswxQl');
SetDTMName(Water.DTM, 'waterDTM');
//Fire
Fire.DTM:=DTMFromString('m6wAAAHic42ZgYOBhYWAQBWJeIGYF4v/MEMwMZPMBsTgQSwOxFBDPYmRgmADE3UDcB8STgXgOEC8D4hVQei4QTwXib4ssgaYzgbGVpTkDn7QCQ3hoMENIcCBc3EBBgUFUVISBFMBIAkYCAFF0DuM=');
SetDTMName(Fire.DTM, 'fireDTM');
//Earth
Earth.DTM:=DTMFromString('mKgEAAHic42NgYHjEzMDwDIjfAvErIP4IxO+A+DUQPwHiO0B8DYivQPEtIH4AxCWMDAzpQJwHxNmMEH4NEDcBcQsQtwJxAxBXAnExVA1IfW+XI9BWJqKxrY0VlE0eYCQTowIA9/UVRg==');
SetDTMName(Earth.DTM, 'earthDTM');
//Blood rune
Blood.DTM:=DTMFromString('maQEAAHicE2RgYOhjZmCYDcRTgXgCEHcBcRsQ1wNxExA3QOlOqPwMIJ4C1TMHiOcC8SNGBoabQHwFiC9D8TUgvgvET4D4JRC/A+L3QPwRiN9A+S+h8g+A+JBmMgOftAIYMzAwwTGfpByDt5cHnB0ZHspgoKDA4ORgD8YgNkI95YCRChgDAAB+8x+l');
SetDTMName(Blood.DTM, 'bloodDTM');
//Death rune
Death.DTM:=DTMFromString('mqAEAAHicrc7fCwFBEAfw73Kl/Lg8nNx00b643Ju/Q1KiJH8kItJdKS8U/xPfXSMvHm/q0+7OzE4TAWgFQJvqFNCr+uPeDYooVgn1lFBX6zX9fzHAjrZ0oJP55G70oKe601VrBZ3pSHu10RlFnkMkRpYNsZjPEEof69WSm1e86WSMkbX+nqYDf7qeZkcQJtb79rp82WFK9i/eG8Abuw==');
SetDTMName(Death.DTM, 'deathDTM');
Runes:=[Air, Water, Fire, Earth, Blood, Death];
end;

procedure FreeRune(r: TRune);
begin
FreeDTM(r.DTM);
end;

procedure FreeDmt;
var
i: integer;
begin
for i:=0 to Length(runes) -1 do
begin
FreeRune(runes[i]);
end;
end;

function RunesCounter(RuneDTM: integer): Integer;
var
Count, x, y:Integer;
begin
If FindDTM(RuneDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Count := GetAmount(x, y);
Result:= Count;
end;
end;

procedure PrintRuneCount(const r: TRune; count: integer);
begin
WriteLn('You have'+#32+toStr(count)+#32+r.name+#32+'runes');
end;

function CheckInventory(): boolean;
var
i, x, y : integer;
begin
result:=false;
FillDTMs;
for i:=0 to Length(runes)-1 do
begin
If FindDTM(runes[i].DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
PrintRuneCount(runes[i],RunesCounter(runes[i].DTM));
result:=true;
end;
end;
FreeDmt;
end;
////////\\\\\\\\



function isSiphoning: Boolean;
var
SBox: TBox;
begin
SBox:= IntToBox(408, 336, 425, 292);
SMART_DrawBoxEx(false, false, SBox, CLBlue);
Result:= (AveragePixelShift(SBox, 300, 700) > 2000);
end;

procedure antiban;
var
w, h: integer;
begin
case Random(3) of
0: begin
GetClientDimensions(w, h);
MMouse(Random(w), Random(h), 0, 0);
end;
1: begin
MMouse(300, 0, 0, 0);
Wait(RandomRange(30000, 50000));
end;
2: begin
MMouse(RandomRange(500, 600), 0, 0, 0);
Wait(RandomRange(10000, 60000));
MMouse(RandomRange(100, 700), RandomRange(100, 700), RandomRange(100, 500), RandomRange(100, 500));
MMouse(Random(w), Random(h), 30, 30);
end;
end;
end;

function Siphon(UpText: TStringArray; Color, Tol: Integer; HMod, SMod: Extended): Boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i, x, y: Integer;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMod, SMod);
if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
begin
ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);
for i := 0 to High(ATPA) do
begin
if length(atpa[i]) < 50 then
begin
MMouse(x, y, RandomRange( - 2, 2), RandomRange( - 2, 2));
if WaitUpTextMulti(UpText, 1500) then
begin
case Random(2) of
0:
begin
ClickMouse2(True);
if (DidRedClick()) then
begin
Result := True;
Wait(RandomRange(28000, 32000));
if isSiphoning then
wait(RandomRange(20000, 40000));
Antiban;
Break;
end
else
begin
FindNormalRandoms;
Result := False;
end;
end;
1:
begin
ClickMouse2(False);
if WaitOption('ipho', 1500) then
begin
Result := True;
if isSiphoning then
wait(RandomRange(20000, 40000));
AntiBan;
Break;
end
else
begin
FindNormalRandoms;
AntiBan;
Result := False;
end;
end;
end;
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
proggy;
end;

procedure SetupArguments;
begin
case Lowercase(Players[currentplayer].Strings[0]) of
'air': Siphon(['iphon Air', 'hon Air', 'hon Air essling'], 11571554, 7, 3.47, 1.75);
'fire': Siphon(['iphon Fire', 'hon fire', 'hon Fire Essling'], 5401236, 7, 0.10, 0.75);
'earth': Siphon(['iphon earth', 'hon earth', 'hon earth Essling'], 6718649, 7, 0.09, 0.68);
'water': Siphon(['iphon Water', 'hon Water', 'hon Water Essling'], 5194866, 7, 0.10, 0.75);

'body': Siphon(['iphon body', 'body', 'hon body Esshound'], 7093602, 7, 2.40, 0.83);
'law': Siphon(['iphon law', 'hon law', 'hon law Esshound'], 16771982, 7, 0.68, 1.2);
'astral': Siphon(['iphon astral', 'hon astral', 'hon astral Esshound'], 13346751, 7, 1.07, 0.35);

'blood': Siphon(['iphon blood', 'hon blood', 'hon blood Esswraith'], 3826285, 7, 0.39, 0.93);
'soul': Siphon(['iphon soul', 'hon soul', 'hon soul esswraith'], 8026467, 7, 4.16, 0.24);
'death': Siphon(['iphon death', 'hon death', 'hon death Esswraith'], 7692132, 7, 1.69, 0.24);
end;
end;

begin
{$IFDEF SMART}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
DeclarePlayers;
SetupSRL;
Proggy;
mousespeed:= 25 + random (5);
if(not(Loggedin))then
begin
LoginPlayerToLob;
ChangeWorld(RandomWorld(True, False));
sleep(4000 + Random(3000));
Setangle(0);
end;
repeat
SetupArguments;
StartEXP := GetXPBarTotal;
FindNormalRandoms;
proggy;
until not LoggedIn;
end.

Sorry if I didn't make all of the changes, I was in the shower.

Leave CnC, please, I'll look at it in the mourning. I've got school tomorrow.

Thanks to you all for the advice.

Sin

2012-12-18 00:45:21

He set the runes into an Integer array to free them all at once.

P1ng

2012-12-18 02:01:46

You've taken big steps forward. Granted the script is not perfect but I think pretty much all the issues have been pointed out already. You are clearly much more mature than when you first gave SRL members a crack.

I see that you are active, helpful and more than happy to learn. Keep at it. Yes from me

xtrapsp

2012-12-18 04:36:32

Voted No.

Not for hatred etc, I have my own personal reasons, I'm more than happy to explain on Skype

Vinyl Scratch

2012-12-18 05:57:54

Ok, I'll ask you about it on Skype.

Thanks, P1ng!

Thanks, Shay. I didn't know that.

BraK

2012-12-18 08:40:25

BraK votes yes to tie it up at 7 v 7

WT-Fakawi

2012-12-18 10:18:16

Yes.

Vinyl Scratch

2012-12-18 10:21:39

Thank you, Brak, Wt-Fakawi.

Mat

2012-12-18 17:13:04

I though I'd say my peace.
for me:
-To Basic
-No walking from what I can see and in runespan you need it.
-Massive static waits one for 30 seconds, which could look bot like as it would do it often.

Needs more work.
Mat

Vinyl Scratch

2012-12-18 17:20:46

I don't see a static wait anywhere in my scripts.
I'll add walking soon.

I'll work on my scripting skills, thanks for you input, Mat.

Google

2012-12-18 17:32:43

From: Vinyl Scratch
I don't see a static wait anywhere in my scripts.
I'll add walking soon.

I'll work on my scripting skills, thanks for you input, Mat.


 if (DidRedClick()) then
begin
Result := True;
Wait(RandomRange(28000, 32000));
if isSiphoning then
wait(RandomRange(20000, 40000));
Antiban;
Break;
end

Here, I also voted no doesn't meet the demands, also the whole mostly written code by other people bothers me. I would like to see your own personal work without others writing chunks of code for you.

Vinyl Scratch

2012-12-18 18:13:36

Thanks, Google. I've made the changes, plus some that I didn't see before. I'll show you:

Here's the updated script:

program VinylRunespan;
{$DEFINE SMART}
{$i SRL/SRL.simba}

{$IFDEF SMART}
{$i SRL/SRL/misc/smartgraphics.Simba}
{$ENDIF}


const
Version = '10.0A'; // Don't Touch.
Member = True; //True if you are, false if not.

var
StartEXP:integer;
Exp, EXPH: Integer;

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Your Username.
Pass := ''; // Your Password.
BoxRewards := ['XP','xp','lamp'];
LampSkill := Skill_Runecrafting;
Active := True;
Strings[0] := 'air'; {Esslings: air, water, fire, earth.
Esshound: body, law, cosmic, nature.
Esswraith: blood, death, soul.}
end;
end;

procedure FindRandoms;
begin
FindNormalRandoms;
Wait(300);
end;

procedure proggy;
var
i1, i2, i3, i4: string;
EXPGained: integer;
begin
SMART_ClearCanvas;
ClearDebug;
EXP:= GetXPBar(1);
EXPGained:= (EXP - StartEXP);
EXPH:= Round((3600*EXPGained)/(GetTimeRunning/1000));
i1:= 'Time Running:'+ TimeRunning;
i2:= 'You are using version:' + Version;
i3:= 'EXP Gained:'+inttostr(EXPGained);
i4:= 'EXP P/Hr:'+inttostr(EXPH);
writeln('You are using Version:' + Version);
Smart_DrawText(0, 0, StatChars, i2, ClGreen);
writeln('Time Running:'+ TimeRunning);
Smart_DrawText(0, 10, StatChars, i1, ClWhite);
writeln('EXP Gained:'+inttostr(EXPGained));
SMART_DrawText(0, 20, Statchars, i3, clwhite);
writeln('EXP P/Hr:'+inttostr(EXPH));
Smart_DrawText(0, 30, StatChars, i4, clwhite);
end;


{//credit to CynicRus for this part.\\
type TRune = record
DTM: integer;
name: string;
end;

type TRuneArray = array of TRune;
var
Air, Water, Fire, Earth, Blood, Death: TRune;
Runes: TRuneArray;

Procedure FillDTMs;
begin
//intialise array
SetLength(Runes, 6);
//Air
Air.DTM:= DTMFromString('m1gAAAHic42JgYNjJzMCwB4i3APFqIF4FxOuAeDcQHwHi40B8EIhLGRkY0qE4G4jLgLgJiFuAuA6Ii4A4B4hv3rwJNJUJihmR2OiYOMBIJEYAAIiCDpI=');
SetDTMName(Air.DTM, 'airDTM');
//Water
Water.DTM:=DTMFromString('mAAEAAHic42FgYNjOzMCwjxlCbwDiVVC8Doi3AfEhID4KxMeA+CAQz2BkYOgF4i4g7gPi6UA8B4iXAfEKIF4KxHOBeAoQ9wOxfP0uoC1MDHzSCmAaGXt7eTCYmhgxqKmpMoiKijDwScoxkAoYScTIAAAswxQl');
SetDTMName(Water.DTM, 'waterDTM');
//Fire
Fire.DTM:=DTMFromString('m6wAAAHic42ZgYOBhYWAQBWJeIGYF4v/MEMwMZPMBsTgQSwOxFBDPYmRgmADE3UDcB8STgXgOEC8D4hVQei4QTwXib4ssgaYzgbGVpTkDn7QCQ3hoMENIcCBc3EBBgUFUVISBFMBIAkYCAFF0DuM=');
SetDTMName(Fire.DTM, 'fireDTM');
//Earth
Earth.DTM:=DTMFromString('mKgEAAHic42NgYHjEzMDwDIjfAvErIP4IxO+A+DUQPwHiO0B8DYivQPEtIH4AxCWMDAzpQJwHxNmMEH4NEDcBcQsQtwJxAxBXAnExVA1IfW+XI9BWJqKxrY0VlE0eYCQTowIA9/UVRg==');
SetDTMName(Earth.DTM, 'earthDTM');
//Blood rune
Blood.DTM:=DTMFromString('maQEAAHicE2RgYOhjZmCYDcRTgXgCEHcBcRsQ1wNxExA3QOlOqPwMIJ4C1TMHiOcC8SNGBoabQHwFiC9D8TUgvgvET4D4JRC/A+L3QPwRiN9A+S+h8g+A+JBmMgOftAIYMzAwwTGfpByDt5cHnB0ZHspgoKDA4ORgD8YgNkI95YCRChgDAAB+8x+l');
SetDTMName(Blood.DTM, 'bloodDTM');
//Death rune
Death.DTM:=DTMFromString('mqAEAAHicrc7fCwFBEAfw73Kl/Lg8nNx00b643Ju/Q1KiJH8kItJdKS8U/xPfXSMvHm/q0+7OzE4TAWgFQJvqFNCr+uPeDYooVgn1lFBX6zX9fzHAjrZ0oJP55G70oKe601VrBZ3pSHu10RlFnkMkRpYNsZjPEEof69WSm1e86WSMkbX+nqYDf7qeZkcQJtb79rp82WFK9i/eG8Abuw==');
SetDTMName(Death.DTM, 'deathDTM');
Runes:=[Air, Water, Fire, Earth, Blood, Death];
end;

procedure FreeRune(r: TRune);
begin
FreeDTM(r.DTM);
end;

procedure FreeDmt;
var
i: integer;
begin
for i:=0 to Length(runes) -1 do
begin
FreeRune(runes[i]);
end;
end;

function RunesCounter(RuneDTM: integer): Integer;
var
Count, x, y:Integer;
begin
If FindDTM(RuneDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Count := GetAmount(x, y);
Result:= Count;
end;
end;

procedure PrintRuneCount(const r: TRune; count: integer);
begin
WriteLn('You have'+#32+toStr(count)+#32+r.name+#32+'runes');
end;

function CheckInventory(): boolean;
var
i, x, y : integer;
begin
result:=false;
FillDTMs;
for i:=0 to Length(runes)-1 do
begin
If FindDTM(runes[i].DTM, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
PrintRuneCount(runes[i],RunesCounter(runes[i].DTM));
result:=true;
end;
end;
FreeDmt;
end;
////////\\\\\\\\}



function isSiphoning: Boolean;
var
SBox: TBox;
begin
SBox:= IntToBox(408, 336, 425, 292);
SMART_DrawBoxEx(false, false, SBox, CLBlue);
Result:= (AveragePixelShift(SBox, 300, 700) > 2000);
end;

procedure antiban;
var
w, h: integer;
begin
case Random(3) of
0: begin
GetClientDimensions(w, h);
MMouse(Random(w), Random(h), 0, 0);
end;
1: begin
MMouse(300, 0, 0, 0);
Wait(RandomRange(30000, 50000));
end;
2: begin
MMouse(RandomRange(500, 600), 0, 0, 0);
Wait(RandomRange(10000, 60000));
MMouse(RandomRange(100, 700), RandomRange(100, 700), RandomRange(100, 500), RandomRange(100, 500));
MMouse(Random(w), Random(h), 30, 30);
end;
end;
end;

function Siphon(UpText: TStringArray; Color, Tol: Integer; HMod, SMod: Extended): Boolean;
var
TPA: TPointArray;
ATPA: T2DPointArray;
CTS, i, x, y: Integer;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(HMod, SMod);
if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
begin
ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);
for i := 0 to High(ATPA) do
begin
if length(atpa[i]) < 50 then
begin
MMouse(x, y, RandomRange( - 2, 2), RandomRange( - 2, 2));
if WaitUpTextMulti(UpText, 1500) then
begin
case Random(2) of
0:
begin
ClickMouse2(True);
if (DidRedClick) then
begin
Result := True;
if isSiphoning then
wait(RandomRange(20000, 50000));
Antiban;
Break;
end
else
begin
FindNormalRandoms;
Result := False;
end;
end;
1:
begin
ClickMouse2(False);
if WaitOption('ipho', 1500) then
begin
Result := True;
if isSiphoning then
wait(RandomRange(20000, 50000));
AntiBan;
Break;
end
else
begin
FindNormalRandoms;
AntiBan;
Result := False;
end;
end;
end;
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
proggy;
end;

procedure SetupArguments;
begin
case Lowercase(Players[currentplayer].Strings[0]) of
'air': Siphon(['iphon Air', 'hon Air', 'hon Air essling'], 11571554, 7, 3.47, 1.75);
'fire': Siphon(['iphon Fire', 'hon fire', 'hon Fire Essling'], 5401236, 7, 0.10, 0.75);
'earth': Siphon(['iphon earth', 'hon earth', 'hon earth Essling'], 6718649, 7, 0.09, 0.68);
'water': Siphon(['iphon Water', 'hon Water', 'hon Water Essling'], 5194866, 7, 0.10, 0.75);

'body': Siphon(['iphon body', 'body', 'hon body Esshound'], 7093602, 7, 2.40, 0.83);
'law': Siphon(['iphon law', 'hon law', 'hon law Esshound'], 16771982, 7, 0.68, 1.2);
'astral': Siphon(['iphon astral', 'hon astral', 'hon astral Esshound'], 13346751, 7, 1.07, 0.35);

'blood': Siphon(['iphon blood', 'hon blood', 'hon blood Esswraith'], 3826285, 7, 0.39, 0.93);
'soul': Siphon(['iphon soul', 'hon soul', 'hon soul esswraith'], 8026467, 7, 4.16, 0.24);
'death': Siphon(['iphon death', 'hon death', 'hon death Esswraith'], 7692132, 7, 1.69, 0.24);
end;
end;

begin
{$IFDEF SMART}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
DeclarePlayers;
SetupSRL;
Proggy;
mousespeed:= 25 + random (5);
if(not(Loggedin))then
begin
LoginPlayerToLob;
ChangeWorld(RandomWorld(Member, False));
sleep(4000 + Random(3000));
Setangle(0);
end;
repeat
SetupArguments;
StartEXP := GetXPBarTotal;
FindNormalRandoms;
proggy;
until not LoggedIn;
end.

What I did si I noticed every time I tried to log in (on my non-members account) it would try and got on a members world, so I'd have to log into the world myself. Well, I never put much thought into it until now, and I added a const, 'Members' as a boolean, and changes the Changeworld();

From:
ChangeWorld(RandomWorld(True, False));

To:
ChangeWorld(RandomWorld(Member, False));

I also took out the unneeded waits, I forgot to take those out earlier.

And, I commented out Cynic's code, to show that the majority of the script is mine. >.<

I'm going to add TPA walking, then Radial walking as a failsafe, if it's a good idea.

Justin

2012-12-18 18:53:55

What is the logic problem with your mainloop?

E: Just looked at the most 'updated' script. Its even more unfinished as the original post. No rune ess support (collecting), so if you run out of rune ess, the script will still try to siphon NPCs… No failsafes….

Has scripting quality to become a SRL member been dramatically reduced?

NKN

2012-12-18 19:11:08

The script is utterly broken.

His TPA function, he calls x,y, never even declares them. Hovers at 0,0.

Seriously… and he's getting IN? Check your votes guys.

Olly

2012-12-18 19:14:49

First off, I was going to say how I do like to see some progress reports of the script and there was none, so I was going to run the script to try and get a decent one for you..

I actually tested this and found that it doesn't function, as you can see from the code below x/y are never given values such as middletpaex(tpa, x, y). The mouse just hovers with +2/-2 randomness around 0,0.


if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
begin
ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);
for i := 0 to High(ATPA) do
begin
if length(atpa[i]) < 50 then
begin
MMouse(x, y, RandomRange( - 2, 2), RandomRange( - 2, 2));
if WaitUpTextMulti(UpText, 1500) then

At least test the script before applying… and if you can get SRL members with a script that doesn't function something wrong? :s

I prehaps shouldn't be commenting since I did get members today but I was testing the script and came across this

(NKN I tell you and within 10 seconds you post! :p)

NKN

2012-12-18 19:26:36

From: Ollybest




ATPA := SplitTPA(TPA, 30);
SortATPASize(ATPA,True);

begin


That 30 split size… what does that even accomplish?

Vinyl Scratch

2012-12-18 19:27:42

You guys are right. I didn't even notice that, I'm sorry. I'll fix it next time.

I should pay more attention. Ah, Oh well. I'll be better next time.

Edit: NKN, the 30 split size was when I was doing SplitTPAEx(TPA, 15, 15) and I can't remember whom, but somone recommended a better way of doing things, which was SortATPA(TPA, 30)


@Olly, I assign the x and y in
 if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
I might be wrong about this, I'll look it up.

Olly

2012-12-18 19:30:21

From: NKN
That 30 split size… what does that even accomplish?


Well it does something, But in area such as runespan where there are lots of players/creatures that could cause problems :p

Edit: @Vinyl Have you even tested the script?

Vinyl Scratch

2012-12-18 20:10:56

Not really, tbh. I need to. I'll be better next time.

I also lowered it to 15, that should be better.

NKN

2012-12-18 20:16:52

From: Vinyl Scratch
You guys are right. I didn't even notice that, I'm sorry. I'll fix it next time.

I should pay more attention. Ah, Oh well. I'll be better next time.

Edit: NKN, the 30 split size was when I was doing SplitTPAEx(TPA, 15, 15) and I can't remember whom, but somone recommended a better way of doing things, which was SortATPA(TPA, 30)


@Olly, I assign the x and y in
 if FindColorsSpiralTolerance(x, y, TPA, Color, MSX1, MSY1, MSX2, MSY2, Tol) then
I might be wrong about this, I'll look it up.

Yeah.. it's not assigning x and y.
It's assigning TPA, it uses X and Y to start the search. You can check if it's writing back, by when the little pop up appears when you first start typing it(The thing that tells you what the parameters are) If it has var infront of it, it'll return something to it, else it stays the same as it was.


Edit: 15 is still big.. I'd use like, 3or 4 for Runespan. Sort the ATPA's by biggest, and illiterate through them, deleting them if they're faulty.

Google

2012-12-18 20:18:53

From: NKN
The script is utterly broken.

His TPA function, he calls x,y, never even declares them. Hovers at 0,0.

Seriously… and he's getting IN? Check your votes guys.


This is what I have been thinking and it bothers me to see admins + vote yes. No one even checks if it compiles and runs anymore. Even the logic is off. Personally I keep my hold off from voting because everyone standards have gotten so low accepting new members its not even worth voting.

Vinyl Scratch

2012-12-18 20:45:34

You're right, Google. I'll work on this script, and I'll make a new one to post in my next app.

Sin

2012-12-18 20:57:52

Then again, nowadays you don't even need to learn how too script to get members -__-

Mat

2012-12-19 02:06:38

No Static waits?
Mat

P1ng

2012-12-19 02:11:11

By static waits they mean it doesn't check for anything to determine when it's done, it will just blindly wait for a certain(or random) period of time.

as opposed to:

if IsSiphoning then
Wait(RandomRange(20000, 50000));

something like this would be better:


MarkTime(T);
while IsSiphoning do
begin
Wait(RandomRange(250, 500));
if TimeFromMark(T) > RandomRange(20000, 50000) then
Break;
end;

Mat

2012-12-19 02:42:34

P1ng I would class them as static waits as if checks something and goes ow I'm Siphoning, for all the bot knows you've still doing yet you've already finished and you wait for 40 seconds..
Mat

John

2012-12-19 05:39:37

From: Google
This is what I have been thinking and it bothers me to see admins + vote yes. No one even checks if it compiles and runs anymore. Even the logic is off. Personally I keep my hold off from voting because everyone standards have gotten so low accepting new members its not even worth voting.


He obviously can script, maybe not as good as others, but he can. I voted yes because of community activity and because I know he will do better where he can and when he can.

Vinyl Scratch

2012-12-19 09:03:26

From: P1ng
By static waits they mean it doesn't check for anything to determine when it's done, it will just blindly wait for a certain(or random) period of time.

as opposed to:

if IsSiphoning then
Wait(RandomRange(20000, 50000));

something like this would be better:


MarkTime(T);
while IsSiphoning do
begin
Wait(RandomRange(250, 500));
if TimeFromMark(T) > RandomRange(20000, 50000) then
Break;
end;



Oh, I see. I'll fix that now. I didn't know that that was a static wait, too.



From: Mat
P1ng I would class them as static waits as if checks something and goes ow I'm Siphoning, for all the bot knows you've still doing yet you've already finished and you wait for 40 seconds..
Mat


I see. I'll take your guys' advice, and fix my script.


From: John
He obviously can script, maybe not as good as others, but he can. I voted yes because of community activity and because I know he will do better where he can and when he can.


Thanks, John.

Justin

2012-12-19 21:59:53

Check previous posts for reason:


E: No hard feeling Preston. Keep up the work and try to make some more complex scripts in the future (if you do decide to apply again), things might change :)

Nebula

2012-12-19 22:08:38


Sorry, though. Good try.

Gucci

2012-12-19 22:42:59

No from me, the script is just far too simple, messy and just looks lazily put together. Also the more difficult things were created by someone else. You should look into walking like Mat said, try not to rely on static waits as much and clean up the code.

Vinyl Scratch

2012-12-20 22:50:35

Alright, thanks, guys. I'll work on my skills, and may apply again.

BraK

2012-12-28 00:40:59

Closed. You can try again in 2 weeks,

Please put more effort into the next application.