From d0e23ebc20cea58bdaa8c6a39ed95d7a6156e6fc Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 28 九月 2020 16:25:19 +0800 Subject: [PATCH] 1111 媒体卡发放邮件物品支持配置是否拍品,默认0非拍品; --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py | 58 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 41 insertions(+), 17 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py index d8d046f..390f82b 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py @@ -145,6 +145,25 @@ return +def OnPlayerTeamChange(curPlayer): + ## 玩家队伍变更 + + if curPlayer.GetTeamID(): + return + playerID = curPlayer.GetPlayerID() + + assistMgr = PyDataManager.GetPlayerAssistPyManager() + if playerID not in assistMgr.playerNoSaveDBAssistDict: + return + playerAssistList = assistMgr.playerNoSaveDBAssistDict[playerID] + + for assistObj in playerAssistList[::-1]: + gameMap = GameWorld.GetMap(assistObj.MapID) + if gameMap and gameMap.GetMapFBType() == ChConfig.fbtTeam: + OnCancelPlayerRequestAssist(assistObj, "LeaveTeam", True) + + return + def OnInitAssistData(dbData, isSaveDB): ## 加载协助数据额外处理 setattr(dbData, "IsSaveDB", isSaveDB) # 是否保存数据库,离线可协助的需要存库,如挖矿类 @@ -229,7 +248,10 @@ if not playerMap: return if playerMap.GetMapFBType() != ChConfig.fbtNull: - playerLineID = curPlayer.GetFBID() + if mapID == ChConfig.Def_FBMapID_SealDemon: + playerLineID = PlayerControl.GetFBFuncLineID(curPlayer) + else: + playerLineID = curPlayer.GetFBID() if playerMapID != mapID or playerLineID != lineID: #副本中无法协助 PlayerControl.NotifyCode(curPlayer, "AssistFBLimit") @@ -431,8 +453,8 @@ playerID = curPlayer.GetPlayerID() - assistObj = None - addNewAssist = True + reqAssistObj = None + addNewAssist = False assistMgr = PyDataManager.GetPlayerAssistPyManager() if playerID in assistMgr.playerNoSaveDBAssistDict: playerAssistList = assistMgr.playerNoSaveDBAssistDict[playerID] @@ -442,17 +464,18 @@ if npcID != assistObj.NPCID or lineID != assistObj.LineID or objID != assistObj.ObjID: OnCancelPlayerRequestAssist(assistObj, "RequestNewAssistBoss", True) else: - addNewAssist = False + reqAssistObj = assistObj break - if addNewAssist: - assistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID, npcID, objID) + if not reqAssistObj: + addNewAssist = True + reqAssistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID, npcID, objID) - if not assistObj: + if not reqAssistObj: return # 通知本仙盟玩家 - PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([assistObj])) + PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([reqAssistObj])) # 求助信息已发送,请等待盟友支援 PlayerControl.NotifyCode(curPlayer, "AssistRequestOK") @@ -475,7 +498,7 @@ playerID = curPlayer.GetPlayerID() - assistObj = None + reqAssistObj = None addNewAssist = False assistMgr = PyDataManager.GetPlayerAssistPyManager() if playerID in assistMgr.playerNoSaveDBAssistDict: @@ -485,19 +508,19 @@ continue if mapID != assistObj.MapID or lineID != assistObj.LineID: OnCancelPlayerRequestAssist(assistObj, "RequestNewAssistTeamFB", True) - addNewAssist = True - break - else: + else: + reqAssistObj = assistObj + break + + if not reqAssistObj: addNewAssist = True + reqAssistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID) - if addNewAssist: - assistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID) - - if not assistObj: + if not reqAssistObj: return # 通知本仙盟玩家 - PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([assistObj])) + PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([reqAssistObj])) # 求助信息已发送,请等待盟友支援 PlayerControl.NotifyCode(curPlayer, "AssistRequestOK") # 广播仙盟请求 @@ -555,6 +578,7 @@ for assistObj in familyAssistList: assistInfo = ChPyNetSendPack.tagGCAssistInfo() assistInfo.AssistGUID = assistObj.GUID + assistInfo.PlayerID = assistObj.PlayerID assistInfo.PlayerName = assistObj.PlayerName assistInfo.Job = assistObj.Job assistInfo.LV = assistObj.LV -- Gitblit v1.8.0