diff --git a/scripts/commands/transferitemmisc.py b/scripts/commands/transferitemmisc.py index 2df5ab93..9680da3e 100644 --- a/scripts/commands/transferitemmisc.py +++ b/scripts/commands/transferitemmisc.py @@ -23,12 +23,17 @@ def run(core, actor, target, commandString): if target.getTemplate() == 'object/tangible/item/shared_loot_cash.iff': core.lootService.handleCreditPickUp(actor,target) + if target.getGrandparent().getInventoryItemCount()==1: + core.lootService.setLooted(actor,target.getGrandparent()) core.objectService.destroyObject(target) return if target.isLootItem(): target.setLootItem(0) actor.sendSystemMessage('You looted ' + target.getObjectName().getStfValue() + ' from corpse.', 0) + #actor.sendSystemMessage('container.getInventoryItemCount() %s' % target.getGrandparent().getInventoryItemCount(), 0) + if target.getGrandparent().getInventoryItemCount()==1: + core.lootService.setLooted(actor,target.getGrandparent()) if actorContainer != None and (container.getTemplate() == "object/cell/shared_cell.iff") & core.housingService.getPermissions(actor, actorContainer): target.getContainer().transferTo(actor, container, target) diff --git a/src/protocol/swg/StopClientEffectObjectByLabel.java b/src/protocol/swg/StopClientEffectObjectByLabel.java index e1a99339..043035c1 100644 --- a/src/protocol/swg/StopClientEffectObjectByLabel.java +++ b/src/protocol/swg/StopClientEffectObjectByLabel.java @@ -33,10 +33,18 @@ public class StopClientEffectObjectByLabel extends SWGMessage { private long objectId; private String effectFile; private String commandString; + private byte unknownFlag; public StopClientEffectObjectByLabel(long objectId, String commandString) { this.objectId = objectId; this.commandString = commandString; + this.unknownFlag = 1; + } + + public StopClientEffectObjectByLabel(long objectId, String commandString, byte unknownFlag) { + this.objectId = objectId; + this.commandString = commandString; + this.unknownFlag = unknownFlag; } @Override @@ -48,7 +56,7 @@ public class StopClientEffectObjectByLabel extends SWGMessage { result.putInt(0xAD6F6B26); result.putLong(objectId); result.put(getAsciiString(commandString)); - result.put((byte) 0); + result.put(unknownFlag); return result.flip(); diff --git a/src/services/LootService.java b/src/services/LootService.java index 97f0a83f..a9e57e0b 100644 --- a/src/services/LootService.java +++ b/src/services/LootService.java @@ -102,7 +102,7 @@ public class LootService implements INetworkDispatch { } SWGObject lootedObjectInventory = lootedObject.getSlottedObject("inventory"); core.simulationService.openContainer(requester, lootedObjectInventory); - setLooted(requester,lootedObject); + //setLooted(requester,lootedObject); } } @@ -1870,7 +1870,7 @@ public class LootService implements INetworkDispatch { public void setLooted(CreatureObject requester,TangibleObject lootedObject){ lootedObject.setLooted(true); - StopClientEffectObjectByLabel stopmsg = new StopClientEffectObjectByLabel(lootedObject.getObjectID(),"lootMe"); + StopClientEffectObjectByLabel stopmsg = new StopClientEffectObjectByLabel(lootedObject.getObjectID(),"lootMe", (byte) 0); requester.getClient().getSession().write(stopmsg.serialize()); } @@ -2553,6 +2553,8 @@ public class LootService implements INetworkDispatch { TangibleObject item11 = (TangibleObject)core.objectService.createObject("object/tangible/loot/npc_loot/shared_armor_repair_device_generic.iff", player.getPlanet()); item11.setCustomName("Armor Repair Device"); playerInventory.add(item11); + + }