Kaynağa Gözat

给闯关排行榜增加第二排序条件-时间

gitxsm 1 yıl önce
ebeveyn
işleme
6fd9630e7d

+ 1 - 0
script/module/battle/BattleLogic.lua

@@ -2579,6 +2579,7 @@ function setBattleID(human, guajiID)
     end
 
     -- 刷新排行榜
+    human.db.maxBattleTime = os.time()
     BRoleLogic.updateData(BillboardDefine.TYPE_BATTLE, human.db)
 end
 

+ 4 - 3
script/module/billboard/BRoleLogic.lua

@@ -23,7 +23,7 @@ local AbsActLogic = require("absAct.AbsActLogic")
 function loadBoard()
     -- 角色
     local cnt = 0
-    LuaMongo.find(DB.db_char, nil, BillboardDB.fields)
+    LuaMongo.find(DB.db_char, nil, BillboardDB.newFiles)
     while true do
         local data = {}
         if not LuaMongo.next(data) then
@@ -62,7 +62,8 @@ end
 function getValues(boardType, db)
     if boardType == BillboardDefine.TYPE_BATTLE then
         local fininID = db.guajiID
-        return (fininID > 0) and fininID
+        local passTimes = db.maxBattleTime or 0
+        return (fininID > 0) and fininID, passTimes
     elseif boardType == BillboardDefine.TYPE_TOWER then
         if db.tower and (db.tower.lv or 0) > 0 then
             return db.tower.lv, db.tower.usetime
@@ -93,7 +94,7 @@ function cmpValues(boardType, data1, data2)
         return data1.value1 > data2.value1
     end
     if data1.value2 ~= data2.value2 then
-        if boardType == BillboardDefine.TYPE_TOWER then
+        if boardType == BillboardDefine.TYPE_TOWER or boardType == BillboardDefine.TYPE_BATTLE then
             return data1.value2 < data2.value2
         else
             return data1.value2 > data2.value2

+ 4 - 0
script/module/billboard/BillboardDB.lua

@@ -5,10 +5,14 @@ local BJJCLogic = require("billboard.BJJCLogic")
 local JjcLadderMiddle = require("jjcLadder.JjcLadderMiddle")
 
 fields = {zhandouli=1,guajiID=1,lv=1,tower=1,combatHero=1,heroBag =1, lianyu = 1 , dragonCopy = 1, absAct = 1}
+
+local newFiles = {zhandouli=1,guajiID=1,lv=1,tower=1,combatHero=1,heroBag =1, lianyu = 1 , dragonCopy = 1, absAct = 1, maxBattleTime = 1}
+
 unionFields = {lv=1,zhandouli=1}
 
 db = db or {}
 
+
 -- 初始排行榜
 function initBoard(boardType)
     local board = {}

+ 1 - 1
script/module/billboard/BillboardLogic.lua

@@ -29,7 +29,7 @@ local function fontValuesShow(human, net, boardType, rankData)
 		local battleID = rankData and rankData.value1 or 0
 		local battleName, mapName = BattleLogic.getBattleName(human, battleID)
 		net.value1 = mapName .. battleName
-		net.value2 = ""
+		net.value2 = tostring(rankData and rankData.value2 or "")
 	else
 		net.value1 = tostring(rankData and rankData.value1 or "")
 		net.value2 = tostring(rankData and rankData.value2 or "")

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

@@ -212,6 +212,7 @@ function createDefaultRole(account)
 		shop = nil,                             -- 商店购买物品次数记录 shop[shopType][itemID] = cnt
 		
 		battleType = 1,							-- 战役类型(1、普通,2、精英,3、困难)
+		maxBattleTime = nil,					-- 最新关卡通关时间
 		guajiID = 0,						    -- 已通关关卡/挂机关卡
 		guajiID_elite = 0,						-- 精英- 已通关关卡/挂机关卡
 		guajiID_hard = 0,						-- 困难- 已通关关卡/挂机关卡