From 30dd8ff93a00ada8262a35da0ede9c2088a7fd37 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 23 九月 2025 16:52:52 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(诸葛亮技能; 目标细分增加攻击力最高5; buff状态增加军令19;增加效果6006增加本次技能万分比验证职业;增加效果5015集火攻击军令目标;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py |   75 +++++++++++++++++++++++++------------
 1 files changed, 51 insertions(+), 24 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 a74fb90..9468da1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/GameWorldProcess.py
@@ -39,9 +39,6 @@
 import GameWorld
 import ChConfig
 import PlayerControl
-import FamilyRobBoss
-import NPCCustomRefresh
-import EventShell
 import FBLogic
 import FBCommon
 import EventReport
@@ -109,10 +106,8 @@
         return
     
     if fbType == IPY_GameWorld.fbtSingle:
-        ownerID = gameFBMgr.GetGameFBDictByKey(ChConfig.Def_FB_SingleFBPlayerID)
-        if ownerID in PyGameData.g_fbHelpBattlePlayerDict:
-            PyGameData.g_fbHelpBattlePlayerDict.pop(ownerID)
-            GameWorld.DebugLog("清除单人副本镜像助战信息: ownerID=%s" % ownerID)
+        pass
+    
     elif fbType == IPY_GameWorld.fbtTeam:
         teamID = gameWorld.GetPropertyID()
         if teamID in PyGameData.g_teamFBMemRelationDict:
@@ -161,7 +156,7 @@
             GameWorld.Log("发送未拾取的物品给玩家: %s" % mailItemList, ownerID)
             if isCrossServer:
                 serverGroupID = playerServerGroupIDDict.get(ownerID, 0)
-                PlayerControl.SendCrossMail(serverGroupID, "ItemNoPickUp", [ownerID], mailItemList, [gameWorld.GetMapID()])
+                # 删除旧版发送邮件,如果功能还有需要,可使用新版本发送邮件 PlayerMail
             else:
                 PlayerControl.SendMailByKey("ItemNoPickUp", [ownerID], mailItemList, [gameWorld.GetMapID()])
         
@@ -272,10 +267,7 @@
         if playerExistTime < existTime / 2:
             #这个玩家存在时间过短, 不能触发副本结束的事件
             continue
-
-        #副本时间到了, 调用时间到响应
-        EventShell.EventResponse_OnFBTimeOut(curPlayer)
-    
+        
     #输出调试信息
     GameWorld.Log('__ProcessTimeKickPlayer! LineID = %s, openState = %s'%(gameWorld.GetLineID(), gameWorld.GetOpenState()))
     
@@ -551,11 +543,7 @@
     #定时检测关闭超时文件
     EventReport.OnTimeCloseScribeTxt()
     
-    #仙盟归属boss定时处理
-    FamilyRobBoss.OnFamilyOwnerBossProcess(tick)
-    
     #地图自定义随机刷怪
-    NPCCustomRefresh.ProcessMapRandomRefreshNPC(gameWorld, tick)
     NPCRealmRefresh.ProcessRealmNPCRefresh(gameWorld, tick)
     return
 
@@ -588,7 +576,6 @@
 def InitGameWorld(tick):
     gameWorld = GameWorld.GetGameWorld()
     ItemCommon.InitPyItem()
-    EventShell.DoReloadRefresh()
     #处理副本逻辑
     FBLogic.OnInit(tick)
     #初始化地图时钟
@@ -603,13 +590,7 @@
     gameWorld.BalanceServer_MapServerInitOK()
     return
 
-## 初始化共享表(原c++表)
-#  @param tick 当前时间
-#  @return None
-def ReadShareData(tick):
-    from PyMongoDB import PyMongoMain
-    PyMongoMain.GetUserCtrlDB().OnGetGameData()
-    return
+
 
 def GameServer_CommMapServerInitOK(gameWorld):
     '''
@@ -734,3 +715,49 @@
     return
 
 #---------------------------------------------------------------------
+
+
+## 初始化共享表(原c++表)
+#  @param tick 当前时间
+#  @return None
+def ReadShareData(tick):
+    #读取静态表,与数据库无关 不要调用UserCtrlDB
+    from PyMongoDB.Collections import DataServerGameData
+    from PyMongoDB.DBCommon import (GlobalFunctions, CommonDefine, error)
+    from PyMongoDB.Common import (CommFunc, )
+    import NetPackCommon
+    import os
+    import zlib
+    sysData = DataServerGameData.sysDBLoadFromFile(DataServerGameData.tagChinNPC,
+                                                os.path.join(GlobalFunctions.getServerConfigPath(),
+                                                                CommonDefine.SYSDB_PATH,
+                                                                'tagChinNPC.txt'))
+    sysData += DataServerGameData.sysDBLoadFromFile(DataServerGameData.tagChinSkill,
+                                        os.path.join(GlobalFunctions.getServerConfigPath(),
+                                                    CommonDefine.SYSDB_PATH,
+                                                    'tagChinSkill.txt'))
+    sysData += DataServerGameData.sysDBLoadFromFile(DataServerGameData.tagChinItem,
+                                        os.path.join(GlobalFunctions.getServerConfigPath(),
+                                                    CommonDefine.SYSDB_PATH,
+                                                    'tagChinItem.txt'))
+    sysData += DataServerGameData.sysDBLoadFromFile(DataServerGameData.tagChinMap,
+                                        os.path.join(GlobalFunctions.getServerConfigPath(),
+                                                    CommonDefine.SYSDB_PATH,
+                                                    'tagChinMap.txt'))
+
+
+    #压缩
+    try:
+        compressSysData = zlib.compress(sysData, 9)    #最大压缩
+                    
+        #回发地图
+        data = ''
+        data = CommFunc.WriteBYTE(data, CommonDefine.dgGameData)         #1
+        data = CommFunc.WriteString(data, len(compressSysData), compressSysData)
+        
+        GameWorld.Log('Load game sys data for len = %s - %s ok!'%(len(compressSysData), len(data)))
+        NetPackCommon.SendPyPackToMapServerSelf(data, len(data))
+    except:
+        msg = error.formatMsg('fatal', error.ERROR_NO_53, 'Compress game sys data failed!error = \n%s'%traceback.format_exc())
+        GameWorld.ErrLog(msg)
+    return
\ No newline at end of file

--
Gitblit v1.8.0