回精華區
作者chrisliu.bbs@163.22.23.76 (ChrisLiu*) 看板: plan
標題Re: 請問點歌分級~
時間蘿莉小站 (2004/05/24 Mon 04:05:07) Updated: 2004/05/26
※ 引述《smallcupid.bbs@bbs.ckit.edu.tw (五月 新旅程)》之銘言:
> 就是有關點歌方面的
> 想要功能就是
> 普通user 點歌上限 3首
> 板主點歌上限 6首
> 並且可以用金錢買上限..比如一首上線.就是花100金幣
> 和可以調整優良板主或user點歌上限

  改 struct ACCT,要轉換 .ACCT

: include/struch.h

  在 struct ACCT 同樣位置加 numsong

  int numlogins;        /* 上站次數 */
  int numposts;         /* 發表次數 */
  int numemails;        /* 寄發 Inetrnet E-mail 次數 */
+ int numsong;          /* 點歌的上限 */

: acct.c:acct_show()

  usr_fpath(buf, uid, fn_dir);
- prints("  \033[32m個人信件:\033[37m%d 封\n", rec_num(buf, sizeof(HDR)));
+ prints("  \033[32m個人信件:\033[37m%-35d\033[32m點歌剩餘:\033[37m%d\n",
+   rec_num(buf, sizeof(HDR)), u->numsong);

: acct.c:acct_setup()

    sprintf(buf, "%d", u->numemails);
    vget(++i, 0, "發信次數:", buf, 10, GCARRY);
    if ((num = atoi(buf)) >= 0)
      x.numemails = num;

+   sprintf(buf, "%d", u->numsong);
+   vget(++i, 0, "點歌剩餘:", buf, 10, GCARRY);
+   if ((num = atoi(buf)) >= 0)
+     x.numsong = num;

: so/bank.c

在 b_xempt() 此函式之後新增下列函式

int
b_buysong()
{
  if ((HAS_PERM(PERM_BM) && (cuser.numsong > 5)) || (cuser.numsong > 2))
  {
    vmsg("您目前剩餘的點歌次數已達上限,無法再購買");
  }
  else
  {
    if (cuser.gold < 100)
    {
      vmsg("要 100 金幣才能購買點歌上限喔");
    }
    else if (vans("是否花 100 金幣購買一次點歌(Y/N)?[N] ") == 'y')
    {
      cuser.gold -= 100;
      cuser.numsong++;
    }
  }
}

: so/song.c : song_order()

  if (cuser.money < 100)
  {
    vmsg("要 100 銀幣才能點歌到看板喔");
    return XO_FOOT;
  }

+ if (cuser.numsong <= 0)
+ {
+   vmsg("您的點歌上限已經為 0,無法點歌");
+   return XO_FOOT;
+ }

  if (!(hdr = song_get(xo, fpath)))
    return XO_NONE;

  if (!vget(b_lines, 0, "點歌給誰:", des, sizeof(des), DOECHO))
    return XO_FOOT;
  if (!vget(b_lines, 0, "想說的話:", say, sizeof(say), DOECHO))
    strcpy(say, ".........");

  annoy = vans("想要匿名嗎(Y/N)?[N] ") == 'y';

  if (vans("確定點歌嗎(Y/N)?[Y] ") == 'n')
    return XO_FOOT;

  xo_fpath(fpath, xo->dir, hdr);
  if (!(fpr = fopen(fpath, "r+")))
    return XO_FOOT;

- cuser.money -= 100;
+ cuser.numsong--;

: maple/menu.c

static MENU menu_buy[] =
{
  "bin/bank.so:x_bank", PERM_BASIC, - M_GAME,
  "Bank       ♂ 信託銀行 ♀",

  ...

  "bin/bank.so:b_xempt", PERM_BASIC, - M_GAME,
  "Xempt      ♂ 永久保留 ♀",

+ "bin/bank.so:b_buysong", PERM_BASIC, - M_GAME,
+ "BuySong    ♂ 買點歌數 ♀",

  menu_tool, PERM_MENU + 'B', M_XMENU,
  "金融市場"
};



我不知道您是不是這個意思耶 ;p

因為點歌要扣上限 又要扣金幣... 好痛啊 ">< 錢不好賺呢 ;ppp

那點歌的100銀幣 是不是要消掉才好啊 ^^?

要消掉的話 把 song_order 函式裡面 跟 cuser.money 有關的弄掉就好

--
 ▃▄▅▆▄▆▄▃▃▄▅▆▄▃▁▁▃▄▅▄▆▃▁▁▃▆▄▅▅▆▆▆▃▃▁▁▃▁ r
        世界一直在�� 唯一不變的�u是 累   地球轉�F一圈 時間 走�漱ㄙ黎�覺     a
 那個離開的你 ��乎 還住在我心�怑� 可是 你的笑臉 卻已經覆了一層灰       i
   對�A而言 我是否只是�@片落葉  在�A眼底 永遠忽�                n
            對我而言 你或許也是一片落葉      在我面前 隨�椰茩�              g
        琱�難過 更不�嵼�   因為我知道 一�w會有一個人��代你住在我心�怑�       i
   那�� 我可能會忘了你的名字 忘了�A的臉  但 我會永遠記得 這一段�簪u無畏     r
 ▃▄▅▆▄▆▄▃▃▄▅▆▄▃▁▁▃▄▅▄▆▃▁▁▃▆▄▅▅▆▆▆▃▃▁▁▃▁ l
--
  ╭─    ╭─ 暨南國際大學  本文作者: chrisliu (ChrisLiu*)
  │      ├─   N.C.N.U.    上站地點: ip196.puli34-10-10.ncnu.edu.tw
  ╰─ivil╰─ngineering     土木王朝之 蘿莉小站     bbs.ce.ncnu.edu.tw 
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻