From 0eadbbeaefe189774a3bbbb3f3a2cb138f8895d1 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 09 五月 2019 15:26:10 +0800
Subject: [PATCH] 860312 增加GM命令PrintSkill 带个参数增加输出被动信息
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
index 8a104c0..747aea3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
@@ -44,6 +44,7 @@
import EventShell
import FBLogic
import FBCommon
+import ShareDefine
import EventReport
import ItemCommon
import PyGameData
@@ -76,8 +77,7 @@
#调用副本开启触发器
FBLogic.OnOpenFB(tick)
- if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
- GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
+ GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosOpen)
return
## 副本关闭
@@ -98,6 +98,7 @@
gameFBMgr.SetIsSafeClose(0)
lineID = gameWorld.GetLineID()
+ copyMapID = gameWorld.GetCopyMapID()
GameWorld.Log("FB Close! lineID = %s, openState = %s"%(lineID, gameWorld.GetOpenState()))
gameWorld.SetOpenState(IPY_GameWorld.fbosClosed)
@@ -154,9 +155,15 @@
#发送未拾取的物品给玩家
if mapID in ChConfig.Def_SendUnPickItemMailMapIDList and unPickItemDict:
+ isCrossServer = GameWorld.IsCrossServer()
+ playerServerGroupIDDict = PyGameData.g_crossPlayerServerGroupIDInfo.get(copyMapID, {})
for ownerID, mailItemList in unPickItemDict.items():
GameWorld.Log("发送未拾取的物品给玩家: %s" % mailItemList, ownerID)
- PlayerControl.SendMailByKey("ItemNoPickUp", [ownerID], mailItemList, [gameWorld.GetMapID()])
+ if isCrossServer:
+ serverGroupID = playerServerGroupIDDict.get(ownerID, 0)
+ PlayerControl.SendCrossMail(serverGroupID, "ItemNoPickUp", [ownerID], mailItemList, [gameWorld.GetMapID()])
+ else:
+ PlayerControl.SendMailByKey("ItemNoPickUp", [ownerID], mailItemList, [gameWorld.GetMapID()])
playerManager = gameWorld.GetMapCopyPlayerManager()
@@ -170,13 +177,16 @@
#根据是否收缩型FB处理
FreeOrClearFBByAutoSize(gameWorld)
- if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
- GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
+ GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
gameWorld.SetPropertyID(0)
+ PyGameData.g_crossPlayerServerGroupIDInfo.pop(copyMapID, None)
return
def GameServer_DynamicLineMapStateChange(gameWorld, state):
+ if gameWorld.GetMapID() not in ChConfig.Def_CrossDynamicLineMap:
+ return
+
realMapID, copyMapID = gameWorld.GetRealMapID(), gameWorld.GetCopyMapID()
if state == IPY_GameWorld.fbosWaitForClose:
crossFuncLineDataCache = FBLogic.OnGetCrossFuncLineDataCache()
@@ -186,6 +196,7 @@
msgInfo = str(msgInfo)
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, "DynamicLineMapStateChange", msgInfo, len(msgInfo))
+ GameWorld.Log("DynamicLineMapStateChange realMapID=%s, copyMapID=%s, PropertyID=%s, state=%s" % (realMapID, copyMapID, gameWorld.GetPropertyID(), state))
return
##根据表中的收缩类型释放或者清空副本状态
@@ -267,6 +278,7 @@
##踢人
__KickAllPlayerAndCloseFB(gameWorld, tick)
+ GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosClosed)
return
## 副本踢出玩家逻辑
@@ -623,8 +635,7 @@
GameWorld.GetGameWorld().SetCloseFBTick(tick)
gameWorld = GameWorld.GetGameWorld()
- if gameWorld.GetMapID() in ChConfig.Def_CrossDynamicLineMap:
- GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosWaitForClose)
+ GameServer_DynamicLineMapStateChange(gameWorld, IPY_GameWorld.fbosWaitForClose)
return
## 玩家离开地图时,尝试关闭副本
--
Gitblit v1.8.0