回精華區
作者itoc.bbs@processor.tfcis.org (核心動力) 看板: plan
標題Re: 【請教】使用者名單…
時間動力核心 (2004/10/19 Tue 10:00:40) Updated: 2004/10/19
※ 引述《online (只在上線時愛你)》之銘言:
> 有關使用者名單,能不能像kk一樣在最下方顯示"公告or活動"的訊息呢?

  先做精華區的 xover.c 預覽
  再做以下變動

: xover.c:preview_news() 加在 preview_tip() 後面

static void
preview_news()
{
  int i, j, msg_num;
  char msg[128];
  FILE *fp;

  if (!(fp = fopen(FN_ETC_NEWS, "r")))
    return;

  fgets(msg, 128, fp);
  msg_num = atoi(msg);         /* 第一行記錄總篇數 */
  i = time(0) % msg_num + 1;
  j = 0;

  while (j < i)                        /* 取第 i 個 tip */
  {
    fgets(msg, 128, fp);
    if (msg[0] == '#')
      j++;
  }

  fgets(msg, 128, fp);
  outs(msg);
  fgets(msg, 128, fp);
  outs(msg);
  fclose(fp);
}

: xover.c:xo_knee()

  case XZ_ULIST:
-   {
-     typedef UTMP *pickup;
-     extern pickup ulist_pool[];
-     preview_userid(ulist_pool[xo->pos]->userid);
-   }
+   preview_news();
    break;

: xover.c:xover()

  int pos, num, zone, sysmode;
  XO *xo;
  KeyFunc *xcmd, *cb;

+ if (cmd == XZ_ULIST)      /* 使用者名單強制有 feet */
+   XO_TALL = b_lines - 7;

  for (;;)
  {

  ...
  ...

    else if (cmd == '!')
    {
+     if (zone == XZ_ULIST)
+       cmd = XO_NONE;
+     else
+     {
      XO_TALL = (XO_TALL == b_lines - 3) ? b_lines - 7 : b_lines - 3;
      cmd = XO_LOAD;
+     }
    }

: global.h

#define FN_ETC_TIP      "etc/tip"               /* 每日小秘訣 */

+ #define FN_ETC_TIP      "etc/news"               /* 新聞 */

: admutil.c:a_xfile()

#ifdef HAVE_TIP
    "每日小秘訣",
#endif
+   "新聞",

  ...
  ...

#ifdef HAVE_TIP
    FN_ETC_TIP,
#endif
+   FN_ETC_NEWS,

--------------------------------------------------------------------

  然後從 BBS 站上 0Admin -> Xfile 去編輯「新聞」這文件,格式如下

>>>>>>> 第一行要記錄總共有幾則新聞,每則新聞有三行 (一行#、二行內容)
>>>>>>> 下行為檔案開始 (本行不包括)
04

# 01
新聞一第一行內容
新聞一第二行內容

# 02
新聞二第一行內容
新聞二第二行內容

# 03
新聞三第一行內容
新聞三第二行內容

# 04
新聞四第一行內容
新聞四第二行內容
>>>>>>> 上行為檔案結束 (本行不包括)


--
  Origin:  Maple-itoc˙動力核心  processor.tfcis.org 
  Author: itoc itoc.Dorm11.NCTU.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻