xdh
2019-01-03 617faac5b9f3ee9e987718f2c613920742c67944
2811 【1.4.100】仙盟boss偶发可以额外进入一次
1个文件已修改
21 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyBoss.py 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
@@ -217,6 +218,8 @@
        __DoLogic_MapFighting(tick)
    elif fbStep == FB_Step_LeaveTime:
        __DoLogic_MapLeave(tick)
    elif fbStep == FB_Step_LeaveTime1:
        __DoLogic_MapLeave(tick)
    return
@@ -291,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
    
    # 时间到,踢出还在副本的玩家等...