10385 【越南】【英语】【BT】【GM】【砍树】福地新增鼠管及优化-服务端(优化结算奖励逻辑;)
| | |
| | | itemCount = ipyData.GetItemCount()
|
| | | itemLV = ipyData.GetItemLV()
|
| | | awardItemDict[itemID] = awardItemDict.get(itemID, 0) + itemCount
|
| | | awardInfoList.append([GUID, awardTime, workerCount, areaPlayerID, mineID, itemLV, itemID, itemCount])
|
| | | awardInfoList.append([awardTime, workerCount, areaPlayerID, mineID, itemLV, itemID, itemCount])
|
| | |
|
| | | # 通知地图玩家给物品
|
| | | curPlayer.SetDict(MineAreaAwardGetTick, tick)
|
| | |
| | | def __DoMineAreaAwardGetOK(curPlayer, dataMsg):
|
| | |
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | GUIDList, awardItemList = dataMsg
|
| | | _, awardItemList = dataMsg
|
| | | curPlayer.SetDict(MineAreaAwardGetTick, 0)
|
| | |
|
| | | awardMgr = PyDataManager.GetDBPyMineAreaAwardManager()
|
| | | awardDict = awardMgr.playerAreaAwardDict.get(playerID, {})
|
| | | if not awardDict:
|
| | | return
|
| | | GameWorld.DebugLog("福地结算奖励OK: %s" % len(awardDict), playerID)
|
| | |
|
| | | for GUID in GUIDList:
|
| | | awardDict.pop(GUID, None)
|
| | | |
| | | awardMgr.playerAreaAwardDict[playerID] = {}
|
| | | |
| | | SyncMineAwardAward(curPlayer, 1, awardItemList)
|
| | | return
|
| | |
|
| | |
| | | awardItemDict = {}
|
| | | robCount = 0 # 抢劫数
|
| | | selfCount = 0 # 自己数量
|
| | | GUIDList = []
|
| | | for awardInfo in awardInfoList:
|
| | | GUID, awardTime, workerCount, areaPlayerID, mineID, itemLV, itemID, itemCount = awardInfo
|
| | | awardTime, workerCount, areaPlayerID, mineID, itemLV, itemID, itemCount = awardInfo
|
| | | isToday = GameWorld.CheckTimeIsSameServerDayEx(awardTime)
|
| | | if isToday:
|
| | | addEnergyUsed += workerCount
|
| | |
| | | else:
|
| | | selfCount += 1
|
| | | awardItemDict[itemID] = awardItemDict.get(itemID, 0) + itemCount
|
| | | GUIDList.append(GUID)
|
| | | GameWorld.DebugLog("结算福地奖励! areaPlayerID=%s,mineID=%s,itemLV=%s,itemID=%s,itemCount=%s,awardTime=%s,isToday=%s,workerCount=%s %s" |
| | | % (areaPlayerID, mineID, itemLV, itemID, itemCount, GameWorld.ChangeTimeNumToStr(awardTime), isToday, workerCount, GUID), playerID)
|
| | | GameWorld.DebugLog("结算福地奖励! areaPlayerID=%s,mineID=%s,itemLV=%s,itemID=%s,itemCount=%s,awardTime=%s,isToday=%s,workerCount=%s" |
| | | % (areaPlayerID, mineID, itemLV, itemID, itemCount, GameWorld.ChangeTimeNumToStr(awardTime), isToday, workerCount), playerID)
|
| | | __OnMineAreaPullEnd(curPlayer, areaPlayerID, "OK")
|
| | |
|
| | | if addEnergyUsed:
|
| | |
| | | awardItemList = [[itemID, itemCount, 0] for itemID, itemCount in awardItemDict.items()]
|
| | | ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, None, ["MineAreaAward", False, {}])
|
| | |
|
| | | SendToGameServer_MineArea(curPlayer, "MineAreaAwardGetOK", [GUIDList, awardItemList])
|
| | | SendToGameServer_MineArea(curPlayer, "MineAreaAwardGetOK", [None, awardItemList])
|
| | | return
|
| | |
|
| | | def __OnMineAreaPullEnd(curPlayer, areaPlayerID, reason):
|