回精華區
作者jd.bbs@bbs.eo.nhit.edu.tw (jd妹代打中), 看板: plan
標題[修改] 鍊金術程式(加入鍊金紀錄)
時間光域小族 (Wed Nov 27 15:36:18 2002) Updated: 2005/11/29
小弟所管的BBS站剛由MagicBBS系統轉為Maple-itoc版
我試著把某些原Magic上的一些遊戲移植到Maple-itoc上

適合 金:銀 = 1:1000000 的金融制度

: global.h

#ifdef HAVE_BUY
#define FN_RUN_BANK_LOG "run/bank.log"  /* 匯錢記錄 */
#endif

+ #ifdef HAVE_GAME
+ #define FN_RUN_MAKEGOLD_LOG "run/makegold.log" /* jd.021127: 煉金術紀錄 */
+ #endif

: account.c:main()

#ifdef HAVE_BUY
    /* itoc.020831: 把 匯錢記錄 放入 [BN_SECURITY] */
    sprintf(title, "%s匯錢記錄", date);
    keeplog(FN_RUN_BANK_LOG, BN_SECURITY, title, 2);
#endif

+ #ifdef HAVE_GAME
+   /* jd.021127: 把 鍊金記錄 放入 [BN_SECURITY] */
+   sprintf(title, "%s鍊金記錄", date);
+   keeplog(FN_RUN_MAKEGOLD_LOG, BN_SECURITY, title, 2);
+ #endif

: so/Makefile

SO =    ... alchemy.so

: so/alchemy.c

/*-------------------------------------------------------*/
/* alchemy.c    ( NTHU CS MapleBBS Ver 3.10 )            */
/*-------------------------------------------------------*/
/* target : 煉金術                                       */
/* create : 02/11/27                                     */
/* update :   /  /                                       */
/* author : jd.bbs@bbs.nhit.edu.tw                       */
/*-------------------------------------------------------*/

#include "bbs.h"

#ifdef HAVE_GAME

#define mouts(x,y,s)    { move(x, y); outs(s); }

int
main_alchemy()
{
  int make_gold, randnum;

  srand(time(NULL) + cuser.userno);

  while(1)
  {
    vs_bar("煉金術");

    mouts(2, 0, "只需花費 50000 銀幣");
    mouts(3, 0, "就有機會得到金幣!");
    move(4, 0);
    prints("\033[1;30m您目前有 %d 銀 %d 金 \033[m", cuser.money, cuser.gold);

    if (vans("要扣掉 50000 銀幣來煉金嗎(Y/N)?[N] ") != 'y')
      break;

    if (cuser.money < 50000)
      break;
    cuser.money -= 50000;

    mouts(6, 15, "嘿嘿~錢不太夠了,來變一點錢吧~");
    mouts(7, 15, "統御四方的金色之龍啊~");
    mouts(8, 15, "遵從您的光輝,請借我力量~");
    sleep(1);

    make_gold = 0;
    randnum = rnd(120);
    if (randnum < 3)
    {
      make_gold = 1 + randnum;
      cuser.gold += make_gold;
      mouts(9, 15, "給我更多的金幣$吧~");
      move(11,15);
      prints("耶~運氣真不錯~煉得了 %d 金~", make_gold);
    }
    else if (randnum < 20)
    {
      mouts(9, 15, "ZZzz~");
      mouts(11, 15, "咦~怎麼咒語念到一半~睡著了啦~~嗚嗚~");
    }
    else if (randnum < 40)
    {
      mouts(9, 15, "我要…我要…我要金幣啦…");
      mouts(11, 15, "咦?金幣呢?");
    }
    else if (randnum < 60)
    {
      mouts(9, 15, "<\033[1;33m金色之龍\033[m>你找我嗎?");
      mouts(11,15, "<\033[1;33m金色之龍\033[m>沒空,不要吵!");
    }
    else
    {
      mouts(9, 15, "哈哈~快給我錢吧~");
      mouts(10, 15, "(等待~)");
      mouts(11, 15, "(等待~)");
      mouts(12, 15, "咦~怎麼甚麼也沒發生...:Q");
    }

    /* jd.021127: 加入煉金記錄,以防大量暴力煉金 */
    if (make_gold)      /* 煉金成功才記錄 */
    {
      char buf[80];
      sprintf(buf, "%-13s煉得 %d 金 (%s)\n", cuser.userid, make_gold, Now());
      f_cat(FN_RUN_MAKEGOLD_LOG, buf);
    }

    vmsg("煉金好累喔");
  }

  return 0;
}
#endif  /* HAVE_GAME */

: menu.c

+ "bin/alchemy.so:main_alchemy", 0, - M_GAME,
+ "Alchemy    ♂ 煉金大法 ♀",

--
□ Origin: 光域小族 - bbs.eo.nhit.edu.tw
□ From: sw107-199.adsl.seed.net.tw
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻