回精華區
作者itoc, 信區: itoc
標題[功能] ulist.c 使用者名單 tag 廣播
時間04/10/07
作者: itoc (核心動力) 看板: itoc
標題: Re: [問題]Tagger放到bmw
時間: 2004/03/04 Thu 14:50:26                           Updated: 2005/06/12

  送廣播給被 tag 的這些人

  必須先新增這功能
  「tag 放進使用者名單」

: ulist.c:ulist_widecast() 新增此函式在 ulist_broadcast() 後面

static int
ulist_widecast(xo)
  XO *xo;
{
  int tag, locus, pos;
  BMW benz;
  UTMP *up;
  extern TagItem TagList[];

  if (!HAS_PERM(PERM_PAGE))
    return XO_NONE;

  tag = AskTag("特定對象廣播");

  if (tag < 0)
    return XO_FOOT;

  if (!tag)     /* 好友廣播或站長全站廣播 */
    return ulist_broadcast(xo);

  benz.caller = NULL;
  bmw_edit(NULL, "★廣播:", &benz);

  if (!benz.caller)      /* bmw_edit() 中回答 No 不送出廣播 */
    return XO_FOOT;

  /* itoc.000213: 加 "> " 為了與一般水球區分 */
  sprintf(benz.userid, "%s> ", cuser.userid);

  locus = 0;

  do
  {
    pos = TagList[locus].recno;
    up = ulist_pool[pos];
    if (up->pid != TagList[locus].chrono)     /* 該位子換人了 */
      continue;

#ifdef HAVE_NOBROAD
    if (up->ufo & UFO_RCVER)
      continue;
#endif

    if (can_override(up))
    {
      benz.recver = up->userno;
      bmw_send(up, &benz);
    }
  } while (++locus < tag);

  return XO_FOOT;
}

: ulist.c:ulist_cb[]

- 'B', ulist_broadcast,
+ 'B', ulist_widecast,

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