From 27f1aaa8f5934f94e92e6783f21c95bc132ef628 Mon Sep 17 00:00:00 2001 From: cdmpse Date: Tue, 9 Sep 2014 13:16:04 -0500 Subject: [PATCH 1/2] Additions to QuestService and QuestTask --- src/services/quest/QuestService.java | 24 ++++++++----- src/services/quest/QuestTask.java | 54 ++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 9 deletions(-) diff --git a/src/services/quest/QuestService.java b/src/services/quest/QuestService.java index 900b24f2..48a2c867 100644 --- a/src/services/quest/QuestService.java +++ b/src/services/quest/QuestService.java @@ -147,11 +147,7 @@ public class QuestService implements INetworkDispatch { // quest.task.ground.go_to_location case "go_to_location": - 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()); + // Waypoint created below now break; // quest.task.ground.comm_player @@ -172,10 +168,7 @@ public class QuestService implements INetworkDispatch { ObjControllerMessage itemCount = new ObjControllerMessage(11, new QuestTaskCounterMessage(quester.getObjectID(), quest, "@quest/groundquests:retrieve_item_counter")); quester.getClient().getSession().write(itemCount.serialize()); - WaypointObject wpRetrieve = createWaypoint(task.getWaypointName(), new Point3D(task.getLocationX(), task.getLocationY(), task.getLocationZ()), task.getPlanet()); - player.getWaypoints().put(wpRetrieve.getObjectID(), wpRetrieve); - - quest.setWaypointId(wpRetrieve.getObjectID()); + // Waypoint created below now break; // quest.task.ground.timer @@ -240,6 +233,13 @@ public class QuestService implements INetworkDispatch { 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; @@ -628,6 +628,12 @@ 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("COUNT", r) != null) task.setCount((int) visitor.getObjectByColumnNameAndIndex("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))); + if (visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_Y", r) != null) task.setRelativeOffsetY(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("RELATIVE_OFFSET_Y", r))); if (visitor.getObjectByColumnNameAndIndex("SERVER_TEMPLATE", r) != null) task.setServerTemplate(convertToSharedFile((String) visitor.getObjectByColumnNameAndIndex("SERVER_TEMPLATE", r))); if (visitor.getObjectByColumnNameAndIndex("NUM_REQUIRED", r) != null) task.setNumRequired((int) visitor.getObjectByColumnNameAndIndex("NUM_REQUIRED", r)); if (visitor.getObjectByColumnNameAndIndex("ITEM_NAME", r) != null) task.setItemName((String) visitor.getObjectByColumnNameAndIndex("ITEM_NAME", r)); diff --git a/src/services/quest/QuestTask.java b/src/services/quest/QuestTask.java index 4be8d00b..39b1f947 100644 --- a/src/services/quest/QuestTask.java +++ b/src/services/quest/QuestTask.java @@ -47,6 +47,12 @@ public class QuestTask { private String waitMarkerCellName; 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; private String serverTemplate; private String itemName; @@ -280,6 +286,54 @@ public class QuestTask { this.npcAppearanceTemplate = npcAppearanceTemplate; } + public String getCreatureType() { + return creatureType; + } + + public void setCreatureType(String creatureType) { + this.creatureType = creatureType; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public int getMinDistance() { + return minDistance; + } + + public void setMinDistance(int minDistance) { + this.minDistance = minDistance; + } + + public int getMaxDistance() { + return maxDistance; + } + + public void setMaxDistance(int maxDistance) { + this.maxDistance = maxDistance; + } + + public String getRelativeOffsetX() { + return relativeOffsetX; + } + + public void setRelativeOffsetX(String relativeOffsetX) { + this.relativeOffsetX = relativeOffsetX; + } + + public String getRelativeOffsetY() { + return relativeOffsetY; + } + + public void setRelativeOffsetY(String relativeOffsetY) { + this.relativeOffsetY = relativeOffsetY; + } + public boolean isVisible() { return visible; } From b778c81ebf151d57a1b00f35a0fbcddaf94eb6d5 Mon Sep 17 00:00:00 2001 From: cdmpse Date: Tue, 9 Sep 2014 13:21:04 -0500 Subject: [PATCH 2/2] Updates to "Tasty Dried Critters" Quest --- scripts/conversation/quests/tatooine/byxle.py | 37 ++++++-- scripts/conversation/quests/tatooine/drixa.py | 59 ++++++++++++ scripts/conversation/quests/tatooine/jano.py | 71 ++++++++++++++ scripts/conversation/quests/tatooine/nogri.py | 94 +++++++++++++++++++ .../mobiles/generic/static/tatooine/drixa.py | 33 +++++++ .../mobiles/generic/static/tatooine/jano.py | 33 +++++++ .../mobiles/generic/static/tatooine/nogri.py | 33 +++++++ .../mobile/dressed_tatooine_opening_drixa.py | 6 ++ .../mobile/dressed_tatooine_opening_jano.py | 6 ++ .../mobile/dressed_tatooine_opening_nogri.py | 6 ++ ..._eisley_tdc_e2.py => tat_eisley_tdc_e3.py} | 1 + .../events/signals/tat_eisley_tdc_e5.py | 10 ++ .../events/signals/tat_eisley_tdc_e7.py | 10 ++ .../events/signals/tat_eisley_tdc_e9.py | 10 ++ .../rewards/item_pet_egg_chuba_01_01.py | 4 + .../tatooine/mos_eisley_quest.py | 13 ++- 16 files changed, 418 insertions(+), 8 deletions(-) create mode 100644 scripts/conversation/quests/tatooine/drixa.py create mode 100644 scripts/conversation/quests/tatooine/jano.py create mode 100644 scripts/conversation/quests/tatooine/nogri.py create mode 100644 scripts/mobiles/generic/static/tatooine/drixa.py create mode 100644 scripts/mobiles/generic/static/tatooine/jano.py create mode 100644 scripts/mobiles/generic/static/tatooine/nogri.py rename scripts/quests/events/signals/{tat_eisley_tdc_e2.py => tat_eisley_tdc_e3.py} (74%) create mode 100644 scripts/quests/events/signals/tat_eisley_tdc_e5.py create mode 100644 scripts/quests/events/signals/tat_eisley_tdc_e7.py create mode 100644 scripts/quests/events/signals/tat_eisley_tdc_e9.py create mode 100644 scripts/quests/rewards/item_pet_egg_chuba_01_01.py diff --git a/scripts/conversation/quests/tatooine/byxle.py b/scripts/conversation/quests/tatooine/byxle.py index 884f6cf5..bf632bb3 100644 --- a/scripts/conversation/quests/tatooine/byxle.py +++ b/scripts/conversation/quests/tatooine/byxle.py @@ -11,18 +11,25 @@ def startConversation(core, actor, npc): 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.isCompleted() == True: -# core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48') -# return - core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48') + return + if 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: + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48') + return + def handleOptionsOne(core, actor, npc, selection): options = Vector() # So what do I need to do? @@ -52,6 +59,24 @@ def handleOptionsFour(core, actor, npc, selection): core.questService.sendQuestAcceptWindow(actor, 'quest/tatooine_eisley_tdc') return +def handleOptionsFive(core, actor, npc, selection): + options = Vector() + # Thanks. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_byxle:s_69'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_byxle:s_30')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsSix) + return + +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') + return + def endConversation(core, actor, npc): core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48') return diff --git a/scripts/conversation/quests/tatooine/drixa.py b/scripts/conversation/quests/tatooine/drixa.py new file mode 100644 index 00000000..88a20fdc --- /dev/null +++ b/scripts/conversation/quests/tatooine/drixa.py @@ -0,0 +1,59 @@ +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_tdc') + if quest is None: + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_drixa', 's_43') + elif quest.isCompleted() == True or quest.getActiveTask() > 1: + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_drixa', 's_40') + else: + options = Vector() + # Here's your order. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_7'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_5')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsOne) + return + +def handleOptionsOne(core, actor, npc, selection): + options = Vector() + # I am just delivering what Byxle gave me. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_41'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_9')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsTwo) + return + +def handleOptionsTwo(core, actor, npc, selection): + options = Vector() + # Of course + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_30'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_28')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsThree) + return + +def handleOptionsThree(core, actor, npc, selection): + options = Vector() + # TDC isn't fast food, it's good food delivered fast. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_38'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_drixa:s_32')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsFour) + return + +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) + return + +def endConversation(core, actor, npc): + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_drixa', 's_40') + return diff --git a/scripts/conversation/quests/tatooine/jano.py b/scripts/conversation/quests/tatooine/jano.py new file mode 100644 index 00000000..25eadc45 --- /dev/null +++ b/scripts/conversation/quests/tatooine/jano.py @@ -0,0 +1,71 @@ +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_tdc') + if quest is None: + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_22') + elif quest.getActiveTask() == 4: + options = Vector() + # Here you go, four chewy Chuba combos. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_jano:s_18'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_jano:s_11')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsOne) + elif quest.getActiveTask() == 6: + options = Vector() + # I am sure Byxle just made a mistake. + 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') + + return + +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) + return + +def handleOptionsTwo(core, actor, npc, selection): + options = Vector() + # TDC isn't fast food, it's good food delivered fast. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_jano:s_15'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_jano:s_14')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsThree) + 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) + return + +def endConversation(core, actor, npc): + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_jano', 's_16') + return diff --git a/scripts/conversation/quests/tatooine/nogri.py b/scripts/conversation/quests/tatooine/nogri.py new file mode 100644 index 00000000..711c0088 --- /dev/null +++ b/scripts/conversation/quests/tatooine/nogri.py @@ -0,0 +1,94 @@ +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_tdc') + 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: + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_nogri', 's_42') + else: + options = Vector() + # Got it right here. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_7'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_5')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsOne) + return + +def handleOptionsOne(core, actor, npc, selection): + options = Vector() + # That's how you know it's fresh. + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_11'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_9')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsTwo) + return + +def handleOptionsTwo(core, actor, npc, selection): + options = Vector() + # You're serious, aren't you? + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_15'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_13')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsThree) + return + +def handleOptionsThree(core, actor, npc, selection): + options = Vector() + # [Look in the bag] + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_23'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_21')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsFour) + return + +def handleOptionsFour(core, actor, npc, selection): + options = Vector() + # [Look in the bag] + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_28'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_26')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsFive) + return + +def handleOptionsFive(core, actor, npc, selection): + options = Vector() + # [Look in the bag] + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_32'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_30')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsSix) + return + +def handleOptionsSix(core, actor, npc, selection): + options = Vector() + # [Look in the bag] + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_36'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_34')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsSeven) + return + +def handleOptionsSeven(core, actor, npc, selection): + options = Vector() + # [Look in the bag] + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_40'), 0)) + core.conversationService.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/tatooine_eisley_nogri:s_38')) + core.conversationService.sendConversationOptions(actor, npc, options, handleOptionsEight) + 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) + return + +def endConversation(core, actor, npc): + core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_nogri', 's_40') + return diff --git a/scripts/mobiles/generic/static/tatooine/drixa.py b/scripts/mobiles/generic/static/tatooine/drixa.py new file mode 100644 index 00000000..6f7fed57 --- /dev/null +++ b/scripts/mobiles/generic/static/tatooine/drixa.py @@ -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('tatooine_opening_drixa') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + mobileTemplate.setSocialGroup("township") + mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE) + + templates = Vector() + templates.add('object/mobile/shared_dressed_tatooine_opening_drixa.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('drixa', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/generic/static/tatooine/jano.py b/scripts/mobiles/generic/static/tatooine/jano.py new file mode 100644 index 00000000..aa7f2b96 --- /dev/null +++ b/scripts/mobiles/generic/static/tatooine/jano.py @@ -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('tatooine_opening_jano') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + mobileTemplate.setSocialGroup("township") + mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE) + + templates = Vector() + templates.add('object/mobile/shared_dressed_tatooine_opening_jano.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('jano', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/generic/static/tatooine/nogri.py b/scripts/mobiles/generic/static/tatooine/nogri.py new file mode 100644 index 00000000..1e1a1c6e --- /dev/null +++ b/scripts/mobiles/generic/static/tatooine/nogri.py @@ -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('tatooine_opening_nogri') + mobileTemplate.setLevel(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + mobileTemplate.setSocialGroup("township") + mobileTemplate.setOptionsBitmask(Options.INVULNERABLE | Options.CONVERSABLE) + + templates = Vector() + templates.add('object/mobile/shared_dressed_tatooine_opening_nogri.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('nogri', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/object/mobile/dressed_tatooine_opening_drixa.py b/scripts/object/mobile/dressed_tatooine_opening_drixa.py index ccad8904..ecf81bb6 100644 --- a/scripts/object/mobile/dressed_tatooine_opening_drixa.py +++ b/scripts/object/mobile/dressed_tatooine_opening_drixa.py @@ -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/drixa') + object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) + object.setStfFilename('mob/creature_names') + object.setStfName('tatooine_opening_drixa') return \ No newline at end of file diff --git a/scripts/object/mobile/dressed_tatooine_opening_jano.py b/scripts/object/mobile/dressed_tatooine_opening_jano.py index ccad8904..7bddcd27 100644 --- a/scripts/object/mobile/dressed_tatooine_opening_jano.py +++ b/scripts/object/mobile/dressed_tatooine_opening_jano.py @@ -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/jano') + object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) + object.setStfFilename('mob/creature_names') + object.setStfName('tatooine_opening_jano') return \ No newline at end of file diff --git a/scripts/object/mobile/dressed_tatooine_opening_nogri.py b/scripts/object/mobile/dressed_tatooine_opening_nogri.py index ccad8904..c2eb0202 100644 --- a/scripts/object/mobile/dressed_tatooine_opening_nogri.py +++ b/scripts/object/mobile/dressed_tatooine_opening_nogri.py @@ -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/nogri') + object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE) + object.setStfFilename('mob/creature_names') + object.setStfName('tatooine_opening_nogri') return \ No newline at end of file diff --git a/scripts/quests/events/signals/tat_eisley_tdc_e2.py b/scripts/quests/events/signals/tat_eisley_tdc_e3.py similarity index 74% rename from scripts/quests/events/signals/tat_eisley_tdc_e2.py rename to scripts/quests/events/signals/tat_eisley_tdc_e3.py index 2c219af1..ba2bd478 100644 --- a/scripts/quests/events/signals/tat_eisley_tdc_e2.py +++ b/scripts/quests/events/signals/tat_eisley_tdc_e3.py @@ -5,5 +5,6 @@ def wait(core, actor): return def activate(core, actor, quest): + core.questService.completeActiveTask(actor, quest) core.questService.completeActiveTask(actor, quest) return \ No newline at end of file diff --git a/scripts/quests/events/signals/tat_eisley_tdc_e5.py b/scripts/quests/events/signals/tat_eisley_tdc_e5.py new file mode 100644 index 00000000..ba2bd478 --- /dev/null +++ b/scripts/quests/events/signals/tat_eisley_tdc_e5.py @@ -0,0 +1,10 @@ +def setup(core): + return + +def wait(core, actor): + return + +def activate(core, actor, quest): + core.questService.completeActiveTask(actor, quest) + core.questService.completeActiveTask(actor, quest) + return \ No newline at end of file diff --git a/scripts/quests/events/signals/tat_eisley_tdc_e7.py b/scripts/quests/events/signals/tat_eisley_tdc_e7.py new file mode 100644 index 00000000..ba2bd478 --- /dev/null +++ b/scripts/quests/events/signals/tat_eisley_tdc_e7.py @@ -0,0 +1,10 @@ +def setup(core): + return + +def wait(core, actor): + return + +def activate(core, actor, quest): + core.questService.completeActiveTask(actor, quest) + core.questService.completeActiveTask(actor, quest) + return \ No newline at end of file diff --git a/scripts/quests/events/signals/tat_eisley_tdc_e9.py b/scripts/quests/events/signals/tat_eisley_tdc_e9.py new file mode 100644 index 00000000..ba2bd478 --- /dev/null +++ b/scripts/quests/events/signals/tat_eisley_tdc_e9.py @@ -0,0 +1,10 @@ +def setup(core): + return + +def wait(core, actor): + return + +def activate(core, actor, quest): + core.questService.completeActiveTask(actor, quest) + core.questService.completeActiveTask(actor, quest) + return \ No newline at end of file diff --git a/scripts/quests/rewards/item_pet_egg_chuba_01_01.py b/scripts/quests/rewards/item_pet_egg_chuba_01_01.py new file mode 100644 index 00000000..1780e776 --- /dev/null +++ b/scripts/quests/rewards/item_pet_egg_chuba_01_01.py @@ -0,0 +1,4 @@ +import sys + +def run(): + return "object/tangible/item/beast/shared_converted_chuba_decoration.iff" \ No newline at end of file diff --git a/scripts/static_spawns/tatooine/mos_eisley_quest.py b/scripts/static_spawns/tatooine/mos_eisley_quest.py index fb32adb9..b365360a 100644 --- a/scripts/static_spawns/tatooine/mos_eisley_quest.py +++ b/scripts/static_spawns/tatooine/mos_eisley_quest.py @@ -16,6 +16,15 @@ def addPlanetSpawns(core, planet): vourk = stcSvc.spawnObject('vourk', 'tatooine', long(0), float(3521.0), float(5.0), float(-4821.0), float(0.42), float(0.91)) # Byxle Pedette - byxlePedette = stcSvc.spawnObject('byxle', 'tatooine', long(0), float(3365), float(5), float(-4639), float(0.99), float(0.12)) - + byxle = stcSvc.spawnObject('byxle', 'tatooine', long(0), float(3365), float(5), float(-4639), float(0.99), float(0.12)) + + # Drixa Dreul + drixa = stcSvc.spawnObject('drixa', 'tatooine', long(0), float(3259), float(5), float(-4863), float(-0.38), float(0.92)) + + # Nogri Hessen + nogri = stcSvc.spawnObject('nogri', 'tatooine', long(0), float(3449), float(4), float(-5076), float(-0.38), float(0.92)) + + # Jano Bix + jano = stcSvc.spawnObject('jano', 'tatooine', long(0), float(3186), float(5), float(-4781), float(-0.38), float(0.92)) + return \ No newline at end of file