hxp
2021-01-29 3d7649c649a1b15f68e30bc3b622260ebd7fab19
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