From 99a1b523ec6a15ed4cbdd39a103133124947ae70 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Sun, 29 Jun 2014 20:41:09 +0200 Subject: [PATCH 1/5] Added Deed for Jetpack --- scripts/object/tangible/deed/vehicle_deed/jetpack_deed.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/object/tangible/deed/vehicle_deed/jetpack_deed.py b/scripts/object/tangible/deed/vehicle_deed/jetpack_deed.py index ccad8904..d042fbeb 100644 --- a/scripts/object/tangible/deed/vehicle_deed/jetpack_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/jetpack_deed.py @@ -1,4 +1,9 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/vehicleDeed') + return + +def use(core, actor, object): + core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_jetpack.iff', 'object/intangible/vehicle/shared_jetpack_pcd.iff') return \ No newline at end of file From 745991a960534e3a5f5bc85081df16662d2e74f9 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Sun, 29 Jun 2014 20:45:34 +0200 Subject: [PATCH 2/5] Fixed Deed for BARC Speeder --- .../deed/vehicle_deed/barc_speeder_deed.py | 36 ++----------------- 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py b/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py index 17638f96..5bd711f9 100644 --- a/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py @@ -5,36 +5,6 @@ def setup(core, object): return def use(core, actor, object): - if object.getStfName() == ('barc_speeder'): - datapad = actor.getSlottedObject('datapad') - pcd = core.objectService.createObject('object/intangible/vehicle/shared_barc_speeder_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) - - if datapad and pcd: - - datapad.add(pcd) - core.objectService.destroyObject(object) - - vehicleId = actor.getAttachment('activeVehicleID') - - if vehicleId == None: - vehicle = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) - vehicle.setOwnerId(actor.getObjectID()) - core.simulationService.add(vehicle, vehicle.getPosition().x, vehicle.getPosition().z, True) - actor.setAttachment('activeVehicleID', vehicle.getObjectID()) - elif object.getStfName() == ('item_deed_barc_rebel_06_01'): - datapad = actor.getSlottedObject('datapad') - pcd = core.objectService.createObject('object/intangible/vehicle/shared_barc_speeder_rebel_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) - - if datapad and pcd: - - datapad.add(pcd) - core.objectService.destroyObject(object) - - vehicleId = actor.getAttachment('activeVehicleID') - - if vehicleId == None: - vehicle = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder_rebel.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y) - vehicle.setOwnerId(actor.getObjectID()) - core.simulationService.add(vehicle, vehicle.getPosition().x, vehicle.getPosition().z, True) - actor.setAttachment('activeVehicleID', vehicle.getObjectID()) - return \ No newline at end of file + core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_barc_speeder.iff', 'object/intangible/vehicle/shared_barc_speeder_pcd.iff') + return + \ No newline at end of file From 3dd2691d53f560f807387d7564199bbf46821729 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sun, 29 Jun 2014 14:47:45 -0400 Subject: [PATCH 3/5] Fixed null error when sending mail to an offline player --- src/services/chat/ChatService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index df40f785..15f9c1dd 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -289,8 +289,11 @@ public class ChatService implements INetworkDispatch { return; } - SWGObject recipient = getObjectByFirstName(packet.getRecipient()); - + SWGObject recipient = core.objectService.getObjectByFirstName(packet.getRecipient()); + + if (recipient == null) + return; + PlayerObject recipientGhost = (PlayerObject) recipient.getSlottedObject("ghost"); if (recipientGhost.getIgnoreList().contains(sender.getCustomName().toLowerCase())) From bd91f7435a0e0ccd69c3c8600ccd22171fc16487 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Sun, 29 Jun 2014 21:23:18 +0200 Subject: [PATCH 4/5] Added Deed for Merr-Sonn JT12 Jetpack --- .../tcg/series3/deed_tcg_merr_sonn_jt12_jetpack.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/object/tangible/tcg/series3/deed_tcg_merr_sonn_jt12_jetpack.py b/scripts/object/tangible/tcg/series3/deed_tcg_merr_sonn_jt12_jetpack.py index ccad8904..480d6918 100644 --- a/scripts/object/tangible/tcg/series3/deed_tcg_merr_sonn_jt12_jetpack.py +++ b/scripts/object/tangible/tcg/series3/deed_tcg_merr_sonn_jt12_jetpack.py @@ -1,4 +1,10 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setAttachment('radial_filename', 'deeds/vehicleDeed') + return + +def use(core, actor, object): + core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_tcg_merr_sonn_jt12_jetpack.iff', 'object/intangible/vehicle/shared_tcg_merr_sonn_jt12_jetpack_pcd.iff') + return + \ No newline at end of file From 5e94fd024c4c3b1ca1504ef845f1941d39d0f4ac Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Mon, 30 Jun 2014 00:15:43 +0200 Subject: [PATCH 5/5] Fix for #952 - Weapons, armor and clothing are now correctly equipped again serverside. This also re-ensures armor buffs etc - Vehicles spawn correctly again --- scripts/commands/transferitemarmor.py | 6 ++++++ scripts/commands/transferitemmisc.py | 8 +++++++- scripts/commands/transferitemweapon.py | 8 +++++++- src/services/equipment/EquipmentService.java | 6 ++---- src/services/pet/MountService.java | 2 -- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/scripts/commands/transferitemarmor.py b/scripts/commands/transferitemarmor.py index c78c862c..6bf734c3 100644 --- a/scripts/commands/transferitemarmor.py +++ b/scripts/commands/transferitemarmor.py @@ -39,6 +39,12 @@ def run(core, actor, target, commandString): if object != None: actor.transferTo(actor, oldContainer, object) + + if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'): + core.equipmentService.equip(actor, target) + + for object in replacedObjects: + core.equipmentService.unequip(actor, object) oldContainer.transferTo(actor, container, target) diff --git a/scripts/commands/transferitemmisc.py b/scripts/commands/transferitemmisc.py index fe26a0fa..d5d42299 100644 --- a/scripts/commands/transferitemmisc.py +++ b/scripts/commands/transferitemmisc.py @@ -78,7 +78,13 @@ def run(core, actor, target, commandString): replacedObjects.append(object) if object != None: - container.transferTo(actor, container, object) + container.transferTo(actor, container, object) + + if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'): + core.equipmentService.equip(actor, target) + + for object in replacedObjects: + core.equipmentService.unequip(actor, object) # Needs to be verified due to the new structure of the script oldContainer.transferTo(actor, container, target) diff --git a/scripts/commands/transferitemweapon.py b/scripts/commands/transferitemweapon.py index 500ee505..c75635a3 100644 --- a/scripts/commands/transferitemweapon.py +++ b/scripts/commands/transferitemweapon.py @@ -39,7 +39,13 @@ def run(core, actor, target, commandString): if object != None: container.transferTo(actor, container, object) - + + if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'): + core.equipmentService.equip(actor, target) + + for object in replacedObjects: + core.equipmentService.unequip(actor, object) + oldContainer.transferTo(actor, container, target) return diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index 9a989109..c6d93c85 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -157,17 +157,15 @@ public class EquipmentService implements INetworkDispatch { } public void equip(CreatureObject actor, SWGObject item) - { + { String template = ((item.getAttachment("customServerTemplate") == null) ? item.getTemplate() : (item.getTemplate().split("shared_")[0] + "shared_" + ((String) item.getAttachment("customServerTemplate")) + ".iff")); String serverTemplate = template.replace(".iff", ""); PyObject func = core.scriptService.getMethod("scripts/" + serverTemplate.split("shared_" , 2)[0].replace("shared_", ""), serverTemplate.split("shared_" , 2)[1], "equip"); - if(func != null) func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); - + if(func != null) func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); if(!actor.getEquipmentList().contains(item.getObjectID())) { if(item instanceof WeaponObject) actor.setWeaponId(item.getObjectID()); - actor.addObjectToEquipList(item); processItemAtrributes(actor, item, true); } diff --git a/src/services/pet/MountService.java b/src/services/pet/MountService.java index 39e78ecb..0af426b8 100644 --- a/src/services/pet/MountService.java +++ b/src/services/pet/MountService.java @@ -185,8 +185,6 @@ public class MountService implements INetworkDispatch { mount.setFaction(actor.getFaction()); mount.setFactionStatus(actor.getFactionStatus()); mount.setOwnerId(actor.getObjectID()); - AIActor aiActor = (AIActor) mount.getAttachment("AI"); - aiActor.setFollowObject(actor); if (pcd.getTemplate().contains("vehicle")) { callVehicle(actor, pcd, player, mount);