|  |  |  | 
|---|
|  |  |  | lineID = FBCommon.GetFBPropertyMark() | 
|---|
|  |  |  | star = GameWorld.GetGameFB().GetGameFBDictByKey(FBPlayerDict_FBStar) | 
|---|
|  |  |  | mapID = ChConfig.Def_FBMapID_IceLode | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isInFBOnDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IceLodeIsInFBOnDay) | 
|---|
|  |  |  | #更新星级 | 
|---|
|  |  |  | lastStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID]) | 
|---|
|  |  |  | if isPass and star > lastStar: | 
|---|
|  |  |  | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, star, False, [mapID]) | 
|---|
|  |  |  | FBCommon.Sync_FBPlayerFBInfoData(curPlayer, mapID) # 同步信息 | 
|---|
|  |  |  | if not lastStar: #每日活动 | 
|---|
|  |  |  | if not lastStar and not isInFBOnDay: #每日活动 | 
|---|
|  |  |  | PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_IceLode) | 
|---|
|  |  |  | isInFBOnDay = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_IceLodeIsInFBOnDay) | 
|---|
|  |  |  | if isInFBOnDay: #在副本里过天,副本结束后再补发奖励 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if isInFBOnDay: #在副本里过天,副本结束后再补发星级奖励 | 
|---|
|  |  |  | CheckIceLodeStarAwardMail(curPlayer) | 
|---|
|  |  |  | #    exp = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_TotalExp) | 
|---|
|  |  |  | #    expPoint = gameFB.GetPlayerGameFBDictByKey(playerID, FBPlayerDict_TotalExpPoint) | 
|---|
|  |  |  | 
|---|
|  |  |  | if not costTime: | 
|---|
|  |  |  | costTime = tick - GameWorld.GetGameFB().GetFBStepTick() | 
|---|
|  |  |  | #jsonItemList = PyGameData.g_fbPickUpItemDict.get(playerID, []) | 
|---|
|  |  |  | jsonItemList = FBCommon.GetJsonItemList(FBCommon.GetFBLineReward(mapID, lineID)) | 
|---|
|  |  |  | overDict = {FBCommon.Over_isPass:int(isPass), FBCommon.Over_costTime:costTime} | 
|---|
|  |  |  | if isPass: | 
|---|
|  |  |  | itemList = FBCommon.GetFBLineReward(mapID, lineID) | 
|---|
|  |  |  | # 给物品 | 
|---|
|  |  |  | needSpace = len(itemList) | 
|---|
|  |  |  | packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace) | 
|---|
|  |  |  | if needSpace > packSpace: | 
|---|
|  |  |  | PlayerControl.SendMailByKey('', [curPlayer.GetID()], itemList) | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | for itemID, itemCount, isBind in itemList: | 
|---|
|  |  |  | ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | jsonItemList = FBCommon.GetJsonItemList(itemList) | 
|---|
|  |  |  | overDict[FBCommon.Over_itemInfo] = jsonItemList | 
|---|
|  |  |  | # 通知结果 | 
|---|
|  |  |  | __SendIceLodeOverInfo(curPlayer, {FBCommon.Over_isPass:int(isPass), FBCommon.Over_costTime:costTime, FBCommon.Over_itemInfo:jsonItemList}) | 
|---|
|  |  |  | __SendIceLodeOverInfo(curPlayer, overDict) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 进入离开阶段 | 
|---|
|  |  |  | FBCommon.SetFBStep(FB_Step_Over, tick) | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ## 可否扫荡 | 
|---|
|  |  |  | def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, sweepCnt, isFinish, dataEx): | 
|---|
|  |  |  | if curPlayer.GetMapID() == ChConfig.Def_FBMapID_IceLode: | 
|---|
|  |  |  | GameWorld.DebugLog('冰晶矿脉扫荡  副本里不能扫荡 ') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | #战力判断 | 
|---|
|  |  |  | LVIpyData = PlayerControl.GetPlayerLVIpyData(curPlayer.GetLV()) | 
|---|
|  |  |  | reFightPower = 0 if not LVIpyData else LVIpyData.GetIceLodeFightPower() # 当前等级参考战力 | 
|---|
|  |  |  | 
|---|
|  |  |  | for itemID, itemCnt, isBind in itemList: | 
|---|
|  |  |  | ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [IPY_GameWorld.rptItem]) | 
|---|
|  |  |  | #直接将5条线星级改为3星 | 
|---|
|  |  |  | addCnt = 0 | 
|---|
|  |  |  | starCnt, lineList = GetIceLodeAllStarCnt(curPlayer) | 
|---|
|  |  |  | for lineid in lineList: | 
|---|
|  |  |  | curStar = GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineID, False, [mapID]) | 
|---|
|  |  |  | if curStar == 0: | 
|---|
|  |  |  | addCnt += 1 | 
|---|
|  |  |  | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, lineid, 3, False, [mapID]) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_IceLode, addCnt) | 
|---|
|  |  |  | FBCommon.Sync_FBPlayerFBInfoData(curPlayer, mapID) # 同步信息 | 
|---|
|  |  |  | #    npcCountDict = {} | 
|---|
|  |  |  | #    iceLodeSweepDict = IpyGameDataPY.GetFuncEvalCfg('IceLodeSweep') | 
|---|
|  |  |  | #    for npcID, count in iceLodeSweepDict.items(): | 
|---|
|  |  |  | 
|---|
|  |  |  | maxCnt, randomCnt = IpyGameDataPY.GetFuncEvalCfg('IceLodeCfg', 2) | 
|---|
|  |  |  | for i in xrange(maxCnt): | 
|---|
|  |  |  | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_PlayerFBStar_MapId, i, 0, False, [ChConfig.Def_FBMapID_IceLode]) | 
|---|
|  |  |  | FBCommon.Sync_FBPlayerFBInfoData(curPlayer, ChConfig.Def_FBMapID_IceLode) # 同步信息 | 
|---|
|  |  |  | #重置领奖记录 | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeStarAwardRecord, 0) | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_IceLodeHasSweep, 0) | 
|---|
|  |  |  | #随机今日玩法 | 
|---|
|  |  |  | __RandomLine(curPlayer) | 
|---|
|  |  |  | #֪ͨ | 
|---|