From c63ffd10aecb12b2e09dae603cf9a0f824f6482c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 十二月 2025 15:46:15 +0800
Subject: [PATCH] 16 卡牌服务端(合成目标物品与材料物品不在同一背包时支持合成;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
index 897d3b8..57af109 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
@@ -20,10 +20,14 @@
 import NetPackCommon
 import IpyGameDataPY
 import ItemControler
+import PlayerSuccess
 import ChPyNetSendPack
+import PlayerActivity
 import PlayerControl
 import GameFuncComm
+import PlayerGubao
 import ShareDefine
+import PlayerTask
 import ObjPool
 
 import time
@@ -267,13 +271,7 @@
             if campID != cID:
                 atWorkCnt += wCnt
             
-    workersTotal = 0 # 总工人数
-    workerState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldRushWorkerState)
-    for index in range(ipyDataMgr.GetGoldRushWorkerCount()):
-        ipyData = ipyDataMgr.GetGoldRushWorkerByIndex(index)
-        workerID = ipyData.GetWorkerID()
-        if workerState & pow(2, workerID):
-            workersTotal += 1
+    workersTotal = GetWorkerTotal(curPlayer) # 总工人数
     idleWorkers = workersTotal - atWorkCnt # 空闲工人数
     if idleWorkers <= 0:
         GameWorld.DebugLog("没有空闲工人,无法开始淘金! atWorkCnt=%s >= %s" % (atWorkCnt, workersTotal))
@@ -319,7 +317,22 @@
     campInfo = SetCampInfo(curPlayer, campID, refreshCnt, goldID, updWorkerCnt)
     GameWorld.DebugLog("    updWorkerCnt=%s,realNeedSeconds=%s,endTime=%s,campInfo=%s" 
                        % (updWorkerCnt, realNeedSeconds, GameWorld.ChangeTimeNumToStr(endTime), campInfo))
+    
+    PlayerTask.AddTaskValue(curPlayer, ChConfig.TaskType_GoldRush, 1)
+    PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_OSAGoldRush, 1)
     return
+
+def GetWorkerTotal(curPlayer):
+    ## 获取监工总数
+    workersTotal = 0 # 总工人数
+    ipyDataMgr = IpyGameDataPY.IPY_Data()
+    workerState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldRushWorkerState)
+    for index in range(ipyDataMgr.GetGoldRushWorkerCount()):
+        ipyData = ipyDataMgr.GetGoldRushWorkerByIndex(index)
+        workerID = ipyData.GetWorkerID()
+        if workerState & pow(2, workerID):
+            workersTotal += 1
+    return workersTotal
 
 def __onGoldRushCancel(curPlayer, campID):
     ## 取消
@@ -402,6 +415,10 @@
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GoldRushWorkerState, workerState)
     GameWorld.DebugLog("解锁淘金监工: workerID=%s,workerState=%s" % (workerID, workerState))
     SyncGoldRushInfo(curPlayer)
+    
+    PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_GoldRushWorkers)
+    workersTotal = GetWorkerTotal(curPlayer)
+    PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_OSAGoldRushWorkers, workersTotal)
     return
 
 #// B0 38 淘金仓库领奖 #tagCSGoldRushWarehouseAward
@@ -500,6 +517,8 @@
         SetCampInfo(curPlayer, campID, 0, 0, 0, False)
         syncCampIDList.append(campID)
         GameWorld.DebugLog("淘金结束: campID=%s,goldID=%s,放入淘金仓库index=%s,panningCnt=%s" % (campID, goldID, index, panningCnt))
+        PlayerGubao.AddGubaoSpecEffLayer(curPlayer, PlayerGubao.GubaoEffType_GoldRush, 1)
+        PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_GoldRush, 1)
         
     if not syncCampIDList:
         return

--
Gitblit v1.8.0