hxp
2026-03-10 7030d1235dc9f730142506aadd66682a01857fed
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/GameFuncComm.py
@@ -29,9 +29,10 @@
import PlayerControl
import FunctionNPCCommon
import PlayerActBuyCountGift
import PlayerActLoginNew
import OpenServerActivity
import PlayerActTask
import ItemControler
import PlayerMingge
import PlayerTravel
import PlayerHorse
import PlayerArena
@@ -45,6 +46,12 @@
                     ShareDefine.GameFuncID_Shop:lambda curObj:FunctionNPCCommon.DoShopOpen(curObj),
                     ShareDefine.GameFuncID_Horse:lambda curObj:PlayerHorse.DoHorseOpen(curObj),
                     ShareDefine.GameFuncID_Travel:lambda curObj:PlayerTravel.DoTravelOpen(curObj),
                     ShareDefine.GameFuncID_Mingge:lambda curObj:PlayerMingge.DoMinggeOpen(curObj),
                     ShareDefine.GameFuncID_OSA_MainLevel:lambda curObj:OpenServerActivity.DoOSA_MainLevelOpen(curObj),
                     ShareDefine.GameFuncID_OSA_HeroCall:lambda curObj:OpenServerActivity.DoOSA_HeroCallOpen(curObj),
                     ShareDefine.GameFuncID_OSA_HeroTrain:lambda curObj:OpenServerActivity.DoOSA_HeroTrainOpen(curObj),
                     ShareDefine.GameFuncID_OSA_BeautyTrain:lambda curObj:OpenServerActivity.DoOSA_BeautyTrainOpen(curObj),
                     ShareDefine.GameFuncID_OSA_MinggeTrain:lambda curObj:OpenServerActivity.DoOSA_MinggeTrainOpen(curObj),
                     }
def GetFuncOpenLVIpyData(funcID): return IpyGameDataPY.GetIpyGameData("FuncOpenLV", funcID)
@@ -91,14 +98,14 @@
            continue
        
        limitManLevel = ipyData.GetLimitManLevel()
        if limitManLevel and limitManLevel < PlayerControl.GetMainLevelPassValue(curPlayer):
        if limitManLevel and PlayerControl.GetMainLevelPassValue(curPlayer) < limitManLevel:
            continue
        
        # 先更新值再处理开启逻辑,不能可能导致在功能开启逻辑中再开启功能引发的递归死循环
        befValue, updValue = GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_GameFuncFirstTouch, funcID, 1)
        if befValue == updValue:
            continue
        GameWorld.DebugLog("    功能开启:funcID=%s,befValue=%s(%s),updValue=%s(%s)"
        GameWorld.DebugLog("    功能开启: funcID=%s,befValue=%s(%s),updValue=%s(%s)"
                           % (funcID, befValue, str(bin(befValue)[2:]), updValue, str(bin(updValue)[2:])), curPlayer.GetPlayerID())
        
        if funcID in FuncOpenLogicDict:
@@ -112,7 +119,6 @@
    if openFuncIDList:
        Sync_FuncOpenState(curPlayer, openFuncIDList)
        PlayerActTask.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
        PlayerActLoginNew.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
        PlayerActBuyCountGift.OnCheckRelateFuncAct(curPlayer, openFuncIDList)
        
    return