From 985bdf70fd0022733f75bf2106e69c6de77c26b1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 28 十一月 2025 17:29:51 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(卑弥呼所有技能;技能表增加字段Buff保留-BuffRetain,支持死亡保留、复活保留;增加触发方式42-大回合开始时(死亡后有效);增加属性ID 73复活生命加成、74复活怒气加成;优化效果6014-支持失败次数额外概率;优化死亡、复活时的buff处理;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py | 30 +++++++++++++++++++++++-------
1 files changed, 23 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 e345976..556531d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldRush.py
@@ -21,9 +21,12 @@
import IpyGameDataPY
import ItemControler
import ChPyNetSendPack
+import PlayerActivity
import PlayerControl
import GameFuncComm
+import PlayerGubao
import ShareDefine
+import PlayerTask
import ObjPool
import time
@@ -184,6 +187,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 +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))
@@ -318,7 +316,21 @@
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)
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):
## 取消
@@ -401,6 +413,8 @@
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GoldRushWorkerState, workerState)
GameWorld.DebugLog("解锁淘金监工: workerID=%s,workerState=%s" % (workerID, workerState))
SyncGoldRushInfo(curPlayer)
+
+ PlayerTask.UpdTaskValue(curPlayer, ChConfig.TaskType_GoldRushWorkers)
return
#// B0 38 淘金仓库领奖 #tagCSGoldRushWarehouseAward
@@ -499,6 +513,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