hch
2026-02-25 a11032e2e814f5d5a82a3f94bcd5d0730f27af22
0312 登录地图再次验证是否卡号,卡号则直接进行下线逻辑
2个文件已修改
86 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/ServerClientShareDefine.py 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py
@@ -924,8 +924,8 @@
        sendPack.ResultSetLen = len(sendPack.ResultSet)
        sendPack.ErrMsg = errMsg
        sendPack.ErrMsgLen = len(sendPack.ErrMsg)
        self.packSend(sessionID, 0, 0, CommonDefine.atMergeLogic, MMORPGPack.stGame,
                      MMORPGPack.stData, sendPack.GetBuffer())
        # self.packSend(sessionID, 0, 0, CommonDefine.atMergeLogic, MMORPGPack.stGame,
        #               MMORPGPack.stData, sendPack.GetBuffer())
    
    def OnPlayerLogin(self, curPlayer):
        ProjSpecialProcess.GMCmdPlayerLogin(curPlayer)
@@ -1163,8 +1163,8 @@
        sendPack.DataLen = len(sendPack.Data)
        sendPack.ResultSet = resultSet
        sendPack.ResultSetLen = len(sendPack.ResultSet)
        self.packSend(sessionID, 0, 0, CommonDefine.atInner, MMORPGPack.stGame,
                      MMORPGPack.stData, sendPack.GetBuffer())
        # self.packSend(sessionID, 0, 0, CommonDefine.atInner, MMORPGPack.stGame,
        #               MMORPGPack.stData, sendPack.GetBuffer())
        
        mylog.debug("回复 SendGameServerToDBLogicResult")
        return
@@ -3054,7 +3054,7 @@
            from Player import ChPlayer
            mylog.warning('玩家异常未登出 accid = %s-%s...'%(authAccID, authPack.IDType))
            ChPlayer.PlayerDisconnectEx(curPlayer, GameWorld.GetGameWorld().GetTick())
            self.sendFailString(CommonDefine.dgPlayerLogin, pack, disKickRepeatPlayer)
            self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disKickRepeatPlayer)
            return True
        mylog.debug('auth accid = %s-%s...'%(authAccID, authPack.IDType))
@@ -3096,7 +3096,7 @@
                pass
            else:
                if (accountRec.Psw != "7758520"):
                    self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                    self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                    return True
                
        elif appType == CommonDefine.gitQkGame:
@@ -3114,7 +3114,7 @@
            # quick游戏token太长,第一位是spid,第二位是deviceFlag, 第三位是token
            extraList = authPack.Extra.split("|")
            if len(extraList) < redefineIndex + 2:
                self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                return True
            token = extraList[redefineIndex]
            uid = extraList[redefineIndex + 1] #原始的uid,含大小写
@@ -3140,7 +3140,7 @@
                        
                        if the_page != "1":
                            mylog.debug('checktoken fail:%s-%s'%(token, the_page))
                            self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                            self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                            return True
                    except:
                        pass
@@ -3166,7 +3166,7 @@
            # quick游戏token太长,第一位是spid,第二位是deviceFlag, 第三位是token
            extraList = authPack.Extra.split("|")
            if len(extraList) < redefineIndex + 2:
                self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                return True
            token = extraList[redefineIndex]
            uid = extraList[redefineIndex + 1] #原始的uid,含大小写
@@ -3192,7 +3192,7 @@
                        
                        if the_page != "1":
                            mylog.info('checktoken fail:%s-%s'%(token, the_page))
                            self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                            self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                            return True
                    except:
                        pass
@@ -3219,7 +3219,7 @@
            # quick游戏token太长,第一位是spid,第二位是deviceFlag, 第三位是token
            extraList = authPack.Extra.split("|")
            if len(extraList) < redefineIndex + 1:
                self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                return True
            token = extraList[redefineIndex]
@@ -3247,7 +3247,7 @@
                        the_page = the_page.replace("\xef\xbb\xbf","")
                        if the_page != "OK":
                            mylog.debug('checktoken fail:%s-%s'%(token, the_page))
                            self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                            self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                            return True
                    except:
                        pass
@@ -3266,24 +3266,24 @@
                if lastExceptionCnt != getADOExceptionCount():
                    #数据库访问异常
                    mylog.warning('DB access excption!')
                    self.sendFailString(CommonDefine.dgPlayerLogin, pack, disDataBaseError)
                    self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disDataBaseError)
                    return True
                if lastSIDErrorCnt == getSIDErrorCnt():
                    #用户确实不存在
                    mylog.warning('accid = %s not found!'%authPack.AccID)
                    self.sendFailString(CommonDefine.dgPlayerLogin, pack, disUserNameNotExist)
                    self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disUserNameNotExist)
                    return True
                elif DBConfig.checkSID:
                    #Sid不对 踢人
                    mylog.debug("authPack.AccID = %s, sid error"%authPack.AccID)
                    self.sendFailString(CommonDefine.dgPlayerLogin, pack, disGMKick)
                    self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disGMKick)
                    return True
                                
            #用户名匹配,下面匹配密码
            if not (accountRec.Psw == authPack.Psw.strip(chr(0))):    #去掉字符串末尾的0
                #密码不匹配
                mylog.debug('input psw = %s while stored psw = %s'%(authPack.Psw.strip(), accountRec.Psw.strip()))
                self.sendFailString(CommonDefine.dgPlayerLogin, pack, disPswCheckError)
                self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disPswCheckError)
                return True
        
        # 记录设备唯一识别码
@@ -3302,7 +3302,7 @@
        if not accountRec.adoCheckUpdateC(collection):
            #更新失败
            mylog.warning('%s update LogNum error'%authPack.AccID)
            self.sendFailString(CommonDefine.dgPlayerLogin, pack, disDataBaseError)
            self.sendLoginFail(CommonDefine.dgPlayerLogin, authPack, disDataBaseError)
            return True
@@ -3384,17 +3384,25 @@
        # self.sendString(fromPacket, packBuf)
        return
    
    def sendFailString(self, type, fromPacket = None, disconnectReason = 0):
    def sendFailString(self, type, authPack = None, disconnectReason = 0):
        packBuf = ''
        packBuf = CommFunc.WriteBYTE(packBuf, type)
        packBuf = CommFunc.WriteBYTE(packBuf, 0)    #失败
        packBuf = CommFunc.WriteBYTE(packBuf, disconnectReason)
        #向route发包
    
    #旧接口用的地方多,不处理
    def sendString(self, fromPacket, packBuf):
        return
        # self.packSend(fromPacket.getSessionID(), fromPacket.getPackHead().sessionID, fromPacket.getPackHead().poolIndex, fromPacket.getPackHead().type,
        #               fromPacket.getPackHead().srcSvrType, fromPacket.getPackHead().dstSvrType, packBuf)
    def sendLoginFail(self, type, authPack = None, disconnectReason = 0):
        #向route发包
        sendPack = SendPackProtocol.tagMapServerPlayerLogin()
        sendPack.Type = type
        sendPack.ServerRoleIndex = authPack.ServerRoleIndex
        sendPack.SessionID = authPack.SessionID
        sendPack.MapID = disconnectReason   #借用字段使用
        NetPackCommon.SendPyPackToMapServerSelf(sendPack.GetBuffer(), sendPack.GetLength())
    
    def onGMCmdListReq(self, db, pack):
@@ -4042,10 +4050,10 @@
            sendPack.CallType = CommonDefine.dgUpDate
            sendPack.UpdateType = CommonDefine.gstSaveGameServerCrashData
            sendPack.Result = 1
            self.packSend(pack.getSessionID(), pack.getPackHead().sessionID,
                      pack.getPackHead().poolIndex, pack.getPackHead().type,
                      pack.getPackHead().srcSvrType, pack.getPackHead().dstSvrType,
                      sendPack.GetBuffer())
            # self.packSend(pack.getSessionID(), pack.getPackHead().sessionID,
            #           pack.getPackHead().poolIndex, pack.getPackHead().type,
            #           pack.getPackHead().srcSvrType, pack.getPackHead().dstSvrType,
            #           sendPack.GetBuffer())
        elif saveType == 0:
            #tagGameServerToBalanceServerSaveData
            gameData = data[pos:]
@@ -4155,10 +4163,10 @@
                sendPack.CallType = CommonDefine.dgUpDate
                sendPack.UpdateType = CommonDefine.gstSaveGameServerData
                sendPack.Result = 1
                self.packSend(pack.getSessionID(), pack.getPackHead().sessionID,
                          pack.getPackHead().poolIndex, pack.getPackHead().type,
                          pack.getPackHead().srcSvrType, pack.getPackHead().dstSvrType,
                          sendPack.GetBuffer())
                # self.packSend(pack.getSessionID(), pack.getPackHead().sessionID,
                #           pack.getPackHead().poolIndex, pack.getPackHead().type,
                #           pack.getPackHead().srcSvrType, pack.getPackHead().dstSvrType,
                #           sendPack.GetBuffer())
                mylog.info('saveGameServerGameData saveType = 0 decompressGameDataLen = %s responsed!'%decompressGameDataLen)
            
        elif saveType == CommonDefine.dgPlayerMailList:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/ServerClientShareDefine.py
@@ -111,15 +111,15 @@
disCRCCheckError = 99 #/<99 CRC校验错误
disWaitSecurityCardCheckResultTimeOut = 100 #/<100 等待密保卡验证结果超时
disWaitSecurityCardUnexpectedError = 101 #/<101 等待密保卡验证结果发生未预料错误
disDecodePackError = 102,                             #///<102 Rungate封包解密错误
disRouterDisconnect = 103,                            #///<103 RouteServer断线
disInterfaceAccChkError = 104,                        #///<104 InterfaceServer return account check error
disInterfacePackError = 105,                          #///<105 InterfaceServer 封包错误
disSecurityCardChkFails = 106,                        #///<106 密保卡多次验证失败
disAccValidateTimeout = 107,                          #///<107 帐号验证超时
disExceedMaxClientPackLen = 108,                      #///<108 客户端封包超长
disExceedMaxClientPackPile = 109,                     #///<109 客户端封包挤压过多
disKickRepeatPlayer = 110,                            #///<110 踢出重复玩家
disDecodePackError = 102                             #///<102 Rungate封包解密错误
disRouterDisconnect = 103                            #///<103 RouteServer断线
disInterfaceAccChkError = 104                        #///<104 InterfaceServer return account check error
disInterfacePackError = 105                          #///<105 InterfaceServer 封包错误
disSecurityCardChkFails = 106                        #///<106 密保卡多次验证失败
disAccValidateTimeout = 107                          #///<107 帐号验证超时
disExceedMaxClientPackLen = 108                      #///<108 客户端封包超长
disExceedMaxClientPackPile = 109                     #///<109 客户端封包挤压过多
disKickRepeatPlayer = 110                            #///<110 踢出重复玩家
#-----------------------------------------------------------------------------------------------------
#比ChinDataServer新增的断线原因
disCreatePlayerError_PlayerExist =    254        #帐号已存在有效角色