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])
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
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)
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()
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' )
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' )
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
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]})
def progressEventHandler(self, args): logger.info("监听进度成功!!!!!!!!!!!!!!!") self.chatToServer("§e" + "已完成" + str(args['val']) + "/10")
def noResposeAttack(self): logger.info("noResposeAttack")
def noPassEventHandler(self, args): for i in range(10): self.narratorSayListBool[i] = 0 self.teacherCanAnswerBool = True logger.info("重置解说员交互")
def destroy_client(self): logger.info( '\n\n##########===============---------->>>>> Client destroyed. <<<<<----------===============##########\n\n' )
def destroy_server(self): logger.info( '\n\n##########===============---------->>>>> Server destroyed. <<<<<----------===============##########\n\n' )