GodsAreaDB.lua 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. -- 诸神圣域
  2. local LuaMongo = _G.lua_mongo
  3. local DB = require("common.DB")
  4. local CreateRole = require("role.CreateRole")
  5. local GodsAreaConfig = require("excel.godsArea").rankList
  6. local rankList = {}
  7. local updateDBFile = {id = nil}
  8. local function generatePlayer(rank)
  9. local player = {}
  10. player.rank = rank
  11. player.head = CreateRole.getRandomHead()
  12. player.name = CreateRole.getRandomName()
  13. player.body = CreateRole.getRandomBody()
  14. player.headFrame = CreateRole.getRandomHeadFrame()
  15. player.level = 100
  16. -- 真实玩家才有这些数据
  17. -- player.uid = ""
  18. -- player.serverId = 0
  19. -- player.power = 0
  20. -- player.heroList =
  21. -- {
  22. -- heroUuid = heroUuid,
  23. -- heroStar = heroStar,
  24. -- heroLevel = heroLevel,
  25. -- heroCamp = heroCamp,
  26. -- heroBody = heroBody,
  27. -- }
  28. return player
  29. end
  30. local function loadData()
  31. local len = 0
  32. LuaMongo.find(DB.db_gods_area)
  33. while true do
  34. local player = {}
  35. if not LuaMongo.next(player) then
  36. break
  37. end
  38. len = len + 1
  39. rankList[len] = player
  40. end
  41. if #rankList > 0 then
  42. table.sort(rankList, function (a, b)
  43. return a.rank < b.rank
  44. end)
  45. end
  46. end
  47. local function insertData(data)
  48. LuaMongo.insert(DB.db_gods_area, data)
  49. end
  50. local function updateData(data)
  51. updateDBFile._id = data._id
  52. LuaMongo.update(DB.db_gods_area, updateDBFile, data)
  53. end
  54. local function initRankList()
  55. for rank in ipairs(GodsAreaConfig) do
  56. rankList[rank] = generatePlayer(rank)
  57. insertData(rankList[rank])
  58. end
  59. end
  60. function initAfterStart()
  61. if _G.is_middle ~= true then return end
  62. if #rankList > 0 then
  63. return
  64. end
  65. loadData()
  66. if #rankList <= 0 then
  67. initRankList()
  68. end
  69. end
  70. local function getNew()
  71. end
  72. -- 合服后处理排行榜
  73. function UpdateAfterMergeSrv(mergeSrvTb)
  74. end
  75. function GetRankList()
  76. return rankList
  77. end
  78. function UpdateRankData(rank, newRankData)
  79. rankList[rank] = newRankData
  80. updateData(rankList[rank])
  81. end