|  |  |  | 
|---|
|  |  |  | itemDict['IsAuctionItem'] = int(itemInfo[2]) | 
|---|
|  |  |  | elif isinstance(itemInfo, int): | 
|---|
|  |  |  | itemDict['ItemID'] = itemInfo | 
|---|
|  |  |  | elif isinstance(itemInfo, dict): | 
|---|
|  |  |  | itemDict = itemInfo | 
|---|
|  |  |  | else: #物品实例 | 
|---|
|  |  |  | if not ItemCommon.CheckItemCanUse(itemInfo): | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | 
|---|
|  |  |  | for npcid, HPPer in npcDict.items(): | 
|---|
|  |  |  | killList.append({"NPCID":npcid, "HPPer":HPPer}) | 
|---|
|  |  |  | return killList | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def OnPickUpItem(curPlayer, curItem, tick, overFunc): | 
|---|
|  |  |  | mapItemType = curItem.GetType() | 
|---|
|  |  |  | if mapItemType != ChConfig.Def_ItemType_Money: | 
|---|
|  |  |  | playerID = curPlayer.GetID() | 
|---|
|  |  |  | isEquip = ItemCommon.CheckItemIsEquip(curItem) | 
|---|
|  |  |  | jsonItem = ItemCommon.GetJsonItem(curItem) | 
|---|
|  |  |  | if playerID in PyGameData.g_fbPickUpItemDict: | 
|---|
|  |  |  | if isEquip: | 
|---|
|  |  |  | PyGameData.g_fbPickUpItemDict[playerID].append(jsonItem) | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | isIn = False | 
|---|
|  |  |  | for itemInfo in PyGameData.g_fbPickUpItemDict[playerID]: | 
|---|
|  |  |  | if itemInfo["ItemID"] == jsonItem["ItemID"] and itemInfo.get("IsBind") == jsonItem.get("IsBind"): | 
|---|
|  |  |  | itemInfo["Count"] = itemInfo.get("Count", 1)+ jsonItem.get("Count", 1) | 
|---|
|  |  |  | isIn = True | 
|---|
|  |  |  | break | 
|---|
|  |  |  | if not isIn: | 
|---|
|  |  |  | PyGameData.g_fbPickUpItemDict[playerID].append(jsonItem) | 
|---|
|  |  |  | else: | 
|---|
|  |  |  | PyGameData.g_fbPickUpItemDict[playerID] = [jsonItem] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if overFunc == None: | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | playerItemCount = 0 | 
|---|
|  |  |  | mapItemManager = GameWorld.GetMapItemManager() | 
|---|
|  |  |  | for index in xrange(mapItemManager.GetMapItemCount()): | 
|---|
|  |  |  | mapItem = mapItemManager.GetMapItemByIndex(index) | 
|---|
|  |  |  | if not mapItem or mapItem.IsEmpty(): | 
|---|
|  |  |  | continue | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 还有属于自己的东西没捡不通知结束 | 
|---|
|  |  |  | if mapItem.GetOwnerID() == curPlayer.GetPlayerID(): | 
|---|
|  |  |  | playerItemCount += 1 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isItemAllPickUp = (playerItemCount <= 1) | 
|---|
|  |  |  | if isItemAllPickUp: | 
|---|
|  |  |  | overFunc(curPlayer, tick) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  | #--------------------------------------------------------------------- | 
|---|
|  |  |  | def SyncDynamicBarrierState(barrierPointList, state, curPlayer=None): | 
|---|
|  |  |  | '''同步动态障碍物是否有效性 | 
|---|
|  |  |  | 
|---|
|  |  |  | return GameWorld.GetDataByDigitPlace(enterCnt, lineBit) | 
|---|
|  |  |  | return enterCnt | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def AddFBCntByItem(curPlayer, itemID, mapID, addCnt): | 
|---|
|  |  |  | ## 物品增加副本次数 | 
|---|
|  |  |  | mapID = GetRecordMapID(mapID) | 
|---|
|  |  |  | itemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ItemAddFbCnt % mapID) | 
|---|
|  |  |  | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_ItemAddFbCnt % mapID, itemAddCnt + addCnt) | 
|---|
|  |  |  | Sync_FBPlayerFBInfoData(curPlayer, mapID) | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, 'AddActivityCount_1', [itemID, mapID, addCnt]) | 
|---|
|  |  |  | OnFBCountChangeEffectRecoverCount(curPlayer, mapID) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ## 增加玩家进入副本次数 | 
|---|
|  |  |  | #  @param curPlayer 玩家实例 | 
|---|
|  |  |  | #  @param fbID 副本id | 
|---|
|  |  |  | 
|---|
|  |  |  | def BuyFBEnterCount(playerIndex, clientData, tick): | 
|---|
|  |  |  | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(playerIndex) | 
|---|
|  |  |  | mapID = clientData.FBID | 
|---|
|  |  |  | if mapID == ChConfig.Def_FBMapID_Love: | 
|---|
|  |  |  | coupleID = PlayerControl.GetCoupleID(curPlayer) | 
|---|
|  |  |  | if not coupleID: | 
|---|
|  |  |  | GameWorld.DebugLog("没有伴侣无法购买情缘副本次数!") | 
|---|
|  |  |  | return | 
|---|
|  |  |  | ipyData = GetFBIpyData(mapID) | 
|---|
|  |  |  | if not ipyData: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if hasBuyCnt >= canBuyCnt: | 
|---|
|  |  |  | GameWorld.DebugLog("购买次数已经用完mapID=%s"%mapID) | 
|---|
|  |  |  | GameWorld.DebugLog("购买次数已经用完mapID=%s,buyTimesVIPPriID=%s,hasBuyCnt=%s >= canBuyCnt=%s" % (mapID, buyTimesVIPPriID, hasBuyCnt, canBuyCnt)) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | costGoldDict = IpyGameDataPY.GetFuncEvalCfg('BuyFBCntCost') | 
|---|
|  |  |  | costGold = costGoldDict.get(str(mapID), '0') | 
|---|
|  |  |  | costGold = eval(costGold) | 
|---|
|  |  |  | costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, ShareDefine.TYPE_Price_Gold_Paper_Money, costGold) | 
|---|
|  |  |  | costMoneyTypeInfo = IpyGameDataPY.GetFuncEvalCfg('BuyFBCntCost', 2) | 
|---|
|  |  |  | costType = costMoneyTypeInfo.get(str(mapID), ShareDefine.TYPE_Price_Gold_Paper_Money) | 
|---|
|  |  |  | costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, costType, costGold) | 
|---|
|  |  |  | #GameWorld.Log('costMoneyList=%s,costGold=%s'%(costMoneyList,costGold)) | 
|---|
|  |  |  | if not costMoneyList: | 
|---|
|  |  |  | return | 
|---|
|  |  |  | 
|---|
|  |  |  | Sync_FBPlayerFBBuyCount(curPlayer, [mapID]) | 
|---|
|  |  |  | PlayerControl.NotifyCode(curPlayer, 'FBEnterTimeBuy', [mapID]) | 
|---|
|  |  |  | OnFBCountChangeEffectRecoverCount(curPlayer, mapID) | 
|---|
|  |  |  | if mapID == ChConfig.Def_FBMapID_Love: | 
|---|
|  |  |  | coupleID = PlayerControl.GetCoupleID(curPlayer) | 
|---|
|  |  |  | if coupleID: | 
|---|
|  |  |  | addItemList = IpyGameDataPY.GetFuncEvalCfg("LoveFB", 3) | 
|---|
|  |  |  | paramList = [curPlayer.GetPlayerName()] | 
|---|
|  |  |  | PlayerControl.SendMailByKey("BuyLoveFBCntCoupleMail", [coupleID], addItemList, paramList) | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def DoFuncOpen_RunDaily(curPlayer): return EventReport.WriteFuncCMEAcceptable(curPlayer, ShareDefine.GameFuncID_RunDaily) | 
|---|