diff --git a/scripts/commands/endduel.py b/scripts/commands/endduel.py index 030ef9b3..bbdf97be 100644 --- a/scripts/commands/endduel.py +++ b/scripts/commands/endduel.py @@ -19,7 +19,7 @@ def run(core, actor, target, commandString): if not combatSvc.areInDuel(actor, target): return - combatSvc.handleEndDuel(actor, target) + combatSvc.handleEndDuel(actor, target, true) return \ No newline at end of file diff --git a/scripts/commands/setgodmode.py b/scripts/commands/setgodmode.py index b8983531..abb792da 100644 --- a/scripts/commands/setgodmode.py +++ b/scripts/commands/setgodmode.py @@ -66,18 +66,19 @@ def run(core, actor, target, commandString): dGun.setStringAttribute('crafter', 'Wavescrub') core.playerService.giveItems(actor, testObject, dGun) return - + elif command == 'comm': comm = CommPlayerMessage(actor.getObjectId()) actor.getClient().getSession().write(comm.serialize()) + elif command == 'spawn' and arg1 and arg2: pos = actor.getWorldPosition() - core.spawnService.spawnCreature(arg1, actor.getPlanet().getName(), 0, pos.x, pos.y, pos.z, 1, 0, 1, 0, int(arg2)) + core.spawnService.spawnCreature(arg1, actor.getPlanet().getName(), 0, pos.x, pos.y, pos.z, 1, 0, 1, 0, int(arg2)) elif command == 'instance' and arg1: core.instanceService.queue(arg1, actor) elif command == 'id': actor.sendSystemMessage('Your id is: ' + str(actor.getObjectId()), 0) -´ + return diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index e7c25f85..9b1e65e8 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -836,7 +836,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { } - /*public IoBuffer buildAddSkillModDelta(String name, int base) { + public IoBuffer buildAddSkillModDelta(String name, int base) { CreatureObject creature = (CreatureObject) object; @@ -854,9 +854,9 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { return buffer; - }*/ + } - /*public IoBuffer buildRemoveSkillModDelta(String name, int base) { + public IoBuffer buildRemoveSkillModDelta(String name, int base) { CreatureObject creature = (CreatureObject) object; @@ -874,7 +874,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { return buffer; - }*/ + } public IoBuffer buildAddSkillDelta(String name) { diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 33241f1a..f48643f7 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -585,10 +585,10 @@ public class CreatureObject extends TangibleObject implements IPersistent { SkillMod mod = getSkillMod(name); mod.setBase(mod.getBase() + base); - /*if(getClient() != null) { + if(getClient() != null) { setSkillModsUpdateCounter((short) (getSkillModsUpdateCounter() + 1)); getClient().getSession().write(messageBuilder.buildAddSkillModDelta(name, mod.getBase())); - }*/ + } } } @@ -606,10 +606,10 @@ public class CreatureObject extends TangibleObject implements IPersistent { } else { skillMods.set(skillMods.indexOf(mod), mod); System.out.println("Deducted mod!"); - /*if(getClient() != null) { + if(getClient() != null) { setSkillModsUpdateCounter((short) (getSkillModsUpdateCounter() + 1)); getClient().getSession().write(messageBuilder.buildAddSkillModDelta(name, mod.getBase())); - }*/ + } } } @@ -617,10 +617,10 @@ public class CreatureObject extends TangibleObject implements IPersistent { public void removeSkillMod(SkillMod mod) { skillMods.remove(mod); - /*if(getClient() != null) { + if(getClient() != null) { setSkillModsUpdateCounter((short) (getSkillModsUpdateCounter() + 1)); getClient().getSession().write(messageBuilder.buildRemoveSkillModDelta(mod.getName(), mod.getBase())); - }*/ + } } public short getSkillModsUpdateCounter() { diff --git a/src/services/ConnectionService.java b/src/services/ConnectionService.java index b5b47f9c..a7b67d2c 100644 --- a/src/services/ConnectionService.java +++ b/src/services/ConnectionService.java @@ -214,7 +214,7 @@ public class ConnectionService implements INetworkDispatch { for (CreatureObject opponent : object.getDuelList()) { if (opponent != null) { - core.combatService.handleEndDuel(object, opponent); + core.combatService.handleEndDuel(object, opponent, false); } } diff --git a/src/services/combat/CombatService.java b/src/services/combat/CombatService.java index a107e39a..78f0b7c0 100644 --- a/src/services/combat/CombatService.java +++ b/src/services/combat/CombatService.java @@ -990,8 +990,9 @@ public class CombatService implements INetworkDispatch { attacker.removeDefender(target); target.removeDefender(attacker); - core.playerService.sendCloningWindow(target, attacker.getSlottedObject("ghost") != null); + if(target.getDuelList().contains(attacker)) handleEndDuel(target, attacker, false); + core.playerService.sendCloningWindow(target, attacker.getSlottedObject("ghost") != null); } public boolean areInDuel(CreatureObject creature1, CreatureObject creature2) { @@ -1000,7 +1001,6 @@ public class CombatService implements INetworkDispatch { return true; return false; - } public void handleDuel(CreatureObject requester, CreatureObject target) { @@ -1025,7 +1025,7 @@ public class CombatService implements INetworkDispatch { } - public void handleEndDuel(CreatureObject requester, CreatureObject target) { + public void handleEndDuel(CreatureObject requester, CreatureObject target, boolean announce) { requester.getDuelList().remove(target); target.getDuelList().remove(requester); @@ -1036,8 +1036,11 @@ public class CombatService implements INetworkDispatch { target.getClient().getSession().write(new UpdatePVPStatusMessage(requester.getObjectID(), 0x16, requester.getFaction()).serialize()); requester.getClient().getSession().write(new UpdatePVPStatusMessage(target.getObjectID(), 0x16, target.getFaction()).serialize()); - requester.sendSystemMessage("You end your duel with " + target.getCustomName() + ".", (byte) 0); - target.sendSystemMessage(requester.getCustomName() + " ends your duel.", (byte) 0); + if(announce) + { + requester.sendSystemMessage("You end your duel with " + target.getCustomName() + ".", (byte) 0); + target.sendSystemMessage(requester.getCustomName() + " ends your duel.", (byte) 0); + } }