SRL Archive - Archive

Nemesis3X - SRL Member Application


Nemesis3X

2012-03-19 14:19:56

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


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?



What is your general programming knowledge?
Java


Are you a member of any other communities?
No


Tell us about yourself…
From: Nemesis3X
Hello everyone, this is my 2nd application for SRL membership Statue. As I already did a resume of who I am before, I am going to do a brief return on what I have said in my first application.

If you didn’t know, my name is Marc-André Gagné, I live in Canada and I am 19 years old. I live in the province of Quebec, so English isn’t my first language, but I did evolve in the gaming community for more than 10 years(but I did started to play on computer at the age of 4 years old! I even remember my first ever game played, Adibou :-)), so I learned mainly English from interactions I had with other people and my courses at school. Actually, I am in college and I will go to university in 2 years when I am done with college!

Why I am applying for SRL Member? Well, the answer is pretty much easy, I want the community to recognize I am a good scripter and they can believe in my scripting skill while using one of my scripts. As many of you know, when I am trying a script from Registered User like me, I always try the script first to see how it is going and then I go through all the code to see what could be done better before using it for real on extended period of time. As, I don’t want to come back one hour later and discover myself, stuck in a corner mass clicking on the screen for no reason…

For me, this statue mean people will even more believe me when I try to help other, as I am often reading the Help section and giving tips to people or sending a PM to tell them how to do it with a piece of code. I was even surprise when I did received a message from someone asking how to make correctly a good DTM for walking near the bank at castle wars and I want to help this community. So, this statue will not just give credit to my scripting skill, but also give credit to explication I give to people when I help them because they know that if I am a member, it is surely because I know what I am doing! And I know what I am doing!

So, I guess we are pretty much at the point where I will talk which script I chosen to show. I could have use my Abyss Script like some Thought when I first made my Thread about the development of this script, but It isn’t done yet, as there are some bugs I need to fix (I am in the beta testing phase with 3 awesome people that is testing my Script and do give some constructive feedback and where did it mess up sometime, so I can fix it and try with a newer version to see if there are still some problems!)So, I am going to apply with this same script I used one month Ago. I got a copy of this very old version I posted on my first application! But, maybe some did already use my Ectunfuntus Script and know the Code, but if your last memory of this Script is back from when I posted in my application. What to say else than, you won’t recognize it since I edited it, so much! To the point where I got many people using it right now :-)


Let’s the fun begin!



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


const
//SRL 5
SRLStats_Username = '';
SRLStats_Password = '';
//Set Break Value
TimePlaying = 120; // Enter the time You want to Play before taking a Break
TimeBreaking = 30; //Enter How long you want to Break
RangeTimePLaying = 30; //Enter the Variation you want for Play time
RangeTimeBreaking = 10; //Enter the Variation you want for Break Time
// Set the Value here
WayOfBanking = '1'; // 0 = Edge with Glory/ 1 = Castle Wars with Emerald Ring
WearArmors = '0'; // 0 = no mean Cape and Glory, 1 = Yes Armor mean Helm/Wep/Shield/Body and Legs
TypeOfBones = '1'; // 0 = Dragon Bones/ 1 = Big bones/2 = Infernal Ashes/3 = BabyDragon bone

Var
Path: Array[0..12] of Integer;
WalkToTresor: Array[0..2] of Integer;
FailSafe: Array[0..2] of integer;
aFound, xFound : Extended;
x, y, EctoT, CloseTrap2, OpenTrap, Pray, Tokens, BabyDragon, Stairuse: Integer;
AntiStuck, PrayerXPGain,PrayerXPGainC, BonesWorkshiped, NumberTrips, EctoT2 : integer;
BreakRounds, TotalBreaks, Bonemeal, BucketSlime, Charge : integer;
GloryChecking, tokenss, BoneDTM, EmeraldRing, CommitTime : integer;
Glory2, Dbones, Glory3, Glory4, Bucket, Stuck, WayToTeleport, PixelShiftss, Stair : integer;
Bucket2, BigBones, InfernalAsh, XpPerTrip, BonesPerRun : integer;
KindOfBones : String;

{
*************************************************************************
** Nemesis3X Ectofuntus **
*************************************************************************
** SETUP **
*************************************************************************
** Read The Setup I have wrote on the forum or you will never be able **
** to get this script going in the right direction **
** Thanks and have a Nice botting session **
*************************************************************************
}

procedure DeclarePlayers;
begin
HowManyPlayers := 1;

NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['oins', 'ins', 'oin', 'oins'];
end;

Procedure LoadVariables;
begin
// Set the number of charged used on your Actual glory
Charge := 1; //Example Glory(3), you would change the 0 for a 1.
//DTMS
//Items
EctoT := DTMFromString('mggAAAHicY2NgYAhhYmAIBeJAIA4D4nAo+x0jA8M9IH4FxR+A+CMQ+/cnMETFRzEETEli8GuJZvDrimPwm5bIIAk0CxtmxIEhAADoDg9t');
EctoT2 := DTMFromString('mWAAAAHicY2FgYAhlYmAIAeJAIA4C4neMDAz3gPgtEH8GYu/2aAY7RzsG3/5YBh8gFgHqQcaMaBgEABoKCbg=');
Bucket := DTMFromString('mQwAAAHicY2ZgYOhgYmBoB+I+IJZkZGBQgWIvS3GGykQzhupkMwZ2oDoYZkTCQAAA0b8E4Q==');
Dbones := DTMFromString('mQwAAAHicY2ZgYJBnZGCQAWIlIF4ExIuBeCEQN1RXMUzq6WFoa2hgYAeqg2FGJAwEABCwBwo=');
InfernalAsh := DTMFromString('mbQAAAHicY2VgYKhlZWCoA+JWIK4B4nIg3snIwLAJiLcB8T4g3gXEfOxsDMJcHHAahNmB+tExIxYMBgA5fQb9');
BigBones := DTMFromString('mbQAAAHicY2VgYFjFysCwAIiXAvEGIF4PxNsZGRh2A/E2IN4CxPuAeFp/P0NWWhrD0nnzGFYsXMiweO4cBnagfnTMiAWDAQBELg/F');
Bucket2 := DTMFromString('mbQAAAHicY2VgYDjLxMBwBohPAvEFIL4MxGsZGRjmAfFSIF4OxKuBuCLBlMHbUpwhLUiXoSTWmKEs3oSBE6gfHTNiwWAAAJCXDCg=');
BabyDragon:= DTMFromString('mbQAAAHicY2VgYAgEYg8gDodiEP8GEN+C0veB+DIQlxTkM2SkpDDkZGQw1JSXM8yeMoWBHyiOjhmxYDAAAG20DRY=');
EmeraldRing := DTMFromString('mWAAAAHicY2FgYDjJxMCwF4iPAvEpIE4H4gIgLgXifCAWnSbBcH6TLMPKiRIMz44pMNgA9SBjRjQMAgBxmQtY');
CloseTrap2 := DTMFromString('mbQAAAHicY2VgYHjCyMDwEYi/AfEXIL4PxFVA3A3ETUBcDsWGnoYYmB2oHx0zYsFgAABEFgqi');
Stair := DTMFromString('mggAAAHicY2NgYPgMxLeB+DkQfwPiv0D8BYiboLgaiMuAuBmIJwCxlKoAg6gcL4OEIj+DrIYgGIPY7EA5bJgRB4YAACORCqY=');
//Walking Paths
Path[12] := DTMFromString('mFQEAAHic42VgYHBjYmDwAuIkIK4E4jooXQzEaUAcDMTuQFyKhHOA+qKA2ANKZwJxHRD3AvFsIO6B8nOBuAKI04HYx8uBISrCB4wdHczBfJgYiA/CIPaHLz/gOACoj1TMSAZGAQBYciB8');
Path[11] := DTMFromString('mKgEAAHic42NgYEhjYmBIAeJsIC4B4kYg7gfiKUA8A4inA/FEIG4D4jogzmOC6ClkZGBIB+JoIPYHYh8gDgbiGCAuAOJGIO4A4klAPAeI+4C4DqTO3YUhKjQAAzvZWoPlYPIwPowdAHQrOZiRTIwKANRbHj8=');
Path[9]:= DTMFromString('mwQAAAHic42RgYNjPxsCwCIj3APEDIH4DxAeBeD0QbwDi60Bsz8jAoAfEqkBsDMShQJwPxJFA7AHE4UDs6mbF4OdlzpCQHs7g7Q2hTWx0GBwdzRhcnO0YfHwdGfiB9hHCjERgOAAAQhIRyg==');
Path[5] := DTMFromString('mVAEAAHicpc0xC0FRAMXx816JRdmwGQyv90rdnpHL9WJgk97GSlaLRSkTX8DgU1hk96WM/t1ksL5Tv852Tk3SPZQO2OOIM664fPuBF564YYcN1jghDiSDBC3U0cAQOaZIEaKEKtoo483/eDZS3ql4bmK9QeZks56MNeq6VKvt8me+MOpnkaI48ZpsFBEU9J8PBZ8aGw==');
Path[6] := DTMFromString('m1gAAAHic42JgYMhlYmAoA+JOIJ4PxFOAuAWIC4G4FIgnAvEMIPZhZGAwBWItIPYD4lwgrgXiZCBOAmJjIA4BYjcvF4aQiAAGGwdrOBtEg/jvPn0F48+//jAYAe0mBjMSiREAAGFoGP0=');
Path[0] := DTMFromString('mKgEAAHic42NgYMhgYmDIBOICIK4A4hYgngrEC4F4DhC3AnE5VE0bEHcA8XIgFmFkYGAD4p9AM94D8Tsg/grEXEAxTSC2BGITIFYBYk8g/gKUEwbSPq72DFHB3ijYydoMjJHZIPz31Vc4lgTqJwczkolRAQB7PyB9');
Path[3] := DTMFromString('mrAAAAHic42BgYDjIxMCwCYiPAfFdIH4KxM+BeA8QPwBif0YGBmcgVoNiByA2AGIdRoicv58bQ5QOO5h2drIG08iYC2gHPsxIAMMAADATD18=');
Path[4] := DTMFromString('mrAAAAHic42BgYGhmYmDIBeJaIJ4GxGuBeBMQ9wFxGRB/B6r5CcS3gfguEH8DYgZGBgZRIFYBYlsHewZvfwcGV19zhqT8JAYPX1cGFjZ2BjNrSwYbVwsGfqByfJiRAIYBAEqKD7k='); //Se rendre à l'escalier 3
Path[2] := DTMFromString('mlwAAAHicY2dgYLjKxMBwEIjvA/FLIGZiZmD4BaSvA3EZEFcBcRwUtwPxTCCeB8ROLpYMru6mDDbuegyJ2dEMzFAxF3drBn6gubgwIx4MBQDP+A4S');
Path[1] := DTMFromString('mrAAAAHic42BgYHjBxMBwCYj/APF9INZhZmAQB+JnQDYjkPZmZGDwB2IDIDYG4nwonQLEWUBsY2HG4OpuyJCaGcPg52UFpkHY1ckKjPmBduDDjAQwDAAAxPEPCQ==');
Path[8] := DTMFromString('mlwAAAHicY2dgYFjLxMCwDIi3APFxIJ4JxEuAeD4QmzMyMAQCcSoQawOxIRBrAHEyEId6uzCkRQcxhIYEM3h7qjH4B2oyBLg7MhgnSDLwA83FhRnxYCgAADdCDQU=');
Path[7] := DTMFromString('mwQAAAHic42RgYFjHxMCwDIgnA/FmIL4CxNuBeBoQrwTio0Ccy8jAkAHEeUC8EIgTgTgQiLuAuBuIO4DY38+ZITbSl8HVX43BPywITHtA2YmxAQyOLkoM/ED7CGFGIjAcAACmuxLI');
WalkToTresor[0] := DTMFromString('m1gAAAHic42JgYFjKxsAwB4h7gXgDEO8H4kNQvASIT0DxO6Dab0D8EIhvAvEzIGZiZGCQAWJZIOYH4o9AsYSEOIacHFUGF1MJhmgPBYasrAw4Bsml9xmAMT9QLTGYkUiMAACiBhgq');
WalkToTresor[1] := DTMFromString('maQEAAHicrc8xCwEBAIbhj12RQQb8gMtqkVxiw26iI3Rdl4mOpESKgRRSYjT6Cfw0b9dlMfLVM33TG5O0DEtj3AJXHLFFGy1YsLHHGXc88MQLuZDkwkENBjKIoo4q7ODfYIIZGijDxHDg+Jyu9dGspLRan+T0LJUKedWKCZnZuIx0RHNvpMXU0+Ww87n9jpL0/Cr0B197AyctJNA=');
WalkToTresor[2] := DTMFromString('mKgEAAHic42NgYFjOxMAwG4j3QPFJJLwCiFuhuB6IG4G4CYjXAbEAIwODFxB7ADEfEAsCsSEQuwFxOBDrArEmEKsBsT4QBwHxd6B9hXkZDNkZyQzpKfFg/Pb5NziuLS9hyExPZHCwtYSLNXdOBmMNoF5yMCOZGBUAAIafKEA=');
Path[10] := DTMFromString('mFQEAAHic42VgYJjKxMDQD8RLgHgbEO8C4u1AvA/KXwDEq4F4BhB3A3EzEKcyMjBEM0LoZCB2A2ILIPYC4lAgNgdiEyA2BmJLIA4Gyfk4gLGdgxmDs4sVnI8sjsyP1GVlkAS6j1TMSAZGAQCHmRfk');
//Glory
GloryChecking := DTMFromString('mbQAAAHicY2VgYDjPxMBwGojPAfElIL4IxO8YGRjeAvErRgj7NRCnCLcx3Lohz7BhnSSYPXeOGAM/UD86ZsSCwQAAcNgPnw==');
Glory2 := DTMFromString('mWAAAAHicY2FgYGBkgAAWIGaG0jA+SC5FuI1hwzpJMD13jhiDJFAMGTOiYRAAAOfeBT4=');
Glory4 := DTMFromString('mbQAAAHicY2VgYJjFxMAwHYjnAfE0IF4MxGJALA7EkkDMAcTcQJwrMpHh7m15hkULxRnOHT3K8PL+PQY5oH50zIgFgwEAWWANVw==');
Tokenss := DTMFromString('mbQAAAHicY2VgYHjLxMDwAIifAvEXKE4E4iQgjgLiCCBOA2KDPBeGvARPhsqsAIbKNGcwzQ/Uj44ZsWAwAACTbQxg');
//TrapDoor
OpenTrap := DTMFromString('mbQAAAHicY2VgYFjMwsAwF4iXIdEXGBkYTgPxKSC+BsRXgZiXhwcDswP1o2NGLBgMAKR2CDk=');
//Failsafe
Failsafe[0]:= DTMFromString('mrAAAAHic42BgYJjJxMAwDYgnAPFEJgh/DhDPBuIFQJzFyMBQzgihY4A4CsouA+IUIJ643Z6hf5sdQ9d6G4bpm2wZepdbwcVAtBzQDnyYkQCGAQDknxUi');
FailSafe[1] := DTMFromString('mbQAAAHicY2VgYJACYl0gNgdiJgYIkITS+kDsAMTSQGxrIs3g7ecCxvZOlgwq+lIM7EBxdMyIBYMBACuQBL4=');
FailSafe[2] := DTMFromString('mLgAAAHicY2JgYLjExMBwFYh3Atl7gZh5nxMDa5UWAz+QDcKMUMzAAACapATw');
end;

Procedure SettingScriptValue;
begin
Case Lowercase(TypeOfBones) of
'0' :
begin
KindofBones := ' Dragon bones' ;
XpPerTrip := 2592;
PrayerXPGainC := 2592
BonesPerRun := 9;
BoneDTM := Dbones;
end;
'1':
begin
KindofBones := ' Big bones' ;
XpPerTrip := 540 ;
PrayerXPGainC := 540;
BonesPerRun := 9;
BoneDTM := BigBones;
end;
'2':
begin
KindofBones := ' Infernal ashes' ;
XpPerTrip := 3250;
PrayerXPGainC := 3250;
BonesPerRun := 13;
BoneDTM := InfernalAsh;
end;
'3':
begin
KindofBones := ' BabyDragon Bone' ;
XpPerTrip := 1080;
PrayerXPGainC := 1080;
BonesPerRun := 9;
BoneDTM := Babydragon;
end;
end;
end;

Procedure ProgressReport;
begin
ClearDebug;
Writeln('********************************************');
Writeln('* Nemesis3X Ectofuntus *');
Writeln('********************************************');
Writeln('* You have Worshiped ' + IntToStr(BonesWorkshiped) +''+ KindOfBones);
Writeln('* You have Gained ' + IntToStr(PrayerXPGain) + ' Prayer Experience');
Writeln('* You have done ' + IntToStr(NumberTrips) + ' trips');
Writeln('* Ran for ' + TimeRunning + '');
Writeln('********************************************');
end;

Procedure AntiRandomS; //Detect Randoms and set Back the Script compass + Angle!
begin
if FindnormalRandoms then
begin
FindNormalRandoms;
MakeCompass('s');
SetAngle(SRL_ANGLE_HIGH);
end;
end;

Procedure AntistuckR; //Fail Counts!
Begin
Antistuck := Antistuck + 1;
If (Antistuck = 15) then
TerminateScript;
end;

Procedure CommitStats;
begin
if stats_Commit() then
begin
writeln('Commit success!');
MarkTime(CommitTime);
Stats_IncVariable('Prayer EXP (Gained)', PrayerXPGainC);
Stats_IncVariable('Loads Done', 1);
end;
end;

Procedure FreDTM;
begin
FreeDTM(Path[12]);
FreeDTM(Path[11]);
FreeDTM(EctoT);
FreeDTM(EctoT2);
FreeDTM(EmeraldRing);
FreeDTM(Path[9]);
FreeDTM(GloryChecking);
FreeDTM(Tokenss);
FreeDTM(OpenTrap);
FreeDTM(Path[5]);
FreeDTM(Path[6]);
FreeDTM(Path[0]);
FreeDTM(FailSafe[0]);
FreeDTM(Bucket);
FreeDTM(Pray);
FreeDTM(Path[3]);
FreeDTM(FailSafe[1]);
FreeDTM(Path[4]);
FreeDTM(Path[2]);
FreeDTM(Path[1]);
FreeDTM(Glory2);
FreeDTM(Path[8]);
FreeDTM(Path[7]);
FreeDTM(Glory3);
FreeDTM(Dbones);
FreeDTM(BigBones);
FreeDTM(InfernalAsh);
FreeDTM(WalkToTresor[0]);
FreeDTM(Bucket2);
FreeDTM(FailSafe[2]);
FreeDTM(WalkToTresor[1]);
FreeDTm(WalkToTresor[2]);
FreeDTM(Path[10]);
FreeDTM(CloseTrap2);
end;

function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor: Integer): Boolean; // Credit : Echo_
var
w, x, y, z: Integer;

begin
if not LoggedIn then Exit;

w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange(-randBreakIn * 60000, randBreakIn * 60000);
z := RandomRange(-randBreakFor * 60000, randBreakFor * 60000);

if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
Writeln('Taking a break for about ' + IntToStr(BreakFor) + ' minutes.');
Logout;
Wait((x) + (z));
Writeln('Logging in.');
LoginPlayer;
Result := LoggedIn;
FindNormalRandoms;
IncEx(BreakRounds, (w) + (x));
IncEx(TotalBreaks, 1);
Writeln('The next break will occur in about ' + IntToStr(BreakIn) + ' minutes.');
Makecompass('s');
end;
end;

if (HowManyPlayers > 1) then
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
Writeln('Taking a break for about ' + IntToStr(BreakFor) + ' minutes.');
Logout;
IncEx(BreakRounds, (w));
IncEx(TotalBreaks, 1);
NextPlayer(True);
Exit;
while (LoggedIn) do Wait((x) + (z));
NextPlayer(True);
end;
end;
end;

procedure HoverSkills(Skill: variant; Click: Boolean); //Small modification for My scrip to Make it a little bit faster
var
TP: TPoint;
Skills: TStringArray;
TheSkill: string;

begin
if(not(GameTab(tab_Stats))) then exit;

if ((VarType(Skill) = varInteger) or (VarType(Skill) = varByte)) then
begin

if Skill >= 0 then
TP := SkillToCoords(Skill)
else
repeat
Skill := RandomRange(skill_Attack, skill_Summoning);
TP := SkillToCoords(Skill);
until(GetSkillLevel(TheSkill) > 1)

end else begin

if(Lowercase(Skill) <> 'random')then
TP := SkillToCoords(Skill)
else
repeat
Skills := ['attack','defence','strength','hitpoints','mining','smithing','woodcutting','firemaking','magic',
'fletching','hunter', 'summoning','fishing','construction','herblore','agility','thieving','crafting',
'ranged','slayer','farming', 'prayer', 'runecrafting', 'cooking', 'dungeoneering'];
TheSkill := Skills[Random(Length(Skills))];
TP := SkillToCoords(TheSkill);
until (TP.x > 0) and (GetSkillLevel(TheSkill) > 1);

end;

if(Click)then
begin
Mouse(TP.X, TP.Y, 10, 10, mouse_left);
Wait(3000+Random(3000));
CloseWindow;
end else begin
MMouse(TP.x, TP.y, 10, 10);
Wait(1000 + Random(500));
end;
Gametab(25);
end;

procedure TeleportEcto;
var
T : integer;

begin
Gametab(25);
if (FindDTM(EctoT, x, y, MIX1, MIY1, MIX2, MIY2) or FindDTM(EctoT2, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(x, y, 4, 4, true);
Writeln('Teleporting to Ecto');
wait(2000 + random (1000));
Marktime(T);
repeat
wait(50 + random(100));
until (FindDTM(EctoT, x, y, MIX1, MIY1, MIX2, MIY2) or FindDTM(EctoT2, x, y, MIX1, MIY1, MIX2, MIY2) or (TimeFromMark(t) > 20000));
Wait(100 + random(2000));
AntiRandomS;
end
else
begin
Writeln('for some unkown Reason, We cannot find the fial, so script ended!');
Terminatescript;
end;
end;

procedure CheckRandomTab;
var
TabViewed: integer;

Begin
case random(6) of
0:TabViewed := 27 ;
1:TabViewed := 30 ;
2:TabViewed := 29 ;
3:TabViewed := 22 ;
4:TabViewed := 23 ;
5:TabViewed := 32 ;
end;
Gametab(TabViewed);
Wait (1000 + random(2000));
Gametab(25);
end;

Procedure CheckGlory;
begin
If FindDTMRotated(GloryChecking,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
MMouse(x, y, 5, 5);
wait(3000 + random (1000));
end;

Procedure CheckEmerald;
begin
MouseBox(690,375,705,395,2);
GetMousePos(X, Y);
Mmouse(X,Y, 5,5);
wait(3000 + random (1000));
end;

procedure CheckGloryOrEmerald ;
begin
Gametab(26);
wait(500 + random(500));
Case Lowercase(WayOfBanking) of
'0' : CheckGlory;
'1' : CheckEmerald;
end;
Gametab(25);
end;

procedure RandomMouvMouse;
var
Del, Eld : integer;

begin
Del := random(1000);
Eld := random(1000);
MMouse(del, eld, 5, 5);
end;

procedure AntiRandom;
begin
case random(500) of
1: PickUpMouse;
2: CheckRandomTab;
3:HoverSkills(skill_Prayer, False);
4:CheckGloryOrEmerald;
5:RandomMouvMouse;
6:RandomMouvMouse;
7:RandomMouvMouse;
8:RandomMouvMouse;
9:RandomMouvMouse;
10:RandomMouvMouse;
11:RandomMouvMouse;
12:RandomMouvMouse;
end;
end;

Function Stair2: Boolean;
Var
TPAA: T2DPointArray; //Declare the variables
TPA: TPointArray;
CTS, I, T, tries: Integer;

begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 859926, MSX1, MSY1, MSX2, MSY2, 10);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 10, 20);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 0 Then
begin
inc(tries);
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
wait(200 + random(200));
If WaitUpText('tair', 300) Then
begin
GetMousePos(X, Y);
mouse(x,y,0,0,true);
wait(250 + random(500));
Marktime(T);
repeat
wait(50 + random(25));
until (FindDTMRotated(Failsafe[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or (TimeFromMark(t) > 5000));
Wait(1000 + random(500));
AntirandomS;
if FindDTMRotated(Failsafe[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) then
begin
result := true;
Break;
end
else
begin
AntiStuckR;
Stair2;
end;
end;
if (Tries = 10) then
begin
AntiStuckR;
Stair2;
end;
end;
end;

procedure WalkToEctofield;
begin
if (FindDTMRotated(Path[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[11], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound)) then
begin
Mouse(x, y, 3, 3, True);
Writeln('Going to Next Stair');
FFlag(3);
wait(1500 + random (1000));
AntiRandomS;
end
else
begin
Writeln('We are Stuck');
TerminateScript;
end;
end;

Function Stair1: boolean;
Var
TPAA: T2DPointArray; //Declare the variables
TPA: TPointArray;
CTS, I, Tries, T: Integer;

Begin
if (StairUse = 1) then
begin
Writeln('Trying to find the Stair');
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1322016, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 7, 10);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 5 Then
Begin
inc(tries);
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
wait(200 + random(100));
If WaitUpText('tair', 300) Then
begin
GetMousePos(X, Y);
mouse(x,y,2,2,true);
wait(250 + random(400));
MarkTime(T);
repeat
wait(50 + random(25));
until (FindDTMRotated(Path[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[11], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[12], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or (TimeFromMark(t) > 7000));
Wait(500 + random(500));
result := true;
Break;
AntiRandomS;
End;
if (tries = 10) then
begin
AntiStuckR;
Stair1;
end;
end;
End;
end;

Procedure CheckStairCase;
var
T : integer;

begin
wait(500 + random(1000));
If WaitUpText('tair', 300) Then
begin
GetMousePos(X, Y);
mouse(x,y,2,2,true);
wait(250 + random(400));
MarkTime(T);
repeat
wait(50 + random(25));
until (FindDTMRotated(Path[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[11], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or FindDTMRotated(Path[12], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, xFound) or (TimeFromMark(t) > 7000));
if (TimeFromMark(t) > 7000) then
begin
Writeln('We miss Clicked the stair');
StairUse := 1;
end;
Wait(500 + random(500));
end
else
begin
StairUse := 1;
Writeln('We did not have the Right Uptext, so the stair is not on our mouse. We need to find it!');
end;
end;

Procedure AgilityObs;
var
MyTPA : TPointArray;
MyPoint : TPoint;
x, y, i, Tries, T: Integer;

begin
x := MSCx;
y := MSCy;
FindColorsSpiralTolerance(x, y, MyTPA, 2571064, MSx1, MSy1, MSx2, MSy2, 3);
if Length(MyTPA) = 0 then FindColorsSpiralTolerance(MSCx, MSCy, MyTPA, 1977643, MSX1, MSY1, MSX2, MSY2, 5);
for i := 0 to High(MyTPA) do
begin
inc(Tries);
Writeln('Trying to find Agility Obstacle');
MyPoint := MyTPA[i]
MMouse (MyPoint.x, MyPoint.y, 0, 0);
Wait(450 + random(150));
if (IsUpTextMultiCustom(['Jump', 'Weathered'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
wait(500 + random(250));
Marktime(T); //Start the Timer
repeat
wait(50 + random(100));
if (TimeFromMark(T) > 10000) then
AgilityObs;
until not(FindDTMRotated(FailSafe[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound));
Wait(500 + random(500));
Break;
end;
if (Tries = 10) then
begin
Writeln('Lets try again!');
AntiStuckR;
AgilityObs;
end;
end;
end;

procedure EnterTrapDoor;
var
T : integer;

begin
MarkTime(T);
Repeat
Wait(100 + random(50));
until (FindDTMRotated(OpenTrap, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) or (TimeFromMark(t) > 5000));
MMouse(x, y, 3, 3);
wait(500 + random(100));
if IsUpText('own')then
begin
ClickMouse2(True);
sleep(1000+random(1000));
repeat
wait(50 + random(25));
until (IsMoving = false);
wait(500 + random (500));
AntiRandomS;
end
else
Stuck := 1;
end;

procedure OpenTrapDoor;
var
T : integer;

begin
MarkTime(T);
Repeat
Wait(100 + random(50));
if FindDTMRotated(CloseTrap2, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
MMouse(x, y, 5, 5);
until (IsUpTextMultiCustom(['Open']) or (TimeFromMark(t) > 1500));
if IsUpText('Open')then
ClickMouse2(True);
sleep(500 + random(500));
repeat
wait(50 + random(25));
until (IsMoving = false);
wait(250 + random (500));
AntiRandomS;
end;

procedure TrapDoor;
begin
openTrapdoor;
EnterTrapDoor;
end;

procedure WalkToTrap;
begin
if FindDTMRotated(Path[5], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, true);
FFlag(6);
Writeln('Walking to Trap');
wait(500 + random (500));
AntiRandomS;
end
else
begin
AntiStuckR;
TeleportEcto;
WalkToTrap;
end;
end;

Procedure GoingToPool;
begin
TrapDoor;
If (Stuck = 1) then
begin
Stuck := 0 ;
Writeln('We Are not Inside');
AntistuckR;
WalkToTrap;
TrapDoor;
end;
AgilityObs;
CheckStairCase;
Stair1;
StairUse := 0;
WalkToEctofield;
Stair2;
end;

Procedure Clickbucket;
begin
Gametab(25);
if (FindDTM(Bucket, x, y, MIX1, MIY1, MIX2, MIY2) or FindDTM(Bucket2, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
Mouse(x, y, 7, 7, true);
Writeln('Click on Bucket');
wait(250 + random (250));
Exit;
end
else
begin
AntiStuckR;
ClickBucket;
end;
end;

procedure CheckEcto;
begin
if FindColorTolerance(x, y, 1813784, MIX1, MIY1, MIX2, MIY2, 15) then
begin
BucketSlime := 0;
end
else
BucketSlime := 1;
end;

Function FillingBuckets: Integer;
var
TPA : TPointArray;

Begin
FindColorsTolerance(TPA, 1813784, MIX1, MIY1, MIX2, MIY2, 15);
RAaSTPAEx(TPA, 42, 36);
Result := Length(TPA);
End;

Procedure PoolOfSlime;
var
MyTPA : TPointArray;
MyPoint : TPoint;
x, y, i, counts : Integer;

begin
x := MSCx;
y := MSCy;
FindColorsSpiralTolerance(x, y, MyTPA, 9492374, MSx1, MSy1, MSx2, MSy2, 30);
if Length(MyTPA) = 0 then FindColorsSpiralTolerance(MSCx, MSCy, MyTPA, 9820058, MSX1, MSY1, MSX2, MSY2, 30);
for i := 0 to High(MyTPA) do
begin
inc(counts);
Writeln('Trying to find Pool of Slime');
MyPoint := MyTPA[i]
MMouse (MyPoint.x, MyPoint.y, 3,3);
Wait(150+random(250))
if (Counts = 15) then
begin
Writeln('We are Stuck');
TerminateScript;
end;
if (IsUpTextMultiCustom(['Pool', 'Slime'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 3, 3, true);
Break;
AntiRandomS;
end;
end;
end;

Procedure WeAreFillingBucketBones;
var
T: integer;

begin
MarkTime(t);
repeat
wait(50 + random(300));
antirandom;
until ((FillingBuckets = 9) or (TimeFromMark(t) > 22000)) ;
end;

Procedure WeAreFillingBucketAshes;
var
T: integer;
begin
MarkTime(t);
repeat
wait(50 + random(300));
antirandom;
until ((FillingBuckets = 13) or (TimeFromMark(t) > 32000)) ;
end;

procedure EctoField;
begin
Clickbucket;
PoolOfSlime;
Case Lowercase(TypeOfbones) of
'0', '1', '3' : WeAreFillingBucketBones;
'2' : WeAreFillingBucketAshes;
end;
CheckEcto;
If (BucketSlime = 0) then
begin
Writeln('We are done');
end
else
begin
BucketSlime := 0;
PoolOfSlime;
end;
end;

Function CrushingBones: boolean;
var
PBox: TBox;

begin
PBox := IntToBox(245, 130, 285, 195);
Result := (AveragePixelShift(PBox, 250, 3500) > PixelShiftss);
end;

procedure CheckBonemeal;
begin
if FindColorTolerance(x, y, 932195, MIX1, MIY1, MIX2, MIY2, 7) then
Bonemeal := 0
else
Bonemeal := 1
end;

Function Bin: Boolean;
Var
TPAA: T2DPointArray; //Declare the variables
TPA: TPointArray;
CTS, I, Retry: Integer;

Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5464147, MSX1, MSY1, MSX2, MSY2, 7);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 5, 10);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 1 Then
Begin
inc(Retry);
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 1, 1);
If WaitUpText('mpty', 300) Then
begin
Result := True;
GetMousePos(X, Y);
mouse(x,y,1,1,true);
Wait(4000 + random(1000));
AntiRandomS;
Case Lowercase(WearArmors) of
'0' : PixelShiftss := 300;
'1' : PixelShiftss := 425;
end;
while CrushingBones do
antirandom;
Break;
end;
if (Retry = 10) then
terminatescript;
end;
end;

Procedure BoneGrinder;
var
MyTPA : TPointArray;
MyPoint : TPoint;
x, y, i, t , counts: Integer;

begin
x := MSCx;
y := MSCy;
FindColorsSpiralTolerance(x, y, MyTPA, 8887431, MSx1, MSy1, MSx2, MSy2, 7);
if Length(MyTPA) = 0 then FindColorsSpiralTolerance(MSCx, MSCy, MyTPA, 9019016, MSX1, MSY1, MSX2, MSY2, 7);
for i := 0 to High(MyTPA) do
begin
MarkTime(T);
inc(counts);
Writeln('Trying to find the Ginder');
MyPoint := MyTPA[i]
MMouse (MyPoint.x, MyPoint.y, 2, 2);
Wait(350+random(350));
if (TimeFromMark(t) > 20000) then
begin
Writeln('Since we are Stuck, We are going to end this here.');
TerminateScript;
end;
if (IsUpTextMultiCustom(['Bone', 'grinder'])) then
begin
GetMousePos(x, y);
Mouse(x, y, 2, 2, true);
Wait(2000 + random(1000));
AntiRandomS;
Case Lowercase(WearArmors) of
'0' : PixelShiftss := 300;
'1' : PixelShiftss := 425;
end;
while CrushingBones do
antirandom;
Exit;
if (counts = 10) then
begin
Writeln('We are Stuck');
TerminateScript;
end;
end;
end;
end;

Procedure FixingEcto;
begin
Writeln('Procedure to Fix The Machine Have been Started');
AntiRandomS;
BoneGrinder;
CheckBonemeal;
If (Bonemeal = 1) then
begin
Writeln ('Problem have been fixed')
Bonemeal := 0;
end
else
begin
Bin;
CheckBonemeal;
If (Bonemeal = 1) then
begin
Writeln ('Problem have been fixed')
Bonemeal := 0;
end
else
terminatescript;
end;
end;

Function CrushBones: Boolean;
Var
TPAA: T2DPointArray; //Declare the variables
TPA: TPointArray;
CTS, I, Retry: Integer;

Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3688504, MSX1, MSY1, MSX2, MSY2, 7);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 5, 5);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 10 Then
Begin
inc(Retry);
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 1, 1);
wait(200 + random(100));
If WaitUpText('opper', 300) Then
begin
GetMousePos(X, Y);
mouse(x,y,1,1,true);
Wait(4000 + random(1000));
AntiRandomS;
Case Lowercase(WearArmors) of
'0' : PixelShiftss := 300;
'1' : PixelShiftss := 425;
end;
Break;
end;
if (Retry = 10) then
terminatescript
else
Result := false
end;
while CrushingBones do
antirandom;
end;

procedure CrushingsBones;
begin
wait(500 + random(500));
AntiRandomS;
Crushbones;
CheckBonemeal;
If (Bonemeal = 1) then
begin
Writeln ('We are Done')
Bonemeal := 0;
end
else
begin
FixingEcto;
CheckBonemeal;
If (Bonemeal = 1) then
begin
Writeln ('Problem have been fixed')
Bonemeal := 0;
end
else
Crushingsbones;
end;
end;

procedure WalkToMachine;
begin
if (FindDTMRotated(Path[3], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Path[10], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound)) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Writeln('Getting Near Machine');
wait(300 + random (250));
end
else
begin
AntiStuckR;
WalkToMachine;
end;
end;

Function Stair3: Boolean;
Var
TPAA: T2DPointArray; //Declare the variables
TPA: TPointArray;
CTS, I: Integer;

Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1715748, MSX1, MSY1, MSX2, MSY2, 10);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 20, 60);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 50 Then
Begin
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
If WaitUpText('tair', 300) Then
begin
Result := True;
GetMousePos(X, Y);
mouse(x,y,3,3,true);
AntirandomS;
wait (1000 + random(250));
repeat
wait(50 + random(25));
until (IsMoving = false);
wait(1000 + random(500));
Break;
end;
End;
End;

procedure WalkToStair3;
begin
wait( 500 + random(250));
if (FindDTMRotated(Path[4], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Path[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Path[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound)) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Writeln('Going to Crush bones');
wait(500 + random (2000));
end
else
begin
AntiStuckR;
TeleportEcto;
WalkToStair3;
end;
end;

Procedure GoingToCrushBone;
begin
TeleportEcto;
Stair3;
if (Not FindDTMRotated(Failsafe[1], x, y, MsX1, MsY1, MsX2, MsY2, -Pi/4, Pi/4, Pi/60, xFound)) then
begin
WalkToStair3;
Stair3;
end;
WalkToMachine;
CrushingsBones;
end;

procedure DropTokens;
begin
If FindDTMRotated(Tokenss,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Mouse(x, y, 5, 5, false);
ChooseOption('Drop');
Writeln('Tokens Have been Droped');
Wait(1000 + random(500));
AntiRandomS;
end
else
Stuck := 1;
end;

Function Collect: Boolean;
Var
TPAA: T2DPointArray; //Declare the variables
TPA: TPointArray;
CTS, I, Retry: Integer;

Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA,6844269, MSX1, MSY1, MSX2, MSY2, 13);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 1, 1);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 1 Then
Begin
repeat
inc(Retry);
Wait(50 + random(50));
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 0, 0);
until ((IsUpTextMultiCustom(['ost', 'ciple'])) or (Retry = 7));
if (IsUpTextMultiCustom(['ost', 'ciple'])) then
begin
GetMousePos(X, Y);
mouse(x,y,1,1,false);
wait(100 + random(200));
if (ChooseOption('lect')) then
begin
wait(500 + random(1000));
repeat
wait(50 + random(100));
until (IsMoving = false); //Tokens are collected!
wait(500 + random(1000));
If FindDTMRotated(Tokenss,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Writeln('Tokens Have been Collected');
Result := True;
end
else
begin
AntiStuckR;
Collect;
end;
AntiRandomS;
case random(2) of
0: Tokens := 0;
1: Tokens :=(-1);
end;
Break;
End
else
result := false;
end;
end
else
Stuck := 1;
end;

procedure WalkToGhost;
begin
if FindDTMRotated(Path[9], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Writeln('Getting Near Ghosts');
sleep(1500+random(1000));
end;
end;

Function CheckRoomInInventory: Integer;
var
TPA : TPointArray;

Begin
case lowercase(TypeOfBones) of
'0', '1', '3' :
begin
FindColorsTolerance(TPA, 9869213, MIX1, MIY1, MIX2, MIY2, 15);
RAaSTPAEx(TPA, 42, 36);
Result := Length(TPA) - 9;
End;
'2' :
begin
FindColorsTolerance(TPA, 526610, MIX1, MIY1, MIX2, MIY2, 15);
RAaSTPAEx(TPA, 42, 36);
Result := Length(TPA) - 5;
End;
end;
end;

Procedure GettingTokens;
begin
CheckRoomInInventory;
if (CheckRoomInInventory < 9) then
begin
Writeln('We are okay to Collect Tokens');
end
else
begin
Writeln('We are Going to Drop one item!');
If FindDTM(BoneDTM,X,Y,MIx1,MIy1,MIx2,MIy2)then
begin
mouse(X,Y,2,2,False);
wait(150 + random(200));
ChooseOption('rop');
wait(450 + random(300));
end
else
begin
Writeln('We are Stuck At Collection Tokens');
TerminateScript;
end;
end;
Collect;
DropTokens;
If (Stuck = 1) then
begin
Stuck := 0;
AntiStuckR;
WalkToGhost;
GettingTokens;
end;
end;

procedure MouseSpeeds;
begin
case Random(3) of
0: Wait(200 + random(200));
1: wait(200 + random(150));
2: wait(150 + random(200));
end;
end;

procedure Workship;
var
Works : integer;

begin
case lowercase(TypeOfBones) of
'0', '1', '3' :
Case Random(7) of
0: Works := 2;
1: Works := 1;
2: Works := 2;
3: Works := 3;
4: Works := 4;
5: Works := 3;
6: Works := 4;
end;
'2':
Case Random(7) of
0: Works := 0;
1: Works := (-1);
2: Works := 0;
3: Works := 0;
4: Works := (-1);
5: Works := 1;
6: Works := 1;
end;
end;
Case random(4) of
0:Pray := DTMFromString('mbQAAAHicY2VgYJBmZWAQAWJlIJYCYlkgDmaEYF8g9gHiKCBumJnJUNIdz9C2KJ+hoCOeYcHLOQz8QP3omBELBgMAf+IKiQ==');
1:Pray := DTMFromString('mbQAAAHicY2VgYJBjZWAQAmJNKJYA4jhGBoZIIPaC0vFAvOzDQoYFL+YwTLg0gWHxm3kMyz8tYuAH6kfHjFgwGAAALvUNfA==');
2:Pray := DTMFromString('mbQAAAHicY2VgYIhiZGDIBGJ/II6H0l+B4p+AmBHI/geknwFx+4IChhm3pzGs+LCIYfGr+QxV02IY2IHi6JgRCwYDAOssDzI=');
3:Pray := DTMFromString('mbQAAAHicY2VgYBBhZWBQA2JOIBYCYj0gzmRkYMgA4nQgLgHifCDunpvBMG1lAUNFRxRD7/wshumrCxn4gfrRMSMWDAYApQIK9A==');
end;
wait(500 + random(250));
if FindDTMRotated(Pray, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
begin
repeat
Mouse(x, y, 4, 4, true);
AntiRandomS;
Writeln('Worship');
MouseSpeeds;
inc(works);
if FindNPCChatText('Woo',Nothing) then
begin
wait(1000 + random(500));
GettingTokens;
exit;
end;
until ( works = 15);
works := 0;
BonesWorkshiped := BonesWorkshiped + BonesPerRun;
PrayerXPGain := PrayerXPGain + XpPerTrip;
progressreport;
wait(50 + random(25));
Tokens := Tokens + 1;
Wait(50 + random(25));
case lowercase(TypeOfBones) of
'0', '1', '3' :
If (Tokens = 4) then
GettingTokens;
'2':
If (Tokens = 3) then
GettingTokens;
end;
end
else
begin
TeleportEcto;
Workship;
end;
end;

Procedure TeleportEdgevile;
Var
T:integer;

begin
If FindDTMRotated(Glory2,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
if (ChooseOption('Edgeville')) then
begin
wait(1000 + random(1000));
AntiRandomS;
Marktime(T);
repeat
wait(50 + random(100));
until (FindDTMRotated(Path[7], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Path[8], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or (TimeFromMark(t) > 10000));
wait(100 + random (2000));
end
else
begin
AntiStuckR;
TeleportEdgevile;
end;
end;

Procedure TeleportCastleWars;
Var
T: integer;

begin
MouseBox(690,375,705,395,2);
GetMousePos(X, Y);
mouse(x,y,5,5,false);
wait(250 + random(500));
if (ChooseOption('astl')) then
begin
wait(1000 + random(1000));
AntiRandomS;
Marktime(T);
repeat
wait(50 + random(100));
until (FindDTMRotated(WalkToTresor[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(WalkToTresor[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(WalkToTresor[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or (TimeFromMark(t) > 10000));
wait(100 + random (2000));
end
else
begin
AntiStuckR;
TeleportCastleWars;
end;
end;

procedure TeleportBank;
begin
ClearDebug;
Writeln('Teleporting to Bank');
Gametab(26); //Changing to Inventory Tab!
wait(500 + random(500));
Case Lowercase(WayOfBanking) of
'0' : TeleportEdgevile;
'1' : TeleportCastleWars;
end;
end;

Procedure WalkEdgevile;
begin
if (FindDTMRotated(Path[7], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Path[8], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound)) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
wait(1250 + random(1000));
end
else
begin
AntiStuckR;
WalkEdgevile;
end;
end;

Procedure WalkCastleWars;
begin
if (FindDTMRotated(WalkToTresor[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(WalkToTresor[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(WalkToTresor[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound)) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
wait(1500 + random(1000));
end
else
begin
AntistuckR;
WalkCastleWars;
end;
end;

procedure WalkToBank;
begin
Case Lowercase(WayOfBanking) of
'0' : WalkEdgevile;
'1' : WalkCastleWars;
end;
end;

Function FindEdgeBank: Boolean;
Var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I, T: Integer;

Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3622217, MSX1, MSY1, MSX2, MSY2, 9);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 8, 5);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 1 Then
Begin
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
Wait(200 + random(200));
if (IsUpTextMultiCustom(['ounte' , 'Counter'])) then
begin
Result := True;
GetMousePos(X, Y);
Wait(200 + random(200));
mouse(x,y,1,1,true);
MarkTime(T);
wait(500 + random(1000));
repeat
wait(50 + random(100))
until (BankScreen or PinScreen or (TimeFromMark(T) > 7000));
wait(1000 + random(500));
Break;
end;
End;
End;

Function FindCastleBank: Boolean;
Var
TPAA: T2DPointArray;
TPA: TPointArray;
CTS, I, T: Integer;

Begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 11119025, MSX1, MSY1, MSX2, MSY2, 15);
ColorToleranceSpeed(CTS);
TPAA := TPAToATPAEx(TPA, 2, 8);
SortATPASize(TPAA, True);
For I := 0 To High(TPAA) Do
If GetArraylength(TPAA[i]) > 1 Then
Begin
MiddleTPAEx(TPAA[i], X, Y);
MMouse(X, Y, 3, 3);
If WaitUpText('ank', 300) Then
begin
Result := True;
GetMousePos(X, Y);
Wait(200 + random(200));
mouse(x,y,1,1,true);
wait(500 + random(1000));
MarkTime(T);
repeat
wait(50 + random(100))
until (BankScreen or PinScreen or (TimeFromMark(T) > 7000));
wait(1000 + random(500));
Break;
end;

End;
end;

procedure OpenBanks;
var
OpeningBank: integer;

begin
Repeat
inc(OpeningBank);
Case Lowercase(WayOfBanking) of
'0' : FindEdgeBank;
'1' : FindCastleBank;
end;
until (BankScreen or PinScreen or (OpeningBank = 15));
If (OpeningBank = 15) then
TerminateScript;
if PinScreen then
InPin(Players[CurrentPlayer].Pin);
If BankScreen then
Writeln('Bank Open');
end;

Procedure ChangeGlory;
begin
If (Charge = 4) then
begin
Writeln('Ohhh, We need to change Glory');
Withdraw(1,0,1);
wait(1000 + random(750));
If (FindDTMRotated(Glory2,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Glory3,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound) or FindDTMRotated(Glory4,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound))then
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('Wear');
wait(1250 + random (500));
Mouse(x, y, 5, 5, True);
Wait(400 + random(500));
Charge := 0;
If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
Mouse(x, y, 5, 5, true);
wait(350 + random(500));
end
else
begin
Writeln('no more glory');
terminatescript;
end;
end;
end;

Procedure ChangeEmeraldRing;
begin
If (Charge = 8) then
begin
Writeln('Ohhh, We need to change Emerald Ring');
Withdraw(1,0,1);
wait(1000 + random(1000));
If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('Wear');
wait(1200 + random (500));
Charge := 0;
If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
Mouse(x, y, 5, 5, true);
wait(350 + random(500));
end
else
begin
Writeln('no more Emerald Ring');
terminatescript;
end;
end;
end;

procedure WithdrawBones;
begin
Charge := Charge + 1
Case Lowercase(WayOfBanking) of
'0' : ChangeGlory;
'1' : ChangeEmeraldRing;
end;
If FindDTM(BoneDTM,X,Y,MBx1,MBy1,MBx2,MBy2)then
Case lowercase (TypeOfBones) of
'0', '1', '3' :
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
Case Random(3) of
0: ChooseOption('All');
1: ChooseOption('10');
2: ChooseOption('9');
end;
wait(1000 + random (500));
If FindDTM(BoneDTM,X,Y,MIx1,MIy1,MIx2,MIy2)then
begin
Writeln('We are good');
end
else
begin
Charge := Charge - 1;
AntiStuckR;
WithdrawBones;
end;
end;
'2' :
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('13');
wait(1000 + random (500));
If (Not FindDTM(BoneDTM,X,Y,MIx1,MIy1,MIx2,MIy2))then
begin
Charge := Charge - 1;
AntiStuckR;
WithdrawBones;
end;
end;
end;
CloseBank;
Gametab(25);
NumberTrips := NumberTrips + 1
AntiStuck := 0;
end;

Procedure Banking;
begin
TeleportBank;
WalkToBank;
OpenBanks;
WithdrawBones;
If FindDTM(BoneDTM,X,Y,MIx1,MIy1,MIx2,MIy2)then
begin
Writeln('We are good');
If BankScreen then
Closebank;
TeleportEcto;
ProgressReport;
CommitStats;
end
else
begin
Charge := Charge - 1;
AntiStuckR;
OpenBanks;
WithdrawBones;
end;
end;

procedure SetupScript;

begin
Smart_Server := 25;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL();
SetupSRLStats(908, SRLStats_Username, SRLStats_Password);
DeclarePlayers;
LoginPlayer;
MakeCompass('s');
SetAngle(SRL_ANGLE_HIGH);
LoadVariables;
SettingScriptValue;
end;

begin
SetupScript;
repeat
Case Lowercase (TypeOfBones) of
'0','1','3' :
begin
GoingToPool;
EctoField;
GoingToCrushBone;
TeleportEcto;
Workship;
Banking;
end;
'2' :
begin
GoingToPool;
EctoField;
TeleportEcto;
Workship;
Banking;
end;
end;
BreakHandler(TimePlaying, TimeBreaking, RangeTimePLaying, RangeTimeBreaking );
until
AllPlayersInactive;
FreDTM;
end. .

footballjds

2012-03-19 14:29:39

voted yes, barely…

use case statements instead of so many if thens.

standards need improved. over-all the script could be shortened and be more efficient but heck, it's an improvement…

Nemesis3X

2012-03-19 14:46:46

From: footballjds
voted yes, barely…

use case statements instead of so many if thens.

standards need improved. over-all the script could be shortened and be more efficient but heck, it's an improvement…


Thanks, and Yes, I did start to cut the Code as this version had 250+ lines of codes cut and after my abyss is done, I plan to shortened it again.

bg5

2012-03-19 15:30:18

You standards are slovenly. Use spaces after begin. Your code is hard to read.

example:

  
if (Antistuck = 15) then
begin
terminatescript;
end;
TeleportBank;
end;
end;
end;

Nemesis3X

2012-03-19 15:35:56

From: beginner5
You standards are slovenly. Use spaces after begin.


Sorry, I forgot about that detail. I am going to add some spaces all around.

[XoL]

2012-03-19 17:36:20

I see you post, I see that you care for the community and yes this is better improvement than last time. You must work on standards, they are a mess even after your fixing.

This one is tricky you are right on the fence, but I will vote yes.

cause

2012-03-20 14:39:08

Voted yes, but please work on your standards, your script was quite hard to read.

Nemesis3X

2012-03-20 22:09:40

From: cause
Voted yes, but please work on your standards, your script was quite hard to read.


Sorry :-(, My first Edit just made it worst… Well, For the rest that is going to look at my application, I did Add all the explication to make my Script Clear Now :-) It won't be confusing anymore! I hope so as I spend many hours adding all this Blue Text in Every Procedure/function and adding Space to make it more Fluid!

Edit: On the Other hand, I would like to have comment from People that voted no. It is not that I want to know who did it, but I would like to know what I need to improve to satisfy your criteria. Maybe you did vote no, because like many said, the Standard where very bad from the initial Post, but I like to know the reason, So I get a Goal.

Thanks you to take the Time to Read my Application and give comments on my Script! :-)

Sin

2012-03-20 22:51:24

Well I voted no just because you're a bit too new, you've only been here a month :d

'Toxin

2012-03-21 16:07:00

Voted no.

Very harsh when it comes to standards… It's not that hard to keep them clean, especially to see here that you haven't done much of a job to update your application after some Members have told you what is wrong with the script. You're also very new, as Sin stated… Sorry.

Nemesis3X

2012-03-21 16:41:14

[QUOTE='Toxin;966743] you haven't done much of a job to update your application after some Members have told you what is wrong with the script. .

Havent Done of a job? Can I ask if you did read the 2 post I made. I did update my Script 2 times. First, I just made the Standards worst…. Second, I spend 5 hours reviewing all my code to make it clearer and add Explication…

Please, atleast read my post next time before making wrong accusation like this. I can take any kind of comment, but When I do put all my time to try to sastify everyone and I get a comment like this from you, I can't tell you How I was feeling inside after I read your post, but it is okay and lets just forget this now.

Sorry everyone, but I can't handle comment like this especially when they are wrong and I did put the time!

'Toxin

2012-03-21 16:53:17

Things such as the actual efficiency of the script, the fact that you have so many if's, then, elses…etc. As previously stated those could have been easily switched into case statements, other than those used for randoms. I am not trying to be a dick or anything here, just simply stating what I wanted to see.

Nemesis3X

2012-03-21 17:01:18

[QUOTE='Toxin;966800]Things such as the actual efficiency of the script, the fact that you have so many if's, then, elses…etc. As previously stated those could have been easily switched into case statements, other than those used for randoms. I am not trying to be a dick or anything here, just simply stating what I wanted to see.

You're right on this, but this wasn't my first priority on things to change, as When I do my modification, before posting, I want to make sure my Script is actually Working and I will not be posting some code that look nice, but is not working at all. Sadly, What I am missing Right now is time.

I did understand your post, but the fact that you were calling me to be a inactive user for this thread didn't pass properly. I try to put as much time as I can, so I can update this Thread with the modification some member asked.

Well, happy to see we are back on the good road.

Edit: But yes, I am working on my script and I have cut another 250 lines of code and I am working on changing all the if into Case Statement.

bg5

2012-03-22 00:03:20

You added comments ,but it's not exactly the thing I was thinking about ( and some members propably too).

Look on your code :

   If (WayOfBanking = 1) then
begin
If (Charge = 8) then

Writeln('Ohhh, We need to change Emerald Ring');
Withdraw(1,0,1);
wait(1000 + random(1000));
If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('Wear');
wait(1200 + random (500));
Charge := 0;

end else

begin
Writeln('no more Emerald Ring');
terminatescript;
end;

If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Mouse(x, y, 5, 5, true);
wait(350 + random(500));
end
end;
end;

and this:

if (WayOfBanking = 1) then
begin
if (Charge = 8) then
begin
Writeln('Ohhh, We need to change Emerald Ring');
Withdraw(1, 0, 1);
wait(1000 + random(1000));
if FindDTMRotated(WayToTeleport, x, y, MIx1, MIy1, MIx2, MIy2, - Pi / 4, Pi / 4, Pi / 60, aFound) then
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('Wear');
wait(1200 + random(500));
Charge := 0;
end
else
begin
Writeln('no more Emerald Ring');
terminatescript;
end;
if FindDTMRotated(WayToTeleport, x, y, MIx1, MIy1, MIx2, MIy2, - Pi / 4, Pi / 4, Pi / 60, aFound) then
begin
Mouse(x, y, 5, 5, true);
wait(350 + random(500));
end
end;
end;

Code is much more readable if you visually see ,which "end" is paired with which "begin" ,without analysing whole code.

From http://villavu.com/forum/showthread.php?p=33570#post33570
From: Bam Bam
  • Indenting will be two spaces per level. You can indent by selecting text in SCAR Simba and pressing Ctrl+Shift+U and Ctrl+Shift+I. Tab.
  • The begin statement appears on its own line. The end statement always
  • matches the begin statement by columns. Example:


I really don't care about other points ,but these two are basic for me.

Nemesis3X

2012-03-22 07:36:07

From: beginner5

Look on your code :

   If (WayOfBanking = 1) then
begin
If (Charge = 8) then

Writeln('Ohhh, We need to change Emerald Ring');
Withdraw(1,0,1);
wait(1000 + random(1000));
If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('Wear');
wait(1200 + random (500));
Charge := 0;

end else

begin
Writeln('no more Emerald Ring');
terminatescript;
end;

If FindDTMRotated(WayToTeleport,x,y,MIx1,MIy1,MIx2,MIy2,-Pi/4, Pi/4, Pi/60, aFound)then
begin
Mouse(x, y, 5, 5, true);
wait(350 + random(500));
end
end;
end;

and this:

if (WayOfBanking = 1) then
begin
if (Charge = 8) then
begin
Writeln('Ohhh, We need to change Emerald Ring');
Withdraw(1, 0, 1);
wait(1000 + random(1000));
if FindDTMRotated(WayToTeleport, x, y, MIx1, MIy1, MIx2, MIy2, - Pi / 4, Pi / 4, Pi / 60, aFound) then
begin
Mouse(x, y, 5, 5, false);
wait(100 + random(200));
ChooseOption('Wear');
wait(1200 + random(500));
Charge := 0;
end
else
begin
Writeln('no more Emerald Ring');
terminatescript;
end;
if FindDTMRotated(WayToTeleport, x, y, MIx1, MIy1, MIx2, MIy2, - Pi / 4, Pi / 4, Pi / 60, aFound) then
begin
Mouse(x, y, 5, 5, true);
wait(350 + random(500));
end
end;
end;

I really don't care about other points ,but these two are basic for me.


Thanks for the info, I will work on that :-) but ya, for my code concerning the way of banking. This has been changed into case statement and I am moving foward to this goal now as I am almost done with all the Case statement!

mika

2012-03-22 08:55:14

Doyou know pascal?

Nemesis3X

2012-03-22 10:33:04

From: mika
Doyou know pascal?


A little bit, when I have some question concerning it, I often search on internet to get the information, so I can continue. That's why I didn't said I know Pascal and since I don't have that much experience with this language, I can't say I know it.


Edit: Hello Everyone, I just update my Script with what People were Asking for! It tooks sometime, but it is done. I have put the Standard to what we call Good :-) and I changed many if into Case statement in procedures :-) Hope to get some feedback, I thought about making a new post, but no double post :P

rice

2012-03-25 04:57:20

There is alot of IF then statements. standards are somewhat met. keep it up and get better

BobboHobbo

2012-03-25 05:57:45

You still have many unnecessary spaces within your code. Dont skip lines for no reason, its annoying. Your not a bad scripter, I think you should just wait a little longer and gain further experience with scripting.

Im voting, no for now. But I would like to see a next application in a month time and I will amend my decision :).

Nemesis3X

2012-03-25 13:14:04

From: rice
There is alot of IF then statements. standards are somewhat met. keep it up and get better

Atleast, I did reach the standards, but since this isn't going to work for this application, I will rework them for my next application. Also, I will work with all the If and try my best to change some of them, as I did found How to do the Case Statement for my Type of Bone on someone else Script :-) Also, I will erase all the big work I did for placing comments, since it is really annoying for me when I try to change things…

From: BobboHobbo
You still have many unnecessary spaces within your code. Dont skip lines for no reason, its annoying. Your not a bad scripter, I think you should just wait a little longer and gain further experience with scripting.
Im voting, no for now. But I would like to see a next application in a month time and I will amend my decision :).

Hehe, happy to see you took the time to give your opinion on this application. Well, Like I said, I will rework my Standard for my next application. I will erase some Fail Safe that has no more reason to exist, since the current state of the code no more require them and I will do some small modification to lower the number of if and transform them into Case statement like I already started to do.

I will work on increasing the speed of this Script, so it will be even more efficient!

rice

2012-03-25 18:13:42

From: Nemesis3X
Atleast, I did reach the standards, but since this isn't going to work for this application, I will rework them for my next application. Also, I will work with all the If and try my best to change some of them, as I did found How to do the Case Statement for my Type of Bone on someone else Script :-) Also, I will erase all the big work I did for placing comments, since it is really annoying for me when I try to change things…


Hehe, happy to see you took the time to give your opinion on this application. Well, Like I said, I will rework my Standard for my next application. I will erase some Fail Safe that has no more reason to exist, since the current state of the code no more require them and I will do some small modification to lower the number of if and transform them into Case statement like I already started to do.

I will work on increasing the speed of this Script, so it will be even more efficient!


i know you have the potential just take your time and dont rush things and always look for ways to make your code cleaner and better.

Nemesis3X

2012-03-25 21:21:15

From: rice
i know you have the potential just take your time and dont rush things and always look for ways to make your code cleaner and better.


Thanks and that's what I am doing. When I am tired to work on my second project, I return on my ectofuntus script and I read my code, Thinks about how I could make it more efficient and cleaner and I try something new to see if it works better or if I revert it back and I am cutting codes that has no reason to exist anymore.

bg5

2012-03-26 01:04:41

Well ,you took my suggestions and cleaned the code ,so I voted yes ,because all other things (except standards) in your script weren't bad.

But honestly your code still looks overlength. For example this piece of code:
   //If we did too many attempts
If (OpeningBank = 15) then
begin
TerminateScript; // Script end!
end;
//If pinScreen, we enter the pin!
if PinScreen then
begin
InPin(Players[CurrentPlayer].Pin);
end;
//If Bank Screen, We move to the next Step!
If BankScreen then
begin
Writeln('Bank Open');
end;

I would make in much shorter way:

  
If (OpeningBank = 15) then //If we did too many attempts
TerminateScript;
if PinScreen then //If pinScreen, we enter the pin!
InPin(Players[CurrentPlayer].Pin);
If BankScreen then //If Bank Screen, We move to the next Step!
Writeln('Bank Open');
Cheers

Nemesis3X

2012-03-26 15:26:57

From: beginner5
Well ,you took my suggestions and cleaned the code ,so I voted yes ,because all other things (except standards) in your script weren't bad.

But honestly your code still looks overlength. For example this piece of code:
   //If we did too many attempts
If (OpeningBank = 15) then
begin
TerminateScript; // Script end!
end;
//If pinScreen, we enter the pin!
if PinScreen then
begin
InPin(Players[CurrentPlayer].Pin);
end;
//If Bank Screen, We move to the next Step!
If BankScreen then
begin
Writeln('Bank Open');
end;

I would make in much shorter way:

  
If (OpeningBank = 15) then //If we did too many attempts
TerminateScript;
if PinScreen then //If pinScreen, we enter the pin!
InPin(Players[CurrentPlayer].Pin);
If BankScreen then //If Bank Screen, We move to the next Step!
Writeln('Bank Open');
Cheers


Thanks, Ya, you are Right and I changed it after I read your post.

And I will update this thread soon with a big Optimization I am working on . I did erase many

If (BlaBlaBla) then
begin
...
into simple code like

If (BlaBlaBla) then
...

I did twinks a few things again also. Moving forward to test my new Code before posting it here.

Bam Bam

2012-03-27 10:22:00

I'm going to vote yes when I see one from you that has code formatted to the standards properly ;) good luck

-Bam Bam

Nemesis3X

2012-03-27 11:16:38

From: Bam Bam
I'm going to vote yes when I see one from you that has code formatted to the standards properly ;) good luck

-Bam Bam


I am almost done, I had to stop yestherday since I had many things to do and I got a few things to twinks again like no more


AntiStuck := Antistuck + 1;
if (Antistuck = 1) then
terminatescript;

I made a procedure for this that is used in the whole script, but sadly, i couldn't work on this right now, as I am studying for my Exam in 1 Hour and I need to go meet a prof before my class.

Edit: I updated my script with all the modification. A brief Overview:
-350 Lines of Code cut
-Standard should be respected now!
-It doesn't look anymore over length!
-Added const
-Less if and more Case statement!

I did work hard because At first I had 500 lines of code cut, but ya, when it came to testing I saw I did cut important things by accident(Will never try to edit my Script again at 1 am during the morning).

Hope to get some FeedBack :-)

'Toxin

2012-04-02 06:42:11

Re-looked over your updated script, seeing as I was the one that pointed the finger at you stating that you haven't bothered to do anything to it, after the criticism was given, and I am happy with what I see. Your attitude is great, and I think you'd definitely be an asset.

If a mod/admin sees this, please change my vote from a no, to a yes.

Good Luck!

Nemesis3X

2012-04-02 07:44:32

Thanks :-)

My future plan with this Script is to implent the Dung ring Teleport and the new Ring from the quest kilin. I thought about adding summon, but Terror bird isn't boosting the XP/hour enough to take the time to add it, but if the war tortoise help to get a better xp/hour I will add it when I reach 68 summoning.

BraK

2012-04-05 22:41:33

Scripting for your self is so much more fun than the headache of trying to figure out what other peoples stuff is doing. :) Hope you come to enjoy scripting for yourself and others. I don't really script for RS anymore but if you make members then you will see some of my scripting stuffs. ;)

I voted yes and changed Toxin's vote to yes.

This is awaiting Admin attention at the moment :)

Nemesis3X

2012-04-06 09:54:10

From: BraK
Scripting for your self is so much more fun than the headache of trying to figure out what other peoples stuff is doing. :) Hope you come to enjoy scripting for yourself and others. I don't really script for RS anymore but if you make members then you will see some of my scripting stuffs. ;)

I voted yes and changed Toxin's vote to yes.

This is awaiting Admin attention at the moment :)


Thanks for your commentary and I enjoy Scripting for Myself and others and I think I found my idea for my Second public Script that someone Brought out in the Script Request :-)

WT-Fakawi

2012-04-08 18:53:49

In!