BigRPlayerShow.lua 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. if human.db.lv < 10 then
  34. return bl
  35. end
  36. local showTipsData = human.db.showTipsData
  37. local pRank1LoginShowTime = showTipsData.pRank1LoginShowTime
  38. if not pRank1LoginShowTime then
  39. return bl
  40. end
  41. if Util.isSameDay(pRank1LoginShowTime) then
  42. bl = false
  43. end
  44. return bl
  45. end
  46. local function updateShowTipsData(human)
  47. human.db.showTipsData = human.db.showTipsData or {}
  48. human.db.showTipsData.pRank1LoginShowTime = os.time()
  49. end
  50. -- 战力排行榜排名第一的玩家上线的处理
  51. local function powerRankTopOneLogin(human)
  52. -- if not pRank1lastBroadcastTime then
  53. -- pRank1lastBroadcastTime = getpRank1LastBroadcastTime()
  54. -- end
  55. -- if pRank1lastBroadcastTime and Util.isSameDay(pRank1lastBroadcastTime) then
  56. -- return
  57. -- end
  58. local rankList = BillboardLogic.GetRankList(BillboardDefine.TYPE_ZHANDOULI)
  59. if not rankList or not rankList[1] or rankList[1].uuid ~= human.db._id then
  60. return
  61. end
  62. local msg = Msg.gc.GC_POWERRANK_TOPONE_LOGIN
  63. msg.playerName = human.db.name
  64. for uuid, h in pairs(ObjHuman.onlineUuid) do
  65. if uuid ~= human.db._id and isShowTips(h) then
  66. Msg.send(msg, h.fd)
  67. updateShowTipsData(h)
  68. end
  69. end
  70. -- updatepRank1LastBroadcastTime()
  71. end
  72. function onLogin(human)
  73. powerRankTopOneLogin(human)
  74. end