Botre Posted March 17, 2014 Share Posted March 17, 2014 (edited) EDIT: for an improved version of this by go > here <. Hi, have been working on some magic combat scripts, here are some "spell manager" methods I made. These only support strike spells and air staff but are easily expandable, I just haven't because I never needed anything else. Constructive feedback is appreciated, feel free to use these as you wish, credit appreciated tho Variables: ArrayList<Integer> spellmanagerRuneType = new ArrayList<Integer>(5); String spellname = "Fire_strike"; String stafftype = "Air"; Boolean usestaff = true; int spellspertrip = 100; To find out which runes are required for your selected spell: spellmanagerRuneType = magicRuneTypeManager(spellname, usestaff, stafftype); public ArrayList<Integer> magicRuneTypeManager(String spell, Boolean useStaff, String staff) { ArrayList<Integer> runes = new ArrayList<Integer>(); int firerune = 554; int waterrune = 555; int airrune = 556; int earthrune = 557; int mindrune = 558; if (useStaff = true) { if (staff == "Air") { if (spell == "Wind_strike") { runes.add(mindrune); } if (spell == "Water_strike") { runes.add(mindrune); runes.add(waterrune); } if (spell == "Earth_strike") { runes.add(mindrune); runes.add(earthrune); } if (spell == "Fire_strike") { runes.add(mindrune); runes.add(firerune); } } } else { if (spell == "Wind_strike") { runes.add(airrune); runes.add(mindrune); } if (spell == "Water_strike") { runes.add(airrune); runes.add(mindrune); runes.add(waterrune); } if (spell == "Earth_strike") { runes.add(airrune); runes.add(mindrune); runes.add(earthrune); } if (spell == "Fire_strike") { runes.add(airrune); runes.add(mindrune); runes.add(firerune); } } return runes; } To check if you have the required amount of runes in your inventory for at least 1 cast, if not: initiate your banker method: int j = 0; while (spellmanagerRuneType.size() > j) { int runesfor1spell = magicRuneAmountManager(spellname, spellmanagerRuneType.get(j)) * 1; if (!(this.client.getInventory().getAmount( spellmanagerRuneType.get(j)) >= runesfor1spell)) { banker(); } else { j++; } } public Integer magicRuneAmountManager(String spell, Integer runeID) { int runesforspell = 0; int firerune = 554; int waterrune = 555; int airrune = 556; int earthrune = 557; int mindrune = 558; if (spell == "Wind_strike") { if (runeID == mindrune ) { runesforspell = 1; } if (runeID == airrune ) { runesforspell = 1; } } if (spell == "Water_strike") { if (runeID == mindrune ) { runesforspell = 1; } if (runeID == waterrune ) { runesforspell = 1; } if (runeID == airrune ) { runesforspell = 1; } } if (spell == "Earth_strike") { if (runeID == mindrune ) { runesforspell = 1; } if (runeID == earthrune ) { runesforspell = 2; } if (runeID == airrune ) { runesforspell = 1; } } if (spell == "Fire_strike") { if (runeID == mindrune ) { runesforspell = 1; } if (runeID == firerune ) { runesforspell = 3; } if (runeID == airrune ) { runesforspell = 2; } } return runesforspell; } Add this to your banker method to withdraw runes your selected amount of casts: int j = 0; while (spellmanagerRuneType.size() > j) { if (!this.client.getInventory().contains( spellmanagerRuneType.get(j))) { int withdrawamount = magicRuneAmountManager(spellname, spellmanagerRuneType.get(j)) * spellspertrip; bank.withdrawX(spellmanagerRuneType.get(j), withdrawamount); } else { j++; }} Edited March 19, 2014 by Botrepreneur 1 Link to comment Share on other sites More sharing options...
Dog_ Posted March 17, 2014 Share Posted March 17, 2014 (edited) For comparing two string literals use String.equals(otherString) And if (useStaff == true) Can be if (useStaff) there's also a lot of other stuff that can be better..I suggest that you read the java tutorials. Edited March 17, 2014 by Erza 1 Link to comment Share on other sites More sharing options...
Botre Posted March 17, 2014 Author Share Posted March 17, 2014 (edited) For comparing two string literals use String.equals(otherString) And if (useStaff == true) Can be if (useStaff) there's also a lot of other stuff that can be better..I suggest that you read the java tutorials. They could be but they are not. Feel free to explain me why I should change them Edited March 17, 2014 by Botrepreneur Link to comment Share on other sites More sharing options...
Dog_ Posted March 17, 2014 Share Posted March 17, 2014 rlly ?i didn't mean it in a harsh way, sorry if it sounded like that but there's definitely some stuff you should read up on Link to comment Share on other sites More sharing options...
Swizzbeat Posted March 17, 2014 Share Posted March 17, 2014 Couldn't most of this data be added to an enum? You could then iterate over it with enum.values() which would get rid of those nested if statements. Link to comment Share on other sites More sharing options...
Botre Posted March 17, 2014 Author Share Posted March 17, 2014 Couldn't most of this data be added to an enum? You could then iterate over it with enum.values() which would get rid of those nested if statements. Seems like that would be a nice improvement indeed old sport. 1 Link to comment Share on other sites More sharing options...
Joseph Posted March 17, 2014 Share Posted March 17, 2014 Seems like that would be a nice improvement indeed old sport. are you going to do it? if not ill be able to do it 1 Link to comment Share on other sites More sharing options...
Botre Posted March 17, 2014 Author Share Posted March 17, 2014 are you going to do it? if not ill be able to do it I'm working on some other stuff, this works for me as it is now. However, if you have the time and will to do it please do Will gladly replace my messy code with a neater enum version ;) Link to comment Share on other sites More sharing options...
Joseph Posted March 17, 2014 Share Posted March 17, 2014 ill work on it later 1 Link to comment Share on other sites More sharing options...