Jump to content

Magic combat methods


Botre

Recommended Posts

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 biggrin.png

 

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 by Botrepreneur
  • Like 1
Link to comment
Share on other sites

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 smile.png

Edited by Botrepreneur
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...