hxp
2019-01-03 67449627d6db97ca0cbe2c910a261bd253c3094d
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyBoss.py
@@ -36,9 +36,10 @@
FB_Step_Open, # 地图开启
FB_Step_MapPrepare, # 地图准备
FB_Step_Fighting, # 战斗中
FB_Step_LeaveTime, # 自由时间
FB_Step_LeaveTime, # 自由时间(还可进入)
FB_Step_LeaveTime1, # 自由时间(不可进入)
FB_Step_Over, # 副本关闭
) = range(5)
) = range(6)
#---战盟副本---
FamilyBossFB_Star = 'FamilyBossFB_Star' #评级
@@ -103,8 +104,8 @@
    # 通知GameServer副本结束
    gameFB = GameWorld.GetGameFB()
    familyID = gameFB.GetGameFBDictByKey(Map_FamilyBossFB_FamilyID)
    msgStr = str([familyID, 0])
    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'FamilyBossFBState', msgStr, len(msgStr))
#    msgStr = str([familyID, 0])
#    GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'FamilyBossFBState', msgStr, len(msgStr))
    
    if familyID in PyGameData.g_familyBossOpenCountDict:
        PyGameData.g_familyBossOpenCountDict.pop(familyID)
@@ -195,7 +196,9 @@
        notifyTick = max(familyBossFBCfg[Def_Time_Fight] * 1000 - (tick - gameFB.GetFBStepTick()), 0)
        curPlayer.Sync_TimeTick(IPY_GameWorld.tttTowerTake, 0, notifyTick, True)
        __UpdFamilyBossFBStar(tick, True, curPlayer)
    elif fbStep == FB_Step_LeaveTime:
        notifyTick = max(familyBossFBCfg[Def_Time_Leave] * 1000 - (tick - gameFB.GetFBStepTick()), 0)
        curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, notifyTick, True)
    DoFBHelp(curPlayer, tick)
    
    AddFamilyBossPlayer(curPlayer)
@@ -214,6 +217,8 @@
    elif fbStep == FB_Step_Fighting:
        __DoLogic_MapFighting(tick)
    elif fbStep == FB_Step_LeaveTime:
        __DoLogic_MapLeave(tick)
    elif fbStep == FB_Step_LeaveTime1:
        __DoLogic_MapLeave(tick)
    return
@@ -289,8 +294,16 @@
    return
def __DoLogic_MapLeave(tick):
    gameFB = GameWorld.GetGameFB()
    invadeCfg = GetFamilyBossFBTimeCfg()
    if tick - GameWorld.GetGameFB().GetFBStepTick() < invadeCfg[Def_Time_Leave] * 1000:
    remianTime = invadeCfg[Def_Time_Leave] * 1000 - (tick - GameWorld.GetGameFB().GetFBStepTick())
    if remianTime > 0:
        fbStep = gameFB.GetFBStep()
        if remianTime < 5000 and fbStep == FB_Step_LeaveTime:
            gameFB.SetFBStep(FB_Step_LeaveTime1)
            familyID = gameFB.GetGameFBDictByKey(Map_FamilyBossFB_FamilyID)
            msgStr = str([familyID, 0])
            GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'FamilyBossFBState', msgStr, len(msgStr))
        return
    
    # 时间到,踢出还在副本的玩家等...