SRL Archive - RS3 Script Requests

Alching Rune Arrows


Footy

2012-07-07 14:29:38

In every alcher I use, I notice comments saying It wont alch arrows! It keeps equipping the arrows!!! yadda yadda yadda. If I made a specialized arrow alcher, would you guys use it? I'm not going to make a script if no-one needs it. The XP would be near the same as the others, with antiban, proggy, and possibly Smartproggy! Tell me what you guys think!

Abu

2012-07-07 14:40:30

Don't know much about Alching, but doesn't it yield the same XP Per Cast regardless of the item?

bloopa1

2012-07-07 14:55:51

From: abu_jwka
Don't know much about Alching, but doesn't it yield the same XP Per Cast regardless of the item?


yes but rune arrows are the prefect thing to alc, they dont loss much money, and u can buy mass amounts at once in ge.

Runaway

2012-07-07 14:59:56

Couldn't you just edit a pre-existing alcher to allow for arrows? And when does it equip them, anyways? A miss-click? I don't understand…

Abu

2012-07-07 15:04:12

Wait a sec, don't you just click the spell and then the item location?

So fixed co-ordinates therefore no miss-clicks…

Footy

2012-07-07 15:09:35

From: abu_jwka
Don't know much about Alching, but doesn't it yield the same XP Per Cast regardless of the item?


What bloopa said, very high GE limit and minimum loss. The thing is though, most alchers will equip the arrows after a while, so i was wondering if anyone wanted an specialty alcher for arrows, so they will never equip, and if they do, it will put them back in the inventory.

E: Im not sure when it clicks them, likely when its clicking too fast, or a missclick, im not sure. But somehow, I always come back to any alcher in SRL and its clicking my random places with my arrows equiped.

Abu

2012-07-07 15:16:04

Actually, there is no need for this.

Once you click the spell and then the noted item, you just wait for the runes to run out and there's no risk of equipping because the items NOTED.

The item they decide to use, be it rune arrows or leather, is up to the user. Sure you could make the script and recommend arrows, but there's no use limiting it to arrows when it can work with any noted item in a given inventory slot.


From: Foooty

E: Im not sure when it clicks them, likely when its clicking too fast, or a missclick, im not sure. But somehow, I always come back to any alcher in SRL and its clicking my random places with my arrows equiped.


If items are noted, no risk of equipping.

Footy

2012-07-07 15:28:27

From: abu_jwka
Actually, there is no need for this.

Once you click the spell and then the noted item, you just wait for the runes to run out and there's no risk of equipping because the items NOTED.

The item they decide to use, be it rune arrows or leather, is up to the user. Sure you could make the script and recommend arrows, but there's no use limiting it to arrows when it can work with any noted item in a given inventory slot.




If items are noted, no risk of equipping.


Most Items that stack such as arrows will Not note, the bank will say this item is unable to be noted. The script will be specifically for Rune arrows, nothing else. If anyone wants to alch anything else, Teh's alcher will probably work better. I may start working on compatibility for other items, but for now, it utilises a DTM of arrows.

Runaway

2012-07-07 15:29:59

From: abu_jwka
Actually, there is no need for this.

Once you click the spell and then the noted item, you just wait for the runes to run out and there's no risk of equipping because the items NOTED.

The item they decide to use, be it rune arrows or leather, is up to the user. Sure you could make the script and recommend arrows, but there's no use limiting it to arrows when it can work with any noted item in a given inventory slot.




If items are noted, no risk of equipping.


Well, you can't note arrows :p All you have to do is add this to the alch loop:


if ExistsItem(Slot) then
begin
//MouseTBox(SlotBox, mouse_left);
//Whatever is done when clicking the item to alch
end else
begin
if ItemEquipped('arrows') then
MouseEquippedItem('arrows', mouse_left);
Wait(500+Random(250));
GameTab(tab_Inv);
end;

There's no function for ItemEquipped() so I whipped one up real quick:


function ItemEquipped(Which: Variant): Boolean;
var
Box: TBox;
begin
if not LoggedIn then Exit;
GameTab(tab_Equip);
Box := GetEquippedItemBounds(Which);
Result := FindColor(x, y, srl_outline_black, Box.x1, Box.y1, Box.x2, Box.y2);
end;

That should solve any issues with arrows :)

EDIT: You should set the slot to alch to 1, since unequipping the arrows will automatically place them in the first open slot.

bloopa1

2012-07-07 15:30:51

From: Foooty
Most Items that stack such as arrows will Not note, the bank will say this item is unable to be noted. The script will be specifically for Rune arrows, nothing else. If anyone wants to alch anything else, Teh's alcher will probably work better. I may start working on compatibility for other items, but for now, it utilises a DTM of arrows.


im gunna be honest i had this problem at about 88 mage and then i just used and auto clicker all the way to 99…..i did this about 7 months ago and the account is still alive and thriving just sayin its an option

bloopa1

2012-07-07 15:32:26

just do what runaway said

Footy

2012-07-07 15:34:44

@Runaway, thats fairly close to what I'm doing, except since im using a dtm, Ill use if finddtm blah blah
blah else
begin
Fails := Fails+1
exit
end;

Then it will retry once more, if it still cant find dtm, it will open equippeditems and unequip arrows. Fairly simple

Benny

2012-07-07 16:20:03

May as well give it a shot to work on your scripting skills

x[Warrior]x3500

2012-07-07 16:21:27

just as an fyi, i already made a private script for this (in fact im runnin it as we speak). feel free to pm me if u want it

Roflme

2012-07-07 17:04:53

From: Runaway
Well, you can't note arrows :p All you have to do is add this to the alch loop:


if ExistsItem(Slot) then
begin
//MouseTBox(SlotBox, mouse_left);
//Whatever is done when clicking the item to alch
end else
begin
if ItemEquipped('arrows') then
MouseEquippedItem('arrows', mouse_left);
Wait(500+Random(250));
GameTab(tab_Inv);
end;

There's no function for ItemEquipped() so I whipped one up real quick:


function ItemEquipped(Which: Variant): Boolean;
var
Box: TBox;
begin
if not LoggedIn then Exit;
GameTab(tab_Equip);
Box := GetEquippedItemBounds(Which);
Result := FindColor(x, y, srl_outline_black, Box.x1, Box.y1, Box.x2, Box.y2);
end;

That should solve any issues with arrows :)

EDIT: You should set the slot to alch to 1, since unequipping the arrows will automatically place them in the first open slot.

This, or you could simply use a DTM

if not FindDTM(arrow, yadayadayada) then
equips tab
click on arrow
magic tab

EDIT: I'm an idiot Runaway's function already does that :p

Runaway

2012-07-07 17:45:04

From: Foooty
@Runaway, thats fairly close to what I'm doing, except since im using a dtm, Ill use if finddtm blah blah
blah else
begin
Fails := Fails+1
exit
end;

Then it will retry once more, if it still cant find dtm, it will open equippeditems and unequip arrows. Fairly simple


From: Roflme
This, or you could simply use a DTM

if not FindDTM(arrow, yadayadayada) then
equips tab
click on arrow
magic tab

EDIT: I'm an idiot Runaway's function already does that :p


Well you can definitely use a DTM for this, but it would be much more efficient if you only use it when the script is unaware of the placement of the item to be alched. For example:


var
AlchSlot: Integer;

// ^ Global
// Then on script startup:

AlchSlot := 0;

That way, in your alching procedure, you could do something along the lines of:


if (AlchSlot = 0) then
begin
if FindDTM(x, y, {more parameters}) then
AlchSlot := CoordsToItem(x, y);
// ...
end else
begin
if ExistsItem(AlchSlot) then
begin
// Alch ...
end else
// Un-equip, etc ...
end;

Just a suggestion. It would cut down on DTM usage which is pretty CPU intensive compared to other things :)

Footy

2012-07-07 22:21:54

Thanks for the feedback guys! Ill release the script tomorrow hopefully! I might use DTMs just because I need practice with them, ive never really used them before.

Benny

2012-07-07 22:24:20

Practice makes perfect!

kazzos

2012-07-07 22:32:21

From: Foooty
Ill release the script tomorrow hopefully!.


Can't wait!

Fascinate

2012-07-07 23:19:16

You could have some other type of arrows equipped such as bronze and then try and find the dtm of the bronze arrows in your inventory. If it returns false then you could continue casting but if not it will just click the bronze arrows to equip them and return the rune arrows to your inventory eliminating the need to switch game tabs. Im sure this would work great but im not sure if this would be the best way to do it. Just throwing out what came to mind.

Roflme

2012-07-08 00:56:15

From: Runaway
Well you can definitely use a DTM for this, but it would be much more efficient if you only use it when the script is unaware of the placement of the item to be alched. For example:


var
AlchSlot: Integer;

// ^ Global
// Then on script startup:

AlchSlot := 0;

That way, in your alching procedure, you could do something along the lines of:


if (AlchSlot = 0) then
begin
if FindDTM(x, y, {more parameters}) then
AlchSlot := CoordsToItem(x, y);
// ...
end else
begin
if ExistsItem(AlchSlot) then
begin
// Alch ...
end else
// Un-equip, etc ...
end;

Just a suggestion. It would cut down on DTM usage which is pretty CPU intensive compared to other things :)


Alright, reread that code a few times and I think I understand it now :p

To the OP, best of luck :)

EtherFreak

2012-07-08 01:10:29

I would just go with something like the following:

Natures in first slot, arrows in second. antiban where needed of as well. this would then work for any arrow/stacked item.

program new;
{.include SRL/SRL.simba}
{.include SRL/SRL/skill/magic.simba}

const
loadcount=1;
var
count:integer;

begin
count:=0
setupsrl;
repeat
inc(count);
cast('high level alchemy',false);
wait(500+random(500));
invmouse(2,1)
wait(3000+random(1000));
if invcount<2 then
begin
writeln('must have misclicked or logged out, logging you out to be safe');
logout;
terminatescript;
end;
until count=loadcount
end.

Footy

2012-07-08 11:03:31

Just finished it, gonna test it 6 hours, then I'll release it. Thanks for all the feedback and tips guys! Much appreciated!