From 9e6207bd55a334561f1640ec109aa3481bcaa0f8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 18 三月 2026 19:17:31 +0800
Subject: [PATCH] 526 【挑战】PVP群英榜-后端(功能开启时补充挑战令到满,溢出不补;优化自身名次与上次匹配时的名次不同时强制重刷匹配;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldAction.py |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldAction.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldAction.py
index e3f212d..c0ce69b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldAction.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldAction.py
@@ -19,6 +19,7 @@
 import DBDataMgr
 import ShareDefine
 import PlayerActLunhuidian
+import PlayerActHeroAppear
 import IpyGameDataPY
 import PlayerControl
 import PyGameData
@@ -701,11 +702,16 @@
             dbOperationActIDKey = ShareDefine.Def_OperationActID % (actName, actNum)
             dbActID = dbEventMgr.GetValue(dbOperationActIDKey)
             
+            dbOperationActCfgIDKey = ShareDefine.Def_OperationActCfgID % (actName, actNum)
+            dbActCfgID = dbEventMgr.GetValue(dbOperationActCfgIDKey)
+            
             curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID, 0)
+            curCfgID = sendMapServerMsgDict.get(ShareDefine.ActKey_CfgID, 0)
             #dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
             if dbActID != curActID:
-                GameWorld.Log("    dbActID变更: dbActID=%s,curActID=%s" % (dbActID, curActID))
+                GameWorld.Log("    dbActID变更: dbActID=%s,curActID=%s,dbActCfgID=%s,curCfgID=%s" % (dbActID, curActID, dbActCfgID, curCfgID))
                 dbEventMgr.SetValue(dbOperationActIDKey, curActID)
+                dbEventMgr.SetValue(dbOperationActCfgIDKey, curCfgID)
                 
                 # 结束旧的
                 if dbActID:
@@ -722,15 +728,17 @@
                 #else:
                 #    if actName == ShareDefine.OperationActionName_GarbageSorting:
                 #        PlayerActGarbageSorting.OnActEnd(actNum)
-                        
+                
+                if actName == ShareDefine.OperationActionName_HeroAppear:
+                    PlayerActHeroAppear.OnActIDChange(actNum, ipyData, state, dbActCfgID)
+                    
             else:
-                GameWorld.Log("    dbActID不变: dbActID=%s,curActID=%s" % (dbActID, curActID))
+                GameWorld.Log("    dbActID不变: dbActID=%s,curActID=%s,dbActCfgID=%s" % (dbActID, curActID, dbActCfgID))
                 
             # 活动中刷新,每次都需要刷新的逻辑,包含重读配置等
             if state:
-                pass
-                #if actName == ShareDefine.OperationActionName_Gubao:
-                #    PlayerActGubao.OnActInStateRefresh(actNum, ipyData)
+                if actName == ShareDefine.OperationActionName_HeroAppear:
+                    PlayerActHeroAppear.OnActInStateRefresh(actNum, ipyData)
                     
             # 仅活动有配置参与时间段的会触发
             if curActID and dbActID == curActID and preStateJoin != stateJoin:
@@ -769,6 +777,8 @@
     GameWorld.Log("OperationActionRefresh: %s,actNum=%s,%s" % (actName, actNum, actInfo))
     if actName == ShareDefine.OperationActionName_Lunhuidian:
         PlayerActLunhuidian.RefreshActLunhuidianActionInfo(actNum)
+    elif actName == ShareDefine.OperationActionName_HeroAppear:
+        PlayerActHeroAppear.RefreshActHeroAppearActionInfo(actNum)
         
     return
 

--
Gitblit v1.8.0