예제 #1
0
    def Update(self):
        self.timeTick += 1
        if self.canGoAnswerBool:
            logger.info("可以答题")
            self.NotifyToServer("canAnswerEvent", {})
            self.canGoAnswerBool = False

        # if self.narratorSayListBool.count(1) == 10:
        #     self.canGoAnswerBool = True
        #     logger.info("执行canGoAnswerBool == True")
        #     self.teacherCanAnswerBool = False
        #     clientApi.GetUI(
        #         modConfig.ModName, modConfig.dialogUI).setRemove()
        if self.timeTick >= 1500 + 3600:
            if self.timeTick % 1800 == 0:
                self.timeCount += 1
                if self.timeCount == 6:
                    self.timeCount = 1
                if clientApi.GetUI(modConfig.ModName, modConfig.dialogUI
                                   ) == None and self.teacherCanAnswerBool:
                    clientApi.RegisterUI(modConfig.ModName, modConfig.dialogUI,
                                         modConfig.dialogUIclsPath,
                                         modConfig.dialogUIDef)
                    locaUI = clientApi.CreateUI(modConfig.ModName,
                                                modConfig.dialogUI,
                                                {"isHud": 1})
                    locaUI.SetText(
                        "/bg_img/main_text",
                        "老师:  " + self.TeacherTextList[self.timeCount])
예제 #2
0
 def Destroy(self):
     logger.info("DESTORY——————————————————————————————————")
     comp = clientApi.CreateComponent(
         clientApi.GetLocalPlayerId(), modConfig.ModName, modConfig.scoreComponentClient)
     comp.setScoreBool(True)
     comp.setScore(self.score)
     clientApi.NeedsUpdate(comp)
     self.score = 0
예제 #3
0
 def PlayerAttackEntityEventHandler(self, args):
     logger.info(args['victimId'])
     print args['victimId']
     # 攻击伤害设定
     args['damage'] = 0
     args['isValid'] = 1
     comp = self.CreateComponent(self.player, "Minecraft", "game")
     comp.SetNotifyMsg("不可以攻击别人哦")
     self.NeedsUpdate(comp)
예제 #4
0
 def LeaveEntityClientEventHandler(self, args):
     for i in range(10):
         if args['entityId'] == self.narratorListId[i]:
             logger.info("player away" + self.narratorListId[i])
             if self.narratorSayListBool.count(1) == 10:
                 self.canGoAnswerBool = True
                 logger.info("执行canGoAnswerBool == True")
                 self.teacherCanAnswerBool = False
                 clientApi.GetUI(modConfig.ModName,
                                 modConfig.dialogUI).setRemove()
예제 #5
0
    def init_server(self):
        logger.info(
            '\n\n##########===============---------->>>>>  Server initializing.          <<<<<----------===============##########\n\n'
        )

        serverApi.RegisterSystem(modConfig.ModName, modConfig.ServerMain,
                                 modConfig.ServerMainclsPath)
        logger.info(
            '\n\n##########===============---------->>>>>  Server initialized.           <<<<<----------===============##########\n\n'
        )
예제 #6
0
    def init_client(self):
        logger.info(
            '\n\n##########===============---------->>>>>  Client component registering. <<<<<----------===============##########\n\n'
        )

        clientApi.RegisterComponent(modConfig.ModName,
                                    modConfig.scoreComponentClient,
                                    modConfig.scoreComponentClientclsPath)
        clientApi.RegisterComponent(modConfig.ModName, modConfig.TextComponent,
                                    modConfig.TextComponentclsPath)

        logger.info(
            '\n\n##########===============---------->>>>>  Client component registered.  <<<<<----------===============##########\n\n'
        )

        logger.info(
            '\n\n##########===============---------->>>>>  Client initializing.          <<<<<----------===============##########\n\n'
        )
        clientApi.RegisterSystem(modConfig.ModName, modConfig.ClientMain,
                                 modConfig.ClientMainclsPath)

        # dialogUI
        clientApi.RegisterSystem(modConfig.ModName, modConfig.dialogUI,
                                 modConfig.dialogUIClientSystemclsPath)
        # answerUI
        clientApi.RegisterSystem(modConfig.ModName, modConfig.answerUI,
                                 modConfig.answerUIClientSystemclsPath)
        logger.info(
            '\n\n##########===============---------->>>>>  Client initialized.           <<<<<----------===============##########\n\n'
        )
예제 #7
0
    def Update(self):
        self.saytimeTick += 1
        if self.saytimeTick % 600 == 0 and self.sayBool == False:
            logger.info("sayBoolTrue")
            self.sayBool = True
        if self.UpdateBool:
            self.timeTick += 1
            if self.timeTick == 150:
                commandComp = self.CreateComponent(serverApi.GetLevelId(),
                                                   "Minecraft", "command")
                commandComp.command = "/tp @s 32 65 -234"
                self.NeedsUpdate(commandComp)
            if self.timeTick == 450:
                self.chatToServer("老师:  请各位先自由行动,两分钟后集合哦,在外观赏一下场景!")
                self.chatToServer("老师:  然后大家将可以自由进入场馆学习历史文化!")

            if self.timeTick == 3600:
                self.chatToServer("老师:  时间到了,接下来让我们开始文化之旅吧!")
                commandComp = self.CreateComponent(serverApi.GetLevelId(),
                                                   "Minecraft", "command")
                commandComp.command = "/tp @s 31 66 -166"
                self.NeedsUpdate(commandComp)

            if self.timeTick == 300 + 3600:
                """
                """
                self.chatToServer(
                    "老师:  同学们,接下来我们要去的是三星堆博物馆。\n三星堆博物馆(Sanxingdui Museum)于1992年8月开始建造,1997年10月建成开放。\n是一座现代化的专题博物馆。\n三星堆博物馆有两个展馆,其展示面积12000平方米。\n跟着老师开始学习吧!"
                )
            if self.timeTick == 750 + 3600:
                self.UpdateBool = False
                # 开启narrator位置重置
                self.reSetNarratorPosBool = True
                comp = self.CreateComponent(self.player, "Minecraft", "game")
                comp.SetNotifyMsg("欢迎来到三星堆博物馆,您可以自由随意的在馆内闲逛。开始你的历史学习吧!")
                self.NeedsUpdate(comp)
                self.chatToServer("§e" + "PS: 走近解说员会有自动解说哟,与所有解说员互动完成后即可答题")
            # 每隔一段时间重置narrator位置
            if self.reSetNarratorPosBool:
                self.reSetNarratorPosBool = False
                self.retSetNarratorPos()
                logger.info("narrator控制")
            if self.timeTick == 6000:
                self.timeTick = 0
예제 #8
0
    def ApproachEntityClientEventHandler(self, args):
        # logger.info("ApproachEntityClientEventHandler_________")
        for i in range(10):
            if args['entityId'] == self.narratorListId[i]:
                # logger.info(self.TextDict[i + 1])
                if self.narratorSayListBool.count(1) == 10:
                    self.canGoAnswerBool = True
                    logger.info("执行canGoAnswerBool == True")
                    self.teacherCanAnswerBool = False
                    clientApi.GetUI(modConfig.ModName,
                                    modConfig.dialogUI).setRemove()

                if clientApi.GetUI(modConfig.ModName,
                                   modConfig.dialogUI) == None:
                    # comp = CreateComponent(
                    #     clientApi.GetLocalPlayerId(), "Minecraft", "operation")
                    # # 不响应屏幕拖动
                    # comp.SetCanDrag(False)
                    # self.NeedsUpdate(comp)
                    clientApi.RegisterUI(modConfig.ModName, modConfig.dialogUI,
                                         modConfig.dialogUIclsPath,
                                         modConfig.dialogUIDef)
                    locaUI = clientApi.CreateUI(modConfig.ModName,
                                                modConfig.dialogUI,
                                                {"isHud": 1})
                    locaUI.SetText("/bg_img/main_text", self.TextDict[i + 1])
                    self.narratorSayListBool[i] = 1
                    logger.info(self.narratorSayListBool)
                    logger.info(self.narratorSayListBool.count(1))
                    self.NotifyToServer(
                        "progressEvent",
                        {'val': self.narratorSayListBool.count(1)})
                    self.NotifyToServer("TeacherTextEvent",
                                        {"text": self.TextDict[i + 1]})
예제 #9
0
 def progressEventHandler(self, args):
     logger.info("监听进度成功!!!!!!!!!!!!!!!")
     self.chatToServer("§e" + "已完成" + str(args['val']) + "/10")
예제 #10
0
 def noResposeAttack(self):
     logger.info("noResposeAttack")
예제 #11
0
 def noPassEventHandler(self, args):
     for i in range(10):
         self.narratorSayListBool[i] = 0
         self.teacherCanAnswerBool = True
     logger.info("重置解说员交互")
예제 #12
0
 def destroy_client(self):
     logger.info(
         '\n\n##########===============---------->>>>>  Client destroyed.             <<<<<----------===============##########\n\n'
     )
예제 #13
0
 def destroy_server(self):
     logger.info(
         '\n\n##########===============---------->>>>>  Server destroyed.             <<<<<----------===============##########\n\n'
     )