From 14f52c46d49b1654c783c5fa5c1480a09de4432e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期日, 19 一月 2020 15:44:09 +0800
Subject: [PATCH] 8372 VIP特权修改(增加个人BOSS购买次数权限38、缥缈仙域购买次数权限39;日常活动支持VIP特权额外购买次数)
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py | 53 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
index fba8e63..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) # 是否保存数据库,离线可协助的需要存库,如挖矿类
@@ -434,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]
@@ -445,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")
@@ -478,7 +498,7 @@
playerID = curPlayer.GetPlayerID()
- assistObj = None
+ reqAssistObj = None
addNewAssist = False
assistMgr = PyDataManager.GetPlayerAssistPyManager()
if playerID in assistMgr.playerNoSaveDBAssistDict:
@@ -488,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")
# 广播仙盟请求
@@ -558,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