回精華區
作者itoc, 信區: itoc
標題[功能] bmw.c 提醒服務
時間02/10/17
作者: itoc (不太發展實驗室) 看板: plan
標題: [功能] 提醒服務
時間: Wed Sep  4 10:52:15 2002                          Updated: 2006/04/17

  NPC 的功能太無聊,那改一下
  就可以變提醒服務 (要改成半點報時也是可以)

: maple.p

int bmw_send(UTMP *callee, BMW *bmw);
+ void bmw_alarm(void);

: bmw.c:bmw_alarm() 新增這函式於 bmw_send() 後面

void
bmw_alarm()
{
  static time_t alarm = 0;
  time_t now;

  time(&now);
  if (now > alarm)
  {
    if (alarm)      /* 上站後的第一次不算 */
    {
      BMW bmw;
      char *msg[2] = {"站起來動動懶腰吧", "電腦打太多不好喔"};

      strcpy(bmw.msg, msg[now % 2]);
      bmw.caller = cutmp;
      bmw.sender = 0;                  /* 不可回覆 */
      bmw.recver = cuser.userno;
      strcpy(bmw.userid, "自動報時");
      bmw_send(cutmp, &bmw);
    }

    alarm = now + 30 * 60;  /* 每 30 分 alarm 一次 */
  }
}

: visio.c:outf()

void
outf(str)
  uschar *str;
{
+ bmw_alarm();
  outz(str);
  prints("%*s\033[m", d_cols, "");
}


  放在 outf(),如果使用者 idle 時,那麼就不提醒

--
□ 本文章由 itocitoc.Dorm-GD2.NCTU.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻