| | |
| | | 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, 0, [],
|
| | | event=["GatherSoulFB", False, {}])
|
| | |
|
| | | fbCfg = GetGatherSoulFBCfg()
|
| | | costTime = tick - GameWorld.GetGameWorld().GetOpenFBTick()
|