From 9b67e4335f655af8c8aef8aa1e7d41e509c50b76 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 12 九月 2025 17:38:35 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(反击改为使用普攻,去除通用反击技能设定;武将特长支持;) --- 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