From e4d676f43d5f4c2a23fc164b1fd1469ef8ca2adf Mon Sep 17 00:00:00 2001 From: Treeku Date: Mon, 7 Apr 2014 10:08:41 +0100 Subject: [PATCH] Added example conversation script Made a simpler script that uses less code, so it's easier to grasp. In most cases there will only be one ProsePackage. Copy-paste friendly. --- scripts/conversation/demo.py | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 scripts/conversation/demo.py diff --git a/scripts/conversation/demo.py b/scripts/conversation/demo.py new file mode 100644 index 00000000..31bb59f2 --- /dev/null +++ b/scripts/conversation/demo.py @@ -0,0 +1,60 @@ +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): + convSvc = core.conversationService + + 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)) + convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen) + + return + +def handleFirstScreen(core, actor, npc, selection): + convSvc = core.conversationService + + # TODO: check for prices + + if selection == 0: # respec + 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)) + convSvc.sendConversationOptions(actor, npc, options, handleRespecScreen) + + if selection == 1: # expertise reset + 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)) + convSvc.sendConversationOptions(actor, npc, options, handleResetScreen) + + return + +def handleRespecScreen(core, actor, npc, selection): + if selection == 0: + core.skillService.sendRespecWindow(actor) + + core.conversationService.handleEndConversation(actor, npc) + + return + +def handleResetScreen(core, actor, npc, selection): + if selection == 0: + core.skillService.resetExpertise(actor) + + core.conversationService.handleEndConversation(actor, npc) + + return + +def endConversation(core, actor, npc): + core.conversationService.sendStopConversation(actor, npc, 'conversation/respecseller', 's_38') + return