| | |
| | | #调用副本开启触发器
|
| | | FBLogic.OnOpenFB(tick)
|
| | |
|
| | | if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
|
| | | GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
|
| | | GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
|
| | | return
|
| | |
|
| | | ## 副本关闭
|
| | |
| | | #根据是否收缩型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()
|
| | |
| | |
|
| | | 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
|
| | |
|
| | | ##根据表中的收缩类型释放或者清空副本状态
|
| | |
| | |
|
| | | ##踢人
|
| | | __KickAllPlayerAndCloseFB(gameWorld, tick)
|
| | | GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
|
| | | return
|
| | |
|
| | | ## 副本踢出玩家逻辑
|
| | |
| | | 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
|
| | |
|
| | | ## 玩家离开地图时,尝试关闭副本
|