2025-06-04 05:02:57 +08:00

722 lines
23 KiB
Plaintext

AnnounceQuestPanel = class("AnnounceQuestPanel", ContainerView)
autoImport("AnnounceQuestPanelCell")
AnnounceQuestPanel.ViewType = UIViewType.NormalLayer
AnnounceQuestPanel.skillid = 50040001
function AnnounceQuestPanel:Init()
self:initView()
self:initData()
-- self:addViewEventListener()
self:addListEventListener()
end
local tempArray = {}
function AnnounceQuestPanel:OnEnter( )
-- body
self.super.OnEnter(self)
local viewdata = self.viewdata.viewdata
if(viewdata and viewdata.npcTarget)then
local func = function ( )
-- body
self:Show()
local manager_Camera = Game.GameObjectManagers[Game.GameObjectType.Camera]
manager_Camera:ActiveMainCamera(false);
ServiceQuestProxy.Instance:CallQuestList(SceneQuest_pb.EQUESTLIST_CANACCEPT,self.wantedId)
end
local trans = viewdata.npcTarget.assetRole.completeTransform
self.announceGuid = viewdata.npcTarget.data:GetGuid()
local viewPort = CameraConfig.Ann_ViewPort;
local rotation = CameraController.singletonInstance.targetRotationEuler;
rotation = Vector3(CameraConfig.Ann_ViewRotationX, rotation.y, rotation.z);
self:CameraFaceTo(trans,viewPort,rotation,nil,nil,func)
end
end
function AnnounceQuestPanel:OnExit()
local manager_Camera = Game.GameObjectManagers[Game.GameObjectType.Camera]
manager_Camera:ActiveMainCamera(true);
self.super.OnExit(self)
self:CameraReset()
self.questListCtl:ResetDatas()
LeanTween.cancel(self.gameObject)
TimeTickManager.Me():ClearTick(self)
if(self.bgTexture)then
PictureManager.Instance:UnLoadUI("Rewardtask_bg_06",self.bgTexture);
end
MsgManager.CloseConfirmMsgByID(903)
end
function AnnounceQuestPanel:initView( )
-- body
-- self.titleName = self:FindGO("Label",self:FindGO("panelTitle")):GetComponent(UILabel)
self.refreshTimeLabel = self:FindGO("refreshTimeLabel"):GetComponent(UILabel)
-- self.currentStateLabel = self:FindGO("currentStateLabel"):GetComponent(UILabel)
self.currentRateLabel = self:FindGO("currentRateLabel"):GetComponent(UILabel)
self.currentRateLabelValue = self:FindGO("currentRateLabelValue"):GetComponent(UILabel)
self:Hide()
-- self.leftAction = self:FindGO("leftAction"):GetComponent(UISprite)
-- self.leftActionCollider = self.leftAction.gameObject:GetComponent(BoxCollider)
-- self.rightAction = self:FindGO("rightAction"):GetComponent(UISprite)
-- self.rightActionCollider = self.rightAction.gameObject:GetComponent(BoxCollider)
self.leftAction = self:FindGO("leftAction")
self.rightAction = self:FindGO("rightAction")
self.panelMask = self:FindGO("panelMask")
self:Hide(self.panelMask)
self.ScrollView = self:FindComponent("ScrollView",UIScrollView)
self.ScrollView.onStoppedMoving = function ( )
-- body
self:checkBtnEnabled()
end
local ContentContainer = self:FindComponent("ContentContainer",UIGrid)
-- local wrapConfig = {
-- wrapObj = ContentContainer,
-- pfbNum = 10,
-- cellName = "AnnounceQuestPanelCell",
-- control = AnnounceQuestPanelCell,
-- dir = 0,
-- }
-- self.itemWrapHelper = WrapCellHelper.new(wrapConfig)
-- self.itemWrapHelper:AddEventListener(MouseEvent.MouseClick, self.questClick, self);
local isInWantedQuestActivity = QuestProxy.Instance:isInWantedQuestInActivity()
if(isInWantedQuestActivity)then
self.questListCtl = UIGridListCtrl.new(ContentContainer,AnnounceQuestPanelCell,"AnnounceQuestActivityPanelCell")
else
self.questListCtl = UIGridListCtrl.new(ContentContainer,AnnounceQuestPanelCell,"AnnounceQuestPanelCell")
end
self.questListCtl:AddEventListener(MouseEvent.MouseClick,self.questClick,self)
self.bgTexture = self:FindComponent("bgTexture",UITexture)
if(self.bgTexture)then
PictureManager.Instance:SetUI("Rewardtask_bg_06", self.bgTexture);
end
end
function AnnounceQuestPanel:initData( )
-- body
self.currentQuestData = nil
self.firstInit = true
if(self.viewdata.viewdata)then
self.wantedId = self.viewdata.viewdata.wanted
else
printRed("can't find wantedId in viewdata!")
end
-- self:setQuestData()
-- printRed(self.wantedId)
self.hasGoingQuest = false
self.startIndex = 1
self.listTime = {}
local currentTime = ServerTime.CurServerTime()/1000
local nextDayTime
local timeTab = os.date("*t", currentTime)
for i=1,#GameConfig.Quest.refresh do
local tmp = TableUtil.split(GameConfig.Quest.refresh[i],":")
local tb = {year=timeTab.year, month=timeTab.month, day=timeTab.day, hour=tmp[1],min=tmp[2],sec=0,isdst=false}
table.insert(self.listTime,os.time(tb))
if(i == 1)then
tb = {year=timeTab.year, month=timeTab.month, day=timeTab.day+1, hour=tmp[1],min=tmp[2],sec=0,isdst=false}
nextDayTime = os.time(tb)
end
end
table.insert(self.listTime,nextDayTime)
self.currentRatio = 0
self.hasPlayAudio = false
end
-- function AnnounceQuestPanel:addViewEventListener( )
-- body
-- EventManager.Me():AddEventListener(QuestPanelGroupCell.Quest_Select,self.handleQuestSelect,self)
-- self:AddClickEvent(self:FindGO("TraceBtn"),function ( obj )
-- -- body
-- local data = self.tabData[self.currentTab]
-- ServiceQuestProxy.Instance:CallQuestTrace(data.questId,not data.trace)
-- end)
-- self:AddButtonEvent("rightAction",function ( obj )
-- -- body
-- self:rightBtnClick()
-- end)
-- self:AddButtonEvent("leftAction",function ( obj )
-- -- body
-- self:leftBtnClick()
-- end)
-- local dragCollider = self:FindGO("bgCt")
-- self:AddDragEvent(dragCollider,function ( obj,delta )
-- -- body
-- if(math.abs(delta.x) > 20)then
-- self.delta = delta.x
-- end
-- end)
-- UIEventListener.Get(dragCollider).onDragEnd = function ( obj)
-- -- body
-- if(math.abs(self.delta) > 20)then
-- self:handDrag(self.delta)
-- end
-- end
-- end
-- function AnnounceQuestPanel:leftBtnClick()
-- if(self.questList and #self.questList > 0)then
-- local start = self.startIndex - 3
-- if(start > 0)then
-- self.startIndex = start
-- local endIndex = math.min(self.startIndex+2,#self.questList)
-- self.announceQuestList:ResetDatas({unpack(self.questList,self.startIndex,endIndex)})
-- else
-- -- if(#self.questList>3)then
-- -- self.startIndex = 3*math.floor(#self.questList/3)+1
-- -- local endIndex = math.min(self.startIndex+2,#self.questList)
-- -- self.announceQuestList:ResetDatas({unpack(self.questList,self.startIndex,endIndex)})
-- -- end
-- end
-- self:checkQuestCanAccept()
-- end
-- -- self:checkBtnEnabled()
-- end
-- function AnnounceQuestPanel:rightBtnClick()
-- if(self.questList and #self.questList > 0)then
-- local start = self.startIndex + 3
-- if(start > #self.questList)then
-- -- if(self.startIndex == 1)then
-- -- return
-- -- end
-- -- self.startIndex = 1
-- -- local endIndex = math.min(self.startIndex+2,#self.questList)
-- -- self.announceQuestList:ResetDatas({unpack(self.questList,self.startIndex,endIndex)})
-- else
-- self.startIndex = start
-- local endIndex = math.min(self.startIndex+2,#self.questList)
-- self.announceQuestList:ResetDatas({unpack(self.questList,self.startIndex,endIndex)})
-- end
-- self:checkQuestCanAccept()
-- end
-- -- self:checkBtnEnabled()
-- end
-- function AnnounceQuestPanel:handDrag( delta )
-- -- body
-- if(delta>0)then
-- self:leftBtnClick()
-- else
-- self:rightBtnClick()
-- end
-- end
function AnnounceQuestPanel:checkBtnEnabled( )
-- body
if(self.questListData and #self.questListData>0)then
-- if(#self.questList - self.startIndex >2 )then
-- self:Show(self.rightAction)
-- else
-- self:Hide(self.rightAction)
-- end
-- if(self.startIndex >3 )then
-- self:Show(self.leftAction)
-- else
-- self:Hide(self.leftAction)
-- end
local cells = self.questListCtl:GetCells()
local panel = self.ScrollView.panel
if(panel)then
local cell = cells[1]
-- local bound = NGUIMath.CalculateRelativeWidgetBounds(panel.cachedTransform,cell.gameObject.transform)
-- local offset = panel:CalculateConstrainOffset(bound.min,bound.max)
-- self:Log(self.ScrollView.currentMomentum)
-- if(offset.x <=40)then
-- self:Hide(self.leftAction)
-- else
-- self:Show(self.leftAction)
-- end
if(panel:IsVisible(cell.baseExp))then
self:Hide(self.leftAction)
else
self:Show(self.leftAction)
end
local index = #cells
cell = cells[index]
if(panel:IsVisible(cell.jobExp))then
-- self:Log("index:",index)
-- self:Log(cell.data.staticData.Name)
self:Hide(self.rightAction)
else
self:Show(self.rightAction)
end
-- bound = NGUIMath.CalculateRelativeWidgetBounds(panel.cachedTransform,cell.gameObject.transform)
-- offset = panel:CalculateConstrainOffset(bound.min,bound.max)
-- self:Log(offset)
-- if(offset.x >= -50)then
-- self:Hide(self.rightAction)
-- else
-- self:Show(self.rightAction)
-- end
end
else
self:Hide(self.rightAction)
self:Hide(self.leftAction)
end
-- --TODO
-- self:Hide(self.rightAction.gameObject)
-- self:Hide(self.leftAction.gameObject)
end
function AnnounceQuestPanel:getStartIndexByQuestId( )
-- body
-- printRed("getStartIndexByQuestId")
-- printRed(self.questId)
-- stack("getStartIndexByQuestId")
local questId = self.questId
if(self.questListData and #self.questListData > 0)then
if(questId)then
for i=1,#self.questListData do
local single = self.questListData[i]
if(single.id == questId)then
return i
end
end
else
return 1
end
end
self.questId = nil
end
function AnnounceQuestPanel:addListEventListener( )
-- body
self:AddListenEvt(ServiceEvent.QuestQuestList,self.setQuestData)
self:AddListenEvt(ServiceEvent.SessionTeamQuestWantedQuestTeamCmd,self.SessionTeamQuestWantedQuestTeamCmd)
self:AddListenEvt(ServiceEvent.SessionTeamUpdateWantedQuestTeamCmd,self.SessionTeamUpdateWantedQuestTeamCmd)
-- self:AddListenEvt(ServiceEvent.QuestQuestDetailUpdate,self.setQuestData)
self:AddListenEvt(ServiceEvent.QuestQuestUpdate, self.setQuestData)
self:AddListenEvt(ServiceEvent.QuestQuestStepUpdate,self.setQuestData)
self:AddListenEvt(ServiceEvent.NUserVarUpdate, self.VarUpdateHandler)
self:AddListenEvt(ServiceEvent.QuestQuestCanAcceptListChange,function ( )
-- body
ServiceQuestProxy.Instance:CallQuestList(SceneQuest_pb.EQUESTLIST_CANACCEPT,self.wantedId)
end)
self:AddListenEvt(SceneUserEvent.LevelUp,function ( )
-- body
ServiceQuestProxy.Instance:CallQuestList(SceneQuest_pb.EQUESTLIST_CANACCEPT,self.wantedId)
end)
self:AddListenEvt(QuestEvent.UpdateAnnounceQuest,self.setQuestData)
self:AddListenEvt(SceneUserEvent.SceneRemoveNpcs,self.removeNpcHandle)
end
function AnnounceQuestPanel:removeNpcHandle( note )
local body = note.body
if(body and #body>0)then
for i=1,#body do
if(self.announceGuid == body[i])then
self:CloseSelf()
break
end
end
end
end
function AnnounceQuestPanel:VarUpdateHandler()
-- LeanTween.cancel(self.gameObject)
self.varupdated = true
local submitCount = MyselfProxy.Instance:getVarValueByType(Var_pb.EVARTYPE_QUEST_WANTED)
-- printRed("VarUpdateHandler",submitCount,"VarUpdateHandler end ")
LeanTween.delayedCall(self.gameObject,0.5,function ()
if(self.varupdated)then
self:setQuestData()
end
end)
end
function AnnounceQuestPanel:SessionTeamQuestWantedQuestTeamCmd()
self:Log("AnnounceQuestPanel:SessionTeamQuestWantedQuestTeamCmd()")
self:setQuestData()
end
function AnnounceQuestPanel:SessionTeamUpdateWantedQuestTeamCmd()
self:Log("AnnounceQuestPanel:SessionTeamUpdateWantedQuestTeamCmd()")
self:setQuestData()
end
function AnnounceQuestPanel:checkQuestCanAccept()
-- local cells = self.questListCtl:GetCells()
-- self.CellState = false
-- if(self.hasGoingQuest)then
-- self.CellState = false
-- else
-- self.CellState = true
-- end
-- -- printRed(string.format("checkQuestCanAccept state:%s",tostring(state)))
-- for i=1,#cells do
-- local single = cells[i]
-- single:setEnableAccept(state)
-- end
end
function AnnounceQuestPanel:setQuestData( note )
-- body
-- printRed("setQuestData")
self.varupdated = false
-- if(data and data.type == SceneQuest_pb.EQUESTLIST_SUBMIT)then
-- return
-- end
self.hasGoingQuest = false
self.questListData = QuestProxy.Instance:getWantedQuest()
local index = self:getStartIndexByQuestId()
local unAccept = false
-- local submitIds = {}
for i=1,#self.questListData do
local single = self.questListData[i]:getQuestListType()
-- printRed("setQuestData:",self.questList[i])
if(single == SceneQuest_pb.EQUESTLIST_ACCEPT or single == SceneQuest_pb.EQUESTLIST_COMPLETE)then
self.hasGoingQuest = true
if(self.firstInit)then
index = i
end
-- if(single ==SceneQuest_pb.EQUESTLIST_COMPLETE)then
-- table.insert(submitIds,self.questListData[i].id)
-- end
break
elseif(single == SceneQuest_pb.EQUESTLIST_CANACCEPT)then
unAccept = true
end
end
QuestProxy.Instance:setGoingWantedQuest(self.hasGoingQuest)
-- if(index)then
-- self.startIndex = math.floor((index-1)/3)*3+1
-- else
-- self.startIndex = 1
-- end
local extraCount = self:setQuestList(index)
self.submitCount = MyselfProxy.Instance:getVarValueByType(Var_pb.EVARTYPE_QUEST_WANTED)
if(not self.submitCount)then
self.submitCount = 0
end
-- self.currentStateLabel.text = ZhString.AnnounceQuestPanel_DaiLyWanted..self.submitCount.."/"..QuestProxy.Instance:getMaxWanted()
self.nextTime = self:getNextRefreshTime()
TimeTickManager.Me():CreateTick(0,1000,self.refreshTime,self,1)
-- self.currentRateLabel.text = ZhString.AnnounceQuestPanel_RewardRatio
-- self.currentStateLabel.text = ZhString.AnnounceQuestPanel_DaiLyWanted..self.submitCount.."/"..QuestProxy.Instance:getMaxWanted()
local ratio = QuestProxy.Instance:getWantedQuestRatio( self.submitCount )
self.currentRatio = (ratio*100)
if(not self.hasPlayAudio)then
self.hasPlayAudio = true
if(unAccept or self.hasGoingQuest)then
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_Normal)
else
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_AllCommit)
end
end
end
function AnnounceQuestPanel:checkIfNeedExtraQuest( questId )
if(self.questListData and #self.questListData > 0)then
for i=1,#self.questListData do
local single = self.questListData[i]
local result = single.id == questId and single:getQuestListType() ~= SceneQuest_pb.EQUESTLIST_SUBMIT
if(result)then
return false
end
end
end
return true
end
function AnnounceQuestPanel:checkIsAllQuestCommited( )
if(self.questListData and #self.questListData > 0)then
for i=1,#self.questListData do
local single = self.questListData[i]
if(single.id == questId and single:getQuestListType() ~= SceneQuest_pb.EQUESTLIST_SUBMIT)then
return false
end
end
end
return true
end
function AnnounceQuestPanel:checkIfHasExsit( questId ,array)
if(array and #array > 0)then
for i=1,#array do
local single = array[i]
if(single.id == questId)then
return true
end
end
end
return false
end
function AnnounceQuestPanel:setQuestList( index )
-- body
local extraCount = 0
local extraQuests = ShareAnnounceQuestProxy.Instance:getAllMembersQuest()
local tempArray = {}
for i=1,#extraQuests do
local single = extraQuests[i]
local totalMember = ShareAnnounceQuestProxy.Instance:getTotalCountMenber(single.questId)
local bRet = totalMember > 0 and self:checkIfNeedExtraQuest(single.questId) and not self:checkIfHasExsit(single.questId,tempArray)
local params = single.questData.params
local isComplete = params.mark_team_wanted == 1
bRet = bRet and not isComplete
if(bRet)then
-- local questData = QuestData.CreateAsArray(QuestDataScopeType.QuestDataScopeType_CITY)
-- questData:update(single.questId,1)
-- questData.notMine = true
table.insert(tempArray,single.questData)
extraCount = extraCount +1
end
end
if(self.questListData and #self.questListData>0)then
for i=1,#self.questListData do
table.insert(tempArray,self.questListData[i])
end
end
if(not index)then
self.startIndex = 1 + extraCount
else
self.startIndex = index + extraCount
end
if(tempArray and #tempArray > 0)then
-- local start = self.startIndex
-- local endIndex = math.min(self.startIndex+2,#self.questListData)
-- self.announceQuestList:ResetDatas({unpack(self.questListData,start,endIndex)})
self.questListCtl:ResetDatas(tempArray)
self:moveScrView()
-- self:Log("self.ifNeedPlayRatioUp",self.ifNeedPlayRatioUp)
-- self.ifNeedPlayRatioUp = true
if(self.ifNeedPlayRatioUp)then
local cells = self.questListCtl:GetCells()
for i=1,#cells do
local single = cells[i]
local panel = self.ScrollView.panel
if(panel and panel:IsVisible(single.publishName))then
single:playRatioUpAnm()
end
end
self.ifNeedPlayRatioUp = false
end
-- self:checkQuestCanAccept()
else
-- self:Log("UpdateInfo2")
self.questListCtl:ResetDatas()
end
end
function AnnounceQuestPanel:moveScrView()
if(self.startIndex and self.startIndex ~= 1)then
local cells = self.questListCtl:GetCells()
local cell = cells[self.startIndex]
-- self:Log("AnnounceQuestPanel:moveScrView",self.startIndex,tostring(cell))
if(cell)then
-- printRed("moveScrView",self.startIndex)
-- LeanTween.cancel(self.gameObject)
LeanTween.delayedCall(self.gameObject,1,function ( )
-- body
local panel = self.ScrollView.panel
if(panel)then
local bound = NGUIMath.CalculateRelativeWidgetBounds(panel.cachedTransform,cell.gameObject.transform)
-- printRed(bound)
local offset = panel:CalculateConstrainOffset(bound.min,bound.max)
-- printRed(offset)
offset = Vector3(offset.x,0,0)
self.ScrollView:MoveRelative(offset)
end
end)
end
else
self.questListCtl:Layout()
end
end
function AnnounceQuestPanel:refreshTime()
local deltaTime = math.abs(self.nextTime - ServerTime.CurServerTime()/1000)
local hour = math.floor(deltaTime/3600)
local timeStr
if(hour == 0)then
timeStr = "00"
elseif(hour<10)then
timeStr = "0"..hour
else
timeStr = hour
end
timeStr = timeStr..":"
local minute = math.floor((deltaTime - hour*3600)/60)
if(minute == 0)then
timeStr = timeStr.."00"
elseif(minute<10)then
timeStr = timeStr.."0"..minute
else
timeStr = timeStr..minute
end
timeStr = timeStr..":"
local second = math.floor(deltaTime - hour*3600 - minute*60)
if(second == 0)then
timeStr = timeStr.."00"
elseif(second<10)then
timeStr = timeStr.."0"..second
else
timeStr = timeStr..second
end
local curSmit = self.submitCount and self.submitCount or 0
local str = curSmit.."/"..QuestProxy.Instance:getMaxWanted( )
self.refreshTimeLabel.text = string.format(ZhString.AnnounceQuestPanel_BottomLabel,self.currentRatio,str,timeStr)
end
function AnnounceQuestPanel:getNextRefreshTime( )
-- body
local currentTime = ServerTime.CurServerTime()/1000
-- printRed(os.date("%X",currentTime))
-- printRed("size:"..#self.listTime)
for i=1,#self.listTime do
--printRed(self.listTime[i])
if(currentTime < self.listTime[i])then
return self.listTime[i]
end
end
end
function AnnounceQuestPanel:playQuestCompleteAnim( cell )
-- body
-- printRed(#submitIds)
local ratio = QuestProxy.Instance:getWantedQuestRatio( self.submitCount)
local nextRatio = QuestProxy.Instance:getWantedQuestRatio( self.submitCount +1 )
if(ratio ~= nextRatio)then
self.ifNeedPlayRatioUp = true
end
self:PlayUISound(AudioMap.UI.stamp)
self:Show(self.panelMask)
cell:playAnim()
LeanTween.delayedCall(self.gameObject,3,function ( )
if(not self:ObjIsNil(self.panelMask))then
self:Hide(self.panelMask)
end
end)
ServiceQuestProxy.Instance:CallQuestAction(SceneQuest_pb.EQUESTACTION_SUBMIT,cell.data.id)
end
function AnnounceQuestPanel:checkLevelCross( qMinLv,qMaxLv,rMinLv,rMaxLv )
if(qMaxLv>=rMinLv and qMinLv <=rMaxLv)then
return true
end
end
function AnnounceQuestPanel:checkWantedTick( data )
if(not data or not data.wantedData or data.wantedData.IsActivity == 1)then
return
end
local questConfig = GameConfig.Quest.quick_finish_board_quest or {}
local wantedData = data.wantedData
local questMinLimit,questMaxLimit = wantedData.LevelRange[1],wantedData.LevelRange[2]
local dont = LocalSaveProxy.Instance:GetDontShowAgain(55)
local single
local itemId
local minLv
local maxLv
if(dont == nil)then
for i=1,#questConfig do
single = questConfig[i]
itemId = single[1] or nil
minLv = single[2] or 1
maxLv = single[3] or 999999
itemData = BagProxy.Instance:GetItemByStaticID(itemId)
if(self:checkLevelCross(questMinLimit,questMaxLimit,minLv,maxLv) and itemData )then
MsgManager.DontAgainConfirmMsgByID(55,
function ()
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_Accept)
ServiceQuestProxy.Instance:CallQuestAction(SceneQuest_pb.EQUESTACTION_QUICK_SUBMIT_BOARD,self.questId)
end,
function ( )
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_Accept)
ServiceQuestProxy.Instance:CallQuestAction(SceneQuest_pb.EQUESTACTION_ACCEPT,self.questId)
end, nil, itemData:GetName(true,true))
return true
end
end
else
for i=1,#questConfig do
single = questConfig[i]
itemId = single[1] or nil
minLv = single[2] or 1
maxLv = single[3] or 999999
itemData = BagProxy.Instance:GetItemByStaticID(itemId)
if(self:checkLevelCross(questMinLimit,questMaxLimit,minLv,maxLv) and itemData)then
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_Accept)
ServiceQuestProxy.Instance:CallQuestAction(SceneQuest_pb.EQUESTACTION_QUICK_SUBMIT_BOARD,self.questId)
return true
end
end
end
end
function AnnounceQuestPanel:start( obj )
end
function AnnounceQuestPanel:questClick( obj )
-- body
if(obj)then
self.questId = obj.data.id
-- self:playQuestCompleteAnim(obj)
-- return
end
if(obj.data.notMine)then
helplog("MainViewTaskQuestPage:CallAcceptHelpWantedTeamCmd( ):",obj.data.id)
ServiceSessionTeamProxy.Instance:CallAcceptHelpWantedTeamCmd(obj.data.id,false)
elseif(obj and obj.data:getQuestListType() == SceneQuest_pb.EQUESTLIST_COMPLETE)then
-- printRed("領取")
self:playQuestCompleteAnim(obj)
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_Commit)
elseif(obj and obj.data:getQuestListType() == SceneQuest_pb.EQUESTLIST_CANACCEPT)then
-- printRed("接取")
if(self.submitCount >= QuestProxy.Instance:getMaxWanted())then
MsgManager.ShowMsgByIDTable(901)
return
elseif(self.hasGoingQuest)then
MsgManager.ShowMsgByIDTable(900)
return
elseif(self:checkWantedTick(obj.data))then
return
end
AudioUtil.Play2DRandomSound(AudioMap.Maps.AnnounceQuestPanel_Accept)
ServiceQuestProxy.Instance:CallQuestAction(SceneQuest_pb.EQUESTACTION_ACCEPT,self.questId)
else
-- printRed("放棄")
if(self.questId)then
MsgManager.ConfirmMsgByID(903, function ()
local npcs = NSceneNpcProxy.Instance:FindNpcs(1016)
if(npcs and #npcs >0)then
ServiceQuestProxy.Instance:CallQuestAction(SceneQuest_pb.EQUESTACTION_ABANDON_GROUP,self.questId)
ServiceQuestProxy.Instance:CallQuestList(SceneQuest_pb.EQUESTLIST_CANACCEPT,self.wantedId)
end
end, nil)
end
end
end