diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index de8bf1d3..b6d9517f 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -233,7 +233,7 @@ public class TangibleObject extends SWGObject { Client observer = it.next(); if (observer.getParent() != null) { - observer.getSession().write(new UpdatePVPStatusMessage(this.getObjectID(), NGECore.getInstance().factionService.calculatePvpStatus(observer, this), getFaction()).serialize()); + observer.getSession().write(new UpdatePVPStatusMessage(this.getObjectID(), NGECore.getInstance().factionService.calculatePvpStatus((CreatureObject) observer.getParent(), this), getFaction()).serialize()); } } } diff --git a/src/services/combat/CombatService.java b/src/services/combat/CombatService.java index 01387ffb..25d8517d 100644 --- a/src/services/combat/CombatService.java +++ b/src/services/combat/CombatService.java @@ -847,6 +847,8 @@ public class CombatService implements INetworkDispatch { return false; } + if(target.getAttachment("AI") != null) return false; + if(healer.getFaction().equals(target.getFaction())) { if(healer.getFactionStatus() < target.getFactionStatus()) diff --git a/src/services/gcw/FactionService.java b/src/services/gcw/FactionService.java index f774e934..3a604f9a 100644 --- a/src/services/gcw/FactionService.java +++ b/src/services/gcw/FactionService.java @@ -203,11 +203,12 @@ public class FactionService implements INetworkDispatch { int pvpBitmask = target.getPvPBitmask(); - if (target.getFactionStatus() == FactionStatus.Combatant) { + // Seefo: Casting target to type CreatureObject as temporary fix. I am unsure whether or not we want to put a factionStatus member inside of TangibleObject. + if (((CreatureObject) target).getFactionStatus() == FactionStatus.Combatant) { pvpBitmask |= PvpStatus.Enemy; } - if (target.getFactionStatus() == FactionStatus.SpecialForces) { + if (((CreatureObject) target).getFactionStatus() == FactionStatus.SpecialForces) { pvpBitmask |= PvpStatus.Overt; if (target.getSlottedObject("ghost") != null) { @@ -232,7 +233,7 @@ public class FactionService implements INetworkDispatch { return pvpBitmask; } - if (player.getFaction().equals(target.getFaction()) { + if (player.getFaction().equals(target.getFaction())) { return pvpBitmask; }