summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-03-01 21:39:35 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-03-01 21:39:35 +0800
commita5cf62f62f6dc6e9114f778f7050c0f96886e5d5 (patch)
treef050e0683f293e1958a2bb60af6e5bec9d2c1761 /mbbsd
parent8f54d0a4670439d227e46f140c30e227e9840c06 (diff)
downloadpttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.tar
pttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.tar.gz
pttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.tar.bz2
pttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.tar.lz
pttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.tar.xz
pttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.tar.zst
pttbbs-a5cf62f62f6dc6e9114f778f7050c0f96886e5d5.zip
- improve violation-pay process (prevent misunderstanding)
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3955 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/bbs.c44
1 files changed, 28 insertions, 16 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index beb48a8c..c8da182b 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -180,6 +180,7 @@ save_violatelaw(void)
vmsg("你沒有被開罰單~~");
return 0;
}
+
day = cuser.vl_count*3 - (now - cuser.timeviolatelaw)/86400;
if (day > 0) {
vmsgf("依照違規次數, 你還需要反省 %d 天才能繳罰單", day);
@@ -196,35 +197,46 @@ save_violatelaw(void)
return 0;
}
move(5, 0);
+ prints("這是你第 %d 次違法 必須繳出 %d $Ptt\n\n",
+ cuser.vl_count, cuser.vl_count * 1000);
outs(ANSI_COLOR(1;37) "你知道嗎? 因為你的違法 "
"已經造成很多人的不便" ANSI_RESET "\n");
outs(ANSI_COLOR(1;37) "你是否確定以後不會再犯了?" ANSI_RESET "\n");
- if (!getdata(10, 0, "確定嗎?[Y/n]:", ok, sizeof(ok), LCECHO) ||
- ok[0] == 'n' || ok[0] == 'N') {
- mouts(22, 0, ANSI_COLOR(1;31) "等你想通了再來吧!! "
- "我相信你不會知錯不改的~~~" ANSI_RESET);
- pressanykey();
- return 0;
- }
- snprintf(buf, sizeof(buf), "這是你第 %d 次違法 必須繳出 %d $Ptt",
- cuser.vl_count, cuser.vl_count * 1000);
- mouts(11, 0, buf);
-
- if (!getdata(10, 0, "要付錢[Y/n]:", ok, sizeof(ok), LCECHO) ||
- ok[0] == 'N' || ok[0] == 'n') {
-
- mouts(22, 0, ANSI_COLOR(1;31) " 嗯 存夠錢 再來吧!!!" ANSI_RESET);
+ if (!getdata(10, 0, "確定嗎?[y/N]:", ok, sizeof(ok), LCECHO) ||
+ ok[0] != 'y')
+ {
+ move(15, 0);
+ outs( ANSI_COLOR(1;31) "不想付錢嗎? 還是不知道要按 y ?\n"
+ "請養成看清楚系統訊息的好習慣。\n"
+ "等你想通了再來吧!! 我相信你不會知錯不改的~~~" ANSI_RESET);
pressanykey();
return 0;
}
+ //Ptt:check one more time
reload_money();
- if (cuser.money < (int)cuser.vl_count * 1000) return 0; //Ptt:check one more time
+ if (cuser.money < (int)cuser.vl_count * 1000)
+ {
+ log_filef("log/violation", LOG_CREAT,
+ "%24.24s %s pay-violation error: race-conditionn hack?\n",
+ ctime4(&now), cuser.userid);
+ vmsg("錢怎麼忽然不夠了? 試圖欺騙系統被查到將砍帳號!");
+ return 0;
+ }
demoney(-1000 * cuser.vl_count);
cuser.userlevel &= (~PERM_VIOLATELAW);
+ // force overriding alerts
+ if(currutmp)
+ currutmp->alerts &= ~ALERT_PWD_PERM;
passwd_update(usernum, &cuser);
+ sendalert(cuser.userid, ALERT_PWD_PERM);
+ log_filef("log/violation", LOG_CREAT,
+ "%24.24s %s pay-violation: $%d complete.\n",
+ ctime4(&now), cuser.userid, (int)cuser.vl_count*1000);
+
+ vmsg("罰單已付,請盡速重新登入。");
return 0;
}