hxp
2026-03-10 7030d1235dc9f730142506aadd66682a01857fed
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
@@ -484,21 +485,14 @@
        
        # 排除的服务器组ID列表
        if serverIDListExcept:
            isExcept = False
            for serverIDInfo in serverIDListExcept:
                if GameWorld.CheckServerIDInList(serverID, serverIDInfo):
                    isExcept = True
                    break
            if isExcept:
            if GameWorld.CheckServerIDInList(serverID, serverIDListExcept):
                continue
            
        if not serverIDList:
            curServerActIpyDataList.append(ipyData)
        else:
            for serverIDInfo in serverIDList:
                if GameWorld.CheckServerIDInList(serverID, serverIDInfo):
                    curServerActIpyDataList.append(ipyData)
                    break
            if GameWorld.CheckServerIDInList(serverID, serverIDList):
                curServerActIpyDataList.append(ipyData)
                
    return curServerActIpyDataList
@@ -708,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:
@@ -729,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:
@@ -776,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