What does it say in the bottom of the screen -- the status message?
it says finding shopkeeper even though it already has.
Then the until(shopscreen) isn't working for you. I don't really know how to help you with that.
does it work for you? what should i download.
SCAR Code:case Random(8) of
0: SendKeys('28'+chr(13));
1: SendKeys('32'+chr(13));
2: SendKeys('54'+chr(13));
3: SendKeys('55'+chr(13));
4: SendKeys('65'+chr(13));
5: SendKeys('65'+chr(13));
6: SendKeys('98'+chr(13));
7: SendKeys('87'+chr(13));
end;
Is that not bad? Should you not use TypeSend?
Oh my god, thank jesus that it couldn't click the rings.
He's away. Just replace
SCAR Code:case Random(8) of
0: SendKeys('28'+chr(13));
1: SendKeys('32'+chr(13));
2: SendKeys('54'+chr(13));
3: SendKeys('55'+chr(13));
4: SendKeys('65'+chr(13));
5: SendKeys('65'+chr(13));
6: SendKeys('98'+chr(13));
7: SendKeys('87'+chr(13));
end;
with
SCAR Code:TypeSend(IntToStr(RandomRange(28, 99)));
SCAR Code:program new;
{.include SRL/SRL/misc/Smart.Scar}
{.Include SRL\SRL.SCAR}
{.include SRL/SRL/reflection/Reflection.scar}
const
Username = ''; //Your Runescape username
Password = ''; //Your Runescape password
Nickname = ''; //Few letters from your name Example: Username = 'Zezima' then the nickname would be 'ezi'
ToDo = 5000; //How many rings do you want to alch? If you're using all your nature runes, set 1 higher.
logo = true; //Log out after doing the desired ammount of alches/Using all your nature runes?
var
cx, cy, Counter, Exp, OldItemSlots, NewItemSlots, dtmHAlch, dtmRing: integer;
FirstCast: boolean;
ItemSlots, ItemSlots2: TIntegerArray;
procedure DeclarePlayers;
begin
Status('Declaring Players.');
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := Username;
Players[0].Pass := Password;
Players[0].Nick := Nickname;
Players[0].Active:= true;
end;
procedure LoadDTM; //Thanks to cycrocism for the dtm of the ring and akwardsaw for the dtm of the high alch
begin
dtmHAlch := DTMFromString('78DA63B46662604860644006BFBEF18069982' +
'8A31D504D04AA1A982C5C8D03116A9C816A5209A83102AA4922A0' +
'C61EA82604BF1A004F1D05B8');
dtmRing := DTMFromString('78DA638C626060286340011EF6C6609A11CA6' +
'78C011239A86A36A88AA2AA89031225A86A2E6C934455130D24AA51D' +
'5EC592A8EAA26144854A1AAB9B4430A554D389028445533BB5D18554' +
'D3C90C84355D3262380A206000F1D0DF9');
end;
function FindKeeper : boolean;
var
jNPC : TNPC;
begin
if (FindNPC('Irksol', jNPC)) then
begin
Mouse(jNPC.ms.x, jNPC.ms.y, 2, 2, false);
Result := ChooseOption('rade');
Flag;
end;
end;
Procedure BuyRings;
begin
begin
wait(random(2000));
Status('Finding storekeeper.');
repeat
FirstCast := true;
FindKeeper;
Flag;
Wait(Random(1000));
until (ShopScreen);
begin
wait(100);
Mouse(72,100,10,10,false);
ChooseOption('Buy X');
Wait(1000);
TypeSend(IntToStr(RandomRange(28, 99)));
end;
CloseWindow;
end;
end;
procedure Progress;
begin
ClearDebug;
if (loggedin=false) or (Counter > ToDo) then
begin
Writeln('----------------------------------------------');
Writeln(' _____________________________________________');
Writeln('- Sleziak''s Zanaris alcher ');
Writeln('- Ran for: ' + (TimeRunning) + ' ');
Writeln('- Alched ' + IntToStr(Counter) + ' rings ');
writeln('- You have gained ' + IntToStr(Exp) + ' Exp!' );
Writeln('- Succesfully alched all requested rings ');
Writeln('- Post this proggy please ;) ');
Writeln('-_____________________________________________');
Writeln('----------------------------------------------');
TerminateScript;
end else
begin
Cleardebug;
Writeln('----------------------------------------------');
Writeln(' _____________________________________________');
Writeln('- Sleziak''s Zanaris alcher ');
Writeln('- Ran for: ' + (TimeRunning) + ' ');
Writeln('- Alched ' + IntToStr(Counter) + ' rings ');
Writeln('- You have gained ' + IntToStr(Exp) + ' Exp! ');
Writeln('- Still running! ');
Writeln('- Post this proggy please ;) ');
Writeln('-_____________________________________________');
Writeln('----------------------------------------------');
end;
end;
procedure Checkrunes;
begin
if not InventoryContains(562, ItemSlots2) then
TerminateScript;
end;
procedure Alch;
begin
repeat
if (not(LoggedIn)) then
LoginPlayer;
FindNonInventoryRandoms;
if InventoryContains(1642, ItemSlots) then
begin
OldItemSlots := Length(ItemSlots);
Wait(200 + random(100));
if (FirstCast = true) then
begin
if (GetCurrentTab <> 7) then
begin
GameTab(7);
Wait(500 + Random(500));
end;
end;
if FindDTM(dtmHAlch, cx, cy, 559, 336, 583, 360) then
begin
Status('alching.');
Mouse(cx, cy, 7, 7, true);
FirstCast := false;
end;
Wait(random(100));
MouseItem(ItemSlots[0], true);
Wait(1600 + random(100));
CheckRunes;
Exp := Exp + 65;
Counter := Counter + 1;
Progress;
InventoryContains(1642, ItemSlots);
NewItemSlots := Length(ItemSlots);
Wait(100);
if (OldItemSlots = NewItemSlots) then
begin
FirstCast := true;
Exp := Exp - 65;
Counter := Counter - 1;
end;
end else
begin
BuyRings;
end;
until(false);
end;
procedure ScriptTerminate;
begin
Progress;
WriteLn('Out of runes!');
if logo = true then Logout
else
WriteLn('Finished script/Out of runes!');
end;
begin
SetupSrl;
SmartSetupEx(100, True, True, False);
SetTargetDC(SMARTGetDC);
SetupReflection;
DeclarePlayers;
LogInPlayer;
Wait(2000);
LoadDTM;
FirstCast := true;
repeat
SetAngle(True);
MakeCompass('N');
SetRun(True);
Alch;
FindNormalRandoms;
CheckRunes;
Progress;
Wait(2000);
until(loggedin = false);
end.
Working version. I take no credit, use with caution.
Last edited by FLUX_; 04-28-2009 at 12:54 PM.
Use with caution, what does that mean? Like there could be more functions that basically get you auto banned?
EDIT: Sorry to be nit picky (wtf?) but you forgot a second apostraphe in nickname declaring.
EDIT2: Idk whats wrong but none of these updates are changing anything it just keeps right clicking in the shop window.
EDIT3: Okay I downloaded SCAR 3.2 and it works; i'll post a proggie in a bit.
EDIT4:
Here ya go; (its still running obviously)
----------------------------------------------
_____________________________________________
- Sleziak's Zanaris alcher
- Ran for: 1 Hours, 16 Minutes and 20 Seconds
- Alched 1219 rings
- You have gained 79235 Exp!
- Still running!
- Post this proggy please![]()
-_____________________________________________
----------------------------------------------
Last edited by tom43; 05-02-2009 at 06:19 AM.
There's something wrong with the SRL command "Cast". It won't click the spell for some people. I made a [small] fix for the problem. NOTE: The script still belongs to sleziak.
The fixed script is below:
SCAR Code:program new; //edited by WhoCares357 for fixes:
//TypeSend to replace SendKeys; spell clicking fix; and
//wait time randomness at a few places
//THOSE ARE THE ONLY CREDITS I TAKE. THE SCRIPT IS STILL sleziak's
{.Include SRL\SRL.SCAR}
{.include SRL/SRL/Skill/Magic.scar}
const
Username = ''; //Your Runescape username
Password = ''; //Your Runescape password
Nickname = ''; //Few letters from your name Example: Username = 'Zezima' then the nickname would be 'Zez'
ToDo = 1000; //How many rings do you want to alch
logo = false; //Log out after doing the desired ammount of alches/Using all your nature runes?
var
x,y,a,b,counter,exp : integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := Username;
Players[0].Pass := Password;
Players[0].Nick := Nickname;
Players[0].Active:= true;
end;
procedure FindIrksol;
var
TMT, Times: Integer;
begin
TMT := 0;
if not ShopScreen then
begin
wait(2000+random(3000))
if(FindSymbolIn(x, y, 'gem stall', MMX1, MMY1, MMX2, MMY2)) then
begin
writeln('Walking to gem stall');
flag;
Mouse(x + 12, y, 0, 0, true)
Flag;
end;
repeat
Times:=0;
TMT := TMT + 1
if FindObjCustom(x, y, ['Talk-to Irk'], [2965826, 2965826], 4) then
begin
Wait(50 + Random(20));
Mouse(X, Y, 1, 1, false);
Wait(50 + Random(20));
if ChooseOption('rade') then
begin
repeat
Times:= Times + 1
wait(100);
until (ShopScreen) or (Times > 20);
if shopscreen then
begin
writeln('Trading Irksol');
exit;
end;
end;
end;
until (TMT > 5);
if (not(ShopScreen)) then
begin
if(FindSymbolIn(x, y, 'gem stall', MMX1, MMY1, MMX2, MMY2)) then
begin
Mouse(x + 12, y, 0, 0, true)
Players[CurrentPlayer].loc := 'gem stall';
FindIrksol;
end;
end
else
Writeln('Could Not Find Irksol.');
end
else
Logout;
end;
Procedure BuyRings;
begin
FindIrksol;
begin
wait(100 + random(2000));
MouseBox(74,101,85,111, 3)
if(IsUpText('Ruby'))then
begin
writeln('Buying rings');
getmousepos(x, y)
wait(100 + random(100))
Mouse(x,y,0,0,false)
ChooseOption('Buy X')
Wait(1000 + random(300))
TypeSend(IntToStr(RandomRange(28, 99))); //slight change by WhoCares357
CloseWindow;
end
else
begin
MouseBox(50, 70, 116, 79, 1)
wait(1000 + random(600))
BuyRings;
end;
Wait(300 + random(400))
end;
end;
procedure Progress;
begin
Cleardebug;
if (loggedin=false) or (Counter > ToDo) then
begin
Writeln('----------------------------------------------');
Writeln(' _____________________________________________');
Writeln('- Sleziak''s Zanaris alcher ');
Writeln('- Ran for: ' + (TimeRunning) + ' ');
Writeln('- Alched ' +IntToStr(Counter)+ ' rings ');
writeln('- You have gained ' + IntToStr(exp) + ' Exp!' );
Writeln('- Succesfully alched all requested rings ');
Writeln('- Post this proggy please ;) ');
Writeln('-_____________________________________________');
Writeln('----------------------------------------------');
terminatescript;
end
else
begin
Cleardebug;
if(Counter < ToDo) then
begin
Writeln('----------------------------------------------');
Writeln(' _____________________________________________');
Writeln('- Sleziak''s Zanaris alcher ');
Writeln('- Ran for: ' + (TimeRunning) + ' ');
Writeln('- Alched ' +IntToStr(Counter)+ ' rings ');
Writeln('- You have gained ' + IntToStr(exp) + ' Exp! ');
Writeln('- Still running! ');
Writeln('- Post this proggy please ;) ');
Writeln('-_____________________________________________');
Writeln('----------------------------------------------');
end
end
end;
procedure Checkrunes;
begin
if (FindBlackChatMessage('ature')) then
TerminateScript;
end;
procedure Alch;
var
_x, _y : Integer; //required for fix by WhoCares357
begin
repeat
if (not(LoggedIn)) then
LoginPlayer;
FindNonInventoryRandoms;
wait(400+random(100));
Cast('high level alchemy');
Wait(10 + random(20));
GetMousePos(_x, _y); //fix by WhoCares357
Wait(50 + random(100));
Mouse(_x, _y, 0, 0, true);
findcolortolerance(a,b,1749707,555,213,722,453,2);
mmouse(a+random(5),b+random(5),0,0)
wait(1600+random(100));
if not findcolortolerance(a,b,1749707,555,213,722,453,2) then
begin
buyrings;
end
else
mouse(a,b,0,0,true);
checkrunes;
exp:= exp + 65;
counter:= counter + 1;
progress;
until(false);
end;
Procedure ScriptTerminate;
Begin
progress;
WriteLn('Out of runes!');
if logo = true then logout
else
WriteLn('Finished script/Out of runes!');
end;
begin
SetUpSRL;
DeclarePlayers;
ActivateClient;
LogInPlayer;
Wait(2000);
SetAngle(True);
MakeCompass('N');
SetRun(True);
repeat
BuyRings
alch;
findnormalrandoms;
checkrunes;
progress;
wait(2000 + random(200));
until(loggedin=false)
end.
By the way. If you don't want to use the fixed version that I posted there's a fix to the spell problem here:
http://www.villavu.com/forum/showthread.php?t=44500
This ones pretty good, my best so far. Idk why it stopped, it solved a random and decided to log out.
Code:---------------------------------------------- _____________________________________________ - Sleziak's Zanaris alcher - Ran for: 3 Hours, 20 Minutes and 12 Seconds - Alched 3275 rings - You have gained 212875 Exp! - Still running! - Post this proggy please ;) -_____________________________________________ ----------------------------------------------
and my worst one
Code:---------------------------------------------- _____________________________________________ - Sleziak's Zanaris alcher - Ran for: 22 Seconds - Alched 1 rings - You have gained 65 Exp! - Still running! - Post this proggy please ;) -_____________________________________________ ---------------------------------------------- ***** STR: FOUND RANDOM: 'Leo The Gravedigger' ***** ***** STR: 'Leo The Gravedigger' RANDOM SOLVING FAILED! *****
Last edited by tom43; 05-02-2009 at 06:19 AM.
Okay i just have a few suggestions; idk if this is right to do this so sorry if it's bad. I've never scripted ever but it worked for me so here it is.
I found the ToDo thing a little off; first of all it did one more than you said (which is nothing really but whatever) and when it reached that number it just terminates the script instead of logging you out. So I added a
in between lines 90 and 91; aka so ScriptTerminate; would be moved to line 92. also I added aCode:logout;
at the end of ToDo on line 79. Hopefully this doesnt screw anything up I tested it about 5 times and it seemed to work so ya.Code:- 1
Last edited by tom43; 05-01-2009 at 05:12 AM.
Why is that? My method types a random number from 28 to 99 with TypeSend (which is not detectable). His method only has 8 possible numbers to type and SendKeys IS detectable.
99 - 28 = 71 possible numbers which is greater than 8 possible numbers. Therefore, my method is more "antiban".
Just because something has less lines of code does not mean it's worse.
If he were to use typesend it would be better, but what I am saying is, when playing a game, i dont type any random number between 28, and 99... If you think that makes it a good antiban, you are surely mistaken. Humans tend to go for the easiest way to do something... so pressing 2 numbers that are close together, hence: 32, 54, 45, 65, 87, 98, 78, 56, etc. You would not see people typing: 49, 37, 86, 42.
Hax0r
There are currently 1 users browsing this thread. (0 members and 1 guests)