|
|
@ -316,9 +316,14 @@ public class Mob extends AbstractIntelligenceAgent { |
|
|
|
|
|
|
|
|
|
|
|
writer.put((byte) 1); |
|
|
|
writer.put((byte) 1); |
|
|
|
|
|
|
|
|
|
|
|
if (mob.getOwner() != null) { |
|
|
|
|
|
|
|
writer.putInt(mob.getOwner().getObjectType().ordinal()); |
|
|
|
if ((PlayerCharacter) mob.guardCaptain != null) { |
|
|
|
writer.putInt(mob.getOwner().getObjectUUID()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writer.putInt(((PlayerCharacter) mob.guardCaptain).getObjectType().ordinal()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writer.putInt(((PlayerCharacter) mob.guardCaptain).getObjectUUID()); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
writer.putInt(0); //ownerType
|
|
|
|
writer.putInt(0); //ownerType
|
|
|
|
writer.putInt(0); //ownerID
|
|
|
|
writer.putInt(0); //ownerID
|
|
|
@ -732,17 +737,6 @@ public class Mob extends AbstractIntelligenceAgent { |
|
|
|
return this.guild.getObjectUUID(); |
|
|
|
return this.guild.getObjectUUID(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public PlayerCharacter getOwner() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return (PlayerCharacter) this.guardCaptain; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setOwner(PlayerCharacter value) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.guardCaptain = value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setFearedObject(AbstractWorldObject awo) { |
|
|
|
public void setFearedObject(AbstractWorldObject awo) { |
|
|
|
this.fearedObject = awo; |
|
|
|
this.fearedObject = awo; |
|
|
|
} |
|
|
|
} |
|
|
@ -751,7 +745,7 @@ public class Mob extends AbstractIntelligenceAgent { |
|
|
|
public Vector3fImmutable getBindLoc() { |
|
|
|
public Vector3fImmutable getBindLoc() { |
|
|
|
|
|
|
|
|
|
|
|
if (this.isPet() && !this.behaviourType.equals(MobBehaviourType.SiegeEngine)) |
|
|
|
if (this.isPet() && !this.behaviourType.equals(MobBehaviourType.SiegeEngine)) |
|
|
|
return this.getOwner() != null ? this.getOwner().getLoc() : this.getLoc(); |
|
|
|
return (PlayerCharacter) this.guardCaptain != null ? ((PlayerCharacter) this.guardCaptain).getLoc() : this.getLoc(); |
|
|
|
else |
|
|
|
else |
|
|
|
return this.bindLoc; |
|
|
|
return this.bindLoc; |
|
|
|
} |
|
|
|
} |
|
|
@ -875,7 +869,8 @@ public class Mob extends AbstractIntelligenceAgent { |
|
|
|
|
|
|
|
|
|
|
|
if (mobAttacker.isPet()) { |
|
|
|
if (mobAttacker.isPet()) { |
|
|
|
|
|
|
|
|
|
|
|
PlayerCharacter owner = mobAttacker.getOwner(); |
|
|
|
|
|
|
|
|
|
|
|
PlayerCharacter owner = (PlayerCharacter) mobAttacker.guardCaptain; |
|
|
|
|
|
|
|
|
|
|
|
if (owner != null) |
|
|
|
if (owner != null) |
|
|
|
if (!this.isPet() && !this.isNecroPet() && !(this.agentType.equals(AIAgentType.PET)) && !this.isPlayerGuard) { |
|
|
|
if (!this.isPet() && !this.isNecroPet() && !(this.agentType.equals(AIAgentType.PET)) && !this.isPlayerGuard) { |
|
|
@ -945,13 +940,17 @@ public class Mob extends AbstractIntelligenceAgent { |
|
|
|
|
|
|
|
|
|
|
|
if (this.isPet()) { |
|
|
|
if (this.isPet()) { |
|
|
|
|
|
|
|
|
|
|
|
PlayerCharacter petOwner = this.getOwner(); |
|
|
|
|
|
|
|
|
|
|
|
PlayerCharacter petOwner = (PlayerCharacter) this.guardCaptain; |
|
|
|
|
|
|
|
|
|
|
|
if (petOwner != null) { |
|
|
|
if (petOwner != null) { |
|
|
|
this.setOwner(null); |
|
|
|
|
|
|
|
|
|
|
|
this.guardCaptain = null; |
|
|
|
petOwner.setPet(null); |
|
|
|
petOwner.setPet(null); |
|
|
|
PetMsg petMsg = new PetMsg(5, null); |
|
|
|
PetMsg petMsg = new PetMsg(5, null); |
|
|
|
dispatch = Dispatch.borrow(this.getOwner(), petMsg); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dispatch = Dispatch.borrow((PlayerCharacter) this.guardCaptain, petMsg); |
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.PRIMARY); |
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.PRIMARY); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -974,10 +973,13 @@ public class Mob extends AbstractIntelligenceAgent { |
|
|
|
WorldGrid.RemoveWorldObject(this); |
|
|
|
WorldGrid.RemoveWorldObject(this); |
|
|
|
|
|
|
|
|
|
|
|
DbManager.removeFromCache(this); |
|
|
|
DbManager.removeFromCache(this); |
|
|
|
PlayerCharacter petOwner = this.getOwner(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PlayerCharacter petOwner = (PlayerCharacter) this.guardCaptain; |
|
|
|
|
|
|
|
|
|
|
|
if (petOwner != null) { |
|
|
|
if (petOwner != null) { |
|
|
|
this.setOwner(null); |
|
|
|
|
|
|
|
|
|
|
|
this.guardCaptain = null; |
|
|
|
petOwner.setPet(null); |
|
|
|
petOwner.setPet(null); |
|
|
|
PetMsg petMsg = new PetMsg(5, null); |
|
|
|
PetMsg petMsg = new PetMsg(5, null); |
|
|
|
dispatch = Dispatch.borrow(petOwner, petMsg); |
|
|
|
dispatch = Dispatch.borrow(petOwner, petMsg); |
|
|
|