hch
2019-04-03 f5dde47094e426c534c219d784efdb93cc8ac1fb
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_AllFamilyBoss.py
@@ -44,7 +44,8 @@
(
    Def_BossTime,  #BOSS时间
    Def_LeaveTime,  #离开时间
    ) = range(2)
    Def_HPSpeed,  #掉血速度公式
    ) = range(3)
#当前副本地图的状态
(
@@ -158,9 +159,9 @@
            FBCommon.SetFBStep(FB_Step_Fighting, tick)
        EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_AllFamilyBoss, 0, ChConfig.CME_Log_Start)
        if fbStep >= FB_Step_Over:
            PlayerControl.PlayerLeaveFB(curPlayer)
            return
    if fbStep >= FB_Step_Over:
        PlayerControl.PlayerLeaveFB(curPlayer)
        return
    if familyID not in PyGameData.g_allfamilyBossDict:
        PyGameData.g_allfamilyBossDict[familyID] = [curPlayer.GetFamilyName(), 0, [playerID]]
@@ -441,8 +442,8 @@
            curPlayer = playerManager.GetPlayerByIndex(index)
            if not curPlayer:
                continue
            member.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
            FBCommon.NotifyFBOver(member, ChConfig.Def_FBMapID_AllFamilyBoss, lineID, isPass)
            curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
            FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_AllFamilyBoss, lineID, isPass)
  
    return
@@ -450,6 +451,7 @@
def __GetFamilyBossAward(rank, worldLV):
    familyAuctionItemList, menberItemList = [], []
    awardRateList = []
    awardPieRateDict = {}
    ipyMgr = IpyGameDataPY.IPY_Data()
    for i in xrange(ipyMgr.GetFamilyBossAwardCount()):
        ipyData = ipyMgr.GetFamilyBossAwardByIndex(i)
@@ -459,8 +461,9 @@
        rankList = ipyData.GetRank()
        if rank < rankList[0] or rank > rankList[1]:
            continue
        awardRateList = ipyData.GetAward()
    if not awardRateList:
        awardRateList = ipyData.GetAward1()
        awardPieRateDict = ipyData.GetAward2()
    if not awardRateList and not awardPieRateDict:
        GameWorld.ErrLog('仙盟Boss奖励表 未配置该奖励 rank=%s,worldLV=%s' % (rank, worldLV))
        return familyAuctionItemList, menberItemList
    for rate, itemInfo in awardRateList:
@@ -473,6 +476,16 @@
            familyAuctionItemList.append(itemInfo)
        else:
            menberItemList.append(itemInfo)
    for doCnt, awardPieRateList in awardPieRateDict.items():
        for _ in xrange(doCnt):
            resultItem = GameWorld.GetResultByRandomList(awardPieRateList)
            if len(resultItem) != 3:
                GameWorld.ErrLog('仙盟Boss奖励表配置错误 itemInfo=%s' % resultItem)
                continue
            if resultItem[2]:
                familyAuctionItemList.append(resultItem)
            else:
                menberItemList.append(resultItem)
    
    return familyAuctionItemList, menberItemList
@@ -518,8 +531,9 @@
    lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
    if lineID < 0:
        return
    curSpeed = int(min(1 + 0.08 * (playerCnt - 1), 1.8) * 1000)
    curSpeed = eval(FBCommon.GetFBLineStepTime(ChConfig.Def_FBMapID_AllFamilyBoss, lineID)[Def_HPSpeed])
    gameWorld.SetGameWorldDict(FBDict_Speed, curSpeed)
    if not gameWorld.GetGameWorldDictByKey(FBDict_IsReduceing):
        return