From c47ddf77df82116fb2edb127019d9cbae9641d89 Mon Sep 17 00:00:00 2001 From: Seefo Date: Sun, 11 May 2014 12:42:40 -0400 Subject: [PATCH] Fixed a container limit bug --- scripts/commands/transferitemarmor.py | 13 +++++++------ scripts/commands/transferitemmisc.py | 2 +- scripts/commands/transferitemweapon.py | 12 +++++++----- src/resources/objects/tangible/TangibleObject.java | 2 ++ 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/scripts/commands/transferitemarmor.py b/scripts/commands/transferitemarmor.py index f4af003c..8e166cbc 100644 --- a/scripts/commands/transferitemarmor.py +++ b/scripts/commands/transferitemarmor.py @@ -4,17 +4,18 @@ def setup(): return def run(core, actor, target, commandString): - canEquip = core.equipmentService.canEquip(actor, target) - - if canEquip[0] is False: - actor.sendSystemMessage(canEquip[1], 0) - return - parsedMsg = commandString.split(' ', 3) objService = core.objectService containerID = long(parsedMsg[1]) container = objService.getObject(containerID) + + canEquip = core.equipmentService.canEquip(actor, target) + + if canEquip[0] is False and container == actor: + actor.sendSystemMessage(canEquip[1], 0) + return + if target and container and target.getContainer(): oldContainer = target.getContainer() if container == oldContainer: diff --git a/scripts/commands/transferitemmisc.py b/scripts/commands/transferitemmisc.py index 3583e05b..2bc32e5e 100644 --- a/scripts/commands/transferitemmisc.py +++ b/scripts/commands/transferitemmisc.py @@ -45,7 +45,7 @@ def run(core, actor, target, commandString): canEquip = core.equipmentService.canEquip(actor, target) - if canEquip[0] is False: + if canEquip[0] is False and container == actor: actor.sendSystemMessage(canEquip[1], 0) return diff --git a/scripts/commands/transferitemweapon.py b/scripts/commands/transferitemweapon.py index 60f34718..b07c4e03 100644 --- a/scripts/commands/transferitemweapon.py +++ b/scripts/commands/transferitemweapon.py @@ -4,11 +4,7 @@ def setup(): return def run(core, actor, target, commandString): - canEquip = core.equipmentService.canEquip(actor, target) - - if canEquip[0] is False: - actor.sendSystemMessage(canEquip[1], 0) - return + parsedMsg = commandString.split(' ', 3) @@ -21,6 +17,12 @@ def run(core, actor, target, commandString): print 'Error: New container is same as old container.' return; + canEquip = core.equipmentService.canEquip(actor, target) + + if canEquip[0] is False and container == actor: + actor.sendSystemMessage(canEquip[1], 0) + return + replacedObject = None slotName = None replacedObjects = [] diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index 0c34c595..4dc85628 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -697,6 +697,8 @@ public class TangibleObject extends SWGObject implements Serializable { int containerVolumeLimit = (int)getTemplateData().getAttribute("containerVolumeLimit") >> 8; // Shifting because it seems to be returning an extra byte before it should + if(containerVolumeLimit == 0) return false; + if(NGECore.getInstance().objectService.objsInContainer(this, this) >= containerVolumeLimit) return true; return false;