Пример #1
0
 def setMovie(self, mode, npcId, avId, quests, timestamp):
     timeStamp = ClockDelta.globalClockDelta.localElapsedTime(timestamp)
     isLocalToon = avId == toonbase.localToon.doId
     self.notify.info('setMovie: %s %s %s %s %s %s' % (mode, npcId, avId, quests, timeStamp, isLocalToon))
     if mode == NPCToons.QUEST_MOVIE_CLEAR:
         self.notify.info('setMovie: movie cleared')
         return
     if mode == NPCToons.QUEST_MOVIE_TIMEOUT:
         self.notify.info('setMovie: movie timeout')
         self.ignore(self.uniqueName('doneChatPage'))
         self.ignore('chooseQuest')
         if self.curQuestMovie:
             self.curQuestMovie.timeout()
             self.curQuestMovie.cleanup()
             self.curQuestMovie = None
         if self.questChoiceGui:
             self.questChoiceGui.destroy()
             self.questChoiceGui = None
         if isLocalToon:
             self.freeAvatar()
         self.setPageNumber(0, -1)
         self.clearChat()
         self.startLookAround()
         self.detectAvatars()
         return
     av = toonbase.tcr.doId2do.get(avId)
     if av is None:
         self.notify.warning('Avatar %d not found in doId' % avId)
         return
     if mode == NPCToons.QUEST_MOVIE_REJECT:
         rejectString = Quests.chooseQuestDialogReject()
         rejectString = Quests.fillInQuestNames(rejectString, avName=av.name)
         self.setChatAbsolute(rejectString, CFSpeech | CFTimeout)
         if isLocalToon:
             toonbase.localToon.posCamera(0, 0)
             toonbase.tcr.playGame.getPlace().setState('walk')
         return
     if mode == NPCToons.QUEST_MOVIE_TIER_NOT_DONE:
         rejectString = Quests.chooseQuestDialogTierNotDone()
         rejectString = Quests.fillInQuestNames(rejectString, avName=av.name)
         self.setChatAbsolute(rejectString, CFSpeech | CFTimeout)
         if isLocalToon:
             toonbase.localToon.posCamera(0, 0)
             toonbase.tcr.playGame.getPlace().setState('walk')
         return
     self.setupAvatars(av)
     fullString = ''
     toNpcId = None
     if mode == NPCToons.QUEST_MOVIE_COMPLETE:
         questId, rewardId, toNpcId = quests
         scriptId = 'quest_complete_' + str(questId)
         if QuestParser.questDefined(scriptId):
             self.curQuestMovie = QuestParser.NPCMoviePlayer(scriptId, av, self)
             self.curQuestMovie.play()
             return
         if isLocalToon:
             self.setupCamera(mode)
         greetingString = Quests.chooseQuestDialog(questId, Quests.GREETING)
         if greetingString:
             fullString += greetingString + '\x07'
         fullString += Quests.chooseQuestDialog(questId, Quests.COMPLETE) + '\x07'
         if rewardId:
             fullString += Quests.getReward(rewardId).getString()
         leavingString = Quests.chooseQuestDialog(questId, Quests.LEAVING)
         if leavingString:
             fullString += '\x07' + leavingString
     else:
         if mode == NPCToons.QUEST_MOVIE_QUEST_CHOICE_CANCEL:
             fullString = Localizer.QuestMovieQuestChoiceCancel
         else:
             if mode == NPCToons.QUEST_MOVIE_TRACK_CHOICE_CANCEL:
                 fullString = Localizer.QuestMovieTrackChoiceCancel
             else:
                 if mode == NPCToons.QUEST_MOVIE_INCOMPLETE:
                     questId, completeStatus, toNpcId = quests
                     scriptId = 'quest_incomplete_' + str(questId)
                     if QuestParser.questDefined(scriptId):
                         self.curQuestMovie = QuestParser.NPCMoviePlayer(scriptId, av, self)
                         self.curQuestMovie.play()
                         return
                     if isLocalToon:
                         self.setupCamera(mode)
                     greetingString = Quests.chooseQuestDialog(questId, Quests.GREETING)
                     if greetingString:
                         fullString += greetingString + '\x07'
                     fullString += Quests.chooseQuestDialog(questId, completeStatus)
                     leavingString = Quests.chooseQuestDialog(questId, Quests.LEAVING)
                     if leavingString:
                         fullString += '\x07' + leavingString
                 else:
                     if mode == NPCToons.QUEST_MOVIE_ASSIGN:
                         questId, rewardId, toNpcId = quests
                         scriptId = 'quest_assign_' + str(questId)
                         if QuestParser.questDefined(scriptId):
                             self.curQuestMovie = QuestParser.NPCMoviePlayer(scriptId, av, self)
                             self.curQuestMovie.play()
                             return
                         if isLocalToon:
                             self.setupCamera(mode)
                         fullString += Quests.chooseQuestDialog(questId, Quests.QUEST)
                         leavingString = Quests.chooseQuestDialog(questId, Quests.LEAVING)
                         if leavingString:
                             fullString += '\x07' + leavingString
                     else:
                         if mode == NPCToons.QUEST_MOVIE_QUEST_CHOICE:
                             if isLocalToon:
                                 self.setupCamera(mode)
                             self.notify.debug('QUEST_MOVIE_QUEST_CHOICE: %s' % quests)
                             self.setChatAbsolute(Localizer.QuestMovieQuestChoice, CFSpeech)
                             if isLocalToon:
                                 self.acceptOnce('chooseQuest', self.sendChooseQuest)
                                 self.questChoiceGui = QuestChoiceGui.QuestChoiceGui()
                                 self.questChoiceGui.setQuests(quests, npcId, ChoiceTimeout)
                             return
                         else:
                             if mode == NPCToons.QUEST_MOVIE_TRACK_CHOICE:
                                 if isLocalToon:
                                     self.setupCamera(mode)
                                 tracks = quests
                                 self.notify.debug('QUEST_MOVIE_TRACK_CHOICE: %s' % tracks)
                                 self.setChatAbsolute(Localizer.QuestMovieTrackChoice, CFSpeech)
                                 if isLocalToon:
                                     self.acceptOnce('chooseTrack', self.sendChooseTrack)
                                     self.trackChoiceGui = TrackChoiceGui.TrackChoiceGui(tracks, ChoiceTimeout)
                                 return
     fullString = Quests.fillInQuestNames(fullString, avName=av.name, fromNpcId=npcId, toNpcId=toNpcId)
     self.acceptOnce(self.uniqueName('doneChatPage'), self.finishMovie, extraArgs=[av, isLocalToon])
     self.setPageChat(avId, 0, fullString, 1)
     return
Пример #2
0
 def setMovie(self, mode, npcId, avId, quests, timestamp):
     timeStamp = ClockDelta.globalClockDelta.localElapsedTime(timestamp)
     isLocalToon = avId == toonbase.localToon.doId
     self.notify.info('setMovie: %s %s %s %s %s %s' % (mode, npcId, avId, quests, timeStamp, isLocalToon))
     if mode == NPCToons.QUEST_MOVIE_CLEAR:
         self.notify.info('setMovie: movie cleared')
         return None
     
     if mode == NPCToons.QUEST_MOVIE_TIMEOUT:
         self.notify.info('setMovie: movie timeout')
         self.ignore(self.uniqueName('doneChatPage'))
         self.ignore('chooseQuest')
         if self.curQuestMovie:
             self.curQuestMovie.timeout()
             self.curQuestMovie.cleanup()
             self.curQuestMovie = None
         
         if self.questChoiceGui:
             self.questChoiceGui.destroy()
             self.questChoiceGui = None
         
         if isLocalToon:
             self.freeAvatar()
         
         self.setPageNumber(0, -1)
         self.clearChat()
         self.startLookAround()
         self.detectAvatars()
         return None
     
     av = toonbase.tcr.doId2do.get(avId)
     if av is None:
         self.notify.warning('Avatar %d not found in doId' % avId)
         return None
     
     if mode == NPCToons.QUEST_MOVIE_REJECT:
         rejectString = Quests.chooseQuestDialogReject()
         rejectString = Quests.fillInQuestNames(rejectString, avName = av.name)
         self.setChatAbsolute(rejectString, CFSpeech | CFTimeout)
         if isLocalToon:
             toonbase.localToon.posCamera(0, 0)
             toonbase.tcr.playGame.getPlace().setState('walk')
         
         return None
     
     if mode == NPCToons.QUEST_MOVIE_TIER_NOT_DONE:
         rejectString = Quests.chooseQuestDialogTierNotDone()
         rejectString = Quests.fillInQuestNames(rejectString, avName = av.name)
         self.setChatAbsolute(rejectString, CFSpeech | CFTimeout)
         if isLocalToon:
             toonbase.localToon.posCamera(0, 0)
             toonbase.tcr.playGame.getPlace().setState('walk')
         
         return None
     
     self.setupAvatars(av)
     fullString = ''
     toNpcId = None
     if mode == NPCToons.QUEST_MOVIE_COMPLETE:
         (questId, rewardId, toNpcId) = quests
         scriptId = 'quest_complete_' + str(questId)
         if QuestParser.questDefined(scriptId):
             self.curQuestMovie = QuestParser.NPCMoviePlayer(scriptId, av, self)
             self.curQuestMovie.play()
             return None
         
         if isLocalToon:
             self.setupCamera(mode)
         
         greetingString = Quests.chooseQuestDialog(questId, Quests.GREETING)
         if greetingString:
             fullString += greetingString + '\x7'
         
         fullString += Quests.chooseQuestDialog(questId, Quests.COMPLETE) + '\x7'
         if rewardId:
             fullString += Quests.getReward(rewardId).getString()
         
         leavingString = Quests.chooseQuestDialog(questId, Quests.LEAVING)
         if leavingString:
             fullString += '\x7' + leavingString
         
     elif mode == NPCToons.QUEST_MOVIE_QUEST_CHOICE_CANCEL:
         fullString = Localizer.QuestMovieQuestChoiceCancel
     elif mode == NPCToons.QUEST_MOVIE_TRACK_CHOICE_CANCEL:
         fullString = Localizer.QuestMovieTrackChoiceCancel
     elif mode == NPCToons.QUEST_MOVIE_INCOMPLETE:
         (questId, completeStatus, toNpcId) = quests
         scriptId = 'quest_incomplete_' + str(questId)
         if QuestParser.questDefined(scriptId):
             self.curQuestMovie = QuestParser.NPCMoviePlayer(scriptId, av, self)
             self.curQuestMovie.play()
             return None
         
         if isLocalToon:
             self.setupCamera(mode)
         
         greetingString = Quests.chooseQuestDialog(questId, Quests.GREETING)
         if greetingString:
             fullString += greetingString + '\x7'
         
         fullString += Quests.chooseQuestDialog(questId, completeStatus)
         leavingString = Quests.chooseQuestDialog(questId, Quests.LEAVING)
         if leavingString:
             fullString += '\x7' + leavingString
         
     elif mode == NPCToons.QUEST_MOVIE_ASSIGN:
         (questId, rewardId, toNpcId) = quests
         scriptId = 'quest_assign_' + str(questId)
         if QuestParser.questDefined(scriptId):
             self.curQuestMovie = QuestParser.NPCMoviePlayer(scriptId, av, self)
             self.curQuestMovie.play()
             return None
         
         if isLocalToon:
             self.setupCamera(mode)
         
         fullString += Quests.chooseQuestDialog(questId, Quests.QUEST)
         leavingString = Quests.chooseQuestDialog(questId, Quests.LEAVING)
         if leavingString:
             fullString += '\x7' + leavingString
         
     elif mode == NPCToons.QUEST_MOVIE_QUEST_CHOICE:
         if isLocalToon:
             self.setupCamera(mode)
         
         self.notify.debug('QUEST_MOVIE_QUEST_CHOICE: %s' % quests)
         self.setChatAbsolute(Localizer.QuestMovieQuestChoice, CFSpeech)
         if isLocalToon:
             self.acceptOnce('chooseQuest', self.sendChooseQuest)
             self.questChoiceGui = QuestChoiceGui.QuestChoiceGui()
             self.questChoiceGui.setQuests(quests, npcId, ChoiceTimeout)
         
         return None
     elif mode == NPCToons.QUEST_MOVIE_TRACK_CHOICE:
         if isLocalToon:
             self.setupCamera(mode)
         
         tracks = quests
         self.notify.debug('QUEST_MOVIE_TRACK_CHOICE: %s' % tracks)
         self.setChatAbsolute(Localizer.QuestMovieTrackChoice, CFSpeech)
         if isLocalToon:
             self.acceptOnce('chooseTrack', self.sendChooseTrack)
             self.trackChoiceGui = TrackChoiceGui.TrackChoiceGui(tracks, ChoiceTimeout)
         
         return None
     
     fullString = Quests.fillInQuestNames(fullString, avName = av.name, fromNpcId = npcId, toNpcId = toNpcId)
     self.acceptOnce(self.uniqueName('doneChatPage'), self.finishMovie, extraArgs = [
         av,
         isLocalToon])
     self.setPageChat(avId, 0, fullString, 1)