FunctionXO = class("FunctionXO") function FunctionXO.Me() if nil == FunctionXO.me then FunctionXO.me = FunctionXO.new() end return FunctionXO.me end function FunctionXO:ctor() end function FunctionXO:QueryQuestion( npcid ) helplog("QueryQuestion", npcid); self.queryNpcid = npcid; ServiceSceneInterlocutionProxy.Instance:CallQuery( npcid ); end function FunctionXO:QueryQuestionResult( result, npcid ) if(not npcid)then npcid = self.queryNpcid; end self.queryNpcid = nil; -- 臨時處理答題任務 local npc = NSceneNpcProxy.Instance:Find( npcid ); if(npc)then local viewdata = { viewname = "DialogView" }; viewdata.npcinfo = npc; if(result == SceneInterlocution_pb.EQUERYSTATE_ANSWERED_RIGHT)then viewdata.dialoglist = { ZhString.FunctionXO_AlreadyAnswerdTip }; elseif(result == SceneInterlocution_pb.EQUERYSTATE_ANSWERED_WRONG)then viewdata.dialoglist = { ZhString.FunctionXO_AlreadyAnswerdFailedTip }; end GameFacade.Instance:sendNotification(UIEvent.ShowUI, viewdata ); end end function FunctionXO:NewInter( inter, npcid ) helplog("FunctionXO NewInter"); if(not inter)then return; end FunctionSystem.WeakInterruptMyself(true); local viewdata = { npcid = npcid, guid = inter.guid, interid = inter.interid; }; GameFacade.Instance:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.XOView, viewdata = viewdata }); end function FunctionXO:Answer( npcid, guid, interid, answer ) ServiceSceneInterlocutionProxy.Instance:CallAnswer( npcid, guid, interid, answer ); end function FunctionXO:AnswerResult( correct, npcid, source ) -- xo問題回答結束 播放表情和音效 if(npcid)then local npc = NSceneNpcProxy.Instance:Find(npcid); if(npc)then local sceneUI = npc:GetSceneUI(); if(sceneUI)then if(correct)then sceneUI.roleTopUI:PlayEmojiById(32); else sceneUI.roleTopUI:PlayEmojiById(31); end end -- qa 問題回答錯誤表現 if(not correct and source == ProtoCommon_pb.ESOURCE_QA)then local viewdata = { viewname = "DialogView" }; viewdata.npcinfo = npc; viewdata.dialoglist = { ZhString.FunctionXO_AlreadyAnswerdFailedTip }; GameFacade.Instance:sendNotification(UIEvent.ShowUI, viewdata ); end end end end ---------------------------------------------------------------- local Answer_LoverQuestion = function (npcInfo, optionId) helplog("Answer_LoverQuestion", optionId); end function FunctionXO:DoLoverQuestion(loverQuestionId) local config = Table_Valentine[loverQuestionId]; if(config)then local viewdata = { viewname = "DialogView" }; viewdata.dialoglist = { config.TitleDesc }; local option = config.Option; if(#option > 0)then viewdata.addfunc = {}; for i=1, #option do local optCfg = option[i]; if(optCfg)then local chooseFunc = {}; chooseFunc.NameZh = optCfg[1]; chooseFunc.eventParam = optCfg[2]; chooseFunc.event = Answer_LoverQuestion; chooseFunc.closeDialog = true; chooseFunc.waitClose = 1; table.insert(viewdata.addfunc, chooseFunc) end end viewdata.forceClickMenu = true; end local nnpc = FunctionVisitNpc.Me():GetTarget() if(nnpc == nil)then nnpc = NSceneNpcProxy.Instance:FindNearestNpc(Game.Myself:GetPosition(),nearDis,function ( npc ) end); end viewdata.npcinfo = nnpc; GameFacade.Instance:sendNotification(UIEvent.ShowUI, viewdata); end end