mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-30 15:13:10 -04:00
@@ -18,8 +18,5 @@ def run(core, actor, target, commandString):
|
||||
if quest is None:
|
||||
return
|
||||
|
||||
if (quest.getActiveTask() != (core.questService.getQuestData(quest.getName()).getTasks().size() - 1)):
|
||||
return
|
||||
|
||||
core.questService.completeQuest(player, quest)
|
||||
return
|
||||
@@ -0,0 +1,42 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('smuggle_generic_1')
|
||||
if quest is None or quest.isCompleted():
|
||||
options = Vector()
|
||||
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/generic_broker_1:s_17'), 0)) # Yes.
|
||||
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/generic_broker_1:s_18'), 0)) # Not right now.
|
||||
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/generic_broker_1:s_14'))
|
||||
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsOne)
|
||||
return
|
||||
elif player.getFactionStanding() >= 1000:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/generic_broker_1', 's_8')
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/generic_broker_1', 's_4')
|
||||
return
|
||||
|
||||
def handleOptionsOne(core, actor, npc, selection):
|
||||
if selection == 0: # Yes.
|
||||
options = Vector()
|
||||
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/generic_broker_1:s_24'), 0)) # OK
|
||||
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/generic_broker_1:s_22'))
|
||||
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsTwo)
|
||||
elif selection == 1: # Not right now.
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/generic_broker_1', 's_30')
|
||||
return
|
||||
|
||||
def handleOptionsTwo(core, actor, npc, selection):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/generic_broker_1', 's_26')
|
||||
core.questService.sendQuestAcceptWindow(actor, 'quest/smuggle_generic_1')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/generic_broker_1', 's_4')
|
||||
return
|
||||
@@ -6,28 +6,30 @@ import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
|
||||
|
||||
if player is None:
|
||||
return
|
||||
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
|
||||
if quest is None:
|
||||
options = Vector()
|
||||
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_byxle:s_58'), 0))
|
||||
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_byxle:s_56'))
|
||||
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsOne)
|
||||
return
|
||||
|
||||
if quest.getActiveTask() == 8:
|
||||
elif quest.isCompleted():
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48')
|
||||
elif quest.getActiveTask() == 8:
|
||||
options = Vector()
|
||||
# I don't know. He seemed pretty mad.
|
||||
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_byxle:s_29'), 0))
|
||||
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_byxle:s_17'))
|
||||
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsFive)
|
||||
elif quest.isCompleted() == True:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48')
|
||||
else:
|
||||
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48')
|
||||
|
||||
return
|
||||
|
||||
def handleOptionsOne(core, actor, npc, selection):
|
||||
@@ -69,12 +71,7 @@ def handleOptionsFive(core, actor, npc, selection):
|
||||
|
||||
def handleOptionsSix(core, actor, npc, selection):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_70')
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
core.questService.sendQuestCompleteWindow(actor, 'quest/tatooine_eisley_tdc')
|
||||
core.questService.handleActivateSignal(actor, npc, 'tatooine_eisley_tdc', 'tat_eisley_tdc_e9')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('smuggle_generic_1')
|
||||
if quest is None or quest.isCompleted():
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
elif quest.isTaskActive(3) and quest.isTaskCompleted(7):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_5')
|
||||
core.questService.completeTask(actor, quest, 3)
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_9')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
return
|
||||
@@ -11,7 +11,7 @@ def startConversation(core, actor, npc):
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
if quest is None:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_drixa', 's_43')
|
||||
elif quest.isCompleted() == True or quest.getActiveTask() > 1:
|
||||
elif quest.isCompleted() or quest.getActiveTask() > 1:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_drixa', 's_40')
|
||||
else:
|
||||
options = Vector()
|
||||
@@ -47,11 +47,7 @@ def handleOptionsThree(core, actor, npc, selection):
|
||||
|
||||
def handleOptionsFour(core, actor, npc, selection):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_drixa', 's_40')
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
core.questService.handleActivateSignal(actor, npc, quest, 2)
|
||||
core.questService.handleActivateSignal(actor, npc, 'tatooine_eisley_tdc', 'tat_eisley_tdc_e1')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('smuggle_generic_1')
|
||||
if quest is None or quest.isCompleted():
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
elif quest.isTaskActive(2) and quest.isTaskCompleted(7):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_5')
|
||||
core.questService.completeTask(actor, quest, 2)
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_9')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
return
|
||||
@@ -12,7 +12,9 @@ def startConversation(core, actor, npc):
|
||||
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
if quest is None:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_22')
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_22')
|
||||
elif quest.isCompleted() or quest.getActiveTask() > 6:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_16')
|
||||
elif quest.getActiveTask() == 4:
|
||||
options = Vector()
|
||||
# Here you go, four chewy Chuba combos.
|
||||
@@ -25,8 +27,6 @@ def startConversation(core, actor, npc):
|
||||
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_jano:s_13'), 0))
|
||||
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_jano:s_6'))
|
||||
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsTwo)
|
||||
elif quest.isCompleted() == True or quest.getActiveTask() > 6:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_16')
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_22')
|
||||
|
||||
@@ -34,19 +34,7 @@ def startConversation(core, actor, npc):
|
||||
|
||||
def handleOptionsOne(core, actor, npc, selection):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_20')
|
||||
pos = actor.getWorldPosition()
|
||||
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
data = core.questService.getQuestData(quest.getName())
|
||||
task = data.getTasks().get(5);
|
||||
count = task.getCount()
|
||||
type = task.getCreatureType()
|
||||
for i in xrange(0, count):
|
||||
core.spawnService.spawnCreature('chuba', actor.getPlanet().getName(), 0, pos.x+1, pos.y, pos.z, 1, 0, 1, 0, 1)
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
core.questService.handleActivateSignal(actor, npc, 'tatooine_eisley_tdc', 'tat_eisley_tdc_e5')
|
||||
return
|
||||
|
||||
def handleOptionsTwo(core, actor, npc, selection):
|
||||
@@ -58,12 +46,8 @@ def handleOptionsTwo(core, actor, npc, selection):
|
||||
return
|
||||
|
||||
def handleOptionsThree(core, actor, npc, selection):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_16')
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
core.questService.handleActivateSignal(actor, npc, quest, 6)
|
||||
core.questService.handleActivateSignal(actor, npc, 'tatooine_eisley_tdc', 'tat_eisley_tdc_e7')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('smuggle_generic_1')
|
||||
if quest is None or quest.isCompleted():
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
elif quest.isTaskActive(1) and quest.isTaskCompleted(7):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_5')
|
||||
core.questService.completeTask(actor, quest, 1)
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_9')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
return
|
||||
@@ -0,0 +1,23 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('smuggle_generic_1')
|
||||
if quest is None or quest.isCompleted():
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
elif quest.isTaskActive(5) and quest.isTaskCompleted(7):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_5')
|
||||
core.questService.completeTask(actor, quest, 5)
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_9')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
return
|
||||
@@ -14,7 +14,7 @@ def startConversation(core, actor, npc):
|
||||
if quest is None:
|
||||
# Too busy getting this cargo ready, no time to talk.
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_nogri', 's_48')
|
||||
elif quest.isCompleted() == True or quest.getActiveTask() > 3:
|
||||
elif quest.isCompleted() or quest.getActiveTask() > 3:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_nogri', 's_42')
|
||||
else:
|
||||
options = Vector()
|
||||
@@ -81,12 +81,8 @@ def handleOptionsSeven(core, actor, npc, selection):
|
||||
return
|
||||
|
||||
def handleOptionsEight(core, actor, npc, selection):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_nogri', 's_42')
|
||||
quest = player.getQuest('tatooine_eisley_tdc')
|
||||
core.questService.handleActivateSignal(actor, npc, quest, 4)
|
||||
core.questService.handleActivateSignal(actor, npc, 'tatooine_eisley_tdc', 'tat_eisley_tdc_e3')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from resources.common import ConversationOption
|
||||
from resources.common import OutOfBand
|
||||
from resources.common import ProsePackage
|
||||
from java.util import Vector
|
||||
import sys
|
||||
|
||||
def startConversation(core, actor, npc):
|
||||
player = actor.getPlayerObject()
|
||||
if player is None:
|
||||
return
|
||||
quest = player.getQuest('smuggle_generic_1')
|
||||
if quest is None or quest.isCompleted():
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
elif quest.isTaskActive(4) and quest.isTaskCompleted(7):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_5')
|
||||
core.questService.completeTask(actor, quest, 4)
|
||||
else:
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_9')
|
||||
return
|
||||
|
||||
def endConversation(core, actor, npc):
|
||||
core.conversationService.sendStopConversation(actor, npc, 'conversation/fence', 's_10')
|
||||
return
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
def itemNames():
|
||||
|
||||
return ['aeromagnifier','comlink',control_box','droid_motor_red']
|
||||
return ['aeromagnifier','comlink','control_box','droid_motor_red']
|
||||
|
||||
def itemChances():
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
def itemNames():
|
||||
|
||||
return ['armor_repair_device','chassis_blueprints','dented_metal_case','medical_console',medical_device','motor','software_module','speederdrive']
|
||||
return ['armor_repair_device','chassis_blueprints','dented_metal_case','medical_console','medical_device','motor','software_module','speederdrive']
|
||||
|
||||
def itemChances():
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ def itemNames():
|
||||
|
||||
items=['jedi_holocron_1_5','jedi_holocron_2_5','jedi_holocron_3_5','jedi_holocron_4_5','jedi_holocron_5_5']
|
||||
items=items+['jedi_holocron_1_5_wp','jedi_holocron_2_5_wp','jedi_holocron_3_5_wp','jedi_holocron_4_5_wp','jedi_holocron_5_5_wp']
|
||||
return names
|
||||
return items
|
||||
|
||||
def itemChances():
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
def itemNames():
|
||||
|
||||
templates=['antenna','brain','eye','gland','heart','stomach'] leg, Nerve Complex, organ missing
|
||||
templates=['antenna','brain','eye','gland','heart','stomach']# leg, Nerve Complex, organ missing
|
||||
|
||||
return templates
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
def itemNames():
|
||||
|
||||
return ['armor_repair_device','dented_metal_case',medical_console','worklight']
|
||||
return ['armor_repair_device','dented_metal_case','medical_console','worklight']
|
||||
|
||||
def itemChances():
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
|
||||
def itemNames():
|
||||
|
||||
return ['chassis_blueprints','circuit_board','medical_console','motor','software_module','used_vidscreen']
|
||||
|
||||
def itemChances():
|
||||
|
||||
return [15,10,5,30,30,10]
|
||||
@@ -11,11 +11,11 @@ from java.util import Vector
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCustomName('Barak')
|
||||
mobileTemplate.setCreatureName('smuggler_broker_barak')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
mobileTemplate.setSocialGroup("township")
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE)
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_smuggler_broker_barak.iff')
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from services.spawn import WeaponTemplate
|
||||
from resources.datatables import WeaponType
|
||||
from resources.datatables import Difficulty
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import FactionStatus
|
||||
from java.util import Vector
|
||||
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('smuggler_fence_diala')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
mobileTemplate.setSocialGroup("township")
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_smuggler_fence_diala.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic')
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('diala', mobileTemplate)
|
||||
return
|
||||
@@ -0,0 +1,34 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from services.spawn import WeaponTemplate
|
||||
from resources.datatables import WeaponType
|
||||
from resources.datatables import Difficulty
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import FactionStatus
|
||||
from java.util import Vector
|
||||
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('smuggler_fence_jalen')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
mobileTemplate.setSocialGroup("township")
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_smuggler_fence_jalen.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic')
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('jalen', mobileTemplate)
|
||||
return
|
||||
@@ -0,0 +1,34 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from services.spawn import WeaponTemplate
|
||||
from resources.datatables import WeaponType
|
||||
from resources.datatables import Difficulty
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import FactionStatus
|
||||
from java.util import Vector
|
||||
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('smuggler_fence_kaleb')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
mobileTemplate.setSocialGroup("township")
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_smuggler_fence_kaleb.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic')
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('kaleb', mobileTemplate)
|
||||
return
|
||||
@@ -0,0 +1,34 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from services.spawn import WeaponTemplate
|
||||
from resources.datatables import WeaponType
|
||||
from resources.datatables import Difficulty
|
||||
from resources.datatables import Options
|
||||
from resources.datatables import FactionStatus
|
||||
from java.util import Vector
|
||||
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('smuggler_fence_kara')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
mobileTemplate.setSocialGroup("township")
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_smuggler_fence_kara.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic')
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('kara', mobileTemplate)
|
||||
return
|
||||
@@ -0,0 +1,33 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from services.spawn import WeaponTemplate
|
||||
from resources.datatables import WeaponType
|
||||
from resources.datatables import Difficulty
|
||||
from resources.datatables import Options
|
||||
from java.util import Vector
|
||||
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('smuggler_fence_sarlin')
|
||||
mobileTemplate.setLevel(1)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
mobileTemplate.setSocialGroup("township")
|
||||
mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_smuggler_fence_sarlin.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic')
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('creatureMeleeAttack')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('sarlin', mobileTemplate)
|
||||
return
|
||||
@@ -0,0 +1,39 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from services.spawn import WeaponTemplate
|
||||
from resources.datatables import WeaponType
|
||||
from resources.datatables import Difficulty
|
||||
from resources.datatables import Options
|
||||
from java.util import Vector
|
||||
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('jabba_assassin')
|
||||
mobileTemplate.setLevel(15)
|
||||
mobileTemplate.setDifficulty(Difficulty.NORMAL)
|
||||
|
||||
mobileTemplate.setMinSpawnDistance(4)
|
||||
mobileTemplate.setMaxSpawnDistance(8)
|
||||
mobileTemplate.setDeathblow(True)
|
||||
mobileTemplate.setScale(1)
|
||||
mobileTemplate.setSocialGroup("jabba")
|
||||
mobileTemplate.setAssistRange(0)
|
||||
mobileTemplate.setStalker(False)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_tatooine_jabba_assassin.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 15, 'energy')
|
||||
weaponTemplates.add(weapontemplate)
|
||||
mobileTemplate.setWeaponTemplateVector(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('rangedShotpistol')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('smuggler_patrol_bh_1', mobileTemplate)
|
||||
return
|
||||
@@ -1,4 +1,10 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
|
||||
def setup(core, object):
|
||||
return
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','quests/tatooine/brokerbarak')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
object.setStfFilename('mob/creature_names')
|
||||
object.setStfName('smuggler_broker_barak')
|
||||
return
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','quests/tatooine/diala')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
object.setStfFilename('mob/creature_names')
|
||||
object.setStfName('smuggler_fence_diala')
|
||||
return
|
||||
@@ -1,4 +1,10 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','quests/tatooine/jalen')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
object.setStfFilename('mob/creature_names')
|
||||
object.setStfName('smuggler_fence_jalen')
|
||||
return
|
||||
@@ -1,4 +1,10 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','quests/tatooine/kaleb')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
object.setStfFilename('mob/creature_names')
|
||||
object.setStfName('smuggler_fence_kaleb')
|
||||
return
|
||||
@@ -1,4 +1,10 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','quests/tatooine/kara')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
object.setStfFilename('mob/creature_names')
|
||||
object.setStfName('smuggler_fence_kara')
|
||||
return
|
||||
@@ -1,4 +1,10 @@
|
||||
import sys
|
||||
from resources.datatables import Options
|
||||
|
||||
def setup(core, object):
|
||||
object.setAttachment('radial_filename', 'object/conversation');
|
||||
object.setAttachment('conversationFile','quests/tatooine/sarlin')
|
||||
object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
|
||||
object.setStfFilename('mob/creature_names')
|
||||
object.setStfName('smuggler_fence_sarlin')
|
||||
return
|
||||
@@ -0,0 +1,11 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_smuggler_contraband_crate_01_01')
|
||||
#object.setStfName('item_bracelet_l_set_bh_dps_01_01')
|
||||
object.setDetailFilename('smuggle_crate_d')
|
||||
object.setDetailName('item_smuggler_contraband_crate_01_01')
|
||||
object.setIntAttribute('required_combat_level', 10)
|
||||
object.setStringAttribute('class_required', 'Smuggler')
|
||||
return
|
||||
@@ -13,6 +13,6 @@ def setup(core, object):
|
||||
object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
|
||||
object.setAttachment('setBonus', 'set_bonus_bh_dps')
|
||||
return
|
||||
+1
-1
@@ -12,6 +12,6 @@ def setup(core, object):
|
||||
object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_co_grenade', 2)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_dps_1')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_dps_2')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3')
|
||||
object.setAttachment('setBonus', 'set_bonus_commando_dps')
|
||||
return
|
||||
@@ -13,6 +13,6 @@ def setup(core, object):
|
||||
object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
|
||||
object.setAttachment('setBonus', 'set_bonus_bh_dps')
|
||||
return
|
||||
@@ -13,6 +13,6 @@ def setup(core, object):
|
||||
object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
|
||||
object.setAttachment('setBonus', 'set_bonus_bh_dps')
|
||||
return
|
||||
@@ -15,6 +15,6 @@ def setup(core, object):
|
||||
object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
|
||||
object.setAttachment('setBonus', 'set_bonus_bh_dps')
|
||||
return
|
||||
@@ -15,6 +15,6 @@ def setup(core, object):
|
||||
object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
|
||||
object.setAttachment('setBonus', 'set_bonus_bh_dps')
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
def setup(core):
|
||||
return
|
||||
|
||||
def wait(core, actor):
|
||||
return
|
||||
|
||||
def activate(core, actor, quest):
|
||||
core.questService.completeTask(actor, quest, 8)
|
||||
return
|
||||
@@ -0,0 +1,9 @@
|
||||
def setup(core):
|
||||
return
|
||||
|
||||
def wait(core, actor):
|
||||
return
|
||||
|
||||
def activate(core, actor, quest):
|
||||
core.questService.completeTask(actor, quest, 10)
|
||||
return
|
||||
@@ -5,6 +5,5 @@ def wait(core, actor):
|
||||
return
|
||||
|
||||
def activate(core, actor, quest):
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
return
|
||||
@@ -5,6 +5,5 @@ def wait(core, actor):
|
||||
return
|
||||
|
||||
def activate(core, actor, quest):
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
return
|
||||
@@ -5,6 +5,5 @@ def wait(core, actor):
|
||||
return
|
||||
|
||||
def activate(core, actor, quest):
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
return
|
||||
@@ -5,6 +5,5 @@ def wait(core, actor):
|
||||
return
|
||||
|
||||
def activate(core, actor, quest):
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
core.questService.completeActiveTask(actor, quest)
|
||||
return
|
||||
@@ -44,7 +44,7 @@ def addPlanetSpawns(core, planet):
|
||||
gilBurtin = stcSvc.spawnObject('gilburtin', 'tatooine', hotel.getCellByCellNumber(5), float(20.3), float(1.6), float(12.8), float(0), float(0), float(0.99), float(0))
|
||||
|
||||
# Outside
|
||||
barak = stcSvc.spawnObject('brokerbarak', 'tatooine', long(0), float(-1049), float(5.0), float(-3537), float(0.97), float(0.23))
|
||||
barak = stcSvc.spawnObject('brokerbarak', 'tatooine', long(0), float(-1049), float(10), float(-3537), float(0.97), float(0.23))
|
||||
|
||||
barrezz = stcSvc.spawnObject('barezz', 'tatooine', long(0), float(-1146.8), float(98.0), float(-3892.1), float(0.75), float(0.65))
|
||||
|
||||
|
||||
@@ -27,4 +27,6 @@ def addPlanetSpawns(core, planet):
|
||||
# Jano Bix
|
||||
jano = stcSvc.spawnObject('jano', 'tatooine', long(0), float(3186), float(5), float(-4781), float(-0.38), float(0.92))
|
||||
|
||||
# Kaleb
|
||||
kaleb = stcSvc.spawnObject('kaleb', 'tatooine', long(0), float(3216), float(5), float(-4610), float(0.25), float(1))
|
||||
return
|
||||
@@ -20,6 +20,8 @@ def addPlanetSpawns(core, planet):
|
||||
ankwee.setCustomName2('An\'kwee')
|
||||
ankwee.setOptionsBitmask(256)
|
||||
|
||||
sarlin = stcSvc.spawnObject('sarlin', 'tatooine', long(0), float(1537), float(7), float(3052), float(0.6), float(0.8))
|
||||
|
||||
#Junkdealer
|
||||
stcSvc.spawnObject('junkdealer', 'tatooine', long(0), float(1271), float(7.7), float(2919), float(0), float(0))
|
||||
stcSvc.spawnObject('junkdealer', 'tatooine', long(0), float(1271), float(7.7), float(2960), float(1), float(0))
|
||||
|
||||
@@ -24,6 +24,7 @@ def addPlanetSpawns(core, planet):
|
||||
#dalaSocuna.setCustomName2('Commander Da\'la Socuna')
|
||||
#dalaSocuna.setOptionsBitmask(256)
|
||||
|
||||
diala = stcSvc.spawnObject('diala', 'tatooine', long(0), float(-3105), float(5), float(2314), float(0.48), float(0.88))
|
||||
#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', building.getCellByCellNumber(2), float(4.7), float(-0.5), float(2.4), float(-0.71), float(0), float(0.70), float(0))
|
||||
|
||||
@@ -15,6 +15,7 @@ def addPlanetSpawns(core, planet):
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
kara = stcSvc.spawnObject('kara', 'tatooine', long(0), float(3839), float(16.13), float(2335), float(-0.1), float(0.98))
|
||||
|
||||
#Junkdealer
|
||||
stcSvc.spawnObject('junkdealer', 'tatooine', long(0), float(3902), float(33), float(2362), float(0), float(0))
|
||||
|
||||
@@ -14,8 +14,8 @@ def addPlanetSpawns(core, planet):
|
||||
objSvc = core.objectService
|
||||
|
||||
# TODO Check all NPCs for personalized scripting, change format.
|
||||
|
||||
|
||||
# Smuggler Fence Jalen
|
||||
jalen = stcSvc.spawnObject('jalen', 'tatooine', long(0), float(-5185), float(75), float(-6458), float(0.7), float(0.7))
|
||||
#Junkdealer
|
||||
stcSvc.spawnObject('junkdealer', 'tatooine', long(0), float(-5240.87), float(75), float(-641.015), float(0.879), float(0.476))
|
||||
stcSvc.spawnObject('junkdealer', 'tatooine', long(0), float(-5132.33), float(75), float(-6584.92), float(0.637), float(0.771))
|
||||
|
||||
@@ -76,7 +76,11 @@ public class Quest extends Delta implements Serializable {
|
||||
public void setOwnerId(long ownerId) {
|
||||
this.ownerId = ownerId;
|
||||
}
|
||||
|
||||
|
||||
public boolean isTaskActive(int taskId) {
|
||||
return activeStepBitmask.get(taskId);
|
||||
}
|
||||
|
||||
public int getActiveTask() {
|
||||
return activeStep;
|
||||
}
|
||||
@@ -85,16 +89,18 @@ public class Quest extends Delta implements Serializable {
|
||||
this.activeStep = activeStep;
|
||||
}
|
||||
|
||||
public boolean isTaskCompleted(int taskId) {
|
||||
return completedStepBitmask.get(taskId);
|
||||
}
|
||||
|
||||
public boolean isCompleted() {
|
||||
return isCompleted;
|
||||
}
|
||||
|
||||
public void setCompleted(boolean isCompleted) {
|
||||
if (isCompleted) {
|
||||
//activeStepBitmask.set(activeStep, false);
|
||||
completedStepBitmask.set(activeStep);
|
||||
}
|
||||
this.isCompleted = isCompleted;
|
||||
|
||||
public void setCompleted() {
|
||||
activeStepBitmask.clear();
|
||||
completedStepBitmask.set(0, 16, true);
|
||||
this.isCompleted = true;
|
||||
}
|
||||
|
||||
public boolean hasRecievedAward() {
|
||||
@@ -131,13 +137,31 @@ public class Quest extends Delta implements Serializable {
|
||||
|
||||
activeStep++;
|
||||
activeStepBitmask.set(activeStep, true);
|
||||
|
||||
//System.out.println("Active step was "+ (activeStep - 1) + " and is now " + activeStep );
|
||||
}
|
||||
|
||||
public void complete() {
|
||||
completedStepBitmask.set(activeStep);
|
||||
}
|
||||
|
||||
public void completeQuestStep(int step) {
|
||||
completedStepBitmask.set(step);
|
||||
activeStepBitmask.set(step, false);
|
||||
}
|
||||
|
||||
public void setQuestStep(int step) {
|
||||
activeStep = step;
|
||||
addActiveStep(step);
|
||||
}
|
||||
|
||||
public void addActiveStep(int step) {
|
||||
activeStepBitmask.set(step, true);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
activeStep = 0;
|
||||
activeStepBitmask.clear();
|
||||
completedStepBitmask.clear();
|
||||
}
|
||||
|
||||
public ScheduledFuture<?> getTimer() {
|
||||
@@ -224,5 +248,4 @@ public class Quest extends Delta implements Serializable {
|
||||
//StringUtilities.printBytes(buffer.array());
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@@ -81,7 +82,8 @@ public class QuestService implements INetworkDispatch {
|
||||
private Map<String, QuestList> questRewardMap = new ConcurrentHashMap<String, QuestList>();
|
||||
private List<String> forceAcceptQuests = new ArrayList<String>();
|
||||
private Map<Integer, String> questCrcMap = new ConcurrentHashMap<Integer, String>();
|
||||
|
||||
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||
|
||||
public QuestService(NGECore core) {
|
||||
this.core = core;
|
||||
|
||||
@@ -119,59 +121,152 @@ public class QuestService implements INetworkDispatch {
|
||||
}
|
||||
|
||||
public void activateNextTask(CreatureObject quester, String questName) {
|
||||
|
||||
if (quester.getPlayerObject().getQuestJournal().containsKey(CRC.StringtoCRC("quest/" + questName)) && !quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).isCompleted()) {
|
||||
activateNextTask(quester, quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void activateNextTask(CreatureObject quester, Quest quest) {
|
||||
activateTask(quester, quest, quest.getActiveTask());
|
||||
}
|
||||
|
||||
public void activateTask(CreatureObject quester, String questName, int taskId) {
|
||||
if (quester.getPlayerObject().getQuestJournal().containsKey(CRC.StringtoCRC("quest/" + questName)) && !quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).isCompleted()) {
|
||||
activateTask(quester, quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)), taskId);
|
||||
}
|
||||
}
|
||||
|
||||
public void activateTask(CreatureObject quester, Quest quest, int taskId) {
|
||||
if (quester == null || quester.getClient() == null || quester.getClient().getSession() == null)
|
||||
return;
|
||||
|
||||
if (quest.isCompleted())
|
||||
return;
|
||||
QuestData qData = getQuestData(quest.getName());
|
||||
|
||||
if (qData == null)
|
||||
return;
|
||||
|
||||
PlayerObject player = quester.getPlayerObject();
|
||||
|
||||
if (player == null)
|
||||
return;
|
||||
QuestTask task = qData.getTasks().get(taskId);
|
||||
|
||||
if (task.getMinStartDelay() > 0 || task.getMaxStartDelay() > 0) {
|
||||
if (task.getScheduledTask() == null) {
|
||||
int min = task.getMinStartDelay();
|
||||
int max = task.getMaxStartDelay();
|
||||
if ((max - min) < 0)
|
||||
return;
|
||||
Random random = new Random();
|
||||
int delay = random.nextInt(max - min) + min;
|
||||
ScheduledFuture<?> scheduledTask = scheduler.schedule(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
activateTask(quester, quest, taskId);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}, (long) delay, TimeUnit.SECONDS);
|
||||
task.setScheduledTask(scheduledTask);
|
||||
return;
|
||||
}
|
||||
task.setScheduledTask(null);
|
||||
}
|
||||
|
||||
int activeStep = quest.getActiveTask();
|
||||
if (task.getChanceToSkip() > 0) {
|
||||
if (new Random().nextInt(100) < task.getChanceToSkip()) {
|
||||
completeTask(quester, quest, taskId);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QuestTask task = qData.getTasks().get(activeStep);
|
||||
quest.setQuestStep(taskId);
|
||||
player.getContainer().getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
|
||||
String buffName = task.getBuffName();
|
||||
if (buffName != null && buffName != "")
|
||||
core.buffService.addBuffToCreature(quester, buffName, quester);
|
||||
|
||||
if (task.dismountsPlayer()) {
|
||||
if (core.mountService.isMounted(quester)) {
|
||||
core.mountService.dismount(quester, (CreatureObject) quester.getContainer());
|
||||
}
|
||||
}
|
||||
|
||||
if (task.createsWaypoint()) {
|
||||
Point3D location = new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ());
|
||||
WaypointObject wpGoTo = createWaypoint(task.getWaypointName(), location, task.getPlanet());
|
||||
player.getWaypoints().put(wpGoTo.getObjectID(), wpGoTo);
|
||||
quest.setWaypointId(wpGoTo.getObjectID());
|
||||
}
|
||||
|
||||
if (task.getTimerAmount() > 0) {
|
||||
// fail task at end of timer
|
||||
}
|
||||
|
||||
// TODO
|
||||
// set Travel Block: bool TRAVEL_BLOCK, bool TRAVEL_BLOCK_ALLOW_LAUNCH
|
||||
// set Mount Block: int MOUNT_BLOCK_DURATION
|
||||
|
||||
// quest.task.ground.type
|
||||
switch (task.getType()) {
|
||||
|
||||
// quest.task.ground.go_to_location
|
||||
case "go_to_location":
|
||||
// Waypoint created below now
|
||||
case "spawn":
|
||||
case "encounter":
|
||||
Random random = new Random();
|
||||
int count = task.getCount();
|
||||
if (count == 0) {
|
||||
int minCount = task.getMinCount();
|
||||
int maxCount = task.getMaxCount();
|
||||
if (maxCount - minCount < 0) {
|
||||
System.err.println("MaxCount was less than MinCount for Quest Task: "+task.getName());
|
||||
return;
|
||||
}
|
||||
count = random.nextInt(maxCount - minCount) + minCount;
|
||||
}
|
||||
int minDistance = task.getMinDistance();
|
||||
int maxDistance = task.getMaxDistance();
|
||||
String creatureType = task.getCreatureType();
|
||||
int distance;
|
||||
float angle, dx, dy;
|
||||
for (int i = 0; i < count; i++) {
|
||||
distance = random.nextInt(maxDistance - minDistance) + minDistance;
|
||||
angle = random.nextFloat() * 2 * (float) Math.PI;
|
||||
dx = (float) Math.cos(angle) * distance;
|
||||
dy = (float) Math.sin(angle) * distance;
|
||||
Point3D pos = quester.getWorldPosition();
|
||||
core.spawnService.spawnCreature(creatureType, quester.getPlanet().getName(), 0, pos.x + dx, pos.y, pos.z + dy, 1, 0, 1, 0, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
// quest.task.ground.comm_player
|
||||
|
||||
case "go_to_location":
|
||||
return;
|
||||
|
||||
case "comm_player":
|
||||
CommPlayerMessage message = new CommPlayerMessage(quester.getObjectID(), OutOfBand.ProsePackage(task.getCommMessageText()), task.getNpcAppearanceTemplate());
|
||||
quester.getClient().getSession().write(message.serialize());
|
||||
break;
|
||||
|
||||
// quest.task.ground.retrieve_item
|
||||
case "give_item":
|
||||
//String itemName = task.getItemToGive();
|
||||
try {
|
||||
// ?
|
||||
SWGObject item = core.objectService.createObject("object/tangible/smuggler/contraband/shared_contraband_general.iff", quester.getPlanet());
|
||||
quester.getSlottedObject("inventory").add(item);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return;
|
||||
|
||||
case "retrieve_item":
|
||||
if (quest.getCounterMax() != task.getNumRequired()) {
|
||||
quest.setCounterMax(task.getNumRequired());
|
||||
quest.setCounterValue(0);
|
||||
}
|
||||
|
||||
player.getQuestRetrieveItemTemplates().put(task.getServerTemplate(), new QuestItem(quest.getName(), activeStep));
|
||||
|
||||
player.getQuestRetrieveItemTemplates().put(task.getServerTemplate(), new QuestItem(quest.getName(), taskId));
|
||||
ObjControllerMessage itemCount = new ObjControllerMessage(11, new QuestTaskCounterMessage(quester.getObjectID(), quest, "@quest/groundquests:retrieve_item_counter"));
|
||||
quester.getClient().getSession().write(itemCount.serialize());
|
||||
|
||||
// Waypoint created below now
|
||||
break;
|
||||
return;
|
||||
|
||||
// quest.task.ground.timer
|
||||
case "timer":
|
||||
// TODO: Fix timer not showing
|
||||
//System.out.println("Max time: " + task.getMaxTime() + " Min time: " + task.getMinTime());
|
||||
@@ -181,28 +276,23 @@ public class QuestService implements INetworkDispatch {
|
||||
Console.println("Timer is: " + time.get());
|
||||
if (time.get() == 0) {
|
||||
//quest.incrementQuestStep();
|
||||
completeActiveTask((CreatureObject) core.objectService.getObject(quester.getObjectID()), quest.getName());
|
||||
completeTask((CreatureObject) core.objectService.getObject(quester.getObjectID()), quest.getName(), taskId);
|
||||
} else {
|
||||
ObjControllerMessage timer = new ObjControllerMessage(11, new QuestTaskTimerMessage(quester.getObjectID(), quest.getCrcName(), "@quest/groundquests:timer_timertext", time.getAndDecrement()));
|
||||
quester.getClient().getSession().write(timer.serialize());
|
||||
}
|
||||
}, 1, 1, TimeUnit.SECONDS);
|
||||
|
||||
quest.setTimer(taskTimer);
|
||||
break;
|
||||
return;
|
||||
|
||||
// quest.task.ground.wait_for_signal
|
||||
case "wait_for_signal":
|
||||
core.scriptService.callScript("scripts/quests/events/signals/", task.getSignalName(), "wait", core, quester);
|
||||
break;
|
||||
|
||||
// quest.task.ground.show_message_box
|
||||
return;
|
||||
|
||||
case "show_message_box":
|
||||
SUIWindow msgBox = core.suiService.createMessageBox(MessageBoxType.MESSAGE_BOX_OK, task.getMsgBoxTitle(), task.getMsgBoxPrompt(), quester, null, 0);
|
||||
|
||||
if (task.getMsgBoxSound() != null && !task.getMsgBoxSound().equals(""))
|
||||
quester.playMusic(task.getMsgBoxSound());
|
||||
|
||||
core.suiService.openSUIWindow(msgBox);
|
||||
break;
|
||||
|
||||
@@ -211,59 +301,51 @@ public class QuestService implements INetworkDispatch {
|
||||
player.getWaypoints().remove(quest.getWaypointId());
|
||||
core.objectService.destroyObject(quest.getWaypointId());
|
||||
}
|
||||
|
||||
if (quest.getTimer() != null)
|
||||
quest.getTimer().cancel(true);
|
||||
|
||||
completeQuest(player, quest);
|
||||
return;
|
||||
break;
|
||||
|
||||
case "reward":
|
||||
// TODO: System message? - Also check possibility of "Item" column being used for reward as well
|
||||
TangibleObject reward = (TangibleObject) core.objectService.createObject(getQuestRewardTemplate(task.getLootName()), core.terrainService.getPlanetByName(task.getPlanet()));
|
||||
|
||||
if (reward == null)
|
||||
return;
|
||||
|
||||
quester.getInventory().add(reward);
|
||||
break;
|
||||
|
||||
case "nothing":
|
||||
break;
|
||||
|
||||
default:
|
||||
//System.out.println("Don't know what to do for quest task: " + type);
|
||||
break;
|
||||
}
|
||||
|
||||
if (task.createsWaypoint()) {
|
||||
Point3D location = new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ());
|
||||
WaypointObject wpGoTo = createWaypoint(task.getWaypointName(), location, task.getPlanet());
|
||||
player.getWaypoints().put(wpGoTo.getObjectID(), wpGoTo);
|
||||
quest.setWaypointId(wpGoTo.getObjectID());
|
||||
}
|
||||
|
||||
if (!task.isVisible()) {
|
||||
completeActiveTask(quester, quest);
|
||||
return;
|
||||
}
|
||||
|
||||
completeTask(quester, quest, taskId);
|
||||
}
|
||||
|
||||
public void completeActiveTask(CreatureObject quester, String questName) {
|
||||
public void completeActiveTask(CreatureObject quester, String questName) {
|
||||
if (quester.getPlayerObject().getQuestJournal().containsKey(CRC.StringtoCRC("quest/" + questName)) && !quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).isCompleted()) {
|
||||
completeActiveTask(quester, quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)));
|
||||
completeTask(quester, quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)), quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).getActiveTask());
|
||||
}
|
||||
}
|
||||
|
||||
public void completeActiveTask(CreatureObject quester, Quest quest) {
|
||||
completeTask(quester, quest, quest.getActiveTask());
|
||||
}
|
||||
|
||||
public void completeTask(CreatureObject quester, String questName, int taskId) {
|
||||
if (quester.getPlayerObject().getQuestJournal().containsKey(CRC.StringtoCRC("quest/" + questName)) && !quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).isCompleted()) {
|
||||
completeTask(quester, quester.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)), taskId);
|
||||
}
|
||||
}
|
||||
|
||||
public void completeTask(CreatureObject quester, Quest quest, int taskId) {
|
||||
PlayerObject player = quester.getPlayerObject();
|
||||
if (player == null)
|
||||
return;
|
||||
|
||||
QuestData qData = getQuestData(quest.getName());
|
||||
|
||||
int activeStep = quest.getActiveTask();
|
||||
|
||||
QuestTask task = qData.getTasks().get(activeStep);
|
||||
|
||||
QuestTask task = qData.getTasks().get(taskId);
|
||||
if (quest.getWaypointId() != 0) {
|
||||
player.getWaypoints().remove(quest.getWaypointId());
|
||||
core.objectService.destroyObject(quest.getWaypointId());
|
||||
@@ -278,33 +360,40 @@ public class QuestService implements INetworkDispatch {
|
||||
quester.sendSystemMessage(new OutOfBand(prose), DisplayType.Quest);
|
||||
}
|
||||
|
||||
if (activeStep + 1 >= qData.getTasks().size()) {
|
||||
//QuestList listItem = questRewardMap.get(quest.getName());
|
||||
|
||||
quest.setCompleted(true);
|
||||
|
||||
// TODO: Unable to determine if this is calculated in "Complete Quest" window should pop up or just finish automatically, but it's the best for now
|
||||
if (task.isVisible())
|
||||
sendQuestCompleteWindow(quester, quest.getCrcName());
|
||||
else
|
||||
completeQuest(player, quest);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (task.getGrantQuestOnComplete() != null && !task.getGrantQuestOnComplete().equals("")) {
|
||||
if(!task.isVisible())
|
||||
immediatlyActivateQuest(quester, task.getGrantQuestOnComplete());
|
||||
else
|
||||
sendQuestAcceptWindow(quester, task.getGrantQuestOnComplete());
|
||||
}
|
||||
|
||||
quest.incrementQuestStep();
|
||||
|
||||
quest.completeQuestStep(taskId);
|
||||
player.getContainer().getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
|
||||
activateNextTask(quester, quest);
|
||||
if (task.getGrantQuestOnComplete() != null && !task.getGrantQuestOnComplete().equals("")) {
|
||||
if (task.isVisible())
|
||||
sendQuestAcceptWindow(quester, task.getGrantQuestOnComplete());
|
||||
else
|
||||
immediatlyActivateQuest(quester, task.getGrantQuestOnComplete());
|
||||
}
|
||||
|
||||
if (task.getType().equals("complete_quest") || task.getQuestControlOnTaskCompletion() == 1) {
|
||||
quest.setCompleted();
|
||||
quester.getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
sendQuestCompleteWindow(quester, quest.getCrcName());
|
||||
return;
|
||||
}
|
||||
|
||||
String list = task.getTasksOnComplete();
|
||||
if (list.length() == 0)
|
||||
return;
|
||||
ArrayList<Integer> tasks = new ArrayList<>();
|
||||
for (String t : list.split(",")) {
|
||||
taskId = Integer.parseInt(t);
|
||||
if (qData.getTasks().get(taskId).getChanceToActivate() == 1) {
|
||||
tasks.add(taskId);
|
||||
} else {
|
||||
activateTask(quester, quest, taskId);
|
||||
}
|
||||
}
|
||||
if (tasks.size() > 0) {
|
||||
Random random = new Random();
|
||||
taskId = tasks.get(random.nextInt(tasks.size()));
|
||||
activateTask(quester, quest, taskId);
|
||||
}
|
||||
}
|
||||
|
||||
public void immediatlyActivateQuest(CreatureObject quester, String questString) {
|
||||
@@ -329,7 +418,8 @@ public class QuestService implements INetworkDispatch {
|
||||
|
||||
player.getQuestJournal().put(quest.getCrc(), quest);
|
||||
player.setActiveQuest(quest.getName());
|
||||
|
||||
quest.reset();
|
||||
player.getContainer().getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
activateNextTask(quester, quest);
|
||||
}
|
||||
|
||||
@@ -339,11 +429,13 @@ public class QuestService implements INetworkDispatch {
|
||||
|
||||
CreatureObject creo = (CreatureObject) player.getContainer();
|
||||
|
||||
if (!quest.isCompleted())
|
||||
quest.setCompleted(true);
|
||||
if (!quest.isCompleted()) {
|
||||
quest.setCompleted();
|
||||
creo.getClient().getSession().write(player.getBaseline(8).createDelta(7));
|
||||
}
|
||||
|
||||
QuestList info = getQuestList(quest.getName());
|
||||
QuestTask task = getQuestData(quest.getName()).getTasks().get(quest.getActiveTask());
|
||||
//QuestTask task = getQuestData(quest.getName()).getTasks().get(quest.getActiveTask());
|
||||
|
||||
ArrayList<Long> recievedItems = new ArrayList<Long>();
|
||||
TangibleObject inventory = (TangibleObject) creo.getSlottedObject("inventory");
|
||||
@@ -356,11 +448,18 @@ public class QuestService implements INetworkDispatch {
|
||||
PlayMusicMessage completeSound = new PlayMusicMessage("sound/ui_npe2_quest_completed.snd", creo.getObjectID(), 0, true);
|
||||
creo.getClient().getSession().write(completeSound.serialize());
|
||||
|
||||
// TODO: Give other awards - exclusive loots, faction points
|
||||
// TODO: Give other awards - exclusive loots, etc.
|
||||
// Receiving quest awards (faction, item, exp, credits) - http://youtu.be/-L7Rz1WpmGM?t=14m50s
|
||||
|
||||
// Give quest items
|
||||
|
||||
// Faction Reward
|
||||
if (info.getRewardFactionAmount() > 0) {
|
||||
int rewardFactionAmount = info.getRewardFactionAmount();
|
||||
int currentAmount = player.getFactionStanding(info.getRewardFactionType());
|
||||
player.setFactionStanding(info.getRewardFactionType(), currentAmount + rewardFactionAmount);
|
||||
}
|
||||
|
||||
if (info.getRewardLootName() != null && !info.getRewardLootName().equals("")) {
|
||||
SWGObject rewardLoot = core.objectService.createObject(getQuestRewardTemplate(info.getRewardLootName()), creo.getPlanet());
|
||||
inventory.add(rewardLoot);
|
||||
@@ -397,7 +496,7 @@ public class QuestService implements INetworkDispatch {
|
||||
}
|
||||
|
||||
// Give experience - TODO: Give specific type of experience.
|
||||
if (info.getRewardExperienceAmount() != 0 && info.getTier() != -1 && !(info.getTier() > 6)) {
|
||||
if (info.getRewardExperienceAmount() < 0 && info.getTier() != -1 && !(info.getTier() > 6)) {
|
||||
int experienceAward = 0;
|
||||
try {
|
||||
DatatableVisitor experienceVisitor = ClientFileManager.loadFile("datatables/quest/quest_experience", DatatableVisitor.class);
|
||||
@@ -410,16 +509,9 @@ public class QuestService implements INetworkDispatch {
|
||||
} catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); }
|
||||
if (experienceAward != 0)
|
||||
core.playerService.giveExperience(creo, experienceAward);
|
||||
} else {
|
||||
} else if (info.getRewardExperienceAmount() > 0) {
|
||||
core.playerService.giveExperience(creo, info.getRewardExperienceAmount());
|
||||
}
|
||||
|
||||
if (task.getGrantQuestOnComplete() != null && !task.getGrantQuestOnComplete().equals("")) {
|
||||
if (task.isVisible())
|
||||
sendQuestAcceptWindow(creo, task.getGrantQuestOnComplete());
|
||||
else
|
||||
immediatlyActivateQuest(creo, task.getGrantQuestOnComplete());
|
||||
}
|
||||
|
||||
// Update quest & client
|
||||
quest.setRecievedAward(true);
|
||||
@@ -477,6 +569,21 @@ public class QuestService implements INetworkDispatch {
|
||||
|
||||
}
|
||||
|
||||
public void handleActivateSignal(CreatureObject actor, TangibleObject npc, String questName, String signalName) {
|
||||
if (actor.getPlayerObject().getQuestJournal().containsKey(CRC.StringtoCRC("quest/" + questName)) && !actor.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).isCompleted()) {
|
||||
handleActivateSignal(actor, npc, actor.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)), actor.getPlayerObject().getQuestJournal().get(CRC.StringtoCRC("quest/" + questName)).getActiveTask());
|
||||
}
|
||||
}
|
||||
|
||||
public void handleActivateSignal(CreatureObject actor, TangibleObject npc, Quest quest, String signalName) {
|
||||
for (QuestTask task : getQuestData(quest.getName()).getTasks()) {
|
||||
if (task.getSignalName().equals(signalName)) {
|
||||
handleActivateSignal(actor, npc, quest, task.getId());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleActivateSignal(CreatureObject actor, TangibleObject npc, Quest quest, int taskId) {
|
||||
QuestTask task = getQuestData(quest.getName()).getTasks().get(taskId);
|
||||
if (task == null)
|
||||
@@ -615,6 +722,7 @@ public class QuestService implements INetworkDispatch {
|
||||
if (visitor.getObjectByColumnNameAndIndex("TASK_NAME", r) != null) task.setName((String) visitor.getObjectByColumnNameAndIndex("TASK_NAME", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MUSIC_ON_COMPLETE", r) != null) task.setMusicOnComplete((String) visitor.getObjectByColumnNameAndIndex("MUSIC_ON_COMPLETE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MUSIC_ON_FAILURE", r) != null) task.setMusicOnFail((String) visitor.getObjectByColumnNameAndIndex("MUSIC_ON_FAILURE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("CHANCE_TO_ACTIVATE", r) != null) task.setChanceToActivate((int) visitor.getObjectByColumnNameAndIndex("CHANCE_TO_ACTIVATE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("GRANT_QUEST_ON_FAIL_SHOW_SYSTEM_MESSAGE", r) != null) task.setGrantQuestOnFailShowSystemMessage((boolean) visitor.getObjectByColumnNameAndIndex("GRANT_QUEST_ON_FAIL_SHOW_SYSTEM_MESSAGE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("CREATE_WAYPOINT", r) != null) task.setCreatesWaypoint((boolean) visitor.getObjectByColumnNameAndIndex("CREATE_WAYPOINT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("PLANET_NAME", r) != null) task.setPlanet((String) visitor.getObjectByColumnNameAndIndex("PLANET_NAME", r));
|
||||
@@ -628,8 +736,10 @@ public class QuestService implements INetworkDispatch {
|
||||
if (visitor.getObjectByColumnNameAndIndex("SIGNALS_ON_FAIL", r) != null) task.setSignalsOnFail((String) visitor.getObjectByColumnNameAndIndex("SIGNALS_ON_FAIL", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("COMM_MESSAGE_TEXT", r) != null) task.setCommMessageText((String) visitor.getObjectByColumnNameAndIndex("COMM_MESSAGE_TEXT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("NPC_APPEARANCE_SERVER_TEMPLATE", r) != null) task.setNpcAppearanceTemplate(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("NPC_APPEARANCE_SERVER_TEMPLATE", r)));
|
||||
if (visitor.getObjectByColumnNameAndIndex("CREATURE_TYPE", r) != null) task.setCreatureType(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("CREATURE_TYPE", r)));
|
||||
if (visitor.getObjectByColumnNameAndIndex("CREATURE_TYPE", r) != null) task.setCreatureType((String) visitor.getObjectByColumnNameAndIndex("CREATURE_TYPE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("COUNT", r) != null) task.setCount((int) visitor.getObjectByColumnNameAndIndex("COUNT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MIN_COUNT", r) != null) task.setMinCount((int) visitor.getObjectByColumnNameAndIndex("MIN_COUNT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MAX_COUNT", r) != null) task.setMaxCount((int) visitor.getObjectByColumnNameAndIndex("MAX_COUNT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MIN_DISTANCE", r) != null) task.setMinDistance((int) visitor.getObjectByColumnNameAndIndex("MIN_DISTANCE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MAX_DISTANCE", r) != null) task.setMaxDistance((int) visitor.getObjectByColumnNameAndIndex("MAX_DISTANCE", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_X", r) != null) task.setRelativeOffsetX(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_X", r)));
|
||||
@@ -650,7 +760,15 @@ public class QuestService implements INetworkDispatch {
|
||||
if (visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_SIZE_HEIGHT", r) != null) task.setMsgBoxHeight(Integer.parseInt((String) visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_SIZE_HEIGHT", r)));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_SIZE_WIDTH", r) != null) task.setMsgBoxWidth(Integer.parseInt((String) visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_SIZE_WIDTH", r)));
|
||||
if (visitor.getObjectByColumnNameAndIndex("LOOT_NAME", r) != null) task.setLootName((String) visitor.getObjectByColumnNameAndIndex("LOOT_NAME", r));
|
||||
|
||||
if (visitor.getObjectByColumnNameAndIndex("TIMER_AMOUNT", r) != null) task.setTimerAmount((int) visitor.getObjectByColumnNameAndIndex("TIMER_AMOUNT", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("ITEM_TO_GIVE", r) != null) task.setItemToGive(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("ITEM_TO_GIVE", r)));
|
||||
if (visitor.getObjectByColumnNameAndIndex("CHANCE_TO_SKIP", r) != null) task.setChanceToSkip((int) visitor.getObjectByColumnNameAndIndex("CHANCE_TO_SKIP", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MIN_START_DELAY", r) != null) task.setMinStartDelay((int) visitor.getObjectByColumnNameAndIndex("MIN_START_DELAY", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("MAX_START_DELAY", r) != null) task.setMaxStartDelay((int) visitor.getObjectByColumnNameAndIndex("MAX_START_DELAY", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("BUFF_NAME", r) != null) task.setBuffName((String) visitor.getObjectByColumnNameAndIndex("BUFF_NAME", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("DISMOUNT_PLAYER", r) != null) task.setDismountPlayer((boolean) visitor.getObjectByColumnNameAndIndex("DISMOUNT_PLAYER", r));
|
||||
if (visitor.getObjectByColumnNameAndIndex("QUEST_CONTROL_ON_TASK_COMPLETION", r) != null) task.setQuestControlOnTaskCompletion((int) visitor.getObjectByColumnNameAndIndex("QUEST_CONTROL_ON_TASK_COMPLETION", r));
|
||||
|
||||
// if (visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_LOCATION_X", r) != null) task.setMsgBoxWidth((String) visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_LOCATION_X", r));
|
||||
// if (visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_LOCATION_Y", r) != null) task.setMsgBoxWidth((String) visitor.getObjectByColumnNameAndIndex("MESSAGE_BOX_LOCATION_Y", r));
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
******************************************************************************/
|
||||
package services.quest;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
public class QuestTask {
|
||||
private String type; // Tells the server what to do when they get the task
|
||||
private String name;
|
||||
@@ -32,6 +34,7 @@ public class QuestTask {
|
||||
private String musicOnActivate;
|
||||
private String musicOnComplete;
|
||||
private String musicOnFail;
|
||||
private String buffName;
|
||||
private String target;
|
||||
private String parameter; // TODO: What does this do?
|
||||
private String grantQuestOnComplete;
|
||||
@@ -48,9 +51,6 @@ public class QuestTask {
|
||||
private String commMessageText;
|
||||
private String npcAppearanceTemplate; // NPC Appearance Server Template
|
||||
private String creatureType;
|
||||
private int count;
|
||||
private int minDistance;
|
||||
private int maxDistance;
|
||||
private String relativeOffsetX;
|
||||
private String relativeOffsetY;
|
||||
private String tasksOnComplete;
|
||||
@@ -62,7 +62,11 @@ public class QuestTask {
|
||||
private String msgBoxTitle;
|
||||
private String msgBoxSound;
|
||||
private String lootName;
|
||||
private String itemToGive;
|
||||
|
||||
private boolean createItem;
|
||||
private boolean destroyItem;
|
||||
private boolean dismountPlayer;
|
||||
private boolean visible;
|
||||
private boolean grantQuestOnCompleteShowSystemMessage;
|
||||
private boolean grantQuestOnFailShowSystemMessage;
|
||||
@@ -80,7 +84,19 @@ public class QuestTask {
|
||||
private int msgBoxWidth;
|
||||
private int msgBoxHeight;
|
||||
private int msgBoxLength;
|
||||
|
||||
private int minStartDelay;
|
||||
private int maxStartDelay;
|
||||
private int timerAmount;
|
||||
private int chanceToActivate;
|
||||
private int chanceToSkip;
|
||||
private int numToGive;
|
||||
private int count;
|
||||
private int minCount;
|
||||
private int maxCount;
|
||||
private int minDistance;
|
||||
private int maxDistance;
|
||||
private int questControlOnTaskCompletion;
|
||||
|
||||
private long waitMarkerBuilding;
|
||||
|
||||
private float LocationX;
|
||||
@@ -90,7 +106,9 @@ public class QuestTask {
|
||||
private float waitMarkerY;
|
||||
private float waitMarkerZ;
|
||||
private float radius;
|
||||
|
||||
|
||||
private transient ScheduledFuture<?> scheduledTask;
|
||||
|
||||
public QuestTask() {}
|
||||
|
||||
public QuestTask(String type, int id) {
|
||||
@@ -166,6 +184,14 @@ public class QuestTask {
|
||||
this.musicOnFail = musicOnFail;
|
||||
}
|
||||
|
||||
public int getChanceToActivate() {
|
||||
return chanceToActivate;
|
||||
}
|
||||
|
||||
public void setChanceToActivate(int chanceToActivate) {
|
||||
this.chanceToActivate = chanceToActivate;
|
||||
}
|
||||
|
||||
public String getTarget() {
|
||||
return target;
|
||||
}
|
||||
@@ -595,4 +621,117 @@ public class QuestTask {
|
||||
public void setLootName(String lootName) {
|
||||
this.lootName = lootName;
|
||||
}
|
||||
|
||||
public int getTimerAmount() {
|
||||
return timerAmount;
|
||||
}
|
||||
|
||||
public void setTimerAmount(int timerAmount) {
|
||||
this.timerAmount = timerAmount;
|
||||
}
|
||||
|
||||
public String getBuffName() {
|
||||
return buffName;
|
||||
}
|
||||
|
||||
public void setBuffName(String buffName) {
|
||||
this.buffName = buffName;
|
||||
}
|
||||
|
||||
public int getChanceToSkip() {
|
||||
return chanceToSkip;
|
||||
}
|
||||
|
||||
public void setChanceToSkip(int chanceToSkip) {
|
||||
this.chanceToSkip = chanceToSkip;
|
||||
}
|
||||
|
||||
public int getMinCount() {
|
||||
return minCount;
|
||||
}
|
||||
|
||||
public void setMinCount(int minCount) {
|
||||
this.minCount = minCount;
|
||||
}
|
||||
|
||||
public int getMaxCount() {
|
||||
return maxCount;
|
||||
}
|
||||
|
||||
public void setMaxCount(int maxCount) {
|
||||
this.maxCount = maxCount;
|
||||
}
|
||||
|
||||
public String getItemToGive() {
|
||||
return itemToGive;
|
||||
}
|
||||
|
||||
public void setItemToGive(String itemToGive) {
|
||||
this.itemToGive = itemToGive;
|
||||
}
|
||||
|
||||
|
||||
public int getMinStartDelay() {
|
||||
return minStartDelay;
|
||||
}
|
||||
|
||||
public void setMinStartDelay(int minStartDelay) {
|
||||
this.minStartDelay = minStartDelay;
|
||||
}
|
||||
|
||||
public int getMaxStartDelay() {
|
||||
return maxStartDelay;
|
||||
}
|
||||
|
||||
public void setMaxStartDelay(int maxStartDelay) {
|
||||
this.maxStartDelay = maxStartDelay;
|
||||
}
|
||||
|
||||
public boolean dismountsPlayer() {
|
||||
return dismountPlayer;
|
||||
}
|
||||
|
||||
public void setDismountPlayer(boolean dismountPlayer) {
|
||||
this.dismountPlayer = dismountPlayer;
|
||||
}
|
||||
|
||||
public ScheduledFuture<?> getScheduledTask() {
|
||||
return scheduledTask;
|
||||
}
|
||||
|
||||
public void setScheduledTask(ScheduledFuture<?> scheduledTask) {
|
||||
this.scheduledTask = scheduledTask;
|
||||
}
|
||||
|
||||
public int getNumToGive() {
|
||||
return numToGive;
|
||||
}
|
||||
|
||||
public void setNumToGive(int numToGive) {
|
||||
this.numToGive = numToGive;
|
||||
}
|
||||
|
||||
public boolean isCreateItem() {
|
||||
return createItem;
|
||||
}
|
||||
|
||||
public void setCreateItem(boolean createItem) {
|
||||
this.createItem = createItem;
|
||||
}
|
||||
|
||||
public boolean isDestroyItem() {
|
||||
return destroyItem;
|
||||
}
|
||||
|
||||
public void setDestroyItem(boolean destroyItem) {
|
||||
this.destroyItem = destroyItem;
|
||||
}
|
||||
|
||||
public int getQuestControlOnTaskCompletion() {
|
||||
return questControlOnTaskCompletion;
|
||||
}
|
||||
|
||||
public void setQuestControlOnTaskCompletion(int questControlOnTaskCompletion) {
|
||||
this.questControlOnTaskCompletion = questControlOnTaskCompletion;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user