回精華區
作者itoc.bbs@processor.tfcis.org (1999 Commencement) 看板: plan
標題Re: [功能] 水球系統
時間XEON (Sat, 28 Jun 2003 09:12:00 +0800 (CST)) Updated: 2005/03/09
※ 引述《Frequency (頻率)》之銘言:
> 而是改成...如果我回了bmw_pos目前的水球...
> 下一次call bmw_display()時...星號會變成"ˇ"...
> 也就是說...回過的水球會變成打勾...

: struct.h   // 抓 1-bit 給 replied

typedef struct
{
  time_t btime;
  UTMP *caller;                 /* who call-in me ? */
  int sender;                   /* calling userno */
  int recver;                   /* called userno */
  char userid[IDLEN + 1 + 2];   /* itoc.010529: 保留 2 byte 給廣播符號 > */
- char msg[69];                 /* 水球 */
+ char msg[68];                 /* 水球 */
+ char replied;                 /* 1: 已回水球 */
}      BMW;                     /* bbs message write */

: bmw.c:bmw_edit()

  if (vans(fpath) != 'n')
  {
    int i;

+   if (bbsmode == M_BMW_REPLY)
+   {
+     BMW *benz;
+
+     /* ^R 回過的水球標記已回 */
+     benz = &bmw_lslot[bmw_pos];
+     benz->replied = 1;
+   }

    bmw->caller = cutmp;
    bmw->sender = cuser.userno;
    strcpy(bmw->userid, userid = cuser.userid);

    ...
    ...

+   bmw->replied = 0;
    time(&bmw->btime);
    usr_fpath(fpath, userid, fn_bmw);
    rec_add(fpath, bmw, sizeof(BMW));

: bmw.c  版面自行調整

#define BMW_FORMAT  "\033[1;33;46m★%s \033[37;45m %s \033[m" /* 收到的水球 */
#define BMW_FORMAT2 "\033[1;33;41m☆%s \033[34;47m %s \033[m" /* 送出的水球 */
+ #define BMW_FORMAT4 "\033[1;33;46mˇ%s \033[37;45m %s \033[m" /* 已回覆 */

: bmw.c:bmw_display()

  for (; max >= 0; max--)
  {     /* 從較新的水球往下印 */
    bmw = &bmw_lslot[max];
    move(i, 0);
    clrtoeol();
-   prints("  " BMW_FORMAT, bmw->userid, bmw->msg);
+   prints(bmw->replied ? "  " BMW_FORMAT4 : "  " BMW_FORMAT,
+     bmw->userid, bmw->msg);
    i++;
  }

--
=[:摃�◣�:Origin ]|[     O�processor.tfcis.org    ]|[�搟說:]=
=[:摃�╱�:Author ]|[       itoc.Dorm11.NCTU.edu.tw       ]|[�:]=
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻