hxp
2019-04-28 ef0307df448a1187d0caecc03121bec88d4d2cad
3406 【2.0】妖王副本生存时间到后boss未击杀,无法再次进入。
1个文件已修改
14 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
@@ -77,8 +77,7 @@
    #调用副本开启触发器
    FBLogic.OnOpenFB(tick)
    
    if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
        GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
    return
## 副本关闭
@@ -178,14 +177,16 @@
    #根据是否收缩型FB处理
    FreeOrClearFBByAutoSize(gameWorld)
    
    if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
        GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
        
    gameWorld.SetPropertyID(0)
    PyGameData.g_crossPlayerServerGroupIDInfo.pop(copyMapID, None)
    return
def GameServer_DynamicLineMapStateChange(gameWorld, state):
    if gameWorld.GetMapID() not in ChConfig.Def_CrossDynamicLineMap:
        return
    realMapID, copyMapID = gameWorld.GetRealMapID(), gameWorld.GetCopyMapID()
    if state == IPY_GameWorld.fbosWaitForClose:
        crossFuncLineDataCache = FBLogic.OnGetCrossFuncLineDataCache()
@@ -195,6 +196,7 @@
        
    msgInfo = str(msgInfo)
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "DynamicLineMapStateChange", msgInfo, len(msgInfo))
    GameWorld.Log("DynamicLineMapStateChange realMapID=%s, copyMapID=%s, PropertyID=%s, state=%s" % (realMapID, copyMapID, gameWorld.GetPropertyID(), state))
    return
##根据表中的收缩类型释放或者清空副本状态
@@ -276,6 +278,7 @@
    
    ##踢人
    __KickAllPlayerAndCloseFB(gameWorld, tick)
    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
    return
## 副本踢出玩家逻辑
@@ -632,8 +635,7 @@
    GameWorld.GetGameWorld().SetCloseFBTick(tick)
    
    gameWorld = GameWorld.GetGameWorld()
    if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
        GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosWaitForClose)
    GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosWaitForClose)
    return
## 玩家离开地图时,尝试关闭副本