{start with an empty inventory. strings first bank slot, bows(u) in second. ---- credits to squigglyo, i used his stringer as an example for my very first version. this has been very significantly altered since that point, though. ---- written by philodespotos } program pdStringer; {.include Si.scar} const TotalTodo = 280; LogOutWhenDone = false; const siUsername = ''; siPassword = ''; siLoggedIn = 120; // mins to run before sleeping siLoggedOut = 60; // mins to sleep before restarting siRunDirection = 'S'; // I use seer's siLampSkill = 'fletching'; // skill to use lamp on siTakeScreens = true; // do you want screens of randoms? var TotalDone : integer; // Si's Mouse minus the forced wait procedure pdMouse(x,y,rx,ry:Integer; left:Boolean); var a:Integer; begin MMouse(x,y,rx,ry); Wait(10); GetMousePos(x,y); Wait(50+random(25)); HoldMouse(x-1,y+1,left); repeat Wait(10+Random(1)); a:=a+1; until(a>4); GetMousePos(x,y); ReleaseMouse(x,y,left); Wait(50+random(25)); MMouse(x,y,2,2); end; // Si's UseItem, aka Si's MouseItem(...,true); // sans the forced wait procedure pdUseItem(inven : integer); var sx, sy, row, col : integer; begin GameTab(4); row:=trunc(inven div 4); col:=inven-(row*4)-1; if(col<0)then begin col:=3; row:=row-1; end; sx:=562+col*42+25; sy:=208+row*37+23; pdMouse(sx,sy,8,8,true); end; procedure WithdrawPieces(count : integer); begin if(not(BankScreen))then OpenBank; if(count = 14)then begin Withdraw(1, 1, count); Withdraw(1, 2, 0); CloseWindow; wait(random(350)+150); DragItem(1, 27); end else begin Withdraw(1, 1, 1); Withdraw(1, 2, 1); Withdraw(1, 1, count-1); Withdraw(1, 2, count-1); CloseWindow; wait(random(350)+150); DragItem(1, 27); DragItem(2, 28); end; wait(random(450)+100); end; procedure DepositBows; begin OpenBank; wait(200+random(50)); Deposit(1, 2, 0); end; procedure StringBows(count : integer); var x : integer; begin x := 0; repeat begin pdUseItem(27); pdUseItem(28); x := x + 1; end; until(x = count); TotalDone := TotalDone + x; end; procedure LastBatch(remainder : integer); begin WithdrawPieces(remainder); StringBows(remainder); end; procedure HandleRandoms; begin CheckRandoms(1, siLampSkill, siRunDirection, false, siTakeScreens, [rtText, rtBox, rtLamp, rtPlant, rtLeveled]); AntiBan(siLoggedIn, siLoggedOut, 1); end; procedure ScriptInit; begin LoadInclude('', false); SetAccount(1, siUsername, siPassword); ChatsOff; end; begin ScriptInit; repeat begin if((TotalTodo - TotalDone) < 14)then begin LastBatch(TotalTodo - TotalDone); end else begin WithdrawPieces(14); HandleRandoms; StringBows(14); HandleRandoms; DepositBows; end; end; until(TotalDone >= TotalTodo); CloseWindow; if(LogOutWhenDone)then LogOut; end.