From 40f2e314ff6df3d45e643419c6f155bb665b78dc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 14 九月 2024 13:34:19 +0800
Subject: [PATCH] 10249 【越南】【砍树】【英文】仙宫(增加获得气运提示;)

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
index 59cef49..e03977e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldMineArea.py
@@ -436,7 +436,7 @@
     robWorkerCount = mineItemData.RobWorkerCount
     if not curWorkerCount and not robWorkerCount:
         return curPos
-    moveSpeed = getattr(mineItemData, MineItemAttr_MoveSpeed)
+    moveSpeed = getattr(mineItemData, MineItemAttr_MoveSpeed, 0)
     if not moveSpeed:
         return curPos
     passSeconds = curTime - mineItemData.UpdTime
@@ -530,6 +530,9 @@
         battleRatio = workerBattleRatioList[len(workerBattleRatioList) - 1] if batWorkerCount > len(workerBattleRatioList) else workerBattleRatioList[batWorkerCount - 1]
         
     needSeconds = int(dist * itemWeight * baseTime * workRatio * battleRatio) # 还需工作时长,秒
+    if needSeconds <= 0:
+        return 0, 0
+    
     moveSpeed = dist / float(needSeconds) # 移动速度  x格/秒
     needHms = "%02d:%02d:%02d" % (needSeconds / 3600, needSeconds % 3600 / 60, needSeconds % 60)
     
@@ -556,7 +559,7 @@
     GameWorld.Log("福地系统定时刷新! %s" % str(curHourMinute))
     mineItemMgr = PyDataManager.GetDBPyMineAreaItemManager()
     for playerID in mineItemMgr.playerMineItemDict.keys():
-        __DoMineItemRefresh(playerID, isSuper=True)
+        __DoMineItemRefresh(playerID, isSys=True)
     return
 
 def OnMineItemTimeProcess(curTime, tick):
@@ -633,7 +636,7 @@
     while doCount > 0 and allMineItemByEndTimeList:
         doCount -= 1
         mineItemData = allMineItemByEndTimeList[index]
-        endTime = getattr(mineItemData, MineItemAttr_EndTime)
+        endTime = getattr(mineItemData, MineItemAttr_EndTime, 0)
         if curTime < endTime:
             break
         
@@ -837,7 +840,7 @@
         return
     
     tick = GameWorld.GetGameWorld().GetTick()
-    helpTick = getattr(mineItemData, MineItemAttr_HelpTick)
+    helpTick = getattr(mineItemData, MineItemAttr_HelpTick, 0)
     if helpTick and tick - helpTick < 10000:
         GameWorld.DebugLog("已经有其他人在帮助中!", playerID)
         return
@@ -901,7 +904,7 @@
     
     # 拉物品
     if msgType == "Pull":
-        __DoPullItem(playerID, curPlayer, dataMsg)
+        ret = __DoPullItem(playerID, curPlayer, dataMsg)
 
     # 刷新福地物品
     elif msgType == "MineItemRefresh":
@@ -1014,7 +1017,7 @@
     __RefreshMineItemSpeed(mineItemData, True)
     
     SyncMineAreaItemInfo(areaPlayerID, [itemIndex], notifyPlayerIDListEx)
-    return
+    return True
 
 def __DoCancelPull(playerID, areaPlayerID, itemIndex):
     ## 取消拉取
@@ -1361,9 +1364,9 @@
             mineItem.UpdTime = mineItemData.UpdTime
             mineItem.Position = mineItemData.Position
             mineItem.PosLen = len(mineItem.Position)
-            mineItem.MoveSpeed = "%s" % getattr(mineItemData, MineItemAttr_MoveSpeed)
+            mineItem.MoveSpeed = "%s" % getattr(mineItemData, MineItemAttr_MoveSpeed, 0)
             mineItem.SpeedLen = len(mineItem.MoveSpeed)
-            mineItem.EndTime = getattr(mineItemData, MineItemAttr_EndTime)
+            mineItem.EndTime = getattr(mineItemData, MineItemAttr_EndTime, 0)
             mineItem.WorkerCount = mineItemData.WorkerCount
             mineItem.RobPlayerID = mineItemData.RobPlayerID
             mineItem.RobWorkerCount = mineItemData.RobWorkerCount

--
Gitblit v1.8.0