From f198885f31c9c7eb19eb28adce562e39e64d581c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 18 七月 2025 16:23:11 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(属性计算、战斗力计算;新角色初始给默认装备、默认阵容武将;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py |   90 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 75 insertions(+), 15 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py
index 40cb8db..fdfb0ba 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py
@@ -27,7 +27,7 @@
 import inspect
 from Collections.CollectionDefine import *
 import binascii
-# from GMToolLogicProcess import  ProjSpecialProcess
+from GMToolLogicProcess import  ProjSpecialProcess
 from Common import (CommFunc, mylog, CommFuncEx)
 import PegasusCollectorProxy
 import shutil
@@ -415,12 +415,45 @@
         return
     
     def findDBPlayer(self, playerID):
+        '''根据玩家ID查找dbPlayer
+        @return: None or tagDBPlayer
+        '''
         col = self.db[UCN_DBPlayer]
         dbPlayer = DataServerPlayerData.tagDBPlayer()
         dbPlayer.IsDeleted = 0
         if not dbPlayer.adoLoadCEx(col, {"PlayerID":playerID}):
             return
         return dbPlayer
+    
+    def findDBPlayerByName(self, playerName, backDBPlayer=False):
+        '''根据玩家名查找dbPlayer
+        @param backDBPlayer: 可指定返回 tagDBPlayer 实例,默认false,直接返回db数据字典
+        @return: None or db数据字典{k:v, ...} or tagDBPlayer
+        '''
+        collection = self.db[UCN_DBPlayer]
+        rec = collection.find_one({'PlayerName':fix_incomingText(playerName), 'IsDeleted':0})
+        if not rec:
+            return
+        if backDBPlayer:
+            dbPlayer = DataServerPlayerData.tagDBPlayer()
+            dbPlayer.readRecord(rec)
+            return dbPlayer
+        return rec
+    
+    def findDBPlayerByAccID(self, accID, backDBPlayer=False):
+        '''根据玩家账号查找dbPlayer
+        @param backDBPlayer: 可指定返回 tagDBPlayer 实例,默认false,直接返回db数据字典
+        @return: None or db数据字典{k:v, ...} or tagDBPlayer
+        '''
+        collection = self.db[UCN_DBPlayer]
+        rec = collection.find_one({'AccID':fix_incomingText(accID), 'IsDeleted':0})
+        if not rec:
+            return
+        if backDBPlayer:
+            dbPlayer = DataServerPlayerData.tagDBPlayer()
+            dbPlayer.readRecord(rec)
+            return dbPlayer
+        return rec
     
     def requestLogicProcess(self, pack):
         db = self.db
@@ -433,6 +466,14 @@
         
         mylog.debug("begin process request type = %d"%requestType)
         
+        if requestType == CommonDefine.gstGMToolCommand:
+            oFuncGrade = self.GetFuncGrade('gstGMToolCommand')
+            oFuncGrade.Start()
+            self.OnGMToolCommand(db, pack)
+            oFuncGrade.End()
+            return True
+
+
         if requestType == CommonDefine.gstGeneralDBOper:
             oFuncGrade = self.GetFuncGrade('gstGeneralDBOper')
             oFuncGrade.Start()
@@ -815,12 +856,7 @@
             oFuncGrade.End()    
             return True                                                        
         
-        if requestType ==  CommonDefine.gstGMToolCmdUserDBRequest:
-            oFuncGrade = self.GetFuncGrade("gstGMToolCmdUserDBRequest")
-            oFuncGrade.Start()      
-            self.OnGMToolCmdUserDBRequest(db, pack) 
-            oFuncGrade.End()  
-            return True
+
         if requestType == CommonDefine.gstMergerChildToCenter:
             oFuncGrade = self.GetFuncGrade("gstMergerChildToCenter")
             oFuncGrade.Start()      
@@ -896,6 +932,24 @@
         self.packSend(sessionID, 0, 0, CommonDefine.atMergeLogic, MMORPGPack.stGame,
                       MMORPGPack.stData, sendPack.GetBuffer())
     
+    def OnPlayerLogin(self, curPlayer):
+        ProjSpecialProcess.GMCmdPlayerLogin(curPlayer)
+        return
+    
+    def OnGMToolCommand(self, db, pack):
+
+        if CommonDefine.IsDebug():
+            import binascii
+            mylog.debug('buf = %s'%binascii.b2a_hex(pack.getBuffer()))
+        
+        try:
+            ProjSpecialProcess.OnGMToolCommand(pack)
+        except:
+            msg = error.formatMsg('error', error.ERROR_NO_172, "LogicProcessThread::OnGMToolCommand Catch a unexpetcted exception, error = %s"%traceback.format_exc())
+            mylog.error(msg)
+
+
+
     def OnGeneralDBOper(self, db, pack):
         buf = pack.getBuffer()
         recvPack = RecvPackProtocol.tagGDGameServerGeneralDBOper()
@@ -3434,6 +3488,16 @@
         data += DBGameRec.adoQueryAll(collection)
         mylog.info("tagDBGameRec ok")
         
+        collection = db[UCN_DBFuncTeam]
+        DBFuncTeam = DataServerPlayerData.tagDBFuncTeam()
+        data += DBFuncTeam.adoQueryAll(collection)
+        mylog.info("tagDBFuncTeam ok")
+        
+        collection = db[UCN_DBFuncTeamMem]
+        DBFuncTeamMem = DataServerPlayerData.tagDBFuncTeamMem()
+        data += DBFuncTeamMem.adoQueryAll(collection)
+        mylog.info("tagDBFuncTeamMem ok")
+        
         mylog.info('readGameWorldData len:%s' % len(data))
         return data
     
@@ -3456,6 +3520,8 @@
             gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFamilyMem, DataServerPlayerData.tagDBFamilyMem, db)
             gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFamilyAction, DataServerPlayerData.tagDBFamilyAction, db)
             gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBGameRec, DataServerPlayerData.tagDBGameRec, db)
+            gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFuncTeam, DataServerPlayerData.tagDBFuncTeam, db)
+            gameDataReadPos = self.savegameServerWorldData(saveData, gameDataReadPos, UCN_DBFuncTeamMem, DataServerPlayerData.tagDBFuncTeamMem, db)
             
             mylog.info('saveGameWorldData ok!')
             
@@ -5668,14 +5734,8 @@
             mylog.error(msg)
             return False            
         return True   
-    def OnGMToolCmdUserDBRequest(self,db, pack):
-        # try:
-        #     ProjSpecialProcess.OnGMToolCmdUserDBRequest(db,pack)
-        # except:
-        #     msg = error.formatMsg('error', error.ERROR_NO_172, "OnGMToolCmdUserDBRequest Catch a unexpetcted exception, error = %s"%traceback.format_exc())
-        #     mylog.error(msg)
-        #     return False
-        return True
+
+
     def OnMergerChildToCenter(self,db, pack):
         mylog.debug('OnMergerChildToCenter in')
 #        #伪装来源,便于回包

--
Gitblit v1.8.0