From 2785b6176ebef26b2edaf0f5242c4ec3416f29a8 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Sat, 26 Apr 2014 22:05:42 +0200 Subject: [PATCH 1/3] Collections - Refactored profession master badges --- .../collections/master_bounty_hunter_1a.py | 12 ---- scripts/collections/master_commando_1a.py | 12 ---- scripts/collections/master_entertainer_1a.py | 12 ---- .../collections/master_force_sensitive_1a.py | 12 ---- scripts/collections/master_medic_1a.py | 12 ---- scripts/collections/master_officer_1a.py | 12 ---- scripts/collections/master_smuggler_1a.py | 12 ---- scripts/collections/master_spy_1a.py | 12 ---- scripts/collections/master_trader_0a.py | 15 ----- scripts/collections/master_trader_0b.py | 14 ----- scripts/collections/master_trader_0c.py | 15 ----- scripts/collections/master_trader_0d.py | 14 ----- scripts/collections/profession_master.py | 60 +++++++++++++++++++ src/services/PlayerService.java | 3 +- 14 files changed, 62 insertions(+), 155 deletions(-) delete mode 100644 scripts/collections/master_bounty_hunter_1a.py delete mode 100644 scripts/collections/master_commando_1a.py delete mode 100644 scripts/collections/master_entertainer_1a.py delete mode 100644 scripts/collections/master_force_sensitive_1a.py delete mode 100644 scripts/collections/master_medic_1a.py delete mode 100644 scripts/collections/master_officer_1a.py delete mode 100644 scripts/collections/master_smuggler_1a.py delete mode 100644 scripts/collections/master_spy_1a.py delete mode 100644 scripts/collections/master_trader_0a.py delete mode 100644 scripts/collections/master_trader_0b.py delete mode 100644 scripts/collections/master_trader_0c.py delete mode 100644 scripts/collections/master_trader_0d.py create mode 100644 scripts/collections/profession_master.py diff --git a/scripts/collections/master_bounty_hunter_1a.py b/scripts/collections/master_bounty_hunter_1a.py deleted file mode 100644 index c81bc04a..00000000 --- a/scripts/collections/master_bounty_hunter_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_bountyhunter_master") - return \ No newline at end of file diff --git a/scripts/collections/master_commando_1a.py b/scripts/collections/master_commando_1a.py deleted file mode 100644 index beb5e848..00000000 --- a/scripts/collections/master_commando_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_commando_master") - return \ No newline at end of file diff --git a/scripts/collections/master_entertainer_1a.py b/scripts/collections/master_entertainer_1a.py deleted file mode 100644 index e2dc3c3c..00000000 --- a/scripts/collections/master_entertainer_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_social_entertainer_master") - return \ No newline at end of file diff --git a/scripts/collections/master_force_sensitive_1a.py b/scripts/collections/master_force_sensitive_1a.py deleted file mode 100644 index b2ae17a5..00000000 --- a/scripts/collections/master_force_sensitive_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_jedi_master") - return \ No newline at end of file diff --git a/scripts/collections/master_medic_1a.py b/scripts/collections/master_medic_1a.py deleted file mode 100644 index d19ba11b..00000000 --- a/scripts/collections/master_medic_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_medic_master") - return \ No newline at end of file diff --git a/scripts/collections/master_officer_1a.py b/scripts/collections/master_officer_1a.py deleted file mode 100644 index 589869ae..00000000 --- a/scripts/collections/master_officer_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_officer_master") - return \ No newline at end of file diff --git a/scripts/collections/master_smuggler_1a.py b/scripts/collections/master_smuggler_1a.py deleted file mode 100644 index f7d741f1..00000000 --- a/scripts/collections/master_smuggler_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_smuggler_master") - return \ No newline at end of file diff --git a/scripts/collections/master_spy_1a.py b/scripts/collections/master_spy_1a.py deleted file mode 100644 index 1ff5be54..00000000 --- a/scripts/collections/master_spy_1a.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_spy_master") - return \ No newline at end of file diff --git a/scripts/collections/master_trader_0a.py b/scripts/collections/master_trader_0a.py deleted file mode 100644 index bff48590..00000000 --- a/scripts/collections/master_trader_0a.py +++ /dev/null @@ -1,15 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") - core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") - core.collectionService.addCollection(actor, "new_prof_crafting_chef_master") - core.collectionService.addCollection(actor, "new_prof_crafting_tailor_master") - return \ No newline at end of file diff --git a/scripts/collections/master_trader_0b.py b/scripts/collections/master_trader_0b.py deleted file mode 100644 index 55a1c3d3..00000000 --- a/scripts/collections/master_trader_0b.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") - core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") - core.collectionService.addCollection(actor, "new_prof_crafting_architect_master") - return \ No newline at end of file diff --git a/scripts/collections/master_trader_0c.py b/scripts/collections/master_trader_0c.py deleted file mode 100644 index 018141b4..00000000 --- a/scripts/collections/master_trader_0c.py +++ /dev/null @@ -1,15 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") - core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") - core.collectionService.addCollection(actor, "new_prof_crafting_armorsmith_master") - core.collectionService.addCollection(actor, "new_prof_crafting_weaponsmith_master") - return \ No newline at end of file diff --git a/scripts/collections/master_trader_0d.py b/scripts/collections/master_trader_0d.py deleted file mode 100644 index a9223ac6..00000000 --- a/scripts/collections/master_trader_0d.py +++ /dev/null @@ -1,14 +0,0 @@ -import sys - -def setup(): - return - -def run(): - return - -def addMasterBadge(core, actor): - if actor.getLevel() == 90: - core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") - core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") - core.collectionService.addCollection(actor, "new_prof_crafting_droidengineer_master") - return \ No newline at end of file diff --git a/scripts/collections/profession_master.py b/scripts/collections/profession_master.py new file mode 100644 index 00000000..dbd6e1e0 --- /dev/null +++ b/scripts/collections/profession_master.py @@ -0,0 +1,60 @@ +import sys + +def bounty_hunter_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_bountyhunter_master") + return + +def commando_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_commando_master") + return + +def entertainer_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_social_entertainer_master") + return + +def force_sensitive_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_jedi_master") + return + +def medic_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_medic_master") + return + +def officer_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_officer_master") + return + +def smuggler_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_officer_master") + return + +def spy_1a(core, actor): + core.collectionService.addCollection(actor, "new_prof_spy_master") + return + +def trader_0a(core, actor): + core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") + core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") + core.collectionService.addCollection(actor, "new_prof_crafting_chef_master") + core.collectionService.addCollection(actor, "new_prof_crafting_tailor_master") + return + +def trader_0b(core, actor): + core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") + core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") + core.collectionService.addCollection(actor, "new_prof_crafting_architect_master") + return + +def trader_0c(core, actor): + core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") + core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") + core.collectionService.addCollection(actor, "new_prof_crafting_armorsmith_master") + core.collectionService.addCollection(actor, "new_prof_crafting_weaponsmith_master") + return + +def trader_0d(core, actor): + core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master") + core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master") + core.collectionService.addCollection(actor, "new_prof_crafting_droidengineer_master") + return + \ No newline at end of file diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index ea075dc5..417232b1 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -818,7 +818,8 @@ public class PlayerService implements INetworkDispatch { creature.getClient().getSession().write((new ClientMfdStatusUpdateMessage((float) ((level >= 90) ? 90 : (level + 1)), "/GroundHUD.MFDStatus.vsp.role.targetLevel")).serialize()); creature.setLevel((short) level); - core.scriptService.callScript("scripts/collections/", "master_" + player.getProfession(), "addMasterBadge", core, creature); + if (level == 90) + core.scriptService.callScript("scripts/collections/", "profession_master", player.getProfession(), core, creature); creature.showFlyText(OutOfBand.ProsePackage("@cbt_spam:skill_up"), 2.5f, new RGB(154, 205, 50), 0, true); creature.playEffectObject("clienteffect/skill_granted.cef", ""); From 8e6ac5213b11ec63ddb06fbbb627bf9fb635ad50 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Wed, 14 May 2014 17:12:46 -0400 Subject: [PATCH 2/3] Player Association Access added to datapad on creation, added guildId delta, changed getGuildList to return SWGSet --- .../intangible/data_item/guild_stone.py | 1 + scripts/radial/object/guild_access_device.py | 30 +++++++++++++++++++ scripts/radial/object/guild_registry.py | 22 ++++---------- src/resources/guild/Guild.java | 7 ++++- .../creature/CreatureMessageBuilder.java | 10 +++++++ .../objects/creature/CreatureObject.java | 4 +++ src/resources/objects/guild/GuildObject.java | 4 +-- src/services/CharacterService.java | 4 +++ src/services/GuildService.java | 30 ++++--------------- 9 files changed, 69 insertions(+), 43 deletions(-) create mode 100644 scripts/radial/object/guild_access_device.py diff --git a/scripts/object/intangible/data_item/guild_stone.py b/scripts/object/intangible/data_item/guild_stone.py index ccad8904..7cf0dd3a 100644 --- a/scripts/object/intangible/data_item/guild_stone.py +++ b/scripts/object/intangible/data_item/guild_stone.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'object/guild_access_device') return \ No newline at end of file diff --git a/scripts/radial/object/guild_access_device.py b/scripts/radial/object/guild_access_device.py new file mode 100644 index 00000000..bd019f39 --- /dev/null +++ b/scripts/radial/object/guild_access_device.py @@ -0,0 +1,30 @@ +from resources.common import RadialOptions +from services.sui.SUIService import InputBoxType +from java.util import Vector +from main import NGECore +import sys + +def createRadial(core, owner, target, radials): + + #radials.clear() + + if owner.getGuildId() != 0: + guild = core.guildService.getGuildById(owner.getGuildId) + + if guild is None: + return + + if guild.getLeader() == owner.getObjectID(): + radials.add(RadialOptions(0, RadialOptions.serverGuildGuildManagement, 3, '@guild:menu_guild_management')) + radials.add(RadialOptions(0, RadialOptions.serverGuildMemberManagement, 3, '@guild:menu_member_management')) + + #Guild Management + radials.add(RadialOptions(3, RadialOptions.serverGuildDisband, 3, '@guild:menu_disband')) + + #Member Management + radials.add(RadialOptions(4, RadialOptions.serverGuildSponsor, 3, '@guild:menu_sponsor')) + return + return + +def handleSelection(core, owner, target, option): + return \ No newline at end of file diff --git a/scripts/radial/object/guild_registry.py b/scripts/radial/object/guild_registry.py index d3fd23ae..7b383d9a 100644 --- a/scripts/radial/object/guild_registry.py +++ b/scripts/radial/object/guild_registry.py @@ -12,39 +12,29 @@ def createRadial(core, owner, target, radials): radials.add(RadialOptions(0, RadialOptions.serverGuildCreate, 3, '@guild:menu_create')) return - else: - radials.add(RadialOptions(0, RadialOptions.serverGuildGuildManagement, 3, '@guild:menu_guild_management')) - radials.add(RadialOptions(0, RadialOptions.serverGuildMemberManagement, 3, '@guild:menu_member_management')) - - #Guild Management - - radials.add(RadialOptions(3, RadialOptions.serverGuildDisband, 3, '@guild:menu_disband')) - - #Member Management - radials.add(RadialOptions(4, RadialOptions.serverGuildSponsor, 3, '@guild:menu_sponsor')) - return - return def handleSelection(core, owner, target, option): - + suiSvc = NGECore().getInstance().suiService # Create Guild if option == 185 and target: wndGuildCreate = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, '@guild:create_name_title', '@guild:create_name_prompt', owner, owner, 0, handleGuildCreateName) - wndGuildCreate.setProperty("txtInput:MaxLength", "25"); + wndGuildCreate.setProperty("txtInput:MaxLength", "24"); + wndGuildCreate.setProperty("txtInput:NumericInteger", "false") suiSvc.openSUIWindow(wndGuildCreate) return return def handleGuildCreateName(owner, window, eventType, returnList): - + suiSvc = NGECore().getInstance().suiService if eventType == 0: guildName = str(returnList.get(0)) if guildName is not None: owner.setAttachment('guildName', guildName) wndGuildInitials = NGECore().getInstance().suiService.createInputBox(InputBoxType.INPUT_BOX_OK, '@guild:create_abbrev_title', '@guild:create_abbrev_prompt', owner, owner, 0, doGuildCreate) - wndGuildInitials.setProperty("txtInput:MaxLength", "5"); + wndGuildInitials.setProperty("txtInput:MaxLength", "4"); + wndGuildInitials.setProperty("txtInput:NumericInteger", "false") suiSvc.openSUIWindow(wndGuildInitials) return return diff --git a/src/resources/guild/Guild.java b/src/resources/guild/Guild.java index dca39876..4c1f0201 100644 --- a/src/resources/guild/Guild.java +++ b/src/resources/guild/Guild.java @@ -30,7 +30,7 @@ import org.apache.mina.core.buffer.IoBuffer; import engine.resources.objects.Delta; import engine.resources.objects.SWGObject; -public class Guild extends Delta implements Serializable { +public class Guild extends Delta implements Serializable, Comparable { private static final long serialVersionUID = 1L; private int id; @@ -129,4 +129,9 @@ public class Guild extends Delta implements Serializable { } } + @Override + public int compareTo(Guild guild) { + return ((Integer) id).compareTo(guild.getId()); + } + } diff --git a/src/resources/objects/creature/CreatureMessageBuilder.java b/src/resources/objects/creature/CreatureMessageBuilder.java index 30a53018..8c8edbf9 100644 --- a/src/resources/objects/creature/CreatureMessageBuilder.java +++ b/src/resources/objects/creature/CreatureMessageBuilder.java @@ -682,6 +682,16 @@ public class CreatureMessageBuilder extends TangibleMessageBuilder { } + public IoBuffer buildGuildIdDelta(int guildId) { + IoBuffer buffer = bufferPool.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN); + buffer.putInt(guildId); + int size = buffer.position(); + buffer.flip(); + buffer = createDelta("CREO", (byte) 6, (short) 1, (short) 0x0F, buffer, size + 4); + + return buffer; + } + public IoBuffer buildGroupInviteDelta(long inviteSenderId, String inviteSenderName, long inviteCounter) { IoBuffer buffer = bufferPool.allocate(18 + inviteSenderName.length(), false).order(ByteOrder.LITTLE_ENDIAN); diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 39a62f42..68eea2b3 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -915,6 +915,10 @@ public class CreatureObject extends TangibleObject implements Serializable { synchronized(objectMutex) { this.guildId = guildId; } + + IoBuffer guildIdDelta = messageBuilder.buildGuildIdDelta(guildId); + + notifyObservers(guildIdDelta, true); } public long getLookAtTarget() { diff --git a/src/resources/objects/guild/GuildObject.java b/src/resources/objects/guild/GuildObject.java index d0c0ed62..b3723937 100644 --- a/src/resources/objects/guild/GuildObject.java +++ b/src/resources/objects/guild/GuildObject.java @@ -95,8 +95,8 @@ public class GuildObject extends UniverseObject implements Serializable { } @SuppressWarnings("unchecked") - public SWGList getGuildList() { - return (SWGList) getBaseline(3).get("guildList"); + public SWGSet getGuildList() { + return (SWGSet) getBaseline(3).get("guildList"); } @SuppressWarnings("unchecked") diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index 531895f4..591d76db 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -60,6 +60,7 @@ import protocol.swg.ClientVerifyAndLockNameResponse; import protocol.swg.CreateCharacterSuccess; import protocol.swg.HeartBeatMessage; import resources.objects.creature.CreatureObject; +import resources.objects.intangible.IntangibleObject; import resources.objects.mission.MissionObject; import resources.objects.player.PlayerObject; import resources.objects.tangible.TangibleObject; @@ -338,6 +339,9 @@ public class CharacterService implements INetworkDispatch { object._add(defaultWeapon); object.setWeaponId(defaultWeapon.getObjectID()); + IntangibleObject pda = (IntangibleObject) core.objectService.createObject("object/intangible/data_item/shared_guild_stone.iff", object.getPlanet()); + datapad.add(pda); + createStarterClothing(object, sharedRaceTemplate, clientCreateCharacter.getStarterProfession()); //core.scriptService.callScript("scripts/", "demo", "CreateStartingCharacter", core, object); diff --git a/src/services/GuildService.java b/src/services/GuildService.java index 3aabe151..fed7c2c9 100644 --- a/src/services/GuildService.java +++ b/src/services/GuildService.java @@ -24,7 +24,7 @@ package services; import java.util.Map; import resources.guild.Guild; -import resources.objects.SWGList; +import resources.objects.SWGSet; import resources.objects.guild.GuildObject; import main.NGECore; import engine.resources.objects.SWGObject; @@ -57,7 +57,7 @@ public class GuildService implements INetworkDispatch { return null; int listSize = object.getGuildList().size(); - Guild guild = new Guild((listSize == 0 ? 1 : (object.getGuildList().get(listSize).getId()) + 1), abbreviation, name, leader); + Guild guild = new Guild((listSize == 0 ? 1 : listSize + 1), abbreviation, name, leader); object.getGuildList().add(guild); @@ -68,38 +68,20 @@ public class GuildService implements INetworkDispatch { return object; } - public SWGList getGuildList() { + public SWGSet getGuildList() { return object.getGuildList(); } public Guild getGuildById(int id) { - for (int i = 0; i < object.getGuildList().size(); i++) { - if (object.getGuildList().get(i).getId() == id) { - return object.getGuildList().get(i); - } - } - - return null; + return object.getGuildList().stream().filter(g -> g.getId() == id).findFirst().get(); } public Guild getGuildByAbbreviation(String abbreviation) { - for (int i = 0; i < object.getGuildList().size(); i++) { - if (object.getGuildList().get(i).getAbbreviation().equals(abbreviation)) { - return object.getGuildList().get(i); - } - } - - return null; + return object.getGuildList().stream().filter(g -> g.getAbbreviation().equals(abbreviation)).findFirst().get(); } public Guild getGuildByName(String name) { - for (int i = 0; i < object.getGuildList().size(); i++) { - if (object.getGuildList().get(i).getName().equals(name)) { - return object.getGuildList().get(i); - } - } - - return null; + return object.getGuildList().stream().filter(g -> g.getName().equals(name)).findFirst().get(); } public boolean removeGuild(int id) { From 0050dfdc7eef733066103fa995760a037e5d826c Mon Sep 17 00:00:00 2001 From: Treeku Date: Thu, 15 May 2014 04:11:19 +0100 Subject: [PATCH 3/3] Minor fix --- scripts/conversation/respec.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/conversation/respec.py b/scripts/conversation/respec.py index 35ab97b6..1c54294c 100644 --- a/scripts/conversation/respec.py +++ b/scripts/conversation/respec.py @@ -7,11 +7,11 @@ import sys def startConversation(core, actor, npc): convSvc = core.conversationService - convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage('conversation/respecseller:s_31'))) + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/respecseller:s_31')) options = Vector() - options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_32')), 0)) - options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_33')), 1)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_32'), 0)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_33'), 1)) convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) return @@ -22,19 +22,19 @@ def handleFirstScreen(core, actor, npc, selection): # TODO: check for prices if selection == 0: # respec - convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage('conversation/respecseller:s_58'))) + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/respecseller:s_58')) options = Vector() - options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_60')), 0)) - options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_64')), 1)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_60'), 0)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_64'), 1)) convSvc.sendConversationOptions(actor, npc, options, handleRespecScreen) if selection == 1: # expertise reset - convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage('conversation/respecseller:s_35'))) + convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/respecseller:s_35')) options = Vector() - options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_71')), 0)) - options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_72')), 1)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_71'), 0)) + options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_72'), 1)) convSvc.sendConversationOptions(actor, npc, options, handleResetScreen) return