SRL Archive - First Scripts

~Annonymus AIO Fletcher~


iEatApplez

2014-09-21 19:45:32

~Annonymus AIO Fletcher V1.00 for 2007~
Thanks to Robert and Keepbotting <3


Hello there sexy reader.

After about a whole week of scripting (phew, it almost took me a long time..) I finally introduce version 1 of my Annonymus AIO Fletcher!

Setup
This is actually important.

• Start the script with an empty inventory.
• Make sure that all the items required to run the script are in the first 48 slots of your bank (so it doesn't have to scroll)
• Make sure that, if you're stringing, your unstrung bows are before your strung bows (I.E unstrungs in slot 5, strungs in 6)
• If you're stringing, make the Withdraw-X option Withdraw-14 (just withdraw 14 of something once before running the script) as the failsave I made for that suddenly started bugging out and I can't seem to fix it..

Player setup is at lines 35..50.


The current version has

• Cutting short and longbows from Normal to Maple.
• Stringing short and longbows from Normal to Maple.
• Acces to 3 different banks (Castle Wars, Seer's Village and Varrock West).
• A whole load of bitmaps which took me most of the time to make..
• Some antiban-ish thing.
• A progress report that actually works (which took me the 2nd longest thing to write and somehow seems even less than basic).
• A whole lot to improve.


Things I should add

• Yew and Magic long/shortbows once I've gotten the requirements.
• More banking locations (if I can think of useful places to bank).
• Better proggies.
• Let it stop when running out of unstrung bows (it already stops when running out of bowstrings and logs, just can't seem to find unstrungs working..)
• Some paint which isn't on an annoying place on the screen.
• A way to make it continue fletching after a level-up (once I finally make a screenshot of a level up..)
• Arrow making (also just Arrow shafts and Headless arrows).
• Maybe an auto-updater of some kind.
• And probably a whole lot more which I haven't noticed until now.


Known bugs:

• None, if the setup is actually done correctly. If not, there's probably over a thousand bugs.


Some proggies I've gotten while testing;

While cutting: (This could be inaccurate, but not sure..)
******Annonymus AIO Fletcher******
* ~By Annonymus~ *
* Bows crafted: 405
* Bows per hour: 1715
* Experience gained: 23611.5
* Experience per hour: 100002
* Total time running: 14 Minutes and 10 Seconds
**********************************

While stringing:
******Annonymus AIO Fletcher******
* ~By Annonymus~ *
* Bows crafted: 462
* Bows per hour: 1972
* Experience gained: 26934.6
* Experience per hour: 115023
* Total time running: 14 Minutes and 3 Seconds
**********************************

Please leave bugs/proggies in the comments <3
Also tell me if you think there's something missing in my script <3

Thanks to all of you!

~Annonymus

Incurable

2014-09-21 21:35:34

Woohoo, congrats on your first script!


When I read your "note to self" I was like, oh yeah there'll be a few here and there, that's cool… then I scrolled down… :p

FEEDBACK:

  • Have you considered adding shaft and headless arrow making? They should be very simple to add, in fact headless arrow making can be done in 20-30 lines depending on how you choose to do it.
  • Have you tried using DTMs instead of BMPs for some things, or is it just too difficult if you have multiple types of logs/unstrung bows in your bank?
  • Have you tried using the SRL functions for opening the bank, rather than findObj?
  • Have you tried using the SRL functions to close the bank too?
  • How come you chose to use the old mouse functions (clickMouse2, MMouse) instead of those used by SRL-6?

Finally, your indenting is mostly great, but your parameters and operators are a little hard to read at some points… Eg this:


if ChooseOption('eposit-All') then
begin
ChooseOption('eposit-All');
Wait(RandomRange(30,50));
BowsCrafted:=BowsCrafted+27;
end;

… should be this for increased readability:


if ChooseOption('eposit-All') then
begin
ChooseOption('eposit-All');
Wait(RandomRange(30, 50));
BowsCrafted := BowsCrafted + 27;
end;

Note the lack of indent on begin and end, they should generally be inline with if/for/while/etc afaik.

Great for a first script, but I do feel as though you could use less case statements, but maybe that's just me. :)

Congrats again!

iEatApplez

2014-09-21 23:19:37

Heya Incurable, thanks for the feedback :D
I've been getting lots of feedback from all you guys and I really *really* appericiate it :)
As for the begins and ends after if..else statements, I never knew. That'll be a lot of tab-button spamming. Thanks for pointing that out tho!

For the feedback I'll go over every point one by one;
From: Incurable
FEEDBACK:

Have you considered adding shaft and headless arrow making? They should be very simple to add, in fact headless arrow making can be done in 20-30 lines depending on how you choose to do it.
Have you tried using DTMs instead of BMPs for some things, or is it just too difficult if you have multiple types of logs/unstrung bows in your bank?
Have you tried using the SRL functions for opening the bank, rather than findObj?
Have you tried using the SRL functions to close the bank too?
How come you chose to use the old mouse functions (clickMouse2, MMouse) instead of those used by SRL-6


Making arrow shafts/headless arrows/full arrows is already on my list to make but as there's already 1000s arrowshaft scripts on here I decided to keep that for last :p
I somewhere read BMPs are faster than DTMs, but I've been getting that question alot so I might look into DTMs a bit more. Could you maybe give me a reason to why I should use DTMs rather than BMPs?
I only just recently found out about the whole SRL plugin thing (pretty much after I finished the script) but I decided to take a look at it for the next update :)
I actually searched around the forums and asked some people about what functions to use for the mouse and they told me MMouse and clickMouse2 were the best ones to use, if they're not please tell me which I *should* use :o

Thanks again for the feedback and the time you took to look into my script :)
If there's anything else, please let me know!

~Annonymus

Edit: Also, why I'm still using the FindObj function for finding the bankers is because I haven't noticed *any* flaws at all with it. It's 100% flawless, atleast in my script it is (unless someone dressed up like a banker would walk by, it might hover over him then, but haven't noticed that even in world 1 =p)

Edit2: The note to self was actually in hopes that someone could maybe help me out there. Really wonder if there's a more efficient way to do that =p

shkaduw

2015-03-22 19:42:54

Having problems when trying to cut, here's what I get.
Could not detect logs in the first 48 bank slots. Are they really there?
Succesfully freed SMART[5800]
Successfully executed.
The following bitmaps were not freed: [4, 5, 6, 7, 8, 9, 10, 11]

Works great when stringing but cutting hasn't worked so far. I have everything set up correctly

liams007

2015-03-23 02:08:33

what did you do to get it to string? I added the yew bitmaps, but after it withdraws everything, it left clicks "use" on the bowstrings and then sits there and never clicks the unstrung bow.

iEatApplez

2015-03-23 12:20:08

From: liams007
what did you do to get it to string? I added the yew bitmaps, but after it withdraws everything, it left clicks "use" on the bowstrings and then sits there and never clicks the unstrung bow.


I am currently rewriting the entire script. It'll be on the forums somewhere this week, depending on how much free time I've got.

C3NTRIX5

2015-04-26 15:41:27

Hey, I am having trouble starting Maple Longbows. Are they supported?

webbydee

2015-05-25 21:07:34

If anybody is interested I added yew long and log bmp's to annonymus's script. It still works fine just doesnt track XP.

Stringing and cutting seems to be working right now.

If this is against some rules or something just remove it.

(********************************************************)
(********************************************************)
(*******.________________________________________.*******)
(*******| |*******)
(*******| Annonymus AIO Fletcher V1.00 |*******)
(*******| Annonymus is in no way responsible |*******)
(*******| for any damage to your account |*******)
(*******| |*******)
(*******| USE AT OWN RISK |*******)
(*******|________________________________________|*******)
(********************************************************)
(********************************************************)

// Start with an empty inventory.
// MAKE SURE THAT ALL THE ITEMS REQUIRED (LOGS, UNSTRUNGS, KNIFE, BOWSTRING) ARE IN THE FIRST 48 SLOTS OF YOUR BANK (so it doesn't have to scroll..)
// ALSO MAKE SURE THAT, IF YOU'RE STRINGING, YOUR UNSTRUNG BOWS ARE BEFORE YOUR STRUNG BOWS (I.E unstrungs in slot 5, strungs in 6.
// Note to self: This whole script is cases in cases in cases, and just in case (pun intended) you didn't get it, there's cases...

program AnnonymusAIOFletcher;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.Simba}

var
A, BowExp:Extended;
x, y, StartTime, currentLogs, currentStrings, BowsCrafted, t: Integer;
LogBMP, KnifeBMP, BowstringBMP, UnstrungBMP, StrungBMP, CloseButton, DepositThemAll, EnterAmount, CraftScreen: Integer;
WhatToDo, BowType, BankLocation, LongOrShortBows: String;

const
CWBANKCHEST = 6316135;
BANKOFRS = 2070783;
VARROCKBANKER = 6045001;
SEERSBANK = 9213083;

Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers (HowManyPlayers);
CurrentPlayer :=0;
WhatToDo:='string'; //Cut, String
BowType:='yew'; //Normal, Oak, Willow, Maple Yew //magic not yet available.
LongOrShortBows:='long'; //Long, Short
BankLocation:='vwest'; //CastleWars, VWest, SeersVillage

Players[0].Name :=''; //UserName Login
Players[0].Pass :=''; //Password
Players[0].Nick :=''; //3-4 Letters from Name
Players[0].WorldInfo := [305]; //World Number
Players[0].Active:=True;
end;

procedure StartBMPS;
begin
KnifeBMP:= BitmapFromString(8, 14, 'meJxjYEABjAwMWVlFQMSAIZ6dUwJEaIK5eWUQhCaeX1ABRMjqgYKFhVVABFScnp6PLF5cXAMUB1ra1zcTLlhaWgcUBypOTc2dN28VsjjQZKAJEyfOYYQJlpc3AE0AWpecnL148XpGJJMh1k2dtgguyGEZCkQzZy3t6JyybPkmiDhEEC7FCHMesjivRw6mOLIgEAAAeplCfg==');
BowstringBMP:=BitmapFromString(15, 16, 'meJxjYCABMOJFaCC8rAkPwlSPZr53aj4QIatnRFWGrIsBph6XFgYM9cha4Lrw+BquBaJSUFAEf1ihuQSPycgqgcZiKkYOEDzGYg03NGMZsVmKK2owpYDmoCG4YqxSuFIIwcRDNgAAZ71WXQ==');
CloseButton:=BitmapFromString(12, 14, 'meJxzSyxwI4ScY7MZGRiACMhAQ8jiEDaaMkxBNBE0rmN4CgTBxeEILoWMCCpAVoYmaBMUD0fI5iCLY1WAVRmaOBrX0jcSLgJkwxGaIKYCNHFzzxCqIABYc2xd');
EnterAmount:= BitmapFromString(90, 11, 'meJy1ls1OAzEMhPf978sByqGc4BX4kVrEnkCoohJa3gZX046GsZOuEKysyk0m2fhbO8kw+LPafqitn/dh8K9fZm3MdjPN+KWDsWgJixmi5Xb6pB69kPFX33ix2cPG7Xz1tINxeePjzhYcpgINpGxRcUmgNQ/EWE8HCM3iJZ+goXzImZPkNYQAZjTKwDtRxK+GHH/P0lCB6iFGgGWGMPawu+lLsRgr+AgQQ8LB8JIGmYDGIVWqrFhinQQouy4f3owqgJiY39GAIC7mP6rDyicnEr9+JxAmUqBA+fwHDQo0aj4BB3xMjGC1kTS00WoHZoJoAYq0jQ2d1YKJyrKf58mN9EtQGt3R2byXuUGZ1pEGlTnoKPo6io1s0VXpu1oELIqOZkna5PfqypkVEYKG3PLL7WX4+SgN9pY0Or5iPKvRYmfJaxe36yXvzQnP8DUuO00sH2Kn/SsaOrMW3S9okIPlQCtPstIuG0ojHy6chzSs1jo0Wt+9RaOT4S0a+qg+EOlYK8ZWeujXBw0A0SSxUbr+TIMHtw7J25dO1al32xg13vH+ldPyWqV7SJwmSBt2UdC6g+XtQtPDsETXurqz2UmtvcrBTvnV6Z5mGvp2lbLh3746IhI=');
DepositThemAll:=BitmapFromString(9, 10, 'meJxjYAABJmZmThkrNlFdUcsU5agZCn5dCn4tEHF+rSA+VU9OIVmgAjHbIvnAbqAURFzIIBRIChtGAWU5JIwkbLLlA1tkhcyBIkCjuJWcgAygGqAskC3tWS2lF2HH7w/Uy6VgChSRME/h0/QGygJJoBVAcWNjY7CsFdBYoCyQAZJ15YEjoAhEI0TW9Y4DEAHFgbqEVEyhsjbZwmYpEHGIgWApkCzQPVLOxUBxoCOB4shSQBuBUgCvNytq');

case lowerCase(BowType) of //Unstrung bow bitmaps
//edit all pls
'normal':
case lowerCase(LongOrShortBows) of
'long':
UnstrungBMP:=BitmapFromString(8, 11, 'meJzjDSxnZMACOOzjBHMWYkoBRXj9igUzZmGX8soXTJuOXcojWzBlMlYpDrMAwaQJWKWASDC+B5dduEzD6iOQlogmrOIcrukAEM8NpQ==');
'short':
UnstrungBMP:=BitmapFromString(15, 14, 'meJxjYMAJGBkYeD1zOW2jGXGrQVbM6ZbBaRVGUDHI2KAKEhQHlHA6p3CaB1JRMVQl0A220fgVg1T6FADNZASzcalkhAUXHjXIVkNU4gcQqwmqZCRaJQNMGcjjbhnEOAC/r8kGAN7ZFbw=');
end;

'oak':
case lowerCase(LongOrShortBows) of
'long':
UnstrungBMP:=BitmapFromString(10, 14, 'meJzjTSgXmbSZkQE74PCMFKyejksWKM6bUC6+6DgeBYKlE8TnH8GnoKBLfPY+fFbktIlM24lHAUdwOh4vMIKRSP8GfG4o7sFvPi5ZiAKR1iX43J/ZhF+7YNNCfLJ1swDPGxfH');
'short':
UnstrungBMP:=BitmapFromString(14, 13, 'meJxjYMAJGBkYeLNbeKMLGHGrgSgTrJwKUhmRS5TK9AaiVJZNBKrkDM3AoxKqDGh1XAkelSBlhd28qTWMYDYeZbx57XgUIGwEKyPgfqCNeJUxEqcMCARL+iDKgD4laC9+P5IBAK2bG6I=');
end;

'willow':
case lowerCase(LongOrShortBows) of
'long':
UnstrungBMP:=BitmapFromString(13, 15, 'meJxjYAABRgYG/cpGhxUbGRkIAKAC3bJa+0VriFGpHJNoO3cZMSqByHr2EmJU6te0EGk1QWUQlRYTZxJjoHZxFZEGmvdNI8ZA084JxChTzyogUqVhcxdRyurbiVdJVIxUNgJVAgCWbBoz');
'short':
UnstrungBMP:=BitmapFromString(15, 13, 'meJxjYMAHGBkYtIoqVZLSGfEqg6g0aOoEKY5LIVZxfimxiutagYqVohPwK4aqLKpUS83GrxgopVfRoJFTxAhm41IJkdIprcGjBtlqiEr8AGI1fpVwVxFUyQC2V6+6GaIS6Hf8ioHKGJHMJ+hU4gEAkNEgvQ==');
end;

'maple':
case lowerCase(LongOrShortBows) of
'long':
UnstrungBMP:=BitmapFromString(12, 12, 'meJxjYGCobJzOyIAPAGXjUssXrz5MUFlJ9cS5yw4QVJZf1j19wR6CyjILWibN3kFQWXBERt/0TQSVAVH3lPUElRVW9BFUExiWil8NRFlLz1KCRqXnNxNjVH37fIgyAG7WGws=');
'short':
UnstrungBMP:=BitmapFromString(15, 12, 'meJxjYCAAGBkYMvJbwmPzGYlQWVY3NS2vKSw6hxjFJTWTU3Pqg6OyiFFcXDUhOas2KDwdv2KISqAbYpKKA0JT8CgGSuWVdgHNZASz8RubXdhKUA3EamBYEeOdnOIOPCoZkRB+lQxgSwsr+oB+AToS6HFgkOJRDFGGbD4eAAA1YSsR');
end;

'yew':
case lowerCase(LongOrShortBows) of
'long':
UnstrungBMP:=BitmapFromString(5, 5, 'meJzjjM4QmbeFkQEKGMFIZPZGZBHBml5kLmd0BpwLERGZsBRIAgAoiAbM');
'short':
//shortbow here
end;

(* 'magic':
case lowerCase(LongOrShortBows) of
'long':
//Bitmap of unstrung longbow here
'short':
//bitmap of unstrung shortbow here
end; *)
end;

case lowerCase(WhatToDo) of
'cut': //Log bitmaps
case lowerCase(BowType) of
'normal':
LogBMP:=BitmapFromString(12, 12, 'meJxjYIACRgaGgL71EGSd3GSZWG8RXwNCMZUM2NTIBBRBlEEQdjUhZTapLUBlEASRZURVA1cGUQmU0g/IhCBkBRATIHaJO8UDRQyDcoxD803Ci2TCqkAooAjuGE3XKCmPdP/eNT5tSz0a5wLVmEWVAhUAvaPrmwpH8tGNQMOBajyb50PUSHlnAzUC2RAENB9ocuDEjT6dK+BqIHZJ+eZDwye+BugYoDm+3au8WxYB1QANQXM50ElA9UD3ANUArYO4GYsa72wgG2gXUI173WxMc4AIACj4lBo=');

'oak':
LogBMP:=BitmapFromString(9, 12, 'meJxjYAABRgaG+I7lEKQf3+hSOMk5v48BUyqp2aV4ClCWESyOLAWXNYssgSAU8cJJQAQ02TKu2jKhzjq50TClDYh0Y2qBFjnm9sS1LY1unB9WPR0oZZvaDBQHCsLNAUqF186CSGmHl6n7ZwPZQJTQtSqmaQFcCmIgUIFDVidQV2zL4oj6OUApoAiy74B2AaWAZkKcgSwFdCrQQKBUSMUU7cgqZC9ohhQDzQEKAnUBHYAsBQAqRX8E');

'willow':
LogBMP:=BitmapFromString(10, 11, 'meJxjYIACRgYGh4wiCLJLy1fwjwAiBkKyjDAEl4UgoCxQUMLBHYLQpIDIJCQGaI60izcEQaRsk7PlvEOAyCI6CSgL5FonZEi7BwIRRErC2hmIXPLKIYrhspaxqWbhcchGAbXDZSGKgWqAJgAZEFkgA6IR2V9ALciyyM4GCgJdBZcFakTTCwD9rlzc');

'maple':
LogBMP:=BitmapFromString(10, 12, 'meJxjYIACRgYGo4xeCOLzLeTzygMiBmyyhiltEAXYZdO6QLK+hRBxRlRZuAKgIKddDARh6lUPKgDawumYAEIuqRBZ/aRmiKu0w8uAsvrxjboxtUBZIIJIcVqHA5FJ7mSgOUARuCyQoRlSDGHDjQJqh4tAFANNABoL8SBEFiiI7GugINBkuCyKp1LatCOroLJJzUA2it60LgBo3WXB');

'yew':
LogBMP:=BitmapFromString(27, 18, 'meJyl07EOgjAQBuAy8g4ubsYQQ2BowmATU4cuLF1cTPQJnHwGX9srB0fh2tJo8w/mgh/X9lCvjxpSmqfL9b4O1v1AUdlSmkIEliKw7hcmdyiXW9n1otG5YCLwItCG9sTpDCA3CXRmazecrndUo0Fz2Uuxq4tYh1zDvXvUGPgNgeJU901XbIfAlqeLcD00OvB3CPgQOmfvjciOD6BGPXAKHyOKbi0GVsaF2vCzclYzEANxy96uU4nc1wxWJnA1m1QCbG0WmDfk8vHO6jA4UTiWMJBHWXhjIw46PI2JK1AWPxP+sWBl8b3wTiYnhghm0jGOQ07ns3TyF5mz9pPDTWzsZ4Sb/7SE6wtcOOTr');

(* 'magic':
LogBMP:=*)
end;

'string': //Strung bow bitmaps
case lowerCase(BowType) of
'normal':
case lowerCase(LongOrShortBows) of
'long':
StrungBMP:=BitmapFromString(13, 15, 'meJzjjWlnZGAAIvyA0yGBN6CEF6wYD4AYBVcsmDoVq3pGZMVuGbiMZURicJoHAs3EqiwtLQ9FpUOCYPJETJWMSCpBygw8eIMqcBmIohJoYN4irAZmZBQAVcK5QBcKZs0mSqVPgWD6DFwqkb3D65mLNRgxVQKDCJfH0VQCkWBiH6bHsdjuU4CpDE0lxGoAxZAocg==');
'short':
StrungBMP:=BitmapFromString(16, 13, 'meJxjYMACGMEoLS0PgoBsTrcMTqswRhyK4SohivGox6qYN6CE0zmF0zwQUz2aSgYc6jGNRbYRTT1hxUDH20ZD1BNQ7FMANJkRFmJYHQwPT17PXGRBZA9iugGiGBNgdQMuxXCr4Qi/YqiBQRUgB4BVgoLCLQOPerhKZFvwAAD5DkDu');
end;

'oak':
case lowerCase(LongOrShortBows) of
'long':
StrungBMP:=BitmapFromString(10, 16, 'meJwT7VzByMAAQZiAN6lCsGyiaOcK0em7MBVAdPFmt4iCDcEEQEHO0AygCVhlIQqAVohO3sKIIQ7V7hUtWDMDTTYtLQ8uAtQusfgEsoKMjAK4AiAJtF1iwVG4AkaYAjhXsLBbYs5+NAXIXN68dmTvYyoA+hHoBQbcCjB9h6YAM1iQFWAC/AqA4ikpORAFAKGPKn0=');
'short':
StrungBMP:=BitmapFromString(15, 13, 'meJxjYEABjAwMaWl5cMQIFuHNbuGNyGUkQqVg5VTe9AZkxYyoKiFciLhg2USgYs7QDEYcBiLbBVKcWgNRTFgl0MFxJRDF+FQWdgPNZIQ5kgGmGM6Fu583r50BA2C3Oq+dEVMpkoEIq3GohFvKSIRKBnCYA+0VLOmDqAT6HZ9isDJk8/EAggqQAQD+fT/K');
end;

'willow':
case lowerCase(LongOrShortBows) of
'long':
StrungBMP:=BitmapFromString(13, 18, 'meJxTy8g3qGs1nzTbduFqRgacgBGMtIoqgSrxKIOoVIpOAJqJXxkEqGXk28xZikslXFzWL9iopQeXsrS0PEaYeqCBTut2YFWZkVEAVAk3GehCh9VbMVUyYqjUq2iwX74Bl0pGJK5OaQ3WYMRUCQwirB7HVAlEVrMWE6NSr7oZq8eRVUKsxhPgyCrxxHVKSg5EJSRV4DEQqBIua9o7FYdCkEpIPAKRcdckXMqQVQLjGgDkNjjv');
'short':
StrungBMP:=BitmapFromString(15, 12, 'meJyN0MEKQEAQBuCZV5EkSd5HyYG9EKUUkUQO3tpkMq3dyLSXnb7mn12ARyGAUrUcvDpBO7hpjj9kvB5B0+kYn5Kv3I/nnbCTZIKNgXoWYb9qGdvRhqSFvaJk/Capon6hmXgvKQvIVfYPu0lvyrZ2NEu7DEnRb1JC8YeE688pNxo3lvT2D8xMn/9RJ/klQvA=');
end;

'maple':
case lowerCase(LongOrShortBows) of
'long':
StrungBMP:=BitmapFromString(10, 17, 'meJxjZGBgZMAJmruXTJ6zA5eCtLwmoAJcssFRWYUVfbhkgeIJqRW90zZhVQAU9PSLqWiYhkd7bErZolWHMRUwwsjiqglzlu5HU5CWlgdXkFfaNW3+bmQFGRkFcC6QkZHfMnH2dhQRVAVB4enIXsBUAERdk9fhUVBQ3ovsADQFAaEpaO5HVsAIjiA02ZSUHKACCBsYQZiBA1QANxMA0ycy4w==');
'short':
StrungBMP:=BitmapFromString(15, 15, 'meJxjYCAAGMEoLS0vNqWMoEqgMgiKSigkUmVOcUd4bD5+qyEIyM7IbwmLzsFvIEQlSCSvCVMxVpUlNZNTc+qDo7LwWM0IEy+umpCcVRsUno7LQGRDCiv6ktKrA0JTCKoEGgt0cExSMVAxfpV5pV1ABzDidiTc/dmFrciCDDDFmFYDAxZZEK4YTSUwsrCqhNsIR3hUMsDCHBg4QL8AHQn0ODD8cSkGAE7jX1Q=');
end;

'yew':
case lowerCase(LongOrShortBows) of
'long':
StrungBMP:=BitmapFromString(18, 21, 'meJxjZIACRgYGvuwqsflbGRkIg4yMAkaYLs6gWKH2WUTqAiJk6yQ3nCSoEaggK6sIWaNQ42TJdceIsRFdY3Wv5MoDROgDaYSbD3JqRafYkt1E2oiskTM2i5ggZcTQCERiczeRoVGorp8Yd6JpBLqTGF1oGkGOnLKSSOvS0vIgGkHhWdpKvHVAjXDrhPoXE68RkkpBunoXEKkLWSMwfQp1zSVDI5HZAVkjMGSEWqYBETkaGyeTpIsBlk6AGknUB9VLNgAABE483w==');
'short':
//bitmap of strung shortbow here
end;

(* 'magic':
case lowerCase(LongOrShortBows) of
'long':
//Bitmap of strung longbow here
'short':
//bitmap of strung shortbow here
end; *)
end;
end;

case lowerCase(WhatToDo) of //CraftScreens
'cut':
case lowerCase(LongOrShortBows) of
'long':
case lowerCase(BowType) of
'normal':
CraftScreen:=BitmapFromString(24, 31, 'meJxjkNdlkNflsI8DIsG06QyUAQ4jbwii0ByQkyxDgYhyJzFoOwIRb0QTpebAfEe5OSCjgF5L6KWCQdqOHE7JVDAH7DsqhDYY8HrnU8UcIBDMXUgto3j9iqllFCj6MmZRxyizAF6PHOoYBU6fgilTqGCUvhsEUSsDQhClgaZuDUS8IdVU8KOyCTDYqZIHOWyieKPbKHcSNMApdxIwiDxygE6i1ByI1yKaKHcSxGtUcRLIa1QpzIFeC6un3Ekgf4VUA42i3Ekgr1HDHJDXqOWkwHIgooI5QK9Rw0kgr4GdBAAB3juf');
'oak':
CraftScreen:=BitmapFromString(21, 27, 'meJxjMHHkjcoHIvHZ+xjIAhyuoUAk0rqEPO0gE3zigIhs7UDAG54j0r+BfAc4BvCm1VPiAKD7xWfuocQEweJeSrQDgfiSUxSaIFg6gUITOELSxecepMiEgGTe3DaKTAAnJ5FpO8k3AZykgYjsOAWmKDgiL2dx2HgDkWDDPJEp28h0g6WbYEEXJfmCN7FcpGsV+Q6ARAS5DgB5H+j+juXkaQcC3thiYLlEvgMg7qfAASD3U1AwAt0v2LSQbAdweEYJ1s0CmkC+A3LbgCmQfO1A91PmAMHq6UAEAGcDROU=');
'willow':
CraftScreen:=BitmapFromString(21, 29, 'meJxTTkwznzYfiBjIAsqxyUBkPmWO9bzlZGgXMbdWzy4EIrvFa8lzgHxYNASRpx3oAOXENCCyW7aePBOkPP2AyKxvOnnagUA+MAyIyNbOAI4Fy5mLyNYu5eqpmVdCiQOA7ic7BiFAt6qJEu1A4LR+J4Um6Ne2UGiCYlSc/YpNlJgATMnaJdUUmQBOTjYLVpFtAiRJAxHZcQpMUXBEXs4Sd3QFIqPOieQVLCATbBx1y+spyReq6Xlkl2wMsIgg2wFA7wPdbzZxFnnagUA1JRNYLpHtAIj7KXEAyP0UFIxA95v0TCHbATK+QUZtvUATyHYAMCcCUyAAo9FUkw==');
'maple':
CraftScreen:=BitmapFromString(23, 29, 'meJwzNLEPjcqGoJbe5b3TNzGQBUzMnYAoMa0KiCbN3kGeIRDgF5IMQZQYAnRMWEweEE2Zu4sSc1w8QoGooWMRJYYAgU9gIhBRaAgQAKOpe8p6Cg1xdA1Kyqih3DHefrEUBi8E5Jf1UG4IECxceYgq5hSU91LFnKCIjOkL9lBuDjDlpOc1UW6Oh280EPXP2EKhOZBMAUQU5nR7pwA4mjp/N9nmWNp5AlFV0ywKvQYsNLKL2jsnraXEECCITiwClqUUOgYSWRQ6BhgsQB819yylxBAGsI+auhZT6BiIjyh3DNBH9e3zKTQE6KPa1nkUOsbVOwKY6oDmUOgYoI9qmudQaAjQR0DHAAA8m2jp');
(*'yew':

'magic':*)
end;
'short':
case lowerCase(BowType) of
'normal':
CraftScreen:=BitmapFromString(30, 21, 'meJxjYKAa4PUrhiPqmcrAG1LN650PQVQ0FmRyYDkcDX6TecPq4WZy2McBEdWNBZlsGQpEVDAWGGs0MhaIPHIgiCpmMsDji7pmQpwKTLfUM5OBZokWEVOu6dQ0FlIggAOWmsaCQ5UmxsIQh00UTYylONsiF7OIjOCUTL6BSCkKxamu6SBEuoOhKR+IMJxKiTsZ0PwONpMS07CYTNXkBAEA9uJakg==');
'oak':
CraftScreen:=BitmapFromString(24, 22, 'meJxjYKAICBZ08abVAxFFhlRMAZoDQRSaw5vbBkEUmVM6AY7IN6RulmBxLwRR5Jjq6XA0sOYINi2Em8CbWA5E5BjSMA/ZJbxR+UBEsiHAsAWmGRgCmsARkk6yIRA3wBIeGSagGUKmCUC/gJMKMNGSZwIDlRIJIjwzm8g3BJxrKMyDoFxDcYEAz32gsCU9jWExhMQEj1yMgMpJSNGUUk2aIZBIQXZGZhMIkecYcJBSUlwDAJ8wdNw=');
'willow':
CraftScreen:=BitmapFromString(34, 22, 'meJxjYKAh0K9tgSDaWWHU1qtb1QRBtLPFsLkbjoauLSY9U+Dmq6bnARHVrTDqnIjsC+XENCCishVtvfqNHXAENF8xKo66VkAcr1teD0FUNx/NClqYDwwlSNbQLqmmhfkMdMkU8FjWLKyglRXgAgoYSkBEIytApRMsLdHQChiieo7DtIK6RQe8mgAiYBBB4kI9u5A6hiOVFcheAKYoIKLEI5AsBkFoXgAizbwSSpwNLEjhCOR4VPMpMRkCgHUBivvhQUTVJIpmPhVNRgYA6GaZ+w==');
'maple':
CraftScreen:=BitmapFromString(28, 24, 'meJy1ld0KgkAQRvcVu0giRKjMCtHEMsuyHysiKIIoiIietQ+GlsW7nGk414cZZ75VKbEKxsd2fwGkhKP51Y8PhKBzEO0IKWc8u2hEhFnxHE5OhIgQla7uGilnkt80fFu+f+sO7U4CmMLF9mVObdkh4AixF3PketOvWR5HOF0/AIJDMG3qu2WKDN9G7UXpGWHh29QfjhBxJnphISKkFAu+D/h6so+YvhbQcCJZISd05jOIYbER0PKyCiq9VmC21w02wHHTn2x0b1iEhvbr+ssKvVGVhq3sKTkF/3RUH2AasPw=');
(*'yew':

'magic':*)
end;
end;
'string':
case lowerCase(LongOrShortBows) of
'long':
case lowerCase(BowType) of
'normal':
CraftScreen:=BitmapFromString(17, 19, 'meJzjcMvgACMGogGHbRQcCcZ1ARGxGq1CIYg3up1460AaHeKBiDQtxt5AxBteT5ousPNI0sIgpQYJB9Is0nfncE4mzSKwpwRTp+CSzcjIxyIqr8frjU0cBtLScrGIalgL5i4kQxeehATUglOXWQCuJAH0FE5d4CgmWRcw5MEIqy7sTlcxZdBxhCKSdGlYgxAOF+LUBUQ4AE5dDAwAtgEunw==');
'oak':
CraftScreen:=BitmapFromString(16, 24, 'meJzjzW1nIAXwZjVDELHqo/LhSKR3LRCRpEukaxUJbkutBiLi1XMEJAORYMM8EqyIyAEi4tUzaJnyxhUT6Wuoq7yiSPIFA9gj4jP3YpXKyMjHIqpvLVjci8u0tLRcLFbYeosvPUWqFlzpBKgelxaOkAyskQ70CE4tPvFARJoWrygIwtSC1cEcVu4cjgFAhNUWnFpsvbFK4dGCVRyPFjyAVC24IgW/FpLUY2oBAMYOP+s=');
'willow':
CraftScreen:=BitmapFromString(15, 19, 'meJxjYAABlcR0CLKYMpeBOKCRXQhERCqWD48GIuPOiUSqV4lLBiIiFQvq6aulZllMX0Ckelm/YOJdzgB2vN3itZjiGRn5WBxjbKZX1YTVnLS0XExBcUc35w27SFKvVViBVTEu9YpR8ZjRCnQ8LvXyQeFARLx6YHgCEaZ6TMUg9baOUm5emOJ41GMVx6UeF6CpeszABwA6rzQ/');
'maple':
CraftScreen:=BitmapFromString(14, 19, 'meJxjYICC+NRyIGIgAvgEJQJRVdMsYhQHR2YCETEqtXRMI+ML2iesJEaxm3ckka5lADt40pwdxKg0NHXILenEFE9Ly8UUtHX0WbjyEPGK03IbMVXiUhwUnt7atwJZMCMjH6tiKzsvb/84ICJSMTDogAhNMaZKiGIH5wA0QVyKLazdMAVxKcYKaKQYVyDjUozMBQAiZjab');
'yew':
CraftScreen:=BitmapFromString(23, 20, 'meJxtkj1LA2EQhG3TXHFFwB9ia6oUaVIolilsQkihElCsAgoiChJQVDgTiFrY2NlplItoFQln0uTnOG8mjMteYDnu/Xp2dna7w0n/4/f+c4roDieIlbX1uN3hjt1naMceNRp72lEUytXVl5Hd6X3N7DUBBQfHQciJ9k/staXCdASIOLY0cAq1ZvH2WZfv3rM8QdFstlgXrtlcgbO1jXB5XS38T9IxOYC4dIGzUWPk7bXBh+BoJ3n7+eeUKoXKpoLPH75nDsInOLUcKylwIKlcjS/6eSU36RSXAZH5To9QgVOqYISWZsG/bQoeggOXdE1G4RvtttUvLK8HmfXWWkqOK5ma0XSEc5WCoQQhDmRweKyYRVFzb/OW0pOg7XWEsJPMC7ZT0BAdnhUvn1xzCYESLFEjy+TUWTFY8mbUOIg7j+E/HSuvjLVYwWkO9eAVvm6GA2qeWi22ED7Ead7k+OgKYpQUntthE4EpCMHScaLWMafOJkVdzMvSnGOMRV3z+UGX4/MegoL13IYbRetPkJeOsYxPE0IWbR1kDsVRtDIIqdd3NANoNDg8+gNIDZHE');
(*'magic':*)
end;
'short':
case lowerCase(BowType) of
'normal':
CraftScreen:=BitmapFromString(24, 23, 'meJxjYCAHpKXlwhGQy+tfTLkhIHO886lgSFA5r0cOeSbADYGYw+GWQaEhDODA4XBOJtUQNCne8Hpg4BATPngMAZkTUg0MHPzhg8cvCHOAgQxGlBjCAA4cCCLfJcCQAbsEGMhYw5koZwCDBeYSUHyZBZDjF6AzwHGENZpICBDcEURSqOKSJdYQoEdwpxNiTCBoCLI5BAwhlPKJNIQYcyg3BLtepAQGDBPiyxYGSPqEI5gbgAhoCJHmgLIJLKfAEyo5voC5gQy9yAAAaySefw==');
'oak':
CraftScreen:=BitmapFromString(18, 17, 'meJxjYEAHaWm5cIQmJdgwT7C4F4iI1wLSVTdbsKALiLCqx6oFpKt6OgQRrwWkq2IKBBFrC9BHYPW86fVARJQVQO+UToQjjpAMwlqAHgGHG3LQEfYIaqDBdeHUAnYPLlnsWop7eXPbSdNS0EWGFkyPEKOFJF3Ea4EnEkgg82Y1E2U+LAZBgZbVTLwuYpShAQA6R2Uz');
'willow':
CraftScreen:=BitmapFromString(14, 12, 'meJxjYEABqak5cMSAAyCroY8yo86JxBhl1NarX9tCUJlhc7duVSMQ4Vem39ChW14HRBBH4lRW2wJEuGThAGiddkk1YWXldUQqgziMGGVYVQIAh5Y6cg==');
'maple':
CraftScreen:=BitmapFromString(20, 17, 'meJxjYMAO0tJy4QhNqqZlbm5JJxCRqhEIKhpmZBd1ABEeXVg1AkFp7RQIIlUjEBRVToAgkjTWts2D2JiYXgVExHgQAqqaZsFtBCL/kGQi3VlePy2/rAeCsDoVl8bi6kn4AxaXxoLyPiDCKoVfI9CFWQWtuGTxAGDKIVsjrlRHjEYy9JKqETnSgX5My20kRhcw0pHjHYiAGonUC4x3soMFAKq6ihw=');
(*'yew':

'magic':*)
end;
end;
end;
end;

procedure FreeAll;
begin
FreeBitmap(LogBMP);
FreeBitmap(CloseButton);
FreeBitmap(BowstringBMP);
FreeBitmap(KnifeBMP);
FreeBitmap(StrungBMP);
FreeBitmap(UnstrungBMP);
FreeBitmap(EnterAmount);
FreeBitmap(KnifeBMP);
FreeBitmap(CraftScreen);
end;

procedure SetAllTheStuffs;
begin
case lowerCase(LongOrShortBows) of
'short':
case lowerCase(BowType) of
'normal':
BowExp:=5;
'oak':
BowExp:=16.5;
'willow':
BowExp:=33.3;
'maple':
BowExp:=50;
(*'yew':

'magic':*)
end;
'long':
case lowerCase(BowType) of
'normal':
BowExp:=10;
'oak':
BowExp:=25;
'willow':
BowExp:=41.5;
'maple':
BowExp:=58.3;
(*'yew':

'magic':*)
end;
end;
end;

procedure StartScript;
begin
if not LoggedIn then Exit;
GameTab(tab_Inv);
Wait(RandomRange(75, 150));
setangle(SRL_Angle_High);
case lowerCase(BankLocation) of
'castlewars, seersvillage':
MakeCompass('N');
'vwest':
MakeCompass('E');
end
Exit;
end;

procedure OpenTheBank;
begin
repeat
if not LoggedIn then Exit;
case lowerCase(BankLocation) of
'castlewars':
if (FindObj(x, y, 'hest', CWBANKCHEST, 5)) then
begin
if (IsUpTextMultiCustom(['hest'])) then
begin
Clickmouse2(false);
Wait(RandomRange(40,90));
if ChooseOption('Use') then
begin
ChooseOption('Use');
repeat
Wait(50);
until(FindColorTolerance(x,y,BANKOFRS,20,10,340,35,5));
end;
end;
end;
'vwest':
if (FindObj(x, y, 'anker', VARROCKBANKER, 5)) then
begin
if (IsUpTextMultiCustom(['anker'])) then
begin
Clickmouse2(false);
Wait(RandomRange(40,90));
if ChooseOption('ank Banker') then
begin
ChooseOption('ank Banker');
repeat
Wait(50);
until(FindColorTolerance(x,y,BANKOFRS,20,10,340,35,5));
end;
end;
end;
'seersvillage':
if FindObj(x, y, 'ank booth', SEERSBANK, 5) then
begin
if (IsUpTextMultiCustom(['ank', 'ank booth', 'ooth'])) then
begin
Clickmouse2(mouse_Left);
repeat
Wait(50);
until(FindColorTolerance(x,y,BANKOFRS,20,10,340,35,5));
end;
end;
end;
until(FindColorTolerance(x,y,BANKOFRS,20,10,340,35,5));
end;

procedure DepositTheStuffs;
begin
if not LoggedIn then Exit;
case lowerCase(WhatToDo) of
'cut':
begin
if FindDeformedBitmapToleranceIn(UnstrungBMP,x,y,555,205,730,460,5,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse2(false);
Wait(RandomRange(30,70));
if ChooseOption('eposit-All') then
begin
ChooseOption('eposit-All');
Wait(RandomRange(30,50));
BowsCrafted:= BowsCrafted+27;
end;
end;
end;
'string':
begin
if FindDeformedBitmapToleranceIn(StrungBMP,x,y,555,205,730,460,5,0,false,A) then
repeat
QuickDeposit('inventory');
BowsCrafted:=BowsCrafted+14;
until not FindDeformedBitmapToleranceIn(StrungBMP,x,y,555,205,730,460,5,0,false,A);
end;
end;
end;

procedure WithdrawTheStuffs;
begin
if not LoggedIn then Exit;
case lowerCase(WhatToDo) of
'cut':
begin
if not FindDeformedBitmapToleranceIn(KnifeBMP,x,y,555,205,730,460,5,0,false,A) then
begin
if FindDeformedBitmapToleranceIn(KnifeBMP,x,y,60,80,480,290,5,0,false,A) then
begin
MMouse(x,y,3,3)
ClickMouse2(mouse_Left);
Wait(RandomRange(33,66));
end;
end;
if FindDeformedBitmapToleranceIn(LogBMP,x,y,70,80,470,300,10,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse2(false);
Wait(RandomRange(30,70));
if ChooseOption('ithdraw-All') then
begin
ChooseOption('ithdraw-All');
Wait(RandomRange(40,90));
end;
end else
begin
Writeln('Could not detect logs in the first 48 bank slots. Are they really there?');
TerminateScript;
end;
end;
'string':
begin
if FindDeformedBitmapToleranceIn(UnstrungBMP,x,y,70,80,470,300,10,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse2(false);
Wait(RandomRange(30,70));
if ChooseOption('ithdraw-14') then
begin
ChooseOption('ithdraw-14');
Wait(RandomRange(40,90));
end else
if ChooseOption('ithdraw-X') then
begin
ChooseOption('ithdraw-X');
Wait(RandomRange(130,170));
TypeSendEx(IntToStr(14), true);
Wait(RandomRange(40,90));
end;
end else
begin
Writeln('Could not find unstrung bows in the first 48 slots of the bank. Are they really there?');
TerminateScript;
end;
if FindDeformedBitmapToleranceIn(BowstringBMP,x,y,70,80,470,300,10,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse2(false);
Wait(RandomRange(30,70));
if ChooseOption('ithdraw-14') then
begin
ChooseOption('ithdraw-14');
Wait(RandomRange(40,90));
end;
end else
begin
Writeln('Could not find bowstrings in the first 48 slots of the bank. Are they really there?');
TerminateScript;
end;
end;
end;
end;

procedure CloseTheBank;
begin
if not LoggedIn then Exit;
repeat
MMouse(470,35,15,15);
if FindDeformedBitmapToleranceIn(CloseButton,x,y,475,5,500,35,10,0,false,A) then
begin
mouse(485,22,5,5,mouse_left);
Wait(RandomRange(200,400));
end;
until not FindColorTolerance(x,y,BANKOFRS,20,10,340,35,5);
end;

procedure CutOrStringStuff;
begin
if not LoggedIn then Exit;
case lowerCase(WhatToDo) of
'cut':
begin
if FindDeformedBitmapToleranceIn(KnifeBMP,x,y,560,205,590,245,5,0,false,A) then
begin
MMouse(x,y,2,2);
ClickMouse2(mouse_left);
Wait(RandomRange(25,45));
end;
if FindDeformedBitmapToleranceIn(LogBMP,x,y,600,210,640,245,10,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse(x, y, mouse_Left);
repeat
Wait(50);
until(FindBitmapToleranceIn(CraftScreen,x,y,10,350,510,470,10));
end;
if FindBitmapToleranceIn(CraftScreen,x,y,10,350,510,470,10) then
begin
MMouse(x,y,3,3);
ClickMouse2(mouse_Right);
Wait(RandomRange(100,120));
if ChooseOption('ake X') then
begin
ChooseOption('ake X');
repeat
Wait(50);
until(FindBitmapToleranceIn(EnterAmount,x,y,200,380,315,415,10));
Wait(RandomRange(300,450));
TypeSendEx(IntToStr(33), true);
end;
end;
end;
'string':
begin
if FindDeformedBitmapToleranceIn(UnstrungBMP,x,y,555,205,730,460,5,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse2(mouse_Left);
Wait(RandomRange(25,50));
end;
if FindDeformedBitmapToleranceIn(BowstringBMP,x,y,555,205,730,460,5,0,false,A) then
begin
MMouse(x,y,3,3);
ClickMouse2(mouse_Left);
Wait(RandomRange(25,50));
repeat
Wait(50);
until(FindBitmapToleranceIn(CraftScreen,x,y,10,350,510,470,10));
end;
if FindBitmapToleranceIn(CraftScreen,x,y,10,350,510,470,10) then
begin
MMouse(x,y,3,3);
ClickMouse2(false);
Wait(RandomRange(100,120));
if ChooseOption('ake All') then
ChooseOption('ake All');
end;
end;
end;
end;

procedure WaitToFinish; //Thanks to Robert for pointing out the countItems function to me~
begin
if not LoggedIn then Exit;
case lowerCase(WhatToDo) of
'cut':
begin
currentLogs := countItems('bmp', LogBMP, [5]);
markTime(t);
repeat
case Random(1500) of
1..15: begin
HoverSkill('Fletching', false);
Wait(RandomRange(2000,4000));
GameTab(tab_Inv);
end;
16..20: ExamineInv;
21..30: PickUpMouse;
31..35: RandomRClick;
36..60: MMouseOffClient('random');
end;
if (countItems('bmp', UnstrungBMP, [5]) = currentLogs) then
begin
Exit;
end else
wait(500);
until (timeFromMark(t) > 50000);
end;
'string':
begin
currentStrings := countItems('bmp', UnstrungBMP, [5]);
markTime(t);
repeat
case Random(1500) of
1..15: begin
HoverSkill('Fletching', false);
Wait(RandomRange(2000,4000));
GameTab(tab_Inv);
end;
16..20: ExamineInv;
21..30: PickUpMouse;
31..35: RandomRClick;
36..60: MMouseOffClient('random');
end;
if (countItems('bmp', StrungBMP, [5]) = currentStrings) then
begin
Exit;
end else
wait(500);
until(timeFromMark(t) > 30000);
end;
end;
end;

procedure Progress;
var
currentEXP,ExpPH:Extended;
BowsPH:Integer;
begin
BowsPH := Round((BowsCrafted * 3600) / (GetTimeRunning / 1000));
currentEXP := (BowsCrafted * BowExp);
ExpPH := Round((currentEXP * 3600) / (GetTimeRunning / 1000));
ClearDebug;
Writeln('******Annonymus AIO Fletcher******');
Writeln('* ~By Annonymus~ *');
Writeln('* Bows crafted: ' + IntToStr(BowsCrafted));
Writeln('* Bows per hour: ' + IntToStr(BowsPH));
Writeln('* Experience gained: ' + FloatToStr(currentEXP));
Writeln('* Experience per hour: ' + FloatToStr(ExpPH));
Writeln('* Total time running: ' + TimeRunning);
Writeln('**********************************');
end;

begin
ActivateClient;
DeclarePlayers;
SetupSRL;
MouseSpeed := 18;
SetAllTheStuffs;
StartBMPS;
LoginPlayer;
StartScript;
MarkTime(StartTime);

repeat
if not LoggedIn then LoginPlayer;
Progress;
OpenTheBank;
DepositTheStuffs;
WithdrawTheStuffs;
CloseTheBank;
CutOrStringStuff;
WaitToFinish;
until(false);
AddOnTerminate('FreeAll');
end.

Otter

2015-05-29 20:26:17

Nice script man! I will use this a lot

Stick1234

2015-06-09 18:42:42

Script not working for me, it finds the logs and bows in the bank, but can't get them together, or cut the logs, it simply hovers over the options in the chat box. Can anyone identify my problem?

webbydee

2015-06-12 03:53:16

From: Stick1234
Script not working for me, it finds the logs and bows in the bank, but can't get them together, or cut the logs, it simply hovers over the options in the chat box. Can anyone identify my problem?


Probably means its not detecting the BMP for the longbow in the craftscreen, to fix this you could make your own BMP following one of the tutorials on here and replace the craftscreen BMPfromstring with the one outputted by the program. If this doesnt work then im not sure what the issue is.