Explorar el Código

广播消息加字段

cyzhao hace 11 meses
padre
commit
ef9fe21e9a
Se han modificado 1 ficheros con 10 adiciones y 2 borrados
  1. 10 2
      Gameserver/App/process/SystemProc.php

+ 10 - 2
Gameserver/App/process/SystemProc.php

@@ -52,6 +52,12 @@ class SysMessageModel extends Object_ext {
 
     /** @var int */
     public $ts;
+    
+    /**
+     * 同时获取多个相同的东西,通关这个来控制 zset里member的唯一
+     * @var type
+     */
+    public $uniqueMask;
 
 }
 
@@ -147,7 +153,7 @@ class SystemProc {
      */
     private static function mem_addSysMsg_zset($zoneid, $value) {
         $ts = $value->ts;
-        $key = MemKey_GameRun::Game_SysMsgByZone_zset($zoneid);
+        $key = MemKey_GameRun::Game_SysMsgByZone_zset($zoneid);             
         gMem()->zadd($key, array(json_encode($value) => $ts));                  # 插入消息
         gMem()->zremrangebyscore($key, 0, $ts - self::SYS_MSG_OUTTS);           # 清理过期数据
     }
@@ -159,10 +165,12 @@ class SystemProc {
      * @param array $datas
      */
     static function pushSysMessage($zoneid, $type, $datas) {
+        $randNum = mt_rand(1, now());
         $newMsg = new SysMessageModel(array(#                                   # 添加新系统消息
             'type' => $type,
             'datas' => $datas,
-            'ts' => now()
+            'ts' => now(),
+            'uniqueMask' => $randNum
         ));
         self::mem_addSysMsg_zset($zoneid, $newMsg);                             # 写入mem
     }