From a075f7841fb2d0a3b32bf10c8bc2df5bf02d6acb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 14 十二月 2025 14:24:28 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(贾诩所有技能;5022效果支持配置buff额外属性计算方式;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py |   41 +++++++++++++++++++++++++++++------------
 1 files changed, 29 insertions(+), 12 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..6861b51 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
@@ -20,11 +20,14 @@
 import NetPackCommon
 import IpyGameDataPY
 import ItemControler
+import PlayerSuccess
 import ChPyNetSendPack
+import PlayerActivity
 import PlayerControl
 import GameFuncComm
+import PlayerGubao
 import ShareDefine
-import ObjPool
+import PlayerTask
 
 import time
 import math
@@ -267,13 +270,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 +316,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 +414,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 +516,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
@@ -592,7 +610,7 @@
     return
 
 def SyncGoldRushInfo(curPlayer):
-    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCGoldRushInfo)
+    clientPack = ChPyNetSendPack.tagSCGoldRushInfo()
     clientPack.CampState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldRushCampState)
     clientPack.WorkerState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldRushWorkerState)
     clientPack.PanningCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GoldRushCnt)
@@ -607,7 +625,6 @@
     return
 
 def SyncGoldCampInfo(curPlayer, syncCampIDList=None):
-    poolMgr = ObjPool.GetPoolMgr()
     campList = []
     ipyDataMgr = IpyGameDataPY.IPY_Data()
     for index in range(ipyDataMgr.GetGoldRushCampCount()):
@@ -616,7 +633,7 @@
         if syncCampIDList and campID not in syncCampIDList:
             continue
         refreshCnt, goldID, workerCnt = GetCampInfo(curPlayer, campID)
-        camp = poolMgr.acquire(ChPyNetSendPack.tagSCGoldRushCamp)
+        camp = ChPyNetSendPack.tagSCGoldRushCamp()
         camp.CampID = campID
         camp.GoldID = goldID
         camp.RefreshCnt = refreshCnt
@@ -625,7 +642,7 @@
         campList.append(camp)
     if not campList:
         return
-    clientPack = poolMgr.acquire(ChPyNetSendPack.tagSCGoldRushCampInfo)
+    clientPack = ChPyNetSendPack.tagSCGoldRushCampInfo()
     clientPack.CampList = campList
     clientPack.CampCnt = len(clientPack.CampList)
     NetPackCommon.SendFakePack(curPlayer, clientPack)

--
Gitblit v1.8.0