SRL Archive - RS3 Outdated / Broken Scripts

Alching Machine


tico2

2009-08-24 13:53:38

Alching Machine


Status: Offline (Yagex made new updates and it's pointless to update this. Lucky I got 99 mage in time :p)



This is my first script! It alches ruby rings at Zanaris or noted items.

Setup

Zanaris

- Put your account near Irksol
- Have at least 30k coins in the 27th solt
- Have some Nature runes in the 28th solt
- Have lava or fire staff equipped

Normal

- Have the noted items in the 19th solt
- Have lava or fire staff equipped

Click play!


- Normal Alch: True = noted alching, False = Zanaris
- Loads to do: Total amount of inventories a player should do. If using noted option 1 load = 28 alches
- Loads before break: The scprit will take a break every X loads
- Breaks for X minutes: It will break for the number of mintes + some random

Features

- AntiBan
- AntiRandoms
- Progres report
- Breaks
- MultyPlayer (not really tested :p)
- A very human-like way of ruby ring alching
- SRL palyer form

The smart version has 2 lines of reflection (finding Irksol) so you need reflection for it. In the SMART version, i have also removed the find gem stall symbol on the minimap, because it war unreliable in was loging out to may times. This funtion still is the normal version. I havent tested multyplayer and normal alching a lot so if there is anything wrong, pleasse tell me.

Credits

1. WhoCares357 (He tought me everything I know :p, Thanks a lot m8!)
2. Tad (He anwsered and helped me on quite a lot of my questions :))
3. My IRL RS and cheating hating friend: N37-L0RD (He helped me with the alching procedures)
4. JAD (He wrote a HUGE comment on what should i modify)

I would be very happy if someone would look at it and give me some opinions. Tell me if it's safe to run (It got me from 90 to 97 mage tho :p) so some people can use it. Tell me what I should add, fix anything at all would be very appreciated.

Here is one of my proggies:

-----------Alching machines progres report!------------
Script ran for 10 Hours, 4 Minutes and 9 Seconds
We alched 8732 items.
We gained 567580 xp.
We made 6 breaks
-----------------Thanks for using it!------------------

[B]Update Log[/B]

0.1 First public version
0.2 Version checker, news checker, more failsefes, removed usless code...

ian.

2009-08-24 16:28:20

=X Your FireStaffBMP is a 1x1 bitmap? :/ That seems like it could have some false positives.

There's something about a Note bitmap? :o Well, there shouldn't be any notes. Didn't look much.. :p

tico2

2009-08-24 17:01:19

From: ian.
=X Your FireStaffBMP is a 1x1 bitmap? :/ That seems like it could have some false positives.

There's something about a Note bitmap? :o Well, there shouldn't be any notes. Didn't look much.. :p


Well i tested the fire bitmap and it seemed to work fine. Should I make a new, bigger one?

I don't get what you mean with the notes :confused:

ian.

2009-08-24 18:40:38

Never mind.. haha. :) Sorry, I thought it was only ruby rings in Zanaris, but I see what you're doing now. And I'd just make the bitmap a little bigger, just in case. ^^

JAD

2009-08-24 19:34:44

Your LoadImages procedure takes up more lines in this case because you only have one image, and you only call LoadImages in the main loop. It would be easier to just put it in the main loop (the bitmap).

You never free the bitmap RubyRing. It is bad practice to do this as this causes a memory leak each time you run the script. That bitmap will take up memory on your machine every time you run this script if you don't free it.


FreeBitmap(RubyRing);


FindNormalRandoms will find all of the randoms and solve the ones it can. Therefore, calling FindLamp and SolveBox afterwards would be pointless because FindNormalRandoms would have already solved both of those if it found. If you want it to do the specific lamp skill, call it before FindNormalRandoms.

In FindNormalNats and FindNats, you should free the bitmap at the end of the function.


I am confused by your buyrings function. If it finds the gem stall symbol, then you look for the NPC and move the mouse there. Then, without talking to the NPC, you then click the gem stall symbol, then find the NPC.

Then in the else (if it didn't find the NPC), you have it click there like it did find him. I think what you meant to do was:


if (FindSymbolIn(x, y, 'gem stall', MMX1, MMY1, MMX2, MMY2) = true) then
begin
WriteLn ('Found gem stall.');
if (FindObjCustom(x, y, ['Talk-to Irk'], [2965826], 4) = false) then
begin
WriteLn ('Found Irksol.');
Wait(50 + random(10));
Mouse(x, y, 2, 2, false);
Wait(100 + random(50));
if (ChooseOption('rade') = true) then
begin
WriteLn ('In the shop menu.');
Wait (1000 + random (500));
MouseBox(73, 100, 84, 112, 3);
Wait (1000 + random (500));
if (IsUpText('uby')) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait (500 + random (100));
if (ChooseOption('Buy X')) then
begin
Wait(1100 + random(500));
TypeSend(IntToStr(RandomRange(26, 785)));
Wait(900 + random(500));
CloseWindow;
WriteLn ('Rings bought!');
Result:= true
end else
WriteLn ('We couldnt buy the rings!');
end;
end;
end else
begin
FindSymbolIn(x, y, 'gem stall', MMX1, MMY1, MMX2, MMY2)
Mouse(x + 12, y, 0, 0, true);
Wait(2500 + random (500));
if (FindObjCustom(x, y, ['Talk-to Irk'], [2965826], 4) = false) then
begin
WriteLn ('Couldnt find Irksol...');
LogOut;
TerminateScript;
end;
end;


When clicking the gem symbol, you should take advantage of SRL's function FFlag. You can wait until the mini map red flag is gone instead of using a wait:


FFlag(0); // waits until flag = gone

The parameter there is the distance from the flag to wait for.


If you are going to walk based off of symbols (which your next step should probably be to use a DDTM for more reliability), then you need to add a fair amount of randomness to your mouse, or else it can become detectable and bannable. You have the randomness parameters set to 0,0, which is a bad thing IMO.

In firstalch, you have:

procedure FirstAlch;
begin
begin
GameTab(tab_Magic)
if not FindColor(x, y, 1020586, 663, 371, 677, 381) then
Mouse(705, 452, 2, 2, true);
end;

Why have the begin/end there? They are not after an if/then or anything like that, they are just there for no reason.


procedure FirstAlch;
begin
GameTab(tab_Magic)
if not FindColor(x, y, 1020586, 663, 371, 677, 381) then
Mouse(705, 452, 2, 2, true);


In FirstAlch, add much more randomness to where you first click the spell. You hardly do any at all, it is almost the exact same coordinate every time.

In SecondAlch, this is not very random:

Wait(1900 + Random(15));

I would make it at least like random 400.

In Rest, add some randomness to how long the user said to rest.

Things like

if FindStaff = true then

Could simply be:

if FindStaff then

If you want.


until False;
begin
Terminate;
end;

Will never execute (in the main loop) because it goes until false and you never break out of the loop. If you want to do things when the script is terminated, add a procedure called OnTerminate. This procedure is automatically called when every script is stopped:


procedure OnTerminate;
begin
Terminate;
end;

Your main loop is a mess. I don't have the time to try to find all the problems with your logic in there, but consider trying to shorten it.





This is a great first script, and with some improvements and learning a few more advanced techniques I believe it could get you members real soon. Good job and good luck!

~JAD

tico2

2009-08-24 22:02:49

Thanks a lot! Gona fix all of these thing very soon.
Thanks again, this is exactly what i wanted :p

IPwnz

2009-08-25 15:35:28

How much money did you lose in that first proggy you showed?

tico2

2009-08-25 15:51:04

From: IPwnz
How much money did you lose in that first proggy you showed?


I don't really count how much I lose but I calculated it and I lost something around 400k.

kyleisntwild

2009-08-26 07:53:28

Pretty impressive for a first script :) A form and everything!

My first run at zanaris:

———–Alching machines progres report!————
Script ran for 1 Hours, 37 Minutes and 48 Seconds
We alched 1241 items.
We gained 80665 xp.
We made 1 breaks
We preforemed 47 antibans.
—————–Thanks for using it!——————

Stopped because stupid smart white screen :( And it took one 11 minute break :)

Well done sir and ty for the script :) (I thought I was going to have to write one myself, but luckily you posted yours just in time :p)

tico2

2009-08-26 09:01:23

From: kyleisntwild
Pretty impressive for a first script :) A form and everything!

My first run at zanaris:

———–Alching machines progres report!————
Script ran for 1 Hours, 37 Minutes and 48 Seconds
We alched 1241 items.
We gained 80665 xp.
We made 1 breaks
We preforemed 47 antibans.
—————–Thanks for using it!——————

Stopped because stupid smart white screen :( And it took one 11 minute break :)

Well done sir and ty for the script :) (I thought I was going to have to write one myself, but luckily you posted yours just in time :p)


Ty :) It'll be updated soon with more randomness and the other stuff JAD advised me to do.

kyleisntwild

2009-08-26 10:02:44

Ya I edited it a lil bit with some more randomness XD

Also, typo in your proggy. Performed not Preforemed or w/e you wrote there :p

tico2

2009-08-26 14:15:40

I think I'll upload version 0.2 now.
JAD, i have read your post a hundred times :p

I have add more randomness, fixed the usless code, put in the FFlag thing, shorten the main loop… There are also 3 things that I don't quite understand. I think my script has random break time.

procedure Rest;
begin
LogOut;
BreakFor := Players[CurrentPlayer].Integers[2] * 60000 + RandomRange(60000, 300000);
ClearDebug;
WriteLn ('We are currently taking a break. Script will be back runing after ' + (IntToStr(BreakFor / 60000)) + ' minutes.' );
Wait(BreakFor);
end;

function BuyRings: Boolean; //This Procedure has coords and some pieces of WhoCares357's Ample Alcher
begin
if FindSymbolIn(x, y, 'gem stall', MMX1, MMY1, MMX2, MMY2) then
begin
WriteLn ('Found gem stall.');
if (FindObjCustom(x, y, ['Talk-to Irk'], [2965826], 4) = false) then
begin
FindSymbolIn(x, y, 'gem stall', MMX1, MMY1, MMX2, MMY2)
Mouse(x + 12, y, 5, 10, true);
FFlag(0);
if (FindObjCustom(x, y, ['Talk-to Irk'], [2965826], 4) = false) then
begin
WriteLn ('Couldnt find Irksol...');
LogOut;
TerminateScript;
end;
end else
begin
WriteLn ('Found Irksol.');
Wait(50 + random(10));
Mouse(x, y, 2, 2, false);
Wait(100 + random(50));
if (ChooseOption('rade') = true) then
begin
WriteLn ('In the shop menu.');
Wait (1000 + random (500));
MouseBox(73, 100, 84, 112, 3);
Wait (1000 + random (500));
if (IsUpText('uby')) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait (500 + random (100));
if (ChooseOption('Buy X')) then
begin
Wait(1100 + random(500));
TypeSend(IntToStr(RandomRange(26, 785)));
Wait(900 + random(500));
CloseWindow;
WriteLn ('Rings bought!');
Result:= true
end else
WriteLn ('We couldnt buy the rings!');
end;
end;
end;
end else
WriteLn ('Couldnt find the gem stall.');
end;

I don't get whats wrong with this function so I'll tell you how I see it.

First it searches for the symbom. If it finds it, it goes on, otherwise it ends. Then it searches for Irksol. If it's false, it will click on the symbol and search for Irksol again, if it still doesn't find it, it will end. If it finds it, it will store his coords and trade him (if it found him in the begining it will trade him of corse).

I don't quite understand the OnTerminate thing. I have added it in the script but I'm not sure if it's done correctly.

That would be all, I would just also like to know wich advanced techniques should I learn and include in the scipt that you mentioned.

Thanks kyleisntwild for mentioning the wrong typing ;)

gamer716

2009-08-27 09:45:17

Failed when compiling
Line 67: [Error] (67:7): Unknown type 'TTile' in script C:\Program Files\SCAR 3.21\includes\SRL\SRL\Reflection\Characters.Scar

Why do i keep getting this error? Installed reflection wrong?

tico2

2009-08-27 09:49:00

From: gamer716
Failed when compiling
Line 67: [Error] (67:7): Unknown type 'TTile' in script C:\Program Files\SCAR 3.21\includes\SRL\SRL\Reflection\Characters.Scar

Why do i keep getting this error? Installed reflection wrong?


Probably. I can't be sure what it is but i can tell you that it's your problem :p because it works fine for me :)

gamer716

2009-08-27 16:43:20

that sucks, this script looks great. wanted to use it for 94 mage

edit: its working now, only the regular verison, the SMART script gives me that error. expect a proggy soon :)

tico2

2009-08-27 18:23:17

From: gamer716
that sucks, this script looks great. wanted to use it for 94 mage

edit: its working now, only the regular verison, the SMART script gives me that error. expect a proggy soon :)


You should use this guide to set up your reflection correctly.

gamer716

2009-08-29 07:26:11

thanks, that guide actually fixed my error! I can use the SMART version which is very useful

1 proggy so far, not as good but expect alot better more :)

-----------Alching machines progres report!------------
Script ran for 2 Hours, 11 Minutes and 50 Seconds
We alched 1734 items.
We gained 112710 xp.
We made 2 breaks
We performed 48 antibans.
-----------------Thanks for using it!------------------

Player is not Active...
NextPlayer

logged out caused of random, but it solved it? found the gift box in my inventory…

EDIT: fixed the script up with the new rs updates. working great so far! look at this proggy for one account

———–Alching machines progres report!————
Script ran for 7 Hours, 1 Minutes and 22 Seconds
We alched 4408 items.
We gained 286520 xp.
We made 15 breaks
We performed 115 antibans.
—————–Thanks for using it!——————

turned it off myself…

tico2

2009-10-06 08:58:58

From: gamer716
EDIT: fixed the script up with the new rs updates. working great so far! look at this proggy for one account

———–Alching machines progres report!————
Script ran for 7 Hours, 1 Minutes and 22 Seconds
We alched 4408 items.
We gained 286520 xp.
We made 15 breaks
We performed 115 antibans.
—————–Thanks for using it!——————

turned it off myself…


Wow nice! If you want you can post it up :) since it's working so well for you. Btw, the Zanaris isn't working any more due to the shop updates right?

Thanks for using and liking my script :thumbsup:

Edit: If there is something wrong with your fixed version of the script, just tell me and I'll take a look at it ;)

YoHoJo

2009-10-06 09:36:56

@ Tico, if its updated/working again you should probably change the 'Status:Offline' in your first post so people will actually download it :D.

tico2

2009-10-06 17:40:47

From: YoHoJo
@ Tico, if its updated/working again you should probably change the 'Status:Offline' in your first post so people will actually download it :D.


Well it isn't working atm. He fixed it for himself (normal version, Zanaris is dead :() so I said he can post it up. No one really use the normal alching in this script so didn't bother updating it.

gamer716

2009-10-09 13:04:55

From: tico2
Well it isn't working atm. He fixed it for himself (normal version, Zanaris is dead :() so I said he can post it up. No one really use the normal alching in this script so didn't bother updating it.


i was using the normal alching when i got that proggy…dont get those anymore :(

anyways, its updated and works (still using it to get 99 mage :))
some of the functions didnt work such as finding nature runes so i just removed it

-make sure your yew longs(or watever u going to alch) is in he 23rd slot of the inventory.
-your magic tab should look like this:
- the script uses smart, if it doesn't work then disable it and try it again

p.s.no bans so far, pretty good anti-ban u can say (75-96 mage on 1 acc and 88-94 on other 1, was using S.M.A.R.T.)

hope it works for u guys!