From 50cabbbc229d1adc0e427df765cab2dc0889cdf1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 一月 2020 15:58:20 +0800
Subject: [PATCH] 8369 境界修改(升级境界给技能格式改为json字典)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py | 53 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
index a23b1ff..fba8e63 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
@@ -229,7 +229,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")
@@ -335,13 +338,6 @@
NetPackCommon.SendFakePack(assistPlayer, assistPack)
return
-def SetPlayerStartAssistTeamFB(curPlayer, queryData):
- ## 开始协助组队副本 - 玩家进入副本后才真正进入协助状态
-
- #mapID, lineID, tagPlayerID = queryData
-
- return
-
def MapServer_PlayerAssistLogic(curPlayer, msgList, tick):
## 地图同步的协助信息逻辑处理
@@ -403,7 +399,18 @@
# 开始协助组队副本
elif queryType == "OnStartAssistTeamFB":
- SetPlayerStartAssistTeamFB(curPlayer, queryData)
+ mapID, lineID, tagPlayerID = queryData
+ GameWorld.DebugLog(" 开始协助副本: mapID=%s,lineID=%s,tagPlayerID=%s" % (mapID, lineID, tagPlayerID), playerID)
+ # 副本协助暂时只处理设置协助目标ID
+ PlayerControl.SetAssistTagPlayerID(curPlayer, tagPlayerID)
+ return
+
+ # 取消协助组队副本
+ elif queryType == "OnCancelAssistTeamFB":
+ mapID, lineID, reason = queryData
+ GameWorld.DebugLog(" 开始协助副本: mapID=%s,lineID=%s,reason=%s" % (mapID, lineID, reason), playerID)
+ # 副本协助暂时只处理设置协助目标ID
+ PlayerControl.SetAssistTagPlayerID(curPlayer, 0)
return
#QueryPlayerResult_PlayerAssist(curPlayer, queryType, queryData, result)
@@ -423,7 +430,7 @@
familyID = curPlayer.GetFamilyID()
if not familyID:
return
- mapID, lineID, npcID, objID = queryData
+ mapID, lineID, npcID, objID, npcLV = queryData
playerID = curPlayer.GetPlayerID()
@@ -451,6 +458,14 @@
PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([assistObj]))
# 求助信息已发送,请等待盟友支援
PlayerControl.NotifyCode(curPlayer, "AssistRequestOK")
+
+ # 广播仙盟请求
+ requestCount = 1
+ if not addNewAssist:
+ requestCount = min(curPlayer.GetDictByKey("AssistBossRequestCount") + 1, 999)
+ curPlayer.SetDict("AssistBossRequestCount", requestCount)
+ notifyNum = (requestCount - 1) % 3
+ PlayerControl.FamilyNotify(familyID, "AssistBossRequest%s" % notifyNum, [curPlayer.GetName(), mapID, npcLV, npcID])
return
def __DoRequestAssistTeamFB(curPlayer, queryData):
@@ -488,6 +503,13 @@
PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([assistObj]))
# 求助信息已发送,请等待盟友支援
PlayerControl.NotifyCode(curPlayer, "AssistRequestOK")
+ # 广播仙盟请求
+ requestCount = 1
+ if not addNewAssist:
+ requestCount = min(curPlayer.GetDictByKey("AssistFBRequestCount") + 1, 999)
+ curPlayer.SetDict("AssistFBRequestCount", requestCount)
+ notifyNum = (requestCount - 1) % 3
+ PlayerControl.FamilyNotify(familyID, "AssistFBRequest%s" % notifyNum, [curPlayer.GetName(), mapID])
return
def __AddNewAssist(assistMgr, curPlayer, mapID, lineID, npcID=0, objID=0, exData="", isSaveDB=0):
@@ -591,8 +613,6 @@
if assistObj in playerAssistList:
playerAssistList.remove(assistObj)
- SyncFamilyClearAssist(familyID, assistGUID)
-
# 取消boss协助
if assistType == AssistType_Boss:
@@ -613,6 +633,8 @@
# 暂不需要处理
pass
+ # 放最后
+ SyncFamilyClearAssist(familyID, assistGUID)
return
def OnCancelPlayerAssist(cancelPlayer, cancelPlayerID, assistObj, reason, isGameServer, isNotify=True):
@@ -648,7 +670,14 @@
assistObj.AssistPlayerIDList.remove(cancelPlayerID)
if cancelPlayer:
+ isTagPlayerReason = reason.startswith("RequestPlayerCancel_")
PlayerControl.SetAssistTagPlayerID(cancelPlayer, 0)
+ overPack = ChPyNetSendPack.tagGCAssistOver()
+ overPack.IsTagPlayerReason = isTagPlayerReason
+ overPack.Reason = reason[len("RequestPlayerCancel_"):] if isTagPlayerReason else reason
+ overPack.ReasonLen = len(overPack.Reason)
+ overPack.AssistGUID = assistGUID
+ NetPackCommon.SendFakePack(cancelPlayer, overPack)
# 取消boss协助
if assistObj.AssistType == AssistType_Boss:
--
Gitblit v1.8.0