- program SoulWarsSuperGlassMake;
- {$DEFINE SMART}
- {$DEFINE CRASHSMART}
- {$DEFINE SRL5}
- {$i srl/srl.simba}
- //{$i SRL\SRL\Misc\stats.simba}
- const
- SRLStats_Username = 'redeclipse';// SRL Stats ID
- SRLStats_Password = 'kosony1996';// SRL Stats Pass
- HowManyToFill = 200000;// to the number of items you want filled.
- var
- CPH, Loads, FilledItem, Casts, Bank : Integer;
- EXP, aFound : Extended;
- {*******************************************************************************
- Procedure HumanMMouse(eX, eY: Integer);
- By: Flight
- Description: Human-like miss-and-correct mouse movement
- *******************************************************************************}
- Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
- var
- randSpeed: extended;
- X,Y,X2,Y2,A,Dist,MP: integer;
- begin
- A := MouseSpeed;
- GetMousePos(X, Y);
- Dist := Distance(X, Y, eX, eY);
- MP := Round(Dist/150);
- If MP < 0 then
- MP := 1;
- randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
- X2 := RandomRange(eX-(A*MP), eX+(A*MP));
- Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
- WindMouse(X, Y, X2, Y2, 9.0, 3.0, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
- GetMousePos(X, Y);
- MMouse(eX, eY, ranX, ranY);
- MouseSpeed := A;
- end;
- Procedure HumanMouse(eX, eY, ranX, ranY: Integer; LeftClick: Boolean);
- Var
- x, y:integer;
- begin
- HumanMMouse(eX, eY, ranX, ranY);
- GetMousePos(x, y);
- Mouse(x, y, 0, 0, LeftClick);
- end;
- procedure DeclarePlayers;
- begin
- HowManyPlayers := 1;
- NumberOfPlayers(HowManyPlayers);
- CurrentPlayer := 0;
- with Players[0] do
- begin
- Name :=''; // Username
- Pass :=''; // Password
- Nick :='Gabe'; // 3-4 lower case letters of your character's name
- Pin :=''; // NO PIN SUPPORT. PINS ARE FOR BITCHES :)
- Member := true;
- Active := true;
- end;
- end;
- Procedure CheckStats;//SRL Stats
- begin
- if ((SRLStats_Username = '') And (SRLStats_Password = '')) then
- begin
- case MessageBox('No Stats account entered, would you like to set one up?','SRL Stats',mbYesNoCancel) of
- mrYes:
- begin
- OpenWebPage('http://stats.villavu.com/register');
- TerminateScript;
- end;
- mrNo:
- begin
- SetupSRLStats(399,'Anonymous','anon1337');
- Exit;
- end;
- mrCancel: TerminateScript;
- end;
- end else
- SetupSRLStats(399,SRLStats_Username,SRLStats_Password);
- end;
- procedure BankChest(PX:Integer; Click: Boolean);
- var
- x, y : Integer;
- begin
- Bank := DTMFromString('m1gAAAHic42IAAkYGhi9AihNI/wLSHED6P5D+AWX/BikB0peA9DEgPgrF56D0RSC+BsXXgTgp3JuhLDOaIS3aj6EoLYKhJD2SIS8phKEgJYzBx9mKIdzPmSHUx5GBFagWhvlxYFaI84jCCAAASX8YHQ==');
- if FindDTMRotated(PX, x, y, MSX1, MSY1, MSX2, MSY2, -Pi, Pi, Pi/30, aFound) then
- begin
- MMouse(x, y, 0, 0);
- GetMousePos(x, y);
- if (WaitUpText('se Bank', 200)) then
- begin
- Writeln('Opening bank.');
- ClickMouse2(True);
- Wait(500);
- if (BankScreen) then
- begin
- Writeln('Bank Opened.');
- FreeDTM(Bank);
- Exit;
- end;
- end;
- end;
- end;
- procedure SetUp;
- begin
- MakeCompass('S');
- SetAngle(SRL_ANGLE_HIGH);
- Writeln('Get ready to get rich!');
- Wait(500);
- end;
- procedure DepositInventory;
- Var x, y, DepInv: Integer;
- begin
- DepInv := DTMFromString('mbQAAAHicY2VgYChjZGCoBuJ0IK6D0qZAbADEVkBsDmUrCfEyzI1RZHC47crAz8fLkBrhycAP1I+OGbFgMAAAE0EHjg==');
- FindDTM(DepInv, x, y, MSX1, MSY1, MSX2, MSY2);
- HumanMouse(x, y, 2, 2, True);
- Wait(100+Random(100));
- FreeDTM(DepInv);
- end;
- procedure WithdrawSeaweed;
- Var WithdrawSeaweeds, x, y:Integer;
- begin
- WithdrawSeaweeds := DTMFromString('mggAAAHicY2NgYGBhgAB2IOYEYi4gFgFiNiDmA2IhKM0BVccdYAwkmTAwP5DEhhlxYAgAAGxMAW0=');
- FindDTM(WithdrawSeaweeds, x, y, MSX1, MSY1+85, MSX2, MSY2);
- HumanMouse(x, y, 2, 2, False);
- If OptionsExist(['-13 '], False) Then
- begin
- ChooseOption('-13');
- end
- Wait(100+Random(100));
- FreeDTM(WithdrawSeaweeds);
- end;
- procedure WithdrawSand;
- Var WithdrawSands, x, y:Integer;
- begin
- WithdrawSands := DTMFromString('mlwAAAHicY2dgYEhnYmDIB+ICKM4A4jwgTgFiR0YItgFicyD2BmIPKJ0WpAvUzYQV8wNJXJgRD4YCAMf8BkE=');
- FindDTM(WithdrawSands, x, y, MSX1, MSY1, MSX2, MSY2);
- HumanMouse(x, y, 2, 2, False);
- If OptionsExist(['-13 '], False) Then
- begin
- ChooseOption('-13 ');
- end;
- Wait(100+Random(100));
- FreeDTM(WithdrawSands);
- end;
- procedure Banking;
- var x, y:Integer;
- begin
- BankChest(Bank, True);
- if (BankScreen) then
- begin
- Writeln('Depositing.');
- DepositInventory;
- Wait(750+Random(150));
- Writeln('Withdrawing.');
- WithdrawSeaweed;
- Wait(500+Random(150));
- WithdrawSand;
- Wait(500+Random(150));
- CloseBank;
- end else
- if not (BankScreen) then
- begin
- repeat
- BankChest(Bank, True);
- until(BankScreen);
- Banking;
- end;
- end;
- procedure ClickSpell;
- var
- x, y : Integer;
- SuperGlassMake : Integer;
- begin
- GameTab(Tab_Magic);
- SuperGlassMake := DTMFromString('mwQAAAHic42RgYGCFYi4GCGADYnYg5oZiEOAEYiYgFoZiESDmA2IOBgTw42FneP36FYNcxCQgjxEFg8Qg4gwMzAz4ASMRGA4A4Y4G5Q==');
- If FindDTM(SuperGlassMake, X, Y, MIX1, MIY1, MIX2, MIY2) Then
- begin
- Writeln('Casting Superglass Make.');
- Mouse (x, y, 0, 0, true);
- FreeDTM(SuperGlassMake);
- SleepAndMoveMouse(3500);
- IncEx(FilledItem, 27);//Modify if you aren't using a steam staff.....
- IncEx(Casts, 1);
- end;
- end;
- procedure ProgressReport;//Thanks to King Kong and Camaro' for their input on this.
- begin
- EXP := 208;
- CPH := Round((Casts * 3600) / (GetTimeRunning / 1000));
- ClearDebug;
- Writeln('=======================================================');
- Writeln(' Soul Wars SuperGlass Maker V2');
- Writeln(' Time running: '+TimeRunning+'');
- Writeln(' Molten Glass Made: '+ToStr(FilledItem)+'');
- Writeln(' Casts done: '+ToStr(Casts)+'');
- Writeln(' Casts per hour: '+ToStr(CPH)+'');
- Writeln(' Amount left: '+ToStr(HowManyToFill - FilledItem)+'');
- Writeln(' Exp gained: ' + FloatToStr(Loads * EXP) + '');
- Writeln('=======================================================');
- stats_IncVariable('Magic EXP (Gained)', 65);
- stats_Commit;
- end;
- begin
- Smart_Server := 8;
- Smart_Members := True;
- Smart_Signed := True;
- Smart_SuperDetail := False;
- SetupSRL;
- ActivateClient;
- DeclarePlayers;
- CheckStats;
- LogInPlayer;
- SetUp;
- repeat
- if not LoggedIn then TerminateScript;
- //BankChest(Bank, True);
- Banking;
- ClickSpell;
- ProgressReport;
- until(FilledItem=HowManyToFill);
- if (FilledItem=HowManyToFill) then
- LogOut;
- TerminateScript;
- end.