Przeglądaj źródła

玩家角色数据中新增一个唯一类型的字段

gitxsm 1 rok temu
rodzic
commit
606e2c5cf1

+ 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

+ 20 - 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,								-- 角色名
@@ -211,6 +222,7 @@ function createDefaultRole(account)
 		heroBook = nil,                         -- 获得过的图鉴英雄[id]= true
 		shop = nil,                             -- 商店购买物品次数记录 shop[shopType][itemID] = cnt
 		
+		battleGameTimes = nil,					-- 普通闯关的获得的游戏次数
 		battleType = 1,							-- 战役类型(1、普通,2、精英,3、困难)
 		maxBattleTime = nil,					-- 最新关卡通关时间
 		guajiID = 0,						    -- 已通关关卡/挂机关卡
@@ -543,6 +555,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

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

@@ -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 

+ 3 - 2
script/module/union/UnionWarLogic.lua

@@ -36,6 +36,7 @@ local BillboardDefine = require("billboard.BillboardDefine")
 local Broadcast = require("broadcast.Broadcast")
 local Timer = require("core.Timer")
 local MiddleConnect = require("middle.MiddleConnect")
+local Config = require("Config")
 
 --活动阶段
 WDAY = {[1] = 1,[3] = 1,[5] = 1}
@@ -1460,9 +1461,9 @@ function auto(str)
     local teamHide = {[0] = memberCnt}
     for i = 1, memberCnt do
         local account = str .. string.format("%02d", i)
-        local db = RoleDBLogic.getDbByAccount(account)
+        local db = RoleDBLogic.getDbByAccount(account, Config.NEW_SVR_INDEX)
         if not db then
-            db = CreateRole.creatFakeDb(account)
+            db = CreateRole.creatFakeDb(account, Config.NEW_SVR_INDEX)
             db.lastLoginTime = os.time()
             db.lastLogoutTime = os.time() 
         end