Bläddra i källkod

提交创建DB新增唯一标识,用于合服

SCFC 1 år sedan
förälder
incheckning
0590bd933f

+ 1 - 1
script/Config.lua

@@ -32,7 +32,7 @@ DB_PASS = "admin1"
 SVR_INDEX = 810538				-- 服务器服号
 SVR_NAME = "S0"
 CHECK_AUTH_ADMIN = false		-- 后台是否验证
-
+NEW_SVR_INDEX = 1				-- 新服务器服号,与区服id对应
 
 ADMIN_KEY  = "ez1ozlZw2zqo7s6O2s0l7K8wpZ919Ues"   --后台认证KEY
 AUTH_KEY   = "bx32017616e8396cbfae965ba2162f32"	  --登录认证KEY

+ 4 - 4
script/module/role/CreateRole.lua

@@ -75,8 +75,8 @@ local function checkRoleName(roleName, default)
 	return true
 end
 
-function creatFakeDb(account)
-    local db = RoleDBLogic.createDefaultRole(account)	
+function creatFakeDb(account, serverTag)
+    local db = RoleDBLogic.createDefaultRole(account, serverTag)
     local identity = genIdentity()
 	db.identity = identity	
     db.name = account
@@ -84,7 +84,7 @@ function creatFakeDb(account)
 end
 
 
-function createNewRole(human)
+function createNewRole(human, serverTag)
 	if _G.is_middle == true then
 		return
 	end
@@ -94,7 +94,7 @@ function createNewRole(human)
 		return
 	end
 	
-	human.db = RoleDBLogic.createDefaultRole(human.account)	
+	human.db = RoleDBLogic.createDefaultRole(human.account, serverTag)
 	
 	-- 保存数据
 	human.db.name = human.account

+ 19 - 1
script/module/role/RoleDBLogic.lua

@@ -30,6 +30,16 @@ local FieldName = {name = 1}
 local FieldAccount = {account = 1}
 
 local tempData = {}
+
+local function generateuuid(account, serverTag)
+	if not account or not serverTag then
+		assert(false, string.format("data Error! account:%s,svrIndex:%s", account, serverTag))
+	end
+	return string.format("%s|%s", serverTag, account)
+end
+
+
+
 function isNameExistInDB(name)
 	QueryByName.name = name
 	tempData.name = nil
@@ -180,9 +190,10 @@ function saveRoleSset(db, sunset)
 end
 
 -------------------- humandb 初始化 start ----------------------
-function createDefaultRole(account)
+function createDefaultRole(account, serverTag)
 	local db = {
 	    svrIndex = Config.SVR_INDEX,
+		newUniqueTag = generateuuid(account, serverTag),
 		identity = nil,							-- 11位全局不重复的数字id
 		account = account,						-- 帐号名
 		name = nil,								-- 角色名
@@ -542,6 +553,13 @@ function roleDBInit()
         all = all + 1
         roleDBchanged = nil
         handleNew(data, newAddDBData)
+
+		--暂时特殊处理下
+		if not data.newUniqueTag then
+			data.newUniqueTag = generateuuid(data.account, Config.NEW_SVR_INDEX)
+			LuaMongo.update(DB.db_char, {_id = data._id}, data)
+		end
+
         if roleDBchanged then
         	list[#list + 1] = data._id
         end

+ 2 - 2
script/module/scene/Handler.lua

@@ -140,7 +140,7 @@ function CG_ASK_LOGIN(fd, msg)
 	if type(fd) ~= "number" then
 		assert()
 	end
-	print("CG_ASK_LOGIN", msg.account)
+	print("CG_ASK_LOGIN", msg.account, msg.serverTag)
 
 	--如果在线人数大于最大可容纳在线人数时,断开链接
 	local onlineCnt = ObjHuman.getOnlineCnt()
@@ -176,7 +176,7 @@ function CG_ASK_LOGIN(fd, msg)
         end
 		
 		Log.write(Log.LOGID_OSS_CREATELOSS,account, "", LogDefine.HUMAN_LOST.ENTRANCE, human.ip, human.pf, human.appid, human.phpChanelID)
-		CreateRole.createNewRole(human)
+		CreateRole.createNewRole(human, msg.serverTag)
 	else
 		-- 封号
 		if human.db.banUserTime == -1 or 

+ 1 - 0
script/module/scene/Proto.lua

@@ -28,6 +28,7 @@ CG_ASK_LOGIN = {
 	{"region",		1,		"string"},	 --多语言-区域
 	{"ip",			1,		"string"},	 --登陆ip
 	{"params",		1,		"string"},	 --平台信息
+	{"serverTag",	1,		"int"},	 	 --区服标识, 即区服列表中的id
 }
 
 CG_TEST_PROTO = {