From 6471d7e118eb322b7e49056b6eb93521f75aa656 Mon Sep 17 00:00:00 2001 From: darkk1138 Date: Sun, 8 Dec 2013 17:25:04 +0100 Subject: [PATCH] add /groupdance command --- scripts/commands/groupdance.py | 11 +++++++ .../creature/CreatureMessageBuilder.java | 2 +- .../objects/creature/CreatureObject.java | 29 +++++++++++++++++-- src/services/EntertainmentService.java | 7 +++-- src/services/command/CommandService.java | 1 - 5 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 scripts/commands/groupdance.py diff --git a/scripts/commands/groupdance.py b/scripts/commands/groupdance.py new file mode 100644 index 00000000..ed38ed89 --- /dev/null +++ b/scripts/commands/groupdance.py @@ -0,0 +1,11 @@ +import sys + +def setup(): + return + +def run(core, actor, target, commandString): + + newState = actor.toggleGroupDance() + msg = '@performance:dance_group_on' if newState else '@performance:dance_group_off' + actor.sendSystemMessage(msg, 0) + return diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index ef2a2ad4..2491e829 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -992,7 +992,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder { buffer.putLong(creatureObjectId); int size = buffer.position(); buffer.flip(); - buffer = createDelta("CREO", (byte) 4, (short) 1, (short) 2, buffer, size + 4); + buffer = createDelta("CREO", (byte) 4, (short) 1, (short) 0x09, buffer, size + 4); return buffer; } diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index f0b160b5..4f24298c 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -55,7 +55,7 @@ import engine.resources.scene.Quaternion; import resources.objects.tangible.TangibleObject; import resources.objects.weapon.WeaponObject; -@Entity(version=6) +@Entity(version=7) public class CreatureObject extends TangibleObject implements IPersistent { @NotPersistent @@ -120,6 +120,8 @@ public class CreatureObject extends TangibleObject implements IPersistent { //FIXME: hmm.. or persistent? @NotPersistent private boolean acceptBandflourishes = true; + @NotPersistent + private boolean groupDance = true; private CreatureObject performanceWatchee; private CreatureObject performanceListenee; private int health = 1000; @@ -1341,6 +1343,26 @@ public class CreatureObject extends TangibleObject implements IPersistent { public boolean setStaticNPC(boolean staticNPC) { return this.staticNPC = staticNPC; } + + public boolean getGroupDance() { + synchronized(objectMutex) { + return groupDance; + } + } + + public void setGroupDance(boolean groupDance) { + synchronized(objectMutex) { + this.groupDance = groupDance; + } + } + + public boolean toggleGroupDance() { + synchronized(objectMutex) { + groupDance = !groupDance; + return groupDance; + } + } + public CreatureObject getPerformanceWatchee() { synchronized(objectMutex) { return performanceWatchee; @@ -1351,7 +1373,7 @@ public class CreatureObject extends TangibleObject implements IPersistent { synchronized(objectMutex) { this.performanceWatchee = performanceWatchee; } - getClient().getSession().write(messageBuilder.buildListenToId(performanceWatchee.getObjectId())); + //getClient().getSession().write(messageBuilder.buildListenToId(0)); } public CreatureObject getPerformanceListenee() { @@ -1363,7 +1385,10 @@ public class CreatureObject extends TangibleObject implements IPersistent { public void setPerformanceListenee(CreatureObject performanceListenee) { synchronized(objectMutex) { this.performanceListenee = performanceListenee; + //possibly redundant, need to research this further. + this.listenToId = performanceListenee.getObjectId(); } + getClient().getSession().write(messageBuilder.buildListenToId(this.listenToId)); } public void startPerformance(int performanceId, int performanceCounter, String skillName, boolean isDance) { diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index 5bcfa7b6..60a6d7a0 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -215,11 +215,12 @@ public class EntertainmentService implements INetworkDispatch { } private void registerCommands() { - core.commandService.registerCommand("startdance"); - core.commandService.registerCommand("stopdance"); + core.commandService.registerCommand("bandflourish"); core.commandService.registerCommand("flourish"); core.commandService.registerAlias("flo","flourish"); - core.commandService.registerCommand("bandflourish"); + core.commandService.registerCommand("groupdance"); + core.commandService.registerCommand("startdance"); + core.commandService.registerCommand("stopdance"); } public void giveInspirationBuff(SWGObject reciever, Vector buffVector) { diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index 293645f3..d02d5521 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -131,7 +131,6 @@ public class CommandService implements INetworkDispatch { } - //FIXME: CRC could just be generated as well. public void registerAlias(String name, String target) { Vector commands = new Vector(commandLookup); // copy for thread safety BaseSWGCommand targetCommand = null;