mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-15 05:13:14 -04:00
Binary file not shown.
@@ -11,6 +11,9 @@ def run(core, actor, target, commandString):
|
||||
if not playerObject:
|
||||
return
|
||||
|
||||
if target is not None:
|
||||
print ('has target!')
|
||||
|
||||
commandArgs = commandString.split(' ')
|
||||
command = commandArgs[0]
|
||||
if len(commandArgs) > 1:
|
||||
@@ -45,10 +48,4 @@ def run(core, actor, target, commandString):
|
||||
actor.addAbility(str(arg1))
|
||||
actor.sendSystemMessage('You have learned ' + arg1 + '')
|
||||
|
||||
elif command == 'anim' and arg1:
|
||||
actor.setCurrentAnimation(arg1)
|
||||
actor.sendSystemMessage('Performed ' + arg1 ,0)
|
||||
|
||||
elif command == 'changeBio' and arg1:
|
||||
actor.getSlottedObject('ghost').setBiography(arg1)
|
||||
return
|
||||
|
||||
@@ -3,7 +3,11 @@ from services.spawn import LairSpawnTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addLairGroup(core):
|
||||
spawnTemplate = LairSpawnTemplate(-1, 'tatooine_kreetle_lair_neutral_small', 5, 20)
|
||||
spawnTemplate1 = LairSpawnTemplate(-1, 'tatooine_kreetle_lair_neutral_small', 5, 20)
|
||||
spawnTemplate2 = LairSpawnTemplate(-1, 'tatooine_womprat_lair_neutral_small', 5, 15)
|
||||
|
||||
spawnTemplates = Vector()
|
||||
spawnTemplates.add(spawnTemplate)
|
||||
#spawnTemplates.add(spawnTemplate1)
|
||||
spawnTemplates.add(spawnTemplate2)
|
||||
|
||||
core.spawnService.addLairGroup('tatooine_starter', spawnTemplates)
|
||||
@@ -0,0 +1,4 @@
|
||||
import sys
|
||||
|
||||
def addTemplate(core):
|
||||
core.spawnService.addLairTemplate('tatooine_womprat_lair_neutral_small', 'womprat', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
|
||||
@@ -0,0 +1,15 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_kreetle.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
mobileTemplate.setLevel(5)
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
core.spawnService.addMobileTemplate('kreetle', mobileTemplate)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_womp_rat.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
mobileTemplate.setLevel(5)
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
core.spawnService.addMobileTemplate('womprat', mobileTemplate)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStringAttribute('crystal_owner', '\#FFFF00UNTUNED')
|
||||
object.setStringAttribute('quality', 'Poor')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_bounty_hunter_clicky_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_bounty_hunter_clicky_01_02')
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_force_sensitive_clicky_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_force_sensitive_clicky_01_02')
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
return
|
||||
@@ -1,7 +1,7 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'bank')
|
||||
object.setAttachment('radial_filename', 'terminal/bank')
|
||||
core.mapService.addLocation(object.getPlanet(), 'Bank Terminal', object.getPosition().x, object.getPosition().z, 41, 42, 0)
|
||||
return
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'cloning_terminal')
|
||||
object.setAttachment('radial_filename', 'terminal/cloning_terminal')
|
||||
return
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'travel_terminal')
|
||||
object.setAttachment('radial_filename', 'terminal/travel_terminal')
|
||||
return
|
||||
@@ -1,5 +1,5 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'npc_ticket_collector')
|
||||
object.setAttachment('radial_filename', 'npc/npc_ticket_collector')
|
||||
return
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_bicep_l_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_bicep_l_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_bicep_r_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_bicep_r_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_boots_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_boots_02_01')
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
return
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_bracer_l_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_bracer_l_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_bracer_r_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_bracer_r_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_chest_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_chest_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_gloves_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_gloves_02_01')
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
return
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_helmet_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_helmet_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_bounty_hunter_roadmap_leggings_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_bounty_hunter_roadmap_leggings_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_bicep_l_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_bicep_l_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_bicep_r_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_bicep_r_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_boots_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_boots_02_03')
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
return
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_bracer_l_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_bracer_l_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_bracer_r_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_bracer_r_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_chest_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_chest_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_gloves_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_gloves_02_03')
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
return
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_helmet_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_helmet_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_ithorian_roadmap_leggings_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_ithorian_roadmap_leggings_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_wookiee_roadmap_bicep_l_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_wookiee_roadmap_bicep_l_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_wookiee_roadmap_bicep_r_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_wookiee_roadmap_bicep_r_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_wookiee_roadmap_bracer_l_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_wookiee_roadmap_bracer_l_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_wookiee_roadmap_bracer_r_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_wookiee_roadmap_bracer_r_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_wookiee_roadmap_chest_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_wookiee_roadmap_chest_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('armor_wookiee_roadmap_leggings_02_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('armor_wookiee_roadmap_leggings_02_03')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setStringAttribute('armor_category', 'Assault')
|
||||
object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
|
||||
object.setIntAttribute('cat_armor_standard_protection.energy', 640)
|
||||
object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
|
||||
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
|
||||
@@ -0,0 +1,13 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_roadmap_belt_bounty_hunter_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_roadmap_belt_bounty_hunter_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setIntAttribute('required_combat_level', 90)
|
||||
return
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_roadmap_belt_force_sensitive_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_roadmap_belt_force_sensitive_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
object.setIntAttribute('required_combat_level', 90)
|
||||
return
|
||||
@@ -0,0 +1,11 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_bounty_hunter_backpack_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_bounty_hunter_backpack_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
return
|
||||
@@ -0,0 +1,11 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_bounty_hunter_pendant_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_bounty_hunter_pendant_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
return
|
||||
@@ -0,0 +1,11 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_force_sensitive_pendant_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_force_sensitive_pendant_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 12)
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
@@ -0,0 +1,13 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('objType', 'ring')
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_bounty_hunter_ring_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_bounty_hunter_ring_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
return
|
||||
@@ -0,0 +1,13 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('objType', 'ring')
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_force_sensitive_ring_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_force_sensitive_ring_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 6)
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
return
|
||||
@@ -0,0 +1,13 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('objType', 'ring')
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_force_sensitive_ring_02_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_force_sensitive_ring_02_01')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 5)
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('objType', 'ring')
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
@@ -1,6 +1,8 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
|
||||
def equip(core, actor, object):
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
|
||||
def equip(core, actor, object):
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
|
||||
def equip(core, actor, object):
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
@@ -1,6 +1,8 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'ring/unity')
|
||||
object.setAttachment('objType', 'ring')
|
||||
return
|
||||
|
||||
def equip(core, actor, object):
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_npe_fs_robe_02_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('weapon_carbine_bh_roadmap_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('weapon_carbine_bh_roadmap_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setIntAttribute('required_combat_level', 30)
|
||||
object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.6)
|
||||
object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
|
||||
object.setStringAttribute('cat_wpn_damage.damage', '109-218')
|
||||
object.setStringAttribute('cat_wpn_damage.range', '0-55m')
|
||||
object.setStringAttribute('cat_wpn_damage.wpn_category', 'Carbine')
|
||||
object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
|
||||
return
|
||||
@@ -0,0 +1,17 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('weapon_rifle_bh_roadmap_01_02')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('weapon_rifle_bh_roadmap_01_02')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
|
||||
object.setStringAttribute('class_required', 'Bounty Hunter')
|
||||
object.setIntAttribute('required_combat_level', 50)
|
||||
object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.8)
|
||||
object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
|
||||
object.setStringAttribute('cat_wpn_damage.damage', '261-522')
|
||||
object.setStringAttribute('cat_wpn_damage.range', '0-64m')
|
||||
object.setStringAttribute('cat_wpn_damage.wpn_category', 'Rifle')
|
||||
object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
from resources.common import RadialOptions
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.add(RadialOptions(0, 21, 1, ''))
|
||||
radials.add(RadialOptions(0, 7, 1, ''))
|
||||
radials.add(RadialOptions(0, 15, 1, ''))
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
if option == 21 and target:
|
||||
core.objectService.useObject(owner, target)
|
||||
if option == 15 and target:
|
||||
core.objectService.destroyObject(target)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
from resources.common import RadialOptions
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.add(RadialOptions(0, 7, 1, ''))
|
||||
radials.add(RadialOptions(0, 15, 1, ''))
|
||||
radials.add(RadialOptions(0, 61, 1, ''))
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
if option == 61 and target:
|
||||
core.objectService.useObject(owner, target)
|
||||
if option == 15 and target:
|
||||
core.objectService.destroyObject(target)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
from resources.common import RadialOptions
|
||||
from services.sui.SUIWindow import Trigger
|
||||
from java.util import Vector
|
||||
from main import NGECore
|
||||
from engine.resources.objects import SWGObject
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
|
||||
ghost = owner.getSlottedObject('ghost')
|
||||
if ghost is None:
|
||||
return
|
||||
|
||||
if ghost.getSpouseName() is None or ghost.getSpouseName() is "":
|
||||
targetPlayer = core.objectService.getObject(owner.getTargetId())
|
||||
if targetPlayer is not None and targetPlayer.getSlottedObject('ghost') is not None:
|
||||
radials.add(RadialOptions(0, 69, 1, '@unity:mnu_propose'))
|
||||
return
|
||||
else:
|
||||
radials.add(RadialOptions(0, 70, 1, '@unity:mnu_divorce'))
|
||||
return
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
if option == 69 and target:
|
||||
player = core.objectService.getObject(owner.getTargetId())
|
||||
tGhost = player.getSlottedObject('ghost')
|
||||
suiSvc = core.suiService
|
||||
|
||||
if tGhost.getPosition().getDistance2D(owner.getWorldPosition()) < 50:
|
||||
owner.sendSystemMessage('@unity:out_of_range', 0)
|
||||
return
|
||||
|
||||
if tGhost.getSpouseName() is not None:
|
||||
owner.sendSystemMessage('@unity:target_married', 0)
|
||||
return
|
||||
|
||||
if player.getAttachment("proposer") is not None:
|
||||
owner.sendSystemMessage('@unity:target_proposed', 0)
|
||||
return
|
||||
|
||||
else:
|
||||
|
||||
owner.sendSystemMessage('You propose unity to ' + player.getCustomName() + '.', 0)
|
||||
targetWindow = suiSvc.createMessageBox(3, '@unity:accept_title', owner.getCustomName() + ' is proposing unity to you. Do you wish to accept?', tGhost.getContainer(), owner, 15)
|
||||
returnList = Vector()
|
||||
|
||||
targetWindow.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handlePropose)
|
||||
targetWindow.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, handlePropose)
|
||||
player.setAttachment("proposer", owner.getCustomName())
|
||||
suiSvc.openSUIWindow(targetWindow)
|
||||
|
||||
target.setAttachment("unity", True)
|
||||
core.equipmentService.equip(owner, target)
|
||||
|
||||
core.commandService.callCommand(owner, 'kneel', None, '')
|
||||
return
|
||||
return
|
||||
|
||||
if option == 70:
|
||||
married = owner.getSlottedObject('ghost').getSpouseName()
|
||||
myGhost = owner.getSlottedObject('ghost')
|
||||
otherPlayer = NGECore.getInstance().objectService.getObjectByCustomName(married)
|
||||
|
||||
if otherPlayer is None:
|
||||
return
|
||||
ghost = otherPlayer.getSlottedObject('ghost')
|
||||
|
||||
if ghost is None:
|
||||
return
|
||||
|
||||
owner.sendSystemMessage('Your union with ' + married + ' has ended.', 0)
|
||||
otherPlayer.sendSystemMessage('Your union with ' + owner.getCustomName() + ' has ended.', 0)
|
||||
myGhost.setSpouseName(None)
|
||||
ghost.setSpouseName(None)
|
||||
|
||||
target.setAttachment("unity", None)
|
||||
#TODO: Divorce offline players
|
||||
return
|
||||
return
|
||||
|
||||
def handlePropose(owner, window, eventType, returnList):
|
||||
core = NGECore.getInstance()
|
||||
|
||||
if owner is None:
|
||||
return
|
||||
|
||||
if eventType == 0:
|
||||
proposer = core.objectService.getObjectByCustomName(owner.getAttachment("proposer"))
|
||||
if proposer is None:
|
||||
return
|
||||
|
||||
core.playerService.performUnity(owner, proposer)
|
||||
return
|
||||
|
||||
if eventType == 1:
|
||||
proposer = core.objectService.getObjectByCustomName(owner.getAttachment("proposer"))
|
||||
proposer.sendSystemMessage('@unity:declined', 0)
|
||||
for SWGObject in proposer.getEquipmentList():
|
||||
if SWGObject.getAttachment("unity") is not None:
|
||||
SWGObject.setAttachment("unity", None)
|
||||
break
|
||||
|
||||
owner.setAttachment("proposer", None)
|
||||
return
|
||||
return
|
||||
@@ -2,7 +2,7 @@ from resources.common import RadialOptions
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.clear
|
||||
radials.clear()
|
||||
|
||||
radials.add(RadialOptions(0, 21, 1, 'Use Travel Ticket'))
|
||||
#radials.add(RadialOptions(0, 7, 1, ''))
|
||||
@@ -31,7 +31,7 @@ def handleSelection(core, owner, target, option):
|
||||
return
|
||||
|
||||
if option == 15 and target:
|
||||
core.commandService.callCommand(owner, 'serverdestroyobject', target, None)
|
||||
core.objectService.destroyObject(target)
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
from resources.common import RadialOptions
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.add(RadialOptions(0, 21, 1, ''))
|
||||
radials.add(RadialOptions(0, 7, 1, ''))
|
||||
radials.add(RadialOptions(0, 15, 1, ''))
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
if option == 21 and target:
|
||||
core.objectService.useObject(owner, target)
|
||||
if option == 15 and target:
|
||||
core.objectService.destroyObject(target)
|
||||
return
|
||||
|
||||
@@ -1,9 +1,122 @@
|
||||
import sys
|
||||
|
||||
def get(name):
|
||||
# Jedi #
|
||||
if name == 'item_force_sensitive_ring_02_01':
|
||||
return "object/tangible/wearables/ring/shared_ring_s02.iff"
|
||||
|
||||
if name == 'item_npe_fs_robe_02_02':
|
||||
return "object/tangible/wearables/robe/shared_robe_jedi_padawan.iff"
|
||||
|
||||
if name == 'weapon_roadmap_lightsaber_02_02':
|
||||
return "object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_s1.iff"
|
||||
return "object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_s1.iff"
|
||||
|
||||
if name == 'item_force_sensitive_ring_01_02':
|
||||
return "object/tangible/wearables/ring/shared_ring_s01.iff"
|
||||
|
||||
if name == 'item_krayt_pearl_04_01':
|
||||
return "object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff"
|
||||
|
||||
if name == 'item_force_sensitive_pendant_01_02':
|
||||
return "object/tangible/wearables/necklace/shared_necklace_s12.iff"
|
||||
|
||||
if name == 'item_force_sensitive_clicky_01_02':
|
||||
return "object/tangible/loot/generic_usable/shared_generic_crystal.iff"
|
||||
|
||||
if name == 'item_roadmap_belt_force_sensitive_01_02':
|
||||
return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
|
||||
|
||||
# Bounty Hunter #
|
||||
|
||||
if name == 'item_bounty_hunter_backpack_01_02':
|
||||
return "object/tangible/wearables/backpack/shared_backpack_s05.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_bicep_l_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_bicep_r_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_r.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_bracer_l_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_l.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_bracer_r_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_r.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_boots_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_chest_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_chest_plate.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_gloves_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_helmet_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_helmet.iff"
|
||||
|
||||
if name == 'armor_bounty_hunter_roadmap_leggings_02_01':
|
||||
return "object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff"
|
||||
|
||||
if name == 'armor_wookiee_roadmap_chest_02_03':
|
||||
return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
|
||||
|
||||
if name == 'armor_wookiee_roadmap_leggings_02_03':
|
||||
return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
|
||||
|
||||
if name == 'armor_wookiee_roadmap_bicep_l_02_03':
|
||||
return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
|
||||
|
||||
if name == 'armor_wookiee_roadmap_bicep_r_02_03':
|
||||
return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
|
||||
|
||||
if name == 'armor_wookiee_roadmap_bracer_l_02_03':
|
||||
return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
|
||||
|
||||
if name == 'armor_wookiee_roadmap_bracer_r_02_03':
|
||||
return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_chest_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_leggings_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_helmet_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_bicep_l_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_bicep_r_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_bracer_l_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_bracer_r_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_boots_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
|
||||
|
||||
if name == 'armor_ithorian_roadmap_gloves_02_03':
|
||||
return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
|
||||
|
||||
if name == 'weapon_carbine_bh_roadmap_01_02':
|
||||
return "object/weapon/ranged/carbine/shared_carbine_ee3.iff"
|
||||
|
||||
if name == 'item_bounty_hunter_ring_01_02':
|
||||
return "object/tangible/wearables/ring/shared_ring_s02.iff"
|
||||
|
||||
if name == 'weapon_rifle_bh_roadmap_01_02':
|
||||
return "object/weapon/ranged/rifle/shared_rifle_lightning.iff"
|
||||
|
||||
if name == 'item_bounty_hunter_pendant_01_02':
|
||||
return "object/tangible/wearables/necklace/shared_necklace_s02.iff"
|
||||
|
||||
if name == 'item_bounty_hunter_clicky_01_02':
|
||||
return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
|
||||
|
||||
if name == 'item_roadmap_belt_bounty_hunter_01_02':
|
||||
return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
|
||||
@@ -1,6 +1,6 @@
|
||||
import sys
|
||||
|
||||
def CombatBrawlerTrandoshanFemale(core, object):
|
||||
def CombatBrawlerOutdoorScoutTrandoshanFemale(core, object):
|
||||
shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s24.iff', object.getPlanet())
|
||||
jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s24.iff', object.getPlanet())
|
||||
pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s25.iff', object.getPlanet())
|
||||
@@ -8,4 +8,4 @@ def CombatBrawlerTrandoshanFemale(core, object):
|
||||
object._add(shirt)
|
||||
object._add(jacket)
|
||||
object._add(pants)
|
||||
object._add(necklace)
|
||||
object._add(necklace)
|
||||
|
||||
@@ -4,48 +4,7 @@ from resources.datatables import Options
|
||||
from resources.datatables import StateStatus
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
#This Script is no longer to be used for NPC Scripting. - Levarris
|
||||
|
||||
stcSvc = core.staticService
|
||||
#Nym's Stronghold -Fingies
|
||||
|
||||
#Outside
|
||||
|
||||
nymtech = stcSvc.spawnObject('object/mobile/shared_dressed_nym_technician_2.iff', 'lok', long(0), float(372.87), float(11.99), float(4984.83), float(0.97), float(-0.21))
|
||||
nymtech.setCustomName2('Nym\'s Fuel Technician')
|
||||
disgrunt1 = stcSvc.spawnObject('object/mobile/shared_nym_themepark_d_townsperson_lead.iff', 'lok', long(0), float(473.28), float(23.00), float(4945.03), float(0.043), float(0.99))
|
||||
disgrunt1.setCustomName2('a disgruntled townsperson')
|
||||
guard1 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_guard_weak_nikto_m.iff', 'lok', long(0), float(472.82), float(22.57), float(4920.00), float(0), float(0))
|
||||
guard1.setCustomName2('Nym\'s Guard')
|
||||
guard2 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_guard_weak_hum_m.iff', 'lok', long(0), float(480.74), float(22.64), float(4920.02), float(0), float(0))
|
||||
guard2.setCustomName2('Nym\'s Guard')
|
||||
|
||||
#Nym's Palace - Interior
|
||||
|
||||
brawl1 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_brawler_hum_f.iff', 'lok', long(6595511), float(5.7), float(1.3), float(-6.1), float(0.90), float(-0.42))
|
||||
brawl1.setCustomName2('Nym\'s Brawler')
|
||||
surv1 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_surveyer_rod_m.iff', 'lok', long(6595511), float(4.5), float(1.3), float(-4.1), float(0.078), float(-0.99))
|
||||
surv1.setCustomName2('Nym\'s Surveyor')
|
||||
bodyg1 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_bodyguard_hum_m.iff', 'lok', long(6595511), float(7.8), float(1.3), float(-6.8), float(0.782), float(0.622))
|
||||
bodyg1.setCustomName2('Nym\'s Bodyguard')
|
||||
mako = stcSvc.spawnObject('object/mobile/shared_nym_themepark_mako_ghast.iff', 'lok', long(6595511), float(5.5), float(4.1), float(-13.9), float(0.309), float(0.951))
|
||||
mako.setCustomName2('Mako Ghast')
|
||||
bodyg2 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_bodyguard_rod_m.iff', 'lok', long(6595511), float(0.3), float(1.3), float(3.2), float(0.707), float(0.707))
|
||||
bodyg2.setCustomName2('Nym\'s Bodyguard')
|
||||
bodyg3 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_bodyguard_rod_m.iff', 'lok', long(6595511), float(-1.6), float(1.3), float(3.0), float(0.707), float(-0.707))
|
||||
bodyg3.setCustomName2('Nym\'s Bodyguard')
|
||||
surv2 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_surveyer_rod_m.iff', 'lok', long(6595511), float(-9.1), float(1.3), float(-5.9), float(1), float(0))
|
||||
surv2.setCustomName2('Nym\'s Surveyor')
|
||||
brawl2 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_brawler_tran_m.iff', 'lok', long(6595511), float(-9.1), float(1.3), float(-3.1), float(0.0087), float(0.999))
|
||||
brawl2.setCustomName2('Nym\'s Brawler')
|
||||
guard3 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_guard_weak_hum_m.iff', 'lok', long(6595511), float(-19.7), float(2.3), float(-17.6), float(0.999), float(0.0087))
|
||||
guard3.setCustomName2('Nym\'s Guard')
|
||||
creep1 = stcSvc.spawnObject('object/mobile/shared_slicer_kelson_sharphorn.iff', 'lok', long(6595511), float(-4.2), float(2.3), float(7.6), float(0.0174), float(0.9998))
|
||||
creep1.setCustomName2('Kelson Sharphorn')
|
||||
guard4 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_guard_weak_hum_m.iff', 'lok', long(6595511), float(24.8), float(2.3), float(7.9), float(0.0174), float(0.9998))
|
||||
guard4.setCustomName2('Nym\'s Guard')
|
||||
guard5 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_guard_weak_hum_m.iff', 'lok', long(6595511), float(3.7), float(4.1), float(-9.5), float(0.9998), float(0.0174))
|
||||
guard5.setCustomName2('Nym\'s Guard')
|
||||
guard6 = stcSvc.spawnObject('object/mobile/shared_dressed_nym_guard_weak_rod_m.iff', 'lok', long(6595511), float(-3.7), float(4.1), float(-9.5), float(1), float(0))
|
||||
guard6.setCustomName2('Nym\'s Guard')
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -3,145 +3,6 @@ import sys
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
stcSvc = core.staticService
|
||||
# Theed Spawns
|
||||
# OutSide
|
||||
loruna = stcSvc.spawnObject('object/mobile/shared_loruna_scathe.iff', 'naboo', long(0), float(-5149), float(6), float(4286), float(0.34), float(0.93))
|
||||
loruna.setCustomName2('Loruna Scathe')
|
||||
|
||||
pooja = stcSvc.spawnObject('object/mobile/shared_dressed_pooja_naberrie.iff', 'naboo', long(0), float(-5479.1), float(14), float(4467.3), float(-0.96), float(0.25))
|
||||
pooja.setCustomName2('Pooja Naberrie')
|
||||
|
||||
vaikannaSilverlight = stcSvc.spawnObject('object/mobile/shared_dressed_herald_naboo_01.iff', 'naboo', long(0), float(-5484), float(10), float(4424), float(-0.93), float(0.34))
|
||||
vaikannaSilverlight.setCustomName2('Vaik\'anna Silverlight')
|
||||
|
||||
hannaSkiyah = stcSvc.spawnObject('object/mobile/shared_dressed_herald_noble_twk_female_01.iff', 'naboo', long(0), float(-5480), float(-0.5), float(4398), float(0.44), float(0.89))
|
||||
hannaSkiyah.setCustomName2('Hanna S\'kiyah')
|
||||
# Keren Spawns
|
||||
# Cantina interior
|
||||
lergoBrazee = stcSvc.spawnObject('object/mobile/shared_dressed_lergo_brazee.iff', 'naboo', long(5), float(2.8), float(-0.9), float(-5.3), float(0.25), float(0.96))
|
||||
lergoBrazee.setCustomName2('Lergo Brazee')
|
||||
|
||||
# Starport interior
|
||||
gavynSykes = stcSvc.spawnObject('object/mobile/shared_dressed_gavyn_sykes.iff', 'naboo', long(2125382), float(9.3), float(0.6), float(66.6), float(-0.90), float(0.42))
|
||||
gavynSykes.setCustomName2('Capt. Gavyn Sykes')
|
||||
|
||||
#Miscellaneous Building Interiors
|
||||
kritusMorven = stcSvc.spawnObject('object/mobile/shared_dressed_kritus_morven.iff', 'naboo', long(1685077), float(-3.9), float(-4.9), float(-7.5), float(-0.57), float(0.81))
|
||||
kritusMorven.setCustomName2('Kritus Morven')
|
||||
|
||||
Raev = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_clone_relics_major_raev.iff', 'naboo', long(1393881), float(-10), float(1.7), float(-9.5), float(0.38), float(0.92))
|
||||
Raev.setCustomName2('Major Raev')
|
||||
|
||||
# Outside
|
||||
brennis = stcSvc.spawnObject('object/mobile/shared_dressed_brennis_doore.iff', 'naboo', long(0), float(1740), float(12), float(2657), float(-0.99), float(0))
|
||||
brennis.setCustomName2('Brennis Doore')
|
||||
|
||||
demitri = stcSvc.spawnObject('object/mobile/shared_dressed_herald_servant_naboo_human_male.iff', 'naboo', long(0), float(1673), float(12), float(2582), float(0.31), float(0.94))
|
||||
demitri.setCustomName2('Demitri Firewatcher')
|
||||
|
||||
ogden = stcSvc.spawnObject('object/mobile/shared_smuggler_broker_ogden.iff', 'naboo', long(0), float(1907), float(12), float(2352), float(0.97), float(0.22))
|
||||
ogden.setCustomName2('Ogden')
|
||||
|
||||
# Kaadara Spawns
|
||||
#Miscellaneous Building Interiors
|
||||
barnSinkko = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_trainer_space_03.iff', 'naboo', long(1741494), float(-1.3), float(1.8), float(-14), float(-0.34), float(0.93))
|
||||
barnSinkko.setCustomName2('Lt. Barn Sinkko')
|
||||
|
||||
# OutSide
|
||||
dakk = stcSvc.spawnObject('object/mobile/shared_dressed_acklay_dakk.iff', 'naboo', long(0), float(5167), float(-192), float(6674), float(-0.99), float(0.04))
|
||||
dakk.setCustomName2('Dakk')
|
||||
|
||||
panaka = stcSvc.spawnObject('object/mobile/shared_panaka.iff', 'naboo', long(0), float(5196.6), float(-192), float(6712.8), float(0.99), float(0.04))
|
||||
|
||||
# Dejaa Peak Spawns
|
||||
|
||||
# OutSide
|
||||
arvenWendik = stcSvc.spawnObject('object/mobile/shared_dressed_arven_wendik.iff', 'naboo', long(0), float(4710), float(330), float(-1432), float(-0.70), float(0.70))
|
||||
arvenWendik.setCustomName2('Arven Wendik')
|
||||
|
||||
damaliaKorde = stcSvc.spawnObject('object/mobile/shared_dressed_damalia_korde.iff', 'naboo', long(0), float(5139), float(346.5), float(-1530.9), float(0.34), float(0.93))
|
||||
damaliaKorde.setCustomName2('Damalia Korde')
|
||||
|
||||
hermanPate = stcSvc.spawnObject('object/mobile/shared_naboo_herman_pate.iff', 'naboo', long(0), float(4871.1), float(360.6), float(-1442.1), float(0), float(1))
|
||||
hermanPate.setCustomName2('Herman Pate')
|
||||
|
||||
kimaNazith = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_female_03.iff', 'naboo', long(0), float(4972), float(360), float(-1583), float(-0.95), float(0.28))
|
||||
kimaNazith.setCustomName2('Kima Nazith')
|
||||
|
||||
kippyMartin = stcSvc.spawnObject('object/mobile/shared_naboo_kippy_martin.iff', 'naboo', long(0), float(4324), float(295.1), float(-1250), float(0.55), float(0.82))
|
||||
kippyMartin.setCustomName2('Kippy Martin')
|
||||
|
||||
ruab = stcSvc.spawnObject('object/mobile/shared_smuggler_fence_ruab.iff', 'naboo', long(0), float(4998), float(360), float(-1485), float(-0.34), float(0.93))
|
||||
ruab.setCustomName2('Ruab')
|
||||
|
||||
tanoaVills = stcSvc.spawnObject('object/mobile/shared_naboo_tanoa_vills.iff', 'naboo', long(0), float(4740), float(330), float(-1322), float(-0.96), float(0.27))
|
||||
tanoaVills.setCustomName2('Tanoa Vills')
|
||||
|
||||
vanceGroten = stcSvc.spawnObject('object/mobile/shared_naboo_vance_groten.iff', 'naboo', long(0), float(5144), float(346.5), float(-1530), float(-0.17), float(0.98))
|
||||
vanceGroten.setCustomName2('Vance Groten')
|
||||
|
||||
walker = stcSvc.spawnObject('object/mobile/shared_naboo_walker_luskeske.iff', 'naboo', long(0), float(4994), float(360), float(-1506), float(-0.97), float(0.21))
|
||||
walker.setCustomName2('Walker Luskeske')
|
||||
|
||||
zanier = stcSvc.spawnObject('object/mobile/shared_naboo_professor_hudmasse.iff', 'naboo', long(0), float(4690), float(330.2), float(-1391), float(0.52), float(0.84))
|
||||
zanier.setCustomName2('Professor Zanier Hudmasse')
|
||||
|
||||
# Moenia Spawns
|
||||
# Cantina interior
|
||||
borvo = stcSvc.spawnObject('object/mobile/shared_borvo.iff', 'naboo', long(121), float(-29), float(-0.5), float(7.9), float(0.44), float(0.89))
|
||||
borvo.setCustomName2('Borvo The Hutt')
|
||||
|
||||
# OutSide
|
||||
c3tc = stcSvc.spawnObject('object/mobile/shared_3po_protocol_droid_silver.iff', 'naboo', long(0), float(4723), float(3.8), float(-4935), float(-0.99), float(0))
|
||||
c3tc.setCustomName2('C-3TC')
|
||||
|
||||
dilvin = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_male_03.iff', 'naboo', long(0), float(4893), float(3.8), float(-4998), float(0.96), float(0.27))
|
||||
dilvin.setCustomName2('Dilvin Lormurojo')
|
||||
|
||||
ebenn = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_male_02.iff', 'naboo', long(0), float(4869), float(3.8), float(-4875), float(-0.70), float(0.70))
|
||||
ebenn.setCustomName2('Ebenn Q3 Baobab')
|
||||
|
||||
v3fx = stcSvc.spawnObject('object/mobile/shared_space_rebel_tier1_naboo_v3fx.iff', 'naboo', long(0), float(4764.2), float(6.1), float(-4795), float(0.99), float(0.08))
|
||||
v3fx.setCustomName2('V3-FX')
|
||||
|
||||
roninLightrunner = stcSvc.spawnObject('object/mobile/shared_dressed_herald_naboo_02.iff', 'naboo', long(0), float(4810), float(6.3), float(-4977), float(0), float(1))
|
||||
roninLightrunner.setCustomName2('Ronin Lightrunner')
|
||||
|
||||
dagorel = stcSvc.spawnObject('object/mobile/shared_dressed_gendra.iff', 'naboo', long(0), float(4471), float(4), float(-4714), float(-0.64), float(0.76))
|
||||
dagorel.setCustomName2('Dagorel')
|
||||
|
||||
# Emperor's Retreat interior
|
||||
kaja = stcSvc.spawnObject('object/mobile/shared_kaja_orzee.iff', 'naboo', long(1418872), float(1.9), float(0.2), float(-13.4), float(0), float(1))
|
||||
kaja.setCustomName2('Kaja Or\'Zee')
|
||||
|
||||
ltVelso = stcSvc.spawnObject('object/mobile/shared_dressed_corvette_imperial_velso.iff', 'naboo', long(1418874), float(23.6), float(0.2), float(-19), float(-0.93), float(0.34))
|
||||
ltVelso.setCustomName2('Lt. Velso')
|
||||
|
||||
royalGuard1 = stcSvc.spawnObject('object/mobile/shared_royal_guard.iff', 'naboo', long(1418874), float(17), float(0.2), float(-31), float(0), float(1))
|
||||
royalGuard2 = stcSvc.spawnObject('object/mobile/shared_royal_guard.iff', 'naboo', long(1418874), float(9), float(0.2), float(-31), float(0), float(1))
|
||||
|
||||
vrke = stcSvc.spawnObject('object/mobile/shared_space_imperial_tier3_naboo_vrke.iff', 'naboo', long(1418875), float(24.3), float(0.2), float(-39.6), float(0), float(1))
|
||||
vrke.setCustomName2('Inquisitor Vrke')
|
||||
|
||||
loamRedge = stcSvc.spawnObject('object/mobile/shared_loam_redge.iff', 'naboo', long(1418875), float(18.6), float(0.2), float(-42), float(0.34), float(0.93))
|
||||
loamRedge.setCustomName2('Loam Redge')
|
||||
|
||||
hethrir = stcSvc.spawnObject('object/mobile/shared_lord_hethrir.iff', 'naboo', long(1418876), float(4.6), float(0.2), float(-41.3), float(0), float(1))
|
||||
hethrir.setCustomName2('Lord Hethrir')
|
||||
|
||||
jaceYiaso = stcSvc.spawnObject('object/mobile/shared_space_imperial_tier4_naboo_inquisitor.iff', 'naboo', long(1418884), float(-44), float(0.2), float(-31.9), float(0), float(1))
|
||||
jaceYiaso.setCustomName2('Grand Inquisitor Ja\'ce Yiaso')
|
||||
|
||||
vader = stcSvc.spawnObject('object/mobile/shared_darth_vader.iff', 'naboo', long(1418884), float(-57), float(0.2), float(-24), float(0.70), float(0.70))
|
||||
|
||||
# Outside Emperor's Retreat
|
||||
veers = stcSvc.spawnObject('object/mobile/naboo_npc/shared_veers.iff', 'naboo', long(0), float(2368), float(291), float(-3921), float(0.64), float(0.76))
|
||||
veers.setCustomName2('Colonel Veers')
|
||||
|
||||
thrawn = stcSvc.spawnObject('object/mobile/naboo_npc/shared_thrawn.iff', 'naboo', long(0), float(2369), float(291), float(-3922), float(0.34), float(0.93))
|
||||
thrawn.setCustomName2('Captain Thrawn')
|
||||
|
||||
fazoll = stcSvc.spawnObject('object/mobile/shared_space_imperial_tier2_naboo.iff', 'naboo', long(0), float(2444), float(292), float(-3896), float(-0.996194), float(0.087155))
|
||||
fazoll.setCustomName2('Inquisitor Fa\'Zoll')
|
||||
#this script is no longer for NPC spawning - Levarris
|
||||
|
||||
return
|
||||
@@ -5,460 +5,10 @@ from resources.datatables import StateStatus
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
stcSvc = core.staticService
|
||||
#this script is no longer for NPC spawning usage. - Levarris
|
||||
|
||||
# Wayfar Life Day, by Wefi, modified by Fingies
|
||||
|
||||
# stcSvc.spawnObject('object/mobile/shared_lifeday_saun_dann.iff', 'tatooine', long(0), float(-5037.00), float(75), float(-6561), float(-0.75), float(0)) # Life Day
|
||||
# figlife = stcSvc.spawnObject('object/mobile/shared_lifeday_figrin_dan.iff', 'tatooine', long(0), float(-5046.00), float(75), float(-6560), float(-0.75), float(0)) # LD Figrin
|
||||
# figlife.setCustomName2('Figrin D\'an')
|
||||
# bandtat1 = stcSvc.spawnObject('object/mobile/shared_lifeday_figrin_dan_band.iff', 'tatooine', long(0), float(-5040.00), float(75), float(-6557), float(-0.75), float(0)) # LD Band 1
|
||||
# bandtat1.setCustomName2('Doikk Nats')
|
||||
# bandtat2 = stcSvc.spawnObject('object/mobile/shared_lifeday_figrin_dan_band.iff', 'tatooine', long(0), float(-5043.00), float(75), float(-6559), float(-0.75), float(0)) # LD band 2
|
||||
# bandtat2.setCustomName2('Tech Mor')
|
||||
# bandtat3 = stcSvc.spawnObject('object/mobile/shared_lifeday_figrin_dan_band.iff', 'tatooine', long(0), float(-5048.00), float(75), float(-6557), float(-0.75), float(0)) # LD Band 3
|
||||
# bandtat3.setCustomName2('Nalan Cheel')
|
||||
# bandtat4 = stcSvc.spawnObject('object/mobile/shared_lifeday_figrin_dan_band.iff', 'tatooine', long(0), float(-5045.00), float(75), float(-6555), float(-0.75), float(0)) # LD band 4
|
||||
# bandtat4.setCustomName2('Sunil Eide')
|
||||
# reblifevendor = stcSvc.spawnObject('object/mobile/shared_life_day_rebel_vendor.iff', 'tatooine', long(0), float(-5212.2), float(75.0), float(-6571.7), float(0.656), float(-0.7547)) #Rebel Wookiee Vendor
|
||||
# reblifevendor.setCustomName2('Oolovv \(Wookiee Freedom Fighter)')
|
||||
# reblifesold1 = stcSvc.spawnObject('object/mobile/shared_rebel_snow_m_01.iff', 'tatooine', long(0), float(-5208.8), float(75.0), float(-6569.6), float(0.669), float(-0.743)) #Rebel Vendor Guard 1
|
||||
# reblifesold1.setCustomName2('a Rebel Soldier')
|
||||
# reblifesold2 = stcSvc.spawnObject('object/mobile/shared_rebel_snow_m_01.iff', 'tatooine', long(0), float(-5208.8), float(75.0), float(-6573.1), float(0.669), float(-0.743)) #Rebel Vendor Guard 2
|
||||
# reblifesold2.setCustomName2('a Rebel Soldier')
|
||||
# implifevendor = stcSvc.spawnObject('object/mobile/shared_life_day_imperial_vendor.iff', 'tatooine', long(0), float(-5097.1), float(75.0), float(-6570.7), float(0.0087), float(-0.9999)) #Imp Vendor
|
||||
# implifevendor.setCustomName2('Sstrigge \(Trandoshan \'Trader\')')
|
||||
# implifesold1 = stcSvc.spawnObject('object/mobile/shared_snowtrooper_s01.iff', 'tatooine', long(0), float(-5092.2), float(75.0), float(-6569.0), float(0.0087), float(-0.9999)) #Imp Vendor Guard 1
|
||||
# implifesold1.setCustomName2('a Stormtrooper')
|
||||
# implifesold2 = stcSvc.spawnObject('object/mobile/shared_snowtrooper_s01.iff', 'tatooine', long(0), float(-5100.8), float(75.0), float(-6569.4), float(0.0087), float(-0.9999)) #Imp Vendor Guard 2
|
||||
# implifesold2.setCustomName2('a Stormtrooper')
|
||||
# stcSvc.spawnObject('object/tangible/instrument/shared_nalargon.iff', 'tatooine', long(0), float(-5045.00), float(75), float(-6555), float(0.999132931232), float(-0.0416347384453)) # Drums
|
||||
# stcSvc.spawnObject('object/tangible/instrument/shared_ommni_box.iff', 'tatooine', long(0), float(-5043.00), float(75), float(-6559), float(0.999132931232), float(-0.0416347384453)) # Box
|
||||
#stcSvc.spawnObject('object/mobile/shared_3po_protocol_droid_red.iff', 'tatooine', long(26582), float(-14.3), float(2.0), float(47.4), float(0.70), float(0.71))
|
||||
|
||||
# Mos Eisley Spawns: WORK IN PROGRESS by Levarris
|
||||
|
||||
#Cantina Interior
|
||||
wuher = stcSvc.spawnObject('object/mobile/shared_wuher.iff', 'tatooine', long(1082877), float(8.6), float(-0.9), float(0.4), float(0.71), float(0.71))
|
||||
wuher.setCustomName2('Wuher')
|
||||
wuher.addOption(Options.INVULNERABLE)
|
||||
wuher.setStateBitmask(StateStatus.SittingOnChair)
|
||||
|
||||
chadraFanFemale = stcSvc.spawnObject('object/mobile/shared_chadra_fan_female.iff', 'tatooine', long(1082877), float(10.6), float(-0.9), float(-1.5), float(0.42), float(0.90))
|
||||
chadraFanFemale.setCustomName2('a Chadra Fan Female')
|
||||
|
||||
chadraFanMale = stcSvc.spawnObject('object/mobile/shared_chadra_fan_male.iff', 'tatooine', long(1082877), float(10.7), float(-0.9), float(-0.3), float(0.64), float(0.77))
|
||||
chadraFanMale.setCustomName2('a Chadra Fan Male')
|
||||
|
||||
muftak = stcSvc.spawnObject('object/mobile/shared_muftak.iff', 'tatooine', long(1082877), float(20.3), float(-0.9), float(4.9), float(0.82), float(0.57))
|
||||
muftak.setCustomName2('Muftak')
|
||||
|
||||
chissMale1 = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_etyyy_chiss_poacher_01.iff', 'tatooine', long(1082877), float(1.7), float(-0.9), float(-5.0), float(0.71), float(0.71))
|
||||
chissMale1.setCustomName2('a Chiss Male')
|
||||
|
||||
chissMale2 = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_etyyy_chiss_poacher_02.iff', 'tatooine', long(1082877), float(3.4), float(-0.9), float(-4.8), float(0), float(0))
|
||||
chissMale2.setCustomName2('a Chiss Male')
|
||||
|
||||
cantinaStorm = stcSvc.spawnObject('object/mobile/shared_stormtrooper.iff', 'tatooine', long(1082877), float(2.9), float(-0.9), float(-6.5), float(0.71), float(0.71))
|
||||
cantinaStorm.setCustomName2('a Stormtrooper')
|
||||
|
||||
cantinaStormL = stcSvc.spawnObject('object/mobile/shared_stormtrooper_groupleader.iff', 'tatooine', long(1082877), float(3.6), float(-0.9), float(-7.9), float(0.71), float(0.71))
|
||||
cantinaStormL.setCustomName2('a Stormtrooper Squad Leader')
|
||||
|
||||
figrinDan = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', long(1082880), float(3.7), float(-0.9), float(-14.4), float(0.42), float(0.91))
|
||||
figrinDan.setCustomName2('Figrin D\'an')
|
||||
|
||||
techMor = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', long(1082880), float(4.0), float(-0.9), float(-17.0), float(0.42), float(0.91))
|
||||
techMor.setCustomName2('Tech M\'or')
|
||||
|
||||
doikkNats = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', long(1082880), float(2.2), float(-0.9), float(-16.4), float(0.42), float(0.91))
|
||||
doikkNats.setCustomName2('Doikk Na\'ts')
|
||||
|
||||
tednDahai = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', long(1082880), float(1.3), float(-0.9), float(-15.2), float(0.42), float(0.91))
|
||||
tednDahai.setCustomName2('Tedn Dahai')
|
||||
|
||||
nalanCheel = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', long(1082880), float(0.5), float(-0.9), float(-17.1), float(0.42), float(0.91))
|
||||
nalanCheel.setCustomName2('Nalan Cheel')
|
||||
|
||||
businessman1 = stcSvc.spawnObject('object/mobile/shared_dressed_businessman_human_male_01.iff', 'tatooine', long(1082877), float(11.0), float(-0.9), float(2.1), float(0.38), float(-0.92))
|
||||
businessman1.setCustomName2('a Businessman')
|
||||
|
||||
commoner1 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_01.iff', 'tatooine', long(1082877), float(10.3), float(-0.9), float(2.7), float(0.82), float(0.57))
|
||||
commoner1.setCustomName2('a Commoner')
|
||||
|
||||
entertainer1 = stcSvc.spawnObject('object/mobile/shared_dressed_entertainer_trainer_twk_female_01.iff', 'tatooine', long(1082877), float(9.4), float(-0.9), float(3.9), float(0.38), float(-0.92))
|
||||
entertainer1.setCustomName2('an Entertainer')
|
||||
|
||||
noble1 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_trandoshan_male_01.iff', 'tatooine', long(1082877), float(8.6), float(-0.9), float(4.8), float(0.82), float(0.57))
|
||||
noble1.setCustomName2('a Noble')
|
||||
|
||||
commoner2 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_01.iff', 'tatooine', long(1082877), float(4.1), float(-0.9), float(5.7), float(1), float(0))
|
||||
commoner2.setCustomName2('a Commoner')
|
||||
|
||||
commoner3 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_female_01.iff', 'tatooine', long(1082877), float(3.1), float(-0.9), float(5.9), float(1), float(0))
|
||||
commoner3.setCustomName2('a Commoner')
|
||||
|
||||
commoner4 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_twilek_male_01.iff', 'tatooine', long(1082877), float(1.7), float(-0.9), float(6.0), float(1), float(0))
|
||||
commoner4.setCustomName2('a Commoner')
|
||||
|
||||
commoner5 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_male_01.iff', 'tatooine', long(1082877), float(-0.4), float(-0.9), float(5.9), float(1), float(0))
|
||||
commoner5.setCustomName2('a Commoner')
|
||||
|
||||
commoner6 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_05.iff', 'tatooine', long(1082877), float(16.0), float(-0.9), float(4.1), float(0), float(0))
|
||||
commoner6.setCustomName2('a Commoner')
|
||||
|
||||
commoner7 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_zabrak_male_01.iff', 'tatooine', long(1082877), float(8.8), float(-0.9), float(-6.0), float(0.98), float(-0.22))
|
||||
commoner7.setCustomName2('a Patron')
|
||||
|
||||
commoner8 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_08.iff', 'tatooine', long(1082877), float(6.8), float(-0.9), float(-6.5), float(0.98), float(-0.22))
|
||||
commoner8.setCustomName2('a Patron')
|
||||
|
||||
commoner9 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_09.iff', 'tatooine', long(1082877), float(1.1), float(-0.9), float(-7.7), float(0.42), float(0.91))
|
||||
commoner9.setCustomName2('a Commoner')
|
||||
|
||||
commoner10 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_nikto_male_04.iff', 'tatooine', long(1082877), float(2.1), float(-0.9), float(-8.4), float(0.42), float(0.91))
|
||||
commoner10.setCustomName2('a Commoner')
|
||||
|
||||
anetiaKahryn = stcSvc.spawnObject('object/mobile/shared_dressed_twk_entertainer.iff', 'tatooine', long(1082878), float(19.8), float(-0.9), float(-21), float(-0.03), float(0.99))
|
||||
anetiaKahryn.setCustomName2('Anetia Kah\'ryn')
|
||||
|
||||
dravis = stcSvc.spawnObject('object/mobile/shared_space_privateer_tier1_tatooine.iff', 'tatooine', long(1082886), float(-21.7), float(-0.9), float(25.5), float(0.99), float(0.03))
|
||||
dravis.setCustomName2('Dravis')
|
||||
|
||||
talonKarrde = stcSvc.spawnObject('object/mobile/shared_dressed_talon_karrde.iff', 'tatooine', long(1082887), float(-25.7), float(-0.5), float(8.8), float(0.21), float(0.97))
|
||||
talonKarrde.setCustomName2('Talon Karrde')
|
||||
|
||||
#Starport Interior
|
||||
|
||||
bartender1 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_nikto_male_04.iff', 'tatooine', long(1106380), float(-59.1), float(2.6), float(39.5), float(0), float(0))
|
||||
bartender1.setCustomName2('a Bartender')
|
||||
|
||||
#City Hall Interior
|
||||
|
||||
#Lucky Despot Interior
|
||||
|
||||
hansolo1 = stcSvc.spawnObject('object/mobile/shared_han_solo.iff', 'tatooine', long(26949), float(32.3), float(7.0), float(1.6), float(0), float(0))
|
||||
hansolo1.setCustomName2('Han Solo')
|
||||
|
||||
#Medical Center Interior
|
||||
|
||||
#Theater Interior
|
||||
|
||||
#Miscellaneous Building Interiors
|
||||
|
||||
#Outside
|
||||
businessman2 = stcSvc.spawnObject('object/mobile/shared_dressed_businessman_human_male_01.iff', 'tatooine', long(0), float(3663.3), float(4.0), float(-4738.6), float(0), float(0))
|
||||
businessman2.setCustomName2('a Businessman')
|
||||
|
||||
noble2 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_01.iff', 'tatooine', long(0), float(3542.3), float(5.0), float(-4826.0), float(0.42), float(0.91))
|
||||
noble2.setCustomName2('a Noble')
|
||||
|
||||
commoner11 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_06.iff', 'tatooine', long(0), float(3529.1), float(5.0), float(-4900.4), float(0.42), float(0.91))
|
||||
commoner11.setCustomName2('a Commoner')
|
||||
|
||||
businessman3 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_02.iff', 'tatooine', long(0), float(3595.7), float(5.0), float(-4740.1), float(0), float(0))
|
||||
businessman3.setCustomName2('a Businessman')
|
||||
|
||||
jawa1 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3663.3), float(5.0), float(-4858.6), float(0), float(0))
|
||||
jawa1.setCustomName2('a Jawa')
|
||||
|
||||
commoner12 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_moncal_male_01.iff', 'tatooine', long(0), float(3490.3), float(5.0), float(-4799.4), float(0), float(0))
|
||||
commoner12.setCustomName2('a Scientist')
|
||||
|
||||
commoner13 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_zabrak_female_02.iff', 'tatooine', long(0), float(3559.7), float(5.0), float(-4725.9), float(0), float(0))
|
||||
commoner13.setCustomName2('a Commoner')
|
||||
|
||||
commoner14 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_01.iff', 'tatooine', long(0), float(3527.7), float(5.0), float(-4721.1), float(0.71), float(0.71))
|
||||
commoner14.setCustomName2('a Commoner')
|
||||
|
||||
commoner15 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_01.iff', 'tatooine', long(0), float(3514.9), float(5.0), float(-4737.8), float(0), float(0))
|
||||
commoner15.setCustomName2('a Commoner')
|
||||
|
||||
jawa2 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3485.2), float(4.9), float(-4859.2), float(0), float(0))
|
||||
jawa2.setCustomName2('a Jawa')
|
||||
|
||||
jawa3 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3465.3), float(5.0), float(-4860.1), float(0.71), float(-0.71))
|
||||
jawa3.setCustomName2('a Jawa')
|
||||
|
||||
jawa4 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3486.8), float(5.0), float(-4884.7), float(0.43051), float(-0.9025))
|
||||
jawa4.setCustomName2('a Jawa')
|
||||
|
||||
jawa5 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3487.1), float(5.0), float(-4886.0), float(0.95105), float(0.3090))
|
||||
jawa5.setCustomName2('a Jawa')
|
||||
|
||||
jawa6 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3488.8), float(5.0), float(-4884.4), float(0.3255), float(-0.9455))
|
||||
jawa6.setCustomName2('a Jawa')
|
||||
|
||||
jawa7 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3472.2), float(5.0), float(-4918.4), float(0), float(0))
|
||||
jawa7.setCustomName2('a Jawa')
|
||||
|
||||
jawa8 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3471.4), float(5.0), float(-4919.5), float(0), float(0))
|
||||
jawa8.setCustomName2('a Jawa')
|
||||
|
||||
jawa9 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3470.3), float(5.0), float(-4918.7), float(0), float(0))
|
||||
jawa9.setCustomName2('a Jawa')
|
||||
|
||||
bib = stcSvc.spawnObject('object/mobile/shared_bib_fortuna.iff', 'tatooine', long(0), float(3552.4), float(5.0), float(-4933.2), float(0.31730), float(-0.9483))
|
||||
bib.setCustomName2('Bib Fortuna')
|
||||
|
||||
commoner16 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_06.iff', 'tatooine', long(0), float(3398.2), float(4.0), float(-4654.2), float(0.42), float(0.91))
|
||||
commoner16.setCustomName2('a Commoner')
|
||||
|
||||
noble3 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_01.iff', 'tatooine', long(0), float(3396.3), float(4.0), float(-4774.1), float(0.42), float(0.91))
|
||||
noble3.setCustomName2('a Noble')
|
||||
|
||||
entertainer1 = stcSvc.spawnObject('object/mobile/shared_dressed_entertainer_trainer_twk_female_01.iff', 'tatooine', long(0), float(3305.7), float(5.6), float(-4771.7), float(0), float(0))
|
||||
entertainer1.setCustomName2('an Entertainer')
|
||||
|
||||
r3m6 = stcSvc.spawnObject('object/mobile/shared_r3.iff', 'tatooine', long(0), float(3460.1), float(4.0), float(-4898.2), float(0.38), float(-0.92))
|
||||
r3m6.setCustomName2('R3-M6')
|
||||
|
||||
eg1 = stcSvc.spawnObject('object/mobile/shared_eg6_power_droid.iff', 'tatooine', long(0), float(3463.8), float(4.0), float(-4882.6), float(-0.38), float(0.92))
|
||||
eg1.setCustomName2('an EG-6 Power Droid')
|
||||
|
||||
commoner17 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_zabrak_female_02.iff', 'tatooine', long(0), float(3452.6), float(4.0), float(-4937.1), float(0), float(0))
|
||||
commoner17.setCustomName2('a Commoner')
|
||||
|
||||
lifter1 = stcSvc.spawnObject('object/mobile/shared_cll8_binary_load_lifter.iff', 'tatooine', long(0), float(3547), float(5.0), float(-4768.9), float(0), float(0))
|
||||
lifter1.setCustomName2('a CLL-8 Binary Load Lifter')
|
||||
|
||||
r3j7 = stcSvc.spawnObject('object/mobile/shared_r3.iff', 'tatooine', long(0), float(3311.1), float(4.0), float(-4820.2), float(0.38), float(-0.92))
|
||||
r3j7.setCustomName2('R3-J7')
|
||||
|
||||
noble4 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_03.iff', 'tatooine', long(0), float(3255.3), float(4.0), float(-4848.1), float(0.42), float(0.91))
|
||||
noble4.setCustomName2('a Noble')
|
||||
|
||||
byxlePedette = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_byxle.iff', 'tatooine', long(0), float(3365), float(5), float(-4639), float(0.99), float(0.12))
|
||||
byxlePedette.setCustomName2('Byxle Pedette')
|
||||
|
||||
errikDarksider = stcSvc.spawnObject('object/mobile/shared_dressed_herald_tatooine_01.iff', 'tatooine', long(0), float(3381), float(4.6), float(-4498), float(0.91), float(0.40))
|
||||
errikDarksider.setCustomName2('Errik Darksider')
|
||||
|
||||
gendra = stcSvc.spawnObject('object/mobile/shared_dressed_gendra.iff', 'tatooine', long(0), float(3308), float(5.6), float(-4785), float(0.84), float(0.53))
|
||||
gendra.setCustomName2('Gendra')
|
||||
|
||||
lurval = stcSvc.spawnObject('object/mobile/shared_lurval.iff', 'tatooine', long(0), float(3387), float(5), float(-4791), float(-0.4), float(0.91))
|
||||
lurval.setCustomName2('Lurval')
|
||||
|
||||
matildaCarson = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_02.iff', 'tatooine', long(0), float(3490.2), float(5), float(-4778), float(0.87), float(0.48))
|
||||
matildaCarson.setCustomName2('Matilda Carson')
|
||||
|
||||
vanvi = stcSvc.spawnObject('object/mobile/shared_dressed_bestine_artist01.iff', 'tatooine', long(0), float(3312), float(5), float(-4655), float(0.95), float(-0.28))
|
||||
vanvi.setCustomName2('Vanvi Hotn')
|
||||
|
||||
#Eisley Legacy Quest NPCs
|
||||
|
||||
vourk = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_santos.iff', 'tatooine', long(0), float(3520.0), float(5.0), float(-4821.0), float(0.42), float(0.91))
|
||||
vourk.setCustomName2('Vourk Ver\'Zremp')
|
||||
|
||||
mayor = stcSvc.spawnObject('object/mobile/shared_dressed_mayor_mikdanyell_guhrantt.iff', 'tatooine', long(1279960), float(1.2), float(2.5), float(5.4), float(0), float(0))
|
||||
mayor.setCustomName2('Mayor Mikdanyell Guh\'rantt')
|
||||
|
||||
enthaKandela = stcSvc.spawnObject('object/mobile/shared_dressed_entha_kandela.iff', 'tatooine', long(0), float(3511), float(5.0), float(-4785), float(0.70), float(0.71))
|
||||
enthaKandela.setCustomName2('Entha Kandela')
|
||||
|
||||
purvis = stcSvc.spawnObject('object/mobile/shared_dressed_purvis_arrison.iff', 'tatooine', long(0), float(3512.4), float(5.0), float(-4764.9), float(0.38), float(-0.92))
|
||||
purvis.setCustomName2('Purvis Arrison')
|
||||
|
||||
peawpRdawc = stcSvc.spawnObject('object/mobile/shared_peawp_bodyguard_trainer.iff', 'tatooine', long(1189639), float(-11.8), float(1.1), float(-10.1), float(0), float(0))
|
||||
peawpRdawc.setCustomName2('Peawp R\'dawc')
|
||||
|
||||
peawpRdawc = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_niko.iff', 'tatooine', long(0), float(3506.7), float(5.0), float(-4795.8), float(0.70), float(0.71))
|
||||
peawpRdawc.setCustomName2('Niko Brehe')
|
||||
|
||||
dunir = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_dunir.iff', 'tatooine', long(0), float(3520.7), float(5.0), float(-4683.7), float(0.99), float(-0.08))
|
||||
dunir.setCustomName2('Dunir')
|
||||
|
||||
#Eisley Ship Controller
|
||||
stcSvc.spawnObject('object/mobile/shared_distant_ship_controller.iff', 'tatooine', long(0), float(3542.3), float(5.0), float(-4826.0), float(0.42), float(0.91))
|
||||
|
||||
# Mos Espa NPC Spawns
|
||||
# Cantina Interior
|
||||
dalaSocuna = stcSvc.spawnObject('object/mobile/shared_space_rebel_tier1_tatooine_socuna.iff', 'tatooine', long(1256068), float(-28.4), float(-0.5), float(9.4), float(0.33), float(0.94))
|
||||
dalaSocuna.setCustomName2('Commander Da\'la Socuna')
|
||||
|
||||
watto = stcSvc.spawnObject('object/mobile/shared_watto.iff', 'tatooine', long(26670), float(4.7), float(-0.5), float(2.4), float(0.70), float(-0.71))
|
||||
watto.setCustomName2('Watto')
|
||||
|
||||
#Exterior Uninteractables
|
||||
commoner18 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_zabrak_female_02.iff', 'tatooine', long(0), float(-2915.3), float(5.0), float(2148.5), float(0), float(0))
|
||||
commoner18.setCustomName2('a Commoner')
|
||||
|
||||
jawa10 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(-2966.3), float(5.0), float(2196.9), float(0), float(0))
|
||||
jawa10.setCustomName2('a Jawa')
|
||||
|
||||
commoner19 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_06.iff', 'tatooine', long(0), float(-2960.4), float(5.0), float(2271.3), float(0), float(0))
|
||||
commoner19.setCustomName2('a Commoner')
|
||||
|
||||
commoner20 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_01.iff', 'tatooine', long(0), float(-2934.3), float(5.0), float(2298.9), float(0.71), float(0.71))
|
||||
commoner20.setCustomName2('a Commoner')
|
||||
|
||||
commoner21 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_01.iff', 'tatooine', long(0), float(-2897.7), float(5.0), float(2345.4), float(0.71), float(0.71))
|
||||
commoner21.setCustomName2('a Commoner')
|
||||
|
||||
commoner22 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_twilek_male_01.iff', 'tatooine', long(0), float(-2763.8), float(5.0), float(2305.2), float(0.71), float(0.71))
|
||||
commoner22.setCustomName2('a Commoner')
|
||||
|
||||
jawa11 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(-2936.8), float(5.0), float(2078.4), float(0.95105), float(0.3090))
|
||||
jawa11.setCustomName2('a Jawa')
|
||||
|
||||
businessman4 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_02.iff', 'tatooine', long(0), float(-2914.2), float(5.0), float(2022.4), float(0), float(0))
|
||||
businessman4.setCustomName2('a Businessman')
|
||||
|
||||
commoner23 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_moncal_male_01.iff', 'tatooine', long(0), float(-2904.1), float(5.0), float(1965.3), float(0.71), float(0.71))
|
||||
commoner23.setCustomName2('a Commoner')
|
||||
|
||||
# Mos Entha NPC Spawns
|
||||
#Outside
|
||||
ankwee = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_entha_ankwee.iff', 'tatooine', long(0), float(1351), float(5.0), float(3108), float(0.42), float(0.91))
|
||||
ankwee.setCustomName2('An\'kwee')
|
||||
|
||||
# Bestine NPC Spawns
|
||||
# City hall
|
||||
indigoSiyan = stcSvc.spawnObject('object/mobile/shared_dressed_indigo_siyan.iff', 'tatooine', long(926483), float(24.7), float(3.2), float(-30.7), float(-0.06), float(0.99))
|
||||
indigoSiyan.setCustomName2('Indigo Siyan')
|
||||
|
||||
keanna = stcSvc.spawnObject('object/mobile/shared_dressed_keanna_likyna.iff', 'tatooine', long(926480), float(-18.7), float(3.2), float(20.6), float(-0.97), float(0.2))
|
||||
keanna.setCustomName2('Keanna Li\'kyna')
|
||||
|
||||
oberhaur = stcSvc.spawnObject('object/mobile/shared_space_imperial_tier2_tatooine_oberhaur.iff', 'tatooine', long(926480), float(-21.9), float(3.2), float(26.9), float(0.99), float(0.01))
|
||||
oberhaur.setCustomName2('Commander Oberhaur')
|
||||
|
||||
seanTrenwell = stcSvc.spawnObject('object/mobile/shared_dressed_sean_trenwell.iff', 'tatooine', long(926483), float(19.4), float(3.2), float(-36), float(-0.06), float(0.99))
|
||||
seanTrenwell.setCustomName2('Sean Trenwell ')
|
||||
|
||||
talmont = stcSvc.spawnObject('object/mobile/shared_prefect_talmont.iff', 'tatooine', long(926475), float(-1.9), float(3.1), float(-10.3), float(0.99), float(0))
|
||||
|
||||
tourAryon = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_tour_aryon.iff', 'tatooine', long(926479), float(-36.8), float(1.3), float(0.3), float(0.8), float(0.59))
|
||||
tourAryon.setCustomName2('Tour Aryon')
|
||||
|
||||
victorVisalis = stcSvc.spawnObject('object/mobile/shared_dressed_victor_visalis.iff', 'tatooine', long(926480), float(-26.7), float(3.2), float(20.8), float(0.96), float(0.24))
|
||||
victorVisalis.setCustomName2('Victor Visalis')
|
||||
|
||||
wilhalmSkrim = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_wilhalm_skrim.iff', 'tatooine', long(926482), float(28.9), float(1.3), float(-6.0), float(0.23), float(0.97))
|
||||
|
||||
#Miscellaneous Building Interiors
|
||||
akalColzet = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_trainer_space_01.iff', 'tatooine', long(1212359), float(0.7), float(1.8), float(-14), float(0), float(0.99))
|
||||
akalColzet.setCustomName2('lt. Akal Colzet')
|
||||
|
||||
fariousGletch = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_farious_gletch.iff', 'tatooine', long(1278989), float(2.0), float(-0.4), float(-5.7), float(-0.15), float(0.98))
|
||||
|
||||
pfilbeeJhorn = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_pfilbee_jhorn.iff', 'tatooine', long(1279923), float(5.1), float(0.1), float(-3.8), float(-0.7), float(0.71))
|
||||
pfilbeeJhorn.setCustomName2('Pfilbee Jhorn')
|
||||
|
||||
#Hotel interior
|
||||
gilBurtin = stcSvc.spawnObject('object/mobile/shared_dressed_industrialist_trainer_01.iff', 'tatooine', long(1223850), float(20.3), float(1.6), float(12.8), float(0.99), float(0))
|
||||
gilBurtin.setCustomName2('Gil Burtin')
|
||||
|
||||
# Outside
|
||||
barak = stcSvc.spawnObject('object/mobile/shared_smuggler_broker_barak.iff', 'tatooine', long(0), float(-1049), float(5.0), float(-3537), float(0.97), float(0.23))
|
||||
barak.setCustomName2('Barak')
|
||||
|
||||
barrezz = stcSvc.spawnObject('object/mobile/shared_dressed_dressed_legacy_barrezz.iff', 'tatooine', long(0), float(-1146.8), float(98.0), float(-3892.1), float(0.75), float(0.65))
|
||||
barrezz.setCustomName2('Commander Barrezz')
|
||||
|
||||
jasha = stcSvc.spawnObject('object/mobile/shared_dressed_bestinejobs_jasha.iff', 'tatooine', long(0), float(-1128), float(98.0), float(-3900), float(-0.42), float(0.90))
|
||||
jasha.setCustomName2('Captain Jasha')
|
||||
|
||||
dkrn = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_general_m.iff', 'tatooine', long(0), float(-1160), float(5.0), float(-3525), float(0.90), float(-0.41))
|
||||
dkrn.setCustomName2('Commander D\'krn')
|
||||
|
||||
gunham = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_lieutenant_m.iff', 'tatooine', long(0), float(-1125), float(12.2), float(-3620), float(0.9), float(0.42))
|
||||
gunham.setCustomName2('Commander Gunham')
|
||||
|
||||
kormundThrylle = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_kormund_thrylle.iff', 'tatooine', long(0), float(-1043), float(10.0), float(-3530), float(0.99), float(0.06))
|
||||
kormundThrylle.setCustomName2('Kormund Thrylle')
|
||||
|
||||
calebKnolar = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_major_cold_m.iff', 'tatooine', long(0), float(-1149), float(98.0), float(-3903), float(0.42), float(0.91))
|
||||
calebKnolar.setCustomName2('Major Caleb Knolar')
|
||||
|
||||
# Anchorhead NPC Spawns
|
||||
# Cantina Interior
|
||||
borraSetas = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_rodian_female_03.iff', 'tatooine', long(1213345), float(9.8), float(0.4), float(-1.2), float(-0.65), float(0.75))
|
||||
borraSetas.setCustomName2('Borra Setas')
|
||||
|
||||
# Outside
|
||||
aaphKoden = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_aaph_koden.iff', 'tatooine', long(0), float(129), float(5.0), float(-5399), float(-0.67), float(0.73))
|
||||
aaphKoden.setCustomName2('Aaph Koden')
|
||||
|
||||
Alger = stcSvc.spawnObject('object/mobile/shared_smuggler_fence_alger.iff', 'tatooine', long(0), float(107), float(5.0), float(-5315), float(0.96), float(0.26))
|
||||
Alger.setCustomName2('Alger')
|
||||
|
||||
carhlaBastra = stcSvc.spawnObject('object/mobile/shared_dressed_legacy_bastra.iff', 'tatooine', long(0), float(128), float(5.0), float(-5428), float(-0.26), float(0.96))
|
||||
carhlaBastra.setCustomName2('Carh\'la Bastra')
|
||||
|
||||
cuanTalon = stcSvc.spawnObject('object/mobile/shared_dressed_legacy_cuan.iff', 'tatooine', long(0), float(-161.7), float(65.0), float(-5322.8), float(0), float(0))
|
||||
cuanTalon.setCustomName2('Cuan Talon')
|
||||
|
||||
dromaOrdo = stcSvc.spawnObject('object/mobile/shared_dressed_anchorjobs_ordo.iff', 'tatooine', long(0), float(110), float(52.0), float(-5431), float(0.36), float(0.93))
|
||||
dromaOrdo.setCustomName2('Droma Ordo')
|
||||
|
||||
Sorna = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_tosche_sorna.iff', 'tatooine', long(0), float(-135), float(52.0), float(-5331), float(0.36), float(0.93))
|
||||
Sorna.setCustomName2('Sorna')
|
||||
|
||||
# Lars Homestead
|
||||
zefAndo = stcSvc.spawnObject('object/mobile/shared_dressed_legacy_zef.iff', 'tatooine', long(0), float(-2574.9), float(0), float(-5516.7), float(0), float(0))
|
||||
zefAndo.setCustomName2('Zef Ando')
|
||||
|
||||
# Jawa Sandcrawler (legacy quest)
|
||||
fa2po = stcSvc.spawnObject('object/mobile/shared_3po_protocol_droid.iff', 'tatooine', long(0), float(-3805.7), float(30.4), float(-4721.6), float(0), float(0))
|
||||
fa2po.setCustomName2('FA-2PO')
|
||||
|
||||
# Darklighter Cache Cave (tat -260 -6930 not spawning from buildout)
|
||||
|
||||
|
||||
|
||||
|
||||
# Mos Taike NPC Spawns
|
||||
|
||||
# Wayfar NPC Spawns
|
||||
|
||||
# Jabba's Palace Theme Park Spawns
|
||||
|
||||
reelo = stcSvc.spawnObject('object/mobile/shared_reelo_baruk.iff', 'tatooine', long(26560), float(-3.5), float(0.2), float(113.5), float(0), float(0))
|
||||
reelo.setCustomName2('Reelo Baruk')
|
||||
|
||||
reeyees = stcSvc.spawnObject('object/mobile/shared_dressed_gran_thug_male_01.iff', 'tatooine', long(26560), float(5.8), float(0.2), float(115.7), float(0.70), float(-0.71))
|
||||
reeyees.setCustomName2('Ree-Yees')
|
||||
|
||||
ephant = stcSvc.spawnObject('object/mobile/shared_ephant_mon.iff', 'tatooine', long(26564), float(-6.1), float(5.8), float(86.1), float(0), float(0))
|
||||
ephant.setCustomName2('Ephant Mon')
|
||||
|
||||
porcellus = stcSvc.spawnObject('object/mobile/shared_dressed_porcellus.iff', 'tatooine', long(26572), float(-44.0), float(3.0), float(63.4), float(0), float(0))
|
||||
porcellus.setCustomName2('Porcellus')
|
||||
|
||||
barada = stcSvc.spawnObject('object/mobile/shared_barada.iff', 'tatooine', long(26596), float(31.2), float(0.2), float(-1.0), float(0.98), float(-0.17))
|
||||
barada.setCustomName2('Barada')
|
||||
|
||||
bibMain = stcSvc.spawnObject('object/mobile/shared_bib_fortuna.iff', 'tatooine', long(26582), float(-11.1), float(2.0), float(49.5), float(0.70), float(0.71))
|
||||
bibMain.setCustomName2('Bib Fortuna')
|
||||
|
||||
jabba = stcSvc.spawnObject('object/mobile/shared_jabba_the_hutt.iff', 'tatooine', long(26582), float(-17.0), float(2.8), float(44.9), float(0.70), float(0.71))
|
||||
jabba.setCustomName2('Jabba the Hutt')
|
||||
|
||||
oola = stcSvc.spawnObject('object/mobile/shared_oola.iff', 'tatooine', long(26582), float(-10.3), float(2.0), float(43.9), float(0.70), float(-0.71))
|
||||
oola.setCustomName2('Oola')
|
||||
oola.setCurrentAnimation('wave1')
|
||||
|
||||
bobaFett = stcSvc.spawnObject('object/mobile/shared_boba_fett.iff', 'tatooine', long(26582), float(-1.0), float(3.0), float(33.1), float(0), float(0))
|
||||
bobaFett.setCustomName2('Boba Fett')
|
||||
|
||||
ev9d9 = stcSvc.spawnObject('object/mobile/shared_ev_9d9.iff', 'tatooine', long(26574), float(18.8), float(0.2), float(78.7), float(1.0), float(0))
|
||||
ev9d9.setCustomName2('EV-9D9')
|
||||
|
||||
malakili = stcSvc.spawnObject('object/mobile/shared_malakili.iff', 'tatooine', long(26599), float(17.3), float(-11.0), float(43.8), float(0), float(0))
|
||||
malakili.setCustomName2('Malakili')
|
||||
#Need to somehow get the cellID for the Rancor Pit or it will NEVER be spawned.
|
||||
|
||||
maxRebo = stcSvc.spawnObject('object/mobile/shared_max_rebo.iff', 'tatooine', long(26582), float(-1.4), float(3.0), float(26.9), float(0.42), float(-0.9))
|
||||
maxRebo.setCustomName2('Max Rebo')
|
||||
|
||||
droopy = stcSvc.spawnObject('object/mobile/shared_droopy_mccool.iff', 'tatooine', long(26582), float(-3.9), float(3.0), float(26.1), float(0.42), float(-0.9))
|
||||
droopy.setCustomName2('Droopy McCool')
|
||||
|
||||
sySnootles = stcSvc.spawnObject('object/mobile/shared_sy_snootles.iff', 'tatooine', long(26582), float(-1.4), float(3.0), float(29.8), float(0.42), float(-0.))
|
||||
sySnootles.setCustomName2('Sy Snootles')
|
||||
|
||||
g5po = stcSvc.spawnObject('object/mobile/shared_3po_protocol_droid_red.iff', 'tatooine', long(26582), float(-14.3), float(2.0), float(47.4), float(0.70), float(0.71))
|
||||
g5po.setCustomName2('G5-PO')
|
||||
|
||||
return
|
||||
|
||||
|
||||
+19
-5
@@ -24,7 +24,10 @@ package main;
|
||||
import java.io.IOException;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Vector;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@@ -37,6 +40,9 @@ import java.util.concurrent.TimeUnit;
|
||||
import org.apache.mina.core.service.IoHandler;
|
||||
import org.apache.mina.core.session.IoSession;
|
||||
|
||||
import com.sleepycat.je.Transaction;
|
||||
import com.sleepycat.persist.EntityCursor;
|
||||
|
||||
import protocol.swg.ChatSystemMessage;
|
||||
import net.engio.mbassy.bus.config.BusConfiguration;
|
||||
import resources.common.RadialOptions;
|
||||
@@ -91,6 +97,7 @@ import engine.resources.common.CRC;
|
||||
import engine.resources.common.PHPBB3Auth;
|
||||
import engine.resources.config.Config;
|
||||
import engine.resources.config.DefaultConfig;
|
||||
import engine.resources.container.Traverser;
|
||||
import engine.resources.database.DatabaseConnection;
|
||||
import engine.resources.database.ObjectDatabase;
|
||||
import engine.resources.objects.SWGObject;
|
||||
@@ -172,6 +179,7 @@ public class NGECore {
|
||||
private ObjectDatabase creatureODB;
|
||||
private ObjectDatabase mailODB;
|
||||
private ObjectDatabase guildODB;
|
||||
private ObjectDatabase objectIdODB;
|
||||
|
||||
private BusConfiguration eventBusConfig = BusConfiguration.Default(1, new ThreadPoolExecutor(1, 4, 1, TimeUnit.MINUTES, new LinkedBlockingQueue<Runnable>()));
|
||||
|
||||
@@ -185,7 +193,6 @@ public class NGECore {
|
||||
public void start() {
|
||||
|
||||
instance = this;
|
||||
|
||||
final ThreadMonitor deadlockDetector = new ThreadMonitor();
|
||||
Thread deadlockMonitor = new Thread(new Runnable() {
|
||||
@Override
|
||||
@@ -221,6 +228,8 @@ public class NGECore {
|
||||
buildingODB = new ObjectDatabase("building", true, false, true);
|
||||
mailODB = new ObjectDatabase("mails", true, false, true);
|
||||
guildODB = new ObjectDatabase("guild", true, false, true);
|
||||
objectIdODB = new ObjectDatabase("oids", true, false, false);
|
||||
|
||||
// Services
|
||||
loginService = new LoginService(this);
|
||||
retroService = new RetroService(this);
|
||||
@@ -347,9 +356,10 @@ public class NGECore {
|
||||
weatherService = new WeatherService(this);
|
||||
weatherService.loadPlanetSettings();
|
||||
|
||||
// spawnService.loadLairTemplates();
|
||||
// spawnService.loadLairGroups();
|
||||
// spawnService.loadSpawnAreas();
|
||||
/*spawnService.loadMobileTemplates();
|
||||
spawnService.loadLairTemplates();
|
||||
spawnService.loadLairGroups();
|
||||
spawnService.loadSpawnAreas();*/
|
||||
|
||||
retroService.run();
|
||||
|
||||
@@ -457,6 +467,10 @@ public class NGECore {
|
||||
return buildingODB;
|
||||
}
|
||||
|
||||
public ObjectDatabase getObjectIdODB() {
|
||||
return objectIdODB;
|
||||
}
|
||||
|
||||
public int getActiveClients() {
|
||||
int connections = 0;
|
||||
for (Map.Entry<IoSession, Client> c : clients.entrySet()) {
|
||||
@@ -535,7 +549,7 @@ public class NGECore {
|
||||
synchronized(getActiveConnectionsMap()) {
|
||||
for(Client client : getActiveConnectionsMap().values()) {
|
||||
client.getSession().close(true);
|
||||
connectionService.disconnect(client.getSession());
|
||||
connectionService.disconnect(client);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2013 <Project SWG>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* 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 protocol.swg;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import main.NGECore;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.player.PlayerObject;
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.objects.SWGObject;
|
||||
import engine.resources.scene.Point3D;
|
||||
|
||||
public class CharacterSheetResponseMessage extends SWGMessage {
|
||||
|
||||
private PlayerObject player;
|
||||
public CharacterSheetResponseMessage(PlayerObject player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(IoBuffer data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
CreatureObject creature = (CreatureObject) player.getContainer();
|
||||
|
||||
if (creature != null) {
|
||||
|
||||
SWGObject desCloner = null;
|
||||
if (creature.getAttachment("preDesignatedCloner") != null)
|
||||
desCloner = NGECore.getInstance().objectService.getObject((long) creature.getAttachment("preDesignatedCloner"));
|
||||
|
||||
String clonerPlanet = "";
|
||||
String spouse = "";
|
||||
|
||||
if (desCloner != null)
|
||||
clonerPlanet = desCloner.getPlanet().getName();
|
||||
|
||||
if (player.getSpouseName() != null)
|
||||
spouse = player.getSpouseName();
|
||||
|
||||
IoBuffer buffer = IoBuffer.allocate(82 + clonerPlanet.length() + (spouse.length() * 2)).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
buffer.putShort((short) 12);
|
||||
buffer.putInt(CRC.StringtoCRC("CharacterSheetResponseMessage"));
|
||||
|
||||
buffer.putInt(0);
|
||||
buffer.putInt(0);
|
||||
|
||||
if (desCloner != null) {
|
||||
Point3D loc = desCloner.getPosition();
|
||||
buffer.putFloat(loc.x); // bind x
|
||||
buffer.putFloat(loc.y); // bind z
|
||||
buffer.putFloat(loc.z); // bind y
|
||||
buffer.put(getAsciiString(clonerPlanet)); // bind planet
|
||||
} else {
|
||||
buffer.putFloat(0); // bind x
|
||||
buffer.putFloat(0); // bind z
|
||||
buffer.putFloat(0); // bind y
|
||||
buffer.put(getAsciiString("")); // bind planet
|
||||
}
|
||||
|
||||
buffer.putFloat(0); // bank x
|
||||
buffer.putFloat(0); // bank z
|
||||
buffer.putFloat(0); // bank y
|
||||
buffer.put(getAsciiString("tatooine"));
|
||||
|
||||
buffer.putFloat(0); // home x
|
||||
buffer.putFloat(0); // home z
|
||||
buffer.putFloat(0); // home y
|
||||
buffer.put(getAsciiString("")); // home planet
|
||||
|
||||
buffer.put(getAsciiString("")); // Name of city player resides in
|
||||
|
||||
buffer.put(getUnicodeString(spouse));
|
||||
|
||||
buffer.putInt(10); // lots remaining
|
||||
|
||||
return buffer.flip();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,9 +6,6 @@ import main.NGECore;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import engine.resources.config.Config;
|
||||
import engine.resources.config.DefaultConfig;
|
||||
|
||||
public class ChatFriendsListUpdate extends SWGMessage {
|
||||
|
||||
private String friendName;
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2013 <Project SWG>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* 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 protocol.swg;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import resources.common.Console;
|
||||
import resources.common.StringUtilities;
|
||||
import engine.resources.common.CRC;
|
||||
|
||||
public class CommPlayerMessage extends SWGMessage {
|
||||
|
||||
private long objectId;
|
||||
|
||||
public CommPlayerMessage(long objectId) {
|
||||
this.objectId = objectId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(IoBuffer data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
IoBuffer buffer = IoBuffer.allocate(200).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
buffer.putShort((short) 2);
|
||||
buffer.putInt(0x594AD258);
|
||||
|
||||
buffer.put((byte) 0); // aurebesh borders on comm, space version? Can cause crashes
|
||||
|
||||
buffer.putLong(objectId);
|
||||
|
||||
/*Seen numbers:
|
||||
* 52 (Starting Station Comms)
|
||||
* 54 (Tansarii Comms)
|
||||
* 57 (Supply Drops)
|
||||
* 58 (Faction Covert->Overt)
|
||||
* 68 (Imperial stop)
|
||||
*
|
||||
*/
|
||||
buffer.putInt(57); // unknown, changes for each comm message (counter?)
|
||||
|
||||
buffer.putShort((short) 0); // unknonw flag, seems to do nothing
|
||||
buffer.put((byte) 0); // unknown, always 0 except for imperial stop message
|
||||
|
||||
buffer.putInt(0xFFFFFFFF);
|
||||
|
||||
buffer.put(getAsciiString("stormtrooper")); // StfFile
|
||||
buffer.putInt(0); // stf spacer
|
||||
buffer.put(getAsciiString("u11")); // StfName
|
||||
|
||||
buffer.putInt(0); // stf spacer
|
||||
buffer.putLong(0);
|
||||
buffer.putLong(0);
|
||||
buffer.putLong(0);
|
||||
buffer.putLong(0); // 70 bytes
|
||||
buffer.putLong(0);
|
||||
buffer.putLong(0);
|
||||
buffer.putLong(0);
|
||||
buffer.putLong(0);
|
||||
buffer.put((byte) 0);
|
||||
|
||||
// Officer Supply Drop: 0x3E894347
|
||||
// Rebel Faction Dude: 0x528CB3D7
|
||||
buffer.putInt(0x528CB3D7); // model crc, can be anything w/o crashing
|
||||
|
||||
buffer.putInt(0); // sound
|
||||
|
||||
buffer.putShort((short) 0); // unk
|
||||
buffer.putShort((short) 16576); // comm display time, unsure on how it's calculated
|
||||
buffer.flip();
|
||||
Console.println("CPM: " + StringUtilities.bytesToHex(buffer.array()));
|
||||
return buffer;
|
||||
}
|
||||
|
||||
}
|
||||
+30
-35
@@ -19,52 +19,47 @@
|
||||
* 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.z.exp.group;
|
||||
package protocol.swg;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
import resources.common.StringUtilities;
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.scene.Point3D;
|
||||
|
||||
import engine.resources.objects.SWGObject;
|
||||
public class CreateClientPathMessage extends SWGMessage {
|
||||
|
||||
import resources.objects.Delta;
|
||||
|
||||
@Persistent
|
||||
public class Member extends Delta {
|
||||
private List<Point3D> coordinates;
|
||||
|
||||
private SWGObject member;
|
||||
|
||||
public Member(SWGObject member) {
|
||||
this.member = member;
|
||||
public CreateClientPathMessage(List<Point3D> coordinates) {
|
||||
this.coordinates = coordinates;
|
||||
}
|
||||
|
||||
public Member() {
|
||||
@Override
|
||||
public void deserialize(IoBuffer data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
IoBuffer buffer = IoBuffer.allocate((coordinates.size() * 12) + 10).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
buffer.putShort((short) 2);
|
||||
buffer.putInt(CRC.StringtoCRC("CreateClientPathMessage"));
|
||||
|
||||
}
|
||||
|
||||
public SWGObject getMember() {
|
||||
synchronized(objectMutex) {
|
||||
return member;
|
||||
buffer.putInt(coordinates.size());
|
||||
for(Point3D point : coordinates) {
|
||||
buffer.putFloat(point.x);
|
||||
buffer.putFloat(point.z);
|
||||
buffer.putFloat(point.y);
|
||||
}
|
||||
|
||||
buffer.flip();
|
||||
StringUtilities.printBytes(buffer.array());
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public long getObjectId() {
|
||||
return member.getObjectID();
|
||||
}
|
||||
|
||||
public String getCustomName() {
|
||||
return member.getCustomName();
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = bufferPool.allocate(8 + getAsciiString(getCustomName()).length, false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
buffer.putLong(getObjectId());
|
||||
buffer.put(getAsciiString(getCustomName()));
|
||||
return buffer.array();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -26,11 +26,13 @@ import java.nio.ByteOrder;
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
|
||||
|
||||
import protocol.swg.objectControllerObjects.CommandEnqueue;
|
||||
import protocol.swg.objectControllerObjects.DataTransform;
|
||||
import protocol.swg.objectControllerObjects.DataTransformWithParent;
|
||||
import protocol.swg.objectControllerObjects.ObjControllerObject;
|
||||
import protocol.swg.objectControllerObjects.UnknownObjController;
|
||||
import resources.common.StringUtilities;
|
||||
|
||||
public class ObjControllerMessage extends SWGMessage {
|
||||
|
||||
@@ -55,6 +57,8 @@ public class ObjControllerMessage extends SWGMessage {
|
||||
public static final int ANIMATION = 0x00F2;
|
||||
public static final int BUFF_BUILDER_START = 0x025C;
|
||||
public static final int BUFF_BUILDER_CHANGE = 0x025A;
|
||||
public static final int UI_PLAY_EFFECT = 0x0401;
|
||||
public static final int SHOW_LOOT_BOX = 0x04BC;
|
||||
|
||||
public ObjControllerMessage() {
|
||||
|
||||
@@ -78,7 +82,7 @@ public class ObjControllerMessage extends SWGMessage {
|
||||
buffer.putInt(0x80CE5E46);
|
||||
buffer.putInt(update);
|
||||
buffer.put(objControllerObject.serialize());
|
||||
//System.out.println("OBJMSG: " + buffer.flip().getHexDump());
|
||||
//System.out.println("OBJMSG: " + StringUtilities.bytesToHex(buffer.flip().array()));
|
||||
int size = buffer.position();
|
||||
return IoBuffer.allocate(size).put(buffer.array(), 0, size).flip();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class ParametersMessage extends SWGMessage {
|
||||
IoBuffer packet = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
packet.putShort((short) 2);
|
||||
packet.putInt(0x7102B15F);
|
||||
packet.putInt(0x487652DA);
|
||||
packet.putInt(0x00000384);
|
||||
|
||||
return packet.flip();
|
||||
|
||||
+29
-8
@@ -19,18 +19,39 @@
|
||||
* 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.z.exp.objects.universe;
|
||||
package protocol.swg;
|
||||
|
||||
import resources.z.exp.objects.ObjectMessageBuilder;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
public class UniverseMessageBuilder extends ObjectMessageBuilder {
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
public class PlayerMoneyResponse extends SWGMessage {
|
||||
|
||||
int cash;
|
||||
int bank;
|
||||
|
||||
public UniverseMessageBuilder(UniverseObject object) {
|
||||
super(object);
|
||||
public PlayerMoneyResponse(int cash, int bank) {
|
||||
this.cash = cash;
|
||||
this.bank = bank;
|
||||
}
|
||||
|
||||
public UniverseMessageBuilder() {
|
||||
super();
|
||||
@Override
|
||||
public void deserialize(IoBuffer data) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
IoBuffer buffer = IoBuffer.allocate(14).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
buffer.putShort((short) 3);
|
||||
buffer.putInt(0x367E737E);
|
||||
|
||||
buffer.putInt(bank);
|
||||
buffer.putInt(cash);
|
||||
|
||||
buffer.flip();
|
||||
return buffer;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -45,6 +45,7 @@ public class SceneDestroyObject extends SWGMessage {
|
||||
result.putInt(0x4D45D504);
|
||||
|
||||
result.putLong(objectId);
|
||||
result.put((byte) 0); // unk
|
||||
return result.flip();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,6 @@ import java.nio.ByteBuffer;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import resources.common.StringUtilities;
|
||||
|
||||
public class SetWaypointColor extends SWGMessage {
|
||||
|
||||
private long objectId;
|
||||
|
||||
@@ -26,7 +26,6 @@ import java.nio.ByteOrder;
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import protocol.swg.ObjControllerMessage;
|
||||
import protocol.swg.SWGMessage;
|
||||
|
||||
public class Animation extends ObjControllerObject {
|
||||
|
||||
|
||||
@@ -21,12 +21,8 @@
|
||||
******************************************************************************/
|
||||
package protocol.swg.objectControllerObjects;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import engine.resources.common.Utilities;
|
||||
|
||||
public class ChangeRoleIconChoice extends ObjControllerObject {
|
||||
|
||||
private long objectId = 0;
|
||||
|
||||
+35
-49
@@ -19,66 +19,52 @@
|
||||
* 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.z.exp.manufacture;
|
||||
package protocol.swg.objectControllerObjects;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
import engine.resources.objects.SWGObject;
|
||||
import protocol.swg.ObjControllerMessage;
|
||||
import resources.common.StringUtilities;
|
||||
|
||||
import resources.objects.Delta;
|
||||
public class ShowLootBox extends ObjControllerObject {
|
||||
|
||||
@Persistent
|
||||
public class Property extends Delta {
|
||||
private long playerId;
|
||||
private SWGObject[] rewards;
|
||||
|
||||
private int unused = 0;
|
||||
private String key = "";
|
||||
private float value = 0;
|
||||
|
||||
public Property(String key, float value) {
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
public ShowLootBox(long playerId, SWGObject[] rewards) {
|
||||
this.playerId = playerId;
|
||||
this.rewards = rewards;
|
||||
}
|
||||
|
||||
public Property() {
|
||||
@Override
|
||||
public void deserialize(IoBuffer data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
// Controller Type = 11
|
||||
IoBuffer buffer = IoBuffer.allocate(20 + (rewards.length * 8)).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
synchronized(objectMutex) {
|
||||
return key;
|
||||
buffer.putInt(ObjControllerMessage.SHOW_LOOT_BOX);
|
||||
buffer.putLong(playerId);
|
||||
|
||||
buffer.putInt(0); // 1 for a black background on icon, 0 or 2 for transparent (default)
|
||||
|
||||
if (rewards.length == 1) {
|
||||
buffer.putInt(1);
|
||||
buffer.putLong(rewards[0].getObjectId());
|
||||
} else {
|
||||
buffer.putInt(rewards.length);
|
||||
for(SWGObject obj : rewards) {
|
||||
buffer.putLong(obj.getObjectID());
|
||||
}
|
||||
}
|
||||
return buffer.flip();
|
||||
}
|
||||
|
||||
public Property setKey(String key) {
|
||||
synchronized(objectMutex) {
|
||||
this.key = key;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public float getValue() {
|
||||
synchronized(objectMutex) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
public Property setValue(float value) {
|
||||
synchronized(objectMutex) {
|
||||
this.value = value;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = bufferPool.allocate(8 + getAsciiString(key).length, false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
buffer.putInt(unused);
|
||||
buffer.put(getAsciiString(key));
|
||||
buffer.putFloat(value);
|
||||
return buffer.array();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -39,7 +39,7 @@ public class TargetUpdate extends ObjControllerObject {
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
+28
-31
@@ -19,45 +19,42 @@
|
||||
* 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.z.exp.manufacture;
|
||||
package protocol.swg.objectControllerObjects;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
import protocol.swg.ObjControllerMessage;
|
||||
|
||||
import resources.objects.Delta;
|
||||
import resources.z.exp.objects.Baseline;
|
||||
public class UiPlayEffect extends ObjControllerObject {
|
||||
|
||||
private long objectId;
|
||||
private String uiString;
|
||||
|
||||
@Persistent
|
||||
public class SubList<o> extends Delta {
|
||||
|
||||
private List<o> list = new CopyOnWriteArrayList<o>();
|
||||
|
||||
public SubList() {
|
||||
public UiPlayEffect(long objectId, String uiString) {
|
||||
this.uiString = uiString;
|
||||
this.objectId = objectId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(IoBuffer data) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public List<o> getList() {
|
||||
return list;
|
||||
|
||||
@Override
|
||||
public IoBuffer serialize() {
|
||||
|
||||
IoBuffer result = IoBuffer.allocate(26 + uiString.length()).order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
result.putInt(ObjControllerMessage.UI_PLAY_EFFECT);
|
||||
result.putLong(objectId);
|
||||
result.putInt(0);
|
||||
result.putLong(objectId);
|
||||
result.put(getAsciiString(uiString));
|
||||
|
||||
return result.flip();
|
||||
|
||||
}
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
int size = 4;
|
||||
for (o object : list) size += Baseline.toBytes(object).length;
|
||||
|
||||
IoBuffer buffer = bufferPool.allocate(size, false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
buffer.putInt(list.size());
|
||||
for (o object : list) {
|
||||
buffer.put(Baseline.toBytes(object));
|
||||
}
|
||||
|
||||
return buffer.array();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -26,6 +26,7 @@ public class ObjControllerOpcodes {
|
||||
public static final int DATA_TRANSFORM = 0x71000000;
|
||||
public static final int DATA_TRANSFORM_WITH_PARENT = 0xF1000000;
|
||||
public static final int COMMAND_QUEUE_ENQUEUE = 0x16010000;
|
||||
public static final int COMMAND_QUEUE_REMOVE = 0x17010000;
|
||||
public static final int HOVER_TARGET = 0x26010000; // lookAtTarget
|
||||
public static final int TARGET_UPDATE = 0xC5040000; // intendedTarget
|
||||
public static final int OBJECT_MENU_REQUEST = 0x46010000;
|
||||
|
||||
@@ -29,8 +29,12 @@ public class Opcodes {
|
||||
public static int ChatInstantMessageToCharacter = 0x84BB21F7;
|
||||
public static int ChatPersistentMessageToServer = 0x25A29FA6;
|
||||
public static int ChatRequestPersistentMessage = 0x07E3559F;
|
||||
public static int ChatRequestRoomList = 0x4C3D2CFA;
|
||||
public static int ChatSystemMessage = CRC.StringtoCRC("ChatSystemMessage");
|
||||
public static int ClientOpenContainerMessage = 0x2D2D6EE1;
|
||||
public static int CommodotiesItemTypeListRequest = 0x48F493C5;
|
||||
public static int CommoditiesResourceTypeListRequest = 0xCB1AE82D;
|
||||
public static int NewbieTutorialResponse = 0xCA88FBAD;
|
||||
public static int CmdSceneReady = 0x43FD1C22;
|
||||
public static int ConnectPlayerMessage = 0x2E365218;
|
||||
public static int ClientCreateCharacter = 0xB97F3074;
|
||||
@@ -60,5 +64,15 @@ public class Opcodes {
|
||||
public static int FactionResponseMessage = CRC.StringtoCRC("FactionResponseMessage");
|
||||
public static int SetWaypointColor = CRC.StringtoCRC("SetWaypointColor");
|
||||
public static int GuildRequestMessage = CRC.StringtoCRC("GuildRequestMessage");
|
||||
public static int PlayerMoneyRequest = CRC.StringtoCRC("PlayerMoneyRequest");
|
||||
public static int LagReport = CRC.StringtoCRC("LagReport");
|
||||
public static int GetSpecificMapLocationsMessage = CRC.StringtoCRC("GetSpecificMapLocationsMessage");
|
||||
public static int SetCombatSpamFilter = CRC.StringtoCRC("SetCombatSpamFilter");
|
||||
public static int SetCombatSpamRangeFilter = CRC.StringtoCRC("SetCombatSpamRangeFilter");
|
||||
public static int SetLfgInterests = CRC.StringtoCRC("SetLfgInterests");
|
||||
public static int SetFurnitureRoationDegree = CRC.StringtoCRC("SetFurnitureRotationDegree");
|
||||
public static int SetJediSlotInfo = CRC.StringtoCRC("SetJediSlotInfo");
|
||||
public static int CollectionServerFirstListRequest = CRC.StringtoCRC("CollectionServerFirstListRequest");
|
||||
|
||||
public static int Unknown = 0x173B91C2; // packet sent to server on every character load-in
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ package resources.common;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import resources.z.exp.objects.Baseline;
|
||||
import resources.objects.Delta;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
@@ -85,7 +84,7 @@ public class Stf extends Delta {
|
||||
synchronized(objectMutex) {
|
||||
int size = stfFilename.getBytes().length + 4 + stfName.getBytes().length;
|
||||
|
||||
IoBuffer buffer = Baseline.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put(stfFilename.getBytes());
|
||||
buffer.putInt(spacer);
|
||||
buffer.put(stfName.getBytes());
|
||||
|
||||
@@ -27,6 +27,8 @@ import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import engine.resources.common.Utilities;
|
||||
|
||||
public class StringUtilities {
|
||||
|
||||
final protected static char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
|
||||
@@ -166,16 +168,20 @@ public class StringUtilities {
|
||||
}
|
||||
|
||||
public static String bytesToHex(byte[] bytes) {
|
||||
char[] hexChars = new char[bytes.length * 2];
|
||||
int v;
|
||||
|
||||
for ( int j = 0; j < bytes.length; j++ ) {
|
||||
v = bytes[j] & 0xFF;
|
||||
hexChars[j * 2] = hexArray[v >>> 4];
|
||||
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
|
||||
}
|
||||
|
||||
return new String(hexChars);
|
||||
char[] hexChars = new char[bytes.length * 2];
|
||||
int v;
|
||||
|
||||
for ( int j = 0; j < bytes.length; j++ ) {
|
||||
v = bytes[j] & 0xFF;
|
||||
hexChars[j * 2] = hexArray[v >>> 4];
|
||||
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
|
||||
}
|
||||
|
||||
return new String(hexChars);
|
||||
}
|
||||
|
||||
public static void printBytes(byte[] bytes) {
|
||||
System.out.println(Utilities.getHexString(bytes));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,9 +22,6 @@
|
||||
package resources.common;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
|
||||
@@ -64,7 +61,7 @@ public final class UString extends Delta {
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
try {
|
||||
return IoBuffer.allocate(4 + string.length(), false).order(ByteOrder.LITTLE_ENDIAN).putInt(string.length()).put(string.getBytes("UTF-16LE")).flip().array();
|
||||
return createBuffer(4 + (string.length() * 2)).putInt(string.length()).put(string.getBytes("UTF-16LE")).flip().array();
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
return new byte[] { 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
@@ -21,15 +21,13 @@
|
||||
******************************************************************************/
|
||||
package resources.gcw;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
|
||||
import resources.objects.Delta;
|
||||
|
||||
@Persistent
|
||||
@Persistent(version=0)
|
||||
public class CurrentServerGCWZoneHistory extends Delta implements Cloneable {
|
||||
|
||||
private int lastUpdateTime;
|
||||
@@ -40,6 +38,10 @@ public class CurrentServerGCWZoneHistory extends Delta implements Cloneable {
|
||||
this.lastUpdateTime = zone.getLastUpdateTime();
|
||||
}
|
||||
|
||||
public CurrentServerGCWZoneHistory() {
|
||||
|
||||
}
|
||||
|
||||
public int getLastUpdateTime() {
|
||||
synchronized(objectMutex) {
|
||||
return lastUpdateTime;
|
||||
@@ -54,7 +56,7 @@ public class CurrentServerGCWZoneHistory extends Delta implements Cloneable {
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = bufferPool.allocate((8), false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
IoBuffer buffer = createBuffer(8);
|
||||
buffer.putInt(lastUpdateTime);
|
||||
buffer.putInt(percent);
|
||||
return buffer.array();
|
||||
|
||||
@@ -23,7 +23,6 @@ package resources.gcw;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
@@ -33,7 +32,7 @@ import engine.resources.scene.Point2D;
|
||||
|
||||
import resources.objects.Delta;
|
||||
|
||||
@Persistent
|
||||
@Persistent(version=0)
|
||||
public class CurrentServerGCWZonePercent extends Delta implements Cloneable {
|
||||
|
||||
private Point2D position;
|
||||
@@ -53,6 +52,10 @@ public class CurrentServerGCWZonePercent extends Delta implements Cloneable {
|
||||
this.percent = new BigDecimal("50.0", MathContext.DECIMAL128);
|
||||
}
|
||||
|
||||
public CurrentServerGCWZonePercent() {
|
||||
|
||||
}
|
||||
|
||||
public Point2D getPosition() {
|
||||
synchronized(objectMutex) {
|
||||
return position.clone();
|
||||
@@ -148,7 +151,7 @@ public class CurrentServerGCWZonePercent extends Delta implements Cloneable {
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = bufferPool.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
IoBuffer buffer = createBuffer(4);
|
||||
buffer.putInt(percent.intValue());
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
@@ -21,15 +21,13 @@
|
||||
******************************************************************************/
|
||||
package resources.gcw;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
|
||||
import resources.objects.Delta;
|
||||
|
||||
@Persistent
|
||||
@Persistent(version=0)
|
||||
public class OtherServerGCWZonePercent extends Delta implements Cloneable {
|
||||
|
||||
private String zone = "";
|
||||
@@ -39,6 +37,10 @@ public class OtherServerGCWZonePercent extends Delta implements Cloneable {
|
||||
this.zone = zone;
|
||||
}
|
||||
|
||||
public OtherServerGCWZonePercent() {
|
||||
|
||||
}
|
||||
|
||||
public String getZone() {
|
||||
synchronized(objectMutex) {
|
||||
return zone;
|
||||
@@ -60,7 +62,7 @@ public class OtherServerGCWZonePercent extends Delta implements Cloneable {
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = bufferPool.allocate((2 + zone.length() + 4), false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
IoBuffer buffer = createBuffer((2 + zone.length() + 4));
|
||||
buffer.put(getAsciiString(zone));
|
||||
buffer.putInt(percent);
|
||||
return buffer.array();
|
||||
|
||||
@@ -21,15 +21,17 @@
|
||||
******************************************************************************/
|
||||
package resources.guild;
|
||||
|
||||
import java.nio.ByteOrder;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
|
||||
import resources.objects.Delta;
|
||||
|
||||
import engine.resources.objects.SWGObject;
|
||||
|
||||
@Persistent(version=0)
|
||||
public class Guild extends Delta {
|
||||
|
||||
private int id;
|
||||
@@ -46,6 +48,10 @@ public class Guild extends Delta {
|
||||
this.members.add(leader);
|
||||
}
|
||||
|
||||
public Guild() {
|
||||
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
synchronized(objectMutex) {
|
||||
return id;
|
||||
@@ -83,17 +89,19 @@ public class Guild extends Delta {
|
||||
}
|
||||
|
||||
public String getString() {
|
||||
synchronized(objectMutex) {
|
||||
return (Integer.toString(id) + ":" + abbreviation);
|
||||
}
|
||||
return (Integer.toString(getId()) + ":" + getAbbreviation());
|
||||
}
|
||||
|
||||
public SWGObject getLeader() {
|
||||
return leader;
|
||||
synchronized(objectMutex) {
|
||||
return leader;
|
||||
}
|
||||
}
|
||||
|
||||
public void setLeader(SWGObject leader) {
|
||||
this.leader = leader;
|
||||
synchronized(objectMutex) {
|
||||
this.leader = leader;
|
||||
}
|
||||
}
|
||||
|
||||
public List<SWGObject> getMembers() {
|
||||
@@ -102,7 +110,7 @@ public class Guild extends Delta {
|
||||
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
IoBuffer buffer = bufferPool.allocate((getString().length() + 2), false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
IoBuffer buffer = createBuffer((getString().length() + 2));
|
||||
buffer.put(getAsciiString(getString()));
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
@@ -22,19 +22,27 @@
|
||||
package resources.objects;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
import org.apache.mina.core.buffer.SimpleBufferAllocator;
|
||||
|
||||
import com.sleepycat.persist.model.NotPersistent;
|
||||
import com.sleepycat.persist.model.Persistent;
|
||||
|
||||
import resources.common.StringUtilities;
|
||||
|
||||
|
||||
@Persistent
|
||||
public abstract class Delta implements IDelta {
|
||||
|
||||
public Delta() { }
|
||||
|
||||
@NotPersistent
|
||||
protected final Object objectMutex = new Object();
|
||||
public SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
|
||||
@NotPersistent
|
||||
private static SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
|
||||
|
||||
public Delta() {
|
||||
|
||||
}
|
||||
|
||||
protected String getAsciiString(ByteBuffer buffer) {
|
||||
return StringUtilities.getAsciiString(buffer);
|
||||
@@ -56,4 +64,8 @@ public abstract class Delta implements IDelta {
|
||||
return ((byte) ((variable) ? 1 : 0));
|
||||
}
|
||||
|
||||
public static IoBuffer createBuffer(int size) {
|
||||
return bufferPool.allocate(size, false).order(ByteOrder.LITTLE_ENDIAN);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -97,7 +97,8 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
|
||||
buffer.put(getAsciiString(creature.getStfName()));
|
||||
if (creature.getCustomName() == null) { creature.setCustomName(""); }//Not all CreatureObjects have CustomName (Shuttles)
|
||||
buffer.put(getUnicodeString(creature.getCustomName()));
|
||||
buffer.putInt(0x000F4240); // volume
|
||||
// buffer.putInt(0x000F4240); // volume
|
||||
buffer.putInt(1);
|
||||
buffer.putInt(CRC.StringtoCRC(creature.getFaction()));
|
||||
|
||||
buffer.putInt(creature.getFactionStatus());
|
||||
@@ -110,11 +111,11 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
|
||||
buffer.putShort((short) customizationData.length);
|
||||
buffer.put(customizationData);
|
||||
}
|
||||
buffer.putInt(1);
|
||||
//buffer.putInt(1);
|
||||
buffer.putInt(0); // TANO Data
|
||||
buffer.putInt(0);
|
||||
// buffer.putInt(creature.getOptionsBitmask()); // 0x80 = Player, 0x08 = Quest NPC,
|
||||
buffer.putInt(0x80);
|
||||
buffer.putInt(creature.getOptionsBitmask()); // 0x80 = Player, 0x08 = Quest NPC,
|
||||
//buffer.putInt(0x80);
|
||||
buffer.putInt(creature.getIncapTimer());
|
||||
buffer.putInt(0);
|
||||
buffer.putInt(0x3A98);
|
||||
@@ -126,8 +127,8 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
|
||||
buffer.putLong(creature.getOwnerId());
|
||||
|
||||
float height = creature.getHeight();
|
||||
if (height < 0.7 || height > 1.5)
|
||||
height = 1;
|
||||
//if (height < 0.7 || height > 1.5)
|
||||
// height = 1;
|
||||
buffer.putFloat(height);
|
||||
buffer.putInt(0); // battle fatigue
|
||||
buffer.putLong(creature.getStateBitmask());
|
||||
@@ -296,7 +297,7 @@ public class CreatureMessageBuilder extends ObjectMessageBuilder {
|
||||
|
||||
for(SWGObject obj : creature.getEquipmentList().get()) {
|
||||
|
||||
if(obj instanceof TangibleObject) {
|
||||
if(obj instanceof TangibleObject && !(obj instanceof WeaponObject)) {
|
||||
TangibleObject tangible = (TangibleObject) obj;
|
||||
if(tangible.getCustomization() == null || tangible.getCustomization().length == 0) {
|
||||
buffer.putShort((short) 0);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user