From 676da223e21ee56c77f4f8f926bc5a76219b9aff Mon Sep 17 00:00:00 2001 From: Treeku Date: Wed, 18 Jun 2014 19:44:30 +0100 Subject: [PATCH 01/51] Fixed transferitemmisc error --- scripts/commands/transferitemmisc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/commands/transferitemmisc.py b/scripts/commands/transferitemmisc.py index 9680da3e..9aa20aa6 100644 --- a/scripts/commands/transferitemmisc.py +++ b/scripts/commands/transferitemmisc.py @@ -17,7 +17,7 @@ def run(core, actor, target, commandString): actor.sendSystemMessage('@container_error_message:container03', 0) return - if container.getTemplate().startswith("object/tangible/inventory/shared_lightsaber_inventory") or target.getContainer().getTemplate().startswith("object/tangible/inventory/shared_lightsaber_inventory"): + if container.getTemplate().startswith("object/tangible/inventory/shared_lightsaber_inventory") or (target and target.getContainer().getTemplate().startswith("object/tangible/inventory/shared_lightsaber_inventory")): core.equipmentService.calculateLightsaberAttributes(actor, target, container) return; From acbb63dddb64d8f1f7252ca2879f1077ebff0025 Mon Sep 17 00:00:00 2001 From: Treeku Date: Wed, 18 Jun 2014 19:45:55 +0100 Subject: [PATCH 02/51] Fixed some abilities not working --- src/services/command/CommandService.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index 95d6586f..aa514a51 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -451,11 +451,6 @@ public class CommandService implements INetworkDispatch { } public void processCombatCommand(CreatureObject attacker, SWGObject target, CombatCommand command, int actionCounter, String commandArgs) { - if (target == null) { - System.err.println("ProcessCombatCommand: Target is null"); - return; - } - if (FileUtilities.doesFileExist("scripts/commands/combat/" + command.getCommandName() + ".py")) { core.scriptService.callScript("scripts/commands/combat/", command.getCommandName(), "setup", core, attacker, target, command); } From 7493db923203fa99705b6ac6c5ee1f4673d1e2a3 Mon Sep 17 00:00:00 2001 From: Treeku Date: Fri, 20 Jun 2014 11:58:12 +0100 Subject: [PATCH 03/51] Fixed #911 --- src/resources/objects/mission/MissionObject.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index be116933..609057b4 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -78,7 +78,7 @@ public class MissionObject extends IntangibleObject implements Serializable { baseline.put("repeatCounter", 0); baseline.put("missionType", 0); baseline.put("targetName", ""); - baseline.put("waypoint", (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/base/shared_base_waypoint.iff", getPlanet())); + baseline.put("waypoint", (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/base/shared_base_waypoint.iff", NGECore.getInstance().terrainService.getPlanetByID(0))); return baseline; } From 3495791753dda278381f574d93e1fd0dadb41db5 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sat, 28 Jun 2014 12:11:51 +0100 Subject: [PATCH 04/51] Made getCellByCellName more efficient --- .../objects/building/BuildingObject.java | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index 9ee735d1..3f163e45 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -22,7 +22,6 @@ package resources.objects.building; import java.io.Serializable; -import java.util.Map; import java.util.Vector; import java.util.concurrent.atomic.AtomicReference; @@ -35,9 +34,7 @@ import resources.datatables.Options; import resources.objects.ObjectMessageBuilder; import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; -import resources.objects.player.PlayerObject; import resources.objects.tangible.TangibleObject; -import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.PortalVisitor; import engine.clients.Client; import engine.resources.objects.Baseline; @@ -152,22 +149,16 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria } public CellObject getCellByCellName(String cellName) { - Map attributes = getTemplateData().getAttributes(); + PortalVisitor portal = getPortalVisitor(); - if (attributes.containsKey("portalLayoutFilename") && ((String) attributes.get("portalLayoutFilename")).length() > 0) { - String portalLayoutFilename = (String) attributes.get("portalLayoutFilename"); - - try { - PortalVisitor portal = ClientFileManager.loadFile(portalLayoutFilename, PortalVisitor.class); - - for (int i = 0; i <= portal.cellCount; i++) { - System.out.println("Cellname: " + portal.cells.get(i).name); - if (cellName.equals(portal.cells.get(i).name)) { - return getCellByCellNumber(i + 1); - } - } - } catch (InstantiationException | IllegalAccessException e) { - e.printStackTrace(); + if (portal == null) { + return null; + } + + for (int i = 0; i < portal.cellCount; i++) { + System.out.println("Cellname: " + portal.cells.get(i).name); + if (cellName.equals(portal.cells.get(i).name)) { + return getCellByCellNumber(i + 1); } } From 1d0b83055f493755548946abb36ab18bfaad8c40 Mon Sep 17 00:00:00 2001 From: tacef Date: Sun, 6 Jul 2014 20:11:32 +0200 Subject: [PATCH 05/51] Changed Tuskens to be agressive --- scripts/mobiles/tatooine/tusken_avenger.py | 2 +- scripts/mobiles/tatooine/tusken_berserker.py | 2 +- scripts/mobiles/tatooine/tusken_blood_champion.py | 2 +- scripts/mobiles/tatooine/tusken_brute.py | 2 +- scripts/mobiles/tatooine/tusken_captain.py | 2 +- scripts/mobiles/tatooine/tusken_carnage_champion.py | 2 +- scripts/mobiles/tatooine/tusken_chief.py | 2 +- scripts/mobiles/tatooine/tusken_commoner.py | 2 +- scripts/mobiles/tatooine/tusken_death_hunter.py | 2 +- scripts/mobiles/tatooine/tusken_elite_guard.py | 2 +- scripts/mobiles/tatooine/tusken_executioner.py | 2 +- scripts/mobiles/tatooine/tusken_fighter.py | 2 +- scripts/mobiles/tatooine/tusken_flesh_hunter.py | 2 +- scripts/mobiles/tatooine/tusken_follower.py | 2 +- scripts/mobiles/tatooine/tusken_gore_chief.py | 2 +- scripts/mobiles/tatooine/tusken_guard.py | 2 +- scripts/mobiles/tatooine/tusken_king.py | 2 +- scripts/mobiles/tatooine/tusken_observer.py | 2 +- scripts/mobiles/tatooine/tusken_priest.py | 2 +- scripts/mobiles/tatooine/tusken_raid_champion.py | 2 +- scripts/mobiles/tatooine/tusken_raid_hunter.py | 2 +- scripts/mobiles/tatooine/tusken_raid_leader.py | 2 +- scripts/mobiles/tatooine/tusken_raider.py | 1 + scripts/mobiles/tatooine/tusken_raider_soldier.py | 2 +- scripts/mobiles/tatooine/tusken_raider_warrior.py | 1 + scripts/mobiles/tatooine/tusken_savage.py | 1 + scripts/mobiles/tatooine/tusken_sniper.py | 1 + scripts/mobiles/tatooine/tusken_torture_lord.py | 2 +- scripts/mobiles/tatooine/tusken_warlord.py | 2 +- scripts/mobiles/tatooine/tusken_warmaster.py | 2 +- scripts/mobiles/tatooine/tusken_warrior.py | 2 +- scripts/mobiles/tatooine/tusken_witch_doctor.py | 2 +- scripts/mobiles/tatooine/tusken_zealot.py | 2 +- 33 files changed, 33 insertions(+), 29 deletions(-) diff --git a/scripts/mobiles/tatooine/tusken_avenger.py b/scripts/mobiles/tatooine/tusken_avenger.py index 4fc6b1f1..7fe32055 100644 --- a/scripts/mobiles/tatooine/tusken_avenger.py +++ b/scripts/mobiles/tatooine/tusken_avenger.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_berserker.py b/scripts/mobiles/tatooine/tusken_berserker.py index 155894e4..6788d3af 100644 --- a/scripts/mobiles/tatooine/tusken_berserker.py +++ b/scripts/mobiles/tatooine/tusken_berserker.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_blood_champion.py b/scripts/mobiles/tatooine/tusken_blood_champion.py index 200b5d1a..753ecb6a 100644 --- a/scripts/mobiles/tatooine/tusken_blood_champion.py +++ b/scripts/mobiles/tatooine/tusken_blood_champion.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_brute.py b/scripts/mobiles/tatooine/tusken_brute.py index 122842f4..52c0f393 100644 --- a/scripts/mobiles/tatooine/tusken_brute.py +++ b/scripts/mobiles/tatooine/tusken_brute.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_captain.py b/scripts/mobiles/tatooine/tusken_captain.py index 263c6450..8bdf5d08 100644 --- a/scripts/mobiles/tatooine/tusken_captain.py +++ b/scripts/mobiles/tatooine/tusken_captain.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_carnage_champion.py b/scripts/mobiles/tatooine/tusken_carnage_champion.py index 519ec5d2..f04077f4 100644 --- a/scripts/mobiles/tatooine/tusken_carnage_champion.py +++ b/scripts/mobiles/tatooine/tusken_carnage_champion.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_chief.py b/scripts/mobiles/tatooine/tusken_chief.py index fe3de6a0..bce3c6e5 100644 --- a/scripts/mobiles/tatooine/tusken_chief.py +++ b/scripts/mobiles/tatooine/tusken_chief.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_commoner.py b/scripts/mobiles/tatooine/tusken_commoner.py index e4321e4b..cb9647ab 100644 --- a/scripts/mobiles/tatooine/tusken_commoner.py +++ b/scripts/mobiles/tatooine/tusken_commoner.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_death_hunter.py b/scripts/mobiles/tatooine/tusken_death_hunter.py index 19530e9e..57b3a0e0 100644 --- a/scripts/mobiles/tatooine/tusken_death_hunter.py +++ b/scripts/mobiles/tatooine/tusken_death_hunter.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_elite_guard.py b/scripts/mobiles/tatooine/tusken_elite_guard.py index ba6224ae..419509a7 100644 --- a/scripts/mobiles/tatooine/tusken_elite_guard.py +++ b/scripts/mobiles/tatooine/tusken_elite_guard.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_executioner.py b/scripts/mobiles/tatooine/tusken_executioner.py index bf830ddd..d4bfe1af 100644 --- a/scripts/mobiles/tatooine/tusken_executioner.py +++ b/scripts/mobiles/tatooine/tusken_executioner.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_fighter.py b/scripts/mobiles/tatooine/tusken_fighter.py index 77d5542e..e0d863dc 100644 --- a/scripts/mobiles/tatooine/tusken_fighter.py +++ b/scripts/mobiles/tatooine/tusken_fighter.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_flesh_hunter.py b/scripts/mobiles/tatooine/tusken_flesh_hunter.py index 5aaad428..1b4e40f6 100644 --- a/scripts/mobiles/tatooine/tusken_flesh_hunter.py +++ b/scripts/mobiles/tatooine/tusken_flesh_hunter.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_follower.py b/scripts/mobiles/tatooine/tusken_follower.py index 7423b710..9ee8a613 100644 --- a/scripts/mobiles/tatooine/tusken_follower.py +++ b/scripts/mobiles/tatooine/tusken_follower.py @@ -22,7 +22,7 @@ def addTemplate(core): mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_gore_chief.py b/scripts/mobiles/tatooine/tusken_gore_chief.py index 19634da7..1cb0ba29 100644 --- a/scripts/mobiles/tatooine/tusken_gore_chief.py +++ b/scripts/mobiles/tatooine/tusken_gore_chief.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_guard.py b/scripts/mobiles/tatooine/tusken_guard.py index 1f210d30..b9b97fdd 100644 --- a/scripts/mobiles/tatooine/tusken_guard.py +++ b/scripts/mobiles/tatooine/tusken_guard.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_king.py b/scripts/mobiles/tatooine/tusken_king.py index 28ba34c7..f62e99c8 100644 --- a/scripts/mobiles/tatooine/tusken_king.py +++ b/scripts/mobiles/tatooine/tusken_king.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_observer.py b/scripts/mobiles/tatooine/tusken_observer.py index 39e63478..10086829 100644 --- a/scripts/mobiles/tatooine/tusken_observer.py +++ b/scripts/mobiles/tatooine/tusken_observer.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_priest.py b/scripts/mobiles/tatooine/tusken_priest.py index 00142d69..caf3f003 100644 --- a/scripts/mobiles/tatooine/tusken_priest.py +++ b/scripts/mobiles/tatooine/tusken_priest.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_raid_champion.py b/scripts/mobiles/tatooine/tusken_raid_champion.py index b506caea..4bf1cc70 100644 --- a/scripts/mobiles/tatooine/tusken_raid_champion.py +++ b/scripts/mobiles/tatooine/tusken_raid_champion.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_raid_hunter.py b/scripts/mobiles/tatooine/tusken_raid_hunter.py index ae5b888e..84292b83 100644 --- a/scripts/mobiles/tatooine/tusken_raid_hunter.py +++ b/scripts/mobiles/tatooine/tusken_raid_hunter.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_raid_leader.py b/scripts/mobiles/tatooine/tusken_raid_leader.py index c1c88077..32d80946 100644 --- a/scripts/mobiles/tatooine/tusken_raid_leader.py +++ b/scripts/mobiles/tatooine/tusken_raid_leader.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_raider.py b/scripts/mobiles/tatooine/tusken_raider.py index 61881ab5..3d400f25 100644 --- a/scripts/mobiles/tatooine/tusken_raider.py +++ b/scripts/mobiles/tatooine/tusken_raider.py @@ -21,6 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_raider_soldier.py b/scripts/mobiles/tatooine/tusken_raider_soldier.py index c46931ee..2fcf2dfe 100644 --- a/scripts/mobiles/tatooine/tusken_raider_soldier.py +++ b/scripts/mobiles/tatooine/tusken_raider_soldier.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_raider_warrior.py b/scripts/mobiles/tatooine/tusken_raider_warrior.py index 9816ddaa..8fafdcb1 100644 --- a/scripts/mobiles/tatooine/tusken_raider_warrior.py +++ b/scripts/mobiles/tatooine/tusken_raider_warrior.py @@ -21,6 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_savage.py b/scripts/mobiles/tatooine/tusken_savage.py index 89b60213..bf85fea1 100644 --- a/scripts/mobiles/tatooine/tusken_savage.py +++ b/scripts/mobiles/tatooine/tusken_savage.py @@ -21,6 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_sniper.py b/scripts/mobiles/tatooine/tusken_sniper.py index 65230a00..ecc0720a 100644 --- a/scripts/mobiles/tatooine/tusken_sniper.py +++ b/scripts/mobiles/tatooine/tusken_sniper.py @@ -21,6 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_torture_lord.py b/scripts/mobiles/tatooine/tusken_torture_lord.py index ad36a6f9..116059bc 100644 --- a/scripts/mobiles/tatooine/tusken_torture_lord.py +++ b/scripts/mobiles/tatooine/tusken_torture_lord.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_warlord.py b/scripts/mobiles/tatooine/tusken_warlord.py index f780a730..cd9712ee 100644 --- a/scripts/mobiles/tatooine/tusken_warlord.py +++ b/scripts/mobiles/tatooine/tusken_warlord.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_warmaster.py b/scripts/mobiles/tatooine/tusken_warmaster.py index de051ce9..8efae6bb 100644 --- a/scripts/mobiles/tatooine/tusken_warmaster.py +++ b/scripts/mobiles/tatooine/tusken_warmaster.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_warrior.py b/scripts/mobiles/tatooine/tusken_warrior.py index 01ee2bcc..6d903ae6 100644 --- a/scripts/mobiles/tatooine/tusken_warrior.py +++ b/scripts/mobiles/tatooine/tusken_warrior.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_witch_doctor.py b/scripts/mobiles/tatooine/tusken_witch_doctor.py index 22a97db8..45f7cdb5 100644 --- a/scripts/mobiles/tatooine/tusken_witch_doctor.py +++ b/scripts/mobiles/tatooine/tusken_witch_doctor.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/mobiles/tatooine/tusken_zealot.py b/scripts/mobiles/tatooine/tusken_zealot.py index 1127c2e4..77b4fa82 100644 --- a/scripts/mobiles/tatooine/tusken_zealot.py +++ b/scripts/mobiles/tatooine/tusken_zealot.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("tusken raider") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(False) - + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') From 81891f36498dfd82636d21f813dd44996e0f0c8e Mon Sep 17 00:00:00 2001 From: Freddiec Date: Sun, 6 Jul 2014 14:21:13 -0500 Subject: [PATCH 06/51] [Refactored] Tantive Landspeeder --- .../vehicle/landspeeder_tantive4_pcd.py | 12 +----------- .../mobile/vehicle/landspeeder_tantive4.py | 17 +---------------- .../vehicle_deed/landspeeder_tantive4_deed.py | 19 ++----------------- 3 files changed, 4 insertions(+), 44 deletions(-) diff --git a/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py b/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py index ff8849f4..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py +++ b/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py @@ -1,15 +1,5 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicle_pcd') - return - -def use(core, actor, object): - if object and actor.getAttachment('activeVehicleID') == None: - tantive4 = core.objectService.createObject('object/mobile/vehicle/shared_landspeeder_tantive4.iff', 0, actor.getPlanet(), actor.getPosition(), actor.getOrientation()) - - tantive4.setOwnerId(actor.getObjectID()) - actor.setAttachment('activeVehicleID', tantive4.getObjectID()) - - core.simulationService.add(tantive4, tantive4.getPosition().x, tantive4.getPosition().z, True) + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_tantive4.py b/scripts/object/mobile/vehicle/landspeeder_tantive4.py index 1e2994c6..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_tantive4.py +++ b/scripts/object/mobile/vehicle/landspeeder_tantive4.py @@ -1,20 +1,5 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicle') - return - -def use(core, actor, object): - vehicle = actor.getContainer() - - if vehicle: - if vehicle.getObjectID() == object.getObjectID(): - vehicle.remove(actor) - else: - vehicle.add(actor) - - return -import sys - -def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py index f031d37f..6b93484b 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py @@ -5,20 +5,5 @@ def setup(core, object): return def use(core, actor, object): - datapad = actor.getSlottedObject('datapad') - pcd = core.objectService.createObject('object/intangible/vehicle/shared_landspeeder_tantive4_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_landspeeder_tantive4.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 + core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_landspeeder_tantive4.iff', 'object/intangible/vehicle/shared_landspeeder_tantive4_pcd.iff') + return \ No newline at end of file From 0400679ce0b8dddaf162177a85f1b38ae6c0ecc7 Mon Sep 17 00:00:00 2001 From: Freddiec Date: Sun, 6 Jul 2014 21:03:08 -0500 Subject: [PATCH 07/51] [Added] Vehicles, TCG and normal ones --- .../object/intangible/vehicle/barc_speeder_pcd.py | 12 +----------- .../intangible/vehicle/geonosian_speeder_pcd.py | 1 + .../intangible/vehicle/grievous_wheel_bike.py | 1 + .../vehicle/landspeeder_desert_skiff_pcd.py | 1 + .../intangible/vehicle/landspeeder_organa_pcd.py | 1 + .../intangible/vehicle/landspeeder_v35_pcd.py | 1 + .../object/intangible/vehicle/speederbike_pcd.py | 1 + scripts/object/mobile/vehicle/barc_speeder.py | 13 +------------ scripts/object/mobile/vehicle/geonosian_speeder.py | 1 + .../object/mobile/vehicle/grievous_wheel_bike.py | 1 + .../mobile/vehicle/landspeeder_desert_skiff.py | 1 + scripts/object/mobile/vehicle/landspeeder_organa.py | 1 + scripts/object/mobile/vehicle/landspeeder_v35.py | 1 + scripts/object/mobile/vehicle/speederbike.py | 1 + .../vehicle_deed/landspeeder_desert_skiff_deed.py | 5 +++++ .../deed/vehicle_deed/landspeeder_v35_deed.py | 5 +++++ .../tangible/deed/vehicle_deed/speederbike_deed.py | 5 +++++ .../tcg/series1/vehicle_deed_organa_speeder.py | 5 +++++ .../tcg/series4/vehicle_deed_geonosian_speeder.py | 5 +++++ .../garage_display_vehicles/grievous_wheel_bike.py | 5 +++++ 20 files changed, 44 insertions(+), 23 deletions(-) diff --git a/scripts/object/intangible/vehicle/barc_speeder_pcd.py b/scripts/object/intangible/vehicle/barc_speeder_pcd.py index e9fa1234..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/barc_speeder_pcd.py +++ b/scripts/object/intangible/vehicle/barc_speeder_pcd.py @@ -1,15 +1,5 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicle_pcd') - return - -def use(core, actor, object): - if object and actor.getAttachment('activeVehicleID') == None: - barc = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder.iff', 0, actor.getPlanet(), actor.getPosition(), actor.getOrientation()) - - barc.setOwnerId(actor.getObjectID()) - actor.setAttachment('activeVehicleID', barc.getObjectID()) - - core.simulationService.add(barc, barc.getPosition().x, barc.getPosition().z, True) + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/geonosian_speeder_pcd.py b/scripts/object/intangible/vehicle/geonosian_speeder_pcd.py index ccad8904..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/geonosian_speeder_pcd.py +++ b/scripts/object/intangible/vehicle/geonosian_speeder_pcd.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/grievous_wheel_bike.py b/scripts/object/intangible/vehicle/grievous_wheel_bike.py index ccad8904..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/grievous_wheel_bike.py +++ b/scripts/object/intangible/vehicle/grievous_wheel_bike.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/landspeeder_desert_skiff_pcd.py b/scripts/object/intangible/vehicle/landspeeder_desert_skiff_pcd.py index ccad8904..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/landspeeder_desert_skiff_pcd.py +++ b/scripts/object/intangible/vehicle/landspeeder_desert_skiff_pcd.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/landspeeder_organa_pcd.py b/scripts/object/intangible/vehicle/landspeeder_organa_pcd.py index ccad8904..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/landspeeder_organa_pcd.py +++ b/scripts/object/intangible/vehicle/landspeeder_organa_pcd.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/landspeeder_v35_pcd.py b/scripts/object/intangible/vehicle/landspeeder_v35_pcd.py index ccad8904..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/landspeeder_v35_pcd.py +++ b/scripts/object/intangible/vehicle/landspeeder_v35_pcd.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/intangible/vehicle/speederbike_pcd.py b/scripts/object/intangible/vehicle/speederbike_pcd.py index ccad8904..d7c3f4a1 100644 --- a/scripts/object/intangible/vehicle/speederbike_pcd.py +++ b/scripts/object/intangible/vehicle/speederbike_pcd.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'datapad/vehicle_pcd') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/barc_speeder.py b/scripts/object/mobile/vehicle/barc_speeder.py index 4626c764..73ca0680 100644 --- a/scripts/object/mobile/vehicle/barc_speeder.py +++ b/scripts/object/mobile/vehicle/barc_speeder.py @@ -1,16 +1,5 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicle') - return - -def use(core, actor, object): - vehicle = actor.getContainer() - - if vehicle: - if vehicle.getObjectID() == object.getObjectID(): - vehicle.remove(actor) - else: - vehicle.add(actor) - + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/geonosian_speeder.py b/scripts/object/mobile/vehicle/geonosian_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/geonosian_speeder.py +++ b/scripts/object/mobile/vehicle/geonosian_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/grievous_wheel_bike.py b/scripts/object/mobile/vehicle/grievous_wheel_bike.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/grievous_wheel_bike.py +++ b/scripts/object/mobile/vehicle/grievous_wheel_bike.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py b/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py +++ b/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_organa.py b/scripts/object/mobile/vehicle/landspeeder_organa.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_organa.py +++ b/scripts/object/mobile/vehicle/landspeeder_organa.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_v35.py b/scripts/object/mobile/vehicle/landspeeder_v35.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_v35.py +++ b/scripts/object/mobile/vehicle/landspeeder_v35.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/speederbike.py b/scripts/object/mobile/vehicle/speederbike.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/speederbike.py +++ b/scripts/object/mobile/vehicle/speederbike.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_desert_skiff_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_desert_skiff_deed.py index ccad8904..041315e4 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_desert_skiff_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_desert_skiff_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_landspeeder_desert_skiff.iff', 'object/intangible/vehicle/shared_landspeeder_desert_skiff_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_v35_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_v35_deed.py index ccad8904..606d1185 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_v35_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_v35_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_landspeeder_v35.iff', 'object/intangible/vehicle/shared_landspeeder_v35_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/speederbike_deed.py b/scripts/object/tangible/deed/vehicle_deed/speederbike_deed.py index ccad8904..88e6c4c0 100644 --- a/scripts/object/tangible/deed/vehicle_deed/speederbike_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/speederbike_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_speederbike.iff', 'object/intangible/vehicle/shared_speederbike_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series1/vehicle_deed_organa_speeder.py b/scripts/object/tangible/tcg/series1/vehicle_deed_organa_speeder.py index ccad8904..998c59dd 100644 --- a/scripts/object/tangible/tcg/series1/vehicle_deed_organa_speeder.py +++ b/scripts/object/tangible/tcg/series1/vehicle_deed_organa_speeder.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_landspeeder_organa.iff', 'object/intangible/vehicle/shared_landspeeder_organa_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series4/vehicle_deed_geonosian_speeder.py b/scripts/object/tangible/tcg/series4/vehicle_deed_geonosian_speeder.py index ccad8904..dbabab25 100644 --- a/scripts/object/tangible/tcg/series4/vehicle_deed_geonosian_speeder.py +++ b/scripts/object/tangible/tcg/series4/vehicle_deed_geonosian_speeder.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_geonosian_speeder.iff', 'object/intangible/vehicle/shared_geonosian_speeder_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/tcg/series7/garage_display_vehicles/grievous_wheel_bike.py b/scripts/object/tangible/tcg/series7/garage_display_vehicles/grievous_wheel_bike.py index ccad8904..f7df0260 100644 --- a/scripts/object/tangible/tcg/series7/garage_display_vehicles/grievous_wheel_bike.py +++ b/scripts/object/tangible/tcg/series7/garage_display_vehicles/grievous_wheel_bike.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_grievous_wheel_bike.iff', 'object/intangible/vehicle/shared_grievous_wheel_bike.iff') return \ No newline at end of file From 21784643f8c1b83c56a93165d7fdecfdef48a454 Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 8 Jul 2014 18:29:22 +0200 Subject: [PATCH 08/51] Added Populated Jabba TP wayfar camp Changed Dewall Paez and Wayfar Spy NPC to be agressive. --- scripts/mobiles/tatooine/dewall_paez.py | 2 +- scripts/mobiles/tatooine/wayfar_spy.py | 28 +++++++++++-------- .../tatooine/jabba_tp_wayfar_camp.py | 21 ++++++++++++++ 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/scripts/mobiles/tatooine/dewall_paez.py b/scripts/mobiles/tatooine/dewall_paez.py index 3d5ce97b..643013ba 100644 --- a/scripts/mobiles/tatooine/dewall_paez.py +++ b/scripts/mobiles/tatooine/dewall_paez.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("wayfar spy") mobileTemplate.setAssistRange(3) mobileTemplate.setStalker(False) - #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/tatooine/wayfar_spy.py b/scripts/mobiles/tatooine/wayfar_spy.py index 1d980f3f..7041c75f 100644 --- a/scripts/mobiles/tatooine/wayfar_spy.py +++ b/scripts/mobiles/tatooine/wayfar_spy.py @@ -21,20 +21,26 @@ def addTemplate(core): mobileTemplate.setSocialGroup("wayfar spy") mobileTemplate.setAssistRange(3) mobileTemplate.setStalker(False) - #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_moncal_male.iff') - templates.add('object/mobile/shared_moncal_female.iff') - templates.add('object/mobile/shared_rodian_male.iff') - templates.add('object/mobile/shared_rofian_female.iff') - templates.add('object/mobile/shared_zabrak_male.iff') - templates.add('object/mobile/shared_zabrak_female.iff') - templates.add('object/mobile/shared_human_male.iff') - templates.add('object/mobile/shared_human_female.iff') - templates.add('object/mobile/shared_sullustan_male.iff') - templates.add('object/mobile/shared_sullustan_female.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_female_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_male_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_bothan_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_bothan_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_rodian_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_rodian_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_zabrak_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_zabrak_male_01.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() diff --git a/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py b/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py index 6c8873a7..7aa31c06 100644 --- a/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py +++ b/scripts/static_spawns/tatooine/jabba_tp_wayfar_camp.py @@ -22,4 +22,25 @@ def addPlanetSpawns(core, planet): stcSvc.spawnObject('object/static/item/shared_lair_wooden_tent.iff', 'tatooine', long(0), float(-5491.42), float(45.0825), float(-6608.95), float(0.499163), float(-0.143837), float(0.853988), float(-0.0291871)) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5467.4), float(46.7), float(-6601.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5468.5), float(46), float(-6583.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5488.4), float(46), float(-6590.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5503.4), float(46.7), float(-6589.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5524.5), float(46.4), float(-6586.2), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5539.6), float(40.1), float(-6602.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5553.3), float(38.5), float(-6613.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5553.4), float(42), float(-6634.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5556.7), float(47.5), float(-6650.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5538.1), float(47.9), float(-6661.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5525.2), float(45.2), float(-6642.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5508.7), float(41.9), float(-6627.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5478.3), float(47.2), float(-6624.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5486.8), float(48.2), float(-6645.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5503.6), float(46.5), float(-6660.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5517.6), float(48), float(-6654.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5487.3), float(45), float(-6618.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('wayfar_spy', 'tatooine', long(0), float(-5464.6), float(48.7), float(-6621.8), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('dewall_paez', 'tatooine', long(0), float(-5516.1), float(40.1), float(-6615.1), float(0), float(0), float(0), float(0), 45) + return From f34b5c922b689a9a50f1692ec1abb519ae4d8f49 Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 8 Jul 2014 20:04:35 +0200 Subject: [PATCH 09/51] Added Populated Valarian hacker bunker Added Valarian Hacker NPC script --- scripts/mobiles/tatooine/valarian_hacker.py | 56 +++++++++++++++++++ .../jabba_tp_valarian_hacker_bunker.py | 38 +++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 scripts/mobiles/tatooine/valarian_hacker.py create mode 100644 scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py diff --git a/scripts/mobiles/tatooine/valarian_hacker.py b/scripts/mobiles/tatooine/valarian_hacker.py new file mode 100644 index 00000000..171a644f --- /dev/null +++ b/scripts/mobiles/tatooine/valarian_hacker.py @@ -0,0 +1,56 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('tatooine_valarian_hacker') + mobileTemplate.setLevel(19) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("valarian_hacker") + mobileTemplate.setAssistRange(4) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + + templates = Vector() + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_female_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_male_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_bothan_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_bothan_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_rodian_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_rodian_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_zabrak_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_zabrak_male_01.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('valarian_hacker', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py b/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py new file mode 100644 index 00000000..2fad23f7 --- /dev/null +++ b/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py @@ -0,0 +1,38 @@ +import sys +# Project SWG: Jabba TP Valarian Camp 2: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + + + stcSvc.spawnObject('valarian_hacker', 'tatooine', long(0), float(-5371.3), float(64.1), float(-6897.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', long(0), float(-5372.5), float(64.3), float(-6902.4), float(0), float(0), float(0), float(0), 45) + + bunker = core.objectService.getObject(long(-466404036467088174)) + + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(2), float(-3.7), float(0.3), float(3.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(3), float(3.8), float(-0.3), float(-4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(4), float(3.4), float(-3.3), float(4.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(5), float(-2), float(-6.8), float(-8.7), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(5), float(-7.4), float(-6.8), float(-1.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(6), float(-7), float(-6.8), float(-14.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(6), float(6.7), float(-6.8), float(-14.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(7), float(5), float(-6.8), float(-1.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(8), float(-2), float(-13.8), float(8.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(9), float(1.5), float(-13.8), float(-3.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(9), float(-6.7), float(-13.8), float(-15.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('valarian_hacker', 'tatooine', bunker.getCellByCellNumber(9), float(2.7), float(-13.8), float(-11.9), float(0), float(0), float(0), float(0), 45) + + return + From 16f45834fb56f76de61c9dd30eb5e54341bc04d7 Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 8 Jul 2014 22:16:17 +0200 Subject: [PATCH 10/51] Added Populated Romo Vax Bunker Changed Romo Vax to be agressive Added Romo Vax Henchman Fixed Description in Valarian Hacker Bunker --- scripts/mobiles/tatooine/fighting_romo_vax.py | 4 +- scripts/mobiles/tatooine/romovax_henchman.py | 46 ++++++++++++++++++ .../tatooine/jabba_tp_romo_vax_bunker.py | 48 +++++++++++++++++++ .../jabba_tp_valarian_hacker_bunker.py | 2 +- 4 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 scripts/mobiles/tatooine/romovax_henchman.py create mode 100644 scripts/static_spawns/tatooine/jabba_tp_romo_vax_bunker.py diff --git a/scripts/mobiles/tatooine/fighting_romo_vax.py b/scripts/mobiles/tatooine/fighting_romo_vax.py index 9dec4cbf..5b5798df 100644 --- a/scripts/mobiles/tatooine/fighting_romo_vax.py +++ b/scripts/mobiles/tatooine/fighting_romo_vax.py @@ -21,9 +21,11 @@ def addTemplate(core): mobileTemplate.setSocialGroup("sennex") mobileTemplate.setAssistRange(10) mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + templates = Vector() - templates.add('object/mobile/shared_dressed_trader_thug_male_human_01.iff') + templates.add('object/mobile/shared_dressed_trader_thug_male_human_01.iff') #need to find correct template mobileTemplate.setTemplates(templates) weaponTemplates = Vector() diff --git a/scripts/mobiles/tatooine/romovax_henchman.py b/scripts/mobiles/tatooine/romovax_henchman.py new file mode 100644 index 00000000..c41d0541 --- /dev/null +++ b/scripts/mobiles/tatooine/romovax_henchman.py @@ -0,0 +1,46 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('tatooine_romo_vax_henchman') + mobileTemplate.setLevel(20) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("sennex") + mobileTemplate.setAssistRange(10) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() #need to find correct template + templates.add('object/mobile/shared_dressed_trader_thug_female_human_01.iff') + templates.add('object/mobile/shared_dressed_trader_thug_female_human_02.iff') + templates.add('object/mobile/shared_dressed_trader_thug_female_human_03.iff') + templates.add('object/mobile/shared_dressed_trader_thug_female_twk_01.iff') + templates.add('object/mobile/shared_dressed_trader_thug_female_twk_02.iff') + templates.add('object/mobile/shared_dressed_trader_thug_male_human_02.iff') + templates.add('object/mobile/shared_dressed_trader_thug_male_human_03.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', WeaponType.CARBINE, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShot') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('romovax_henchman', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/jabba_tp_romo_vax_bunker.py b/scripts/static_spawns/tatooine/jabba_tp_romo_vax_bunker.py new file mode 100644 index 00000000..21750ee8 --- /dev/null +++ b/scripts/static_spawns/tatooine/jabba_tp_romo_vax_bunker.py @@ -0,0 +1,48 @@ +import sys +# Project SWG: Jabba TP Romo Vax Bunker: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5079.1), float(47.9), float(-6970.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5063.5), float(49.2), float(-6998.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5051.8), float(45.7), float(-6989.7), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5030.7), float(46.5), float(-6972.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5019), float(48.3), float(-6946.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5045.8), float(42.6), float(-6936), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5053.7), float(43.6), float(-6961.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', long(0), float(-5057.5), float(43.9), float(-6961.5), float(0), float(0), float(0), float(0), 45) + + # TODO Check all NPCs for personalized scripting, change format. + bunker = core.objectService.getObject(long(-466404037494797872)) + + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(2), float(-3.8), float(0.3), float(2.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(3), float(3.6), float(0.3), float(-3.7), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(5), float(29.8), float(-12), float(25.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(5), float(32.7), float(-12), float(35), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(5), float(22.9), float(-12), float(30.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(4), float(3.9), float(-12), float(21), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(4), float(3.9), float(-12), float(38.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(6), float(3.5), float(-16), float(53), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(8), float(58.8), float(-16), float(61), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(8), float(74.4), float(-16), float(66.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(8), float(68.3), float(-16), float(79.2), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(8), float(44.6), float(-16), float(82.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(7), float(26), float(-16), float(79), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(7), float(6.9), float(-16), float(78.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(7), float(-5.2), float(-16), float(77.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(7), float(-19.9), float(-16), float(78.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('romovax_henchman', 'tatooine', bunker.getCellByCellNumber(9), float(32.4), float(-14), float(78.7), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('fighting_romo_vax', 'tatooine', bunker.getCellByCellNumber(9), float(-42.7), float(-14), float(-79.1), float(0), float(0), float(0), float(0), 45) + return + diff --git a/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py b/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py index 2fad23f7..39a972fb 100644 --- a/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py +++ b/scripts/static_spawns/tatooine/jabba_tp_valarian_hacker_bunker.py @@ -1,5 +1,5 @@ import sys -# Project SWG: Jabba TP Valarian Camp 2: Static Spawns +# Project SWG: Jabba TP Valarian Hacker Bunker: Static Spawns # (C)2014 ProjectSWG From a57f70dd846713b63fcaeeeac57261b9e2e96bc7 Mon Sep 17 00:00:00 2001 From: Freddiec Date: Tue, 8 Jul 2014 16:10:08 -0500 Subject: [PATCH 11/51] Added most of the vehicle_deeds --- .../object/tangible/deed/vehicle_deed/basilisk_war_droid.py | 5 +++++ scripts/object/tangible/deed/vehicle_deed/flare_s_swoop.py | 5 +++++ .../object/tangible/deed/vehicle_deed/hoverlifter_speeder.py | 5 +++++ .../deed/vehicle_deed/hoverlifter_speeder_crafted.py | 5 +++++ .../tangible/deed/vehicle_deed/landspeeder_ab1_deed.py | 5 +++++ .../deed/vehicle_deed/landspeeder_tantive4_adv_deed.py | 5 +++++ .../tangible/deed/vehicle_deed/landspeeder_usv5_deed.py | 5 +++++ .../tangible/deed/vehicle_deed/landspeeder_x31_deed.py | 5 +++++ .../tangible/deed/vehicle_deed/landspeeder_x34_deed.py | 5 +++++ .../tangible/deed/vehicle_deed/landspeeder_xp38_deed.py | 5 +++++ .../tangible/deed/vehicle_deed/mustafar_panning_droid.py | 5 +++++ 11 files changed, 55 insertions(+) diff --git a/scripts/object/tangible/deed/vehicle_deed/basilisk_war_droid.py b/scripts/object/tangible/deed/vehicle_deed/basilisk_war_droid.py index ccad8904..c9052a57 100644 --- a/scripts/object/tangible/deed/vehicle_deed/basilisk_war_droid.py +++ b/scripts/object/tangible/deed/vehicle_deed/basilisk_war_droid.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_basilisk_war_droid.iff', 'object/intangible/vehicle/shared_basilisk_war_droid_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/flare_s_swoop.py b/scripts/object/tangible/deed/vehicle_deed/flare_s_swoop.py index ccad8904..8c9118b3 100644 --- a/scripts/object/tangible/deed/vehicle_deed/flare_s_swoop.py +++ b/scripts/object/tangible/deed/vehicle_deed/flare_s_swoop.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_flare_s_swoop.iff', 'object/intangible/vehicle/shared_flare_s_swoop_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder.py b/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder.py index ccad8904..e3018edf 100644 --- a/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder.py +++ b/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder.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_hoverlifter_speeder.iff', 'object/intangible/vehicle/shared_hoverlifter_speeder.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder_crafted.py b/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder_crafted.py index ccad8904..665fb2a8 100644 --- a/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder_crafted.py +++ b/scripts/object/tangible/deed/vehicle_deed/hoverlifter_speeder_crafted.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_hoverlifter_speeder_crafted.iff', 'object/intangible/vehicle/shared_hoverlifter_speeder_crafted.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_ab1_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_ab1_deed.py index ccad8904..e44e7625 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_ab1_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_ab1_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_landspeeder_ab1.iff', 'object/intangible/vehicle/shared_landspeeder_ab1.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_adv_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_adv_deed.py index ccad8904..c75559fa 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_adv_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_adv_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_landspeeder_tantive4_adv.iff', 'object/intangible/vehicle/shared_landspeeder_tantive4_adv_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_usv5_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_usv5_deed.py index ccad8904..c6affd93 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_usv5_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_usv5_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_landspeeder_usv5.iff', 'object/intangible/vehicle/shared_landspeeder_usv5_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_x31_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_x31_deed.py index ccad8904..e003bbad 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_x31_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_x31_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_landspeeder_x31.iff', 'object/intangible/vehicle/shared_landspeeder_x31_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_x34_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_x34_deed.py index ccad8904..36ee05c7 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_x34_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_x34_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_landspeeder_x34.iff', 'object/intangible/vehicle/shared_landspeeder_x34_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_xp38_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_xp38_deed.py index ccad8904..f43f4ec3 100644 --- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_xp38_deed.py +++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_xp38_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_landspeeder_xp38.iff', 'object/intangible/vehicle/shared_landspeeder_xp38_pcd.iff') return \ No newline at end of file diff --git a/scripts/object/tangible/deed/vehicle_deed/mustafar_panning_droid.py b/scripts/object/tangible/deed/vehicle_deed/mustafar_panning_droid.py index ccad8904..08de9824 100644 --- a/scripts/object/tangible/deed/vehicle_deed/mustafar_panning_droid.py +++ b/scripts/object/tangible/deed/vehicle_deed/mustafar_panning_droid.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_mustafar_panning_droid.iff', 'object/intangible/vehicle/shared_mustafar_panning_droid_pcd.iff') return \ No newline at end of file From bcdf137ecd29e3f28379f58ea48973dc54a86ad5 Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Tue, 8 Jul 2014 23:11:25 -0400 Subject: [PATCH 12/51] Fixed Legendary Power Hammer --- .../lootItems/exceptionallootchest/legendary_power_hammer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py b/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py index a05de2b3..d17b57e6 100644 --- a/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py +++ b/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py @@ -1,7 +1,7 @@ def itemTemplate(): - return ['object/weapon/melee/2h_sword/shared_quest_2h_sword_battleaxe.iff'] + return ['object/weapon/melee/2h_sword/shared_2h_sword_maul_legendary.iff'] def customItemName(): From fa167fd0576d314dca85e899eef95ab3c807e3f0 Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 12 Jul 2014 08:36:10 +0200 Subject: [PATCH 13/51] Added Cloning Droids to Mos Eisley Fixed Cloning Droid name issue --- scripts/object/mobile/21b_surgical_droid.py | 2 +- .../tatooine/mos_eisley_cloners.py | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 scripts/static_spawns/tatooine/mos_eisley_cloners.py diff --git a/scripts/object/mobile/21b_surgical_droid.py b/scripts/object/mobile/21b_surgical_droid.py index bdc8a620..3f8f06f6 100644 --- a/scripts/object/mobile/21b_surgical_droid.py +++ b/scripts/object/mobile/21b_surgical_droid.py @@ -6,6 +6,6 @@ def setup(core, object): object.setAttachment('conversationFile','medical_cloning_droid') object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) object.setStfFilename('mob/creature_names') - object.setStfName('surgical_droid') + object.setStfName('surgical_droid_21b') return diff --git a/scripts/static_spawns/tatooine/mos_eisley_cloners.py b/scripts/static_spawns/tatooine/mos_eisley_cloners.py new file mode 100644 index 00000000..f0303721 --- /dev/null +++ b/scripts/static_spawns/tatooine/mos_eisley_cloners.py @@ -0,0 +1,29 @@ +import sys +# Project SWG: Cloners: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + cloner1 = core.objectService.getObject(long(1106500)) + + stcSvc.spawnObject('object/mobile/shared_21b_surgical_droid.iff', 'tatooine', cloner1.getCellByCellNumber(2), float(-3.2), float(0.1), float(0.6), float(0), float(0), float(0), float(0)) + + + cloner2 = core.objectService.getObject(long(9655494)) + + stcSvc.spawnObject('object/mobile/shared_21b_surgical_droid.iff', 'tatooine', cloner2.getCellByCellNumber(2), float(-0.4), float(0.2), float(-2.5), float(0), float(0), float(0), float(0)) + + + return + + From 989028932e03d75f934b3b38250af98f18b4bcda Mon Sep 17 00:00:00 2001 From: tacef Date: Sat, 12 Jul 2014 13:49:34 +0200 Subject: [PATCH 14/51] Fixed Cloning Droid Conversation is now using the new Prose Package code Changed Moved Cloning Droids to the Cloning building scripts Added Cloning droids to naboo and corellia Added Cloning droid to Mos Eisley Medical center --- scripts/conversation/medical_cloning_droid.py | 26 ++++--------------- .../building/corellia/cloning_corellia.py | 2 ++ .../building/naboo/cloning_facility_naboo.py | 2 ++ .../tatooine/cloning_facility_tatooine.py | 2 ++ .../cloning_facility_tatooine_small.py | 2 ++ .../tatooine/mos_eisley_medical_center.py | 24 +++++++++++++++++ 6 files changed, 37 insertions(+), 21 deletions(-) create mode 100644 scripts/static_spawns/tatooine/mos_eisley_medical_center.py diff --git a/scripts/conversation/medical_cloning_droid.py b/scripts/conversation/medical_cloning_droid.py index 8089c5f5..bc988f5f 100644 --- a/scripts/conversation/medical_cloning_droid.py +++ b/scripts/conversation/medical_cloning_droid.py @@ -31,19 +31,10 @@ def startConversation(core, actor, npc): cloningFee = 5000 convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/clone_droid:s_6", int(cloningFee))) - prose1 = ProsePackage('conversation/clone_droid', 's_8') - outOfBand2 = OutOfBand() - outOfBand2.addProsePackage(prose1) - prose2 = ProsePackage('conversation/clone_droid', 's_12') - outOfBand3 = OutOfBand() - outOfBand3.addProsePackage(prose2) - option1 = ConversationOption(outOfBand2, 0) - option2 = ConversationOption(outOfBand3, 1) - options = Vector() - options.add(option1) - options.add(option2) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/clone_droid:s_8'), 0)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/clone_droid:s_12'), 1)) convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) return @@ -56,18 +47,11 @@ def handleFirstScreen(core, actor, npc, selection): convSvc = core.conversationService if selection == 0: - prose = ProsePackage('conversation/clone_droid', 's_10') - outOfBand = OutOfBand() - outOfBand.addProsePackage(prose) - convSvc.sendConversationMessage(actor, npc, outOfBand) - prose2 = ProsePackage('conversation/clone_droid', 's_12') - outOfBand2 = OutOfBand() - outOfBand2.addProsePackage(prose2) - option1 = ConversationOption(outOfBand2, 0) - + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/clone_droid:s_10')) + options = Vector() - options.add(option1) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/clone_droid:s_12'), 1)) convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen) diff --git a/scripts/object/building/corellia/cloning_corellia.py b/scripts/object/building/corellia/cloning_corellia.py index 4c77f4ab..3bb04721 100644 --- a/scripts/object/building/corellia/cloning_corellia.py +++ b/scripts/object/building/corellia/cloning_corellia.py @@ -6,6 +6,8 @@ def setup(core, object): objSvc = core.objectService objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(2.5), float(0), float(1), 2) objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(-1.35), float(1), float(0), 2) + + objSvc.createChildObject(object, 'object/mobile/shared_21b_surgical_droid.iff', float(-3.2), float(0.1), float(0.6), float(0), float(0), 2) spawnPoints = Vector() spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4)) diff --git a/scripts/object/building/naboo/cloning_facility_naboo.py b/scripts/object/building/naboo/cloning_facility_naboo.py index b9aa25eb..de092b09 100644 --- a/scripts/object/building/naboo/cloning_facility_naboo.py +++ b/scripts/object/building/naboo/cloning_facility_naboo.py @@ -7,6 +7,8 @@ def setup(core, object): objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(2.5), float(0), float(1), 2) objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(-1.35), float(1), float(0), 2) + objSvc.createChildObject(object, 'object/mobile/shared_21b_surgical_droid.iff', float(-3.2), float(0.1), float(0.6), float(0), float(0), 2) + spawnPoints = Vector() spawnPoints.add(SpawnPoint(-16.66, -4.29, -10.50, 0.71, 0.70, 4)) spawnPoints.add(SpawnPoint(-16.60, -4.29, -14.17, 0.72, 0.69, 4)) diff --git a/scripts/object/building/tatooine/cloning_facility_tatooine.py b/scripts/object/building/tatooine/cloning_facility_tatooine.py index bc7b58d6..fdeedd33 100644 --- a/scripts/object/building/tatooine/cloning_facility_tatooine.py +++ b/scripts/object/building/tatooine/cloning_facility_tatooine.py @@ -7,6 +7,8 @@ def setup(core, object): objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(2.5), float(0), float(1), 2) objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(-1.35), float(1), float(0), 2) + objSvc.createChildObject(object, 'object/mobile/shared_21b_surgical_droid.iff', float(-3.2), float(0.1), float(0.6), float(0), float(0), 2) + spawnPoints = Vector() spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4)) spawnPoints.add(SpawnPoint(-16.5965, -4.29167, -14.1652, 0.721346, 0.692575, 4)) diff --git a/scripts/object/building/tatooine/cloning_facility_tatooine_small.py b/scripts/object/building/tatooine/cloning_facility_tatooine_small.py index cc21eca6..2d78944e 100644 --- a/scripts/object/building/tatooine/cloning_facility_tatooine_small.py +++ b/scripts/object/building/tatooine/cloning_facility_tatooine_small.py @@ -6,6 +6,8 @@ def setup(core, object): objSvc = core.objectService objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(-0.42), float(-0.38), float(-0.4), float(1), float(0), 10) + objSvc.createChildObject(object, 'object/mobile/shared_21b_surgical_droid.iff', float(3.8), float(0.3), float(5.1), float(0), float(0), 1) + spawnPoints = Vector() spawnPoints.add(SpawnPoint(0.445015, 0.271775, 1.39199, 0.707038, 0.707176, 9)) diff --git a/scripts/static_spawns/tatooine/mos_eisley_medical_center.py b/scripts/static_spawns/tatooine/mos_eisley_medical_center.py new file mode 100644 index 00000000..86623045 --- /dev/null +++ b/scripts/static_spawns/tatooine/mos_eisley_medical_center.py @@ -0,0 +1,24 @@ +import sys +# Project SWG: Medical center: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + cloner2 = core.objectService.getObject(long(9655494)) + + stcSvc.spawnObject('object/mobile/shared_21b_surgical_droid.iff', 'tatooine', cloner2.getCellByCellNumber(2), float(-0.4), float(0.2), float(-2.5), float(0), float(0), float(0), float(0)) + + + return + + From 29729350152fe37a969e78e3ee46c7b9f870a566 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 07:21:10 +0100 Subject: [PATCH 15/51] Fixed some commands not working. --- src/services/command/CommandService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/command/CommandService.java b/src/services/command/CommandService.java index 95d6586f..547b4ee1 100644 --- a/src/services/command/CommandService.java +++ b/src/services/command/CommandService.java @@ -453,7 +453,7 @@ public class CommandService implements INetworkDispatch { public void processCombatCommand(CreatureObject attacker, SWGObject target, CombatCommand command, int actionCounter, String commandArgs) { if (target == null) { System.err.println("ProcessCombatCommand: Target is null"); - return; + //return; } if (FileUtilities.doesFileExist("scripts/commands/combat/" + command.getCommandName() + ".py")) { From cfc3df32b1d2eba81d5992f37982139cac2b5100 Mon Sep 17 00:00:00 2001 From: tacef Date: Sun, 13 Jul 2014 11:55:43 +0200 Subject: [PATCH 16/51] Added Multiple Quest NPCS for Jabba TP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added Popuplated Remaining Jabba TP Quest locations Removed Mos eisley Cloner file as it isn´t needed anymore --- scripts/mobiles/tatooine/arkahn_greystar.py | 39 +++++++++++ scripts/mobiles/tatooine/careem.py | 39 +++++++++++ scripts/mobiles/tatooine/delrice_depresse.py | 38 ++++++++++ scripts/mobiles/tatooine/emanon.py | 39 +++++++++++ scripts/mobiles/tatooine/fnast_drexler.py | 39 +++++++++++ scripts/mobiles/tatooine/iris_sinclair.py | 39 +++++++++++ scripts/mobiles/tatooine/tyrok.py | 39 +++++++++++ .../mobiles/tatooine/valarian_blood_vandal.py | 56 +++++++++++++++ .../tatooine/valarian_command_enforcer.py | 41 +++++++++++ .../mobiles/tatooine/valarian_executioner.py | 42 +++++++++++ .../tatooine/jabba_tp_spice_dealer_camp.py | 21 ++++++ .../tatooine/jabba_tp_valarian_brute_camp.py | 27 +++++++ .../jabba_tp_valarian_security_bunker.py | 70 +++++++++++++++++++ .../tatooine/mos_eisley_cloners.py | 29 -------- 14 files changed, 529 insertions(+), 29 deletions(-) create mode 100644 scripts/mobiles/tatooine/arkahn_greystar.py create mode 100644 scripts/mobiles/tatooine/careem.py create mode 100644 scripts/mobiles/tatooine/delrice_depresse.py create mode 100644 scripts/mobiles/tatooine/emanon.py create mode 100644 scripts/mobiles/tatooine/fnast_drexler.py create mode 100644 scripts/mobiles/tatooine/iris_sinclair.py create mode 100644 scripts/mobiles/tatooine/tyrok.py create mode 100644 scripts/mobiles/tatooine/valarian_blood_vandal.py create mode 100644 scripts/mobiles/tatooine/valarian_command_enforcer.py create mode 100644 scripts/mobiles/tatooine/valarian_executioner.py create mode 100644 scripts/static_spawns/tatooine/jabba_tp_spice_dealer_camp.py create mode 100644 scripts/static_spawns/tatooine/jabba_tp_valarian_brute_camp.py create mode 100644 scripts/static_spawns/tatooine/jabba_tp_valarian_security_bunker.py delete mode 100644 scripts/static_spawns/tatooine/mos_eisley_cloners.py diff --git a/scripts/mobiles/tatooine/arkahn_greystar.py b/scripts/mobiles/tatooine/arkahn_greystar.py new file mode 100644 index 00000000..ff297a4f --- /dev/null +++ b/scripts/mobiles/tatooine/arkahn_greystar.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_arkahn_greystar') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(Difficulty.ELITE) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + + templates.add('object/mobile/shared_arkahn_greystar.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_arkahn_greystar', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/careem.py b/scripts/mobiles/tatooine/careem.py new file mode 100644 index 00000000..8dfa96ba --- /dev/null +++ b/scripts/mobiles/tatooine/careem.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_careem') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + + templates.add('object/mobile/shared_careem.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_careem', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/delrice_depresse.py b/scripts/mobiles/tatooine/delrice_depresse.py new file mode 100644 index 00000000..e98b2618 --- /dev/null +++ b/scripts/mobiles/tatooine/delrice_depresse.py @@ -0,0 +1,38 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_delrice_capreese') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_ithorian_male.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_delrice_capreese', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/emanon.py b/scripts/mobiles/tatooine/emanon.py new file mode 100644 index 00000000..839302dc --- /dev/null +++ b/scripts/mobiles/tatooine/emanon.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_emanon') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(Difficulty.ELITE) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + + templates.add('object/mobile/shared_emanon.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_emanon', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/fnast_drexler.py b/scripts/mobiles/tatooine/fnast_drexler.py new file mode 100644 index 00000000..29dd3b89 --- /dev/null +++ b/scripts/mobiles/tatooine/fnast_drexler.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_fnast_drexler') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(Difficulty.ELITE) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + + templates.add('object/mobile/shared_fnast_drexler.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_fnast_drexler', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/iris_sinclair.py b/scripts/mobiles/tatooine/iris_sinclair.py new file mode 100644 index 00000000..a6e956a8 --- /dev/null +++ b/scripts/mobiles/tatooine/iris_sinclair.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_iris_sinclair') + mobileTemplate.setLevel(18) + mobileTemplate.setDifficulty(Difficulty.ELITE) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + + templates.add('object/mobile/shared_iris_sinclair.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_iris_sinclair', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/tyrok.py b/scripts/mobiles/tatooine/tyrok.py new file mode 100644 index 00000000..df6972a5 --- /dev/null +++ b/scripts/mobiles/tatooine/tyrok.py @@ -0,0 +1,39 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('jabbas_palace_tyrok') + mobileTemplate.setLevel(17) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("jabba") + mobileTemplate.setAssistRange(6) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + + templates.add('object/mobile/shared_trandoshan_male.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('jabbas_palace_tyrok', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/valarian_blood_vandal.py b/scripts/mobiles/tatooine/valarian_blood_vandal.py new file mode 100644 index 00000000..cb5d0659 --- /dev/null +++ b/scripts/mobiles/tatooine/valarian_blood_vandal.py @@ -0,0 +1,56 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('tatooine_valarian_vandal') + mobileTemplate.setLevel(15) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("valarian") + mobileTemplate.setAssistRange(4) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + + templates = Vector() + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_female_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_aqualish_male_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_bothan_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_bothan_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_rodian_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_rodian_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_male_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_zabrak_female_01.iff') + templates.add('object/mobile/shared_dressed_criminal_thug_zabrak_male_01.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('tatooine_valarian_vandal', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/valarian_command_enforcer.py b/scripts/mobiles/tatooine/valarian_command_enforcer.py new file mode 100644 index 00000000..3313b270 --- /dev/null +++ b/scripts/mobiles/tatooine/valarian_command_enforcer.py @@ -0,0 +1,41 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('tatooine_valarian_enforcer') + mobileTemplate.setLevel(15) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("valarian") + mobileTemplate.setAssistRange(4) + mobileTemplate.setStalker(False) + #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + + templates = Vector() + templates.add('object/mobile/shared_dressed_criminal_thug_trandoshan_male_01.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('tatooine_valarian_enforcer', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/tatooine/valarian_executioner.py b/scripts/mobiles/tatooine/valarian_executioner.py new file mode 100644 index 00000000..5d9acf0d --- /dev/null +++ b/scripts/mobiles/tatooine/valarian_executioner.py @@ -0,0 +1,42 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('tatooine_valarian_executioner') + mobileTemplate.setLevel(15) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("valarian") + mobileTemplate.setAssistRange(4) + mobileTemplate.setStalker(False) + #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + + templates = Vector() + templates.add('object/mobile/shared_dressed_noble_naboo_twilek_female_01.iff') + templates.add('object/mobile/shared_dressed_noble_naboo_twilek_female_02.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('rangedShotpistol') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('tatooine_valarian_executioner', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/jabba_tp_spice_dealer_camp.py b/scripts/static_spawns/tatooine/jabba_tp_spice_dealer_camp.py new file mode 100644 index 00000000..fd625d02 --- /dev/null +++ b/scripts/static_spawns/tatooine/jabba_tp_spice_dealer_camp.py @@ -0,0 +1,21 @@ +import sys +# Project SWG: Jabba TP spicedealer Camp: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + + stcSvc.spawnObject('jabbas_palace_delrice_capreese', 'tatooine', long(0), float(-4330.8), float(23), float(-5024.4), float(0), float(0), float(0), float(0), 45) + + return + diff --git a/scripts/static_spawns/tatooine/jabba_tp_valarian_brute_camp.py b/scripts/static_spawns/tatooine/jabba_tp_valarian_brute_camp.py new file mode 100644 index 00000000..e2bd7040 --- /dev/null +++ b/scripts/static_spawns/tatooine/jabba_tp_valarian_brute_camp.py @@ -0,0 +1,27 @@ +import sys +# Project SWG: Jabba TP spicedealer Camp: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + + stcSvc.spawnObject('jabbas_palace_tyrok', 'tatooine', long(0), float(-4933.3), float(31.2), float(-5541.8), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('mountain_squill', 'tatooine', long(0), float(-4939.9), float(30.6), float(-5547.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('mountain_squill', 'tatooine', long(0), float(-4946.3), float(30.1), float(-5555.7), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('mountain_squill', 'tatooine', long(0), float(-4938.6), float(29.7), float(-5554.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('mountain_squill', 'tatooine', long(0), float(-4933.1), float(29.5), float(-5554.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('mountain_squill', 'tatooine', long(0), float(-4929.2), float(29.2), float(-5561.3), float(0), float(0), float(0), float(0), 45) + + return + diff --git a/scripts/static_spawns/tatooine/jabba_tp_valarian_security_bunker.py b/scripts/static_spawns/tatooine/jabba_tp_valarian_security_bunker.py new file mode 100644 index 00000000..bbef7a16 --- /dev/null +++ b/scripts/static_spawns/tatooine/jabba_tp_valarian_security_bunker.py @@ -0,0 +1,70 @@ +import sys +# Project SWG: Jabba TP Valarian Security Bunker: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + + stcSvc.spawnObject('tatooine_valarian_enforcer', 'tatooine', long(0), float(-3941.2), float(4.9), float(-3994), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', long(0), float(-3935.9), float(6.5), float(-4012.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', long(0), float(-3937.7), float(5.4), float(-3983.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_enforcer', 'tatooine', long(0), float(-3952.5), float(6.8), float(-4015.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', long(0), float(-3954.1), float(6.7), float(-4019.8), float(0), float(0), float(0), float(0), 45) + + + bunker = core.objectService.getObject(long(-466404037065936405)) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(5), float(3.1), float(-12), float(31.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(5), float(24.9), float(-12), float(46.9), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(5), float(4), float(-12), float(54.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(5), float(-15.4), float(-12), float(47.1), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(7), float(-50.4), float(-20), float(38.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_enforcer', 'tatooine', bunker.getCellByCellNumber(7), float(-57), float(-20), float(36.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(7), float(-59.6), float(-20), float(44.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_enforcer', 'tatooine', bunker.getCellByCellNumber(7), float(-50.7), float(-20), float(66.6), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(8), float(-70.5), float(-20), float(14.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jabbas_palace_iris_sinclair', 'tatooine', bunker.getCellByCellNumber(8), float(-49.8), float(-20), float(13.1), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(9), float(-70.3), float(-20), float(77.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jabbas_palace_fnast_drexler', 'tatooine', bunker.getCellByCellNumber(9), float(-49), float(-20), float(82.5), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(10), float(35.7), float(-12), float(34.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(10), float(36.2), float(-12), float(77.1), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(12), float(72.5), float(-12), float(58.6), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(11), float(49.8), float(-12), float(83), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jabbas_palace_arkahn_greystar', 'tatooine', bunker.getCellByCellNumber(11), float(71.6), float(-12), float(83.2), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(13), float(36.4), float(-20), float(123.2), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(13), float(19), float(-20), float(122.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jabbas_palace_emanon', 'tatooine', bunker.getCellByCellNumber(13), float(22.1), float(-20), float(139.4), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(21), float(-8.2), float(-20), float(66.2), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(21), float(-2.3), float(-20), float(77), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_executioner', 'tatooine', bunker.getCellByCellNumber(19), float(-23), float(-20), float(100.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jabbas_palace_careem', 'tatooine', bunker.getCellByCellNumber(19), float(-22.4), float(-20), float(117.5), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(18), float(-30.7), float(-20), float(49.5), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(16), float(-15.5), float(-20), float(2.9), float(0), float(0), float(0), float(0), 45) + + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(14), float(21.1), float(-12), float(-1.2), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(14), float(51.6), float(-12), float(24.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(14), float(58.7), float(-12), float(20.1), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tatooine_valarian_vandal', 'tatooine', bunker.getCellByCellNumber(14), float(55.2), float(-12), float(16.9), float(0), float(0), float(0), float(0), 45) + return + diff --git a/scripts/static_spawns/tatooine/mos_eisley_cloners.py b/scripts/static_spawns/tatooine/mos_eisley_cloners.py deleted file mode 100644 index f0303721..00000000 --- a/scripts/static_spawns/tatooine/mos_eisley_cloners.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys -# Project SWG: Cloners: Static Spawns -# (C)2014 ProjectSWG - - - -from resources.datatables import Options -from resources.datatables import State - -def addPlanetSpawns(core, planet): - - - stcSvc = core.staticService - objSvc = core.objectService - - # TODO Check all NPCs for personalized scripting, change format. - cloner1 = core.objectService.getObject(long(1106500)) - - stcSvc.spawnObject('object/mobile/shared_21b_surgical_droid.iff', 'tatooine', cloner1.getCellByCellNumber(2), float(-3.2), float(0.1), float(0.6), float(0), float(0), float(0), float(0)) - - - cloner2 = core.objectService.getObject(long(9655494)) - - stcSvc.spawnObject('object/mobile/shared_21b_surgical_droid.iff', 'tatooine', cloner2.getCellByCellNumber(2), float(-0.4), float(0.2), float(-2.5), float(0), float(0), float(0), float(0)) - - - return - - From 41594c169a9a62ef714e102e8aa7ec88b4c79fc0 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 11:27:03 +0100 Subject: [PATCH 17/51] Minor fix --- .../creature/Copy of CreatureObject.java | 1345 ----------------- 1 file changed, 1345 deletions(-) delete mode 100644 src/resources/objects/creature/Copy of CreatureObject.java diff --git a/src/resources/objects/creature/Copy of CreatureObject.java b/src/resources/objects/creature/Copy of CreatureObject.java deleted file mode 100644 index 7dafed26..00000000 --- a/src/resources/objects/creature/Copy of CreatureObject.java +++ /dev/null @@ -1,1345 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013 - * - * This File is part of NGECore2. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. - * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. - ******************************************************************************/ -package resources.objects.creature; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map.Entry; -import java.util.concurrent.ScheduledFuture; - -import main.NGECore; - -import org.apache.mina.core.buffer.IoBuffer; - -import protocol.swg.chat.ChatSystemMessage; -import protocol.swg.ObjControllerMessage; -import protocol.swg.PlayMusicMessage; -import protocol.swg.UpdatePVPStatusMessage; -import protocol.swg.UpdatePostureMessage; -import protocol.swg.objectControllerObjects.Animation; -import protocol.swg.objectControllerObjects.Posture; - -import com.sleepycat.je.Environment; -import com.sleepycat.je.Transaction; -import com.sleepycat.persist.model.Entity; -import com.sleepycat.persist.model.NotPersistent; - -import engine.clients.Client; -import engine.resources.objects.Baseline; -import resources.objects.SWGList; -import resources.objects.SWGMap; -import resources.objects.SWGSet; -import resources.objects.player.PlayerObject; -import resources.objects.tangible.TangibleObject; -import resources.skills.SkillMod; -import resources.buffs.Buff; -import resources.buffs.BuffList; -import resources.buffs.DamageOverTime; -import resources.datatables.Difficulty; -import resources.equipment.Equipment; -import resources.group.GroupInviteInfo; -import engine.resources.common.CRC; -import engine.resources.objects.IPersistent; -import engine.resources.objects.SWGObject; -import engine.resources.scene.Planet; -import engine.resources.scene.Point3D; -import engine.resources.scene.Quaternion; - -public class CreatureObject extends TangibleObject implements IPersistent { - - private static final long serialVersionUID = 1L; - - private transient CreatureMessageBuilder messageBuilder; - - private transient List duelList = Collections.synchronizedList(new ArrayList()); - private transient ScheduledFuture incapTask; - private transient ScheduledFuture entertainerExperience; - private transient ScheduledFuture inspirationTick; - private transient CreatureObject performanceWatchee; - private transient CreatureObject performanceListenee; - private transient List performanceAudience = new ArrayList(); - private transient int flourishCount = 0; - - public CreatureObject(long objectID, Planet planet, Point3D position, Quaternion orientation, String Template) { - super(objectID, planet, position, orientation, Template); - setMaximumCondition(1000); - setStaticObject(true); - getHamList().add(1000); - getHamList().add(0); - getHamList().add(300); - getHamList().add(0); - getHamList().add(300); - getHamList().add(0); - getMaxHamList().add(1000); - getMaxHamList().add(0); - getMaxHamList().add(300); - getMaxHamList().add(0); - getMaxHamList().add(300); - getMaxHamList().add(0); - //getBuffList().put(0, new Buff("", getObjectID())); // Initial Default Buff - - loadTemplateData(); - } - - public CreatureObject() { - super(); - } - - @Override - public Baseline getOtherVariables() { - Baseline baseline = super.getOtherVariables(); - baseline.put("dotList", new ArrayList()); - return baseline; - } - - @Override - public Baseline getBaseline1() { - Baseline baseline = super.getBaseline1(); - baseline.put("bankCredits", 0); - baseline.put("cashCredits", 0); - baseline.put("baseAttributes", new SWGList(this, 1, 2, false)); - baseline.put("skills", new SWGSet(this, 1, 3, false)); - return baseline; - } - - @Override - public Baseline getBaseline3() { - Baseline baseline = super.getBaseline3(); - baseline.put("posture", (byte) 0); - baseline.put("factionRank", (byte) 0); - baseline.put("ownerId", (long) 0); - baseline.put("height", (float) 1); - baseline.put("battleFatigue", 0); - baseline.put("stateBitmask", (long) 0); - return baseline; - } - - @Override - public Baseline getBaseline4() { - Baseline baseline = super.getBaseline4(); - baseline.put("accelerationMultiplierBase", (float) 1); - baseline.put("accelerationMultiplierMod", (float) 1); - baseline.put("hamEncumberanceList", new SWGList(this, 4, 2, false)); - baseline.put("skillMods", new SWGMap(this, 4, 3, true)); - baseline.put("speedMultiplierBase", (float) 1); - baseline.put("speedMultiplierMod", (float) 1); - baseline.put("listenToId", (long) 0); - baseline.put("runSpeed", (float) 7.3); - baseline.put("slopeModAngle", (float) 1); - baseline.put("slopeModPercent", (float) 1); - baseline.put("turnRadius", (float) 1); - baseline.put("walkSpeed", (float) 1.549); - baseline.put("waterModPercent", (float) 0.75); - baseline.put("missionCriticalObjects", new SWGMap(this, 4, 13, false)); - baseline.put("abilities", new SWGMap(this, 4, 14, true)); - baseline.put("displayXp", 0); - return baseline; - } - - @Override - public Baseline getBaseline6() { - Baseline baseline = super.getBaseline6(); - baseline.put("level", (short) -1); - baseline.put("grantedHealth", 0); - baseline.put("currentAnimation", ""); - baseline.put("moodAnimation", "neutral"); - baseline.put("weaponId", (long) 0); - baseline.put("groupId", (long) 0); - baseline.put("groupInviteInfo", new GroupInviteInfo((long) 0, "")); - baseline.put("guildId", 0); - baseline.put("lookAtTarget", (long) 0); - baseline.put("intendedTarget", (long) 0); - baseline.put("moodId", (byte) 0); - baseline.put("performanceCounter", 0); - baseline.put("performanceId", 0); - baseline.put("attributes", new SWGList(this, 6, 21, false)); - baseline.put("maxAttributes", new SWGList(this, 6, 22, false)); - baseline.put("equipmentList", new SWGList(this, 6, 23, false)); - baseline.put("appearance", ""); - baseline.put("visible", true); - baseline.put("buffList", new BuffList(new SWGMap(this, 6, 26, false))); - baseline.put("performing", false); - baseline.put("difficulty", Difficulty.NORMAL); - baseline.put("hologramColor", -1); - baseline.put("visibleOnRadar", true); - baseline.put("31", (byte) 0); - baseline.put("32", (byte) 0); - baseline.put("appearanceEquipmentList", new SWGList(this, 6, 31, false)); - baseline.put("34", (long) 0); - return baseline; - } - - @Override - public Baseline getBaseline8() { - Baseline baseline = super.getBaseline8(); - return baseline; - } - - @Override - public Baseline getBaseline9() { - Baseline baseline = super.getBaseline9(); - return baseline; - } - - private void loadTemplateData() { - - /*if(getTemplateData().getAttribute("scale") != null) - setHeight((float) getTemplateData().getAttribute("scale")); - if(getTemplateData().getAttribute("speed") != null) { - //System.out.println(getTemplateData().getAttribute("speed")); - setRunSpeed((float) getTemplateData().getAttribute("speed")); - } - if(getTemplateData().getAttribute("turnRate") != null) - setTurnRadius((float) getTemplateData().getAttribute("turnRate"));*/ - - } - - public boolean isPlayer() { - synchronized(objectMutex) { - return (getSlottedObject("ghost") != null); - } - } - - public int getBankCredits() { - return (int) getBaseline(1).get("bankCredits"); - } - - public void setBankCredits(int bankCredits) { - if (getClient() != null && getClient().getSession() != null) { - getClient().getSession().write(getBaseline(1).set("bankCredits", bankCredits)); - } - } - - public void addBankCredits(int bankCredits) { - synchronized(objectMutex) { - setBankCredits(getBankCredits() + bankCredits); - } - } - - public void deductBankCredits(int bankCredits) { - synchronized(objectMutex) { - setBankCredits(getBankCredits() - bankCredits); - } - } - - public int getCashCredits() { - return (int) getBaseline(1).get("cashCredits"); - } - - public void setCashCredits(int cashCredits) { - if (getClient() != null && getClient().getSession() != null) { - getClient().getSession().write(getBaseline(1).set("cashCredits", cashCredits)); - } - } - - public void addCashCredits(int cashCredits) { - synchronized(objectMutex) { - setCashCredits(getCashCredits() + cashCredits); - } - } - - public void deductCashCredits(int cashCredits) { - synchronized(objectMutex) { - setCashCredits(getCashCredits() - cashCredits); - } - } - - @SuppressWarnings("unchecked") - public SWGList getBaseAttributes() { - return (SWGList) getBaseline(1).get("baseAttributes"); - } - - @SuppressWarnings("unchecked") - public SWGSet getSkills() { - return (SWGSet) getBaseline(1).get("skills"); - } - - public boolean hasSkill(String name) { - return getSkills().contains(name); - } - - public void addSkill(String skill) { - if (!getSkills().contains(skill)) { - getSkills().add(skill); - } - } - - public void removeSkill(String skill) { - if (getSkills().contains(skill)) { - getSkills().remove(skill); - } - } - - public int getIncapacityTimer() { - return (int) getBaseline(3).get("uses"); - } - - public void setIncapacityTimer(int incapacityTimer) { - notifyClients(getBaseline(3).set("uses", incapacityTimer), true); - } - - public byte getPosture() { - return (byte) getBaseline(3).get("posture"); - } - - public void setPosture(byte posture) { - synchronized(objectMutex) { - switch (getPosture()) { - case resources.datatables.Posture.Invalid: - setLocomotion(-1); - break; - case resources.datatables.Posture.Upright: - setLocomotion(0); - break; - case resources.datatables.Posture.Crouched: - setLocomotion(4); - break; - case resources.datatables.Posture.Prone: - setLocomotion(7); - break; - case resources.datatables.Posture.Sneaking: - setLocomotion(1); - break; - case resources.datatables.Posture.Blocking: - setLocomotion(21); - break; - case resources.datatables.Posture.Climbing: - setLocomotion(9); - break; - case resources.datatables.Posture.Flying: - setLocomotion(12); - break; - case resources.datatables.Posture.LyingDown: - setLocomotion(13); - break; - case resources.datatables.Posture.Sitting: - setLocomotion(14); - break; - case resources.datatables.Posture.SkillAnimating: - setLocomotion(15); - break; - case resources.datatables.Posture.DrivingVehicle: - setLocomotion(16); - break; - case resources.datatables.Posture.RidingCreature: - setLocomotion(17); - break; - case resources.datatables.Posture.KnockedDown: - setLocomotion(18); - break; - case resources.datatables.Posture.Incapacitated: - setLocomotion(19); - break; - case resources.datatables.Posture.Dead: - setLocomotion(20); - break; - } - } - - if (getPosture() == resources.datatables.Posture.SkillAnimating) { - stopPerformance(); - } - - if (getPosture() == posture) { - return; - } - - notifyObservers(getBaseline(3).set("posture", posture), true); - notifyObservers(new ObjControllerMessage(0x1B, new Posture(getObjectID(), posture)), true); - } - - public byte getLocomotion() { - return (byte) otherVariables.get("locomotion"); - } - - public void setLocomotion(byte locomotion) { - otherVariables.set("locomotion", locomotion); - } - - public byte getFactionRank() { - return (byte) getBaseline(3).get("factionRank"); - } - - public void setFactionRank(byte factionRank) { - notifyObservers(getBaseline(3).set("factionRank", factionRank), true); - } - - public long getOwnerId() { - return (long) getBaseline(3).get("ownerId"); - } - - public void setOwnerId(long ownerId) { - notifyObservers(getBaseline(3).set("ownerId", ownerId), true); - } - - public float getHeight() { - return (float) getBaseline(3).get("height"); - } - - public void setHeight(float height) { - height = (((height < 0.7) || (height > 1.5)) ? 1 : height); - notifyObservers(getBaseline(3).set("height", height), true); - } - - public int getBattleFatigue() { - return (int) getBaseline(3).get("battleFatigue"); - } - - public void setBattleFatigue(int battleFatigue) { - notifyObservers(getBaseline(3).set("battleFatigue", battleFatigue), true); - } - - public long getStateBitmask() { - return (long) getBaseline(3).get("stateBitmask"); - } - - public void setStateBitmask(long stateBitmask) { - notifyObservers(getBaseline(3).set("stateBitmask", stateBitmask), true); - } - - public float getAccelerationMultiplierBase() { - return (float) getBaseline(4).get("accelerationMultiplierBase"); - } - - public void setAccelerationMultiplierBase(float accelerationMultiplierBase) { - notifyObservers(getBaseline(4).set("accelerationMultiplierBase", accelerationMultiplierBase), true); - } - - public float getAccelerationMultiplierMod() { - return (float) getBaseline(4).get("accelerationMultiplierMod"); - } - - public void setAccelerationMultiplierMod(float accelerationMultiplierMod) { - notifyObservers(getBaseline(4).set("accelerationMultiplierMod", accelerationMultiplierMod);, true); - } - - @SuppressWarnings("unchecked") - public SWGList getHamEncumberanceList() { - return (SWGList) getBaseline(4).get("hamEncumberanceList"); - } - - @SuppressWarnings("unchecked") - public SWGMap getSkillMods() { - return (SWGMap) getBaseline(4).get("skillMods"); - } - - public SkillMod getSkillMod(String name) { - synchronized(objectMutex) { - if (getSkillMods().containsKey(name) && getSkillMods().get(name) != null) { - return getSkillMods().get(name); - } - - return null; - } - } - - public int getSkillModBase(String name) { - SkillMod skillMod = getSkillMod(name); - return ((skillMod == null) ? 0 : skillMod.getBase()); - } - - public void addSkillMod(String name, int base) { - if (!getSkillMods().containsKey(name)) { - getSkillMods().put(name, new SkillMod(base, 0)); - } else { - SkillMod mod = getSkillMods().get(name); - getSkillMods().put(name, new SkillMod(mod.getBase() + base, mod.getModifier())); - } - } - - public void deductSkillMod(String name, int base) { - if (getSkillMods().containsKey(name)) { - SkillMod mod = getSkillMods().get(name); - mod = new SkillMod(mod.getBase() - base, mod.getModifier()); - - if (mod.getBase() - base <= 0) { - removeSkillMod(name); - } else { - getSkillMods().put(name, mod); - } - } - } - - public void removeSkillMod(String name) { - getSkillMods().remove(name); - } - - public int getLuck() { - return (getSkillModBase("luck") + getSkillModBase("luck_modified")); - } - - public int getPrecision() { - return (getSkillModBase("precision") + getSkillModBase("precision_modified")); - } - - public int getStrength() { - return (getSkillModBase("strength") + getSkillModBase("strength_modified")); - } - - public int getConstitution() { - return (getSkillModBase("constitution") + getSkillModBase("constitution_modified")); - } - - public int getStamina() { - return (getSkillModBase("stamina") + getSkillModBase("stamina_modified")); - } - - public int getAgility() { - return (getSkillModBase("agility") + getSkillModBase("agility_modified")); - } - - public float getSpeedMultiplierBase() { - return (float) getBaseline(4).get("speedMultiplierBase"); - } - - public void setSpeedMultiplierBase(float speedMultiplierBase) { - notifyObservers(getBaseline(4).set("speedMultiplierBase", speedMultiplierBase);, true); - } - - public float getSpeedMultiplierMod() { - return (float) getBaseline(4).get("speedMultiplierMod"); - } - - public void setSpeedMultiplierMod(float speedMultiplierMod) { - notifyObservers(getBaseline(4).set("speedMultiplierMod", speedMultiplierMod);, true); - } - - public long getListenToId() { - return (long) getBaseline(4).get("listenToId"); - } - - public void setListenToId(long listenToId) { - notifyObservers(getBaseline(4).set("listenToId", listenToId);, true); - } - - public float getRunSpeed() { - return (float) getBaseline(4).get("runSpeed"); - } - - public void setRunSpeed(float runSpeed) { - notifyObservers(getBaseline(4).set("runSpeed", runSpeed);, true); - } - - public float getSlopeModAngle() { - return (float) getBaseline(4).get("slopeModAngle"); - } - - public void setSlopeModAngle(float slopeModAngle) { - notifyObservers(getBaseline(4).set("slopeModAngle", slopeModAngle), true); - } - - public float getSlopeModPercent() { - return (float) getBaseline(4).get("slopeModPercent"); - } - - public void setSlopeModPercent(float slopeModPercent) { - notifyObservers(getBaseline(4).set("slopeModPercent", slopeModPercent);, true); - } - - public float getTurnRadius() { - return (float) getBaseline(4).get("turnRadius"); - } - - public void setTurnRadius(float turnRadius) { - notifyObservers(getBaseline(4).set("turnRadius", turnRadius), true); - } - - public float getWalkSpeed() { - return (float) getBaseline(4).get("walkSpeed"); - } - - public void setWalkSpeed(float walkSpeed) { - notifyObservers(getBaseline(4).set("walkSpeed", walkSpeed), true); - } - - public float getWaterModPercent() { - return (float) getBaseline(4).get("waterModPercent"); - } - - public void setWaterModPercent(float waterModPercent) { - notifyObservers(getBaseline(4).set("waterModPercent", waterModPercent), true); - } - - @SuppressWarnings("unchecked") - public SWGMap getMissionCriticalObjects() { - return (SWGMap) getBaseline(4).get("missionCriticalObjects"); - } - - @SuppressWarnings("unchecked") - public SWGMap getAbilities() { - return (SWGMap) getBaseline(4).get("abilities"); - } - - public boolean hasAbility(String name) { - for (String ability : getAbilities().keySet()) { - if (ability.equals(name)) { - return true; - } - } - - return false; - } - - public void addAbility(String abilityName) { - if (!getAbilities().containsKey(abilityName)) { - getAbilities().put(abilityName, 1); - } - } - - public void removeAbility(String abilityName) { - if (getAbilities().containsKey(abilityName)) { - getAbilities().remove(abilityName); - } - } - - public short getLevel() { - return (short) getBaseline(6).get("level"); - } - - public void setLevel(short level) { - notifyObservers(getBaseline(6).set("level", level), true); - } - - public int getGrantedHealth() { - return (int) getBaseline(6).get("grantedHealth"); - } - - public void setGrantedHealth(int grantedHealth) { - notifyObservers(getBaseline(6).set("grantedHealth", grantedHealth), true); - } - - public String getCurrentAnimation() { - return (String) getBaseline(6).get("currentAnimation"); - } - - public void setCurrentAnimation(String currentAnimation) { - notifyObservers(new ObjControllerMessage(0x1B, new Animation(getObjectId(), currentAnimation)), true); - notifyObservers(getBaseline(6).set("currentAnimation", currentAnimation), true); - } - - public void doSkillAnimation(String skillAnimation) { - notifyObservers(new ObjControllerMessage(0x1B, new Animation(getObjectId(), skillAnimation)), true); - } - - public String getMoodAnimation() { - return (String) getBaseline(6).get("moodAnimation"); - } - - public void setMoodAnimation(String moodAnimation) { - notifyObservers(getBaseline(6).set("moodAnimation", moodAnimation), true); - } - - public long getWeaponId() { - return (long) getBaseline(6).get("weaponId"); - } - - public void setWeaponId(long weaponId) { - notifyObservers(getBaseline(6).set("weaponId", weaponId), true); - } - - public long getGroupId() { - return (long) getBaseline(6).get("groupId"); - } - - public void setGroupId(long groupId) { - notifyObservers(getBaseline(6).set("groupId", groupId), true); - } - - public GroupInviteInfo getGroupInviteInfo() { - return (GroupInviteInfo) getBaseline(6).get("groupInviteInfo"); - } - - public long getInviteSenderId() { - return getGroupInviteInfo().getSenderId(); - } - - public void setInviteSenderId(long inviteSenderId) { - getGroupInviteInfo().setSender(inviteSenderId, getInviteSenderName()); - } - - public String getInviteSenderName() { - return getGroupInviteInfo().getSenderName(); - } - - public void setInviteSenderName(String inviteSenderName) { - getGroupInviteInfo().setSender(getInviteSenderId(), inviteSenderName); - } - - public long getInviteCounter() { - return 0; - } - - public void setInviteCounter(long inviteCounter) { - - } - - public void updateGroupInviteInfo() { - if (getClient() != null && getClient().getSession() != null) { - getClient().getSession().write(getBaseline(6).set("groupInviteInfo", getGroupInviteInfo())); - } - } - - public int getGuildId() { - return (int) getBaseline(.)get("guildId"); - } - - public void setGuildId(int guildId) { - notifyObservers(getBaseline(6).set("guildId", guildId), true); - } - - public long getTargetId() { - return (long) getBaseline(6).get("targetId"); - } - - public void setTargetId(long targetId) { - notifyObservers(getBaseline(6).set("targetId", targetId), true); - } - - public byte getMoodId() { - return (byte) getBaseline(6).get("moodId"); - } - - public void setMoodId(byte moodId) { - notifyObservers(getBaseline(6).set("moodId", moodId), true); - } - - public int getPerformanceCounter() { - return (int) getBaseline(6).get("performanceCounter"); - } - - public void setPerformanceCounter(int performanceCounter) { - notifyObservers(getBaseline(6).set("performanceCounter", performanceCounter), true); - } - - public int getPerformanceId() { - return (int) getBaseline(6).get("performanceId"); - } - - public void setPerformanceId(int performanceId) { - notifyObservers(getBaseline(6).set("performanceId", performanceId), true); - } - - @Deprecated - public void setPerformanceId(int performanceId, boolean isDance) { - setPerformanceId(isDance ? 0 : performanceId); - } - - @Deprecated - public boolean getAcceptBandflourishes() { - return ((getGroupId() == 0) ? false : true); - } - - @Deprecated - public void setAcceptBandflourishes(boolean acceptBandflourishes) { - - } - - public boolean getGroupDance() { - return ((getGroupId() == 0) ? false : true); - } - - @Deprecated - public void setGroupDance(boolean groupDance) { - - } - - @Deprecated - public boolean toggleGroupDance() { - return ((getGroupId() == 0) ? false : true); - } - - @SuppressWarnings("unchecked") - public SWGList getAttribs() { - return (SWGList) getBaseline(6).get("attribs"); - } - - public void resetAttribs() { - // TODO: Fix this, if it's really needed - } - - @Deprecated - public void updateAttribs() { - - } - - public int getHealth() { - synchronized(objectMutex) { - return getAttribs().get(0); - } - } - - public void setHealth(int health) { - if (health > getMaxHealth()) { - health = getMaxHealth(); - } - - if (getPosture() == 13) { - synchronized(objectMutex) { - stopIncapTask(); - setIncapTask(null); - getAttribs().set(0, health); - } - - setPosture((byte) 0); - setTurnRadius(1); - setSpeedMultiplierBase(1); - } else { - synchronized(objectMutex) { - getAttribs().set(0, health); - } - } - } - - public int getAction() { - synchronized(objectMutex) { - return getAttribs().get(2); - } - } - - public void setAction(int action) { - if (action > getMaxAction()) { - action = getMaxAction(); - } - - synchronized(objectMutex) { - getAttribs().set(2, action); - } - } - - @SuppressWarnings("unchecked") - public SWGList getMaxAttribs() { - return (SWGList) getBaseline(6).get("maxAttribs"); - } - - public int getMaxHealth() { - synchronized(objectMutex) { - return getMaxAttribs().get(0); - } - } - - public void setMaxHealth(int maxHealth) { - if (maxHealth < getHealth()) { - setHealth(maxHealth); - } - - synchronized(objectMutex) { - getMaxAttribs().set(0, maxHealth); - } - } - - public int getMaxAction() { - synchronized(objectMutex) { - return getMaxAttribs().get(2); - } - } - - public void setMaxAction(int maxAction) { - if (maxAction < getAction()) { - setAction(maxAction); - } - - synchronized(objectMutex) { - getMaxAttribs().set(2, maxAction); - } - } - - @SuppressWarnings("unchecked") - public SWGList getEquipmentList() { - return (SWGList) getBaseline(6).get("equipmentList"); - } - - public void equipObject(SWGObject object) { - if (object instanceof TangibleObject) { - getEquipmentList().add(new Equipment(object)); - } - } - - public void addObjectToEquipList(SWGObject object) { - equipObject(object); - } - - public void unequipObject(SWGObject object) { - if (object instanceof TangibleObject) { - for (Equipment equipment : getEquipmentList()) { - if (equipment.getObjectId() == object.getObjectId()) { - getEquipmentList().remove(equipment); - } - } - } - } - - public void removeObjectFromEquipList(SWGObject object) { - unequipObject(object); - } - - public String getCostume() { - return (String) getBaseline(6).get("costume"); - } - - public void setCostume(String costume) { - notifyObservers(getBaseline(6).set("costume", costume), true); - } - - public boolean isVisible() { - return (boolean) getBaseline(6).get("visible"); - } - - public void setVisible(boolean visible) { - notifyObservers(getBaseline(6).set("visible", visible), true); - } - - public boolean isCloaked() { - return !isVisible(); - } - - public void setCloaked(boolean cloaked) { - setVisible(!cloaked); - } - - public SWGMap getBuffList() { - return ((BuffList) getBaseline(6).get("buffList")).getList(); - } - - public Buff getBuffByName(String buffName) { - for (Entry entry : getBuffList().entrySet()) { - if (entry.getKey().equals(CRC.StringtoCRC(buffName))) { - return entry.getValue(); - } - } - - return null; - } - - public void addBuff(Buff buff) { - synchronized(objectMutex) { - PlayerObject player = (PlayerObject) this.getSlottedObject("ghost"); - buff.setTotalPlayTime((int) (player.getTotalPlayTime() + (System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000)); - } - - getBuffList().put(CRC.StringtoCRC(buff.getBuffName()), buff); - - synchronized(objectMutex) { - buff.setStartTime(); - } - } - - public void removeBuff(Buff buff) { - getBuffList().remove(CRC.StringtoCRC(buff.getBuffName())); - } - - public void updateBuff(Buff buff) { - buff.updateRemovalTask(); - getBuffList().put(CRC.StringtoCRC(buff.getBuffName()), buff); - } - - public void updateAllBuffs() { - synchronized(objectMutex) { - for (Buff buff : getBuffList().values()) { - updateBuff(buff); - } - } - } - - public boolean hasBuff(String buffName) { - return getBuffByName(buffName) != null; - } - - public void setPerforming(boolean performing) { - notifyObservers(getBaseline(6).set("performing", performing), true); - } - - public boolean isPerforming() { - return (boolean) getBaseline(6).get("performing"); - } - - @Deprecated - public void startPerformance() { - if (!isPerforming()) { - setPerforming(true); - } - } - - @Deprecated - public void stopPerformance() { - setPerformanceId(0); - setPerformanceCounter(0); - setCurrentAnimation(""); - - synchronized(objectMutex) { - if (entertainerExperience != null) { - entertainerExperience.cancel(true); - entertainerExperience = null; - } - } - - sendSystemMessage("@performance:" + getPerformanceType() + "_stop_self", (byte)0); - stopAudience(); - - if (isPerforming()) { - setPerforming(false); - } - } - - @Deprecated - public void stopAudience() { - synchronized(objectMutex) { - if (performanceAudience == null) { - return; - } - - String performanceType = getPerformanceType(); - Iterator it = performanceAudience.iterator(); - - while (it.hasNext()) { - CreatureObject next = it.next(); - - if (((performanceType.equals("dance")) && (next.getPerformanceWatchee() != this)) - || ((performanceType.equals("music")) && (next.getPerformanceListenee() != this))) { - continue; - } - - if (performanceType.equals("dance")) { - next.setPerformanceWatchee(null); - } else if (performanceType.equals("musci")) { - next.setPerformanceListenee(null); - } - - //this may be a bit dodgy. - boolean isEntertained = next.getPerformanceListenee() != null && next.getPerformanceWatchee() != null; - - if (!isEntertained) { - next.setMoodAnimation(""); - } - - if (next == this) { - continue; - } - - next.sendSystemMessage("@performance:" + performanceType + "_stop_other", (byte)0); - } - - performanceAudience = new ArrayList(); - } - } - - public String getPerformanceType() { - return (((boolean) otherVariables.get("performanceType")) ? "dance" : "music"); - } - - public void setPerformanceType(String performanceType) { - otherVariables.set("performanceType", ((performanceType.equals("dance")) ? true : false)); - } - - public void setPerformanceType(boolean performanceType) { - otherVariables.set("performanceType", performanceType); - } - - public ScheduledFuture getEntertainerExperience() { - return entertainerExperience; - } - - public void setEntertainerExperience(ScheduledFuture entertainerExperience) { - this.entertainerExperience = entertainerExperience; - } - - public ScheduledFuture getInspirationTick() { - return inspirationTick; - } - - public void setInspirationTick(ScheduledFuture inspirationTick) { - this.inspirationTick = inspirationTick; - } - - public void addAudience(CreatureObject audienceMember) { - synchronized(objectMutex) { - if (performanceAudience == null) { - performanceAudience = new ArrayList(); - } - - performanceAudience.add(audienceMember); - } - } - - public void removeAudience(CreatureObject audienceMember) { - synchronized(objectMutex) { - if (performanceAudience == null) { - return; - } - - performanceAudience.remove(audienceMember); - } - } - - public CreatureObject getPerformanceWatchee() { - synchronized(objectMutex) { - return performanceWatchee; - } - } - - public void setPerformanceWatchee(CreatureObject performanceWatchee) { - synchronized(objectMutex) { - this.performanceWatchee = performanceWatchee; - } - - setListenToId(performanceWatchee.getObjectID()); - } - - public CreatureObject getPerformanceListenee() { - synchronized(objectMutex) { - return performanceListenee; - } - } - - public void setPerformanceListenee(CreatureObject performanceListenee) { - synchronized(objectMutex) { - this.performanceListenee = performanceListenee; - } - - setListenToId(performanceListenee.getObjectID()); - } - - public int getFlourishCount() { - synchronized(objectMutex) { - return this.flourishCount; - } - } - - public void setFlourishCount(int flourishCount) { - synchronized(objectMutex) { - this.flourishCount = flourishCount; - } - } - - public void incFlourishCount() { - synchronized(objectMutex) { - this.flourishCount++; - } - } - - public byte getDifficulty() { - return (byte) getBaseline(6).get("difficulty"); - } - - public void setDifficulty(byte difficulty) { - notifyObservers(getBaseline(6).set("difficulty", difficulty), true); - } - - public int getHologramColor() { - return (int) getBaseline(6).get("hologramColor"); - } - - public void setHologramColor(int hologramColor) { - getBaseline(6).set("hologramColor", hologramColor); - } - - public boolean isHologram() { - return !(getHologramColor() == -1); - } - - public void setHologram(boolean hologram) { - setHologramColor((hologram) ? 0 : -1); - } - - public boolean visibleOnRadar() { - return (boolean) getBaseline(6).get("visibleOnRadar"); - } - - public void setVisibleOnRadar(boolean visibleOnRadar) { - notifyObservers(getBaseline(6).set("visibleOnRadar", visibleOnRadar), true); - } - - @SuppressWarnings("unchecked") - public SWGList getAppearanceEquipmentList() { - return (SWGList) baseline6.get("appearanceEquipmentList"); - } - - public void equipAppearance(SWGObject object) { - if (object instanceof TangibleObject) { - getAppearanceEquipmentList().add(new Equipment(object)); - } - } - - public void addObjectToAppearanceEquipList(SWGObject object) { - equipAppearance(object); - } - - public void unequipAppearance(SWGObject object) { - if (object instanceof TangibleObject) { - for (Equipment equipment : getAppearanceEquipmentList()) { - if (equipment.getObjectId() == object.getObjectId()) { - getAppearanceEquipmentList().remove(equipment); - } - } - } - } - - public void removeObjectFromAppearanceEquipList(SWGObject object) { - unequipAppearance(object); - } - - public List getDuelList() { - return duelList; - } - - public boolean isInDuelList(long objectId) { - if (duelList.contains(objectId)) { - return true; - } - - return false; - } - - public boolean isInDuelList(SWGObject object) { - return isInDuelList(object.getObjectId()); - } - - @SuppressWarnings("unchecked") - public List getDotList() { - return ((List) otherVariables.get("dotList")); - } - - public DamageOverTime getDotByBuff(Buff buff) { - List dots = new ArrayList(getDotList()); - - for (DamageOverTime dot : dots) { - if (dot.getBuff() == buff) { - return dot; - } - } - - return null; - } - - public DamageOverTime getDotByName(String dotName) { - List dots = new ArrayList(getDotList()); - - for (DamageOverTime dot : dots) { - if (dot.getCommandName().equalsIgnoreCase(dotName)) { - return dot; - } - } - - return null; - } - - public void setDotList(List dotList) { - otherVariables.set("dotList", dotList); - } - - public void addDot(DamageOverTime dot) { - getDotList().add(dot); - } - - public void removeDot(DamageOverTime dot) { - getDotList().remove(dot); - } - - public ScheduledFuture getIncapTask() { - return incapTask; - } - - public void setIncapTask(ScheduledFuture incapTask) { - this.incapTask = incapTask; - } - - public void stopIncapTask() { - if (incapTask != null) { - incapTask.cancel(true); - } - } - - @Override - public void notifyClients(IoBuffer buffer, boolean notifySelf) { - notifyObservers(buffer, notifySelf); - } - - @Override - public CreatureMessageBuilder getMessageBuilder() { - synchronized(objectMutex) { - if (messageBuilder == null) { - messageBuilder = new CreatureMessageBuilder(this); - } - - return messageBuilder; - } - } - - @Override - public void sendBaselines(Client destination) { - if (destination != null && destination.getSession() != null) { - destination.getSession().write(getBaseline(3).getBaseline()); - destination.getSession().write(getBaseline(6).getBaseline()); - if (destination == getClient()) { - destination.getSession().write(getBaseline(1).getBaseline()); - destination.getSession().write(getBaseline(4).getBaseline()); - destination.getSession().write(getBaseline(8).getBaseline()); - destination.getSession().write(getBaseline(9).getBaseline()); - } - - if (destination.getParent() != this) { - UpdatePVPStatusMessage upvpm = new UpdatePVPStatusMessage(getObjectID()); - upvpm.setFaction(CRC.StringtoCRC(getFaction())); - upvpm.setStatus(NGECore.getInstance().factionService.calculatePvpStatus((CreatureObject) destination.getParent(), this)); - destination.getSession().write(upvpm.serialize()); - UpdatePostureMessage upm = new UpdatePostureMessage(getObjectID(), (byte) 0); - destination.getSession().write(upm.serialize()); - } - } - } - - public void playMusic(String sndFile) { - playMusic(sndFile, 0, 1, false); - } - - public void playMusic(String sndFile, long targetId) { - playMusic(sndFile, targetId, 1, false); - } - - public void playMusic(String sndFile, int repetitions) { - playMusic(sndFile, 0, repetitions, false); - } - - public void playMusic(String sndFile, long targetId, int repetitions) { - playMusic(sndFile, targetId, repetitions, false); - } - - public void playMusic(String sndFile, long targetId, int repetitions, boolean flag) { - getClient().getSession().write(new PlayMusicMessage(sndFile, targetId, 1, false)); - } - - public void sendSystemMessage(String message, byte displayType) { - if (getClient() != null && getClient().getSession() != null) { - ChatSystemMessage systemMsg = new ChatSystemMessage(message, displayType); - getClient().getSession().write(systemMsg.serialize()); - } - } - - public void sendSystemMessage(String stfFilename, String stfName, int stat, int displayType) { - if (getClient() != null && getClient().getSession() != null) { - ChatSystemMessage systemMsg = new ChatSystemMessage(stfFilename, stfName, stat, (byte) displayType); - getClient().getSession().write(systemMsg.serialize()); - } - } - -} From 341af2c7d835842c67b66dd387f00b03260b31b9 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 11:40:12 +0100 Subject: [PATCH 18/51] Fixed error when using lava crystals --- .../weapon/lightsaber/lightsaber_module_lava_crystal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_lava_crystal.py b/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_lava_crystal.py index ee964907..030c0316 100644 --- a/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_lava_crystal.py +++ b/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_lava_crystal.py @@ -4,6 +4,6 @@ def setup(core, object): object.setStringAttribute('condition', '100/100') object.setStringAttribute('@obj_attr_n:color', 'Lava') object.setAttachment('radial_filename', 'item/tunable') - object.setStringAttribute('@obj_attr_n:crystal_owner", "\\#D1F56F UNTUNED \\#FFFFFF ') + object.setStringAttribute('@obj_attr_n:crystal_owner', '\\#D1F56F UNTUNED \\#FFFFFF ') return \ No newline at end of file From 3f4cb965d187e7629fa7ed07f7a8cc3cbb0c7ebb Mon Sep 17 00:00:00 2001 From: tacef Date: Sun, 13 Jul 2014 14:07:01 +0200 Subject: [PATCH 19/51] Fixed Bitmask for Valarian NPC's Changed position of EV-9D9 to be more accurate to live --- scripts/mobiles/tatooine/valarian_command_enforcer.py | 2 +- scripts/mobiles/tatooine/valarian_executioner.py | 2 +- scripts/static_spawns/tatooine/jabbas_palace.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mobiles/tatooine/valarian_command_enforcer.py b/scripts/mobiles/tatooine/valarian_command_enforcer.py index 3313b270..d90c9397 100644 --- a/scripts/mobiles/tatooine/valarian_command_enforcer.py +++ b/scripts/mobiles/tatooine/valarian_command_enforcer.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("valarian") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(False) - #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/tatooine/valarian_executioner.py b/scripts/mobiles/tatooine/valarian_executioner.py index 5d9acf0d..87a464a0 100644 --- a/scripts/mobiles/tatooine/valarian_executioner.py +++ b/scripts/mobiles/tatooine/valarian_executioner.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("valarian") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(False) - #mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() diff --git a/scripts/static_spawns/tatooine/jabbas_palace.py b/scripts/static_spawns/tatooine/jabbas_palace.py index 8bee3e8b..15bbc579 100644 --- a/scripts/static_spawns/tatooine/jabbas_palace.py +++ b/scripts/static_spawns/tatooine/jabbas_palace.py @@ -49,7 +49,7 @@ def addPlanetSpawns(core, planet): stcSvc.spawnObject('object/mobile/shared_boba_fett.iff', 'tatooine', building.getCellByCellNumber(22), float(-1.0), float(3.0), float(33.1), float(0), float(0), float(0), float(0)) #EV9D9 - stcSvc.spawnObject('object/mobile/shared_ev_9d9.iff', 'tatooine', building.getCellByCellNumber(14), float(18.8), float(0.2), float(78.7), float(0), float(0), float(1.0), float(0)) + stcSvc.spawnObject('object/mobile/shared_ev_9d9.iff', 'tatooine', building.getCellByCellNumber(14), float(23.1), float(0.2), float(87.8), float(0), float(0), float(1.0), float(0)) #malakili stcSvc.spawnObject('object/mobile/shared_malakili.iff', 'tatooine', building.getCellByCellNumber(37), float(17.3), float(-11.0), float(43.8), float(0), float(0), float(0), float(0)) From a227c685f0752e2db50e5be558e4718db0b6b092 Mon Sep 17 00:00:00 2001 From: tacef Date: Sun, 13 Jul 2014 16:11:06 +0200 Subject: [PATCH 20/51] Changed dwarf bantha Changed Tusken Follower Added Populated Great Sarlacc Added Populated Ben kenobis house --- scripts/mobiles/tatooine/dwarf_bantha.py | 2 +- scripts/mobiles/tatooine/tusken_follower.py | 1 - .../static_spawns/tatooine/great_sarlacc.py | 30 +++++++++++++++++++ .../tatooine/tatooine_ben_kenobis_house.py | 26 ++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 scripts/static_spawns/tatooine/great_sarlacc.py create mode 100644 scripts/static_spawns/tatooine/tatooine_ben_kenobis_house.py diff --git a/scripts/mobiles/tatooine/dwarf_bantha.py b/scripts/mobiles/tatooine/dwarf_bantha.py index 998034c8..bafc6757 100644 --- a/scripts/mobiles/tatooine/dwarf_bantha.py +++ b/scripts/mobiles/tatooine/dwarf_bantha.py @@ -11,7 +11,7 @@ def addTemplate(core): mobileTemplate = MobileTemplate() mobileTemplate.setCreatureName('dwarf_bantha') - mobileTemplate.setLevel(10) + mobileTemplate.setLevel(18) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/tatooine/tusken_follower.py b/scripts/mobiles/tatooine/tusken_follower.py index 9ee8a613..47df0730 100644 --- a/scripts/mobiles/tatooine/tusken_follower.py +++ b/scripts/mobiles/tatooine/tusken_follower.py @@ -22,7 +22,6 @@ def addTemplate(core): mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) - mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_tusken_raider.iff') diff --git a/scripts/static_spawns/tatooine/great_sarlacc.py b/scripts/static_spawns/tatooine/great_sarlacc.py new file mode 100644 index 00000000..a8b1325c --- /dev/null +++ b/scripts/static_spawns/tatooine/great_sarlacc.py @@ -0,0 +1,30 @@ +import sys +# Project SWG: Great Sarlacc: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + + + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6098), float(25.2), float(-3337), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6087.4), float(22.3), float(-3327), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6105), float(22.6), float(-3329.2), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6116.1), float(22.1), float(-3313.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6088.1), float(21.1), float(-3301.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6059), float(22.3), float(-3300.3), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6057.7), float(25.4), float(-3285.5), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6094.6), float(24.6), float(-3282.6), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('jundland_eopie', 'tatooine', long(0), float(-6122.7), float(24.6), float(-3299.3), float(0), float(0), float(0), float(0), 45) + return + + diff --git a/scripts/static_spawns/tatooine/tatooine_ben_kenobis_house.py b/scripts/static_spawns/tatooine/tatooine_ben_kenobis_house.py new file mode 100644 index 00000000..a4748aff --- /dev/null +++ b/scripts/static_spawns/tatooine/tatooine_ben_kenobis_house.py @@ -0,0 +1,26 @@ +import sys +# Project SWG: Jabba TP Alkharan Camp: Static Spawns +# (C)2014 ProjectSWG + + + +from resources.datatables import Options +from resources.datatables import State + +def addPlanetSpawns(core, planet): + + + stcSvc = core.staticService + objSvc = core.objectService + + # TODO Check all NPCs for personalized scripting, change format. + + stcSvc.spawnObject('tusken_follower', 'tatooine', long(0), float(-4505.5), float(35), float(-2270.4), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tusken_follower', 'tatooine', long(0), float(-4511), float(35), float(-2261.7), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tusken_follower', 'tatooine', long(0), float(-4522.7), float(35), float(-2262.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tusken_follower', 'tatooine', long(0), float(-4519.7), float(35), float(-2253.8), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('tusken_follower', 'tatooine', long(0), float(-4529.8), float(35), float(-2253.7), float(0), float(0), float(0), float(0), 45) + stcSvc.spawnObject('dwarf_bantha', 'tatooine', long(0), float(-4524.3), float(35), float(-2257.7), float(0), float(0), float(0), float(0), 45) + + return + From 820dc765e806c4c0b37899c09e2c9c336e094665 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Sun, 13 Jul 2014 17:57:39 +0200 Subject: [PATCH 21/51] Removed item colouring for admins --- src/services/sui/SUIService.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/services/sui/SUIService.java b/src/services/sui/SUIService.java index 164f8ef9..5d6118d5 100644 --- a/src/services/sui/SUIService.java +++ b/src/services/sui/SUIService.java @@ -148,12 +148,6 @@ public class SUIService implements INetworkDispatch { sendRadial(owner, target, request.getRadialOptions(), request.getRadialCount()); return; } - - if(target.getTemplate().contains("object/tangible/wearables") && ((CreatureObject)owner).hasAbility("admin")) - { - core.scriptService.callScript("scripts/radial/", "item/recolorable", "createRadial", core, owner, target, request.getRadialOptions()); - if(getRadialFilename(target).equals("default")) sendRadial(owner, target, request.getRadialOptions(), request.getRadialCount()); - } core.scriptService.callScript("scripts/radial/", getRadialFilename(target), "createRadial", core, owner, target, request.getRadialOptions()); if(getRadialFilename(target).equals("default")) @@ -195,12 +189,6 @@ public class SUIService implements INetworkDispatch { core.scriptService.callScript("scripts/radial/", "structure/moveable", "handleSelection", core, owner, target, objMenuSelect.getSelection()); return; } - - - if(target.getTemplate().contains("object/tangible/wearables") && ((CreatureObject)owner).hasAbility("admin")) - { - core.scriptService.callScript("scripts/radial/", "item/recolorable", "handleSelection", core, owner, target, objMenuSelect.getSelection()); - } core.scriptService.callScript("scripts/radial/", getRadialFilename(target), "handleSelection", core, owner, target, objMenuSelect.getSelection()); From 71f66c0556f1342001b2be70eb3b8fed2dc7c8fc Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Sun, 13 Jul 2014 17:59:49 +0200 Subject: [PATCH 22/51] Removed tertiary colouring from the recolour radial Only the SE goggles used this and they could only have two colours modified. --- scripts/radial/item/recolorable.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/radial/item/recolorable.py b/scripts/radial/item/recolorable.py index 6c16964f..bd13e64b 100644 --- a/scripts/radial/item/recolorable.py +++ b/scripts/radial/item/recolorable.py @@ -4,7 +4,6 @@ import sys def createRadial(core, owner, target, radials): radials.add(RadialOptions(0, 98, 0, 'Modify primary color')) radials.add(RadialOptions(0, 99, 0, 'Modify secondary color')) - radials.add(RadialOptions(0, 100, 0, 'Modify tertiary color')) return def handleSelection(core, owner, target, option): @@ -12,7 +11,5 @@ def handleSelection(core, owner, target, option): core.suiService.sendColorPicker(owner, target, '/private/index_color_1') if option == 99 and target: core.suiService.sendColorPicker(owner, target, '/private/index_color_2') - if option == 100 and target: - core.suiService.sendColorPicker(owner, target, '/private/index_color_3') return \ No newline at end of file From 02d03e2caac6ee7e634e426871bbea9e19ea16b4 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sun, 13 Jul 2014 14:21:17 -0400 Subject: [PATCH 23/51] Added a frog building outside of Mos Espa near West Shuttleport - spawns on server startup with 1 frog Removed frog from Mos Eisley Added "New Frog" option for GMs on CBT Added addToFrogAdminList argument for setGodMode for GMs - allows GMs to put down items inside the frog building (ie more frogs!) --- scripts/commands/setgodmode.py | 19 ++++++++++-- scripts/static_spawns/tatooine/tatooine.py | 2 +- src/main/NGECore.java | 2 +- src/services/DevService.java | 34 ++++++++++++++++++++-- src/services/SimulationService.java | 4 +-- 5 files changed, 53 insertions(+), 8 deletions(-) diff --git a/scripts/commands/setgodmode.py b/scripts/commands/setgodmode.py index 9874cbd3..b34f4cdb 100644 --- a/scripts/commands/setgodmode.py +++ b/scripts/commands/setgodmode.py @@ -50,9 +50,9 @@ def run(core, actor, target, commandString): core.playerService.grantLevel(actor, int(arg1)) elif command == 'setSpeed' and arg1: - actor.sendSystemMessage('Your speed was ' + str(actor.getSpeedMultiplierBase()) + '. Don\'t forget to set this back or it\'ll permanently imbalance your speed. Default without buffs or mods is 1.', 2) + #actor.sendSystemMessage("Your speed was " + str(actor.getSpeedMultiplierBase()) + ". Don\'t forget to set this back or it\'ll permanently imbalance your speed. Default without buffs or mods is 1.", 2) actor.setSpeedMultiplierBase(float(arg1)) - actor.sendSystemMessage('Your new speed is ' + str(actor.getSpeedMultiplierBase()) + '.', 2) + actor.sendSystemMessage('Your new speed is ' + arg1 + '.', 2) elif command == 'teleport' and arg2 and arg3 and arg4: position = Point3D(float(arg2), float(arg3), float(arg4)) @@ -146,10 +146,15 @@ def run(core, actor, target, commandString): planetName = actor.getPlanet().getName() actor.sendSystemMessage('Position.x : %s' % pos.x, 0) + print ('Position.x : %s' % pos.x, 0) actor.sendSystemMessage('Position.y : %s' % pos.y, 0) + print ('Position.y : %s' % pos.y, 0) actor.sendSystemMessage('Position.z : %s' % pos.z, 0) + print ('Position.z : %s' % pos.z, 0) actor.sendSystemMessage('Orientation.y : %s' % ori.y, 0) + print ('Orientation.y : %s' % ori.y, 0) actor.sendSystemMessage('Orientation.w : %s' % ori.w, 0) + print ('Orientation.w : %s' % ori.w, 0) if (actor.getContainer()): cid = actor.getContainer().getObjectID() cellid = cid @@ -185,4 +190,14 @@ def run(core, actor, target, commandString): playerObject.setCurrentRank(int(arg1)) print (playerObject.getCurrentRank()) return + + elif command == 'addToFrogAdminList': + frogBuilding = core.objectService.getObject(core.devService.getFrogBuildingId()) + + if frogBuilding is None: + return + + frogBuilding.addPlayerToAdminList(None, actor.getObjectID(), actor.getCustomName().split(' ')[0]) + actor.sendSystemMessage('You were added to the Admin list for the Frog Building.', 0) + return return diff --git a/scripts/static_spawns/tatooine/tatooine.py b/scripts/static_spawns/tatooine/tatooine.py index 9a45d308..6a723d35 100644 --- a/scripts/static_spawns/tatooine/tatooine.py +++ b/scripts/static_spawns/tatooine/tatooine.py @@ -10,7 +10,7 @@ def addPlanetSpawns(core, planet): ######################################################## stcSvc = core.staticService # Blue Frog: Uncomment only when needed for testing. - stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(3525), float(4), float(-4801), float(0.70), float(0.71)) + #stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(3525), float(4), float(-4801), float(0.70), float(0.71)) ######################################################## # DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 91f182ae..84a2a382 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -344,7 +344,6 @@ public class NGECore { skillModService = new SkillModService(this); equipmentService = new EquipmentService(this); entertainmentService = new EntertainmentService(this); - devService = new DevService(this); conversationService = new ConversationService(this); bazaarService = new BazaarService(this); housingService = new HousingService(this); @@ -561,6 +560,7 @@ public class NGECore { browserService = new BrowserService(this); //battlefieldService = new BattlefieldService(this); + devService = new DevService(this); DevLogQueuer devLogQueuer = new DevLogQueuer(); diff --git a/src/services/DevService.java b/src/services/DevService.java index e43ceb89..169da3c6 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -58,6 +58,7 @@ import engine.resources.container.NullPermissions; import engine.resources.objects.SWGObject; import engine.resources.scene.Planet; import engine.resources.scene.Point3D; +import engine.resources.scene.Quaternion; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; @@ -65,9 +66,11 @@ import engine.resources.service.INetworkRemoteEvent; public class DevService implements INetworkDispatch { private NGECore core; - + private long frogBuildingId = 0; + public DevService(NGECore core) { this.core = core; + loadFrogBuilding(); } public void sendCharacterBuilderSUI(CreatureObject creature, int childMenu) @@ -82,6 +85,8 @@ public class DevService implements INetworkDispatch { suiOptions.put((long) 3, "Locations"); if (System.getProperty("user.name").equals("Charon")) suiOptions.put((long) 4, "Treasure chest test"); + if (creature.getClient().isGM()) + suiOptions.put((long) 200, "Get new CBT"); break; case 1: // Character suiOptions.put((long) 10, "Set combat level to 90"); @@ -214,7 +219,7 @@ public class DevService implements INetworkDispatch { //treasureContainer.add(droppedItem); return; - + // Character case 10: // Set combat level to 90 core.playerService.grantLevel(player, 90); // Commented out until fixed @@ -1359,6 +1364,11 @@ public class DevService implements INetworkDispatch { core.lootService.prepInv2(player); return; + case 200: + TangibleObject frog = (TangibleObject) core.objectService.createObject("object/tangible/terminal/shared_terminal_character_builder.iff", planet); + + inventory.add(frog); + return; } } }); @@ -1366,6 +1376,26 @@ public class DevService implements INetworkDispatch { core.suiService.openSUIWindow(window); } + private void loadFrogBuilding() { + BuildingObject building = (BuildingObject) core.objectService.createObject("object/building/tatooine/shared_association_hall_civilian_tatooine_02.iff", 0, core.terrainService.getPlanetByName("tatooine"), + new Point3D(-3308, 5, 2174), new Quaternion((float) 0.7323, 0, (float) 0.680961, 0)); + + core.simulationService.add(building, building.getPosition().x, building.getPosition().z); + + this.frogBuildingId = building.getObjectID(); + + building.setAttachment("structureOwner", 0); + + TangibleObject frog = (TangibleObject) core.objectService.createObject("object/tangible/terminal/shared_terminal_character_builder.iff", core.terrainService.getPlanetByID(building.getPlanetId())); + frog.setPosition(new Point3D((float)-1.10475, (float)0.51, (float)-4.3665)); + frog.setOrientation(new Quaternion((float) 0.9965, 0, (float)-0.09, 0)); + building.getCellByCellNumber(2).add(frog); + } + + public long getFrogBuildingId() { + return this.frogBuildingId; + } + @Override public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { } diff --git a/src/services/SimulationService.java b/src/services/SimulationService.java index 052e1b6c..3939b461 100644 --- a/src/services/SimulationService.java +++ b/src/services/SimulationService.java @@ -550,8 +550,8 @@ public class SimulationService implements INetworkDispatch { object.getContainer()._remove(object); if (object.getClient() == null) System.err.println("Client is null! This is a very strange error."); - if (object.getClient() != null && object.getClient().isGM() && parent != null && parent instanceof CellObject && parent.getContainer() != null) - object.sendSystemMessage("BuildingId - Dec: " + parent.getContainer().getObjectID() + " Hex: " + Long.toHexString(parent.getContainer().getObjectID()) + " CellNumber: " + ((CellObject) parent).getCellNumber(), DisplayType.Broadcast); + //if (object.getClient() != null && object.getClient().isGM() && parent != null && parent instanceof CellObject && parent.getContainer() != null) + //object.sendSystemMessage("BuildingId - Dec: " + parent.getContainer().getObjectID() + " Hex: " + Long.toHexString(parent.getContainer().getObjectID()) + " CellNumber: " + ((CellObject) parent).getCellNumber(), DisplayType.Broadcast); parent._add(object); } object.setPosition(newPos); From 5321b916ea4c958e3de593f8f4783396b9cc4239 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sun, 13 Jul 2014 14:57:05 -0400 Subject: [PATCH 24/51] Fixed Null Planet error from MissionObject --- src/resources/objects/mission/MissionObject.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index cb1a855d..010d9654 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -80,7 +80,7 @@ public class MissionObject extends IntangibleObject implements Serializable { baseline.put("repeatCounter", 0); baseline.put("missionType", 0); baseline.put("targetName", ""); - baseline.put("waypoint", (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/base/shared_base_waypoint.iff", NGECore.getInstance().terrainService.getPlanetByID(0))); + baseline.put("waypoint", (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/base/shared_base_waypoint.iff", NGECore.getInstance().terrainService.getPlanetByID(1))); return baseline; } From 01ee9addd34d695122a22c0898c63e94815b053e Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 22:15:40 +0100 Subject: [PATCH 25/51] Added a debug check for potential player error --- src/services/PlayerService.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index 8cb1d8ff..2dcf28b0 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -197,12 +197,16 @@ public class PlayerService implements INetworkDispatch { }, 0, 1000, TimeUnit.MILLISECONDS)); scheduleList.add(scheduler.scheduleAtFixedRate(() -> { - long[] ids = creature.getAwareObjects().stream().mapToLong(SWGObject::getObjectID).toArray(); - for(int i = 0; i < ids.length; i++) { - for(int j = 0; j < ids.length; j++) { - if(ids[i] == ids[j] && i != j) - System.err.println("Detected duplicate ids, Template " + core.objectService.getObject(ids[i]).getTemplate()); + try { + long[] ids = creature.getAwareObjects().stream().mapToLong(SWGObject::getObjectID).toArray(); + for(int i = 0; i < ids.length; i++) { + for(int j = 0; j < ids.length; j++) { + if(ids[i] == ids[j] && i != j) + System.err.println("Detected duplicate ids, Template " + core.objectService.getObject(ids[i]).getTemplate()); + } } + } catch (Exception e) { + e.printStackTrace(); } }, 0, 5000, TimeUnit.MILLISECONDS)); From e97411eaac9915c3fd716c49834778601281e2ff Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 22:16:22 +0100 Subject: [PATCH 26/51] Fixed unlikely but potential object error --- src/services/object/ObjectService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index a823a1ca..a93f08c6 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -263,7 +263,7 @@ public class ObjectService implements INetworkDispatch { e.printStackTrace(); } - planet = core.terrainService.getPlanetByID(0); + planet = core.terrainService.getPlanetByID(1); } if(Template.startsWith("object/creature")) { From ca787f7a506c84cc4b942e267488da98f6c303b2 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 22:17:07 +0100 Subject: [PATCH 27/51] Fixed issue with badly configured weapons breaking --- src/resources/objects/weapon/WeaponObject.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/resources/objects/weapon/WeaponObject.java b/src/resources/objects/weapon/WeaponObject.java index 4fca13d7..a06010ec 100644 --- a/src/resources/objects/weapon/WeaponObject.java +++ b/src/resources/objects/weapon/WeaponObject.java @@ -127,6 +127,11 @@ public class WeaponObject extends TangibleObject implements Serializable { } public int getWeaponType() { + if (getStringAttribute("cat_wpn_damage.wpn_category") == null) { + System.err.println("Error: Weapon Type not defined for " + getTemplate()); + return 6; + } + return Integer.parseInt(getStringAttribute("cat_wpn_damage.wpn_category").replace("@obj_attr_n:wpn_category_", "")); } From 5ca6f4ecd678227afe1130add97f0dd782f08c82 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 22:31:34 +0100 Subject: [PATCH 28/51] Fixed guilds being requested for invalid targets --- src/services/PlayerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index 2dcf28b0..e65d989c 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -378,6 +378,11 @@ public class PlayerService implements INetworkDispatch { CreatureObject targetPlayer = (CreatureObject) core.objectService.getObject(request.getCharacterId()); + if (targetPlayer == null) { + System.err.println("PlayerService::GuildRequestMessage: Target is null: " + request.getCharacterId()); + return; + } + if (targetPlayer.getGuildId() != 0) { Guild targetGuild = core.guildService.getGuildById(targetPlayer.getGuildId()); GuildResponseMessage response = new GuildResponseMessage(request.getCharacterId(), targetGuild.getName()); From badb34feac0ca42a34ef3f4b182c57306bd9e56f Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 22:55:46 +0100 Subject: [PATCH 29/51] Removed mos eisley respecseller (use coronet) --- scripts/static_spawns/tatooine/mos_eisley.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/static_spawns/tatooine/mos_eisley.py b/scripts/static_spawns/tatooine/mos_eisley.py index 7b0d9042..13f969de 100644 --- a/scripts/static_spawns/tatooine/mos_eisley.py +++ b/scripts/static_spawns/tatooine/mos_eisley.py @@ -320,7 +320,7 @@ def addPlanetSpawns(core, planet): #Profession Counselor - stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288)) + #stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288)) #Junk Dealers stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3355), float(5), float(-4823), float(0.71), float(0.71)) From 042ccaebe9ced7d32989feb1d8a8957af9f38c56 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 22:56:30 +0100 Subject: [PATCH 30/51] Changed frogs to only allow you to grant 90 once --- src/services/DevService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/DevService.java b/src/services/DevService.java index e43ceb89..006671e6 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -217,7 +217,10 @@ public class DevService implements INetworkDispatch { // Character case 10: // Set combat level to 90 - core.playerService.grantLevel(player, 90); // Commented out until fixed + if (player.getAttachment("hasLeveled") != null) { + player.setAttachment("hasLeveled", true); + core.playerService.grantLevel(player, 90); + } //core.playerService.giveExperience(player, 999999999); return; case 11: // Give 100,000 credits From 737857db20343b521878ed2bd3a018c342b34888 Mon Sep 17 00:00:00 2001 From: Treeku Date: Sun, 13 Jul 2014 23:41:01 +0100 Subject: [PATCH 31/51] Fixed not being able to level at all with frog. --- src/services/DevService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/DevService.java b/src/services/DevService.java index 02b5ffc2..a06265b2 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -222,11 +222,10 @@ public class DevService implements INetworkDispatch { // Character case 10: // Set combat level to 90 - if (player.getAttachment("hasLeveled") != null) { + if (player.getAttachment("hasLeveled") == null) { player.setAttachment("hasLeveled", true); core.playerService.grantLevel(player, 90); } - //core.playerService.giveExperience(player, 999999999); return; case 11: // Give 100,000 credits player.setCashCredits(player.getCashCredits() + 100000); From ec55f0c33e74e763db187644050518a7b88d3f73 Mon Sep 17 00:00:00 2001 From: Treeku Date: Mon, 14 Jul 2014 04:12:53 +0100 Subject: [PATCH 32/51] Added duplicateId debugging --- src/resources/objects/SWGMap.java | 3 - src/services/object/ObjectList.java | 101 +++++++++++++++++++++++++ src/services/object/ObjectService.java | 11 ++- 3 files changed, 110 insertions(+), 5 deletions(-) create mode 100644 src/services/object/ObjectList.java diff --git a/src/resources/objects/SWGMap.java b/src/resources/objects/SWGMap.java index 9b055425..20ff287e 100644 --- a/src/resources/objects/SWGMap.java +++ b/src/resources/objects/SWGMap.java @@ -34,8 +34,6 @@ import java.util.function.Function; import org.apache.mina.core.buffer.IoBuffer; -import com.sleepycat.persist.model.Persistent; - import engine.resources.objects.Baseline; import engine.resources.objects.Delta; import engine.resources.objects.IDelta; @@ -43,7 +41,6 @@ import engine.resources.objects.SWGObject; /* A SWGMap element should extend Delta or implement IDelta */ -@Persistent public class SWGMap implements Map, Serializable { private static final long serialVersionUID = 1L; diff --git a/src/services/object/ObjectList.java b/src/services/object/ObjectList.java new file mode 100644 index 00000000..8092ee6e --- /dev/null +++ b/src/services/object/ObjectList.java @@ -0,0 +1,101 @@ +package services.object; + +import java.io.Serializable; +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import engine.resources.objects.SWGObject; + +public class ObjectList implements Map, Serializable { + + private static final long serialVersionUID = 1L; + + private Map objectList = new ConcurrentHashMap(); + private Map history = new ConcurrentHashMap(); + + public ObjectList() { + + } + + public void clear() { + System.err.println("ObjectList was wiped!"); + try { + throw new Exception(); + } catch (Exception e) { + e.printStackTrace(); + } + objectList.clear(); + } + + public boolean containsKey(Object k) { + return objectList.containsKey(k); + } + + public boolean containsValue(Object v) { + return objectList.containsValue(v); + } + + public Set> entrySet() { + return objectList.entrySet(); + } + + public V get(Object key) { + return objectList.get(key); + } + + public boolean isEmpty() { + return objectList.isEmpty(); + } + + public Set keySet() { + return objectList.keySet(); + } + + public V put(K key, V value) { + if ((objectList.containsKey((Long) key) && !((SWGObject) objectList.get(key)).getTemplate().equals(((SWGObject) value).getTemplate())) || + (history.containsKey((Long) key) && !history.get(key).equals(((SWGObject) value).getTemplate()))) { + System.err.println("Attempted to register duplicate Id. Old template: " + ((SWGObject) objectList.get(key)).getTemplate() + " New template: " + ((SWGObject) value).getTemplate()); + + try { + throw new Exception(); + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + objectList.put(key, value); + + return value; + } + + public void putAll(Map objects) { + objectList.putAll(objects); + } + + @SuppressWarnings("unchecked") + public V remove(Object object) { + /*if (object instanceof SWGObject) System.err.println("Object was removed! " + ((SWGObject) objectList.get(object)).getTemplate()); + try { + throw new Exception(); + } catch (Exception e) { + e.printStackTrace(); + }*/ + if (objectList.containsKey(object)) { + history.put((K) object, ((SWGObject) objectList.get(object)).getTemplate()); + } + return objectList.remove(object); + } + + public int size() { + return objectList.size(); + } + + public Collection values() { + return objectList.values(); + } + +} diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index a93f08c6..52f5fcc7 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -137,7 +137,8 @@ import services.sui.SUIWindow.Trigger; @SuppressWarnings("unused") public class ObjectService implements INetworkDispatch { - private Map objectList = new ConcurrentHashMap(); + //private Map objectList = new ConcurrentHashMap(); + private Map objectList = new ObjectList(); private NGECore core; private DatabaseConnection databaseConnection; private AtomicLong highestId = new AtomicLong(); @@ -426,7 +427,13 @@ public class ObjectService implements INetworkDispatch { loadServerTemplateTasks.add(() -> loadServerTemplate(pointer)); } - objectList.put(objectID, object); + SWGObject ret = objectList.put(objectID, object); + + //if (ret != null && !ret.getTemplate().equals(object.getTemplate())) { + if (ret == null) { + //System.err.println("ObjectService: Detected duplicate Id. Assigning new one.") + object = createObject(Template, objectID, planet, position, orientation, customServerTemplate, overrideSnapshot, loadServerTemplate); + } return object; } From 5daf46f773a497e2b16b95e316e45cd47ae826c8 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 14 Jul 2014 01:00:08 -0400 Subject: [PATCH 33/51] Added null client check before sending radials. --- src/services/sui/SUIService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/sui/SUIService.java b/src/services/sui/SUIService.java index 5d6118d5..6b7a6fce 100644 --- a/src/services/sui/SUIService.java +++ b/src/services/sui/SUIService.java @@ -82,7 +82,7 @@ public class SUIService implements INetworkDispatch { SWGObject target = core.objectService.getObject(request.getTargetId()); SWGObject owner = core.objectService.getObject(request.getCharacterId()); - if(target == null || owner == null) + if(target == null || owner == null || owner.getClient() == null) return; // if (getRadialFilename(target).equals("noradialoptions")) From 93f99d981c922c1cac9d471affc5b8cdfd507bb4 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Mon, 14 Jul 2014 09:19:35 +0200 Subject: [PATCH 34/51] Added a basic combat data recorder --- src/services/combat/CombatRecorder.java | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/services/combat/CombatRecorder.java diff --git a/src/services/combat/CombatRecorder.java b/src/services/combat/CombatRecorder.java new file mode 100644 index 00000000..05a4909a --- /dev/null +++ b/src/services/combat/CombatRecorder.java @@ -0,0 +1,54 @@ +package services.combat; + +public class CombatRecorder { + private long deathCount = 0; + private long killCount = 0; + private long assistCount = 0; + private long damageDealt = 0; + private long damageReceived = 0; + private long healingDone = 0; + private long healingReceived = 0; + + public long getDeathCount() { + return deathCount; + } + public void setDeathCount(long deathCount) { + this.deathCount = deathCount; + } + public long getKillCount() { + return killCount; + } + public void setKillCount(long killCount) { + this.killCount = killCount; + } + public long getAssistCount() { + return assistCount; + } + public void setAssistCount(long assistCount) { + this.assistCount = assistCount; + } + public long getDamageDealt() { + return damageDealt; + } + public void setDamageDealt(long damageDealt) { + this.damageDealt = damageDealt; + } + public long getDamageReceived() { + return damageReceived; + } + public void setDamageReceived(long damageReceived) { + this.damageReceived = damageReceived; + } + public long getHealingDone() { + return healingDone; + } + public void setHealingDone(long healingDone) { + this.healingDone = healingDone; + } + public long getHealingReceived() { + return healingReceived; + } + public void setHealingReceived(long healingReceived) { + this.healingReceived = healingReceived; + } +} From 85369cd9389aad476b50f9e05f976d0b709a8cd3 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 14 Jul 2014 10:23:57 -0400 Subject: [PATCH 35/51] Added missing flip in ErrorMessage packet, Added null session checks before attempting to login players This commit should also fix the never-ending "Connecting to Galaxy..." loop. It should also be noted that for some reason any ErrorMessage packet sent before a player is logged in always says that the "Login Server is unavailable at this time". --- src/protocol/swg/ErrorMessage.java | 2 +- src/services/LoginService.java | 30 ++++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/protocol/swg/ErrorMessage.java b/src/protocol/swg/ErrorMessage.java index 507561b9..02c4ad00 100644 --- a/src/protocol/swg/ErrorMessage.java +++ b/src/protocol/swg/ErrorMessage.java @@ -49,6 +49,6 @@ public class ErrorMessage extends SWGMessage { result.put(getAsciiString(errorMessage)); result.put((byte)0); - return result; + return result.flip(); } } diff --git a/src/services/LoginService.java b/src/services/LoginService.java index eb843410..0b7bcd0b 100644 --- a/src/services/LoginService.java +++ b/src/services/LoginService.java @@ -92,6 +92,11 @@ public class LoginService implements INetworkDispatch{ public void handlePacket(IoSession session, IoBuffer data) throws Exception { + if (session == null) { + System.out.println("Login attempted with NULL session!"); + return; + } + data = data.order(ByteOrder.LITTLE_ENDIAN); LoginClientId clientID = new LoginClientId(); data.position(0); @@ -116,16 +121,19 @@ public class LoginService implements INetworkDispatch{ err = "user is banned"; break; } - ErrorMessage errMsg = new ErrorMessage("Invalid Login", err); + + // No matter what, this will always show that the login server is unavailable at this time. Removing the error message will just keep the connecting message up. + ErrorMessage errMsg = new ErrorMessage("Wrong Password", "The username or password you entered was incorrect."); session.write(errMsg.serialize()); + Disconnect disconnect = new Disconnect((Integer)session.getAttribute("connectionId"), 6); session.write(disconnect); - session.close(false); + + // Closing the session for some reason will not show any error messages, even if write messages are queued.. + //As result, the infinite "Connecting to galaxy..." loop., also it randomly denies any logins from that client for some reason return; } - System.out.println(user + " successfully logged in."); - Client client = new Client(session.getRemoteAddress()); client.setAccountName(user); client.setPassword(pass); @@ -137,6 +145,16 @@ public class LoginService implements INetworkDispatch{ core.addClient(session, client); + if (!core.getActiveConnectionsMap().containsKey(session)) { + Disconnect disconnect = new Disconnect((Integer)session.getAttribute("connectionId"), 6); + session.write(disconnect); + ErrorMessage errMsg = new ErrorMessage("Error Logging In", "Your client could not be added to the connections at this time."); + session.write(errMsg.serialize()); + session.close(false); + + System.out.println(client.getAccountName() + " was not added to active connections map."); + return; + } /*if(!checkIfAccountExistInGameDB(id)) { createAccountForGameDB(id, user, email, encryptPass); }*/ @@ -153,9 +171,7 @@ public class LoginService implements INetworkDispatch{ ServerNowEpochTime time = new ServerNowEpochTime((int) (System.currentTimeMillis() / 1000)); if (client.getSession().containsAttribute("tradeSession") == true) { - System.out.println("Has attribute: " + session.getAttribute("tradeSession").toString()); client.getSession().removeAttribute("tradeSession"); - System.out.println("Removed tradeSession Attribute @ LoginService.java"); } session.write(time.serialize()); @@ -165,6 +181,8 @@ public class LoginService implements INetworkDispatch{ session.write(serverStatus.serialize()); session.write(jediSlot.serialize()); session.write(characters.serialize()); + + System.out.println(user + " successfully logged in."); } }); From 851d0fd22354418b9e5828bda9a8b1c809061543 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 14 Jul 2014 10:33:32 -0400 Subject: [PATCH 36/51] part of previous commit --- src/services/LoginService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/LoginService.java b/src/services/LoginService.java index 0b7bcd0b..2f815fdb 100644 --- a/src/services/LoginService.java +++ b/src/services/LoginService.java @@ -130,7 +130,7 @@ public class LoginService implements INetworkDispatch{ session.write(disconnect); // Closing the session for some reason will not show any error messages, even if write messages are queued.. - //As result, the infinite "Connecting to galaxy..." loop., also it randomly denies any logins from that client for some reason + //As result, the infinite "Connection to the login server is now open..." loop., also it randomly denies any logins from that client for some reason return; } From 7e1d0b99a9279fc3889415778b14dc965cc4b450 Mon Sep 17 00:00:00 2001 From: Treeku Date: Tue, 15 Jul 2014 06:16:26 +0100 Subject: [PATCH 37/51] Fixed warnings --- .../swg/objectControllerObjects/ObjectMenuDirty.java | 10 +--------- src/resources/common/Forager.java | 5 ++--- src/resources/objects/SWGList.java | 2 -- .../factorycrate/FactoryCrateMessageBuilder.java | 2 +- src/resources/objects/mission/MissionObject.java | 1 - src/resources/objects/resource/GalacticResource.java | 3 +++ src/resources/objects/tangible/TangibleObject.java | 1 - src/services/BrowserService.java | 2 ++ src/services/GuildService.java | 2 +- src/services/StaticService.java | 1 + src/services/SurveyService.java | 2 ++ src/services/TreasureService.java | 3 +++ src/services/ai/AIActor.java | 6 +++--- src/services/ai/AIService.java | 2 +- src/services/ai/LairActor.java | 1 + src/services/ai/states/AIState.java | 3 ++- src/services/bazaar/BazaarService.java | 6 +++++- src/services/chat/ChatService.java | 1 - src/services/equipment/EquipmentService.java | 6 ++++-- src/services/housing/HousingService.java | 9 +++++++-- src/services/mission/MissionService.java | 3 --- src/services/object/ObjectService.java | 2 +- src/services/pet/MountService.java | 2 -- src/services/pet/PetService.java | 4 ++-- src/services/resources/HarvesterService.java | 2 ++ src/services/resources/ResourceService.java | 1 + .../reverseengineering/ReverseEngineeringService.java | 4 ++-- src/services/travel/TravelPoint.java | 2 +- src/services/travel/TravelService.java | 2 -- src/tools/CharonPacketUtils.java | 1 + src/tools/DevLog.java | 1 + 31 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/protocol/swg/objectControllerObjects/ObjectMenuDirty.java b/src/protocol/swg/objectControllerObjects/ObjectMenuDirty.java index 79a0c9c4..94ca5670 100644 --- a/src/protocol/swg/objectControllerObjects/ObjectMenuDirty.java +++ b/src/protocol/swg/objectControllerObjects/ObjectMenuDirty.java @@ -25,10 +25,6 @@ import java.nio.ByteOrder; import org.apache.mina.core.buffer.IoBuffer; -import protocol.swg.ObjControllerMessage; - - - public class ObjectMenuDirty extends ObjControllerObject { private long characterId; @@ -37,13 +33,11 @@ public class ObjectMenuDirty extends ObjControllerObject { this.characterId = characterId; } - - @Override public void deserialize(IoBuffer buffer) { } - + @Override public IoBuffer serialize() { IoBuffer result = IoBuffer.allocate(45).order(ByteOrder.LITTLE_ENDIAN); @@ -58,6 +52,4 @@ public class ObjectMenuDirty extends ObjControllerObject { // 0000: 05 00 46 5E CE 80 1B 00 00 00 2B 02 00 00 7C 0E ..F^......+...|. // 0010: 31 D6 41 00 00 00 00 00 00 00 1.A....... - - } diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java index bbeb532d..48a26ca5 100644 --- a/src/resources/common/Forager.java +++ b/src/resources/common/Forager.java @@ -37,8 +37,6 @@ import resources.objects.creature.CreatureObject; import resources.objects.group.GroupObject; import resources.objects.tangible.TangibleObject; import services.ai.AIActor; -import services.ai.states.FollowState; -import tools.DevLog; /** * @author Charon @@ -127,6 +125,7 @@ public class Forager { } + @SuppressWarnings("unused") public boolean handleForageResults(CreatureObject forager){ // determine foraged object SWGObject foragerInventory = forager.getSlottedObject("inventory"); @@ -547,7 +546,7 @@ public class Forager { public void configureTreasureLoot(TangibleObject treasureContainer, CreatureObject owner, short spawnLevel){ - List lootgroups = new ArrayList(); + @SuppressWarnings("unused") List lootgroups = new ArrayList(); String levelRange = "61"; diff --git a/src/resources/objects/SWGList.java b/src/resources/objects/SWGList.java index ffa34897..3b13e6cc 100644 --- a/src/resources/objects/SWGList.java +++ b/src/resources/objects/SWGList.java @@ -23,7 +23,6 @@ package resources.objects; import java.io.Serializable; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Comparator; import java.util.Iterator; @@ -39,7 +38,6 @@ import java.util.stream.Stream; import org.apache.mina.core.buffer.IoBuffer; import org.python.google.common.collect.Lists; -import engine.resources.common.StringUtilities; import engine.resources.objects.Baseline; import engine.resources.objects.Delta; import engine.resources.objects.IDelta; diff --git a/src/resources/objects/factorycrate/FactoryCrateMessageBuilder.java b/src/resources/objects/factorycrate/FactoryCrateMessageBuilder.java index 4085f8e7..5f33749c 100644 --- a/src/resources/objects/factorycrate/FactoryCrateMessageBuilder.java +++ b/src/resources/objects/factorycrate/FactoryCrateMessageBuilder.java @@ -93,7 +93,7 @@ public class FactoryCrateMessageBuilder extends TangibleMessageBuilder{ } public IoBuffer buildBaseline6() { - FactoryCrateObject factoryCrateObject = (FactoryCrateObject) object; + @SuppressWarnings("unused") FactoryCrateObject factoryCrateObject = (FactoryCrateObject) object; IoBuffer buffer = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN); buffer.setAutoExpand(true); diff --git a/src/resources/objects/mission/MissionObject.java b/src/resources/objects/mission/MissionObject.java index 010d9654..1cab747d 100644 --- a/src/resources/objects/mission/MissionObject.java +++ b/src/resources/objects/mission/MissionObject.java @@ -27,7 +27,6 @@ import main.NGECore; import org.apache.mina.core.buffer.IoBuffer; -import resources.objectives.DefaultMissionObjective; import resources.objects.intangible.IntangibleObject; import resources.objects.waypoint.WaypointObject; import services.mission.MissionLocation; diff --git a/src/resources/objects/resource/GalacticResource.java b/src/resources/objects/resource/GalacticResource.java index eff19d01..cff11776 100644 --- a/src/resources/objects/resource/GalacticResource.java +++ b/src/resources/objects/resource/GalacticResource.java @@ -99,8 +99,11 @@ public class GalacticResource extends SWGObject implements Serializable { private byte poolNumber; + @SuppressWarnings("unused") private String stfName; + @SuppressWarnings("unused") private String iffName; + @SuppressWarnings("unused") private int type; private byte generalType; private byte containerType; diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index 7ee29c12..328a23cb 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -48,7 +48,6 @@ import resources.objects.ObjectMessageBuilder; import resources.objects.SWGList; import resources.objects.SWGSet; import resources.objects.creature.CreatureObject; -import tools.DevLog; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.IDManagerVisitor; import engine.clients.Client; diff --git a/src/services/BrowserService.java b/src/services/BrowserService.java index 1d649bde..2b401038 100644 --- a/src/services/BrowserService.java +++ b/src/services/BrowserService.java @@ -22,6 +22,7 @@ package services; import java.util.Map; + import protocol.swg.LaunchBrowserMessage; import resources.objects.creature.CreatureObject; import main.NGECore; @@ -30,6 +31,7 @@ import engine.resources.service.INetworkRemoteEvent; public class BrowserService implements INetworkDispatch { + @SuppressWarnings("unused") private NGECore core; public BrowserService(NGECore core) { diff --git a/src/services/GuildService.java b/src/services/GuildService.java index 3676e36a..19fc82c3 100644 --- a/src/services/GuildService.java +++ b/src/services/GuildService.java @@ -207,7 +207,7 @@ public class GuildService implements INetworkDispatch { if (name == "" || name == " ") return; - SWGObject transferTarget = core.chatService.getObjectByFirstName(name); + SWGObject transferTarget = core.objectService.getObjectByFirstName(name); //chatService.getObjectByFirstName(name); if (transferTarget == null) { actor.sendSystemMessage("@guild:ml_not_loaded", DisplayType.Broadcast); diff --git a/src/services/StaticService.java b/src/services/StaticService.java index e40a8619..97be0a13 100644 --- a/src/services/StaticService.java +++ b/src/services/StaticService.java @@ -115,6 +115,7 @@ public class StaticService implements INetworkDispatch { return spawnObject(template, planetName, ((cell == null) ? 0L : cell.getObjectID()), x, y, z, qW, qX, qY, qZ, respawnTime); } + @SuppressWarnings("unused") public SWGObject spawnObject(String template, String planetName, long cellId, float x, float y, float z, float qW, float qX, float qY, float qZ, int respawnTime) { Planet planet = core.terrainService.getPlanetByName(planetName); diff --git a/src/services/SurveyService.java b/src/services/SurveyService.java index ff01a6fb..030a85ff 100644 --- a/src/services/SurveyService.java +++ b/src/services/SurveyService.java @@ -64,6 +64,7 @@ public class SurveyService implements INetworkDispatch { } + @SuppressWarnings("unused") public void scheduleSurveyService(){ final ScheduledFuture task = scheduler.scheduleAtFixedRate(new Runnable() { @@ -130,6 +131,7 @@ public class SurveyService implements INetworkDispatch { } } + @SuppressWarnings("unused") public void handleSamplingStages(SurveyTool surveyTool){ if (surveyTool.isExceptionalState()) diff --git a/src/services/TreasureService.java b/src/services/TreasureService.java index d567871c..7c79540d 100644 --- a/src/services/TreasureService.java +++ b/src/services/TreasureService.java @@ -28,6 +28,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; + import main.NGECore; import engine.resources.objects.SWGObject; import engine.resources.service.INetworkDispatch; @@ -35,6 +36,7 @@ import engine.resources.service.INetworkRemoteEvent; public class TreasureService implements INetworkDispatch { + @SuppressWarnings("unused") private NGECore core; private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); @@ -51,6 +53,7 @@ public class TreasureService implements INetworkDispatch { } + @SuppressWarnings("unused") public void scheduleTreasureService(){ final ScheduledFuture task = scheduler.scheduleAtFixedRate(new Runnable() { diff --git a/src/services/ai/AIActor.java b/src/services/ai/AIActor.java index 477dcd67..f17a7741 100644 --- a/src/services/ai/AIActor.java +++ b/src/services/ai/AIActor.java @@ -83,9 +83,9 @@ public class AIActor { private long waitStartTime = 0L; private AIState intendedPrimaryAIState; private Point3D lastPositionBeforeStateChange; - private ScheduledFuture movementFuture; - private ScheduledFuture recoveryFuture; - private ScheduledFuture despawnFuture; + private ScheduledFuture movementFuture; + private ScheduledFuture recoveryFuture; + private ScheduledFuture despawnFuture; public AIActor(CreatureObject creature, Point3D spawnPosition, ScheduledExecutorService scheduler) { this.creature = creature; diff --git a/src/services/ai/AIService.java b/src/services/ai/AIService.java index b492da20..45ad9279 100644 --- a/src/services/ai/AIService.java +++ b/src/services/ai/AIService.java @@ -43,7 +43,7 @@ import main.NGECore; public class AIService { - private Vector aiActors = new Vector(); + @SuppressWarnings("unused") private Vector aiActors = new Vector(); private NGECore core; public AIService(NGECore core) { diff --git a/src/services/ai/LairActor.java b/src/services/ai/LairActor.java index 87e5940b..56fa0ac5 100644 --- a/src/services/ai/LairActor.java +++ b/src/services/ai/LairActor.java @@ -157,6 +157,7 @@ public class LairActor { } + @SuppressWarnings("unused") private void healLair() { if(lairObject.getConditionDamage() == 0 || creatures.isEmpty()) diff --git a/src/services/ai/states/AIState.java b/src/services/ai/states/AIState.java index 15d68dd5..ac25ae37 100644 --- a/src/services/ai/states/AIState.java +++ b/src/services/ai/states/AIState.java @@ -195,7 +195,7 @@ public abstract class AIState { float maxDistance = stopDistance; boolean finished = false; float dx, dz, newX = 0, newY = 0, newZ = 0; - Vector movementPoints = actor.getMovementPoints(); + @SuppressWarnings("unused") Vector movementPoints = actor.getMovementPoints(); CellObject cell = null; targetPosition = actor.getLoiterDestination(); @@ -654,6 +654,7 @@ public abstract class AIState { } + @SuppressWarnings("unused") public void doFollow(AIActor actor) { //NGECore.getInstance().aiService.logAI("AI STATE doPatrol"); NGECore core = NGECore.getInstance(); diff --git a/src/services/bazaar/BazaarService.java b/src/services/bazaar/BazaarService.java index 0956c417..e998ba7f 100644 --- a/src/services/bazaar/BazaarService.java +++ b/src/services/bazaar/BazaarService.java @@ -40,6 +40,9 @@ import java.util.concurrent.TimeUnit; + + + import main.NGECore; import engine.clients.Client; import engine.resources.common.CRC; @@ -112,6 +115,7 @@ public class BazaarService implements INetworkDispatch { cursor.close(); } + @SuppressWarnings("unused") @Override public void insertOpcodes(Map swgOpcodes, Map objControllerOpcodes) { @@ -765,7 +769,7 @@ public class BazaarService implements INetworkDispatch { return; } - AuctionItem auctionItem = createAuctionItem(player, vendor, item, price, description, duration, auction, premium); + @SuppressWarnings("unused") AuctionItem auctionItem = createAuctionItem(player, vendor, item, price, description, duration, auction, premium); core.objectService.destroyObject(item); diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index ae7d1615..f45ef334 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -50,7 +50,6 @@ import resources.common.*; import resources.datatables.DisplayType; import resources.guild.Guild; import resources.objects.creature.CreatureObject; -import resources.objects.group.GroupObject; import resources.objects.player.PlayerObject; import protocol.swg.AddIgnoreMessage; import protocol.swg.ObjControllerMessage; diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index c6d93c85..f5220c53 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -386,13 +386,15 @@ public class EquipmentService implements INetworkDispatch { // Get our lightsaber weapon object if(item.getContainer().getTemplate().startsWith("object/tangible/inventory/shared_lightsaber_inventory")) lightsaber = (WeaponObject) item.getGrandparent(); else if(targetContainer.getTemplate().startsWith("object/tangible/inventory/shared_lightsaber_inventory")) lightsaber = (WeaponObject) targetContainer.getContainer(); + + if(lightsaber == null) return; + lightsaberInventory = (TangibleObject) lightsaber.getSlottedObject("saber_inv"); if(lightsaber.getAttachment("weaponBaseDamageMin") == null) lightsaber.setAttachment("weaponBaseDamageMin", lightsaber.getMinDamage()); if(lightsaber.getAttachment("weaponBaseDamageMax") == null) lightsaber.setAttachment("weaponBaseDamageMax", lightsaber.getMaxDamage()); // Check if item is a lightsaber component - if(lightsaber == null) return; if(lightsaberInventory == null) return; if(lightsaber.getContainer() instanceof CreatureObject) { @@ -435,7 +437,7 @@ public class EquipmentService implements INetworkDispatch { lightsaberInventory.viewChildren(lightsaberInventory, false, false, new Traverser() { WeaponObject saber; - TangibleObject saberInv; + @SuppressWarnings("unused") TangibleObject saberInv; int minDamageBonus = 0; int maxDamageBonus = 0; diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index 85856af7..00070c47 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -46,7 +46,6 @@ import resources.common.OutOfBand; import resources.datatables.Citizenship; import resources.datatables.DisplayType; import resources.objects.building.BuildingObject; -import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; import resources.objects.harvester.HarvesterObject; import resources.objects.installation.InstallationObject; @@ -117,7 +116,7 @@ public class HousingService implements INetworkDispatch { //PlayerCity city = core.playerCityService.getCityPositionIsIn(new Point3D(positionX, 0, positionZ)); // This function is not implemented, so it had to be commented out, because it resulted in an error // Whoever wrote this, should still add the method to playerCityService, then it can be uncommented here. - PlayerCity city = null; + @SuppressWarnings("unused") PlayerCity city = null; if (!houseTemplate.canBePlacedOn(actor.getPlanet().getName())) { actor.sendSystemMessage("You may not place this structure on this planet.", (byte) 0); // should probably load this from an stf return null; @@ -128,10 +127,12 @@ public class HousingService implements INetworkDispatch { return null; } + /* This will always be null, so has no use... if(city != null && !city.hasZoningRights(actor)) { actor.sendSystemMessage("@player_structure:no_rights", (byte) 0); return null; } + */ // Lot stuff if (!actor.getPlayerObject().deductLots(structureLotCost)) { @@ -180,9 +181,11 @@ public class HousingService implements INetworkDispatch { building.setMaintenanceAmount(houseTemplate.getBaseMaintenanceRate()); building.setDestructionFee(houseTemplate.getDestructionFee()); + /* This will always be null, so has no use... if(city != null) { city.addNewStructure(building.getObjectID()); } + */ /* // Check for city founders joining a new city @@ -272,6 +275,7 @@ public class HousingService implements INetworkDispatch { } + @SuppressWarnings("unchecked") public void saveBuildings() { core.objectService.getObjectList() .values().stream() @@ -669,6 +673,7 @@ public class HousingService implements INetworkDispatch { } } + @SuppressWarnings("unused") public void handleListAllItems(SWGObject owner, TangibleObject target) { final BuildingObject building = (BuildingObject) target.getGrandparent(); //final BuildingObject building = (BuildingObject) target.getAttachment("housing_parentstruct"); diff --git a/src/services/mission/MissionService.java b/src/services/mission/MissionService.java index f5fcfa09..ac6c45f8 100644 --- a/src/services/mission/MissionService.java +++ b/src/services/mission/MissionService.java @@ -44,7 +44,6 @@ import protocol.swg.objectControllerObjects.MissionAcceptRequest; import protocol.swg.objectControllerObjects.MissionAcceptResponse; import protocol.swg.objectControllerObjects.MissionListRequest; import resources.common.BountyListItem; -import resources.common.SpawnPoint; import resources.common.ObjControllerOpcodes; import services.mission.CommonerSpawn; import resources.objectives.BountyMissionObjective; @@ -54,8 +53,6 @@ import resources.objectives.SurveyMissionObjective; import resources.objects.creature.CreatureObject; import resources.objects.mission.MissionObject; import resources.objects.player.PlayerObject; -import resources.objects.resource.GalacticResource; -import resources.objects.resource.ResourceRoot; import resources.objects.tangible.TangibleObject; import engine.clientdata.StfTable; import engine.clients.Client; diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 52f5fcc7..c3d7a54a 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -1103,7 +1103,7 @@ public class ObjectService implements INetworkDispatch { // Find out what friends are online/offline for (String friend : ghost.getFriendList()) { - SWGObject friendObject = core.chatService.getObjectByFirstName(friend); + SWGObject friendObject = core.objectService.getObjectByFirstName(friend); if(friendObject != null && friendObject.isInQuadtree()) { ChatFriendsListUpdate onlineNotifyStatus = new ChatFriendsListUpdate(friend, (byte) 1); diff --git a/src/services/pet/MountService.java b/src/services/pet/MountService.java index 082b6541..0223e132 100644 --- a/src/services/pet/MountService.java +++ b/src/services/pet/MountService.java @@ -39,13 +39,11 @@ import resources.datatables.State; import resources.objects.building.BuildingObject; import resources.objects.creature.CreatureObject; import resources.objects.player.PlayerObject; -import services.ai.AIActor; import tools.DevLog; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.DatatableVisitor; import engine.resources.container.Traverser; import engine.resources.objects.SWGObject; -import engine.resources.scene.Planet; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; diff --git a/src/services/pet/PetService.java b/src/services/pet/PetService.java index 249be17f..f2845bc4 100644 --- a/src/services/pet/PetService.java +++ b/src/services/pet/PetService.java @@ -37,8 +37,6 @@ import resources.datatables.DisplayType; import resources.datatables.Options; import resources.datatables.Posture; import resources.datatables.State; -import resources.objects.SWGList; -import resources.objects.SWGSet; import resources.objects.building.BuildingObject; import resources.objects.creature.CreatureObject; import resources.objects.player.PlayerObject; @@ -230,6 +228,7 @@ public class PetService implements INetworkDispatch { // } } + @SuppressWarnings("unused") private void callVehicle(CreatureObject actor, SWGObject pcd, PlayerObject player, CreatureObject mount) { if ((mount.getLevel() - actor.getLevel()) > 5) { actor.sendSystemMessage(OutOfBand.ProsePackage("@pet/pet_menu:cant_call_level"), DisplayType.Broadcast); @@ -299,6 +298,7 @@ public class PetService implements INetworkDispatch { player.setCallingCompanion(false); } + @SuppressWarnings("unused") private void callMount(CreatureObject actor, SWGObject pcd, PlayerObject player, CreatureObject mount) { return; // NOT IMPLEMENTED } diff --git a/src/services/resources/HarvesterService.java b/src/services/resources/HarvesterService.java index 237674c3..96b68aad 100644 --- a/src/services/resources/HarvesterService.java +++ b/src/services/resources/HarvesterService.java @@ -131,6 +131,7 @@ public class HarvesterService implements INetworkDispatch { objControllerOpcodes.put(ObjControllerOpcodes.RESOURCE_EMPTY_HOPPER, new INetworkRemoteEvent() { + @SuppressWarnings("unused") @Override public void handlePacket(IoSession session, IoBuffer data) throws Exception { data.order(ByteOrder.LITTLE_ENDIAN); @@ -905,6 +906,7 @@ public class HarvesterService implements INetworkDispatch { owner.getClient().getSession().write(messenger.buildHINO7ExperimentalDelta2((HarvesterObject)target)); } + @SuppressWarnings("unused") public void updateHarvester(HarvesterObject harvester){ CreatureObject owner = (CreatureObject)core.objectService.getObject(harvester.getOwner()); diff --git a/src/services/resources/ResourceService.java b/src/services/resources/ResourceService.java index 83e26f90..fd5330ce 100644 --- a/src/services/resources/ResourceService.java +++ b/src/services/resources/ResourceService.java @@ -49,6 +49,7 @@ import services.ai.AIActor; * @author Charon */ +@SuppressWarnings("unused") public class ResourceService implements INetworkDispatch { private NGECore core; diff --git a/src/services/reverseengineering/ReverseEngineeringService.java b/src/services/reverseengineering/ReverseEngineeringService.java index ad9e44b8..c6cb2e2e 100644 --- a/src/services/reverseengineering/ReverseEngineeringService.java +++ b/src/services/reverseengineering/ReverseEngineeringService.java @@ -3228,7 +3228,7 @@ public class ReverseEngineeringService implements INetworkDispatch { } } - @SuppressWarnings("unchecked") + @SuppressWarnings({ "unchecked", "unused" }) public void createSEA(CreatureObject engineer, TangibleObject retool){ PlayerObject player = (PlayerObject) engineer.getSlottedObject("ghost"); String profession = player.getProfession(); @@ -3463,7 +3463,7 @@ public class ReverseEngineeringService implements INetworkDispatch { } public void applyPowerUp(TangibleObject powerUpObject, long objectID){ - TangibleObject object = (TangibleObject)core.objectService.getObject(objectID); + @SuppressWarnings("unused") TangibleObject object = (TangibleObject)core.objectService.getObject(objectID); } diff --git a/src/services/travel/TravelPoint.java b/src/services/travel/TravelPoint.java index fb188f36..ca074d35 100644 --- a/src/services/travel/TravelPoint.java +++ b/src/services/travel/TravelPoint.java @@ -39,7 +39,7 @@ public class TravelPoint { private CreatureObject shuttle; private boolean shuttleAvailable; private boolean shuttleLanding; - private int secondsRemaining; + @SuppressWarnings("unused") private int secondsRemaining; private boolean shuttleDeparting; private ExecutorService scheduler = Executors.newFixedThreadPool(1); private long departureTimestamp; diff --git a/src/services/travel/TravelService.java b/src/services/travel/TravelService.java index a3339eef..14fe66b7 100644 --- a/src/services/travel/TravelService.java +++ b/src/services/travel/TravelService.java @@ -28,8 +28,6 @@ import java.util.Map; import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import org.apache.commons.lang3.text.WordUtils; diff --git a/src/tools/CharonPacketUtils.java b/src/tools/CharonPacketUtils.java index 08adea22..65925d78 100644 --- a/src/tools/CharonPacketUtils.java +++ b/src/tools/CharonPacketUtils.java @@ -21,6 +21,7 @@ import org.apache.mina.core.buffer.IoBuffer; * @author Charon */ +@SuppressWarnings("unused") public class CharonPacketUtils { private static int loggingSessionID=0; diff --git a/src/tools/DevLog.java b/src/tools/DevLog.java index 5a5c1a64..c12a3aa5 100644 --- a/src/tools/DevLog.java +++ b/src/tools/DevLog.java @@ -39,6 +39,7 @@ import java.util.Map; * @author Charon */ +@SuppressWarnings("unused") public class DevLog { private static int loggingSessionID=0; From 27371a6a4b2f134bd9407caa6108df4d88063b55 Mon Sep 17 00:00:00 2001 From: Treeku Date: Tue, 15 Jul 2014 06:22:35 +0100 Subject: [PATCH 38/51] Read more... - Fixed issue where player's building was manipulated instead of the player themself. --- src/services/object/ObjectService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index c3d7a54a..8068fed9 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -649,7 +649,7 @@ public class ObjectService implements INetworkDispatch { if(obj.getCustomName() == null) continue; if(obj.getCustomName().startsWith(customName) || obj.getCustomName().toUpperCase().startsWith(WordUtils.capitalize(customName))) - return obj; + return ((obj instanceof CreatureObject) ? obj : null); } } @@ -664,7 +664,7 @@ public class ObjectService implements INetworkDispatch { } if (object.getCustomName() != null && customName.length() > 0 && (object.getCustomName().startsWith(customName) || object.getCustomName().toUpperCase().startsWith(WordUtils.capitalize(customName)))) { - return object; + return ((object instanceof CreatureObject) ? object : null); } } cursor.close(); From a4f8c8b98ad09c94a693053c7b7c845164ad2c40 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 15 Jul 2014 10:17:15 -0400 Subject: [PATCH 39/51] Changed getObjectByFirstName to check the sql datatable instead of the SWGODB Added a null/empty name check for players logging in - this will prevent people who have not been saved to the database correctly from logging in (thus this fixes the strange name problems) --- src/services/object/ObjectService.java | 49 +++++++++++++------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 8068fed9..eae7708d 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -66,6 +66,7 @@ import com.sleepycat.persist.model.PrimaryKey; import protocol.swg.CmdSceneReady; import protocol.swg.CmdStartScene; +import protocol.swg.ErrorMessage; import protocol.swg.HeartBeatMessage; import protocol.swg.ObjControllerMessage; import protocol.swg.ParametersMessage; @@ -642,32 +643,28 @@ public class ObjectService implements INetworkDispatch { return null; } - synchronized(objectList) { - for(SWGObject obj : objectList.values()) { - if(obj == null) - continue; - if(obj.getCustomName() == null) - continue; - if(obj.getCustomName().startsWith(customName) || obj.getCustomName().toUpperCase().startsWith(WordUtils.capitalize(customName))) - return ((obj instanceof CreatureObject) ? obj : null); + if (customName.contains(" ")) + customName = customName.split(" ")[0]; + + try { + PreparedStatement ps = core.getDatabase1().preparedStatement("SELECT * FROM characters WHERE \"firstName\"=?"); + ps.setString(1, customName); + ResultSet resultSet = ps.executeQuery(); + + while (resultSet.next()) { + long objectId = resultSet.getLong("id"); + SWGObject object = getObject(objectId); + + System.out.println("Got object id of " + objectId); + if (object == null) + object = getCreatureFromDB(objectId); + + return object; } - + } catch (SQLException e) { + e.printStackTrace(); } - ODBCursor cursor = core.getSWGObjectODB().getCursor(); - - while (cursor.hasNext()) { - SWGObject object = (SWGObject) cursor.next(); - - if (object == null) { - continue; - } - - if (object.getCustomName() != null && customName.length() > 0 && (object.getCustomName().startsWith(customName) || object.getCustomName().toUpperCase().startsWith(WordUtils.capitalize(customName)))) { - return ((object instanceof CreatureObject) ? object : null); - } - } - cursor.close(); return null; } @@ -990,6 +987,11 @@ public class ObjectService implements INetworkDispatch { creature = getCreatureFromDB(objectId); if(creature == null) { System.out.println("Cant get creature from db"); + } else { + if (creature.getCustomName() == null || creature.getCustomName() == "") { + System.out.println("Player with ObjID of " + creature.getObjectID() + " tried logging in but has a null/empty name!"); + return; + } } } else { @@ -1001,7 +1003,6 @@ public class ObjectService implements INetworkDispatch { if(creature.getAttachment("disconnectTask") != null && creature.getClient() != null && !creature.getClient().getSession().isClosing()) return; - } if(creature.getAttachment("disconnectTask") != null) { ((ScheduledFuture) creature.getAttachment("disconnectTask")).cancel(true); From ba5ae88215d085c236845825e994728d4e757114 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 15 Jul 2014 10:20:08 -0400 Subject: [PATCH 40/51] part of previous commit forgot to remove a debug print --- src/services/object/ObjectService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index eae7708d..6037d7d7 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -655,7 +655,6 @@ public class ObjectService implements INetworkDispatch { long objectId = resultSet.getLong("id"); SWGObject object = getObject(objectId); - System.out.println("Got object id of " + objectId); if (object == null) object = getCreatureFromDB(objectId); From 7a872abf83bf278e06052b7c264a0cc1a24a7307 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 15 Jul 2014 11:53:32 -0400 Subject: [PATCH 41/51] Changed setMoodAnimation to no longer send delta temporarily Packet captures logs on the Test Center show multiple times that the moodAnimation delta is being sent more than once (sometimes 5+ times for the same objId) - disabled for now to see what happens. --- src/resources/objects/creature/CreatureObject.java | 4 ++-- src/services/EntertainmentService.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index e65109d7..332d1731 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -884,8 +884,8 @@ public class CreatureObject extends TangibleObject implements Serializable { synchronized(objectMutex) { this.moodAnimation = moodAnimation; } - IoBuffer moodAnimationDelta = messageBuilder.buildMoodAnimationDelta(moodAnimation); - notifyObservers(moodAnimationDelta, true); + //IoBuffer moodAnimationDelta = messageBuilder.buildMoodAnimationDelta(moodAnimation); + //notifyObservers(moodAnimationDelta, true); } public long getWeaponId() { diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index 03545e38..7a9187f4 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -683,7 +683,7 @@ public class EntertainmentService implements INetworkDispatch { spectator.setPerformanceWatchee(performer); performer.addSpectator(spectator); - spectator.setMoodAnimation("entertained"); + //spectator.setMoodAnimation("entertained"); final ScheduledFuture spectatorTask = scheduler.scheduleAtFixedRate(() -> { try { @@ -699,7 +699,7 @@ public class EntertainmentService implements INetworkDispatch { spectator.sendSystemMessage("You stop listening to " + performer.getCustomName() + " because " + performer.getCustomName() + " is out of range.", (byte) 0); } - spectator.setMoodAnimation("neutral"); + //spectator.setMoodAnimation("neutral"); performer.removeSpectator(spectator); if (spectator.getInspirationTick().cancel(true)) From 20da6c69e0b59c220c487eca4927d0e67e35893f Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 15 Jul 2014 14:28:28 -0400 Subject: [PATCH 42/51] Fixed null errors associated when you stop watching an entertainer or go out of range --- src/services/EntertainmentService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/EntertainmentService.java b/src/services/EntertainmentService.java index 7a9187f4..e41dceb6 100644 --- a/src/services/EntertainmentService.java +++ b/src/services/EntertainmentService.java @@ -702,7 +702,10 @@ public class EntertainmentService implements INetworkDispatch { //spectator.setMoodAnimation("neutral"); performer.removeSpectator(spectator); - if (spectator.getInspirationTick().cancel(true)) + if (spectator.getInspirationTick() != null) + spectator.getInspirationTick().cancel(true); + + if (spectator.getSpectatorTask() != null) spectator.getSpectatorTask().cancel(true); } From 91bca3a6b4ddf3066bd5287e761f12df4a9a93d8 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Tue, 15 Jul 2014 14:58:58 -0400 Subject: [PATCH 43/51] Fixed KBT#82: Creating waypoints using the map creates a waypoint at current location only http://www.projectswg.com/sites/kreetle/view.php?id=82 --- scripts/commands/requestwaypointatposition.py | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/commands/requestwaypointatposition.py b/scripts/commands/requestwaypointatposition.py index 2acdedc3..dbe22502 100644 --- a/scripts/commands/requestwaypointatposition.py +++ b/scripts/commands/requestwaypointatposition.py @@ -1,12 +1,20 @@ import sys def setup(): - return - + return + def run(core, actor, target, commandString): - commandArgs = commandString.split("(^-,=+_)color_13548(,+-=_^)=1") - newString = commandArgs[0] + commandArgs = commandString.split(' ') + newString = None + # removes the strange varying color arguments the client sends to server + for arg in commandArgs: + if 'color' not in arg: + if newString is None: + newString = arg + else: + newString = newString + ' ' + arg - core.commandService.callCommand(actor, 'waypoint', None, newString) - return \ No newline at end of file + + core.commandService.callCommand(actor, 'waypoint', None, newString) + return \ No newline at end of file From 3aaf2c98ec9ca5e5ba695dfaf83950b52bb39e0a Mon Sep 17 00:00:00 2001 From: Mesagoppinmypants Date: Tue, 15 Jul 2014 15:10:28 -0400 Subject: [PATCH 44/51] Fixed File Name for Spy Roadmap Reward --- ...ap_chest_plate_02_01.py => armor_spy_roadmap_chest_02_01.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename scripts/object/tangible/wearables/armor/padded/{armor_spy_roadmap_chest_plate_02_01.py => armor_spy_roadmap_chest_02_01.py} (99%) diff --git a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_plate_02_01.py b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py similarity index 99% rename from scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_plate_02_01.py rename to scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py index c4475504..dd1bd6fb 100644 --- a/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_plate_02_01.py +++ b/scripts/object/tangible/wearables/armor/padded/armor_spy_roadmap_chest_02_01.py @@ -14,4 +14,4 @@ def setup(core, object): object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640) object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640) object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640) - return \ No newline at end of file + return From bec4a3a25cdddc82583e75caaa5373798ce70c42 Mon Sep 17 00:00:00 2001 From: tacef Date: Tue, 15 Jul 2014 21:50:05 +0200 Subject: [PATCH 45/51] Changed Some NPC spawn points to use loiter --- .../tatooine/mos_eisley_desert_swoopers.py | 26 +++++++++-- .../tatooine/mos_eisley_error_prone.py | 24 ++++++++-- .../tatooine/mos_eisley_escaped_criminal.py | 23 ++++++++-- .../tatooine/mos_eisley_gunrunners.py | 26 +++++++++-- .../tatooine/mos_eisley_kreetles.py | 27 ++++++++--- .../tatooine/mos_eisley_mites.py | 45 ++++++++++++++++--- .../tatooine/mos_eisley_scavenger.py | 25 ++++++++--- 7 files changed, 166 insertions(+), 30 deletions(-) diff --git a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py index 8aca297d..c952d0a1 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py +++ b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py @@ -1,17 +1,18 @@ -import sys # Project SWG: Mos Eisley Desert Swoopers: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService desert_swooper = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3319), float(5), float(-5125), float(0), float(0), float(0), float(0), 30) desert_swooper1 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3309), float(5), float(-5121), float(0), float(0), float(0), float(0), 30) @@ -32,5 +33,24 @@ def addPlanetSpawns(core, planet): desert_swooper_leader = stcSvc.spawnObject('desert_swooper_leader', 'tatooine', long(0), float(3313), float(5), float(-5138), float(0), float(0), float(0), float(0), 30) desert_swooper_leader1 = stcSvc.spawnObject('desert_swooper_leader', 'tatooine', long(0), float(3316), float(5), float(-5131), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(desert_swooper, float(1), float(8)) + aiSvc.setLoiter(desert_swooper1, float(1), float(8)) + aiSvc.setLoiter(desert_swooper2, float(1), float(8)) + aiSvc.setLoiter(desert_swooper3, float(1), float(8)) + aiSvc.setLoiter(desert_swooper4, float(1), float(8)) + aiSvc.setLoiter(desert_swooper5, float(1), float(8)) + aiSvc.setLoiter(desert_swooper6, float(1), float(8)) + aiSvc.setLoiter(desert_swooper7, float(1), float(8)) + aiSvc.setLoiter(desert_swooper8, float(1), float(8)) + aiSvc.setLoiter(desert_swooper9, float(1), float(8)) + aiSvc.setLoiter(desert_swooper10, float(1), float(8)) + aiSvc.setLoiter(desert_swooper11, float(1), float(8)) + aiSvc.setLoiter(desert_swooper12, float(1), float(8)) + aiSvc.setLoiter(desert_swooper13, float(1), float(8)) + aiSvc.setLoiter(desert_swooper14, float(1), float(8)) + + aiSvc.setLoiter(desert_swooper_leader, float(1), float(8)) + aiSvc.setLoiter(desert_swooper_leader1, float(1), float(8)) + return diff --git a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py index 90e68ac6..287f48b0 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py +++ b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py @@ -1,17 +1,18 @@ -import sys # Project SWG: Mos Eisley Error Prone Droids: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService error_prone = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2868), float(39), float(-4814), float(0), float(0), float(0), float(0), 30) error_prone1 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2815), float(38), float(-4815), float(0), float(0), float(0), float(0), 30) @@ -31,5 +32,22 @@ def addPlanetSpawns(core, planet): error_prone15 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2851), float(40), float(-4806), float(0), float(0), float(0), float(0), 30) error_prone16 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2871), float(38), float(-4799), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(error_prone, float(1), float(8)) + aiSvc.setLoiter(error_prone1, float(1), float(8)) + aiSvc.setLoiter(error_prone2, float(1), float(8)) + aiSvc.setLoiter(error_prone3, float(1), float(8)) + aiSvc.setLoiter(error_prone4, float(1), float(8)) + aiSvc.setLoiter(error_prone5, float(1), float(8)) + aiSvc.setLoiter(error_prone6, float(1), float(8)) + aiSvc.setLoiter(error_prone7, float(1), float(8)) + aiSvc.setLoiter(error_prone8, float(1), float(8)) + aiSvc.setLoiter(error_prone9, float(1), float(8)) + aiSvc.setLoiter(error_prone10, float(1), float(8)) + aiSvc.setLoiter(error_prone11, float(1), float(8)) + aiSvc.setLoiter(error_prone12, float(1), float(8)) + aiSvc.setLoiter(error_prone13, float(1), float(8)) + aiSvc.setLoiter(error_prone14, float(1), float(8)) + aiSvc.setLoiter(error_prone15, float(1), float(8)) + aiSvc.setLoiter(error_prone16, float(1), float(8)) return diff --git a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py index 225fb203..f0f9fb70 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py +++ b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py @@ -1,17 +1,20 @@ -import sys # Project SWG: Mos Eisley Error Prone Droids: Static Spawns # (C)2014 ProjectSWG - +import sys +from resources.datatables import Options +from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService escaped_criminal = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2862), float(13), float(-5103), float(0), float(0), float(0), float(0), 30) escaped_criminal1 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2856), float(13), float(-5094), float(0), float(0), float(0), float(0), 30) @@ -28,5 +31,19 @@ def addPlanetSpawns(core, planet): escaped_criminal12 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2837), float(5), float(-5081), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(escaped_criminal, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal1, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal2, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal3, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal4, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal5, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal6, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal7, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal8, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal9, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal10, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal11, float(1), float(8)) + aiSvc.setLoiter(escaped_criminal12, float(1), float(8)) + return diff --git a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py index acbf8d2a..5ea074c9 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py +++ b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py @@ -1,17 +1,17 @@ -import sys # Project SWG: Mos Eisley gunrunners: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService # gunrunners gunrunner = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2835), float(8), float(-4276), float(0), float(0), float(0), float(0), 45) @@ -34,5 +34,23 @@ def addPlanetSpawns(core, planet): gunrunner_sentry3 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2833), float(10), float(-4252), float(0), float(0), float(0), float(0), 45) gunrunner_sentry4 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2830), float(6), float(-4308), float(0), float(0), float(0), float(0), 45) + aiSvc.setLoiter(gunrunner, float(1), float(8)) + aiSvc.setLoiter(gunrunner1, float(1), float(8)) + aiSvc.setLoiter(gunrunner2, float(1), float(8)) + aiSvc.setLoiter(gunrunner3, float(1), float(8)) + aiSvc.setLoiter(gunrunner4, float(1), float(8)) + aiSvc.setLoiter(gunrunner5, float(1), float(8)) + aiSvc.setLoiter(gunrunner6, float(1), float(8)) + aiSvc.setLoiter(gunrunner7, float(1), float(8)) + aiSvc.setLoiter(gunrunner8, float(1), float(8)) + aiSvc.setLoiter(gunrunner9, float(1), float(8)) + aiSvc.setLoiter(gunrunner10, float(1), float(8)) + aiSvc.setLoiter(gunrunner11, float(1), float(8)) + + aiSvc.setLoiter(gunrunner_sentry, float(1), float(8)) + aiSvc.setLoiter(gunrunner_sentry1, float(1), float(8)) + aiSvc.setLoiter(gunrunner_sentry2, float(1), float(8)) + aiSvc.setLoiter(gunrunner_sentry3, float(1), float(8)) + aiSvc.setLoiter(gunrunner_sentry4, float(1), float(8)) return diff --git a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py index ba3f62e0..165b36f6 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py +++ b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py @@ -1,17 +1,17 @@ -import sys # Project SWG: MosEisley Kreetles: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService # Carrion Kreetles carrion_kreetle1 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3551), float(4), float(-5064), float(0), float(0), float(0), float(0), 30) @@ -20,19 +20,34 @@ def addPlanetSpawns(core, planet): carrion_kreetle13 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3533), float(4), float(-5070), float(0), float(0), float(0), float(0), 30) carrion_kreetle14 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3555), float(4), float(-5072), float(0), float(0), float(0), float(0), 30) - carrion_kreetle2 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3233), float(8), float(-4457), float(0), float(0), float(0), float(0), 30) carrion_kreetle21 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3223), float(8), float(-4447), float(0), float(0), float(0), float(0), 30) carrion_kreetle22 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3213), float(8), float(-4455), float(0), float(0), float(0), float(0), 30) carrion_kreetle23 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3235), float(8), float(-4440), float(0), float(0), float(0), float(0), 30) carrion_kreetle24 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3245), float(8), float(-4460), float(0), float(0), float(0), float(0), 30) - carrion_kreetle3 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3147), float(4), float(-4846), float(0), float(0), float(0), float(0), 30) carrion_kreetle31 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3137), float(4), float(-4856), float(0), float(0), float(0), float(0), 30) carrion_kreetle32 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3127), float(4), float(-4836), float(0), float(0), float(0), float(0), 30) carrion_kreetle35 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3145), float(4), float(-4852), float(0), float(0), float(0), float(0), 30) carrion_kreetle36 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3135), float(4), float(-4838), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(carrion_kreetle1, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle11, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle12, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle13, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle14, float(1), float(8)) + + aiSvc.setLoiter(carrion_kreetle2, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle21, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle22, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle23, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle24, float(1), float(8)) + + aiSvc.setLoiter(carrion_kreetle3, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle31, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle32, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle35, float(1), float(8)) + aiSvc.setLoiter(carrion_kreetle36, float(1), float(8)) return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_mites.py b/scripts/static_spawns/tatooine/mos_eisley_mites.py index 74e6d37c..da741070 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_mites.py +++ b/scripts/static_spawns/tatooine/mos_eisley_mites.py @@ -1,18 +1,19 @@ -import sys + # Project SWG: MosEisley mites: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): stcSvc = core.staticService objSvc = core.objectService - + aiSvc = core.aiService # Mound Mites mound_mite1 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3785), float(57), float(-5057), float(0), float(0), float(0), float(0), 30) @@ -32,7 +33,6 @@ def addPlanetSpawns(core, planet): mound_mite25 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3555), float(63), float(-4345), float(0), float(0), float(0), float(0), 30) mound_mite26 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3565), float(63), float(-4325), float(0), float(0), float(0), float(0), 30) - # Legacy RockMites rockmite = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3140), float(5), float(-4907), float(0), float(0), float(0), float(0), 30) @@ -48,7 +48,6 @@ def addPlanetSpawns(core, planet): rockmite21 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3724), float(5), float(-4661), float(0), float(0), float(0), float(0), 30) rockmite22 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3733), float(5), float(-4659), float(0), float(0), float(0), float(0), 30) rockmite23 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3747), float(5), float(-4655), float(0), float(0), float(0), float(0), 30) - rockmite24 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3752), float(5), float(-4645), float(0), float(0), float(0), float(0), 30) rockmite25 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3761), float(5), float(-4644), float(0), float(0), float(0), float(0), 30) rockmite26 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3762), float(5), float(-4654), float(0), float(0), float(0), float(0), 30) rockmite27 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3732), float(5), float(-4664), float(0), float(0), float(0), float(0), 30) @@ -57,6 +56,40 @@ def addPlanetSpawns(core, planet): rockmite210 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3769), float(5), float(-4650), float(0), float(0), float(0), float(0), 30) rockmite211 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3778), float(5), float(-4647), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(mound_mite1, float(1), float(8)) + aiSvc.setLoiter(mound_mite11, float(1), float(8)) + aiSvc.setLoiter(mound_mite12, float(1), float(8)) + aiSvc.setLoiter(mound_mite13, float(1), float(8)) + aiSvc.setLoiter(mound_mite14, float(1), float(8)) + aiSvc.setLoiter(mound_mite15, float(1), float(8)) + aiSvc.setLoiter(mound_mite16, float(1), float(8)) + + aiSvc.setLoiter(mound_mite2, float(1), float(8)) + aiSvc.setLoiter(mound_mite21, float(1), float(8)) + aiSvc.setLoiter(mound_mite22, float(1), float(8)) + aiSvc.setLoiter(mound_mite23, float(1), float(8)) + aiSvc.setLoiter(mound_mite24, float(1), float(8)) + aiSvc.setLoiter(mound_mite25, float(1), float(8)) + aiSvc.setLoiter(mound_mite26, float(1), float(8)) + + aiSvc.setLoiter(rockmite, float(1), float(8)) + aiSvc.setLoiter(rockmite1, float(1), float(8)) + aiSvc.setLoiter(rockmite2, float(1), float(8)) + aiSvc.setLoiter(rockmite3, float(1), float(8)) + aiSvc.setLoiter(rockmite4, float(1), float(8)) + aiSvc.setLoiter(rockmite5, float(1), float(8)) + aiSvc.setLoiter(rockmite6, float(1), float(8)) + aiSvc.setLoiter(rockmite2, float(1), float(8)) + aiSvc.setLoiter(rockmite21, float(1), float(8)) + aiSvc.setLoiter(rockmite22, float(1), float(8)) + aiSvc.setLoiter(rockmite23, float(1), float(8)) + aiSvc.setLoiter(rockmite25, float(1), float(8)) + aiSvc.setLoiter(rockmite26, float(1), float(8)) + aiSvc.setLoiter(rockmite27, float(1), float(8)) + aiSvc.setLoiter(rockmite28, float(1), float(8)) + aiSvc.setLoiter(rockmite29, float(1), float(8)) + aiSvc.setLoiter(rockmite210, float(1), float(8)) + aiSvc.setLoiter(rockmite211, float(1), float(8)) return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py index 0de1c0b5..257a91a8 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py +++ b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py @@ -1,18 +1,20 @@ -import sys # Project SWG: Mos Eisley scavenger: Static Spawns # (C)2014 ProjectSWG - +import sys +from resources.datatables import Options +from resources.datatables import State +from java.util import Vector +from engine.resources.scene import Point3D from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService - + aiSvc = core.aiService #Enforcers @@ -30,6 +32,19 @@ def addPlanetSpawns(core, planet): scavenger11 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3071), float(3), float(-4971), float(0), float(0), float(0), float(0), 30) scavenger12 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3047), float(7), float(-4957), float(0), float(0), float(0), float(0), 30) - + aiSvc.setLoiter(scavenger, float(1), float(8)) + aiSvc.setLoiter(scavenger1, float(1), float(8)) + aiSvc.setLoiter(scavenger2, float(1), float(8)) + aiSvc.setLoiter(scavenger3, float(1), float(8)) + aiSvc.setLoiter(scavenger4, float(1), float(8)) + aiSvc.setLoiter(scavenger5, float(1), float(8)) + aiSvc.setLoiter(scavenger6, float(1), float(8)) + aiSvc.setLoiter(scavenger7, float(1), float(8)) + aiSvc.setLoiter(scavenger8, float(1), float(8)) + aiSvc.setLoiter(scavenger9, float(1), float(8)) + aiSvc.setLoiter(scavenger10, float(1), float(8)) + aiSvc.setLoiter(scavenger11, float(1), float(8)) + aiSvc.setLoiter(scavenger12, float(1), float(8)) + return From be94ee3784f1f6a6137a20f8e5031c9f52abcf63 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Wed, 16 Jul 2014 09:54:29 -0400 Subject: [PATCH 46/51] Fixed some problems where LookAtTarget and IntendedTarget deltas could have been sent multiple times resulting in a crash --- src/services/ai/states/AttackState.java | 19 ++++++++++++------- src/services/housing/HousingService.java | 10 +++++++--- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/services/ai/states/AttackState.java b/src/services/ai/states/AttackState.java index 9bcccb22..98dc5b7c 100644 --- a/src/services/ai/states/AttackState.java +++ b/src/services/ai/states/AttackState.java @@ -127,8 +127,10 @@ public class AttackState extends AIState { return StateResult.DEAD; if(!creature.isInCombat() || creature.getDefendersList().size() == 0 || actor.getFollowObject() == null) { - creature.setLookAtTarget(0); - creature.setIntendedTarget(0); + if (creature.getLookAtTarget() != 0) + creature.setLookAtTarget(0); + if (creature.getIntendedTarget() != 0) + creature.setIntendedTarget(0); actor.setFollowObject(null); actor.setCurrentState(new RetreatState()); return StateResult.FINISHED; @@ -149,8 +151,10 @@ public class AttackState extends AIState { target = actor.getFollowObject(); if(target == null) { - creature.setLookAtTarget(0); - creature.setIntendedTarget(0); + if (creature.getLookAtTarget() != 0) + creature.setLookAtTarget(0); + if (creature.getIntendedTarget() != 0) + creature.setIntendedTarget(0); } actor.setFollowObject(null); @@ -175,9 +179,10 @@ public class AttackState extends AIState { // Pet // if (creature.getOwnerId()>0) // attacks = creature.getSpecialAttacks(); - - creature.setLookAtTarget(target.getObjectId()); - creature.setIntendedTarget(target.getObjectId()); + if (creature.getLookAtTarget() != target.getObjectId()) + creature.setLookAtTarget(target.getObjectId()); + if (creature.getIntendedTarget() != target.getObjectId()) + creature.setIntendedTarget(target.getObjectId()); if(attacks.size() == 0) { core.commandService.callCommand(creature, actor.getMobileTemplate().getDefaultAttack(), target, ""); diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index 00070c47..3d897d43 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -894,9 +894,13 @@ public class HousingService implements INetworkDispatch { window.addListBoxMenuItem("#"+(i+1)+": " + foundItems.get(i).getTemplate(), i); itemIDMapping.put(i, itemList.get(i).getObjectID()); if (i==0){ - ((CreatureObject)owner).setLookAtTarget(itemList.get(i).getObjectID()); - ((CreatureObject)owner).setTargetId(itemList.get(i).getObjectID()); - ((CreatureObject)owner).setIntendedTarget(itemList.get(i).getObjectID()); + // possibly sending the same delta multiple times + if (((CreatureObject) owner).getLookAtTarget() != itemList.get(i).getObjectID()); + ((CreatureObject)owner).setLookAtTarget(itemList.get(i).getObjectID()); + if (((CreatureObject) owner).getTargetId() != itemList.get(i).getObjectID()); + ((CreatureObject)owner).setTargetId(itemList.get(i).getObjectID()); + if (((CreatureObject) owner).getIntendedTarget() != itemList.get(i).getObjectID()); + ((CreatureObject)owner).setIntendedTarget(itemList.get(i).getObjectID()); } } From d0ae4e81f0216a172cb8bb98bb2389ad6cbb5479 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Wed, 16 Jul 2014 11:00:16 -0400 Subject: [PATCH 47/51] Fixed getObjectByFirstName to no longer be case-sensitive - broke it by mistake :( This fixes all chat related problems (/tells, guildchat, groupchat, chat rooms) --- src/services/object/ObjectService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index 6037d7d7..892fa54d 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -647,7 +647,7 @@ public class ObjectService implements INetworkDispatch { customName = customName.split(" ")[0]; try { - PreparedStatement ps = core.getDatabase1().preparedStatement("SELECT * FROM characters WHERE \"firstName\"=?"); + PreparedStatement ps = core.getDatabase1().preparedStatement("SELECT * FROM characters WHERE \"firstName\" ILIKE ?"); ps.setString(1, customName); ResultSet resultSet = ps.executeQuery(); From b0d16f92cd8ae0e5526ca15fdb928794e7d066e1 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Wed, 16 Jul 2014 15:11:37 -0400 Subject: [PATCH 48/51] Added teleport admin/GM commands Commands added: /teleport /teleporttarget /telportto --- scripts/commands/teleport.py | 46 +++++++++++++++++++++++++++++ scripts/commands/teleporttarget.py | 23 +++++---------- scripts/commands/teleportto.py | 30 +++++++++++++++++++ src/services/SimulationService.java | 10 +++++++ 4 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 scripts/commands/teleport.py create mode 100644 scripts/commands/teleportto.py diff --git a/scripts/commands/teleport.py b/scripts/commands/teleport.py new file mode 100644 index 00000000..b4134f32 --- /dev/null +++ b/scripts/commands/teleport.py @@ -0,0 +1,46 @@ +import sys +from engine.resources.scene import Point3D + +def setup(): + return + +def run(core, actor, target, commandString): + playerObject = actor.getSlottedObject('ghost') + + if not playerObject: + return + + commandArgs = commandString.split(' ') + arg4 = None + if len(commandArgs) > 0: + arg1 = commandArgs[0] + if len(commandArgs) > 1: + arg2 = commandArgs[1] + if len(commandArgs) > 2: + arg3 = commandArgs[2] + if len(commandArgs) > 3: + arg4 = commandArgs[3] + + if arg1 and arg2 and arg3 and arg4 is not None: + try: + actor.sendSystemMessage('Teleporting...', 0) + position = Point3D(float(arg1), float(arg2), float(arg3)) + core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName(arg4), position, actor.getOrientation(), None) + except: + actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleport [] ', 0) + return + return + + elif arg1 and arg2 and arg3: + try: + actor.sendSystemMessage('Teleporting...', 0) + position = Point3D(float(arg1), 0, float(arg2)) + core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName(arg3), position, actor.getOrientation(), None) + except: + actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleport [] ', 0) + return + + else: + actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleport [] ', 0) + return + return \ No newline at end of file diff --git a/scripts/commands/teleporttarget.py b/scripts/commands/teleporttarget.py index f497fe25..c736047e 100644 --- a/scripts/commands/teleporttarget.py +++ b/scripts/commands/teleporttarget.py @@ -5,25 +5,18 @@ def setup(): return def run(core, actor, target, commandString): - + playerObject = actor.getSlottedObject('ghost') if not playerObject: return - commandArgs = commandString.split(' ') - if len(commandArgs) > 0: - arg1 = commandArgs[0] - if len(commandArgs) > 1: - arg2 = commandArgs[1] - if len(commandArgs) > 2: - arg3 = commandArgs[2] - if len(commandArgs) > 3: - arg4 = commandArgs[3] - - if arg1 and arg2 and arg3 and arg4 target: - position = Point3D(float(arg2), float(arg3), float(arg4)) - core.simulationService.transferToPlanet(target, core.terrainService.getPlanetByName(arg1), position, actor.getOrientation(), None) - + if target and target.getSlottedObject('ghost') is not None: + actor.sendSystemMessage('Teleporting ' + target.getCustomName() + ' to you...', 0) + core.simulationService.teleport(target, actor.getPosition(), actor.getOrientation(), 0) + return + else: + actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleporttarget ', 0) + return return diff --git a/scripts/commands/teleportto.py b/scripts/commands/teleportto.py new file mode 100644 index 00000000..b16b7d64 --- /dev/null +++ b/scripts/commands/teleportto.py @@ -0,0 +1,30 @@ +import sys +from engine.resources.scene import Point3D + +def setup(): + return + +def run(core, actor, target, commandString): + + playerObject = actor.getSlottedObject('ghost') + + if not playerObject: + return + + if target is None: + target = core.objectService.getObjectByFirstName(commandString) + + if target and target.getSlottedObject('ghost') is not None: + actor.sendSystemMessage('Teleporting you to ' + target.getCustomName() + '...', 0) + if target.getPlanetId() == actor.getPlanetId(): + core.simulationService.teleport(actor, target.getPosition(), target.getOrientation(), target.getParentId()) + else: + if target.getParentId() == 0: + core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetById(target.getPlanetId()), target.getPosition(), target.getOrientation(), None) + else: + core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetById(target.getPlanetId()), target.getPosition(), target.getOrientation(), core.objectService.getObject(target.getParentId())) + return + else: + actor.sendSystemMessage('Invalid Syntax. Syntax is: /teleportto ', 0) + return + return diff --git a/src/services/SimulationService.java b/src/services/SimulationService.java index 3939b461..dd1c6171 100644 --- a/src/services/SimulationService.java +++ b/src/services/SimulationService.java @@ -1150,6 +1150,14 @@ public class SimulationService implements INetworkDispatch { public void teleport(SWGObject obj, Point3D position, Quaternion orientation, long cellId) { + if (obj.getPosition().getDistance2D(position) > 150) { + if (cellId != 0) + transferToPlanet(obj, obj.getPlanet(), position, orientation, core.objectService.getObject(cellId)); + else + transferToPlanet(obj, obj.getPlanet(), position, orientation, null); + return; + } + if(cellId == 0) { if(position.x >= -8192 && position.x <= 8192 && position.z >= -8192 && position.z <= 8192) { obj.setMovementCounter(obj.getMovementCounter() + 1); @@ -1165,6 +1173,8 @@ public class SimulationService implements INetworkDispatch { obj.setPosition(position); obj.setOrientation(orientation); + + // Shouldn't the parent be set? } } From 7ad65c43009e8720cf748fb64871b93b319fc9fc Mon Sep 17 00:00:00 2001 From: tacef Date: Wed, 16 Jul 2014 22:06:19 +0200 Subject: [PATCH 49/51] Changed Several NPC Spawns to use loiter Fixed unused import error from last commit --- .../tatooine/mos_eisley_desert_swoopers.py | 3 -- .../tatooine/mos_eisley_error_prone.py | 3 -- .../tatooine/mos_eisley_escaped_criminal.py | 5 -- .../tatooine/mos_eisley_gunrunners.py | 2 - .../tatooine/mos_eisley_krayt_cult_cave.py | 10 ++-- .../tatooine/mos_eisley_kreetles.py | 2 - .../tatooine/mos_eisley_mites.py | 4 -- .../tatooine/mos_eisley_scavenger.py | 5 -- .../tatooine/mos_eisley_shinn_bunker.py | 23 +++++++-- .../tatooine/mos_eisley_swoop_gang.py | 23 ++++++--- .../tatooine/mos_eisley_tempest_rills.py | 31 ++++++++---- .../tatooine/mos_eisley_toggi_bok.py | 30 +++++++++--- .../tatooine/mos_eisley_water_thiefs.py | 18 +++++-- .../tatooine/mos_eisley_womprats.py | 47 ++++++++++++++----- .../tatooine/mos_eisley_worrts.py | 18 +++++-- .../tatooine/mos_eisley_wt_bunker.py | 15 ++++-- 16 files changed, 157 insertions(+), 82 deletions(-) diff --git a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py index c952d0a1..0850d60c 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py +++ b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py @@ -4,12 +4,9 @@ import sys from resources.datatables import Options from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService aiSvc = core.aiService diff --git a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py index 287f48b0..0dbabcc0 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py +++ b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py @@ -4,12 +4,9 @@ import sys from resources.datatables import Options from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService aiSvc = core.aiService diff --git a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py index f0f9fb70..53a31636 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py +++ b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py @@ -2,11 +2,6 @@ # (C)2014 ProjectSWG import sys -from resources.datatables import Options -from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D - from resources.datatables import Options from resources.datatables import State diff --git a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py index 5ea074c9..7c3cae13 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py +++ b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py @@ -4,8 +4,6 @@ import sys from resources.datatables import Options from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): diff --git a/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py b/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py index cd653491..97edb4ed 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py +++ b/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py @@ -1,9 +1,7 @@ -import sys # Project SWG: Mos Eisley Krayt cult cave: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State @@ -26,7 +24,6 @@ def addPlanetSpawns(core, planet): novice6 = stcSvc.spawnObject('krayt_cult_novice', 'tatooine', cave.getCellByCellNumber(15), float(112.9), float(-91.3), float(-331.9), float(0), float(0), float(0), float(0), 30) novice7 = stcSvc.spawnObject('krayt_cult_novice', 'tatooine', cave.getCellByCellNumber(20), float(-12.2), float(-120), float(-374.3), float(0), float(0), float(0), float(0), 30) - zealot = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(3), float(-19.2), float(-26.7), float(-42.2), float(0), float(0), float(0), float(0), 30) zealot1 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(5), float(-73.3), float(-56), float(-177.4), float(0), float(0), float(0), float(0), 30) zealot2 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(5), float(-40.8), float(-56.4), float(-208.2), float(0), float(0), float(0), float(0), 30) @@ -35,7 +32,7 @@ def addPlanetSpawns(core, planet): zealot5 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(5), float(-7.9), float(-49), float(-155.9), float(0), float(0), float(0), float(0), 30) zealot6 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(15), float(113.9), float(-90.5), float(-340.2), float(0), float(0), float(0), float(0), 30) zealot7 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(20), float(4), float(-119.4), float(-359.8), float(0), float(0), float(0), float(0), 30) - + alcolyte = stcSvc.spawnObject('krayt_cult_acolyte', 'tatooine', cave.getCellByCellNumber(3), float(-27.1), float(-40.5), float(-73.6), float(0), float(0), float(0), float(0), 30) alcolyte1 = stcSvc.spawnObject('krayt_cult_acolyte', 'tatooine', cave.getCellByCellNumber(12), float(-72.2), float(-70.9), float(-255.1), float(0), float(0), float(0), float(0), 30) @@ -68,5 +65,4 @@ def addPlanetSpawns(core, planet): bonegnasher6 = stcSvc.spawnObject('bone_gnasher', 'tatooine', cave.getCellByCellNumber(5), float(-54.1), float(-56.3), float(-177), float(0), float(0), float(0), float(0), 30) - return - + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py index 165b36f6..d33c1838 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py +++ b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py @@ -4,8 +4,6 @@ import sys from resources.datatables import Options from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): diff --git a/scripts/static_spawns/tatooine/mos_eisley_mites.py b/scripts/static_spawns/tatooine/mos_eisley_mites.py index da741070..6efa3fc4 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_mites.py +++ b/scripts/static_spawns/tatooine/mos_eisley_mites.py @@ -1,16 +1,12 @@ - # Project SWG: MosEisley mites: Static Spawns # (C)2014 ProjectSWG import sys from resources.datatables import Options from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService aiSvc = core.aiService diff --git a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py index 257a91a8..a9867d18 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py +++ b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py @@ -2,11 +2,6 @@ # (C)2014 ProjectSWG import sys -from resources.datatables import Options -from resources.datatables import State -from java.util import Vector -from engine.resources.scene import Point3D - from resources.datatables import Options from resources.datatables import State diff --git a/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py b/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py index 4add2ca5..c6bc6758 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py +++ b/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py @@ -1,17 +1,15 @@ -import sys # Project SWG: Mos Eisley Shinn bunker: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService building = core.objectService.getObject(long(-466404038086555772)) @@ -35,6 +33,23 @@ def addPlanetSpawns(core, planet): shinn_mugger15 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3380), float(5), float(-5465), float(0), float(0), float(0), float(0), 30) shinn_mugger16 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3394), float(4), float(-5456), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(shinn_mugger, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger1, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger2, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger3, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger4, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger5, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger6, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger7, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger8, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger9, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger10, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger11, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger12, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger13, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger14, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger15, float(1), float(8)) + aiSvc.setLoiter(shinn_mugger16, float(1), float(8)) #shinn Guards outside bunker shinn_guard_o1 = stcSvc.spawnObject('shinn_guard', 'tatooine', long(0), float(3417), float(7), float(-5461), float(0), float(0), float(0), float(0), 30) diff --git a/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py b/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py index 734e756d..02e2650e 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py +++ b/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py @@ -1,18 +1,15 @@ -import sys # Project SWG: Mos Eisley Swoop gang: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService - + aiSvc = core.aiService #Enforcers @@ -37,5 +34,17 @@ def addPlanetSpawns(core, planet): swoop_gang_thug1 = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3169), float(5), float(-4823), float(0), float(0), float(0), float(0), 30) swoop_gang_thug2 = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3168), float(5), float(-4773), float(0), float(0), float(0), float(0), 30) - return - + aiSvc.setLoiter(swoop_gang_enforcer, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_enforcer1, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_punk, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_punk1, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_punk2, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_punk3, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_rogue, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_rogue1, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_rogue2, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_thug, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_thug1, float(1), float(8)) + aiSvc.setLoiter(swoop_gang_thug2, float(1), float(8)) + + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py b/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py index e44369e0..00012b12 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py +++ b/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py @@ -1,17 +1,15 @@ -import sys # Project SWG: MosEisley Tempest Rills: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService # Tempest rills tempest_rill1 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3716), float(5), float(-4602), float(0), float(0), float(0), float(0), 30) @@ -29,8 +27,6 @@ def addPlanetSpawns(core, planet): tempest_rill13 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3704), float(5), float(-4624), float(0), float(0), float(0), float(0), 30) tempest_rill14 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3687), float(5), float(-4600), float(0), float(0), float(0), float(0), 30) - - # Tempest rills tempest_rill4 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3875), float(48), float(-5068), float(0), float(0), float(0), float(0), 30) tempest_rill41 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3855), float(45), float(-5048), float(0), float(0), float(0), float(0), 30) @@ -39,6 +35,25 @@ def addPlanetSpawns(core, planet): tempest_rill44 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3892), float(58), float(-5078), float(0), float(0), float(0), float(0), 30) tempest_rill45 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3860), float(44), float(-5043), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(tempest_rill1, float(1), float(8)) + aiSvc.setLoiter(tempest_rill2, float(1), float(8)) + aiSvc.setLoiter(tempest_rill3, float(1), float(8)) + aiSvc.setLoiter(tempest_rill4, float(1), float(8)) + aiSvc.setLoiter(tempest_rill5, float(1), float(8)) + aiSvc.setLoiter(tempest_rill6, float(1), float(8)) + aiSvc.setLoiter(tempest_rill7, float(1), float(8)) + aiSvc.setLoiter(tempest_rill8, float(1), float(8)) + aiSvc.setLoiter(tempest_rill9, float(1), float(8)) + aiSvc.setLoiter(tempest_rill10, float(1), float(8)) + aiSvc.setLoiter(tempest_rill11, float(1), float(8)) + aiSvc.setLoiter(tempest_rill12, float(1), float(8)) + aiSvc.setLoiter(tempest_rill13, float(1), float(8)) + aiSvc.setLoiter(tempest_rill14, float(1), float(8)) + aiSvc.setLoiter(tempest_rill4, float(1), float(8)) + aiSvc.setLoiter(tempest_rill41, float(1), float(8)) + aiSvc.setLoiter(tempest_rill42, float(1), float(8)) + aiSvc.setLoiter(tempest_rill43, float(1), float(8)) + aiSvc.setLoiter(tempest_rill44, float(1), float(8)) + aiSvc.setLoiter(tempest_rill45, float(1), float(8)) - return - + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py b/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py index eeeb94b0..c7b6c9e4 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py +++ b/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py @@ -1,21 +1,19 @@ -import sys # Project SWG: Mos Eisley Toogi Bok's place: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService - #toggi bock - + #toggi bok stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_toggi.iff', 'tatooine', long(0), float(2756), float(7), float(-4567), float(0), float(0), float(0), float(0)) + # Thiefs thiefs = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2780), float(6), float(-4579), float(0), float(0), float(0), float(0), 30) @@ -37,5 +35,23 @@ def addPlanetSpawns(core, planet): thiefs16 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2803), float(6), float(-4578), float(0), float(0), float(0), float(0), 30) thiefs17 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2800), float(6), float(-4619), float(0), float(0), float(0), float(0), 30) - return + aiSvc.setLoiter(thiefs, float(1), float(8)) + aiSvc.setLoiter(thiefs1, float(1), float(8)) + aiSvc.setLoiter(thiefs2, float(1), float(8)) + aiSvc.setLoiter(thiefs3, float(1), float(8)) + aiSvc.setLoiter(thiefs4, float(1), float(8)) + aiSvc.setLoiter(thiefs5, float(1), float(8)) + aiSvc.setLoiter(thiefs6, float(1), float(8)) + aiSvc.setLoiter(thiefs7, float(1), float(8)) + aiSvc.setLoiter(thiefs8, float(1), float(8)) + aiSvc.setLoiter(thiefs9, float(1), float(8)) + aiSvc.setLoiter(thiefs10, float(1), float(8)) + aiSvc.setLoiter(thiefs11, float(1), float(8)) + aiSvc.setLoiter(thiefs12, float(1), float(8)) + aiSvc.setLoiter(thiefs13, float(1), float(8)) + aiSvc.setLoiter(thiefs14, float(1), float(8)) + aiSvc.setLoiter(thiefs15, float(1), float(8)) + aiSvc.setLoiter(thiefs16, float(1), float(8)) + aiSvc.setLoiter(thiefs17, float(1), float(8)) + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py b/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py index b96e0594..bc28f9ba 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py +++ b/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py @@ -1,17 +1,15 @@ -import sys # Project SWG: water thief: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService # Outside of Tusken camp water_thief = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3079), float(7), float(-4370), float(0), float(0), float(0), float(0), 45) @@ -25,4 +23,14 @@ def addPlanetSpawns(core, planet): water_thief8 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3065), float(8), float(-4348), float(0), float(0), float(0), float(0), 45) water_thief9 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3054), float(5), float(-4378), float(0), float(0), float(0), float(0), 45) - return + aiSvc.setLoiter(water_thief1, float(1), float(8)) + aiSvc.setLoiter(water_thief2, float(1), float(8)) + aiSvc.setLoiter(water_thief3, float(1), float(8)) + aiSvc.setLoiter(water_thief4, float(1), float(8)) + aiSvc.setLoiter(water_thief5, float(1), float(8)) + aiSvc.setLoiter(water_thief6, float(1), float(8)) + aiSvc.setLoiter(water_thief7, float(1), float(8)) + aiSvc.setLoiter(water_thief8, float(1), float(8)) + aiSvc.setLoiter(water_thief9, float(1), float(8)) + + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_womprats.py b/scripts/static_spawns/tatooine/mos_eisley_womprats.py index a7bdb444..edaaf5f4 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_womprats.py +++ b/scripts/static_spawns/tatooine/mos_eisley_womprats.py @@ -1,18 +1,15 @@ -import sys # Project SWG: MosEisley Rat Spawn: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService - + aiSvc = core.aiService # City Sewer Swamprats city_sewer = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3216), float(8), float(-4465), float(0), float(0), float(0), float(0), 30) @@ -22,8 +19,6 @@ def addPlanetSpawns(core, planet): city_sewer4 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3220), float(8), float(-4462), float(0), float(0), float(0), float(0), 30) city_sewer5 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3224), float(8), float(-4469), float(0), float(0), float(0), float(0), 30) city_sewer6 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3218), float(8), float(-4467), float(0), float(0), float(0), float(0), 30) - - # Sickly Womprats sickly_womprat = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3115), float(9), float(-4758), float(0), float(0), float(0), float(0), 30) @@ -42,9 +37,8 @@ def addPlanetSpawns(core, planet): womprat4 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4348), float(0), float(0), float(0), float(0), 30) womprat5 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4358), float(0), float(0), float(0), float(0), 30) womprat6 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3590), float(56), float(-4360), float(0), float(0), float(0), float(0), 30) - - - womprat2 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) + + womprat20 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) womprat21 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3832), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) womprat22 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3823), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) womprat23 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5068), float(0), float(0), float(0), float(0), 30) @@ -52,4 +46,35 @@ def addPlanetSpawns(core, planet): womprat25 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5056), float(0), float(0), float(0), float(0), 30) womprat26 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3839), float(49), float(-5082), float(0), float(0), float(0), float(0), 30) - return + aiSvc.setLoiter(city_sewer, float(1), float(8)) + aiSvc.setLoiter(city_sewer1, float(1), float(8)) + aiSvc.setLoiter(city_sewer2, float(1), float(8)) + aiSvc.setLoiter(city_sewer3, float(1), float(8)) + aiSvc.setLoiter(city_sewer4, float(1), float(8)) + aiSvc.setLoiter(city_sewer5, float(1), float(8)) + aiSvc.setLoiter(city_sewer6, float(1), float(8)) + + aiSvc.setLoiter(sickly_womprat, float(1), float(8)) + aiSvc.setLoiter(sickly_womprat1, float(1), float(8)) + aiSvc.setLoiter(sickly_womprat2, float(1), float(8)) + aiSvc.setLoiter(sickly_womprat3, float(1), float(8)) + aiSvc.setLoiter(sickly_womprat4, float(1), float(8)) + aiSvc.setLoiter(sickly_womprat5, float(1), float(8)) + aiSvc.setLoiter(sickly_womprat6, float(1), float(8)) + + aiSvc.setLoiter(womprat, float(1), float(8)) + aiSvc.setLoiter(womprat1, float(1), float(8)) + aiSvc.setLoiter(womprat2, float(1), float(8)) + aiSvc.setLoiter(womprat3, float(1), float(8)) + aiSvc.setLoiter(womprat4, float(1), float(8)) + aiSvc.setLoiter(womprat5, float(1), float(8)) + aiSvc.setLoiter(womprat6, float(1), float(8)) + + aiSvc.setLoiter(womprat20, float(1), float(8)) + aiSvc.setLoiter(womprat21, float(1), float(8)) + aiSvc.setLoiter(womprat22, float(1), float(8)) + aiSvc.setLoiter(womprat23, float(1), float(8)) + aiSvc.setLoiter(womprat24, float(1), float(8)) + aiSvc.setLoiter(womprat25, float(1), float(8)) + aiSvc.setLoiter(womprat26, float(1), float(8)) + return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_worrts.py b/scripts/static_spawns/tatooine/mos_eisley_worrts.py index f6402cf8..dfc4996f 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_worrts.py +++ b/scripts/static_spawns/tatooine/mos_eisley_worrts.py @@ -1,17 +1,15 @@ -import sys # Project SWG: MosEisley Worrts: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService + aiSvc = core.aiService # Tame Worrts tame_worrt1 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3153), float(4), float(-4945), float(0), float(0), float(0), float(0), 30) @@ -29,5 +27,17 @@ def addPlanetSpawns(core, planet): tame_worrt24 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3145), float(4), float(-4746), float(0), float(0), float(0), float(0), 30) tame_worrt25 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3120), float(4), float(-4721), float(0), float(0), float(0), float(0), 30) + aiSvc.setLoiter(tame_worrt1, float(1), float(8)) + aiSvc.setLoiter(tame_worrt2, float(1), float(8)) + aiSvc.setLoiter(tame_worrt3, float(1), float(8)) + aiSvc.setLoiter(tame_worrt4, float(1), float(8)) + aiSvc.setLoiter(tame_worrt5, float(1), float(8)) + + aiSvc.setLoiter(tame_worrt2, float(1), float(8)) + aiSvc.setLoiter(tame_worrt21, float(1), float(8)) + aiSvc.setLoiter(tame_worrt22, float(1), float(8)) + aiSvc.setLoiter(tame_worrt23, float(1), float(8)) + aiSvc.setLoiter(tame_worrt24, float(1), float(8)) + aiSvc.setLoiter(tame_worrt25, float(1), float(8)) return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py b/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py index 4bbd6e7c..52c09416 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py +++ b/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py @@ -1,19 +1,16 @@ -import sys # Project SWG: WT Bunker: Static Spawns # (C)2014 ProjectSWG - - +import sys from resources.datatables import Options from resources.datatables import State from resources.datatables import Posture def addPlanetSpawns(core, planet): - stcSvc = core.staticService objSvc = core.objectService - + aiSvc = core.aiService #Outside wt_guard = stcSvc.spawnObject('white_thranta_security_guard', 'tatooine', long(0), float(3749.7), float(16.8), float(-4200.5), float(0), float(0), float(0), float(0), 45) @@ -25,6 +22,14 @@ def addPlanetSpawns(core, planet): wt_guard6 = stcSvc.spawnObject('white_thranta_security_guard', 'tatooine', long(0), float(3718.3), float(16.2), float(-4193.1), float(0), float(0), float(0), float(0), 45) wt_guard7 = stcSvc.spawnObject('white_thranta_security_guard', 'tatooine', long(0), float(3707), float(17.7), float(-4187.6), float(0), float(0), float(0), float(0), 45) + aiSvc.setLoiter(wt_guard, float(1), float(8)) + aiSvc.setLoiter(wt_guard1, float(1), float(8)) + aiSvc.setLoiter(wt_guard2, float(1), float(8)) + aiSvc.setLoiter(wt_guard3, float(1), float(8)) + aiSvc.setLoiter(wt_guard4, float(1), float(8)) + aiSvc.setLoiter(wt_guard5, float(1), float(8)) + aiSvc.setLoiter(wt_guard6, float(1), float(8)) + aiSvc.setLoiter(wt_guard7, float(1), float(8)) #inside wt_bunker = core.objectService.getObject(long(-466404036409557111)) From bd36c5327f2f71d6680493f47d452a462ff32e04 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 17 Jul 2014 11:23:11 -0400 Subject: [PATCH 50/51] Revert "Changed Some NPC Spawns to use loiter" --- .../tatooine/mos_eisley_desert_swoopers.py | 25 ++-------- .../tatooine/mos_eisley_error_prone.py | 23 ++------- .../tatooine/mos_eisley_escaped_criminal.py | 20 ++------ .../tatooine/mos_eisley_gunrunners.py | 24 ++-------- .../tatooine/mos_eisley_krayt_cult_cave.py | 10 ++-- .../tatooine/mos_eisley_kreetles.py | 25 +++------- .../tatooine/mos_eisley_mites.py | 43 +++-------------- .../tatooine/mos_eisley_scavenger.py | 22 +++------ .../tatooine/mos_eisley_shinn_bunker.py | 23 ++------- .../tatooine/mos_eisley_swoop_gang.py | 23 +++------ .../tatooine/mos_eisley_tempest_rills.py | 31 ++++-------- .../tatooine/mos_eisley_toggi_bok.py | 30 +++--------- .../tatooine/mos_eisley_water_thiefs.py | 18 ++----- .../tatooine/mos_eisley_womprats.py | 47 +++++-------------- .../tatooine/mos_eisley_worrts.py | 18 ++----- .../tatooine/mos_eisley_wt_bunker.py | 15 ++---- 16 files changed, 93 insertions(+), 304 deletions(-) diff --git a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py index 0850d60c..8aca297d 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py +++ b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py @@ -1,15 +1,17 @@ +import sys # Project SWG: Mos Eisley Desert Swoopers: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService desert_swooper = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3319), float(5), float(-5125), float(0), float(0), float(0), float(0), 30) desert_swooper1 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3309), float(5), float(-5121), float(0), float(0), float(0), float(0), 30) @@ -30,24 +32,5 @@ def addPlanetSpawns(core, planet): desert_swooper_leader = stcSvc.spawnObject('desert_swooper_leader', 'tatooine', long(0), float(3313), float(5), float(-5138), float(0), float(0), float(0), float(0), 30) desert_swooper_leader1 = stcSvc.spawnObject('desert_swooper_leader', 'tatooine', long(0), float(3316), float(5), float(-5131), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(desert_swooper, float(1), float(8)) - aiSvc.setLoiter(desert_swooper1, float(1), float(8)) - aiSvc.setLoiter(desert_swooper2, float(1), float(8)) - aiSvc.setLoiter(desert_swooper3, float(1), float(8)) - aiSvc.setLoiter(desert_swooper4, float(1), float(8)) - aiSvc.setLoiter(desert_swooper5, float(1), float(8)) - aiSvc.setLoiter(desert_swooper6, float(1), float(8)) - aiSvc.setLoiter(desert_swooper7, float(1), float(8)) - aiSvc.setLoiter(desert_swooper8, float(1), float(8)) - aiSvc.setLoiter(desert_swooper9, float(1), float(8)) - aiSvc.setLoiter(desert_swooper10, float(1), float(8)) - aiSvc.setLoiter(desert_swooper11, float(1), float(8)) - aiSvc.setLoiter(desert_swooper12, float(1), float(8)) - aiSvc.setLoiter(desert_swooper13, float(1), float(8)) - aiSvc.setLoiter(desert_swooper14, float(1), float(8)) - - aiSvc.setLoiter(desert_swooper_leader, float(1), float(8)) - aiSvc.setLoiter(desert_swooper_leader1, float(1), float(8)) - return diff --git a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py index 0dbabcc0..90e68ac6 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py +++ b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py @@ -1,15 +1,17 @@ +import sys # Project SWG: Mos Eisley Error Prone Droids: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService error_prone = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2868), float(39), float(-4814), float(0), float(0), float(0), float(0), 30) error_prone1 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2815), float(38), float(-4815), float(0), float(0), float(0), float(0), 30) @@ -29,22 +31,5 @@ def addPlanetSpawns(core, planet): error_prone15 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2851), float(40), float(-4806), float(0), float(0), float(0), float(0), 30) error_prone16 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2871), float(38), float(-4799), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(error_prone, float(1), float(8)) - aiSvc.setLoiter(error_prone1, float(1), float(8)) - aiSvc.setLoiter(error_prone2, float(1), float(8)) - aiSvc.setLoiter(error_prone3, float(1), float(8)) - aiSvc.setLoiter(error_prone4, float(1), float(8)) - aiSvc.setLoiter(error_prone5, float(1), float(8)) - aiSvc.setLoiter(error_prone6, float(1), float(8)) - aiSvc.setLoiter(error_prone7, float(1), float(8)) - aiSvc.setLoiter(error_prone8, float(1), float(8)) - aiSvc.setLoiter(error_prone9, float(1), float(8)) - aiSvc.setLoiter(error_prone10, float(1), float(8)) - aiSvc.setLoiter(error_prone11, float(1), float(8)) - aiSvc.setLoiter(error_prone12, float(1), float(8)) - aiSvc.setLoiter(error_prone13, float(1), float(8)) - aiSvc.setLoiter(error_prone14, float(1), float(8)) - aiSvc.setLoiter(error_prone15, float(1), float(8)) - aiSvc.setLoiter(error_prone16, float(1), float(8)) return diff --git a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py index 53a31636..225fb203 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py +++ b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py @@ -1,15 +1,17 @@ +import sys # Project SWG: Mos Eisley Error Prone Droids: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService escaped_criminal = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2862), float(13), float(-5103), float(0), float(0), float(0), float(0), 30) escaped_criminal1 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2856), float(13), float(-5094), float(0), float(0), float(0), float(0), 30) @@ -26,19 +28,5 @@ def addPlanetSpawns(core, planet): escaped_criminal12 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2837), float(5), float(-5081), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(escaped_criminal, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal1, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal2, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal3, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal4, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal5, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal6, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal7, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal8, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal9, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal10, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal11, float(1), float(8)) - aiSvc.setLoiter(escaped_criminal12, float(1), float(8)) - return diff --git a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py index 7c3cae13..acbf8d2a 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py +++ b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py @@ -1,15 +1,17 @@ +import sys # Project SWG: Mos Eisley gunrunners: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService # gunrunners gunrunner = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2835), float(8), float(-4276), float(0), float(0), float(0), float(0), 45) @@ -32,23 +34,5 @@ def addPlanetSpawns(core, planet): gunrunner_sentry3 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2833), float(10), float(-4252), float(0), float(0), float(0), float(0), 45) gunrunner_sentry4 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2830), float(6), float(-4308), float(0), float(0), float(0), float(0), 45) - aiSvc.setLoiter(gunrunner, float(1), float(8)) - aiSvc.setLoiter(gunrunner1, float(1), float(8)) - aiSvc.setLoiter(gunrunner2, float(1), float(8)) - aiSvc.setLoiter(gunrunner3, float(1), float(8)) - aiSvc.setLoiter(gunrunner4, float(1), float(8)) - aiSvc.setLoiter(gunrunner5, float(1), float(8)) - aiSvc.setLoiter(gunrunner6, float(1), float(8)) - aiSvc.setLoiter(gunrunner7, float(1), float(8)) - aiSvc.setLoiter(gunrunner8, float(1), float(8)) - aiSvc.setLoiter(gunrunner9, float(1), float(8)) - aiSvc.setLoiter(gunrunner10, float(1), float(8)) - aiSvc.setLoiter(gunrunner11, float(1), float(8)) - - aiSvc.setLoiter(gunrunner_sentry, float(1), float(8)) - aiSvc.setLoiter(gunrunner_sentry1, float(1), float(8)) - aiSvc.setLoiter(gunrunner_sentry2, float(1), float(8)) - aiSvc.setLoiter(gunrunner_sentry3, float(1), float(8)) - aiSvc.setLoiter(gunrunner_sentry4, float(1), float(8)) return diff --git a/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py b/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py index 97edb4ed..cd653491 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py +++ b/scripts/static_spawns/tatooine/mos_eisley_krayt_cult_cave.py @@ -1,7 +1,9 @@ +import sys # Project SWG: Mos Eisley Krayt cult cave: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State @@ -24,6 +26,7 @@ def addPlanetSpawns(core, planet): novice6 = stcSvc.spawnObject('krayt_cult_novice', 'tatooine', cave.getCellByCellNumber(15), float(112.9), float(-91.3), float(-331.9), float(0), float(0), float(0), float(0), 30) novice7 = stcSvc.spawnObject('krayt_cult_novice', 'tatooine', cave.getCellByCellNumber(20), float(-12.2), float(-120), float(-374.3), float(0), float(0), float(0), float(0), 30) + zealot = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(3), float(-19.2), float(-26.7), float(-42.2), float(0), float(0), float(0), float(0), 30) zealot1 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(5), float(-73.3), float(-56), float(-177.4), float(0), float(0), float(0), float(0), 30) zealot2 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(5), float(-40.8), float(-56.4), float(-208.2), float(0), float(0), float(0), float(0), 30) @@ -32,7 +35,7 @@ def addPlanetSpawns(core, planet): zealot5 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(5), float(-7.9), float(-49), float(-155.9), float(0), float(0), float(0), float(0), 30) zealot6 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(15), float(113.9), float(-90.5), float(-340.2), float(0), float(0), float(0), float(0), 30) zealot7 = stcSvc.spawnObject('krayt_cult_zealot', 'tatooine', cave.getCellByCellNumber(20), float(4), float(-119.4), float(-359.8), float(0), float(0), float(0), float(0), 30) - + alcolyte = stcSvc.spawnObject('krayt_cult_acolyte', 'tatooine', cave.getCellByCellNumber(3), float(-27.1), float(-40.5), float(-73.6), float(0), float(0), float(0), float(0), 30) alcolyte1 = stcSvc.spawnObject('krayt_cult_acolyte', 'tatooine', cave.getCellByCellNumber(12), float(-72.2), float(-70.9), float(-255.1), float(0), float(0), float(0), float(0), 30) @@ -65,4 +68,5 @@ def addPlanetSpawns(core, planet): bonegnasher6 = stcSvc.spawnObject('bone_gnasher', 'tatooine', cave.getCellByCellNumber(5), float(-54.1), float(-56.3), float(-177), float(0), float(0), float(0), float(0), 30) - return \ No newline at end of file + return + diff --git a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py index d33c1838..ba3f62e0 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py +++ b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py @@ -1,15 +1,17 @@ +import sys # Project SWG: MosEisley Kreetles: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService # Carrion Kreetles carrion_kreetle1 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3551), float(4), float(-5064), float(0), float(0), float(0), float(0), 30) @@ -18,34 +20,19 @@ def addPlanetSpawns(core, planet): carrion_kreetle13 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3533), float(4), float(-5070), float(0), float(0), float(0), float(0), 30) carrion_kreetle14 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3555), float(4), float(-5072), float(0), float(0), float(0), float(0), 30) + carrion_kreetle2 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3233), float(8), float(-4457), float(0), float(0), float(0), float(0), 30) carrion_kreetle21 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3223), float(8), float(-4447), float(0), float(0), float(0), float(0), 30) carrion_kreetle22 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3213), float(8), float(-4455), float(0), float(0), float(0), float(0), 30) carrion_kreetle23 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3235), float(8), float(-4440), float(0), float(0), float(0), float(0), 30) carrion_kreetle24 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3245), float(8), float(-4460), float(0), float(0), float(0), float(0), 30) + carrion_kreetle3 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3147), float(4), float(-4846), float(0), float(0), float(0), float(0), 30) carrion_kreetle31 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3137), float(4), float(-4856), float(0), float(0), float(0), float(0), 30) carrion_kreetle32 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3127), float(4), float(-4836), float(0), float(0), float(0), float(0), 30) carrion_kreetle35 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3145), float(4), float(-4852), float(0), float(0), float(0), float(0), 30) carrion_kreetle36 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3135), float(4), float(-4838), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(carrion_kreetle1, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle11, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle12, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle13, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle14, float(1), float(8)) - - aiSvc.setLoiter(carrion_kreetle2, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle21, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle22, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle23, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle24, float(1), float(8)) - - aiSvc.setLoiter(carrion_kreetle3, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle31, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle32, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle35, float(1), float(8)) - aiSvc.setLoiter(carrion_kreetle36, float(1), float(8)) return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_mites.py b/scripts/static_spawns/tatooine/mos_eisley_mites.py index 6efa3fc4..74e6d37c 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_mites.py +++ b/scripts/static_spawns/tatooine/mos_eisley_mites.py @@ -1,15 +1,18 @@ +import sys # Project SWG: MosEisley mites: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService + # Mound Mites mound_mite1 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3785), float(57), float(-5057), float(0), float(0), float(0), float(0), 30) @@ -29,6 +32,7 @@ def addPlanetSpawns(core, planet): mound_mite25 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3555), float(63), float(-4345), float(0), float(0), float(0), float(0), 30) mound_mite26 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3565), float(63), float(-4325), float(0), float(0), float(0), float(0), 30) + # Legacy RockMites rockmite = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3140), float(5), float(-4907), float(0), float(0), float(0), float(0), 30) @@ -44,6 +48,7 @@ def addPlanetSpawns(core, planet): rockmite21 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3724), float(5), float(-4661), float(0), float(0), float(0), float(0), 30) rockmite22 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3733), float(5), float(-4659), float(0), float(0), float(0), float(0), 30) rockmite23 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3747), float(5), float(-4655), float(0), float(0), float(0), float(0), 30) + rockmite24 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3752), float(5), float(-4645), float(0), float(0), float(0), float(0), 30) rockmite25 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3761), float(5), float(-4644), float(0), float(0), float(0), float(0), 30) rockmite26 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3762), float(5), float(-4654), float(0), float(0), float(0), float(0), 30) rockmite27 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3732), float(5), float(-4664), float(0), float(0), float(0), float(0), 30) @@ -52,40 +57,6 @@ def addPlanetSpawns(core, planet): rockmite210 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3769), float(5), float(-4650), float(0), float(0), float(0), float(0), 30) rockmite211 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3778), float(5), float(-4647), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(mound_mite1, float(1), float(8)) - aiSvc.setLoiter(mound_mite11, float(1), float(8)) - aiSvc.setLoiter(mound_mite12, float(1), float(8)) - aiSvc.setLoiter(mound_mite13, float(1), float(8)) - aiSvc.setLoiter(mound_mite14, float(1), float(8)) - aiSvc.setLoiter(mound_mite15, float(1), float(8)) - aiSvc.setLoiter(mound_mite16, float(1), float(8)) - - aiSvc.setLoiter(mound_mite2, float(1), float(8)) - aiSvc.setLoiter(mound_mite21, float(1), float(8)) - aiSvc.setLoiter(mound_mite22, float(1), float(8)) - aiSvc.setLoiter(mound_mite23, float(1), float(8)) - aiSvc.setLoiter(mound_mite24, float(1), float(8)) - aiSvc.setLoiter(mound_mite25, float(1), float(8)) - aiSvc.setLoiter(mound_mite26, float(1), float(8)) - - aiSvc.setLoiter(rockmite, float(1), float(8)) - aiSvc.setLoiter(rockmite1, float(1), float(8)) - aiSvc.setLoiter(rockmite2, float(1), float(8)) - aiSvc.setLoiter(rockmite3, float(1), float(8)) - aiSvc.setLoiter(rockmite4, float(1), float(8)) - aiSvc.setLoiter(rockmite5, float(1), float(8)) - aiSvc.setLoiter(rockmite6, float(1), float(8)) - aiSvc.setLoiter(rockmite2, float(1), float(8)) - aiSvc.setLoiter(rockmite21, float(1), float(8)) - aiSvc.setLoiter(rockmite22, float(1), float(8)) - aiSvc.setLoiter(rockmite23, float(1), float(8)) - aiSvc.setLoiter(rockmite25, float(1), float(8)) - aiSvc.setLoiter(rockmite26, float(1), float(8)) - aiSvc.setLoiter(rockmite27, float(1), float(8)) - aiSvc.setLoiter(rockmite28, float(1), float(8)) - aiSvc.setLoiter(rockmite29, float(1), float(8)) - aiSvc.setLoiter(rockmite210, float(1), float(8)) - aiSvc.setLoiter(rockmite211, float(1), float(8)) return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py index a9867d18..0de1c0b5 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py +++ b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py @@ -1,15 +1,18 @@ +import sys # Project SWG: Mos Eisley scavenger: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService + #Enforcers @@ -27,19 +30,6 @@ def addPlanetSpawns(core, planet): scavenger11 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3071), float(3), float(-4971), float(0), float(0), float(0), float(0), 30) scavenger12 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3047), float(7), float(-4957), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(scavenger, float(1), float(8)) - aiSvc.setLoiter(scavenger1, float(1), float(8)) - aiSvc.setLoiter(scavenger2, float(1), float(8)) - aiSvc.setLoiter(scavenger3, float(1), float(8)) - aiSvc.setLoiter(scavenger4, float(1), float(8)) - aiSvc.setLoiter(scavenger5, float(1), float(8)) - aiSvc.setLoiter(scavenger6, float(1), float(8)) - aiSvc.setLoiter(scavenger7, float(1), float(8)) - aiSvc.setLoiter(scavenger8, float(1), float(8)) - aiSvc.setLoiter(scavenger9, float(1), float(8)) - aiSvc.setLoiter(scavenger10, float(1), float(8)) - aiSvc.setLoiter(scavenger11, float(1), float(8)) - aiSvc.setLoiter(scavenger12, float(1), float(8)) - + return diff --git a/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py b/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py index c6bc6758..4add2ca5 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py +++ b/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py @@ -1,15 +1,17 @@ +import sys # Project SWG: Mos Eisley Shinn bunker: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService building = core.objectService.getObject(long(-466404038086555772)) @@ -33,23 +35,6 @@ def addPlanetSpawns(core, planet): shinn_mugger15 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3380), float(5), float(-5465), float(0), float(0), float(0), float(0), 30) shinn_mugger16 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3394), float(4), float(-5456), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(shinn_mugger, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger1, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger2, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger3, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger4, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger5, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger6, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger7, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger8, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger9, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger10, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger11, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger12, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger13, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger14, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger15, float(1), float(8)) - aiSvc.setLoiter(shinn_mugger16, float(1), float(8)) #shinn Guards outside bunker shinn_guard_o1 = stcSvc.spawnObject('shinn_guard', 'tatooine', long(0), float(3417), float(7), float(-5461), float(0), float(0), float(0), float(0), 30) diff --git a/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py b/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py index 02e2650e..734e756d 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py +++ b/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py @@ -1,15 +1,18 @@ +import sys # Project SWG: Mos Eisley Swoop gang: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService + #Enforcers @@ -34,17 +37,5 @@ def addPlanetSpawns(core, planet): swoop_gang_thug1 = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3169), float(5), float(-4823), float(0), float(0), float(0), float(0), 30) swoop_gang_thug2 = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3168), float(5), float(-4773), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(swoop_gang_enforcer, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_enforcer1, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_punk, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_punk1, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_punk2, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_punk3, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_rogue, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_rogue1, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_rogue2, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_thug, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_thug1, float(1), float(8)) - aiSvc.setLoiter(swoop_gang_thug2, float(1), float(8)) - - return \ No newline at end of file + return + diff --git a/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py b/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py index 00012b12..e44369e0 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py +++ b/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py @@ -1,15 +1,17 @@ +import sys # Project SWG: MosEisley Tempest Rills: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService # Tempest rills tempest_rill1 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3716), float(5), float(-4602), float(0), float(0), float(0), float(0), 30) @@ -27,6 +29,8 @@ def addPlanetSpawns(core, planet): tempest_rill13 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3704), float(5), float(-4624), float(0), float(0), float(0), float(0), 30) tempest_rill14 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3687), float(5), float(-4600), float(0), float(0), float(0), float(0), 30) + + # Tempest rills tempest_rill4 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3875), float(48), float(-5068), float(0), float(0), float(0), float(0), 30) tempest_rill41 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3855), float(45), float(-5048), float(0), float(0), float(0), float(0), 30) @@ -35,25 +39,6 @@ def addPlanetSpawns(core, planet): tempest_rill44 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3892), float(58), float(-5078), float(0), float(0), float(0), float(0), 30) tempest_rill45 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3860), float(44), float(-5043), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(tempest_rill1, float(1), float(8)) - aiSvc.setLoiter(tempest_rill2, float(1), float(8)) - aiSvc.setLoiter(tempest_rill3, float(1), float(8)) - aiSvc.setLoiter(tempest_rill4, float(1), float(8)) - aiSvc.setLoiter(tempest_rill5, float(1), float(8)) - aiSvc.setLoiter(tempest_rill6, float(1), float(8)) - aiSvc.setLoiter(tempest_rill7, float(1), float(8)) - aiSvc.setLoiter(tempest_rill8, float(1), float(8)) - aiSvc.setLoiter(tempest_rill9, float(1), float(8)) - aiSvc.setLoiter(tempest_rill10, float(1), float(8)) - aiSvc.setLoiter(tempest_rill11, float(1), float(8)) - aiSvc.setLoiter(tempest_rill12, float(1), float(8)) - aiSvc.setLoiter(tempest_rill13, float(1), float(8)) - aiSvc.setLoiter(tempest_rill14, float(1), float(8)) - aiSvc.setLoiter(tempest_rill4, float(1), float(8)) - aiSvc.setLoiter(tempest_rill41, float(1), float(8)) - aiSvc.setLoiter(tempest_rill42, float(1), float(8)) - aiSvc.setLoiter(tempest_rill43, float(1), float(8)) - aiSvc.setLoiter(tempest_rill44, float(1), float(8)) - aiSvc.setLoiter(tempest_rill45, float(1), float(8)) - return \ No newline at end of file + return + diff --git a/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py b/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py index c7b6c9e4..eeeb94b0 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py +++ b/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py @@ -1,19 +1,21 @@ +import sys # Project SWG: Mos Eisley Toogi Bok's place: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService - #toggi bok + #toggi bock + stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_toggi.iff', 'tatooine', long(0), float(2756), float(7), float(-4567), float(0), float(0), float(0), float(0)) - # Thiefs thiefs = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2780), float(6), float(-4579), float(0), float(0), float(0), float(0), 30) @@ -35,23 +37,5 @@ def addPlanetSpawns(core, planet): thiefs16 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2803), float(6), float(-4578), float(0), float(0), float(0), float(0), 30) thiefs17 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2800), float(6), float(-4619), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(thiefs, float(1), float(8)) - aiSvc.setLoiter(thiefs1, float(1), float(8)) - aiSvc.setLoiter(thiefs2, float(1), float(8)) - aiSvc.setLoiter(thiefs3, float(1), float(8)) - aiSvc.setLoiter(thiefs4, float(1), float(8)) - aiSvc.setLoiter(thiefs5, float(1), float(8)) - aiSvc.setLoiter(thiefs6, float(1), float(8)) - aiSvc.setLoiter(thiefs7, float(1), float(8)) - aiSvc.setLoiter(thiefs8, float(1), float(8)) - aiSvc.setLoiter(thiefs9, float(1), float(8)) - aiSvc.setLoiter(thiefs10, float(1), float(8)) - aiSvc.setLoiter(thiefs11, float(1), float(8)) - aiSvc.setLoiter(thiefs12, float(1), float(8)) - aiSvc.setLoiter(thiefs13, float(1), float(8)) - aiSvc.setLoiter(thiefs14, float(1), float(8)) - aiSvc.setLoiter(thiefs15, float(1), float(8)) - aiSvc.setLoiter(thiefs16, float(1), float(8)) - aiSvc.setLoiter(thiefs17, float(1), float(8)) + return - return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py b/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py index bc28f9ba..b96e0594 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py +++ b/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py @@ -1,15 +1,17 @@ +import sys # Project SWG: water thief: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService # Outside of Tusken camp water_thief = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3079), float(7), float(-4370), float(0), float(0), float(0), float(0), 45) @@ -23,14 +25,4 @@ def addPlanetSpawns(core, planet): water_thief8 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3065), float(8), float(-4348), float(0), float(0), float(0), float(0), 45) water_thief9 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3054), float(5), float(-4378), float(0), float(0), float(0), float(0), 45) - aiSvc.setLoiter(water_thief1, float(1), float(8)) - aiSvc.setLoiter(water_thief2, float(1), float(8)) - aiSvc.setLoiter(water_thief3, float(1), float(8)) - aiSvc.setLoiter(water_thief4, float(1), float(8)) - aiSvc.setLoiter(water_thief5, float(1), float(8)) - aiSvc.setLoiter(water_thief6, float(1), float(8)) - aiSvc.setLoiter(water_thief7, float(1), float(8)) - aiSvc.setLoiter(water_thief8, float(1), float(8)) - aiSvc.setLoiter(water_thief9, float(1), float(8)) - - return \ No newline at end of file + return diff --git a/scripts/static_spawns/tatooine/mos_eisley_womprats.py b/scripts/static_spawns/tatooine/mos_eisley_womprats.py index edaaf5f4..a7bdb444 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_womprats.py +++ b/scripts/static_spawns/tatooine/mos_eisley_womprats.py @@ -1,15 +1,18 @@ +import sys # Project SWG: MosEisley Rat Spawn: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService + # City Sewer Swamprats city_sewer = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3216), float(8), float(-4465), float(0), float(0), float(0), float(0), 30) @@ -19,6 +22,8 @@ def addPlanetSpawns(core, planet): city_sewer4 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3220), float(8), float(-4462), float(0), float(0), float(0), float(0), 30) city_sewer5 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3224), float(8), float(-4469), float(0), float(0), float(0), float(0), 30) city_sewer6 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3218), float(8), float(-4467), float(0), float(0), float(0), float(0), 30) + + # Sickly Womprats sickly_womprat = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3115), float(9), float(-4758), float(0), float(0), float(0), float(0), 30) @@ -37,8 +42,9 @@ def addPlanetSpawns(core, planet): womprat4 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4348), float(0), float(0), float(0), float(0), 30) womprat5 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4358), float(0), float(0), float(0), float(0), 30) womprat6 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3590), float(56), float(-4360), float(0), float(0), float(0), float(0), 30) - - womprat20 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) + + + womprat2 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) womprat21 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3832), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) womprat22 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3823), float(49), float(-5072), float(0), float(0), float(0), float(0), 30) womprat23 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5068), float(0), float(0), float(0), float(0), 30) @@ -46,35 +52,4 @@ def addPlanetSpawns(core, planet): womprat25 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5056), float(0), float(0), float(0), float(0), 30) womprat26 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3839), float(49), float(-5082), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(city_sewer, float(1), float(8)) - aiSvc.setLoiter(city_sewer1, float(1), float(8)) - aiSvc.setLoiter(city_sewer2, float(1), float(8)) - aiSvc.setLoiter(city_sewer3, float(1), float(8)) - aiSvc.setLoiter(city_sewer4, float(1), float(8)) - aiSvc.setLoiter(city_sewer5, float(1), float(8)) - aiSvc.setLoiter(city_sewer6, float(1), float(8)) - - aiSvc.setLoiter(sickly_womprat, float(1), float(8)) - aiSvc.setLoiter(sickly_womprat1, float(1), float(8)) - aiSvc.setLoiter(sickly_womprat2, float(1), float(8)) - aiSvc.setLoiter(sickly_womprat3, float(1), float(8)) - aiSvc.setLoiter(sickly_womprat4, float(1), float(8)) - aiSvc.setLoiter(sickly_womprat5, float(1), float(8)) - aiSvc.setLoiter(sickly_womprat6, float(1), float(8)) - - aiSvc.setLoiter(womprat, float(1), float(8)) - aiSvc.setLoiter(womprat1, float(1), float(8)) - aiSvc.setLoiter(womprat2, float(1), float(8)) - aiSvc.setLoiter(womprat3, float(1), float(8)) - aiSvc.setLoiter(womprat4, float(1), float(8)) - aiSvc.setLoiter(womprat5, float(1), float(8)) - aiSvc.setLoiter(womprat6, float(1), float(8)) - - aiSvc.setLoiter(womprat20, float(1), float(8)) - aiSvc.setLoiter(womprat21, float(1), float(8)) - aiSvc.setLoiter(womprat22, float(1), float(8)) - aiSvc.setLoiter(womprat23, float(1), float(8)) - aiSvc.setLoiter(womprat24, float(1), float(8)) - aiSvc.setLoiter(womprat25, float(1), float(8)) - aiSvc.setLoiter(womprat26, float(1), float(8)) - return \ No newline at end of file + return diff --git a/scripts/static_spawns/tatooine/mos_eisley_worrts.py b/scripts/static_spawns/tatooine/mos_eisley_worrts.py index dfc4996f..f6402cf8 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_worrts.py +++ b/scripts/static_spawns/tatooine/mos_eisley_worrts.py @@ -1,15 +1,17 @@ +import sys # Project SWG: MosEisley Worrts: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService # Tame Worrts tame_worrt1 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3153), float(4), float(-4945), float(0), float(0), float(0), float(0), 30) @@ -27,17 +29,5 @@ def addPlanetSpawns(core, planet): tame_worrt24 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3145), float(4), float(-4746), float(0), float(0), float(0), float(0), 30) tame_worrt25 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3120), float(4), float(-4721), float(0), float(0), float(0), float(0), 30) - aiSvc.setLoiter(tame_worrt1, float(1), float(8)) - aiSvc.setLoiter(tame_worrt2, float(1), float(8)) - aiSvc.setLoiter(tame_worrt3, float(1), float(8)) - aiSvc.setLoiter(tame_worrt4, float(1), float(8)) - aiSvc.setLoiter(tame_worrt5, float(1), float(8)) - - aiSvc.setLoiter(tame_worrt2, float(1), float(8)) - aiSvc.setLoiter(tame_worrt21, float(1), float(8)) - aiSvc.setLoiter(tame_worrt22, float(1), float(8)) - aiSvc.setLoiter(tame_worrt23, float(1), float(8)) - aiSvc.setLoiter(tame_worrt24, float(1), float(8)) - aiSvc.setLoiter(tame_worrt25, float(1), float(8)) return \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py b/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py index 52c09416..4bbd6e7c 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py +++ b/scripts/static_spawns/tatooine/mos_eisley_wt_bunker.py @@ -1,16 +1,19 @@ +import sys # Project SWG: WT Bunker: Static Spawns # (C)2014 ProjectSWG -import sys + + from resources.datatables import Options from resources.datatables import State from resources.datatables import Posture def addPlanetSpawns(core, planet): + stcSvc = core.staticService objSvc = core.objectService - aiSvc = core.aiService + #Outside wt_guard = stcSvc.spawnObject('white_thranta_security_guard', 'tatooine', long(0), float(3749.7), float(16.8), float(-4200.5), float(0), float(0), float(0), float(0), 45) @@ -22,14 +25,6 @@ def addPlanetSpawns(core, planet): wt_guard6 = stcSvc.spawnObject('white_thranta_security_guard', 'tatooine', long(0), float(3718.3), float(16.2), float(-4193.1), float(0), float(0), float(0), float(0), 45) wt_guard7 = stcSvc.spawnObject('white_thranta_security_guard', 'tatooine', long(0), float(3707), float(17.7), float(-4187.6), float(0), float(0), float(0), float(0), 45) - aiSvc.setLoiter(wt_guard, float(1), float(8)) - aiSvc.setLoiter(wt_guard1, float(1), float(8)) - aiSvc.setLoiter(wt_guard2, float(1), float(8)) - aiSvc.setLoiter(wt_guard3, float(1), float(8)) - aiSvc.setLoiter(wt_guard4, float(1), float(8)) - aiSvc.setLoiter(wt_guard5, float(1), float(8)) - aiSvc.setLoiter(wt_guard6, float(1), float(8)) - aiSvc.setLoiter(wt_guard7, float(1), float(8)) #inside wt_bunker = core.objectService.getObject(long(-466404036409557111)) From 2c531c09596ac1f7418da716ef1f6893678fb363 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Sat, 19 Jul 2014 12:55:04 -0400 Subject: [PATCH 51/51] Changed trading so it's more responsive Will need to refactor how most of this stuff is done, it's pretty ugly atm. For now I changed so the trading maps will only store the object ID's, this way we don't have the objects not being traded (since they aren't initialized) --- .../objects/building/BuildingObject.java | 7 ++++- src/services/trade/TradeService.java | 31 ++++++++++--------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index 102dc5ff..fa44577f 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -60,7 +60,8 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria public BuildingObject(long objectID, Planet planet, Point3D position, Quaternion orientation, String Template) { super(objectID, planet, position, orientation, Template); - getBaseline(3).set("volume", 255); + getBaseline(3).set("volume", 255); // 255 seen on player buildings + some server spawned ones and 100 - lucky despot, watto + //getBaseline(3).set("complexity", (float) 1); // seen as 1 (player housing) + some server spawned ones and 0 - lucky despot, watto setOptionsBitmask(Options.INVULNERABLE); setConditionDamage(0); setMaximumCondition(4320); @@ -70,6 +71,7 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria public BuildingObject() { super(); getBaseline(3).set("volume", 255); + getBaseline(3).set("complexity", (float) 1); setOptionsBitmask(Options.INVULNERABLE); setConditionDamage(0); setMaximumCondition(4320); @@ -81,6 +83,7 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria super.init(); defendersList = new Vector(); getBaseline(3).set("volume", 255); + getBaseline(3).set("complexity", (float) 1); setOptionsBitmask(Options.INVULNERABLE); setConditionDamage(0); setMaximumCondition(4320); @@ -102,6 +105,8 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria @Override public Baseline getBaseline3() { Baseline baseline = super.getBaseline3(); + + // No additional variables, uses TANO return baseline; } diff --git a/src/services/trade/TradeService.java b/src/services/trade/TradeService.java index 2b18e7b9..98fdc8a2 100644 --- a/src/services/trade/TradeService.java +++ b/src/services/trade/TradeService.java @@ -1,9 +1,9 @@ package services.trade; import java.nio.ByteOrder; -import java.util.Hashtable; import java.util.Iterator; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import main.NGECore; @@ -25,13 +25,10 @@ import resources.objects.creature.CreatureObject; import engine.clients.Client; import engine.resources.container.AllPermissions; import engine.resources.container.CreatureContainerPermissions; -import engine.resources.container.CreaturePermissions; import engine.resources.objects.SWGObject; import engine.resources.service.INetworkDispatch; import engine.resources.service.INetworkRemoteEvent; -@SuppressWarnings("unused") - public class TradeService implements INetworkDispatch{ private NGECore core; @@ -40,11 +37,11 @@ public class TradeService implements INetworkDispatch{ private long senderID; - private Hashtable tradingObjectsTable = new Hashtable(); + private Map tradingObjectsTable = new ConcurrentHashMap(); // key = objectToGive, value = giver's ID // need to be sure that no giver ID exists in table before adding value - private Hashtable tradingCreditsTable = new Hashtable(); + private Map tradingCreditsTable = new ConcurrentHashMap(); // key = ID of giver value = amnt recieving public TradeService(NGECore core) { @@ -147,17 +144,21 @@ public class TradeService implements INetworkDispatch{ SWGObject tradeObject = null; - Iterator> itr = tradingObjectsTable.entrySet().iterator(); + Iterator> itr = tradingObjectsTable.entrySet().iterator(); while (itr.hasNext()) { - Map.Entry entry = itr.next(); + Map.Entry entry = itr.next(); if(tradingWithClient == entry.getValue()) { - tradeObject = entry.getKey(); + tradeObject = core.objectService.getObject(entry.getKey()); itr.remove(); } } + if (tradeObject == null) { + cleanTradeSession(client, tradeeClient); + return; + } client.getSession().removeAttribute("tradeSession"); tradeeClient.getSession().removeAttribute("tradeSession"); @@ -353,13 +354,13 @@ public class TradeService implements INetworkDispatch{ else if (tradePartner.getClient().getSession().containsAttribute("tradeSessionIsVerified")) { - Iterator> itr = tradingObjectsTable.entrySet().iterator(); + Iterator> itr = tradingObjectsTable.entrySet().iterator(); while (itr.hasNext()) { - Map.Entry entry = itr.next(); + Map.Entry entry = itr.next(); if(tradingWithClient == entry.getValue()) { - tradeObject = entry.getKey(); + tradeObject = core.objectService.getObject(entry.getKey()); if (actingTrader == null || tradePartnerContainer == null || tradePartner == null) { cleanTradeSession(client, tradePartner.getClient()); @@ -409,15 +410,15 @@ public class TradeService implements INetworkDispatch{ return tradeSessionValue; } - public Hashtable getTradingObjectMap() { + public Map getTradingObjectMap() { return tradingObjectsTable; } public void addItemForTrade(SWGObject swgObject, long tradePartnerID) { - if (tradingObjectsTable.containsKey(swgObject)) { + if (tradingObjectsTable.containsKey(swgObject.getObjectID())) { removeItemForTrade(swgObject); } - tradingObjectsTable.put(swgObject, tradePartnerID); + tradingObjectsTable.put(swgObject.getObjectID(), tradePartnerID); } public void removeItemForTrade(SWGObject swgObject) {