BigRPlayerShow.lua 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. -- 大R玩家实力显示
  2. local Msg = require("core.Msg")
  3. local ObjHuman = require("core.ObjHuman")
  4. local BillboardLogic = require("billboard.BillboardLogic")
  5. local BillboardDefine = require("billboard.BillboardDefine")
  6. local Util = require("common.Util")
  7. -- local CommonDB = require("common.CommonDB")
  8. -- local pRank1lastBroadcastTime
  9. -- local function getBigRPlayerData()
  10. -- return CommonDB.getValueByKey(CommonDB.KEY_BIGRPLAYER_SHOW_DATA)
  11. -- end
  12. -- local function updateBigRPlayerData(newData)
  13. -- CommonDB.updateValue(CommonDB.KEY_BIGRPLAYER_SHOW_DATA, newData)
  14. -- end
  15. -- local function getpRank1LastBroadcastTime()
  16. -- local data = getBigRPlayerData()
  17. -- return data and data.pRank1lastBroadcastTime
  18. -- end
  19. -- local function updatepRank1LastBroadcastTime()
  20. -- local data = getBigRPlayerData()
  21. -- data = data or {}
  22. -- local now = os.time()
  23. -- data.pRank1lastBroadcastTime = now
  24. -- updateBigRPlayerData(data)
  25. -- -- 更新缓存
  26. -- pRank1lastBroadcastTime = now
  27. -- end
  28. local function isShowTips(human)
  29. local bl = true
  30. if not human.db.showTipsData then
  31. return bl
  32. end
  33. local showTipsData = human.db.showTipsData
  34. local pRank1LoginShowTime = showTipsData.pRank1LoginShowTime
  35. if not pRank1LoginShowTime then
  36. return bl
  37. end
  38. if Util.isSameDay(pRank1LoginShowTime) then
  39. bl = false
  40. end
  41. return bl
  42. end
  43. local function updateShowTipsData(human)
  44. human.db.showTipsData = human.db.showTipsData or {}
  45. human.db.showTipsData.pRank1LoginShowTime = os.time()
  46. end
  47. -- 战力排行榜排名第一的玩家上线的处理
  48. local function powerRankTopOneLogin(human)
  49. -- if not pRank1lastBroadcastTime then
  50. -- pRank1lastBroadcastTime = getpRank1LastBroadcastTime()
  51. -- end
  52. -- if pRank1lastBroadcastTime and Util.isSameDay(pRank1lastBroadcastTime) then
  53. -- return
  54. -- end
  55. local rankList = BillboardLogic.GetRankList(BillboardDefine.TYPE_ZHANDOULI)
  56. if not rankList or not rankList[1] or rankList[1].uuid ~= human.db._id then
  57. return
  58. end
  59. local msg = Msg.gc.GC_POWERRANK_TOPONE_LOGIN
  60. msg.playerName = human.db.name
  61. for uuid, h in pairs(ObjHuman.onlineUuid) do
  62. if uuid ~= human.db._id and isShowTips(h) then
  63. Msg.send(msg, h.fd)
  64. updateShowTipsData(h)
  65. end
  66. end
  67. -- updatepRank1LastBroadcastTime()
  68. end
  69. function onLogin(human)
  70. powerRankTopOneLogin(human)
  71. end