From d57475ffe460133d146d377e66ed19ccb77b11a7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 20 十月 2025 17:22:00 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(寻宝支持定制第x次x抽必出)
---
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