diff --git a/scripts/mobiles/generic/faction/imperial/imperial_recruiter.py b/scripts/mobiles/generic/faction/imperial/imperial_recruiter.py new file mode 100644 index 00000000..e9186241 --- /dev/null +++ b/scripts/mobiles/generic/faction/imperial/imperial_recruiter.py @@ -0,0 +1,43 @@ +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 resources.datatables import FactionStatus +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('imperial_recruiter') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE) + mobileTemplate.setConversationFileName('imp_recruiter') + + templates = Vector() + templates.add('object/mobile/shared_dressed_imperial_officer_f.iff') + templates.add('object/mobile/shared_dressed_imperial_officer_m.iff') + templates.add('object/mobile/shared_dressed_imperial_officer_m_2.iff') + templates.add('object/mobile/shared_dressed_imperial_officer_m_3.iff') + templates.add('object/mobile/shared_dressed_imperial_officer_m_4.iff') + templates.add('object/mobile/shared_dressed_imperial_officer_m_5.iff') + templates.add('object/mobile/shared_dressed_imperial_officer_m_6.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 0, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('meleeHit') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('imperial_recruiter', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/generic/faction/rebel/rebel_recruiter.py b/scripts/mobiles/generic/faction/rebel/rebel_recruiter.py new file mode 100644 index 00000000..b7e37139 --- /dev/null +++ b/scripts/mobiles/generic/faction/rebel/rebel_recruiter.py @@ -0,0 +1,40 @@ +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 resources.datatables import FactionStatus +from java.util import Vector + + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('rebel_recruiter') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE) + mobileTemplate.setConversationFileName('reb_recruiter') + + templates = Vector() + templates.add('object/mobile/shared_dressed_rebel_recruiter_human_female_01.iff') + templates.add('object/mobile/shared_dressed_rebel_recruiter_human_female_02.iff') + templates.add('object/mobile/shared_dressed_rebel_recruiter_moncal_male_01.iff') + templates.add('object/mobile/shared_dressed_rebel_recruiter_twilek_female_01.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 0, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('meleeHit') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('rebel_recruiter', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/object/mobile/dressed_imperial_officer_f.py b/scripts/object/mobile/dressed_imperial_officer_f.py index 52476091..d0a55c83 100644 --- a/scripts/object/mobile/dressed_imperial_officer_f.py +++ b/scripts/object/mobile/dressed_imperial_officer_f.py @@ -1,12 +1,6 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','imp_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('imperial_recruiter') - - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) - return + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return + diff --git a/scripts/object/mobile/dressed_imperial_officer_m.py b/scripts/object/mobile/dressed_imperial_officer_m.py index ccad8904..372a06ca 100644 --- a/scripts/object/mobile/dressed_imperial_officer_m.py +++ b/scripts/object/mobile/dressed_imperial_officer_m.py @@ -1,4 +1,5 @@ import sys def setup(core, object): - return \ No newline at end of file + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return diff --git a/scripts/object/mobile/dressed_imperial_officer_m_2.py b/scripts/object/mobile/dressed_imperial_officer_m_2.py index 52476091..372a06ca 100644 --- a/scripts/object/mobile/dressed_imperial_officer_m_2.py +++ b/scripts/object/mobile/dressed_imperial_officer_m_2.py @@ -1,12 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','imp_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('imperial_recruiter') - - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) - return + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return diff --git a/scripts/object/mobile/dressed_imperial_officer_m_3.py b/scripts/object/mobile/dressed_imperial_officer_m_3.py index 52476091..372a06ca 100644 --- a/scripts/object/mobile/dressed_imperial_officer_m_3.py +++ b/scripts/object/mobile/dressed_imperial_officer_m_3.py @@ -1,12 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','imp_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('imperial_recruiter') - - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) - return + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return diff --git a/scripts/object/mobile/dressed_imperial_officer_m_4.py b/scripts/object/mobile/dressed_imperial_officer_m_4.py index 52476091..372a06ca 100644 --- a/scripts/object/mobile/dressed_imperial_officer_m_4.py +++ b/scripts/object/mobile/dressed_imperial_officer_m_4.py @@ -1,12 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','imp_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('imperial_recruiter') - - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) - return + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return diff --git a/scripts/object/mobile/dressed_imperial_officer_m_5.py b/scripts/object/mobile/dressed_imperial_officer_m_5.py index 52476091..372a06ca 100644 --- a/scripts/object/mobile/dressed_imperial_officer_m_5.py +++ b/scripts/object/mobile/dressed_imperial_officer_m_5.py @@ -1,12 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','imp_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('imperial_recruiter') - - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) - return + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return diff --git a/scripts/object/mobile/dressed_imperial_officer_m_6.py b/scripts/object/mobile/dressed_imperial_officer_m_6.py index 220d9fd8..372a06ca 100644 --- a/scripts/object/mobile/dressed_imperial_officer_m_6.py +++ b/scripts/object/mobile/dressed_imperial_officer_m_6.py @@ -1,12 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','imp_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('imperial_recruiter') - - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) - return + core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0) + return diff --git a/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py b/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py index d4d1de24..0b842600 100644 --- a/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py +++ b/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py @@ -1,12 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','reb_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('rebel_recruiter') - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0) return diff --git a/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py b/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py index 4f948254..0b842600 100644 --- a/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py +++ b/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py @@ -1,13 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','reb_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('rebel_recruiter') - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0) - return diff --git a/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py b/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py index efad85db..0b842600 100644 --- a/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py +++ b/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py @@ -1,13 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','reb_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('rebel_recruiter') - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0) - return diff --git a/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py b/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py index 25c143c9..0b842600 100644 --- a/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py +++ b/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py @@ -1,13 +1,5 @@ import sys -from resources.datatables import Options def setup(core, object): - object.setAttachment('radial_filename', 'object/conversation'); - object.setAttachment('conversationFile','reb_recruiter') - object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) - object.setStfFilename('mob/creature_names') - object.setStfName('rebel_recruiter') - core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0) - return diff --git a/scripts/static_spawns/tatooine/factional_recruiters.py b/scripts/static_spawns/tatooine/factional_recruiters.py index 6f9b4137..17f613c1 100644 --- a/scripts/static_spawns/tatooine/factional_recruiters.py +++ b/scripts/static_spawns/tatooine/factional_recruiters.py @@ -11,20 +11,23 @@ def addPlanetSpawns(core, planet): stcSvc = core.staticService objSvc = core.objectService + +#Imperial Recruiters + #Imp recruiter Eisley smallImpHouse = core.objectService.getObject(long(1280129)) - stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_f.iff', 'tatooine', smallImpHouse.getCellByCellNumber(3), float(-6), float(1), float(9.2), float(0.71), float(0), float(0.70), float(0)) + stcSvc.spawnObject('imperial_recruiter', 'tatooine', smallImpHouse.getCellByCellNumber(3), float(-6), float(1), float(9.2), float(0.71), float(0), float(0.70), float(0)) #Imp recruiter Bestine #Hill - stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_5.iff', 'tatooine', long(0), float(-1138), float(98), float(-3897), float(0.71), float(0), float(0.70), float(0)) + stcSvc.spawnObject('imperial_recruiter', 'tatooine', long(0), float(-1138), float(98), float(-3897), float(0.71), float(0), float(0.70), float(0)) #outside SP - stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_3.iff', 'tatooine', long(0), float(-1275), float(12), float(-3594), float(0), float(0), float(0), float(0)) + stcSvc.spawnObject('imperial_recruiter', 'tatooine', long(0), float(-1275), float(12), float(-3594), float(0), float(0), float(0), float(0)) - # Reb Recruiter +#Rebel Recruiters #Anchorhead cantina anchCantina = core.objectService.getObject(long(1213343)) - stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_human_female_01.iff', 'tatooine', anchCantina.getCellByCellNumber(2), float(-2.2), float(0.4), float(-5.4), float(0), float(0), float(0), float(0)) - + stcSvc.spawnObject('rebel_recruiter', 'tatooine', anchCantina.getCellByCellNumber(6), float(-6.1), float(-1.8), float(-6.2), float(0), float(0), float(0), float(-90)) + return \ No newline at end of file diff --git a/src/services/spawn/SpawnService.java b/src/services/spawn/SpawnService.java index b4b60c52..1a612118 100644 --- a/src/services/spawn/SpawnService.java +++ b/src/services/spawn/SpawnService.java @@ -107,8 +107,6 @@ public class SpawnService { creature.setLootGroups(mobileTemplate.getLootGroups()); creature.setOptionsBitmask(mobileTemplate.getOptionsBitmask()); - if (mobileTemplate.getConversationFileName().length()>0) - creature.setAttachment("conversationFile",mobileTemplate.getConversationFileName()); creature.setFaction(mobileTemplate.getFaction()); creature.setFactionStatus(mobileTemplate.getFactionStatus()); @@ -211,7 +209,11 @@ public class SpawnService { AIActor actor = new AIActor(creature, creature.getPosition(), scheduler); creature.setAttachment("AI", actor); - creature.setAttachment("radial_filename", "npc/mobile"); + if (mobileTemplate.getConversationFileName().length()>0){ + creature.setAttachment("radial_filename", "object/conversation"); + creature.setAttachment("conversationFile", mobileTemplate.getConversationFileName()); + } + else creature.setAttachment("radial_filename", "npc/mobile"); actor.setMobileTemplate(mobileTemplate);