| | |
| | | (
|
| | | Def_BossTime, #BOSS时间
|
| | | Def_LeaveTime, #离开时间
|
| | | ) = range(2)
|
| | | Def_HPSpeed, #掉血速度公式
|
| | | ) = range(3)
|
| | |
|
| | | #当前副本地图的状态
|
| | | (
|
| | |
| | | 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]]
|
| | |
| | | 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
|
| | |
|
| | |
| | | def __GetFamilyBossAward(rank, worldLV):
|
| | | familyAuctionItemList, menberItemList = [], []
|
| | | awardRateList = []
|
| | | awardPieRateDict = {}
|
| | | ipyMgr = IpyGameDataPY.IPY_Data()
|
| | | for i in xrange(ipyMgr.GetFamilyBossAwardCount()):
|
| | | ipyData = ipyMgr.GetFamilyBossAwardByIndex(i)
|
| | |
| | | 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:
|
| | |
| | | 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
|
| | |
|
| | |
| | | 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
|