|  |  | 
 |  |  |     else:
 | 
 |  |  |         return
 | 
 |  |  |     DoFBHelp(curPlayer, tick)
 | 
 |  |  |     curPlayer.SetFaction(ShareDefine.CampType_Justice)
 | 
 |  |  |     return
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |         guardDict[npcid] = gameFB.GetGameFBDictByKey(FBPlayerDict_GuardNPCCnt%npcid)
 | 
 |  |  |     hasRefreshBoss = gameFB.GetGameFBDictByKey(FBPlayerDict_HasRefreshBoss)
 | 
 |  |  |     isAutoBoss = gameFB.GetGameFBDictByKey(FBPlayerDict_AutoBoss)
 | 
 |  |  | 
 | 
 |  |  |     itemDict = PyGameData.g_gathersoulfbAwardDict.get(curPlayer.GetID(), {})
 | 
 |  |  |     lineID = GameWorld.GetGameWorld().GetLineID()
 | 
 |  |  |     itemDict = PyGameData.g_gathersoulfbAwardDict.get(lineID, {})
 | 
 |  |  |     helpItemInfo = {}
 | 
 |  |  |     for wheel, itemList in itemDict.items():
 | 
 |  |  |         helpItemInfo[str(wheel)] = FBCommon.GetJsonItemList(itemList)
 | 
 |  |  | 
 |  |  |     ##掉落奖励 {wheel:[[itemid,itemCnt,isBind]]}
 | 
 |  |  |     gameFB = GameWorld.GetGameFB()
 | 
 |  |  |     curWheel = gameFB.GetGameFBDictByKey(FBPlayerDict_CurWheel) + 1
 | 
 |  |  |     ownerID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
 | 
 |  |  |     if ownerID not in PyGameData.g_gathersoulfbAwardDict:
 | 
 |  |  |         PyGameData.g_gathersoulfbAwardDict[ownerID] = {}
 | 
 |  |  |     if curWheel not in PyGameData.g_gathersoulfbAwardDict[ownerID]:
 | 
 |  |  |         PyGameData.g_gathersoulfbAwardDict[ownerID][curWheel] = []
 | 
 |  |  |     PyGameData.g_gathersoulfbAwardDict[ownerID][curWheel].append([itemID, itemCnt, isBind])
 | 
 |  |  |     #ownerID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
 | 
 |  |  |     lineID = GameWorld.GetGameWorld().GetLineID()
 | 
 |  |  |     if lineID not in PyGameData.g_gathersoulfbAwardDict:
 | 
 |  |  |         PyGameData.g_gathersoulfbAwardDict[lineID] = {}
 | 
 |  |  |     if curWheel not in PyGameData.g_gathersoulfbAwardDict[lineID]:
 | 
 |  |  |         PyGameData.g_gathersoulfbAwardDict[lineID][curWheel] = []
 | 
 |  |  |     PyGameData.g_gathersoulfbAwardDict[lineID][curWheel].append([itemID, itemCnt, isBind])
 | 
 |  |  |     curPlayer = FBCommon.GetCurSingleFBPlayer()
 | 
 |  |  |     if curPlayer:
 | 
 |  |  |         DoFBHelp(curPlayer, 0)
 | 
 |  |  | 
 |  |  |     # 进入离开阶段
 | 
 |  |  |     FBCommon.SetFBStep(FB_Step_Over, tick)
 | 
 |  |  |     ownerID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
 | 
 |  |  |     itemDict = PyGameData.g_gathersoulfbAwardDict.pop(ownerID, {})
 | 
 |  |  |     lineID = GameWorld.GetGameWorld().GetLineID()
 | 
 |  |  |     itemDict = PyGameData.g_gathersoulfbAwardDict.pop(lineID, {})
 | 
 |  |  |     totalItemList = []
 | 
 |  |  |     for itemList in itemDict.values():
 | 
 |  |  |         totalItemList += itemList
 | 
 |  |  | 
 |  |  |     curPlayer = FBCommon.GetCurSingleFBPlayer()
 | 
 |  |  |     if not curPlayer:
 | 
 |  |  |         #奖励直接发邮件
 | 
 |  |  |         PlayerControl.SendMailByKey('JHBagFull2', [ownerID], totalItemList)
 | 
 |  |  |         if totalItemList:
 | 
 |  |  |             PlayerControl.SendMailByKey('JHBagFull2', [ownerID], totalItemList)
 | 
 |  |  |         
 | 
 |  |  |         GameWorldProcess.CloseFB(tick)
 | 
 |  |  |         return
 | 
 |  |  |     needSpace = len(totalItemList)
 | 
 |  |  |     emptySpace = ItemCommon.GetItemPackSpace(curPlayer, ShareDefine.rptGatherSoul, needSpace)
 | 
 |  |  |     isSendMail = int(needSpace > emptySpace) # 是否发送邮件
 | 
 |  |  |     if isSendMail:
 | 
 |  |  |         PlayerControl.SendMailByKey('JHBagFull2', [curPlayer.GetPlayerID()], totalItemList)
 | 
 |  |  |         GameWorld.DebugLog("背包空间不够,发送邮件: mailItemList=%s" % str(totalItemList), curPlayer.GetPlayerID())
 | 
 |  |  |     else:
 | 
 |  |  |     if totalItemList:
 | 
 |  |  |         needPackSpaceDict = {}
 | 
 |  |  |         for itemID, itemCnt, isBind in totalItemList:
 | 
 |  |  |             ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [ShareDefine.rptGatherSoul],
 | 
 |  |  |                                             event=["GatherSoulFB", False, {}])
 | 
 |  |  |             curItem = GameWorld.GetGameData().GetItemByTypeID(itemID)
 | 
 |  |  |             if not curItem:
 | 
 |  |  |                 return
 | 
 |  |  |             packType = ChConfig.GetItemPackType(curItem.GetType())
 | 
 |  |  |             needSpace = ItemControler.GetItemNeedPackCount(packType, curItem, itemCnt)
 | 
 |  |  |             needPackSpaceDict[packType] = needPackSpaceDict.get(packType, 0) + needSpace
 | 
 |  |  |              | 
 |  |  |         isSendMail = False #是否背包不足
 | 
 |  |  |         for packType, needSpace in needPackSpaceDict.items():
 | 
 |  |  |             if needSpace > ItemCommon.GetItemPackSpace(curPlayer, packType, needSpace):
 | 
 |  |  |                 isSendMail = True
 | 
 |  |  |                 break
 | 
 |  |  |      | 
 |  |  |         if isSendMail:
 | 
 |  |  |             PlayerControl.SendMailByKey('JHBagFull2', [curPlayer.GetPlayerID()], totalItemList)
 | 
 |  |  |             GameWorld.DebugLog("背包空间不够,发送邮件: mailItemList=%s" % str(totalItemList), curPlayer.GetPlayerID())
 | 
 |  |  |         else:
 | 
 |  |  |             for itemID, itemCnt, isBind in totalItemList:
 | 
 |  |  |                 ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, isBind, [],
 | 
 |  |  |                                                 event=["GatherSoulFB", False, {}])
 | 
 |  |  |             
 | 
 |  |  |     fbCfg = GetGatherSoulFBCfg()
 | 
 |  |  |     costTime = tick - GameWorld.GetGameWorld().GetOpenFBTick()
 |