From 5d53c14bcda58a13dbbefcd7b344baa22ba9ae76 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 14 九月 2018 16:02:30 +0800
Subject: [PATCH] fix:3580 【后端】【1.1.0】【1.0.15】封魔坛鼓舞修改为N次仙玉鼓舞,去除铜钱鼓舞
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
index 0d135e1..817fd01 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
@@ -2028,6 +2028,11 @@
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
packTagMapID = clientData.TagMapID
+ # 发2时代表助战匹配
+ if packTagMapID == 2:
+ __DoMatchHelpFightTeam(curPlayer, tick)
+ return
+
tagMapEx = clientData.TagMapEx
tagMapID = packTagMapID
curMapID = curPlayer.GetMapID()
@@ -2240,6 +2245,73 @@
PlayerControl.NotifyCode(curPlayer, "TeamMatchingSucceed")
return
+def __DoMatchHelpFightTeam(curPlayer, tick):
+ ''' 一次性匹配需要助战的队伍,满足队伍条件自动加入匹配队伍
+ 按以下优先级加入:
+ 大境界渡劫 > 所有宗门试炼 > 所有娲皇遗迹 > 混乱妖域
+ 自己有队伍时发送助战喊话不执行此逻辑
+ '''
+ curTeam = curPlayer.GetTeam()
+ if curTeam:
+ return
+
+ matchingTeamDict = PyGameData.g_matchingTeamDict
+ GameWorld.DebugLog("__DoMatchHelpFightTeam matchingTeamDict=%s" % (matchingTeamDict), curPlayer.GetPlayerID())
+ if not matchingTeamDict:
+ return
+
+ playerLV = curPlayer.GetLV()
+ matchMapIDList = [ChConfig.Def_FBMapID_DuJie, ChConfig.Def_FBMapID_MunekadoTrial, ChConfig.Def_FBMapID_QueenRelics, ChConfig.Def_FBMapID_ChaosDemon]
+
+ teamMgr = GameWorld.GetTeamManager()
+ for matchMapID in matchMapIDList:
+ matchTeamInfoList = []
+ for key, teamIDList in matchingTeamDict.items():
+ tagMapID, tagMapEx = key
+ if tagMapID != matchMapID:
+ continue
+
+ for teamID in teamIDList:
+ team = teamMgr.FindTeam(teamID)
+ if not team:
+ continue
+
+ reqMinLV = team.GetReqMinLV()
+ reqMaxLV = team.GetReqMaxLV()
+
+ if not (reqMinLV <= playerLV <= reqMaxLV):
+ continue
+
+ onLineCount = CheckTeamOnLineCount(team)
+ # 优先级: 人数多的 > 线路简单的 > 队伍人数多的 ...
+ matchTeamInfoList.append([onLineCount, 999999 - tagMapEx, team.GetTeamPlayerCount(), teamID, team])
+
+ if not matchTeamInfoList:
+ GameWorld.DebugLog(" 没有满足助战等级条件匹配中的队伍: matchMapID=%s" % (matchMapID))
+ continue
+
+ matchTeamInfoList.sort(reverse=True) # 倒序排
+ GameWorld.DebugLog(" 匹配队伍顺序: matchMapID=%s,%s" % (matchMapID, matchTeamInfoList))
+
+ joinTeamID = 0
+ for teamInfo in matchTeamInfoList:
+ team = teamInfo[-1]
+ if not team:
+ continue
+
+ leader = GetTeamLeader(team)
+ if not leader:
+ continue
+
+ if DoPlayerJoinTeam(curPlayer, leader, team, tick, isAutoMatchJoin=False):
+ joinTeamID = team.GetTeamID()
+ break
+
+ GameWorld.DebugLog(" joinTeamID=%s" % joinTeamID)
+ if joinTeamID:
+ break
+
+ return
#// B9 08 取消匹配队伍或玩家 #tagCGCancelMatchTeam
#
--
Gitblit v1.8.0