Added "Bib's Offer" Quest

This commit is contained in:
Waverunner
2014-08-27 20:24:44 -04:00
parent 3cad7bf212
commit 5cd90a4cec
6 changed files with 169 additions and 8 deletions
@@ -0,0 +1,153 @@
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('tatooine_eisley_legacy')
if quest is None:
endConversation(core, actor, npc)
return
# Check if player finished the main talking quest, if they did then handle mayor and trehla return/not yet started options
if quest.isCompleted() == True:
if player.getQuest('tatooine_eisley_gotoniko') is not None:
core.conversationService.sendStopConversation(actor, npc, '@conversation/c_newbie_secondchance', 's_59')
return
mayorVourk = player.getQuest('newbie_goto_vourk')
if mayorVourk is not None:
if mayorVourk.isCompleted() == False:
# TODO: Mayor return conv. options
return
else:
endConversation(core, actor, npc)
return
trehlaVourk = player.getQuest('return_to_vourk')
if trehlaVourk is not None:
if trehlaVourk.isCompleted() == False:
# TODO: Trehla return conv. options
return
else:
endConversation(core, actor, npc)
return
# Player doesn't have a return quest... Now we will check if they have any active quests for these..
preTrehla = player.getQuest('tatooine_eisley_gototrehla_v2')
if preTrehla is not None:
if preTrehla.isCompleted() == False:
core.conversationService.sendStopConversation(actor, npc, '@conversation/c_newbie_secondchance', 's_61')
elif hasActiveTrehlaQuest(core, actor, npc, player) == True: # True = has a pre-quest to return quests
core.conversationService.sendStopConversation(actor, npc, '@conversation/c_newbie_secondchance', 's_61')
return
# Trehla checks failed, has to be on Mayor quests.
endConversation(core, actor, npc)
return
if quest.getActiveTask() == 2:
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_118'), 0))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_116'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsOne)
return
endConversation(core, actor, npc)
return
def handleOptionsOne(core, actor, npc, selection):
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_122'), 0))
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_170'), 1))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_120'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsTwo)
return
def handleOptionsTwo(core, actor, npc, selection):
if (selection == 0): # So what do I do now?
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_68'), 0))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_66'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsThree)
return
elif (selection == 1): # I'm not doing anything you ask
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_122'), 0))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_172'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsTwo)
return
return
def handleOptionsThree(core, actor, npc, selection):
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_72'), 0))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_70'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsFour)
return
def handleOptionsFour(core, actor, npc, selection):
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_76'), 0))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_74'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsFive)
return
def handleOptionsFive(core, actor, npc, selection):
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_83'), 0))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_79'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsSix)
return
def handleOptionsSix(core, actor, npc, selection):
options = Vector()
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_134'), 0))
options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_138'), 1))
#options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_142'), 2))
core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/c_newbie_secondchance:s_132'))
core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsSeven)
return
def handleOptionsSeven(core, actor, npc, selection):
print ('selection 7: ' + str(selection))
if (selection == 0): # Ok, I'll do what he says.
quest = actor.getPlayerObject().getQuest('tatooine_eisley_legacy')
if (actor.getLevel() >= 10):
core.questService.activateQuest(actor, 'quest/tatooine_eisley_gotoniko')
return
else:
core.questService.activateQuest(actor, 'quest/tatooine_eisley_gotomayor')
return
core.questService.handleActivateSignal(actor, npc, quest, 2)
core.conversationService.sendStopConversation(actor, npc, '@conversation/c_newbie_secondchance', 's_136')
return
elif (selection == 1): # But I don't know anything about Mos Eisley!
quest = actor.getPlayerObject().getQuest('tatooine_eisley_legacy')
core.questService.handleActivateSignal(actor, npc, quest, 2)
return
#else if (selection == 2): # What if he asks me to fly a ship for him?
#return
return
def endConversation(core, actor, npc):
core.conversationService.sendStopConversation(actor, npc, '@conversation/c_newbie_secondchance', 's_200')
return
def hasActiveTrehlaQuest(core, actor, npc, player):
qTrehla = player.getQuest('c_newbie_quest1a')
if qTrehla is not None:
if qTrehla.isCompleted() == False:
return True
return False
@@ -14,7 +14,7 @@ def addTemplate(core):
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_dressed_tatooine_opening_santos.iff')
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
object.setAttachment('conversationFile', 'quests/tatooine/vourk')
return
@@ -0,0 +1,9 @@
def setup(core):
return
def wait(core, actor):
return
def activate(core, actor, quest):
core.questService.completeActiveTask(actor, quest)
return
+1 -3
View File
@@ -100,9 +100,7 @@ def addPlanetSpawns(core, planet):
alduq = stcSvc.spawnObject('alduq', 'tatooine', long(0), float(3512), float(5.0), float(-4814), float(-0.164), float(0.986))
#Eisley Legacy Quest NPCs
vourk = stcSvc.spawnObject('vourk', 'tatooine', long(0), float(3520.0), float(5.0), float(-4821.0), float(0.42), float(0.91))
building = core.objectService.getObject(long(1279956))
mayor = stcSvc.spawnObject('mos_eisley_mayor', 'tatooine', building.getCellByCellNumber(4), float(1.2), float(2.5), float(5.4), float(0), float(0), float(0), float(0))
@@ -2,9 +2,6 @@ import sys
# Project SWG: MosEisley Quest: Static Spawns
# (C)2014 ProjectSWG
from resources.datatables import Options
from resources.datatables import State
# This script is intended for any quest conversation mobiles, or single attackable npcs for a quest, within Mos Eisley
def addPlanetSpawns(core, planet):
@@ -12,7 +9,10 @@ def addPlanetSpawns(core, planet):
stcSvc = core.staticService
objSvc = core.objectService
# Pall - Talk to Pall
# Talk to Pall
pall = stcSvc.spawnObject('majolnir', 'tatooine', long(0), float(3526), float(5), float(-4619), float(0), float(0), float(0), float(0), 1)
# Bib's Offer
vourk = stcSvc.spawnObject('vourk', 'tatooine', long(0), float(3521.0), float(5.0), float(-4821.0), float(0.42), float(0.91))
return