hxp
2020-01-13 12e548e57be573f0b963eefb1865169e9d7e67cc
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeam.py
@@ -26,6 +26,7 @@
import SkillCommon
import IPY_GameWorld
import DataRecordPack
import NPCHurtManager
#import PlayerTruck
import ShareDefine
import SkillShell
@@ -66,6 +67,15 @@
def PlayerLoginSetTeam(curPlayer, tick):
    ## 玩家登录服务器设置队伍 
    #玩家刚登录, 什么也不做, 等待GameServer刷新自己
    return
def OnPlayerLoginCrossServer(curPlayer):
    ## 登录跨服服务器处理
    if curPlayer.GetTeamID():
        curPlayer.SetTeamID(0)
        GameWorld.DebugLog("登录跨服服务器重置队伍ID!")
    return
## 游戏服务器刷新队伍(封包参数)
@@ -240,10 +250,10 @@
        #curMapTeam.SetTeamType(recvPack.GetTeamType())
        DR_Team("RefreshPlayerTeamID_Create", teamID, dataDict)
            
    if playerTeamID != teamID or not curTeam:
        isNewTeam = playerTeamID != teamID # 切地图/上线时teamID可能不变,但是team为None
    if (playerTeamID != teamID or not curTeam) and curMapTeam:
        #isNewTeam = playerTeamID != teamID # 切地图/上线时teamID可能不变,但是team为None
        #GameWorld.DebugLog("    玩家当前无队伍,处理玩家进队!isNewTeam=%s" % isNewTeam, playerID)
        __OnEnterTeam(curPlayer, curMapTeam, isNewTeam, tick, dataDict)
        __OnEnterTeam(curPlayer, curMapTeam, playerTeamID, tick, dataDict)
    else:
        dataDict["MemberCount"] = 0 if not curMapTeam else curMapTeam.GetMemberCount()
        DR_Team("RefreshPlayerTeamID_Update", teamID, dataDict)
@@ -255,7 +265,7 @@
#  @param tick 当前时间
#  @return None
#  @remarks 函数详细说明.
def __OnEnterTeam(curPlayer, curMapTeam, isNewTeam, tick, dataDict):
def __OnEnterTeam(curPlayer, curMapTeam, playerTeamID, tick, dataDict):
    teamID = curMapTeam.GetTeamID()
    memCount = curMapTeam.GetMemberCount()
    if memCount >= ShareDefine.Def_Team_MaxPlayerCount:
@@ -283,8 +293,8 @@
    #PlayerTruck.ChangeTruckNoteInfo(curPlayer)
    
    #以下为进入一个新的队伍额外处理
    if not isNewTeam:
        return
    if playerTeamID != teamID:
        NPCHurtManager.OnNPCHurtPlayerEnterTeam(playerID, curPlayer.GetPlayerName(), playerTeamID, curMapTeam, tick)
    return
 
def __OnPlayerLeaveTeam(copyMapID, playerID, leaveTeamID, tick):
@@ -302,6 +312,8 @@
            
    __DelPlayerIDFromTeamPlayer(playerID, False)
    
    NPCHurtManager.OnNPCHurtPlayerLeaveTeam(playerID, leaveTeamID, tick)
    dataDict = {"playerID":playerID, "copyMapID":copyMapID}
    ### =========================== 以下逻辑是玩家存在时才需要处理的 =================================
    curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)