mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-11 21:45:43 -04:00
Merge branch 'master' of https://github.com/ProjectSWGCore/NGECore2
This commit is contained in:
@@ -5,6 +5,11 @@
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.python.pydev.PyDevBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
@@ -13,5 +18,6 @@
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.python.pydev.pythonNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'constitution_modified', 80)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_dodge', 3)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'constitution_modified', 80)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 3)
|
||||
return
|
||||
@@ -0,0 +1,70 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import time
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
convSvc = core.conversationService
|
||||
|
||||
probotRequester = core.objectService.getObject(long(npc.getAttachment('probotRequester')))
|
||||
|
||||
if probotRequester is None:
|
||||
core.objectService.destroyObject(npc)
|
||||
return
|
||||
|
||||
if probotRequester.getObjectId() != actor.getObjectId():
|
||||
prose = ProsePackage('conversation/bounty_probot', 's_6')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
return
|
||||
|
||||
mission = core.objectService.getObject(long(npc.getAttachment('attachedMission')))
|
||||
|
||||
if mission is None:
|
||||
prose = ProsePackage('conversation/bounty_probot', 's_4')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, prose)
|
||||
return
|
||||
|
||||
objective = mission.getObjective()
|
||||
|
||||
if objective is None:
|
||||
prose = ProsePackage('conversation/bounty_probot', 's_4')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, prose)
|
||||
return
|
||||
|
||||
prose = ProsePackage('conversation/bounty_probot', 's_5')
|
||||
outOfBand = OutOfBand()
|
||||
outOfBand.addProsePackage(prose)
|
||||
convSvc.sendConversationMessage(actor, npc, outOfBand)
|
||||
|
||||
options = Vector()
|
||||
optionProse = ProsePackage('conversation/bounty_probot', 's_8')
|
||||
optionOOB = OutOfBand()
|
||||
optionOOB.addProsePackage(optionProse)
|
||||
options.add(ConversationOption(optionOOB, 0))
|
||||
convSvc.sendConversationOptions(actor, npc, options, handleBioTransmit)
|
||||
|
||||
return
|
||||
|
||||
def handleBioTransmit(core, actor, npc, selection):
|
||||
core.conversationService.handleEndConversation(actor, npc)
|
||||
actor.sendSystemMessage('@mission/mission_generic:probe_droid_takeoff', 0)
|
||||
|
||||
npc.setPosture(8)
|
||||
|
||||
time.sleep(7)
|
||||
objective = core.objectService.getObject(long(npc.getAttachment('attachedMission'))).getObjective()
|
||||
objective.beginArakydUpdate(actor)
|
||||
core.objectService.destroyObject(npc)
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, '', '')
|
||||
return
|
||||
@@ -66,5 +66,5 @@ def handleCompletionStage(core, actor, npc, objective, mission):
|
||||
return
|
||||
|
||||
core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 's')
|
||||
objective.complete(core, actor)
|
||||
core.missionService.handleMissionComplete(actor, mission)
|
||||
return
|
||||
@@ -17,6 +17,8 @@ def addTemplate(core):
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setSocialGroup('dark jedi')
|
||||
mobileTemplate.setAssistRange(12)
|
||||
|
||||
|
||||
templates = Vector()
|
||||
|
||||
@@ -13,26 +13,24 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(4)
|
||||
mobileTemplate.setMinSpawnDistance(2)
|
||||
mobileTemplate.setMaxSpawnDistance(4)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setSocialGroup('remnants of kun')
|
||||
mobileTemplate.setAssistRange(12)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_dark_force_crystal_hunter.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('meleehit')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('dark_force_crystal_hunter', mobileTemplate)
|
||||
|
||||
@@ -17,6 +17,8 @@ def addTemplate(core):
|
||||
mobileTemplate.setMinSpawnDistance(3)
|
||||
mobileTemplate.setMaxSpawnDistance(5)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setSocialGroup('dark jedi')
|
||||
mobileTemplate.setAssistRange(12)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_dark_jedi_male_human_01.iff')
|
||||
|
||||
@@ -15,6 +15,8 @@ def addTemplate(core):
|
||||
mobileTemplate.setMinSpawnDistance(3)
|
||||
mobileTemplate.setMaxSpawnDistance(5)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setSocialGroup('dark jedi')
|
||||
mobileTemplate.setAssistRange(12)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_01.iff')
|
||||
|
||||
@@ -11,26 +11,23 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(2)
|
||||
mobileTemplate.setMaxSpawnDistance(4)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setSocialGroup('remnants of kun')
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_dark_side_savage.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('dark_side_savage', mobileTemplate)
|
||||
|
||||
@@ -13,26 +13,23 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(7)
|
||||
mobileTemplate.setMinSpawnDistance(3)
|
||||
mobileTemplate.setMaxSpawnDistance(5)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setSocialGroup('remnants of kun')
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_force_sensitive_crypt_crawler.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_wood_s1.iff', 7, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('meleehit')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('force_sensitive_crypt_crawler', mobileTemplate)
|
||||
|
||||
@@ -13,26 +13,24 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(7)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setSocialGroup('force renegade')
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_force_sensitive_renegade.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('force_sensitive_renegade', mobileTemplate)
|
||||
|
||||
@@ -11,26 +11,23 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(3)
|
||||
mobileTemplate.setMaxSpawnDistance(6)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setSocialGroup('force renegade')
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_forsaken_force_drifter.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('forsaken_force_drifter', mobileTemplate)
|
||||
|
||||
@@ -11,26 +11,23 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(4)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(7)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setSocialGroup('force renegade')
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_novice_force_mystic.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('meleehit')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('novice_force_mystic', mobileTemplate)
|
||||
|
||||
@@ -13,26 +13,24 @@ def addTemplate(core):
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(9)
|
||||
mobileTemplate.setWeaponType(4)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(6)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setSocialGroup('remnants of kun')
|
||||
mobileTemplate.setAssistRange(12)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_untrained_wielder_of_the_darkside.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setDefaultAttack('meleehit')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('untrained_wielder_of_the_dark_side', mobileTemplate)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('adolescent_krayt_dragon')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('adolescent_krayt_wild_1')
|
||||
dynamicGroup.setMaxSpawns(1)
|
||||
dynamicGroup.setMinSpawnDistance(150)
|
||||
core.spawnService.addDynamicGroup('adolescent_krayt_wild_1', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('canyon_krayt_dragon')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('canyon_krayt_wild_1')
|
||||
dynamicGroup.setMaxSpawns(1)
|
||||
dynamicGroup.setMinSpawnDistance(150)
|
||||
core.spawnService.addDynamicGroup('canyon_krayt_wild_1', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('giant_canyon_krayt_dragon')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('giant_canyon_krayt_dragon_1')
|
||||
dynamicGroup.setMaxSpawns(1)
|
||||
dynamicGroup.setMinSpawnDistance(60)
|
||||
core.spawnService.addDynamicGroup('giant_canyon_krayt_dragon_1', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('grand_canyon_krayt_dragon')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('grand_canyon_krayt_dragon_1')
|
||||
dynamicGroup.setMaxSpawns(1)
|
||||
dynamicGroup.setMinSpawnDistance(60)
|
||||
core.spawnService.addDynamicGroup('grand_canyon_krayt_dragon_1', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('juvenile_canyon_krayt_dragon')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(6)
|
||||
dynamicGroup.setName('juvenile_krayts_wild_1')
|
||||
dynamicGroup.setMaxSpawns(1)
|
||||
dynamicGroup.setMinSpawnDistance(150)
|
||||
core.spawnService.addDynamicGroup('juvenile_krayts_wild_1', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('krayt_dragon_ancient')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('krayt_dragon_ancient_1')
|
||||
dynamicGroup.setMaxSpawns(1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('krayt_dragon_ancient_1', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('carrion_kreetle')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_carrion_kreetle_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_carrion_kreetle_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('city_sewer_swamprat')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_city_sewer_rats_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_city_sewer_rats_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('mound_mite')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_mound_mites_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_mound_mites_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('rockmite')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_rock_mites_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_rock_mites_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('sickly_womprat')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_sickly_womp_rats_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_sickly_womp_rats_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('tame_worrt')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_tame_worrts_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_tame_worrts_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('tempest_rill')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_tempest_rills_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_tempest_rills_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('womprat')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_womprats_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_womprats_01', dynamicGroup)
|
||||
return
|
||||
@@ -0,0 +1,11 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('adolescent_krayt_wild_1')
|
||||
dynamicGroups.add('juvenile_krayts_wild_1')
|
||||
dynamicGroups.add('canyon_krayt_wild_1')
|
||||
dynamicGroups.add('giant_canyon_krayt_dragon_1')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 6471, 4267, 1024, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,8 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('grand_canyon_krayt_dragon_1')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 7431, 4762, 120, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,8 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('krayt_dragon_ancient_1')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 7490, 4466, 10, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,8 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('krayt_dragon_ancient_1')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 6794, 4307, 10, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,8 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('krayt_dragon_ancient_1')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 7493, 5992, 10, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_carrion_kreetle_01')
|
||||
dynamicGroups.add('mos_eisley_city_sewer_rats_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3216, -4465, 100, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_tame_worrts_01')
|
||||
dynamicGroups.add('mos_eisley_sickly_womp_rats_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3115, -4758, 100, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_tame_worrts_01')
|
||||
dynamicGroups.add('mos_eisley_rock_mites_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3153, -4945, 100, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_tempest_rills_01')
|
||||
dynamicGroups.add('mos_eisley_mound_mites_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3841, -4345, 100, 'tatooine')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_womprats_01')
|
||||
dynamicGroups.add('mos_eisley_mound_mites_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3587, -4354, 100, 'tatooine')
|
||||
return
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('krayt_dragon_adolescent')
|
||||
mobileTemplate.setLevel(84)
|
||||
mobileTemplate.setMinLevel(80)
|
||||
mobileTemplate.setMaxLevel(84)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(12)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(0.5)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_krayt_dragon.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -12,6 +12,14 @@ def addTemplate(core):
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setMilkType('Wild Milk')
|
||||
mobileTemplate.setMilkAmount(250)
|
||||
mobileTemplate.setHideType('Wooly Hide')
|
||||
mobileTemplate.setHideAmount(325)
|
||||
mobileTemplate.setMeatType('Herbivore Meat')
|
||||
mobileTemplate.setMeatAmount(450)
|
||||
mobileTemplate.setBoneType('Animal Bones')
|
||||
mobileTemplate.setBoneAmount(250)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_bantha_hue.iff')
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('canyon_krayt_dragon')
|
||||
mobileTemplate.setLevel(85)
|
||||
mobileTemplate.setMinLevel(80)
|
||||
mobileTemplate.setMaxLevel(86)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(12)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(0.8)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_canyon_krayt_dragon.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('fragile_kreetle')
|
||||
mobileTemplate.setLevel(2)
|
||||
mobileTemplate.setMinLevel(5)
|
||||
mobileTemplate.setMaxLevel(7)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_kreetle.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -7,16 +7,24 @@ def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('city_sewer_swamprat')
|
||||
mobileTemplate.setLevel(3)
|
||||
mobileTemplate.setLevel(4)
|
||||
mobileTemplate.setMinLevel(4)
|
||||
mobileTemplate.setMaxLevel(4)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_womp_rat.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('giant_canyon_krayt_dragon')
|
||||
mobileTemplate.setLevel(87)
|
||||
mobileTemplate.setMinLevel(80)
|
||||
mobileTemplate.setMaxLevel(88)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(12)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(2.5)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_krayt_dragon.iff')
|
||||
templates.add('object/mobile/shared_canyon_krayt_dragon.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('krayt_dragon_grand')
|
||||
mobileTemplate.setLevel(88)
|
||||
mobileTemplate.setMinLevel(80)
|
||||
mobileTemplate.setMaxLevel(89)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(12)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(2.6)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_krayt_dragon.iff')
|
||||
templates.add('object/mobile/shared_canyon_krayt_dragon.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('juvenile_canyon_krayt')
|
||||
mobileTemplate.setLevel(82)
|
||||
mobileTemplate.setMinLevel(78)
|
||||
mobileTemplate.setMaxLevel(82)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(12)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(0.5)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_juvenile_canyon_krayt.iff')
|
||||
templates.add('object/mobile/shared_krayt_dragon.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('krayt_dragon_ancient')
|
||||
mobileTemplate.setLevel(90)
|
||||
mobileTemplate.setMinLevel(90)
|
||||
mobileTemplate.setMaxLevel(90)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(12)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(2.8)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_krayt_dragon.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('mound_mite')
|
||||
mobileTemplate.setLevel(4)
|
||||
mobileTemplate.setMinLevel(5)
|
||||
mobileTemplate.setMaxLevel(7)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_mound_mite.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('rockmite')
|
||||
mobileTemplate.setLevel(8)
|
||||
mobileTemplate.setMinLevel(8)
|
||||
mobileTemplate.setMaxLevel(9)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_rock_mite.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -7,16 +7,24 @@ def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('sickly_womprat')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setLevel(4)
|
||||
mobileTemplate.setMinLevel(5)
|
||||
mobileTemplate.setMaxLevel(13)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_womp_rat.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('tame_worrt')
|
||||
mobileTemplate.setLevel(5)
|
||||
mobileTemplate.setMinLevel(5)
|
||||
mobileTemplate.setMaxLevel(6)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_worrt.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -8,15 +8,23 @@ def addTemplate(core):
|
||||
|
||||
mobileTemplate.setCreatureName('rill_tempest')
|
||||
mobileTemplate.setLevel(8)
|
||||
mobileTemplate.setMinLevel(8)
|
||||
mobileTemplate.setMaxLevel(10)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_rill.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -7,16 +7,24 @@ def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('womprat')
|
||||
mobileTemplate.setLevel(5)
|
||||
mobileTemplate.setLevel(4)
|
||||
mobileTemplate.setMinLevel(5)
|
||||
mobileTemplate.setMaxLevel(13)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(5)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setAttackRange(4)
|
||||
mobileTemplate.setAttackSpeed(1.0)
|
||||
mobileTemplate.setWeaponType(6)
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(False)
|
||||
mobileTemplate.setScale(1)
|
||||
|
||||
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_womp_rat.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
|
||||
weaponTemplates.add(weapontemplate)
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
from resources.datatables import Options
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','missions/bounty_droid_probot')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
return
|
||||
@@ -1,4 +1,5 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
return
|
||||
object.setAttachment('radial_filename', 'shared_drink_breath_of_heaven')
|
||||
return
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'npc/bounty_probot')
|
||||
return
|
||||
@@ -1,4 +1,5 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'npc/bounty_seeker')
|
||||
return
|
||||
@@ -0,0 +1,30 @@
|
||||
from resources.common import RadialOptions
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.add(RadialOptions(0, 138, 1, '@mission/mission_generic:probe_droid_summon'))
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
|
||||
if option == 138 and target:
|
||||
id = owner.getPlayerObject().getBountyMissionId()
|
||||
if id is None or id == 0:
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
|
||||
return
|
||||
|
||||
mission = core.objectService.getObject(id)
|
||||
if mission is None:
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
|
||||
return
|
||||
|
||||
if mission.getObjective().isArakydActive():
|
||||
owner.sendSystemMessage('@mission/mission_generic:probe_droid_too_many', 0)
|
||||
return
|
||||
|
||||
if not core.terrainService.canBuildAtPosition(owner, owner.getPosition().x, owner.getPosition().z):
|
||||
owner.sendSystemMessage('@mission/mission_generic:probe_droid_bad_location', 0)
|
||||
return
|
||||
|
||||
mission.getObjective().handleProbeDroidSummon(core, owner)
|
||||
return
|
||||
@@ -0,0 +1,41 @@
|
||||
from resources.common import RadialOptions
|
||||
from resources.common import SpawnPoint
|
||||
import time
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.clear()
|
||||
radials.add(RadialOptions(0, 138, 0, 'Track Target'))
|
||||
radials.add(RadialOptions(1, 136, 0, '@mission/mission_generic:probe_droid_track_target')) # Track Bounty Target
|
||||
radials.add(RadialOptions(1, 137, 0, '@mission/mission_generic:probe_droid_find_target')) # Identify Bounty Target
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
|
||||
if option == 136 and target or option == 138 and target:
|
||||
id = owner.getPlayerObject().getBountyMissionId()
|
||||
if id is None or id == 0:
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
|
||||
return
|
||||
|
||||
mission = core.objectService.getObject(id)
|
||||
if mission is None:
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
|
||||
return
|
||||
|
||||
if mission.getObjective().isSeekerActive():
|
||||
owner.sendSystemMessage('@mission/mission_generic:bounty_already_tracking', 0)
|
||||
return
|
||||
pos = SpawnPoint.getRandomPosition(owner.getPosition(), 1, 3, owner.getPlanetId())
|
||||
ori = owner.getOrientation()
|
||||
seeker = core.staticService.spawnObject('object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff', owner.getPlanet().getName(), 0, pos.x, pos.y, pos.z, ori.y, ori.w)
|
||||
time.sleep(3)
|
||||
owner.sendSystemMessage('@mission/mission_generic:seeker_droid_standby', 0)
|
||||
seeker.setPosture(8)
|
||||
time.sleep(7.5)
|
||||
mission.getObjective().beginSeekerUpdates(core, owner)
|
||||
return
|
||||
|
||||
if option == 137 and target:
|
||||
return
|
||||
return
|
||||
@@ -4,10 +4,23 @@ import sys
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.clear()
|
||||
radials.add(RadialOptions(0, 36, 0, 'Loot'))
|
||||
|
||||
if target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
|
||||
radials.add(RadialOptions(0, 163, 3, '@sui:harvest_corpse'))
|
||||
radials.add(RadialOptions(2, 164, 3, '@sui:harvest_meat'))
|
||||
radials.add(RadialOptions(2, 165, 3, '@sui:harvest_hide'))
|
||||
radials.add(RadialOptions(2, 166, 3, '@sui:harvest_bone'))
|
||||
|
||||
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
|
||||
if option == 164 and target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
|
||||
core.resourceService.doHarvest(owner, target, 'meat')
|
||||
if option == 165 and target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
|
||||
core.resourceService.doHarvest(owner, target, 'hide')
|
||||
if option == 166 and target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
|
||||
core.resourceService.doHarvest(owner, target, 'bone')
|
||||
if option == 36 and target:
|
||||
#core.lootService.handleLootRequest(owner,target)
|
||||
core.lootService.handleLootRequest(owner,target)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
from resources.common import RadialOptions
|
||||
import sys
|
||||
|
||||
def createRadial(core, owner, target, radials):
|
||||
radials.clear()
|
||||
if target.getAttachment('AI') and core.resourceService.canMilk(owner, target):
|
||||
radials.add(RadialOptions(0, 167, 3, '@pet/pet_menu:milk_me'))
|
||||
|
||||
return
|
||||
|
||||
def handleSelection(core, owner, target, option):
|
||||
|
||||
if option == 167 and target.getAttachment('AI') and core.resourceService.canMilk(owner, target):
|
||||
core.resourceService.doMilk(owner, target)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import resources.objects.creature.CreatureObject;
|
||||
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, object, option):
|
||||
if option == 21:
|
||||
core.buffService.addBuffToCreature(owner, 'drink_breath_of_heaven', owner)
|
||||
|
||||
core.objectService.destroyObject(object)
|
||||
return
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
import sys
|
||||
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
|
||||
|
||||
|
||||
return
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import StateStatus
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
########################################################
|
||||
# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
|
||||
# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
|
||||
# EACH AREA OF A PLANET. - LEVARRIS
|
||||
########################################################
|
||||
|
||||
|
||||
return
|
||||
@@ -1,8 +0,0 @@
|
||||
import sys
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
stcSvc = core.staticService
|
||||
#this script is no longer for NPC spawning - Levarris
|
||||
|
||||
return
|
||||
@@ -0,0 +1,11 @@
|
||||
import sys
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
stcSvc = core.staticService
|
||||
########################################################
|
||||
# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
|
||||
# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
|
||||
# EACH AREA OF A PLANET. - LEVARRIS
|
||||
|
||||
return
|
||||
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
stcSvc = core.staticService
|
||||
|
||||
########################################################
|
||||
# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
|
||||
# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
|
||||
# EACH AREA OF A PLANET. - LEVARRIS
|
||||
########################################################
|
||||
|
||||
|
||||
return
|
||||
@@ -1,35 +0,0 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import StateStatus
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
stcSvc = core.staticService
|
||||
|
||||
# Objects
|
||||
|
||||
stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(3525), float(4), float(-4801), float(0.70), float(0.71))
|
||||
|
||||
# Buildings
|
||||
|
||||
# Example
|
||||
#building = stcSvc.spawnObject('object/building/myThatchedHut.iff', 'tatooine', long(0), float(3525), float(4), float(-4804), float(0.70), float(0.71))
|
||||
#stcSvc.spawnObject('object/mobile/shared_my_npc.iff', 'tatooine', building.getCellByCellNumber(7), float(3525), float(4), float(-4804), float(0.70), float(0.71))
|
||||
|
||||
# NPCs
|
||||
|
||||
stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288))
|
||||
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3525), float(4), float(-4804), float(0.70), float(0.71))
|
||||
|
||||
#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))
|
||||
|
||||
impRecruiter = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_f.iff', 'tatooine', long(1280132), float(-6), float(1), float(9.2), float(0.70), float(0.71))
|
||||
impRecruiter.setOptionsBitmask(264)
|
||||
|
||||
rebRecruiter = stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_human_female_01.iff', 'tatooine', long(1082887), float(-30.5), float(-0.5), float(6.2), float(0.70), float(0.71))
|
||||
rebRecruiter.setOptionsBitmask(264)
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
import sys
|
||||
# Project SWG: Anchorhead: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
# Cantina Interior
|
||||
rebRecruiter = stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_human_female_01.iff', 'tatooine', long(1213345), float(-2.2), float(0.4), float(-5.4), float(0), float(0))
|
||||
rebRecruiter.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
borraSetas.setOptionsBitmask(256)
|
||||
|
||||
# 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')
|
||||
aaphKoden.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
Alger.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
carhlaBastra.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
cuanTalon.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
dromaOrdo.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
Sorna.setOptionsBitmask(256)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
import sys
|
||||
# Project SWG: Bestine: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
# 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')
|
||||
indigoSiyan.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
keanna.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
oberhaur.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
seanTrenwell.setOptionsBitmask(256)
|
||||
|
||||
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))
|
||||
talmont.setCustomName2('Prefect Talmont')
|
||||
talmont.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
tourAryon.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
victorVisalis.setOptionsBitmask(256)
|
||||
|
||||
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))
|
||||
wilhalmSkrim.setCustomName2('Wilhalm Skrim')
|
||||
wilhalmSkrim.setOptionsBitmask(256)
|
||||
|
||||
|
||||
#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')
|
||||
akalColzet.setOptionsBitmask(256)
|
||||
|
||||
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))
|
||||
fariousGletch.setCustomName2('Farious Gletch')
|
||||
fariousGletch.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
pfilbeeJhorn.setOptionsBitmask(256)
|
||||
|
||||
#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')
|
||||
gilBurtin.setOptionsBitmask(256)
|
||||
|
||||
# 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')
|
||||
barak.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
barrezz.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jasha.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
dkrn.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
gunham.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
kormundThrylle.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
calebKnolar.setOptionsBitmask(256)
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
import sys
|
||||
# Project SWG: Jabba's Palace: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
# TODO Verify proper cell IDs once Jabba's Palace is spawning properly again.
|
||||
|
||||
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')
|
||||
reelo.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
reeyees.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
ephant.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
porcellus.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
barada.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
bibMain.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
jabba.setOptionsBitmask(264)
|
||||
|
||||
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.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
bobaFett.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
ev9d9.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
malakili.setOptionsBitmask(264)
|
||||
|
||||
# TODO 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')
|
||||
maxRebo.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
droopy.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
sySnootles.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
g5po.setOptionsBitmask(264)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import sys
|
||||
# Project SWG: Jawa Sandcrawler - Legacy Quest Area: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
#Outside
|
||||
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')
|
||||
fa2po.setOptionsBitmask(256)
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import sys
|
||||
# Project SWG: Mos Entha: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
#Outside
|
||||
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')
|
||||
zefAndo.setOptionsBitmask(256)
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,336 @@
|
||||
import sys
|
||||
# Project SWG: Mos Eisley: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
#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.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
chadraFanFemale.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
chadraFanMale.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
muftak.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
chissMale1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
chissMale2.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
cantinaStorm.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
cantinaStormL.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
figrinDan.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
techMor.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
doikkNats.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
tednDahai.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
nalanCheel.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
businessman1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
entertainer1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
noble1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner2.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner3.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner4.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner5.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner6.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner7.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner8.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner9.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner10.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
anetiaKahryn.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
dravis.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
talonKarrde.setOptionsBitmask(256)
|
||||
|
||||
#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')
|
||||
bartender1.setOptionsBitmask(256)
|
||||
|
||||
#City Hall Interior
|
||||
|
||||
#Lucky Despot Interior TODO: Check Cell IDs for Spawned NPCS inside once Lucky Despot is spawning properly again.
|
||||
|
||||
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')
|
||||
hansolo1.setOptionsBitmask(256)
|
||||
|
||||
#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')
|
||||
businessman2.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
noble2.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner11.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
businessman3.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner12.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner13.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner14.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner15.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa2.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa3.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa4.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa5.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa6.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa7.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa8.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa9.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
bib.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner16.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
noble3.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
entertainer1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
r3m6.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
eg1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner17.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
lifter1.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
r3j7.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
noble4.setOptionsBitmask(256)
|
||||
|
||||
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.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
errikDarksider.setOptionsBitmask(256)
|
||||
|
||||
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.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
lurval.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
matildaCarson.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
vanvi.setOptionsBitmask(256)
|
||||
|
||||
#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')
|
||||
vourk.setOptionsBitmask(256)
|
||||
|
||||
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.setOptionsBitmask(264)
|
||||
|
||||
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')
|
||||
enthaKandela.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
purvis.setOptionsBitmask(256)
|
||||
|
||||
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.setOptionsBitmask(256)
|
||||
|
||||
nikoBrehe = 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))
|
||||
nikoBrehe.setOptionsBitmask(264)
|
||||
|
||||
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.setOptionsBitmask(264)
|
||||
|
||||
#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))
|
||||
|
||||
#recruiters
|
||||
impRecruiter = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_f.iff', 'tatooine', long(1280132), float(-6), float(1), float(9.2), float(0.70), float(0.71))
|
||||
impRecruiter.setOptionsBitmask(264)
|
||||
|
||||
|
||||
|
||||
#Profession Counselor
|
||||
stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288))
|
||||
|
||||
#Junk Dealers
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3355), float(5), float(-4823), float(0.71), float(0.71))
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3412), float(5), float(-4713), float(0.71), float(-0.71))
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3500), float(5), float(-4960), float(0), float(0))
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3497), float(5), float(-4928), float(0), float(1))
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3377), float(5), float(-4524), float(0.71), float(0.71))
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3271), float(5), float(-4704), float(0), float(0))
|
||||
stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3476), float(5), float(-4665), float(0.71), float(0.71))
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import sys
|
||||
# Project SWG: Mos Entha: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
#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')
|
||||
ankwee.setOptionsBitmask(256)
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
import sys
|
||||
# Project SWG: Mos Espa: Static Spawns
|
||||
# (C)2014 ProjectSWG
|
||||
|
||||
|
||||
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
|
||||
|
||||
stcSvc = core.staticService
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
# 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')
|
||||
dalaSocuna.setOptionsBitmask(256)
|
||||
|
||||
#Watto's Shop ****TODO: Get Proper cells for Watto's Shop once Buildout structures are spawning as intended again.
|
||||
|
||||
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')
|
||||
watto.setOptionsBitmask(256)
|
||||
|
||||
#Exterior Uninteractable NPCs
|
||||
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')
|
||||
commoner18.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa10.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner19.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner20.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner21.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner22.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
jawa11.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
businessman4.setOptionsBitmask(256)
|
||||
|
||||
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')
|
||||
commoner23.setOptionsBitmask(256)
|
||||
|
||||
|
||||
|
||||
return
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import State
|
||||
|
||||
def addPlanetSpawns(core, planet):
|
||||
########################################################
|
||||
# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
|
||||
# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
|
||||
# EACH AREA OF A PLANET. - LEVARRIS
|
||||
########################################################
|
||||
stcSvc = core.staticService
|
||||
# Blue Frog: Uncomment only when needed for testing.
|
||||
stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(3525), float(4), float(-4801), float(0.70), float(0.71))
|
||||
|
||||
########################################################
|
||||
# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
|
||||
# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
|
||||
# EACH AREA OF A PLANET. - LEVARRIS
|
||||
########################################################
|
||||
return
|
||||
|
||||
@@ -55,6 +55,12 @@ public class ProsePackage {
|
||||
stf.setStfName(stfLabel);
|
||||
}
|
||||
|
||||
public ProsePackage(String stfFile, String stfLabel, String ttCustomString) {
|
||||
stf.setStfFilename(stfFile);
|
||||
stf.setStfName(stfLabel);
|
||||
this.ttCustomString = ttCustomString;
|
||||
}
|
||||
|
||||
public ProsePackage(String stfFile, String stfLabel, long tuObjectId, String tuStfFile, String tuStfLabel, String tuCustomString) {
|
||||
stf.setStfFilename(stfFile);
|
||||
stf.setStfName(stfLabel);
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
/*******************************************************************************
|
||||
* 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 resources.datatables;
|
||||
|
||||
public class MilkState {
|
||||
public static final byte NOTYETMILKED = 0;
|
||||
public static final byte MILKINGINPROGRESS = 1;
|
||||
public static final byte MILKED = 2;
|
||||
}
|
||||
@@ -25,15 +25,21 @@ import java.util.Random;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import protocol.swg.CommPlayerMessage;
|
||||
import protocol.swg.PlayClientEffectLocMessage;
|
||||
import protocol.swg.UpdatePVPStatusMessage;
|
||||
import engine.resources.common.CRC;
|
||||
import engine.resources.container.Traverser;
|
||||
import engine.resources.objects.SWGObject;
|
||||
import engine.resources.scene.Point3D;
|
||||
import engine.resources.scene.Quaternion;
|
||||
import main.NGECore;
|
||||
import resources.common.BountyListItem;
|
||||
import resources.common.OutOfBand;
|
||||
import resources.common.ProsePackage;
|
||||
import resources.common.SpawnPoint;
|
||||
import resources.datatables.DisplayType;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.mission.MissionObject;
|
||||
@@ -43,15 +49,27 @@ import services.mission.MissionObjective;
|
||||
|
||||
public class BountyMissionObjective extends MissionObjective {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Point3D lastKnownLocation;
|
||||
private String lastKnownPlanet;
|
||||
private ScheduledFuture<?> locationUpdater;
|
||||
private ScheduledFuture<?> seekerUpdates;
|
||||
private ScheduledFuture<?> probeSummonTask;
|
||||
private long markObjId;
|
||||
|
||||
private boolean seekerActive = false;
|
||||
private String seekerPlanet = "";
|
||||
private boolean arakydActive = false;
|
||||
|
||||
|
||||
private Point3D arakydLandingLocation;
|
||||
|
||||
////// Droids in the world - Set Posture to 8 to launch them. //////
|
||||
// Seeker Droids: object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff
|
||||
// Arakyd Droids: object/creature/npc/droid/shared_imperial_probot_bounty.iff
|
||||
|
||||
///// Inventory form /////
|
||||
// Seeker Droids: object/tangible/mission/shared_mission_bounty_droid_seeker.iff
|
||||
// Arakyd Droids: object/tangible/mission/shared_mission_bounty_droid_probot.iff
|
||||
public BountyMissionObjective(MissionObject parent) {
|
||||
super(parent);
|
||||
}
|
||||
@@ -76,7 +94,7 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
String message = "@mission/mission_bounty_informant:target_hard_" + Integer.toString(new Random().nextInt(4) + 1);
|
||||
|
||||
CommPlayerMessage comm = new CommPlayerMessage(player.getObjectId(), new OutOfBand(new ProsePackage(message)));
|
||||
comm.setTime(5000);
|
||||
comm.setTime(2000);
|
||||
switch (bountyTarget.getFaction()) {
|
||||
case "neutral":
|
||||
comm.setModel("object/mobile/shared_dressed_assassin_mission_giver_0" + Integer.toString(new Random().nextInt(2) + 1) + ".iff");
|
||||
@@ -90,8 +108,17 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
} //Could also be: object/mobile/shared_bounty_guild_bounty_check.iff || object/mobile/shared_bounty_check_fugitive_x.iff
|
||||
|
||||
player.getClient().getSession().write(comm.serialize());
|
||||
|
||||
player.getPlayerObject().setBountyMissionId(getMissionObject().getObjectId());
|
||||
|
||||
/*CreatureObject target = (CreatureObject) core.objectService.getObject(markObjId);
|
||||
if (target != null && target.getPlanetId() == player.getPlanetId()) {
|
||||
UpdatePVPStatusMessage upvpm = new UpdatePVPStatusMessage(player.getObjectID(), core.factionService.calculatePvpStatus(player, target), player.getFaction());
|
||||
player.getClient().getSession().write(upvpm.serialize());
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void complete(NGECore core, CreatureObject player) {
|
||||
BountyListItem bounty = core.missionService.getBountyListItem(markObjId);
|
||||
@@ -111,16 +138,20 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
clearActiveMissions(core, bounty);
|
||||
|
||||
core.missionService.removeBounty(markObjId);
|
||||
player.getPlayerObject().setBountyMissionId(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void abort(NGECore core, CreatureObject player) {
|
||||
cancelLocationUpdates();
|
||||
|
||||
BountyListItem bounty = core.missionService.getBountyListItem(markObjId);
|
||||
|
||||
if (bounty == null)
|
||||
return;
|
||||
|
||||
bounty.removeBountyHunter(player.getObjectId());
|
||||
player.getPlayerObject().setBountyMissionId(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -182,51 +213,147 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
}
|
||||
}
|
||||
|
||||
public void beginSeekerUpdates(NGECore core) {
|
||||
public void handleProbeDroidSummon(NGECore core, final CreatureObject actor) {
|
||||
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_launch_prep", DisplayType.Broadcast);
|
||||
AtomicInteger countDown = new AtomicInteger();
|
||||
|
||||
ScheduledFuture<?> summon = Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
switch(countDown.incrementAndGet()) {
|
||||
case 15:
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_arrival_5", DisplayType.Broadcast);
|
||||
break;
|
||||
case 16:
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_arrival_4", DisplayType.Broadcast);
|
||||
break;
|
||||
case 17:
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_arrival_3", DisplayType.Broadcast);
|
||||
break;
|
||||
case 18:
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_arrival_2", DisplayType.Broadcast);
|
||||
break;
|
||||
case 19:
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_arrival_1", DisplayType.Broadcast);
|
||||
arakydLandingLocation = SpawnPoint.getRandomPosition(actor.getPosition(), 50, 120, actor.getPlanetId());
|
||||
PlayClientEffectLocMessage effectMsg = new PlayClientEffectLocMessage("clienteffect/probot_delivery.cef", actor.getPlanet().getName(), arakydLandingLocation);
|
||||
actor.getClient().getSession().write(effectMsg.serialize());
|
||||
break;
|
||||
case 20:
|
||||
break;
|
||||
case 23:
|
||||
Quaternion ori = actor.getOrientation();
|
||||
|
||||
CreatureObject probe = (CreatureObject) NGECore.getInstance().staticService.spawnObject("object/creature/npc/droid/shared_imperial_probot_bounty.iff",
|
||||
actor.getPlanet().getName(), 0, arakydLandingLocation.x, arakydLandingLocation.y, arakydLandingLocation.z, ori.y, ori.w);
|
||||
|
||||
// TODO: Move probe to the player.
|
||||
|
||||
probe.setAttachment("probotRequester", actor.getObjectID());
|
||||
probe.setAttachment("attachedMission", getMissionObject().getObjectID());
|
||||
actor.sendSystemMessage("@mission/mission_generic:probe_droid_arrival", DisplayType.Broadcast);
|
||||
probeSummonTask.cancel(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, 1, 1, TimeUnit.SECONDS);
|
||||
|
||||
probeSummonTask = summon;
|
||||
|
||||
}
|
||||
|
||||
public void beginSeekerUpdates(NGECore core, CreatureObject actor) {
|
||||
|
||||
if (!seekerActive) {
|
||||
setSeekerActive(true);
|
||||
setSeekerPlanet(getMissionObject().getGrandparent().getPlanet().getName());
|
||||
setSeekerPlanet(actor.getPlanet().getName());
|
||||
|
||||
ScheduledFuture<?> updates = Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
|
||||
AtomicInteger updates = new AtomicInteger();
|
||||
ScheduledFuture<?> updater = Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
|
||||
MissionObject mission = getMissionObject();
|
||||
SWGObject target = core.objectService.getObject(markObjId);
|
||||
CreatureObject player = (CreatureObject) mission.getGrandparent();
|
||||
|
||||
|
||||
if (target == null) {
|
||||
player.sendSystemMessage("@mission/mission_generic:player_target_inactive", DisplayType.Broadcast);
|
||||
actor.sendSystemMessage("@mission/mission_generic:player_target_inactive", DisplayType.Broadcast);
|
||||
cancelLocationUpdates();
|
||||
return;
|
||||
} else if (target.getPlanet().getName() != getSeekerPlanet()) {
|
||||
player.sendSystemMessage("@mission/mission_generic:target_not_on_planet", DisplayType.Broadcast);
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_not_on_planet", DisplayType.Broadcast);
|
||||
cancelLocationUpdates();
|
||||
return;
|
||||
} else {
|
||||
WaypointObject missionWp = mission.getAttachedWaypoint();
|
||||
|
||||
if (missionWp == null) {
|
||||
player.sendSystemMessage("@mission/mission_generic:target_not_found_1", DisplayType.Broadcast);
|
||||
|
||||
if (updates.get() >= 5) {
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_track_lost", DisplayType.Broadcast);
|
||||
cancelLocationUpdates();
|
||||
return;
|
||||
}
|
||||
missionWp.setPosition(target.getWorldPosition());
|
||||
|
||||
WaypointObject missionWp = mission.getAttachedWaypoint();
|
||||
|
||||
mission.setAttachedWaypoint(missionWp);
|
||||
player.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
if (missionWp == null) {
|
||||
WaypointObject waypoint = (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/shared_waypoint.iff", target.getPlanet(),
|
||||
target.getWorldPosition().x, target.getWorldPosition().z, target.getWorldPosition().y);
|
||||
waypoint.setActive(true);
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setName(getMissionObject().getMissionTargetName());
|
||||
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
|
||||
waypoint.setStringAttribute("", "");
|
||||
getMissionObject().setAttachedWaypoint(waypoint);
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
} else {
|
||||
missionWp.setPosition(target.getWorldPosition());
|
||||
mission.setAttachedWaypoint(missionWp);
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
}
|
||||
updates.getAndIncrement();
|
||||
}
|
||||
}
|
||||
}, 60, 15, TimeUnit.SECONDS);
|
||||
|
||||
setLocationUpdater(updates);
|
||||
seekerUpdates = updater;
|
||||
}
|
||||
}
|
||||
|
||||
public void beginArakydUpdate(final CreatureObject actor) {
|
||||
arakydActive = true;
|
||||
Executors.newScheduledThreadPool(1).schedule(() -> {
|
||||
|
||||
int number = new Random().nextInt(100);
|
||||
|
||||
// Effectively a 16% chance of failing. The failure type is calculated by subtracting 10 from the number received.
|
||||
if (number <= 16 && number != 0) { actor.sendSystemMessage("@mission/mission_generic:target_not_found_" + String.valueOf(10 - number), (byte) 0); return; }
|
||||
|
||||
SWGObject target = NGECore.getInstance().objectService.getObject(markObjId);
|
||||
if (target == null) { actor.sendSystemMessage("@mission/mission_generic:player_target_inactive", DisplayType.Broadcast); }
|
||||
|
||||
WaypointObject waypoint = (WaypointObject) NGECore.getInstance().objectService.createObject("object/waypoint/shared_waypoint.iff", target.getPlanet(),
|
||||
target.getWorldPosition().x, target.getWorldPosition().z, target.getWorldPosition().y);
|
||||
waypoint.setActive(true);
|
||||
waypoint.setColor(WaypointObject.ORANGE);
|
||||
waypoint.setName(getMissionObject().getMissionTargetName());
|
||||
waypoint.setPlanetCRC(CRC.StringtoCRC(target.getPlanet().getName()));
|
||||
waypoint.setStringAttribute("", "");
|
||||
getMissionObject().setAttachedWaypoint(waypoint);
|
||||
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_location_updated_ground", DisplayType.Broadcast);
|
||||
actor.sendSystemMessage("@mission/mission_generic:target_located_" + target.getPlanet().getName(), DisplayType.Broadcast);
|
||||
|
||||
}, 180, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public void cancelLocationUpdates() {
|
||||
getLocationUpdater().cancel(true);
|
||||
if (seekerUpdates != null)
|
||||
seekerUpdates.cancel(true);
|
||||
if (probeSummonTask != null)
|
||||
probeSummonTask.cancel(true);
|
||||
|
||||
setSeekerActive(false);
|
||||
setSeekerPlanet("");
|
||||
setArakydActive(false);
|
||||
@@ -244,10 +371,6 @@ public class BountyMissionObjective extends MissionObjective {
|
||||
|
||||
public void setLastKnownPlanet(String lastKnownPlanet) { this.lastKnownPlanet = lastKnownPlanet; }
|
||||
|
||||
public ScheduledFuture<?> getLocationUpdater() { return locationUpdater; }
|
||||
|
||||
public void setLocationUpdater(ScheduledFuture<?> locationUpdater) { this.locationUpdater = locationUpdater; }
|
||||
|
||||
public boolean isSeekerActive() { return seekerActive; }
|
||||
|
||||
public void setSeekerActive(boolean seekerActive) { this.seekerActive = seekerActive; }
|
||||
|
||||
@@ -33,6 +33,8 @@ import services.mission.MissionObjective;
|
||||
|
||||
public class DeliveryMissionObjective extends MissionObjective {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private TangibleObject deliveryObject;
|
||||
private CreatureObject missionGiver;
|
||||
private CreatureObject dropOffNpc;
|
||||
|
||||
@@ -28,6 +28,8 @@ import services.mission.MissionObjective;
|
||||
|
||||
public class DestroyMissionObjective extends MissionObjective {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public DestroyMissionObjective(MissionObject parent) {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ public class CreatureObject extends TangibleObject implements Serializable {
|
||||
@NotPersistent
|
||||
private transient ConcurrentHashMap<String, Long> cooldowns = new ConcurrentHashMap<String, Long>();
|
||||
@NotPersistent
|
||||
private transient long tefTime = System.currentTimeMillis();
|
||||
private transient long tefTime = 0;
|
||||
@NotPersistent
|
||||
private transient SWGObject useTarget;
|
||||
|
||||
@@ -213,7 +213,6 @@ public class CreatureObject extends TangibleObject implements Serializable {
|
||||
duelList = Collections.synchronizedList(new ArrayList<CreatureObject>());
|
||||
cooldowns = new ConcurrentHashMap<String, Long>();
|
||||
performanceAudience = new Vector<CreatureObject>();
|
||||
tefTime = System.currentTimeMillis();
|
||||
messageBuilder = new CreatureMessageBuilder(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -150,6 +150,8 @@ public class PlayerObject extends IntangibleObject implements Serializable {
|
||||
@NotPersistent
|
||||
private transient boolean callingCompanion = false;
|
||||
|
||||
private long bountyMissionId;
|
||||
|
||||
public PlayerObject() {
|
||||
super();
|
||||
messageBuilder = new PlayerMessageBuilder(this);
|
||||
@@ -894,10 +896,8 @@ public class PlayerObject extends IntangibleObject implements Serializable {
|
||||
|
||||
public boolean isMemberOfChannel(int roomId) {
|
||||
if (chatChannels.contains(roomId)) {
|
||||
System.out.println("Member of the channel!");
|
||||
return true;
|
||||
}
|
||||
System.out.println("Not a Member of the channel!");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -909,6 +909,14 @@ public class PlayerObject extends IntangibleObject implements Serializable {
|
||||
this.callingCompanion = callingCompanion;
|
||||
}
|
||||
|
||||
public long getBountyMissionId() {
|
||||
return bountyMissionId;
|
||||
}
|
||||
|
||||
public void setBountyMissionId(long bountyMissionId) {
|
||||
this.bountyMissionId = bountyMissionId;
|
||||
}
|
||||
|
||||
public ObjectMessageBuilder getMessageBuilder() {
|
||||
return messageBuilder;
|
||||
}
|
||||
|
||||
@@ -128,6 +128,7 @@ public class TangibleObject extends SWGObject implements Serializable {
|
||||
@Override
|
||||
public void initAfterDBLoad() {
|
||||
super.init();
|
||||
defendersList = new Vector<TangibleObject>();
|
||||
messageBuilder = new TangibleMessageBuilder(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -279,8 +279,10 @@ public class ConnectionService implements INetworkDispatch {
|
||||
object.setAttachment("disconnectTask", null);
|
||||
|
||||
List<ScheduledFuture<?>> schedulers = core.playerService.getSchedulers().get(object.getObjectID());
|
||||
schedulers.forEach(s -> s.cancel(true));
|
||||
schedulers.clear();
|
||||
if(schedulers != null) {
|
||||
schedulers.forEach(s -> s.cancel(true));
|
||||
schedulers.clear();
|
||||
}
|
||||
core.playerService.getSchedulers().remove(object.getObjectID());
|
||||
|
||||
core.getSWGObjectODB().put(object.getObjectID(), object);
|
||||
|
||||
@@ -86,12 +86,13 @@ public class DevService implements INetworkDispatch {
|
||||
suiOptions.put((long) 23, "Jedi Items");
|
||||
suiOptions.put((long) 26, "Installations");
|
||||
suiOptions.put((long) 110, "Survey Devices");
|
||||
if(creature.getPlayerObject().getProfession().equals("bounty_hunter_1a")) suiOptions.put((long) 123, "Tracking Droids");
|
||||
if(creature.getClient().isGM()) suiOptions.put((long) 120, "House Deeds");
|
||||
if(creature.getClient().isGM()) suiOptions.put((long) 125, "Crafting Tools");
|
||||
if(creature.getClient().isGM()) suiOptions.put((long) 130, "Vehicle Deeds");
|
||||
if(creature.getClient().isGM()) suiOptions.put((long) 121, "Sandbox City");
|
||||
if(creature.getClient().isGM()) suiOptions.put((long) 122, "Jedi Ruins");
|
||||
|
||||
|
||||
break;
|
||||
case 3: // [Items] Weapons
|
||||
suiOptions.put((long) 30, "Jedi Weapons");
|
||||
@@ -103,6 +104,7 @@ public class DevService implements INetworkDispatch {
|
||||
suiOptions.put((long) 40, "Unity Ring");
|
||||
suiOptions.put((long) 41, "Tusken Rucksack");
|
||||
suiOptions.put((long) 42, "Heroism Jewlery Set");
|
||||
suiOptions.put((long) 43, "Breath of Heaven");
|
||||
break;
|
||||
case 5: // [Items] Armor
|
||||
suiOptions.put((long) 50, "Assault Armor");
|
||||
@@ -342,6 +344,12 @@ public class DevService implements INetworkDispatch {
|
||||
inventory.add(heroismBraceletRight);
|
||||
inventory.add(heroismBraceletLeft);
|
||||
return;
|
||||
case 43:
|
||||
TangibleObject drink = (TangibleObject) core.objectService.createObject("object/tangible/food/crafted/shared_drink_breath_of_heaven.iff", planet);
|
||||
drink.setFloatAttribute("cat_stat_mod_bonus.@stat_n:constitution_modified", 100);
|
||||
drink.setFloatAttribute("cat_stat_mod_bonus.@stat_n:dodge", 3);
|
||||
inventory.add(drink);
|
||||
return;
|
||||
case 50: // [Items] Assault Armor
|
||||
sendCharacterBuilderSUI(player, 6);
|
||||
return;
|
||||
@@ -1168,11 +1176,23 @@ public class DevService implements INetworkDispatch {
|
||||
|
||||
case 121:
|
||||
NGECore.getInstance().playerCityService.buildSandboxTestCity(player);
|
||||
return;
|
||||
|
||||
case 122:
|
||||
Point3D position = new Point3D(4086,15,5554);
|
||||
core.simulationService.transferToPlanet(player, core.terrainService.getPlanetByName("dantooine"), position, player.getOrientation(), null);
|
||||
|
||||
return;
|
||||
|
||||
case 123:
|
||||
TangibleObject arakydDroids = (TangibleObject) core.objectService.createObject("object/tangible/mission/shared_mission_bounty_droid_probot.iff", planet);
|
||||
//arakydDroids.setStackable(true);
|
||||
//arakydDroids.setStackCount(10);
|
||||
inventory.add(arakydDroids);
|
||||
|
||||
TangibleObject seekerDroids = (TangibleObject) core.objectService.createObject("object/tangible/mission/shared_mission_bounty_droid_seeker.iff", planet);
|
||||
inventory.add(seekerDroids);
|
||||
return;
|
||||
|
||||
case 125:
|
||||
TangibleObject genericCraftingTool = (TangibleObject) core.objectService.createObject("object/tangible/crafting/station/shared_generic_tool.iff", planet);
|
||||
genericCraftingTool.setCustomName("Generic Crafting Tool");
|
||||
|
||||
@@ -1306,6 +1306,13 @@ public class PlayerService implements INetworkDispatch {
|
||||
bounty = 1000000;
|
||||
}
|
||||
|
||||
if (core.getBountiesODB().contains(attacker.getObjectID())) {
|
||||
if (((BountyListItem) core.getBountiesODB().get(attacker.getObjectID())).getCreditReward() >= 20000000) {
|
||||
victim.sendSystemMessage("@bounty_hunter:max_bounty", DisplayType.Broadcast);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Try removing bounty amount from the bank first then cash. Remove amount accordingly if bank/cash is less than placed bounty.
|
||||
if (bounty > victim.getBankCredits()) {
|
||||
int difference = bounty - victim.getBankCredits();
|
||||
@@ -1321,12 +1328,15 @@ public class PlayerService implements INetworkDispatch {
|
||||
|
||||
if (!core.missionService.addToExistingBounty(attacker.getObjectId(), victim.getObjectId(), bounty))
|
||||
core.missionService.createNewBounty(attacker, victim.getObjectId(), bounty);
|
||||
|
||||
victim.sendSystemMessage("You have placed a bounty for " + bounty + " credits on the head of " + attacker.getCustomName(), (byte) 0);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
bountyWindow.setProperty("txtInput:NumericInteger", "true");
|
||||
bountyWindow.setProperty("txtInput:MaxLength", "7");
|
||||
bountyWindow.setProperty("inputBox:Size", "306,306");
|
||||
core.suiService.openSUIWindow(bountyWindow);
|
||||
}
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@ public class StaticService implements INetworkDispatch {
|
||||
}
|
||||
} else {
|
||||
if (cell == null) {
|
||||
System.err.println("StaticService: Cell not found");
|
||||
System.err.println("StaticService: Cell not found for: " + template);
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ public class SurveyService implements INetworkDispatch {
|
||||
containerObject.initializeStats(sampleResource);
|
||||
containerObject.setProprietor(crafter);
|
||||
SWGObject crafterInventory = crafter.getSlottedObject("inventory");
|
||||
container.setStackCount(stackCount,crafter);
|
||||
containerObject.setStackCount(stackCount,crafter);
|
||||
crafterInventory.add(containerObject);
|
||||
player.setRecentContainer(containerObject);
|
||||
}
|
||||
|
||||
@@ -64,6 +64,8 @@ public class AIActor {
|
||||
private ScheduledFuture<?> regenTask;
|
||||
private ScheduledFuture<?> aggroCheckTask;
|
||||
private boolean isStalking = false;
|
||||
private byte milkState = 0;
|
||||
private boolean hasBeenHarvested = false;
|
||||
|
||||
public AIActor(CreatureObject creature, Point3D spawnPosition, ScheduledExecutorService scheduler) {
|
||||
this.creature = creature;
|
||||
@@ -109,18 +111,25 @@ public class AIActor {
|
||||
public void setSpawnPosition(Point3D spawnPosition) {
|
||||
this.spawnPosition = spawnPosition;
|
||||
}
|
||||
|
||||
|
||||
public void addDefender(CreatureObject defender) {
|
||||
addDefender(defender, false);
|
||||
}
|
||||
|
||||
|
||||
public void addDefender(CreatureObject defender, boolean isAssisting) {
|
||||
creature.addDefender(defender);
|
||||
if(followObject == null)
|
||||
setFollowObject(defender);
|
||||
setCurrentState(new AttackState());
|
||||
NGECore.getInstance().simulationService.get(creature.getPlanet(), creature.getWorldPosition().x, creature.getWorldPosition().z, 30).stream().filter((obj) ->
|
||||
obj instanceof CreatureObject &&
|
||||
obj.getAttachment("AI") != null &&
|
||||
((AIActor) obj.getAttachment("AI")).getMobileTemplate().getSocialGroup().equals(getMobileTemplate().getSocialGroup()) &&
|
||||
obj.inRange(creature.getWorldPosition(), ((AIActor) obj.getAttachment("AI")).getMobileTemplate().getAssistRange())
|
||||
).forEach((obj) -> ((AIActor) obj.getAttachment("AI")).addDefender(defender));
|
||||
if(!isAssisting) {
|
||||
NGECore.getInstance().simulationService.get(creature.getPlanet(), creature.getWorldPosition().x, creature.getWorldPosition().z, 30).stream().filter((obj) ->
|
||||
obj instanceof CreatureObject &&
|
||||
obj.getAttachment("AI") != null &&
|
||||
((AIActor) obj.getAttachment("AI")).getMobileTemplate().getSocialGroup().equals(getMobileTemplate().getSocialGroup()) &&
|
||||
obj.inRange(creature.getWorldPosition(), ((AIActor) obj.getAttachment("AI")).getMobileTemplate().getAssistRange())
|
||||
).forEach((obj) -> ((AIActor) obj.getAttachment("AI")).addDefender(defender, true));
|
||||
}
|
||||
}
|
||||
|
||||
public void removeDefender(CreatureObject defender) {
|
||||
@@ -284,6 +293,7 @@ public class AIActor {
|
||||
public void scheduleDespawn() {
|
||||
scheduler.schedule(() -> {
|
||||
|
||||
aggroCheckTask.cancel(true);
|
||||
regenTask.cancel(true);
|
||||
damageMap.clear();
|
||||
followObject = null;
|
||||
@@ -308,5 +318,29 @@ public class AIActor {
|
||||
public void setStalking(boolean isStalking) {
|
||||
this.isStalking = isStalking;
|
||||
}
|
||||
|
||||
public byte getMilkState() {
|
||||
synchronized(creature.getMutex()) {
|
||||
return milkState;
|
||||
}
|
||||
}
|
||||
|
||||
public void setMilkState(byte milkState) {
|
||||
synchronized(creature.getMutex()) {
|
||||
this.milkState = milkState;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasBeenHarvested() {
|
||||
synchronized(creature.getMutex()) {
|
||||
return hasBeenHarvested;
|
||||
}
|
||||
}
|
||||
|
||||
public void setHasBeenHarvested(boolean hasBeenHarvested) {
|
||||
synchronized(creature.getMutex()) {
|
||||
this.hasBeenHarvested = hasBeenHarvested;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,11 +43,15 @@ import protocol.swg.objectControllerObjects.StartTask;
|
||||
import resources.buffs.Buff;
|
||||
import resources.buffs.DamageOverTime;
|
||||
import resources.common.FileUtilities;
|
||||
import resources.common.OutOfBand;
|
||||
import resources.common.ProsePackage;
|
||||
import resources.datatables.Options;
|
||||
import resources.datatables.Elemental;
|
||||
import resources.datatables.Posture;
|
||||
import resources.datatables.WeaponType;
|
||||
import resources.objectives.BountyMissionObjective;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.mission.MissionObject;
|
||||
import resources.objects.player.PlayerObject;
|
||||
import resources.objects.tangible.TangibleObject;
|
||||
import resources.objects.waypoint.WaypointObject;
|
||||
@@ -800,8 +804,10 @@ public class CombatService implements INetworkDispatch {
|
||||
}, target.getIncapTimer(), TimeUnit.SECONDS);
|
||||
target.setIncapTask(incapTask);
|
||||
core.buffService.addBuffToCreature(target, "incapWeaken", target);
|
||||
if(target.getSlottedObject("ghost") != null)
|
||||
attacker.sendSystemMessage("You incapacitate " + target.getCustomName() + ".", (byte) 0);
|
||||
if(target.getSlottedObject("ghost") != null) {
|
||||
target.sendSystemMessage(new OutOfBand(new ProsePackage("base_player", "prose_victim_incap", attacker.getCustomName())), (byte) 0);
|
||||
attacker.sendSystemMessage(new OutOfBand(new ProsePackage("base_player", "prose_target_incap", target.getCustomName())), (byte) 0);
|
||||
}
|
||||
return;
|
||||
} else if(target.getHealth() - damage <= 0 && target.getAttachment("AI") != null) {
|
||||
synchronized(target.getMutex()) {
|
||||
@@ -983,17 +989,50 @@ public class CombatService implements INetworkDispatch {
|
||||
target.stopIncapTask();
|
||||
target.setIncapTask(null);
|
||||
target.setPosture((byte) 14);
|
||||
attacker.sendSystemMessage("You have killed " + target.getCustomName() + ".", (byte) 0);
|
||||
target.sendSystemMessage("@base_player:victim_dead", (byte) 0);
|
||||
|
||||
if (target.getSlottedObject("ghost") != null && attacker.getSlottedObject("ghost") != null) {
|
||||
boolean bountyWindow = true;
|
||||
if (target.getPlayerObject().getBountyMissionId() != 0) {
|
||||
MissionObject mission = (MissionObject) core.objectService.getObject(target.getPlayerObject().getBountyMissionId());
|
||||
if (mission != null && mission.getBountyObjId() == attacker.getObjectId()) {
|
||||
bountyWindow = false;
|
||||
target.sendSystemMessage(new OutOfBand(new ProsePackage("bounty_hunter", "bounty_failed_hunter", attacker.getCustomName())), (byte) 0);
|
||||
|
||||
ProsePackage pp = new ProsePackage("bounty_hunter", "bounty_failed_target", attacker.getCustomName());
|
||||
pp.setToCustomString("their");
|
||||
attacker.sendSystemMessage(new OutOfBand(pp), (byte) 0);
|
||||
|
||||
core.missionService.handleMissionAbort(target, mission);
|
||||
}
|
||||
} else if (attacker.getPlayerObject().getBountyMissionId() != 0) {
|
||||
MissionObject mission = (MissionObject) core.objectService.getObject(attacker.getPlayerObject().getBountyMissionId());
|
||||
if (mission != null && mission.getBountyObjId() == target.getObjectId()) {
|
||||
bountyWindow = false;
|
||||
ProsePackage targetProse = new ProsePackage("bounty_hunter", "bounty_success_target", attacker.getCustomName());
|
||||
targetProse.setDiInteger(mission.getCreditReward());
|
||||
target.sendSystemMessage(new OutOfBand(targetProse), (byte) 0);
|
||||
|
||||
ProsePackage attackerProse = new ProsePackage("bounty_hunter", "bounty_success_hunter", target.getCustomName());
|
||||
attackerProse.setToCustomString("their"); // should be his or her: http://youtu.be/BqeDQQSETJI?t=2m19s
|
||||
attackerProse.setDiInteger(mission.getCreditReward());
|
||||
attacker.sendSystemMessage(new OutOfBand(attackerProse), (byte) 0);
|
||||
|
||||
core.missionService.handleMissionComplete(attacker, mission);
|
||||
}
|
||||
}
|
||||
|
||||
if(target.getDuelList().contains(attacker))
|
||||
bountyWindow = false;
|
||||
handleEndDuel(target, attacker, false);
|
||||
|
||||
if (bountyWindow) core.playerService.sendSetBountyWindow(target, attacker);
|
||||
} else { attacker.sendSystemMessage("You have killed " + target.getCustomName() + ".", (byte) 0); }
|
||||
|
||||
attacker.removeDefender(target);
|
||||
target.removeDefender(attacker);
|
||||
target.setSpeedMultiplierBase(0);
|
||||
target.setTurnRadius(0);
|
||||
|
||||
if(!target.getDuelList().contains(attacker) && attacker.getSlottedObject("ghost") != null)
|
||||
core.playerService.sendSetBountyWindow(target, attacker);
|
||||
else
|
||||
handleEndDuel(target, attacker, false);
|
||||
target.sendSystemMessage(new OutOfBand(new ProsePackage("base_player", "prose_victim_dead", attacker.getCustomName())), (byte) 0);
|
||||
|
||||
core.playerService.sendCloningWindow(target, attacker.getSlottedObject("ghost") != null);
|
||||
}
|
||||
|
||||
@@ -276,18 +276,18 @@ public class FactionService implements INetworkDispatch {
|
||||
|
||||
long targetId = target.getObjectID();
|
||||
|
||||
if (object.getSlottedObject("mission_bag") != null) {
|
||||
object.getSlottedObject("mission_bag").viewChildren(object, false, false, (mission) -> {
|
||||
if (((MissionObject) mission).getBountyObjId() == targetId) {
|
||||
if (object.getSlottedObject("datapad") != null) {
|
||||
object.getSlottedObject("datapad").viewChildren(object, false, false, (mission) -> {
|
||||
if (mission instanceof MissionObject && ((MissionObject) mission).getBountyObjId() == targetId) {
|
||||
ref.set(PvpStatus.Attackable | PvpStatus.Aggressive);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (ghost != null && ghost.getProfession().contains("smuggler") &&
|
||||
target.getSlottedObject("mission_bag") != null) {
|
||||
target.getSlottedObject("mission_bag").viewChildren(target, false, false, (mission) -> {
|
||||
if (((MissionObject) mission).getBountyObjId() == object.getObjectID()) {
|
||||
target.getSlottedObject("datapad") != null) {
|
||||
target.getSlottedObject("datapad").viewChildren(target, false, false, (mission) -> {
|
||||
if (mission instanceof MissionObject && ((MissionObject) mission).getBountyObjId() == object.getObjectID()) {
|
||||
ref.set(PvpStatus.Attackable);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -153,11 +153,8 @@ public class MissionService implements INetworkDispatch {
|
||||
if (terminalType == TerminalType.GENERIC) {
|
||||
handleMissionListRequest(core.objectService.getObject(request.getObjectId()), request.getTickCount(), TerminalType.GENERIC);
|
||||
} else if (terminalType == TerminalType.BOUNTY) {
|
||||
if (!object.hasSkill("class_bountyhunter_phase1_novice")) {
|
||||
object.sendSystemMessage("@mission/mission_generic:not_bounty_hunter_terminal", (byte) 0);
|
||||
} /*else {
|
||||
handleMissionListRequest(core.objectService.getObject(request.getObjectId()), request.getTickCount(), TerminalType.BOUNTY);
|
||||
}*/
|
||||
if (!object.hasSkill("class_bountyhunter_phase1_novice")) { object.sendSystemMessage("@mission/mission_generic:not_bounty_hunter_terminal", (byte) 0); }
|
||||
else { handleMissionListRequest(core.objectService.getObject(request.getObjectId()), request.getTickCount(), TerminalType.BOUNTY); }
|
||||
} else if (terminalType == TerminalType.ENTERTAINER) {
|
||||
|
||||
} else if (terminalType == TerminalType.ARTISAN) {
|
||||
@@ -323,6 +320,15 @@ public class MissionService implements INetworkDispatch {
|
||||
});
|
||||
}
|
||||
|
||||
public void handleMissionComplete(CreatureObject creature, MissionObject mission) {
|
||||
MissionObjective objective = mission.getObjective();
|
||||
|
||||
if (objective == null)
|
||||
return;
|
||||
|
||||
objective.complete(core, creature);
|
||||
}
|
||||
|
||||
private boolean handleMissionAccept(CreatureObject creature, MissionObject mission) {
|
||||
SWGObject missionBag = creature.getSlottedObject("mission_bag");
|
||||
|
||||
@@ -435,11 +441,14 @@ public class MissionService implements INetworkDispatch {
|
||||
|
||||
if (bountyList.size() > 0) {
|
||||
boolean gotBounty = false;
|
||||
while (!gotBounty) {
|
||||
int attempts = 0;
|
||||
while (!gotBounty && attempts < 5) {
|
||||
bountyTarget = getRandomBounty();
|
||||
|
||||
if (bountyTarget == null || bountyTarget.getAssignedHunters().size() >= 3 || bountyTarget.getCreditReward() < 20000)
|
||||
if (bountyTarget == null || bountyTarget.getAssignedHunters().size() >= 3 || bountyTarget.getCreditReward() < 20000 || bountyTarget.getObjectId() == player.getObjectId()) {
|
||||
attempts++;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
gotBounty = true;
|
||||
}
|
||||
@@ -561,13 +570,9 @@ public class MissionService implements INetworkDispatch {
|
||||
}
|
||||
|
||||
public boolean removeBounty(long bountyTarget, boolean listRemove) {
|
||||
Transaction txn = bountiesODB.getEnvironment().beginTransaction(null, null);
|
||||
|
||||
if (listRemove)
|
||||
bountyList.remove(bountiesODB.get(bountyTarget));
|
||||
|
||||
bountiesODB.remove(bountyTarget);
|
||||
txn.commitSync();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -914,9 +914,8 @@ public class ObjectService implements INetworkDispatch {
|
||||
if(!core.getConfig().getString("MOTD").equals(""))
|
||||
creature.sendSystemMessage(core.getConfig().getString("MOTD"), (byte) 2);
|
||||
|
||||
BountyListItem bounty = (BountyListItem) core.getBountiesODB().get(creature.getObjectID());
|
||||
if (bounty != null)
|
||||
core.missionService.getBountyList().add(bounty);
|
||||
if (core.getBountiesODB().contains(creature.getObjectId()))
|
||||
core.missionService.getBountyList().add((BountyListItem) core.getBountiesODB().get(creature.getObjectId()));
|
||||
|
||||
if (creature.getSlottedObject("datapad") != null) {
|
||||
creature.getSlottedObject("datapad").viewChildren(creature, true, false, new Traverser() {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user