From a11032e2e814f5d5a82a3f94bcd5d0730f27af22 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 25 二月 2026 20:41:37 +0800
Subject: [PATCH] 0312 登录地图再次验证是否卡号,卡号则直接进行下线逻辑
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/ServerClientShareDefine.py | 18 ++++----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/LogicProcess/UserCtrlDB.py | 68 +++++++++++++++++++---------------
2 files changed, 47 insertions(+), 39 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 03c88ac..9b649b2 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
@@ -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,18 +3384,26 @@
# 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:
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/ServerClientShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/ServerClientShareDefine.py
index dac625f..02ec71c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/ServerClientShareDefine.py
+++ b/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 #帐号已存在有效角色
--
Gitblit v1.8.0