From 9533849c079ffd9c3f1d8deea86620c1fcae40a3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 一月 2025 14:56:55 +0800
Subject: [PATCH] 10371 【越南】【英文】【BT】【砍树】所有寻宝类型都加上每日寻宝次数上限
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActGubao.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 55 insertions(+), 4 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActGubao.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActGubao.py
index 0c3030d..2c7442c 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActGubao.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerActGubao.py
@@ -26,6 +26,8 @@
import CrossBillboard
import PyDataManager
import CrossRealmMsg
+import GameXiangong
+import GameWorship
import GameWorld
def OnActStart(actNum, ipyData):
@@ -48,6 +50,20 @@
__OnEndAward(actNum, ipyData, dayIndex) # 兼容活动没有配置参与时间段的在活动结束补触发结算奖励
GameWorld.Log("=================================================================================")
+ return
+
+def OnActInStateRefresh(actNum, ipyData):
+ ## 活动中刷新,每次都需要刷新的逻辑,包含重读配置等
+ if not ipyData:
+ return
+ personalTemplateID = ipyData.GetPersonalTemplateID()
+ if not personalTemplateID:
+ return
+ orderRuleList = GetOrderRuleList(personalTemplateID)
+
+ billboardMgr = PlayerBillboard.GetBillboardMgr()
+ billboardObj = billboardMgr.GetBillboardObj(ShareDefine.Def_BT_GubaoScore)
+ billboardObj.SetOrderRuleList(orderRuleList)
return
def OnActJoinEnd(actNum, ipyData, dayIndex):
@@ -160,6 +176,8 @@
accID = curPlayer.GetAccID()
playerName = curPlayer.GetName()
job = curPlayer.GetJob()
+ face = curPlayer.GetFace()
+ facePic = curPlayer.GetFacePic()
realmLV = curPlayer.GetOfficialRank()
_, updScore, isRelationCrossAct = dataMsg
@@ -168,7 +186,7 @@
if isRelationCrossAct:
#同步跨服
playerInfo = {"playerID":playerID, "playerName":playerName, "accID":accID, "job":job, "realmLV":realmLV,
- "playerScore":updScore}
+ "playerScore":updScore, "face":face, "facePic":facePic}
SyncGubaoToCrossServer(curPlayer, playerInfo)
return
@@ -220,13 +238,15 @@
accID = playerInfo["accID"]
realmLV = playerInfo["realmLV"]
playerScore = playerInfo["playerScore"]
+ face = playerInfo.get("face", 0)
+ facePic = playerInfo.get("facePic", 0)
groupValue1 = zoneID
if playerScore >= personlLimit:
name2, type2, value1, value2 = accID, job, realmLV, 0
CrossBillboard.UpdCrossBillboard(ShareDefine.Def_CBT_GubaoScore, groupValue1, playerID, playerName,
- name2, type2, value1, value2, playerScore, autoSort=False)
+ name2, type2, value1, value2, playerScore, autoSort=False, value3=face, value4=facePic)
return
def OnCrossActIDChange(cfgID, zoneID, ipyData, state):
@@ -263,6 +283,28 @@
GameWorld.Log("=================================================================================")
return
+def OnCrossActInStateRefresh(cfgID, zoneID, ipyData):
+ ## 活动中刷新,每次都需要刷新的逻辑,包含重读配置等
+ if not ipyData:
+ return
+ PersonalTemplateID = ipyData.GetPersonalTemplateID()
+ orderRuleList = GetOrderRuleList(PersonalTemplateID)
+
+ groupValue1 = zoneID
+ billboardMgr = PyDataManager.GetCrossBillboardManager()
+ billboardObj = billboardMgr.GetCrossBillboard(ShareDefine.Def_CBT_GubaoScore, groupValue1)
+ billboardObj.SetOrderRuleList(orderRuleList)
+ return
+
+def GetOrderRuleList(templateID):
+ orderIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActGubaoBillTemp", templateID)
+ if not orderIpyDataList:
+ return
+ orderRuleList = []
+ for ipyData in orderIpyDataList:
+ orderRuleList.append([ipyData.GetRank(), ipyData.GetNeedScore()])
+ return orderRuleList
+
def OnCrossActJoinEnd(cfgID, zoneID, ipyData):
## 跨服活动参与结束
__OnCrossEndAward(cfgID, zoneID, ipyData)
@@ -280,12 +322,13 @@
GameWorld.Log("=== 跨服古宝养成活动发放榜单奖励! === cfgID=%s,zoneID=%s" % (cfgID, zoneID))
PersonalTemplateID = ipyData.GetPersonalTemplateID()
+ serverIDRangeList = ipyData.GetServerIDRangeList()
- __GiveCrossOrderAwardPersonal(cfgID, zoneID, PersonalTemplateID, ShareDefine.Def_CBT_GubaoScore)
+ __GiveCrossOrderAwardPersonal(cfgID, zoneID, PersonalTemplateID, ShareDefine.Def_CBT_GubaoScore, serverIDRangeList)
GameWorld.Log("=================================================================================")
return
-def __GiveCrossOrderAwardPersonal(cfgID, zoneID, templateID, billboardType):
+def __GiveCrossOrderAwardPersonal(cfgID, zoneID, templateID, billboardType, serverIDRangeList):
groupValue1 = zoneID
billboardMgr = PyDataManager.GetCrossBillboardManager()
@@ -306,6 +349,9 @@
if not orderIpyDataList:
return
+ worshipType = ShareDefine.Def_WorshipType_CrossGubaoTrain
+ syncNewWorshipList = []
+ syncNewXiangongDict = {}
rankPre = 0
billboardIndex = 0
for ipyData in orderIpyDataList:
@@ -315,6 +361,7 @@
scoreAwardExList = scoreAwardEx.keys()
scoreAwardExList.sort()
awardItemList = ipyData.GetAwardItemList()
+ xiangongID = ipyData.GetXiangongID()
orderCountTotal = rank - rankPre # 奖励名次数量
rankPre = rank
@@ -345,5 +392,9 @@
orderCountTotal -= 1
billboardIndex += 1
+ GameXiangong.AddXiangongPlayer(xiangongID, playerID, serverIDRangeList, playerRank, syncNewXiangongDict)
+ GameWorship.AddWorshipPlayer(worshipType, playerRank, playerID, serverIDRangeList, syncList=syncNewWorshipList)
+ GameWorship.SendNewWorshipPlayer(syncNewWorshipList)
+ GameXiangong.SendNewXiangongPlayerToClientServer(syncNewXiangongDict)
return
--
Gitblit v1.8.0