PDA

View Full Version : Sleziak's Zanaris Ring alcher!! (Cheapest way to alch!!)



sleziak
04-20-2009, 05:24 AM
Zanaris Ring Alcher

Alches Ruby rings in zanaris.


Requirements:

- Completed the 'Lost City' quest
- 55 Magic
- Dramen Staff
- 1 Cut diamond to get to the gem shop
- Nature runes
- Staff of fire/Lava staff
- And atleast 30k to start with


How do i get there?

Equip your Dramen staff and teleport to lumbridge and follow this route:

http://i41.tinypic.com/nl91g9.jpg

And

http://i40.tinypic.com/zof2tt.jpg

AND RUN THE SCRIPT!


Loss per alch:

The prices of nature runes changes too often but the loss will be between 10-30 GP per alch (+ an uncut diamond)

Enjoy and post proggies please!

Reworking =D6852

Awkwardsaw
04-20-2009, 05:27 AM
reserved. i'll take a look at it =D

i might use this on my way to 99 mage

it looks like a good script, i need to test it out

edit: you need to work on your standards, my eyes are now killing me =p

also for your alching, your using the same coord every time you alch. unless you want to be banned after a few hundred alchs, make it a random coord after every 100( + random 50-100 ) alchs, take a look at my alcher for an example, its pretty anti-bann'd and flawless

also, you need to add antiban and antirandoms :) a nessesity for every script

randy marsh
04-20-2009, 07:04 AM
ur siggie is asking for a ban

FLUX_
04-20-2009, 07:10 AM
Thank you very much, this is just what I needed. Will post proggies.

sleziak
04-20-2009, 07:24 AM
reserved. i'll take a look at it =D

i might use this on my way to 99 mage

it looks like a good script, i need to test it out

edit: you need to work on your standards, my eyes are now killing me =p

also for your alching, your using the same coord every time you alch. unless you want to be banned after a few hundred alchs, make it a random coord after every 100( + random 50-100 ) alchs, take a look at my alcher for an example, its pretty anti-bann'd and flawless

also, you need to add antiban and antirandoms :) a nessesity for every script

Fixed the cords issue, i was a lil tired last night :)
Antiban will be added soon and uhm Antirandoms? isn't 'findnormalrandoms' and 'findnoninventoryrandoms' enough?


+ I don't bot on the guy in my sig :) so if jagex bans him then they fail

bgxsaer
04-20-2009, 08:58 AM
Once this script is finalized i will get 90-95 mage with it, and help you out with bugs etc :).

Awkwardsaw
04-20-2009, 09:03 AM
Fixed the cords issue, i was a lil tired last night :)
Antiban will be added soon and uhm Antirandoms? isn't 'findnormalrandoms' and 'findnoninventoryrandoms' enough?


oh, sorry, i didnt see it =p i was tired my self:o

i'll try to test this out tonight

WhoCares357
04-20-2009, 11:18 AM
Pretty solid script for a Junior Member. The only thing I really think you might want to change is this:

Procedure BuyRings;
begin
FindIrksol;
begin
wait(random(2000));

What happens if it doesn't find Irksol. This might be a great opportunity for you to learn functions (because they send out a value like true or false when they're used). If you made FindIrksol a function you could check whether or not he was found.

If you don't know what I'm talking about and want to learn it, pm me with your msn/aim/yahoo/whatever.

Good luck with maintaining the script. And if you ever need help, I'd do it gladly. I appreciate people who learn take their time to learn and create rather than just leech (no offense to the rest of you ;)).

sleziak
04-20-2009, 11:31 AM
(too long quote)
Good luck with maintaining the script. And if you ever need help, I'd do it gladly. I appreciate people who learn take their time to learn and create rather than just leech (no offense to the rest of you ;)).

I would love if you could help me with some things, i'm kinda new to scripting and i try to learn as much as i can to become a 1337 scripter :')
+
I know how to use functions but i never find a way to use em efficiently :( (need some help)

WhoCares357
04-20-2009, 06:58 PM
I would love if you could help me with some things, i'm kinda new to scripting and i try to learn as much as i can to become a 1337 scripter :')
+
I know how to use functions but i never find a way to use em efficiently :( (need some help)

PM me with your msn (or whatever messenger you use) and I'll show you.

Floor66
04-20-2009, 10:10 PM
example;

function TradeIrksol: Boolean;
begin
//FindObject stuff here
if ShopScreen then
begin
Result := True;
Exit;
end;
end;

procedure Buy;
begin
if not ShopScreen then
if not TradeIrksol then
exit;
//stuff
end;

Sean[714]
04-21-2009, 05:29 AM
Hm this is a really good idea!
I'd love to try it out, but can't risk getting my 125 banned.

Anyways, good luck!

bgxsaer
04-21-2009, 08:35 AM
Hm this is a really good idea!
I'd love to try it out, but can't risk getting my 125 banned.

Anyways, good luck!

Ya this script seems incredibly clever, im just waiting for him to finalize it because ill be using it on my 130 :D. Gotta get 90-99 Magic.

sharpy172
04-21-2009, 11:38 PM
ive been trying it wit smart and it go to buy window then wont buy,closes window and finds again.. i think its this function

Procedure BuyRings;
begin
FindIrksol;
begin
wait(random(2000));
MouseBox(74,101,85,111, 3)
if(IsUpText('Ruby Ring'))then
begin
writeln('Buying rings');
getmousepos(x, y)
wait(100)
Mouse(x,y,0,0,false)
ChooseOption('Buy X')
Wait(1000)
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;

Frt
04-22-2009, 12:07 AM
Was bored so figured you might would appreciate me fixing your standards :)
Here you go:
program new;
{.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; // You should make this a function and make it return a boolen of whether Irksol is found or not.
var
TMT, Times: Integer;
begin
if not ShopScreen then
begin
Wait(2000 + Random(3000));
if FindSymbol(x, y, 'gem stall') then
begin
Writeln('Walking to gem stall');
Flag;
Mouse(x + 12, y, 0, 0, true);
Flag;
end;
repeat
Times := 0;
Inc(TMT);
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 + Random(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 FindSymbol(x, y, 'gem stall') 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; // Here you could use "if FindIrkSol then"
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(200));
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;
CloseWindow;
end else
begin
MouseBox(50, 70, 116, 79, 1);
Wait(100 + Random(600));
BuyRings; // Infinity loop?
end;
Wait(400 + Random(100));
end;

procedure Progress;
begin
ClearDebug;
if not(LoggedIn) 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;
begin
repeat
if (not(LoggedIn)) then
LoginPlayer;
FindNonInventoryRandoms;
Wait(400 + random(100));
Cast('high level alchemy');
if FindColorTolerance(a, b, 1749707, 555, 213, 722, 453, 2) then
begin
MMouse(a + Random(5), b + Random(5), 0, 0);
Wait(1600 + Random(100));
end else
BuyRings;
Mouse(a, b, 0, 0, True);
CheckRunes;
exp := exp + 65;
counter := counter + 1;
Progress;
until(false); // Add failsafes
end;

Procedure ScriptTerminate;
begin
Progress;
WriteLn('Out of runes!');
if logo then
Logout
else
WriteLn('Finished script/Out of runes!');
end;

begin
SetUpSRL;
DeclarePlayers;
LoginPlayer;
Wait(2000 + Random(200));
repeat
SetAngle(True);
MakeCompass('N');
SetRun(True);
BuyRings;
Alch;
FindNormalRandoms;
CheckRunes;
Progress;
Wait(2000 + Random(200));
until(not(LoggedIn));
end.

Floor66
04-22-2009, 01:43 AM
I think we all can say Frt is unoficially already SRL mem ^^
You're already a standard nazi; me too ;)

impiwimpi
04-22-2009, 02:41 AM
He definetely should be xD
/me not like nazis! :(

WhoCares357
04-22-2009, 04:22 AM
You forgot to fix DeclarePlayers, Frt.

deathcrow92
04-23-2009, 05:50 AM
tell me when you put anti ban in it cuz i want to try =) without a high risk of getting banned lol.

Neosage1985
04-23-2009, 09:08 PM
I had a hell of a time getting this to work, so I redid some of it. The findkeeper function is jethr0x's. Feel free to use any changes I've made if you wish. Oh, and the dtm is from akwardsaw (I can't seem to get my dtms to ever work) and this script uses smart and reflection.

newer version below...

Progress report I got with my version (ran out of runes):
----------------------------------------------
_____________________________________________
- Sleziak's Zanaris alcher
- Ran for: 1 Hours, 23 Minutes and 55 Seconds
- Alched 1216 rings
- You have gained 79040 Exp!
- Still running!
- Post this proggy please ;)
-_____________________________________________
----------------------------------------------

bgxsaer
04-24-2009, 02:37 AM
I had a hell of a time getting this to work, so I redid some of it. The findkeeper function is jethr0x's. Feel free to use any changes I've made if you wish. Oh, and the dtm is from akwardsaw (I can't seem to get my dtms to ever work) and this script uses smart and reflection.


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 '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
cx,cy,counter,exp,HAlchDTM,OldItemSlots,NewItemSlo ts : integer;
FirstCast : boolean;
ItemSlots: TIntegerArray;

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 LoadDTM;
begin
HAlchDTM := DTMFromString('78DA63B46662604860644006BFBEF180699 82' +
'8A31D504D04AA1A982C5C8D03116A9C816A5209A83102AA49 22A0' +
'C61EA82604BF1A004F1D05B8');
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
Status('Finding storekeeper.');
repeat
FindKeeper;
Flag;
Wait(random(1000));
FirstCast := true;
until (ShopScreen);
Status('Buying rings.');
Mouse(75+random(10),100+random(10),0,0,false);
ChooseOption('Buy X');
Wait(1000);
case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;
CloseWindow;
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;
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(HAlchDTM, cx, cy, 559, 336, 583, 360) then
begin
Status('alching.');
MMouse(cx,cy,0,0);
wait(random(100));
if (IsUpText('ast')) then
begin
mouse(cx,cy,0,0,true);
FirstCast := false;
end;
end;
wait(500+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
FirstCast := true;
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.


Progress report I got with my version (ran out of runes):
----------------------------------------------
_____________________________________________
- Sleziak's Zanaris alcher
- Ran for: 1 Hours, 23 Minutes and 55 Seconds
- Alched 1216 rings
- You have gained 79040 Exp!
- Still running!
- Post this proggy please ;)
-_____________________________________________
----------------------------------------------


So you added anti-ban and anti-randoms :)?
SaWEET!

Neosage1985
04-24-2009, 03:22 AM
Apart from slightly more randomness and a lot more accurateness, no. It already had anti randoms though.

tom43
04-24-2009, 09:14 AM
Your version (neosage) it finds the shopkeeper good but doesnt buy just right clicks a shit lot inside the store window with the rings idk why it just cant right click the rings. This script would kick ass, now you loose like 27k per 1k alcs. which is incredible.

Neosage1985
04-24-2009, 05:11 PM
This should work better. (updated buying and put standards in)
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 = 2000; //How many rings do you want to alch? If you're using all your nature runes, set 1 higher.
logo = false; //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('78DA63B46662604860644006BFBEF180699 82' +
'8A31D504D04AA1A982C5C8D03116A9C816A5209A83102AA49 22A0' +
'C61EA82604BF1A004F1D05B8');
dtmRing := DTMFromString('78DA638C626060286340011EF6C6609A11C A6' +
'78C011239A86A36A88AA2AA89031225A86A2E6C934455130D 24AA51D' +
'5EC592A8EAA26144854A1AAB9B4430A554D389028445533BB 5D18554' +
'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
Status('Finding storekeeper.');
FirstCast := true;
repeat
FindKeeper;
Flag;
Wait(Random(1000));
until (ShopScreen);
Status('Buying rings.');
if FindDTM(dtmRing, cx, cy, MSX1, MSY1, MSX2, MSY2) then
begin
Mouse(cx, cy, 7, 7, false);
Wait(100 + Random(200));
ChooseOption('uy X');
end;
Wait(1000);
case Random(8) of
0: TypeSend('28');
1: TypeSend('32');
2: TypeSend('54');
3: TypeSend('55');
4: TypeSend('65');
5: TypeSend('65');
6: TypeSend('98');
7: TypeSend('87');
end;
CloseWindow;
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.

randy marsh
04-25-2009, 06:25 AM
Did you add some anti ban then?

by the way you need a CUT diamond

And when alchying do u make it click in the bottom right hand corner?

tom43
04-25-2009, 07:32 AM
This should work better. (updated buying and put standards in)
quote too long Alright thanks bro, I'll test it out. Give me like 5.

EDIT: no dude it still wont buy the rings still finds the keeper and keeps right clicking. I see people autoing there all the time how do they do it?

Neosage1985
04-25-2009, 09:57 AM
What does it say in the bottom of the screen -- the status message?

tom43
04-25-2009, 10:04 AM
it says finding shopkeeper even though it already has.

Neosage1985
04-25-2009, 10:57 AM
Then the until(shopscreen) isn't working for you. I don't really know how to help you with that.

tom43
04-25-2009, 11:10 AM
does it work for you? what should i download.

FLUX_
04-25-2009, 12:02 PM
This should work better. (updated buying and put standards in)

This script won't find the ruby rings in the store. Any help?

tom43
04-25-2009, 02:15 PM
This script won't find the ruby rings in the store. Any help?

Ya dog same problem read up like 2 posts

Da 0wner
04-25-2009, 02:46 PM
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?

FLUX_
04-25-2009, 06:42 PM
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?
Yeah, nobody's picked up on this until now?

tom43
04-25-2009, 09:53 PM
Oh my god, thank jesus that it couldn't click the rings.

WhoCares357
04-26-2009, 12:51 AM
He's away. Just replace

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

TypeSend(IntToStr(RandomRange(28, 99)));

tom43
04-26-2009, 04:29 AM
He's away. Just replace

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

TypeSend(IntToStr(RandomRange(28, 99)));

Do you have any idea why its not buying the rings?

EDIT: okay if I buy the rings myself then it can alc them the only thing it can't do is buy.

WhoCares357
04-26-2009, 07:06 AM
Do you have any idea why its not buying the rings?

EDIT: okay if I buy the rings myself then it can alc them the only thing it can't do is buy.

I don't have a member's account, so I haven't tested it.

FLUX_
04-26-2009, 10:06 AM
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('78DA63B46662604860644006BFBEF180699 82' +
'8A31D504D04AA1A982C5C8D03116A9C816A5209A83102AA49 22A0' +
'C61EA82604BF1A004F1D05B8');
dtmRing := DTMFromString('78DA638C626060286340011EF6C6609A11C A6' +
'78C011239A86A36A88AA2AA89031225A86A2E6C934455130D 24AA51D' +
'5EC592A8EAA26144854A1AAB9B4430A554D389028445533BB 5D18554' +
'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.

tom43
04-26-2009, 02:45 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 ;)
-_____________________________________________
----------------------------------------------

sleziak
04-27-2009, 05:21 AM
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 ;)
-_____________________________________________
----------------------------------------------

using my original script? :p

WhoCares357
04-27-2009, 05:44 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:

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.

tom43
04-27-2009, 05:50 AM
using my original script? :p

no dog sorry FLUX's

FLUX_: the only thing is that sometimes it buys the rings, and then buys them again even tho it already did; not a problem at all just a little bug.

WhoCares357
04-27-2009, 06:29 AM
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

tom43
04-28-2009, 04:41 AM
This ones pretty good, my best so far. Idk why it stopped, it solved a random and decided to log out.

----------------------------------------------
_____________________________________________
- 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


----------------------------------------------
_____________________________________________
- 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! *****

tom43
05-01-2009, 05:08 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


logout;

in between lines 90 and 91; aka so ScriptTerminate; would be moved to line 92. also I added a


- 1

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.

Jethr0x
05-04-2009, 04:51 AM
He's away. Just replace

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

TypeSend(IntToStr(RandomRange(28, 99)));

his way has way more antiban than what you just said.

WhoCares357
05-04-2009, 08:44 AM
his way has way more antiban than what you just said.

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.

sleziak
05-04-2009, 01:24 PM
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.

i'll start reworking my script today =D

Jethr0x
05-04-2009, 07:40 PM
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.

WhoCares357
05-05-2009, 04:18 AM
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.

I seriously doubt the Jagex anti-macro system is that picky.

noob-2
05-10-2009, 06:06 AM
This could be an amazing script over time.
Good job.

Zodia
05-11-2009, 12:28 PM
Alching is not working out. It won't detect the spell.

brad734
06-18-2009, 01:10 PM
re add plz or send to me ? i rly need :D

Cstrike
07-21-2009, 11:20 AM
Yeah when is this going to come back up and online?

turbobk
07-26-2009, 08:54 PM
When I fix up my Zanaris Ring Alcher that I made ages ago ill post it.
No offence and good try but mine pwns this..
Mine uses color + reflection and its flawless, this is a proggy from ages ago before i made it even better(before the major rs graphical update), and im going to make it even faster.


*~*~* Zanaris Ruby Ring Alcher *~*~*
* Made By: TurboBk
*~*~* ~**~*
* Player: ******* ***.
* Ran For: 2 Hours, 47 Minutes and 12 Seconds.
* Estimated Exp P/H: 58,718.
* Money Gained: 466,497.
* Total Money Lost: 42,151.
* Nats Used: 2,363.
* Rings Alched: 2,363.
* Loads Done: 94.
* Levels Gained: 0.
* Exp Gained: 156,695.
* Randoms Encountered: 0.
*~*~* *~*~*


Manually stopped aswell..
Hope u all look forward to it.

Cstrike
07-26-2009, 09:38 PM
When I fix up my Zanaris Ring Alcher that I made ages ago ill post it.
No offence and good try but mine pwns this..
Mine uses color + reflection and its flawless, this is a proggy from ages ago before i made it even better(before the major rs graphical update), and im going to make it even faster.


*~*~* Zanaris Ruby Ring Alcher *~*~*
* Made By: TurboBk
*~*~* ~**~*
* Player: ******* ***.
* Ran For: 2 Hours, 47 Minutes and 12 Seconds.
* Estimated Exp P/H: 58,718.
* Money Gained: 466,497.
* Total Money Lost: 42,151.
* Nats Used: 2,363.
* Rings Alched: 2,363.
* Loads Done: 94.
* Levels Gained: 0.
* Exp Gained: 156,695.
* Randoms Encountered: 0.
*~*~* *~*~*


Manually stopped aswell..
Hope u all look forward to it.

Time frame of release?

yo123
07-27-2009, 06:08 AM
when is the new updated version going to get released? :)

spicynachos2
08-03-2009, 03:16 AM
Me and Ian have made a fixed/ highly updated and nearly remade version of the script... I have asked for permission to post it in a new thread with credits but gotten no reply yet... It works like a charm... Still adding lots of new features however.

Cstrike
08-03-2009, 09:25 AM
Me and Ian have made a fixed/ highly updated and nearly remade version of the script... I have asked for permission to post it in a new thread with credits but gotten no reply yet... It works like a charm... Still adding lots of new features however.

Just post it. He's been gone FOREVER and we can help you test out the bugs. You can either post it in here, or make a new thread sourcing this one.
EASY :)

spicynachos2
08-06-2009, 02:21 PM
Just post it. He's been gone FOREVER and we can help you test out the bugs. You can either post it in here, or make a new thread sourcing this one.
EASY :)

I don't need help but i am going to continue building the script... it would have been released today if i hadn't gotten hacked last night. I lost 40m and for now i have to make my cash back so that i can continue to make script so that i can get 99... + i might not release till i get 99 cause well the more people using a script the more likely it is for a loss. I really also would like to develop it to a script that i could use to get into members since i got declined with my last one. For now it is not sufficient because it is mostly other people's work just credited and put together. I am sorry.

Cstrike
08-06-2009, 09:52 PM
I don't need help but i am going to continue building the script... it would have been released today if i hadn't gotten hacked last night. I lost 40m and for now i have to make my cash back so that i can continue to make script so that i can get 99... + i might not release till i get 99 cause well the more people using a script the more likely it is for a loss. I really also would like to develop it to a script that i could use to get into members since i got declined with my last one. For now it is not sufficient because it is mostly other people's work just credited and put together. I am sorry.

I'm sorry you got hacked, thats terrible.

EDIT: NVM just focus on getting better.

wesleyxD
08-10-2009, 09:23 PM
where is the script?

spicynachos2
08-13-2009, 10:38 AM
where is the script?

The script posted on here is broken. I fixed it up but i not realeasing for like 2 months likely because i must first make back my cash then do 89-99 mage then realease. in that time it will likely get broken so i will have to fix it up again. ohh well its all good. Sorry.

xcvxcv2
08-13-2009, 11:00 AM
The script posted on here is broken. I fixed it up but i not realeasing for like 2 months likely because i must first make back my cash then do 89-99 mage then realease. in that time it will likely get broken so i will have to fix it up again. ohh well its all good. Sorry.



can you release the broken one so the people who know how to script here can fix it up for them privately? because i really need a good alcher and i think im going to make one soon if i need more mage levels after alching these last few bows