From c5b0df325fe592a22c885a313eee2219d2ae54b5 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 04 六月 2019 20:21:57 +0800
Subject: [PATCH] 6603 【后端】【2.0】增加新版的sp和被动技能 - 被动触发被动的处理
---
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 86 ++++++++++++++++++++++++++-----------------
1 files changed, 52 insertions(+), 34 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 8b9efa3..578cae2 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -27,28 +27,21 @@
import GMCommon
import ShareDefine
#import PlayerFamilyTech
-import PlayerDataCollect
import time
import ChPyNetSendPack
import NetPackCommon
import GameDataRecord
-import GameConfig
-import ReadChConfig
import UpdatePlayerName
import GameWorldBoss
import PlayerFamilyBoss
-#import PlayerManorWar
import PlayerBourse
-import GameWorldActionTeHui
+import PlayerZhuXianBoss
import PlayerXMZZ
-import GameWorldShopItem
import PlayerTruck
-import HighLadder
-import EventReport
+import PlayerHorsePetBoss
import PlayerCompensation
import PlayerFamilyRedPacket
-import PlayerFamilyStore
-import PyDataManager
+#import PlayerFamilyStore
import PlayerSocial
import PlayerFamilyParty
import PlayerSealDemon
@@ -67,6 +60,8 @@
import GMShell
import IPY_PlayerDefine
import CrossRealmPK
+import AuctionHouse
+import PlayerFB
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -149,14 +144,16 @@
PlayerTruck.SyncPlayerTruckStartTime(curPlayer)
#通知玩家交易所挂单情况
PlayerBourse.OnPlayerLogin(curPlayer)
-
+ #拍卖行
+ AuctionHouse.OnPlayerLogin(curPlayer)
+
#上线广播
__CheckWorldNotifyOnLogin(curPlayer, tick)
#仙盟红包
PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
#仙盟仓库
- PlayerFamilyStore.OnPlayerLogin(curPlayer)
+ #PlayerFamilyStore.OnPlayerLogin(curPlayer)
#仙盟宴会
PlayerFamilyParty.OnPlayerLogin(curPlayer)
#封魔坛
@@ -185,8 +182,10 @@
PlayerFBHelpBattle.OnHelpPlayerLogin(curPlayer)
#跨服PK
CrossRealmPK.OnPlayerLogin(curPlayer)
-
- GMShell.OnPlayerLogin(curPlayer)
+ #诛仙BOSS
+ PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
+ #骑宠boss状态通知
+ PlayerHorsePetBoss.OnLogin(curPlayer)
GMT_CTG.OnPlayerLogin(curPlayer)
return
@@ -218,9 +217,6 @@
if checkMark not in ShareDefine.BillboardTypeList:
continue
- if checkMark in [ShareDefine.Def_BT_HighLadder]:
- continue
-
billboard = GameWorld.GetBillboard().FindBillboard(checkMark)
if not billboard:
continue
@@ -239,11 +235,7 @@
objBillboard = billboard.At(index)
if curPlayer.GetID() == objBillboard.GetID():
msgMark = notifyDict[order]
- break
-# # 竞技场
-# elif checkMark == "HighLadder":
-# highLadderOrder = HighLadder.GetPlayerOrder(curPlayer.GetID()) + 1
-# msgMark = notifyDict.get(highLadderOrder, "")
+ break
# 有可以广播的,马上广播,退出,不再检查
if msgMark:
@@ -499,6 +491,9 @@
# @remarks 函数详细说明.
def __Func_PlayerDisconnect(curPlayer, tick):
+ if GameWorld.IsCrossServer():
+ PlayerFB.OnPlayerDisconnectCrossServer(curPlayer)
+
#跨服匹配PK
CrossRealmPK.OnLeaveServer(curPlayer)
@@ -511,7 +506,8 @@
PlayerGeTui.NewGuyCallBackGeTui(curPlayer, tick)
# 设置家族成员离线时间
SetPlayerOfflineTime(curPlayer)
-
+ #拍卖行
+ AuctionHouse.OnPlayerLeaveServer(curPlayer)
#------------镖车逻辑
#TruckPlayerDisconnectProcess(curPlayer, tick)
return
@@ -618,8 +614,6 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_Job:
curPlayer.SetJob(packValue)
- elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr1:
- PlayerControl.SetJobRank(curPlayer, packValue)
# elif packType == IPY_GameServer.CDBPlayerRefresh_CurrentPlayerType:
# #这里应该通知组队那边刷新
@@ -641,6 +635,10 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_VIPLv:
curPlayer.SetVIPLv(packValue);
# __RefreshTeamState(curPlayer)
+
+ elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr5:
+ PlayerControl.SetCrossMapID(curPlayer, packValue, False)
+
elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr9:
PlayerControl.SetVIPExpireTime(curPlayer, packValue)
@@ -649,7 +647,10 @@
elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr11:
PlayerControl.SetTodayXianyuanCoin(curPlayer, packValue)
-
+
+ elif packType == IPY_GameServer.CDBPlayerRefresh_ExAttr13:
+ PlayerControl.SetPlayerServerGroupID(curPlayer, packValue)
+
elif packType == IPY_GameServer.CDBPlayerRefresh_OperateInfo:
curPlayer.SetOperateInfo(packValue);
@@ -760,6 +761,9 @@
#改到mapServer登录成功通知
#Sync_PyServerDataTimeToClient(curPlayer, tick)
+ if GameWorld.IsCrossServer():
+ PlayerFB.PlayerLoginLoadCrossMapOK(curPlayer)
+
PlayerTeam.OnPlayerReadMapOK(curPlayer, tick)
#刷新人物日期状态
@@ -773,7 +777,7 @@
#===============================================================================
#自己已经初始化成功
curPlayer.SetInitOK(True)
-
+ GMShell.OnPlayerLogin(curPlayer)
#发送请求至目标地图(任务需要登陆家族长触发事件)
__RefreshFamilyToMapServer(curPlayer)
return
@@ -873,17 +877,29 @@
#{
# tagHead Head;
# DWORD MapID;
-# BYTE FBLineID;
-# BYTE IsAllLine;
+# BYTE LineCount;
+# BYTE LineIDList[LineCount]; //个数为0时代表查全部
#};
def ClinetQueryFBLinePlayerCnt(index, clientData, tick):
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
queryMapID = clientData.MapID
- fbLineID = clientData.FBLineID
- isAllLine = clientData.IsAllLine
+ queryFBLineIDList = clientData.LineIDList
playerManager = GameWorld.GetPlayerManager()
- sendCMD = str([queryMapID, fbLineID, isAllLine])
+ if queryMapID in ChConfig.Def_CrossMapIDList:
+ fbLinePlayerInfoDict = PyGameData.g_crossFBFuncLinePlayerCountInfo.get(queryMapID, {})
+ if not queryFBLineIDList:
+ resultInfo = [queryMapID, fbLinePlayerInfoDict]
+ else:
+ defaultInfo = [0] # 与本服结构相同,默认0人
+ queryFBLineInfo = {}
+ for lineID in queryFBLineIDList:
+ queryFBLineInfo[lineID] = fbLinePlayerInfoDict.get(lineID, defaultInfo)
+ resultInfo = [queryMapID, queryFBLineInfo]
+ QueryFBLinePlayerCntResult(curPlayer, resultInfo)
+ return
+
+ sendCMD = str([queryMapID, queryFBLineIDList])
playerManager.MapServer_QueryPlayer(curPlayer.GetPlayerID(), 0, 0, queryMapID,
'FBLinePlayerCnt', sendCMD, len(sendCMD), curPlayer.GetRouteServerIndex())
return
@@ -899,11 +915,13 @@
fblinePack = ChPyNetSendPack.tagGCFBLinePlayerCnt()
fblinePack.MapID = tagMapID
fblinePack.FBLineInfoList = []
- for lineID, playerCnt in fbLinePlayerCntDict.items():
+ for lineID, infoList in fbLinePlayerCntDict.items():
mapLineState = ChPyNetSendPack.tagGCFBLineInfo()
mapLineState.Clear()
mapLineState.FBLineID = lineID
- mapLineState.PlayerCnt = playerCnt
+ mapLineState.PlayerCnt = infoList[0] if infoList else 0
+ mapLineState.ExtraStr = infoList[1] if len(infoList) > 1 else ''
+ mapLineState.ExtraStrLen = len(mapLineState.ExtraStr)
fblinePack.FBLineInfoList.append(mapLineState)
fblinePack.Count = len(fblinePack.FBLineInfoList)
--
Gitblit v1.8.0