From 3bc2e9aae7e595d5be896a9db4c909b76fa6f5be Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 11 七月 2025 14:16:29 +0800
Subject: [PATCH] 0312 物品叠加数量支持配置DWORD

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py |   78 +++++++++++++++++++++++++++++++-------
 1 files changed, 63 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 38349a0..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()
@@ -5680,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