When I use multi barrage a npc, the surrounding npcs do not get barraged.
Here is the code from combatassistant.java
Code:
public void appendMultiBarrage(int playerId, boolean splashed) {
if (Server.playerHandler.players[playerId] != null) {
Client c2 = (Client)Server.playerHandler.players[playerId];
if (c2.isDead || c2.respawnTimer > 0)
return;
if (checkMultiBarrageReqs(playerId)) {
c.barrageCount++;
if (Misc.random(mageAtk()) > Misc.random(mageDef()) && !c.magicFailed) {
if(getEndGfxHeight() == 100){ // end GFX
c2.gfx100(c.MAGIC_SPELLS[c.oldSpellId][5]);
} else {
c2.gfx0(c.MAGIC_SPELLS[c.oldSpellId][5]);
}
int damage = Misc.random(c.MAGIC_SPELLS[c.oldSpellId][6]);
if (c2.prayerActive[12]) {
damage *= (int)(.60);
}
if (c2.playerLevel[3] - damage < 0) {
damage = c2.playerLevel[3];
}
c.getPA().addSkillXP((c.MAGIC_SPELLS[c.oldSpellId][7] + damage*Config.MAGIC_EXP_RATE), 6);
c.getPA().addSkillXP((c.MAGIC_SPELLS[c.oldSpellId][7] + damage*Config.MAGIC_EXP_RATE/3), 3);
//Server.playerHandler.players[playerId].setHitDiff(damage);
//Server.playerHandler.players[playerId].setHitUpdateRequired(true);
Server.playerHandler.players[playerId].handleHitMask(damage);
//Server.playerHandler.players[playerId].playerLevel[3] -= damage;
Server.playerHandler.players[playerId].dealDamage(damage);
Server.playerHandler.players[playerId].damageTaken[c.playerId] += damage;
c2.getPA().refreshSkill(3);
c.totalPlayerDamageDealt += damage;
multiSpellEffect(playerId, damage);
} else {
c2.gfx100(85);
}
}
}
}
Code:
public boolean checkMultiBarrageReqs(int i) {
if(Server.playerHandler.players[i] == null) {
return false;
}
if (i == c.playerId)
return false;
if (c.inPits && Server.playerHandler.players[i].inPits)
return true;
if(!Server.playerHandler.players[i].inWild()) {
return false;
}
if(Config.COMBAT_LEVEL_DIFFERENCE) {
int combatDif1 = c.getCombat().getCombatDifference(c.combatLevel, Server.playerHandler.players[i].combatLevel);
if(combatDif1 > c.wildLevel || combatDif1 > Server.playerHandler.players[i].wildLevel) {
c.sendMessage("Your combat level difference is too great to attack that player here.");
return false;
}
}