From 5b1b44c4f50fc1e0caa01a5938fb5c5905ea0b26 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 26 二月 2021 16:16:55 +0800 Subject: [PATCH] 4951 【主干】【BT】【BT2】【BTZF】协助感谢礼盒无法开启(优化找不到协助信息时可默认使用) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py | 31 ++++++++++++++++++++----------- 1 files changed, 20 insertions(+), 11 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py index 390f82b..143f5de 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py @@ -813,23 +813,29 @@ playerID = curPlayer.GetPlayerID() assistThanksMgr = PyDataManager.GetPlayerAssistThanksPyManager() + useThanks = None if playerID not in assistThanksMgr.playerThanksDict: GameWorld.ErrLog("玩家没有可使用的协助感谢礼盒!", playerID) - return - useThanks = None - playerThanksList = assistThanksMgr.playerThanksDict[playerID] - for thanks in playerThanksList: - if itemID == thanks.ItemID: - useThanks = thanks - break + else: + playerThanksList = assistThanksMgr.playerThanksDict[playerID] + for thanks in playerThanksList: + if itemID == thanks.ItemID: + useThanks = thanks + break if not useThanks: GameWorld.ErrLog("玩家没有该协助感谢礼盒!itemID=%s" % (itemID), playerID) - return + #20210226 优化为找不到协助信息也可以使用,防止地图扣除物品失败导致协助礼盒一直留着而无法使用 + #return GameWorld.DebugLog("玩家使用协助感谢礼盒!itemID=%s,isPreview=%s" % (itemID, isPreview), playerID) # 预览 if isPreview: previewPack = ChPyNetSendPack.tagGCUseAssistThanksGiftPreview() + if not useThanks: + previewPack.ItemID = itemID + previewPack.MapID = 31140 # 暂随意给一个可协助的地图ID + NetPackCommon.SendFakePack(curPlayer, previewPack) + return previewPack.ItemID = useThanks.ItemID previewPack.MapID = useThanks.MapID previewPack.LineID = useThanks.LineID @@ -854,12 +860,15 @@ ipyData = IpyGameDataPY.GetIpyGameData("AssistThanksGift", itemID) if not ipyData: return - - useThanks.ThanksState = 1 # 设置为已感谢 - playerThanksList.remove(useThanks) # 移除已感谢 + queryData = [itemID] QueryPlayerResult_PlayerAssist(curPlayer, "UseAssistThanksGift", queryData) + if not useThanks: + return + useThanks.ThanksState = 1 # 设置为已感谢 + playerThanksList.remove(useThanks) # 移除已感谢 + # 通知协助玩家可接收的感谢个数 playerMgr = GameWorld.GetPlayerManager() for assistPlayerID in useThanks.AssistPlayerDict.keys(): -- Gitblit v1.8.0