From 6d96545dd9da793b7d955c0f141e010f9340ece8 Mon Sep 17 00:00:00 2001 From: Seefo Date: Sat, 29 Mar 2014 19:31:13 -0400 Subject: [PATCH 1/2] #283 should be fixed --- src/services/combat/CombatService.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/services/combat/CombatService.java b/src/services/combat/CombatService.java index 53022efc..8c9fd9a3 100644 --- a/src/services/combat/CombatService.java +++ b/src/services/combat/CombatService.java @@ -193,7 +193,15 @@ public class CombatService implements INetworkDispatch { creature.removeDefender(defender); } } - } + } + else if(target instanceof TangibleObject) + { + if(target.getConditionDamage() == target.getMaxDamage()) + { + for(TangibleObject defender : target.getDefendersList()) defender.removeDefender(target); + core.objectService.destroyObject(target); + } + } } private void doAreaCombat(CreatureObject attacker, TangibleObject target, WeaponObject weapon, CombatCommand command, int actionCounter) { From a6d91379fef11686ab4f9e215733ffe1cab008ad Mon Sep 17 00:00:00 2001 From: Light2 Date: Sun, 30 Mar 2014 00:54:09 +0100 Subject: [PATCH 2/2] temp fix for /pvp bug, fixed null pointer on buffing ai --- scripts/commands/pvp.py | 12 ++++++------ .../creature/CreatureMessageBuilder.java | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/scripts/commands/pvp.py b/scripts/commands/pvp.py index e7c27d07..8fbdc155 100644 --- a/scripts/commands/pvp.py +++ b/scripts/commands/pvp.py @@ -47,30 +47,30 @@ def run(core, actor, target, commandString): if factionStatus == FactionStatus.OnLeave: actor.sendSystemMessage('@faction_recruiter:on_leave_to_covert', 0) - actor.setPvpStatus(PvpStatus.GoingCovert, True) + #actor.setPvpStatus(PvpStatus.GoingCovert, True) time.sleep(1) actor.setFactionStatus(FactionStatus.Combatant) - actor.setPvpStatus(PvpStatus.GoingCovert, False) + #actor.setPvpStatus(PvpStatus.GoingCovert, False) actor.sendSystemMessage('@faction_recruiter:covert_complete', 0) actor.updatePvpStatus() return if factionStatus == FactionStatus.Combatant: actor.sendSystemMessage('@faction_recruiter:covert_to_overt', 0) - actor.setPvpStatus(PvpStatus.GoingOvert, True) + #actor.setPvpStatus(PvpStatus.GoingOvert, True) time.sleep(30) actor.setFactionStatus(FactionStatus.SpecialForces) - actor.setPvpStatus(PvpStatus.GoingOvert, False) + #actor.setPvpStatus(PvpStatus.GoingOvert, False) actor.sendSystemMessage('@faction_recruiter:overt_complete', 0) actor.updatePvpStatus() return if factionStatus == FactionStatus.SpecialForces: actor.sendSystemMessage('@faction_recruiter:overt_to_covert', 0) - actor.setPvpStatus(PvpStatus.GoingCovert, True) + #actor.setPvpStatus(PvpStatus.GoingCovert, True) time.sleep(300) actor.setFactionStatus(FactionStatus.Combatant) - actor.setPvpStatus(PvpStatus.GoingCovert, False) + #actor.setPvpStatus(PvpStatus.GoingCovert, False) actor.sendSystemMessage('@faction_recruiter:covert_complete', 0) actor.updatePvpStatus() return diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index c543a344..f887313e 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -362,8 +362,11 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { PlayerObject player = (PlayerObject) creature.getSlottedObject("ghost"); for(Buff buff : creature.getBuffList().get()) { - - buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); + + if(player != null) + buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); + else + buff.setTotalPlayTime(0); buffer.put((byte) 1); buffer.putInt(0); buffer.putInt(CRC.StringtoCRC(buff.getBuffName())); @@ -777,7 +780,10 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = bufferPool.allocate(37, false).order(ByteOrder.LITTLE_ENDIAN); buffer.putInt(1); buffer.putInt(creature.getBuffListCounter()); - buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); + if(player != null) + buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); + else + buff.setTotalPlayTime(0); buffer.put((byte) 0); buffer.put(buff.getBytes()); int size = buffer.position(); @@ -813,7 +819,10 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { IoBuffer buffer = bufferPool.allocate(37, false).order(ByteOrder.LITTLE_ENDIAN); buffer.putInt(1); buffer.putInt(creature.getBuffListCounter()); - buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); + if(player != null) + buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); + else + buff.setTotalPlayTime(0); buffer.put((byte) 2); buffer.put(buff.getBytes()); int size = buffer.position();