summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-03-18 01:37:41 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-03-18 01:37:41 +0800
commit97e8490c749924dbdc01452dc352769876ac4133 (patch)
tree5fb7d3f933f0d84cb7501c30946aecf78a06dee9 /mbbsd
parent815f339adaddde5452365589a27503df4ead9c20 (diff)
downloadpttbbs-97e8490c749924dbdc01452dc352769876ac4133.tar
pttbbs-97e8490c749924dbdc01452dc352769876ac4133.tar.gz
pttbbs-97e8490c749924dbdc01452dc352769876ac4133.tar.bz2
pttbbs-97e8490c749924dbdc01452dc352769876ac4133.tar.lz
pttbbs-97e8490c749924dbdc01452dc352769876ac4133.tar.xz
pttbbs-97e8490c749924dbdc01452dc352769876ac4133.tar.zst
pttbbs-97e8490c749924dbdc01452dc352769876ac4133.zip
- register: allow expiring accounts created more than one year before.
- chicken: demand money after user decided pet's name (otherwise aborting connection will not get pet) git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4003 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/chicken.c14
-rw-r--r--mbbsd/register.c20
2 files changed, 24 insertions, 10 deletions
diff --git a/mbbsd/chicken.c b/mbbsd/chicken.c
index fd51d6d0..4de2bb85 100644
--- a/mbbsd/chicken.c
+++ b/mbbsd/chicken.c
@@ -200,16 +200,18 @@ new_chicken(void)
mychicken.type = i;
- reload_money();
price = egg_price[(int)mychicken.type];
+ reload_money();
if (cuser.money < price) {
vmsgf("錢不夠買蛋蛋,蛋蛋要 %d 元", price);
return 0;
}
- vice(price, "寵物蛋");
+
while (strlen(mychicken.name) < 3)
+ {
getdata(8, 0, "幫牠取個好名字:", mychicken.name,
sizeof(mychicken.name), DOECHO);
+ }
mychicken.lastvisit = mychicken.birthday = mychicken.cbirth = now;
mychicken.food = 0;
@@ -228,6 +230,14 @@ new_chicken(void)
mychicken.mm = 0;
mychicken.mm_max = 0;
+ reload_money();
+ if (cuser.money < price)
+ {
+ vmsg("錢不夠了。");
+ return 0;
+ }
+ vice(price, "寵物蛋");
+
// flush it
setuserfile(fn, FN_CHICKEN);
fd = open(fn, O_WRONLY|O_CREAT, 0666);
diff --git a/mbbsd/register.c b/mbbsd/register.c
index ec79f1c6..31a2b7e9 100644
--- a/mbbsd/register.c
+++ b/mbbsd/register.c
@@ -263,13 +263,16 @@ check_and_expire_account(int uid, const userec_t * urec)
snprintf(genbuf, sizeof(genbuf), "#%d %-12s %15.15s %d %d %d",
uid, urec->userid, ctime4(&(urec->lastlogin)) + 4,
urec->numlogins, urec->numposts, val);
- if (val > -1 * 60 * 24 * 365) {
- log_usies("CLEAN", genbuf);
- kill_user(uid, urec->userid);
- } else {
- val = 0;
- log_usies("DATED", genbuf);
- }
+
+ // 2008/03/18: ??? 這邊原來的 code 到底目的為何?
+ // 原 code 從 rev1 開始, 一年內 CLEAN+清,
+ // 一年以上寫 "DATED", 真是猜不透啊
+ // 推測原來的人可能想寫 "一年以上刪,一年內傳回 0"
+ // 這是由於找不到帳號時會 for-loop 跑 check_and_expire_account,
+ // 其它時候則是 new account 直接跑。
+ log_usies("DATED", genbuf);
+ log_usies("CLEAN", genbuf);
+ kill_user(uid, urec->userid);
}
return val;
}
@@ -548,7 +551,8 @@ new_register(void)
if (bad_user_id(passbuf))
outs("無法接受這個代號,請使用英文字母,並且不要包含空格\n");
else if ((id = getuser(passbuf, &xuser)) &&
- (minute = check_and_expire_account(id, &xuser)) >= 0) {
+ (minute = check_and_expire_account(id, &xuser)) > 0)
+ {
if (minute == 999999) // XXX magic number. It should be greater than MAX_USERS at least.
outs("此代號已經有人使用 是不死之身");
else {