回精華區
作者itoc, 信區: itoc
標題[功能] pal.c 看見隱形名單
時間04/02/07
作者: itoc (風調雨順,國泰民安) 看板: plan
標題: [功能] 看見隱形名單
時間: Thu Jul 10 08:49:28 2003                          Updated: 2004/10/02

  要先做 "pal.c 麻吉類型" 這篇 patch

  看見隱形名單:當我一般隱形時,麻吉還是可以看到我

: maple.p

+ int is_mymate(int userno);
int is_mygood(int userno);
int is_mybad(int userno);
+ int is_omate(UTMP *up);
int is_ogood(UTMP *up);
int is_obad(UTMP *up);
int is_bgood(int bno);

: pal.c:is_mymate() 加在 is_mygood() 前面

int
is_mymate(userno)                /*  1: 我設對方為麻吉 */
  int userno;
{
  return belong_pal(pal_pool, pal_max, userno | MATE_MASK);
}

: pal.c:is_mygood()

- return belong_pal(pal_pool, pal_max, userno);
+ return belong_pal(pal_pool, pal_max, userno) || is_mymate(userno);

: pal.c:is_omate() 加在 is_ogood() 前面

int
is_omate(up)                     /*  1: 對方設我為麻吉 */
  UTMP *up;
{
  return belong_pal(up->pal_spool, up->pal_max, cuser.userno | MATE_MASK);
}

: pal.c:is_ogood()

- return belong_pal(up->pal_spool, up->pal_max, cuser.userno);
+ return belong_pal(up->pal_spool, up->pal_max, cuser.userno) || is_omate(up);

: bmw.c:can_see()

int                     /* 1:可看見 0:不可看見 */
can_see(my, up)
  UTMP *my;
  UTMP *up;
{
  usint mylevel, myufo, urufo;

+ if (my == cutmp)      /* 檢查我是不是對方的麻吉 */
+ {
+   if (is_omate(up))
+     return 1;
+ }
+ else                  /* 檢查對方是不是我的麻吉 */
+ {
+   if (is_mymate(my->userno))
+     return 1;
+ }

: bmw.c:can_override(up)

  else
  {
    /* itoc.020321: 對方若隱形傳我水球,我也可以被動回 */
    BMW *bmw;

    for (ufo = bmw_locus - 1; ufo >= 0; ufo--)
    {
      bmw = &bmw_lslot[ufo];
      if (bmw->sender == up->userno)
        return 1;
    }

+   if (is_omate(up))
+     return 1;
  }

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