10054 【后端】任务系统(是否完成任务改为领取完奖励才算;福地采集任务类型增加进度改为开始采集就算;)
3个文件已修改
27 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
@@ -901,7 +901,7 @@
    
    # 拉物品
    if msgType == "Pull":
        __DoPullItem(playerID, curPlayer, dataMsg)
        ret = __DoPullItem(playerID, curPlayer, dataMsg)
    # 刷新福地物品
    elif msgType == "MineItemRefresh":
@@ -1014,7 +1014,7 @@
    __RefreshMineItemSpeed(mineItemData, True)
    
    SyncMineAreaItemInfo(areaPlayerID, [itemIndex], notifyPlayerIDListEx)
    return
    return True
def __DoCancelPull(playerID, areaPlayerID, itemIndex):
    ## 取消拉取
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py
@@ -188,6 +188,12 @@
        awardInfoList = dataMsg[0]
        __DoGiveMineAreaAward(curPlayer, awardInfoList)
            
    elif msgType == "Pull":
        areaPlayerID = dataMsg[0]
        if areaPlayerID == curPlayer.GetPlayerID():
            PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_MineItemSelf, 1)
        else:
            PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_MineItemRob, 1)
    return
def __DoGiveMineAreaAward(curPlayer, awardInfoList):
@@ -217,9 +223,6 @@
        
    if robCount:
        OnAddMineTreasureProgress(curPlayer, robCount, False)
        PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_MineItemRob, 1)
    else:
        PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_MineItemSelf, 1)
        
    SyncPlayerMineAreaInfo(curPlayer)
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
@@ -256,19 +256,19 @@
def __OnTaskFinish(curPlayer, taskGroup, taskID, taskIpyData):
    GameWorld.DebugLog("任务完成: taskGroup=%s,taskID=%s" % (taskGroup, taskID), curPlayer.GetPlayerID())
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TaskState % taskGroup, ChConfig.TaskState_Finish)
    GameFuncComm.DoFuncOpenLogic(curPlayer, [taskID])
    return
def IsTaskFinish(curPlayer, taskID):
    ## 任务是否已完成
    ## 任务是否已完成 - 规定领奖才算完成
    ipyData = IpyGameDataPY.GetIpyGameData("Task", taskID)
    if not ipyData:
        return
    taskGroup = ipyData.GetTaskGroup()
    nowTaskID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskID % taskGroup)
    if nowTaskID and curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskState % taskGroup) == ChConfig.TaskState_Finish:
        finishTaskID = nowTaskID
    else:
    #nowTaskID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskID % taskGroup)
    #if nowTaskID and curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskState % taskGroup) == ChConfig.TaskState_Finish:
    #    finishTaskID = nowTaskID
    #else:
    #    finishTaskID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskIDLast % taskGroup)
        finishTaskID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskIDLast % taskGroup)
        
    if taskID == finishTaskID:
@@ -310,6 +310,8 @@
        
    if not __giveNewTask(curPlayer, taskGroup):
        SyncTaskInfo(curPlayer, [taskGroup])
    GameFuncComm.DoFuncOpenLogic(curPlayer, [taskID])
    return
def SyncTaskInfo(curPlayer, taskGroupList=None):