This is even better in my opinion:
program new;
{$include srl/srl/misc/smart.simba}
{$I SRL/SRL.simba}
{$I srl/srl/misc/debug.simba}
{$I sps/sps.simba}
var
grapeSlot,jugSlot:Integer;
StartTime:Integer;
//progress variables
XP,XPH,Sec,value2,Door2:Integer;
Shield,Guthans:Boolean;
procedure DeclarePlayers;
begin
grapeSlot := 01;
jugSlot := 11;
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Active := True;
Players[0].Pin := '';
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;// declare players
procedure SetupLogin;
begin
ClearDebug;
Smart_Server := 87;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
end;
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, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
function WithdrawBankSlot(Slot,Amount:Integer):Boolean;
var
Much:String;
begin
Result := False;
if BankScreen then
begin
MouseSpeed := 40;
MouseBankSlot(Slot,0);
Wait(RandomRange(30,200));
Much:= IntToStr(Amount);
if OptionsExist([Much],True) then
begin
ClickMouse2(True);
Result := True;
end;
end;
if Result then
exit else writeln('Failed to withdraw');
MouseSpeed := 18;
end;
procedure Proggy;
begin
XP := GetXPBarTotal - Players[CurrentPlayer].Integers[0];
Sec:= (1+((Getsystemtime-StartTime)/1000));
XPH := (3600*XP) / (SeC);
writeLn('===================================');
writeLn('============S1NWines================');
writeLn('Time Running: ' + TimeRunning);
writeLn('XP Earned: ' + IntToStr(XP));
writeLn('XP/h: ' + IntToStr(XPH));
writelN('===================================');
writeLn('===================================');
end;
procedure Bank;
var
t,x:Integer;
begin
writeLn('Banking System: Opening Bank Type; Soul Wars/Chest');
OpenBankChestEdge(SRL_BANK_SW);
MarkTime(T);
repeat
wait(10);
if PinScreen then
begin
InPin(Players[CurrentPlayer].Pin);
writeLn('Banking System: Entering Pin');
wait(randomrange(100,200));
end;
if TimeFromMark(T) > 5000 then
begin
writeLn('Banking System: Bank Opening Failed, trying again');
Bank;
Exit;
end;
until(BankScreen);
if BankScreen then
begin
writeLn('Banking System: Depositing All Items');
DepositAll;
WithdrawBankSlot(grapeSlot,14);
writeLn('Banking System: Withdrawing Grapes');
WithdrawBankSlot(jugSlot,14);
writeLn('Banking System: Withdrawing Jugs');
for x := 0 to 20 do
begin
wait(random(100));
if InvFull then break;
end;
if InvFull then
CloseBank else
begin
writeLn('Banking System: Banking failed, trying again');
Bank;
Exit;
end;
end;
end;
procedure GetDrunk;
var
t:Integer;
begin
MouseItem(14,1);
writeLn('Wine System: Clicked Item 1');
MouseItem(15,1);
writeLn('Wine System: Clicked Item 2');
if WaitColor(230,426,4141067,5,2000) then
begin
writeLn('Wine System: Found Chatbox interface');
MarkTime(t);
MouseBox(233,416,285,434,1);
writeLn('Wine System: Clicked widget');
repeat
wait(randomrange(400,500));
case random(3000) of
0..10: begin writeLn('Wine System: HoverSkill');HoverSkill(SKILL_COOKING,False);end;
20..30: begin writeLn('Wine System: BoredHuman');BoredHuman; end;
60..65: begin writeLn('Wine System: Random movement');RandomMovement; end;
end;
if TimeFrommark(t) > 10000 then
break;
until InvCount = 14;
end else
begin
writeLn('Wine System: Failed to find the color, trying again!');
GetDrunk;
Exit;
end;
end;
begin
ClearDebug;
SetupLogin;
DeclarePlayers;
LoginPlayer;
ActivateClient;
MouseSpeed := RandomRange(19,21);
if (Players[CurrentPlayer].Integers[1] = 0) then
begin
if not IsXPBarOpen then ToggleXPBar(true);
Players[CurrentPlayer].Integers[0] := GetXPBarTotal;
Players[CurrentPlayer].Integers[1] := (Players[CurrentPlayer].Integers[1] + 1);
end;
StartTime:=GetSystemTime;
repeat
Bank;
getdrunk;
Proggy;
until not LoggedIN;
end.
i think i've made it a little faster.
will post proggy in some hours.