public void generateAppearenceData() {
OutputStream stream = new OutputStream();
stream.writeByte(player.getPrayer().getPrayerHeadIcon()); // prayer icon
// TODO Auto-generated method stub
}
Prayer.java
Code:
public int getPrayerHeadIcon() {
if (onPrayersCount == 0)
return -1;
int value = -1;
if (usingPrayer(0, 16))
value += 8;
if (usingPrayer(0, 17))
value += 3;
else if (usingPrayer(0, 18))
value += 2;
else if (usingPrayer(0, 19))
value += 1;
else if (usingPrayer(0, 22))
value += 4;
else if (usingPrayer(0, 23))
value += 6;
else if (usingPrayer(0, 24))
value += 5;
else if (usingPrayer(1, 6)) {
value += 16;
if (usingPrayer(1, 8))
value += 2;
else if (usingPrayer(1, 7))
value += 3;
else if (usingPrayer(1, 9))
value += 1;
} else if (usingPrayer(1, 7))
value += 14;
else if (usingPrayer(1, 8))
value += 15;
else if (usingPrayer(1, 9))
value += 13;
else if (usingPrayer(1, 17))
value += 20;
else if (usingPrayer(1, 18))
value += 21;
return value;
}
private boolean usePrayer(int prayerId) {
if (prayerId < 0 || prayerId >= prayerLvls[getPrayerBook()].length)
return false;
if (player.getSkills().getLevelForXp(5) < prayerLvls[this
.getPrayerBook()][prayerId]) {
player.getPackets().sendGameMessage(
"You need a prayer level of at least "
+ prayerLvls[getPrayerBook()][prayerId]
+ " to use this prayer.");
return false;
}
if (getPrayerBook() == 0 && prayerId == 25 || prayerId == 27) {
if (player.getSkills().getLevelForXp(Skills.DEFENCE) < 70) {
player.getPackets()
.sendGameMessage(
"You need a defence level of at least 70 to use this prayer.");
return false;
}
} else if (getPrayerBook() == 1) {
if (player.getSkills().getLevelForXp(Skills.DEFENCE) < 30) {
player.getPackets()
.sendGameMessage(
"You need a defence level of at least 30 to use this prayer.");
return false;
}
}
if (player.getPrayerDelay() >= Utils.currentTimeMillis()) {
player.getPackets()
.sendGameMessage(
"You are currently injured and cannot use protection prayers!");
if (ancientcurses && prayerId >= 6 && prayerId <= 9)
return false;
else if (prayerId >= 16 && prayerId <= 19)
return false;
}
if (!usingQuickPrayer) {
if (onPrayers[getPrayerBook()][prayerId]) {
onPrayers[getPrayerBook()][prayerId] = false;
closePrayers(prayerId);
onPrayersCount--;
player.getAppearence().generateAppearenceData();
player.getPackets().sendSound(2663, 0, 1);
return true;
}
} else {
if (quickPrayers[getPrayerBook()][prayerId]) {
quickPrayers[getPrayerBook()][prayerId] = false;
player.getPackets().sendSound(2663, 0, 1);
return true;
}
}
boolean needAppearenceGenerate = false;
if (getPrayerBook() == 0) {
switch (prayerId) {
case 0:
case 5:
case 13:
closePrayers(closePrayers[getPrayerBook()][0],
closePrayers[getPrayerBook()][10]);
break;
case 1:
case 6:
case 14:
closePrayers(closePrayers[getPrayerBook()][1],
closePrayers[getPrayerBook()][3],
closePrayers[getPrayerBook()][4],
closePrayers[getPrayerBook()][10]);
break;
case 2:
case 7:
case 15:
closePrayers(closePrayers[getPrayerBook()][2],
closePrayers[getPrayerBook()][3],
closePrayers[getPrayerBook()][4],
closePrayers[getPrayerBook()][10]);
break;
case 3:
case 11:
case 20:
closePrayers(closePrayers[getPrayerBook()][1],
closePrayers[getPrayerBook()][2],
closePrayers[getPrayerBook()][3],
closePrayers[getPrayerBook()][10]);
break;
case 4:
case 12:
case 21:
closePrayers(closePrayers[getPrayerBook()][1],
closePrayers[getPrayerBook()][2],
closePrayers[getPrayerBook()][4],
closePrayers[getPrayerBook()][10]);
break;
case 8:
case 9:
case 26:
closePrayers(closePrayers[getPrayerBook()][5]);
break;
case 10:
closePrayers(closePrayers[getPrayerBook()][6]);
break;
case 17:
case 18:
case 19:
closePrayers(closePrayers[getPrayerBook()][7],
closePrayers[getPrayerBook()][9]);
needAppearenceGenerate = true;
break;
case 16:
closePrayers(closePrayers[getPrayerBook()][8],
closePrayers[getPrayerBook()][9]);
needAppearenceGenerate = true;
break;
case 22:
case 23:
case 24:
closePrayers(closePrayers[getPrayerBook()][7],
closePrayers[getPrayerBook()][8],
closePrayers[getPrayerBook()][9]);
needAppearenceGenerate = true;
break;
case 25:
case 27:
case 28:
case 29:
closePrayers(closePrayers[getPrayerBook()][0],
closePrayers[getPrayerBook()][1],
closePrayers[getPrayerBook()][2],
closePrayers[getPrayerBook()][3],
closePrayers[getPrayerBook()][4],
closePrayers[getPrayerBook()][10]);
break;
default:
return false;
}
} else {
switch (prayerId) {
case 0:
if (!usingQuickPrayer) {
player.setNextAnimation(new Animation(12567));
player.setNextGraphics(new Graphics(2213));
}
closePrayers(closePrayers[getPrayerBook()][0]);
break;
case 1:
case 2:
case 3:
case 4:
closePrayers(closePrayers[getPrayerBook()][5],
closePrayers[getPrayerBook()][6]);
break;
case 5:
if (!usingQuickPrayer) {
player.setNextAnimation(new Animation(12589));
player.setNextGraphics(new Graphics(2266));
}
closePrayers(closePrayers[getPrayerBook()][2]);
break;
case 7:
case 8:
case 9:
case 17:
case 18:
closePrayers(closePrayers[getPrayerBook()][3]);
needAppearenceGenerate = true;
break;
case 6:
closePrayers(closePrayers[getPrayerBook()][4]);
needAppearenceGenerate = true;
break;
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
closePrayers(closePrayers[getPrayerBook()][1],
closePrayers[getPrayerBook()][6]);
break;
case 19:
// stop changing this idiot. it doesnt stop walk on rs
if (!usingQuickPrayer) {
player.setNextAnimation(new Animation(12565));
player.setNextGraphics(new Graphics(2226));
}
closePrayers(closePrayers[getPrayerBook()][1],
closePrayers[getPrayerBook()][5],
closePrayers[getPrayerBook()][6]);
break;
default:
return false;
}
}
if (!usingQuickPrayer) {
onPrayers[getPrayerBook()][prayerId] = true;
resetDrainPrayer(prayerId);
onPrayersCount++;
if (needAppearenceGenerate)
player.getAppearence().generateAppearenceData();
} else {
quickPrayers[getPrayerBook()][prayerId] = true;
}
player.getPackets().sendSound(2662, 0, 1);
return true;
}
Bump, The icon will appear if i remove an item i am wearing and the icon will stay over my head even if i turn prayers off, and if i again remove a item i am wearing the icon will go away (when i have no prayers on)
Bump, The icon will appear if i remove an item i am wearing and the icon will stay over my head even if i turn prayers off, and if i again remove a item i am wearing the icon will go away (when i have no prayers on)
that's because the genneappearancedata(); method is called whenever you unequip/equip an item, call it in your prayer method and it should work fine
Bump, The icon will appear if i remove an item i am wearing and the icon will stay over my head even if i turn prayers off, and if i again remove a item i am wearing the icon will go away (when i have no prayers on)
Something fucky here:
Code:
if (!usingQuickPrayer) {
onPrayers[getPrayerBook()][prayerId] = true;
resetDrainPrayer(prayerId);
onPrayersCount++;
if (needAppearenceGenerate)
player.getAppearence().generateAppearenceData();
}
Maybe try putting:
Code:
if (needAppearenceGenerate)
player.getAppearence().generateAppearenceData();