8364 【恺英】【后端】缥缈随机任务(任务次数改为完成时才扣除;放弃任务改为只设置任务状态为未接)
4个文件已修改
53 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPiaomiaoTask.py 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -21936,7 +21936,7 @@
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,...]    
@@ -21951,7 +21951,7 @@
    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):
@@ -21964,7 +21964,7 @@
        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()
@@ -21983,7 +21983,7 @@
    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):
@@ -21993,14 +21993,14 @@
    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,
                                "..."
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3993,7 +3993,7 @@
Def_PDict_TodayAssistMoneySocial = "TodayAssistMoneySocial" # 今日已获得协助货币 社交关系额外加成
#缥缈任务
Def_PDict_PiaomiaoTaskTakeCount = "PiaomiaoTaskTakeCount" # 今日已接任务次数
Def_PDict_PiaomiaoTaskFinishCount = "PiaomiaoTaskFinishCount" # 今日已完成任务次数
Def_PDict_PiaomiaoTaskRefreshCount = "PiaomiaoTaskRefreshCount" # 今日已刷新次数
Def_PDict_PiaomiaoMaxGradeTaskID = "PiaomiaoMaxGradeTaskID" # 缥缈任务最大评分任务ID
#-------------------------------------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -21936,7 +21936,7 @@
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,...]    
@@ -21951,7 +21951,7 @@
    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):
@@ -21964,7 +21964,7 @@
        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()
@@ -21983,7 +21983,7 @@
    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):
@@ -21993,14 +21993,14 @@
    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,
                                "..."
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPiaomiaoTask.py
@@ -38,7 +38,7 @@
    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
@@ -144,10 +144,10 @@
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()):
@@ -160,8 +160,6 @@
        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)
    
@@ -175,6 +173,9 @@
def OnFinishPiaomiaoTask(curPlayer, curMission):
    ## 完成缥缈任务
    finishTaskCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_PiaomiaoTaskFinishCount) + 1
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_PiaomiaoTaskFinishCount, finishTaskCount)
    
    missionID = curMission.GetMissionID()
    # 给奖励
@@ -199,8 +200,8 @@
    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)
@@ -209,11 +210,11 @@
    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):
@@ -231,7 +232,7 @@
        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)