From faeca70d5c95ccb4744931a176f671c7836b1a72 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 10 五月 2024 17:25:06 +0800
Subject: [PATCH] 10054 【后端】任务系统(是否完成任务改为领取完奖励才算;福地采集任务类型增加进度改为开始采集就算;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py     |   18 ++++++++++--------
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py           |    4 ++--
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py |   11 +++++++----
 3 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
index 59cef49..4d4b839 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
+++ b/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):
     ## 取消拉取
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py
index 9b53359..dc9e161 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerMineArea.py
@@ -187,7 +187,13 @@
     if msgType == "MineAreaAwardGet":
         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)
     
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
index e0241f6..5d352a8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
@@ -256,21 +256,21 @@
 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:
-        finishTaskID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TaskIDLast % taskGroup)
-        
+    #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:
         return True
     
@@ -310,6 +310,8 @@
         
     if not __giveNewTask(curPlayer, taskGroup):
         SyncTaskInfo(curPlayer, [taskGroup])
+        
+    GameFuncComm.DoFuncOpenLogic(curPlayer, [taskID])
     return
 
 def SyncTaskInfo(curPlayer, taskGroupList=None):

--
Gitblit v1.8.0