8364 【恺英】【后端】缥缈随机任务(任务次数改为完成时才扣除;放弃任务改为只设置任务状态为未接)
| | |
| | |
|
| | | class tagMCPiaomiaoTaskInfo(Structure):
|
| | | Head = tagHead()
|
| | | TakeCount = 0 #(BYTE TakeCount)//今日已接次数
|
| | | FinishCount = 0 #(BYTE FinishCount)//今日已完成次数
|
| | | RefreshCount = 0 #(BYTE RefreshCount)//今日已刷新次数
|
| | | TaskCount = 0 #(BYTE TaskCount)
|
| | | TaskIDList = list() #(vector<DWORD> TaskIDList)//刷新任务ID列表[taskID,...]
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.TakeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.FinishCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskCount):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA7
|
| | | self.Head.SubCmd = 0x20
|
| | | self.TakeCount = 0
|
| | | self.FinishCount = 0
|
| | | self.RefreshCount = 0
|
| | | self.TaskCount = 0
|
| | | self.TaskIDList = list()
|
| | |
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TakeCount)
|
| | | data = CommFunc.WriteBYTE(data, self.FinishCount)
|
| | | data = CommFunc.WriteBYTE(data, self.RefreshCount)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskCount)
|
| | | for i in range(self.TaskCount):
|
| | |
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | TakeCount:%d,
|
| | | FinishCount:%d,
|
| | | RefreshCount:%d,
|
| | | TaskCount:%d,
|
| | | TaskIDList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.TakeCount,
|
| | | self.FinishCount,
|
| | | self.RefreshCount,
|
| | | self.TaskCount,
|
| | | "..."
|
| | |
| | | Def_PDict_TodayAssistMoneySocial = "TodayAssistMoneySocial" # 今日已获得协助货币 社交关系额外加成
|
| | |
|
| | | #缥缈任务
|
| | | Def_PDict_PiaomiaoTaskTakeCount = "PiaomiaoTaskTakeCount" # 今日已接任务次数
|
| | | Def_PDict_PiaomiaoTaskFinishCount = "PiaomiaoTaskFinishCount" # 今日已完成任务次数
|
| | | Def_PDict_PiaomiaoTaskRefreshCount = "PiaomiaoTaskRefreshCount" # 今日已刷新次数
|
| | | Def_PDict_PiaomiaoMaxGradeTaskID = "PiaomiaoMaxGradeTaskID" # 缥缈任务最大评分任务ID
|
| | | #-------------------------------------------------------------------------------
|
| | |
| | |
|
| | | class tagMCPiaomiaoTaskInfo(Structure):
|
| | | Head = tagHead()
|
| | | TakeCount = 0 #(BYTE TakeCount)//今日已接次数
|
| | | FinishCount = 0 #(BYTE FinishCount)//今日已完成次数
|
| | | RefreshCount = 0 #(BYTE RefreshCount)//今日已刷新次数
|
| | | TaskCount = 0 #(BYTE TaskCount)
|
| | | TaskIDList = list() #(vector<DWORD> TaskIDList)//刷新任务ID列表[taskID,...]
|
| | |
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.TakeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.FinishCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RefreshCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskCount):
|
| | |
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xA7
|
| | | self.Head.SubCmd = 0x20
|
| | | self.TakeCount = 0
|
| | | self.FinishCount = 0
|
| | | self.RefreshCount = 0
|
| | | self.TaskCount = 0
|
| | | self.TaskIDList = list()
|
| | |
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TakeCount)
|
| | | data = CommFunc.WriteBYTE(data, self.FinishCount)
|
| | | data = CommFunc.WriteBYTE(data, self.RefreshCount)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskCount)
|
| | | for i in range(self.TaskCount):
|
| | |
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | TakeCount:%d,
|
| | | FinishCount:%d,
|
| | | RefreshCount:%d,
|
| | | TaskCount:%d,
|
| | | TaskIDList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.TakeCount,
|
| | | self.FinishCount,
|
| | | self.RefreshCount,
|
| | | self.TaskCount,
|
| | | "..."
|
| | |
| | | return
|
| | |
|
| | | def OnDay(curPlayer):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskTakeCount, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskFinishCount, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskRefreshCount, 0)
|
| | | SyncPiaomiaoTaskInfo(curPlayer)
|
| | | return
|
| | |
| | | def OnTakePiaomiaoTask(curPlayer, curMission):
|
| | | ## 接缥缈任务
|
| | |
|
| | | todayTakeCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskTakeCount)
|
| | | maxTakeCount = IpyGameDataPY.GetFuncCfg("PiaomiaoTask", 1)
|
| | | if todayTakeCount >= maxTakeCount:
|
| | | GameWorld.DebugLog("已达今日接任务上限!todayTakeCount=%s" % todayTakeCount)
|
| | | finishCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskFinishCount)
|
| | | maxFinishCount = IpyGameDataPY.GetFuncCfg("PiaomiaoTask", 1)
|
| | | if finishCount >= maxFinishCount:
|
| | | GameWorld.DebugLog("已达今日任务上限!finishCount=%s" % finishCount)
|
| | | return
|
| | |
|
| | | for i in range(curPlayer.GetMissionCount()):
|
| | |
| | | if questData.Type == QuestCommon.Def_Mission_Type_Piaomiao and mission.GetState() != ChConfig.Def_Mission_State_NoAccept:
|
| | | GameWorld.DebugLog("已经有接了缥缈任务,无法再接!missionID=%s" % missionID)
|
| | | return
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskTakeCount, todayTakeCount + 1)
|
| | |
|
| | | QuestCommon.SetPlayerMissionState(curPlayer, curMission, 1)
|
| | |
|
| | |
| | |
|
| | | def OnFinishPiaomiaoTask(curPlayer, curMission):
|
| | | ## 完成缥缈任务
|
| | | |
| | | finishTaskCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskFinishCount) + 1
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskFinishCount, finishTaskCount)
|
| | |
|
| | | missionID = curMission.GetMissionID()
|
| | | # 给奖励
|
| | |
| | | if delItemID:
|
| | | ItemCommon.DelMissionItem(curPlayer, IPY_GameWorld.rptItem, delItemID, 0, missionID)
|
| | |
|
| | | GameWorld.DebugLog("完成缥缈任务: missionID=%s,exp=%s,goldPaper=%s,itemID=%s,delItemID=%s" |
| | | % (missionID, exp, goldPaper, itemID, delItemID))
|
| | | GameWorld.DebugLog("完成缥缈任务: finishTaskCount=%s,missionID=%s,exp=%s,goldPaper=%s,itemID=%s,delItemID=%s" |
| | | % (finishTaskCount, missionID, exp, goldPaper, itemID, delItemID))
|
| | |
|
| | | # 删任务
|
| | | QuestCommon.DeleteMission(curPlayer, missionID)
|
| | |
| | | return
|
| | |
|
| | | def DoCancelPiaomiaoTask(curPlayer, curMission):
|
| | | ## 放弃任务
|
| | | ## 放弃任务,设置为未接状态,不重新刷新列表
|
| | | missionID = curMission.GetMissionID()
|
| | | GameWorld.DebugLog("放弃缥缈任务! missionID=%s" % missionID)
|
| | | QuestCommon.DeleteMission(curPlayer, missionID)
|
| | | __DoRefreshPiaomiaoTask(curPlayer)
|
| | | QuestCommon.SetPlayerMissionState(curPlayer, curMission, ChConfig.Def_Mission_State_NoAccept)
|
| | | EventShell.NotifyOneMission(curPlayer, curMission, isNotifyAll=False)
|
| | | return
|
| | |
|
| | | def SyncPiaomiaoTaskInfo(curPlayer):
|
| | |
| | | return
|
| | |
|
| | | taskInfo = ChPyNetSendPack.tagMCPiaomiaoTaskInfo()
|
| | | taskInfo.TakeCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskTakeCount)
|
| | | taskInfo.FinishCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskFinishCount)
|
| | | taskInfo.RefreshCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskRefreshCount)
|
| | | taskInfo.TaskIDList = taskIDList
|
| | | taskInfo.TaskCount = len(taskIDList)
|