hxp
2025-11-24 3861b284c63fd8ba519c71e386a8f49dcad26dab
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
@@ -21,8 +21,10 @@
import IpyGameDataPY
import ItemControler
import ChPyNetSendPack
import PlayerActivity
import PlayerControl
import GameFuncComm
import PlayerGubao
import ShareDefine
import ObjPool
@@ -184,6 +186,7 @@
    if passSeconds < cdSeconds:
        return
    recoverCnt = passSeconds / cdSeconds
    recoverCnt = min(recoverCnt, maxEnergy - curEnergy)
    updRecoverTime = curTime - passSeconds % cdSeconds
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GoldRushRecoverTime, updRecoverTime)
    GameWorld.DebugLog("恢复淘金令: %s,passSeconds=%s,上次恢复:%s" % (recoverCnt, passSeconds, GameWorld.ChangeTimeNumToStr(lastRecoverTime)))
@@ -266,13 +269,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,6 +316,18 @@
    GameWorld.DebugLog("    updWorkerCnt=%s,realNeedSeconds=%s,endTime=%s,campInfo=%s" 
                       % (updWorkerCnt, realNeedSeconds, GameWorld.ChangeTimeNumToStr(endTime), campInfo))
    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):
    ## 取消
@@ -499,6 +508,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