summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjack <jack@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-05-12 13:32:41 +0800
committerjack <jack@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2004-05-12 13:32:41 +0800
commit9021c4c58207589713bd1824d33b70b4c0f3e1a9 (patch)
treef3a99707996870ba9b16ca585857126131140b5d
parent3eb88868c5ccdc95ce8002dff5e8cd227368303e (diff)
downloadpttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.tar
pttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.tar.gz
pttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.tar.bz2
pttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.tar.lz
pttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.tar.xz
pttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.tar.zst
pttbbs-9021c4c58207589713bd1824d33b70b4c0f3e1a9.zip
Replaced gomo.c with i18n version
git-svn-id: http://opensvn.csie.org/pttbbs/branches/Jaky.i18n@1954 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--mbbsd/gamble.c79
-rw-r--r--mbbsd/gomo.c61
2 files changed, 64 insertions, 76 deletions
diff --git a/mbbsd/gamble.c b/mbbsd/gamble.c
index 512df7f2..3152a77d 100644
--- a/mbbsd/gamble.c
+++ b/mbbsd/gamble.c
@@ -32,20 +32,20 @@ show_ticket_data(char betname[MAX_ITEM][MAX_ITEM_LEN],char *direct, int *price,
clear();
if (bh) {
- snprintf(genbuf, sizeof(genbuf), "%s 賭盤", bh->brdname);
+ snprintf(genbuf, sizeof(genbuf), SHM->i18nstr[cuser.language][1061], bh->brdname);
if (bh->endgamble && now < bh->endgamble &&
bh->endgamble - now < 3600) {
snprintf(t, sizeof(t),
- "封盤倒數 %d 秒", (int)(bh->endgamble - now));
+ SHM->i18nstr[cuser.language][1062], (int)(bh->endgamble - now));
showtitle(genbuf, t);
} else
showtitle(genbuf, BBSNAME);
} else
- showtitle("Ptt賭盤", BBSNAME);
+ showtitle(SHM->i18nstr[cuser.language][1063], BBSNAME);
move(2, 0);
snprintf(genbuf, sizeof(genbuf), "%s/" FN_TICKET_ITEMS, direct);
if (!(fp = fopen(genbuf, "r"))) {
- prints("\n目前並沒有舉辦賭盤\n");
+ prints(SHM->i18nstr[cuser.language][1064]);
snprintf(genbuf, sizeof(genbuf), "%s/" FN_TICKET_OUTCOME, direct);
more(genbuf, NA);
return 0;
@@ -56,15 +56,11 @@ show_ticket_data(char betname[MAX_ITEM][MAX_ITEM_LEN],char *direct, int *price,
strtok(betname[count], "\r\n");
fclose(fp);
- prints("\033[32m站規:\033[m 1.可購買以下不同類型的彩票。每張要花 \033[32m%d\033[m 元。\n"
- " 2.%s\n"
- " 3.開獎時只有一種彩票中獎, 有購買該彩票者, 則可依購買的張數均分總賭金。\n"
- " 4.每筆獎金由系統抽取 5%% 之稅金%s。\n\n"
- "\033[32m%s:\033[m", *price,
- bh ? "此賭盤由板主負責舉辦並且決定開獎時間結果, 站長不管, 願賭服輸。" :
- "系統每天 2:00 11:00 16:00 21:00 開獎。",
- bh ? ", 其中 2% 分給開獎板主" : "",
- bh ? "板主自訂規則及說明" : "前幾次開獎結果");
+ prints(SHM->i18nstr[cuser.language][1065], *price,
+ bh ? SHM->i18nstr[cuser.language][1066] :
+ SHM->i18nstr[cuser.language][1067],
+ bh ? SHM->i18nstr[cuser.language][1068] : "",
+ bh ? SHM->i18nstr[cuser.language][1069] : SHM->i18nstr[cuser.language][1070]);
snprintf(genbuf, sizeof(genbuf), "%s/" FN_TICKET, direct);
@@ -74,7 +70,7 @@ show_ticket_data(char betname[MAX_ITEM][MAX_ITEM_LEN],char *direct, int *price,
}
show_file(genbuf, 8, -1, NO_RELOAD);
move(15, 0);
- prints("\033[1;32m目前下注狀況:\033[m\n");
+ prints(SHM->i18nstr[cuser.language][1071]);
total = load_ticket_record(direct, ticket);
@@ -84,9 +80,9 @@ show_ticket_data(char betname[MAX_ITEM][MAX_ITEM_LEN],char *direct, int *price,
if (i == 3)
prints("\n");
}
- prints("\033[m\n\033[42m 下注總金額:\033[31m %d 元 \033[m", total * (*price));
+ prints(SHM->i18nstr[cuser.language][1072], total * (*price));
if (end) {
- prints("\n賭盤已經停止下注\n");
+ prints(SHM->i18nstr[cuser.language][1073]);
return -count;
}
return count;
@@ -140,8 +136,7 @@ ticket(int bid)
}
move(20, 0);
reload_money();
- prints("\033[44m錢: %-10d \033[m\n\033[1m請選擇要購買的種類(1~%d)"
- "[Q:離開]\033[m:", cuser.money, count);
+ prints(SHM->i18nstr[cuser.language][1074], cuser.money, count);
ch = igetch();
/*--
Tim011127
@@ -159,7 +154,7 @@ ticket(int bid)
ch_buyitem(price, "etc/buyticket", &n, 0);
if (bid && !dashf(fn_ticket)) {
- vmsg("哇!! 耐ㄚ捏...板主已經停止下注了 不能賭嚕");
+ vmsg(SHM->i18nstr[cuser.language][1075]);
break;
}
@@ -191,7 +186,7 @@ openticket(int bid)
do {
do {
getdata(20, 0,
- "\033[1m選擇中獎的號碼(0:不開獎 99:取消退錢)\033[m:", buf, 3, LCECHO);
+ SHM->i18nstr[cuser.language][1076], buf, 3, LCECHO);
bet = atoi(buf);
move(0, 0);
clrtoeol();
@@ -200,13 +195,13 @@ openticket(int bid)
unlockutmpmode();
return 0;
}
- getdata(21, 0, "\033[1m再次確認輸入號碼\033[m:", buf, 3, LCECHO);
+ getdata(21, 0, SHM->i18nstr[cuser.language][1077], buf, 3, LCECHO);
} while (bet != atoi(buf));
if (fork()) {
/* Ptt: 用 fork() 防止不正常斷線洗錢 */
move(22, 0);
- prints("系統將於稍後自動把中獎結果公佈於看板 若參加者多會需要幾分鐘時間..");
+ prints(SHM->i18nstr[cuser.language][1078]);
pressanykey();
unlockutmpmode();
return 0;
@@ -235,20 +230,20 @@ openticket(int bid)
if (bet != 98) {
money = total * price;
demoney(money * 0.02);
- mail_redenvelop("[賭場抽頭]", cuser.userid, money * 0.02, 'n');
+ mail_redenvelop(SHM->i18nstr[cuser.language][1079], cuser.userid, money * 0.02, 'n');
money = ticket[bet] ? money * 0.95 / ticket[bet] : 9999999;
} else {
- vice(price * 10, "賭盤退錢手續費");
+ vice(price * 10, SHM->i18nstr[cuser.language][1080]);
money = price;
}
setbfile(outcome, bh->brdname, FN_TICKET_OUTCOME);
if ((fp = fopen(outcome, "w"))) {
- fprintf(fp, "賭盤說明\n");
+ fprintf(fp, SHM->i18nstr[cuser.language][1081]);
while (fgets(buf, sizeof(buf), fp1)) {
buf[sizeof(buf)-1] = 0;
fprintf(fp, "%s", buf);
}
- fprintf(fp, "下注情況\n");
+ fprintf(fp, SHM->i18nstr[cuser.language][1082]);
fprintf(fp, "\033[33m");
for (i = 0; i < count; i++) {
@@ -259,19 +254,15 @@ openticket(int bid)
fprintf(fp, "\033[m\n");
if (bet != 98) {
- fprintf(fp, "\n\n開獎時間: %s \n\n"
- "開獎結果: %s \n\n"
- "所有金額: %d 元 \n"
- "中獎比例: %d張/%d張 (%f)\n"
- "每張中獎彩票可得 %d 枚P幣 \n\n",
+ fprintf(fp, SHM->i18nstr[cuser.language][1083],
Cdatelite(&now), betname[bet], total * price, ticket[bet], total,
(float)ticket[bet] / total, money);
- fprintf(fp, "%s 賭盤開出:%s 所有金額:%d 元 獎金/張:%d 元 機率:%1.2f\n\n",
+ fprintf(fp, SHM->i18nstr[cuser.language][1084],
Cdatelite(&now), betname[bet], total * price, money,
total ? (float)ticket[bet] / total : 0);
} else
- fprintf(fp, "\n\n賭盤取消退錢: %s \n\n", Cdatelite(&now));
+ fprintf(fp, SHM->i18nstr[cuser.language][1085], Cdatelite(&now));
} // XXX somebody may use fp even fp==NULL
fclose(fp1);
@@ -290,37 +281,37 @@ openticket(int bid)
while (fscanf(fp1, "%s %d %d\n", userid, &mybet, &i) != EOF) {
if (bet == 98 && mybet >= 0 && mybet < count) {
if (fp)
- fprintf(fp, "%s 買了 %d 張 %s, 退回 %d 枚P幣\n"
+ fprintf(fp, SHM->i18nstr[cuser.language][1086]
,userid, i, betname[mybet], money * i);
snprintf(buf, sizeof(buf),
- "%s 賭場退錢! $ %d", bh->brdname, money * i);
+ SHM->i18nstr[cuser.language][1087], bh->brdname, money * i);
} else if (mybet == bet) {
if (fp)
- fprintf(fp, "恭喜 %s 買了%d 張 %s, 獲得 %d 枚P幣\n"
+ fprintf(fp, SHM->i18nstr[cuser.language][1088]
,userid, i, betname[mybet], money * i);
- snprintf(buf, sizeof(buf), "%s 中獎咧! $ %d", bh->brdname, money * i);
+ snprintf(buf, sizeof(buf), SHM->i18nstr[cuser.language][1089], bh->brdname, money * i);
} else
continue;
if ((uid = searchuser(userid)) == 0)
continue;
deumoney(uid, money * i);
- mail_id(userid, buf, "etc/ticket.win", "Ptt賭場");
+ mail_id(userid, buf, "etc/ticket.win", SHM->i18nstr[cuser.language][1090]);
}
fclose(fp1);
}
if (fp)
{
- fprintf(fp, "\n--\n※ 開獎站 :" BBSNAME "(" MYHOSTNAME
- ") \n◆ From: %s\n", fromhost);
+ fprintf(fp, "%s"BBSNAME"("MYHOSTNAME"%s%s\n", SHM->i18nstr[cuser.language][1091],
+ SHM->i18nstr[cuser.language][1092], fromhost);
fclose(fp);
}
if (bet != 98)
- snprintf(buf, sizeof(buf), "[公告] %s 賭盤開獎", bh->brdname);
+ snprintf(buf, sizeof(buf), SHM->i18nstr[cuser.language][1093], bh->brdname);
else
- snprintf(buf, sizeof(buf), "[公告] %s 賭盤取消", bh->brdname);
- post_file(bh->brdname, buf, outcome, "[賭神]");
- post_file("Record", buf + 7, outcome, "[馬路探子]");
+ snprintf(buf, sizeof(buf), SHM->i18nstr[cuser.language][1094], bh->brdname);
+ post_file(bh->brdname, buf, outcome, SHM->i18nstr[cuser.language][1095]);
+ post_file("Record", buf + 7, outcome, SHM->i18nstr[cuser.language][1096]);
setbfile(buf, bh->brdname, FN_TICKET_RECORD);
unlink(buf);
diff --git a/mbbsd/gomo.c b/mbbsd/gomo.c
index 82e9af8f..ba68e4ba 100644
--- a/mbbsd/gomo.c
+++ b/mbbsd/gomo.c
@@ -3,7 +3,6 @@
#define QCAST int (*)(const void *, const void *)
-static char *chess[] = {"●", "○"};
static int tick, lastcount, mylasttick, hislasttick;
typedef struct {
@@ -165,7 +164,7 @@ HO_add(Horder_t * mv)
static void
HO_undo(Horder_t * mv)
{
- char *str = "┌┬┐├┼┤└┴┘";
+ char *str = SHM->i18nstr[cuser.language][1099];
int n1, n2, loc;
*mv = *(--v);
@@ -198,7 +197,7 @@ HO_log(Horder_t *pool, char *user)
i = 0;
do {
- fprintf(log, "[%2d]%s ==> %c%d%c", i + 1, chess[i % 2],
+ fprintf(log, "[%2d]%s ==> %c%d%c", i + 1, SHM->i18nstr[cuser.language][1097 + i % 2],
'A' + ptr->x, ptr->y + 1, (i % 2) ? '\n' : '\t');
i++;
} while (++ptr < v);
@@ -208,9 +207,9 @@ HO_log(Horder_t *pool, char *user)
stampfile(buf1, &mymail);
mymail.filemode = FILE_READ ;
- strlcpy(mymail.owner, "[備.忘.錄]", sizeof(mymail.owner));
+ strlcpy(mymail.owner, SHM->i18nstr[cuser.language][1100], sizeof(mymail.owner));
snprintf(mymail.title, sizeof(mymail.title),
- "\033[37;41m棋譜\033[m %s VS %s", cuser.userid, user);
+ SHM->i18nstr[cuser.language][1101], cuser.userid, user);
sethomedir(title, cuser.userid);
Rename(buf, buf1);
append_record(title, &mymail, sizeof(mymail));
@@ -227,12 +226,12 @@ countgomo(Horder_t *pool)
static int
chkmv(Horder_t * mv, int color, int limit)
{
- char *xtype[] = {"\033[1;31m跳三\033[m", "\033[1;31m活三\033[m",
- "\033[1;31m死四\033[m", "\033[1;31m跳四\033[m",
- "\033[1;31m活四\033[m", "\033[1;31m四三\033[m",
- "\033[1;31m雙三\033[m", "\033[1;31m雙四\033[m",
- "\033[1;31m雙四\033[m", "\033[1;31m連六\033[m",
- "\033[1;31m連五\033[m"};
+ char *xtype[] = {SHM->i18nstr[cuser.language][1102], SHM->i18nstr[cuser.language][1103],
+ SHM->i18nstr[cuser.language][1104], SHM->i18nstr[cuser.language][1105],
+ SHM->i18nstr[cuser.language][1106], SHM->i18nstr[cuser.language][1107],
+ SHM->i18nstr[cuser.language][1108], SHM->i18nstr[cuser.language][1109],
+ SHM->i18nstr[cuser.language][1110], SHM->i18nstr[cuser.language][1111],
+ SHM->i18nstr[cuser.language][1112]};
int rule = getstyle(mv->x, mv->y, color, limit);
if (rule > 1 && rule < 13) {
move(15, 40);
@@ -251,7 +250,7 @@ gomo_key(int fd, int ch, Horder_t * mv)
pbuf[0] = ch;
if (fd)
add_io(0, 0);
- oldgetdata(17, 0, "直接指定位置 :", pbuf, sizeof(pbuf), DOECHO);
+ oldgetdata(17, 0, SHM->i18nstr[cuser.language][1113], pbuf, sizeof(pbuf), DOECHO);
if (fd)
add_io(fd, 0);
vx = pbuf[0] - 'a';
@@ -306,24 +305,22 @@ gomoku(int fd)
setutmpmode(M_FIVE);
clear();
- prints("\033[1;46m 五子棋對戰 \033[45m%30s VS %-30s\033[m",
+ prints(SHM->i18nstr[cuser.language][1114],
cuser.userid, my->mateid);
show_file("etc/@five", 1, -1, ONLY_COLOR);
move(11, 40);
- prints("我是 %s", me == BBLACK ? "先手 ●, 有禁手" : "後手 ○");
+ prints(SHM->i18nstr[cuser.language][1115], me == BBLACK ? SHM->i18nstr[cuser.language][1116] : SHM->i18nstr[cuser.language][1117]);
move(16, 40);
prints("\033[1;33m%s", cuser.userid);
move(17, 40);
prints("\033[1;33m%s", my->mateid);
move(16, 60);
- prints("\033[1;31m%d\033[37m勝 \033[34m%d\033[37m敗 \033[36m%d\033[37m和"
- "\033[m", cuser.five_win, cuser.five_lose, cuser.five_tie);
+ prints(SHM->i18nstr[cuser.language][1118], cuser.five_win, cuser.five_lose, cuser.five_tie);
getuser(my->mateid);
move(17, 60);
- prints("\033[1;31m%d\033[37m勝 \033[34m%d\033[37m敗 \033[36m%d\033[37m"
- "和\033[m", xuser.five_win, xuser.five_lose, xuser.five_tie);
+ prints(SHM->i18nstr[cuser.language][1119], xuser.five_win, xuser.five_lose, xuser.five_tie);
cuser.five_lose++;
/* 一進來先加一場敗場, 贏了後再扣回去, 避免快輸了惡意斷線 */
@@ -334,26 +331,26 @@ gomoku(int fd)
hewantpass = iwantpass = 0;
mv.x = mv.y = 7;
move(18, 40);
- prints("%s時間還剩%d:%02d\n", my->turn ? "你的" : "對方",
+ prints(SHM->i18nstr[cuser.language][1120], my->turn ? SHM->i18nstr[cuser.language][1121] : SHM->i18nstr[cuser.language][1122],
MAX_TIME / 60, MAX_TIME % 60);
for (;;) {
move(13, 40);
- outs(my->turn ? "輪到自己下了!" : "等待對方下子..");
+ outs(my->turn ? SHM->i18nstr[cuser.language][1123] : SHM->i18nstr[cuser.language][1124]);
if (lastcount != tick - now) {
lastcount = tick - now;
move(18, 40);
- prints("%s時間還剩%d:%02d\n", my->turn ? "你的" : "對方",
+ prints(SHM->i18nstr[cuser.language][1125], my->turn ? SHM->i18nstr[cuser.language][1126] : SHM->i18nstr[cuser.language][1127],
lastcount / 60, lastcount % 60);
if (lastcount <= 0 && my->turn) {
move(19, 40);
- outs("時間已到, 你輸了");
+ outs(SHM->i18nstr[cuser.language][1128]);
my->five_lose++;
send(fd, '\0', 1, 0);
break;
}
if (lastcount <= -5 && !my->turn) {
move(19, 40);
- outs("對手太久沒下, 你贏了!");
+ outs(SHM->i18nstr[cuser.language][1129]);
cuser.five_lose--;
cuser.five_win++;
my->five_win++;
@@ -366,7 +363,7 @@ gomoku(int fd)
}
move(14, 40);
if (hewantpass) {
- outs("\033[1;32m和棋要求!\033[m");
+ outs(SHM->i18nstr[cuser.language][1130]);
bell();
} else
clrtoeol();
@@ -423,10 +420,10 @@ gomoku(int fd)
my->five_win++;
}
passwd_update(usernum, &cuser);
- outmsg("對方認輸了!!");
+ outmsg(SHM->i18nstr[cuser.language][1131]);
break;
} else {
- outmsg("你超過時間未下子, 輸了!");
+ outmsg(SHM->i18nstr[cuser.language][1132]);
my->five_lose++;
break;
}
@@ -444,7 +441,7 @@ gomoku(int fd)
}
}
if (my->turn && mv.x == -1 && mv.y == -1) {
- outmsg("對方悔棋");
+ outmsg(SHM->i18nstr[cuser.language][1133]);
tick = hislasttick;
HO_undo(&mv);
my->turn = 0;
@@ -459,10 +456,10 @@ gomoku(int fd)
ku[(int)mv.x][(int)mv.y] = he;
bell();
BGOTO(mv.x, mv.y);
- outs(chess[he - 1]);
+ outs(SHM->i18nstr[cuser.language][1097 + he - 1]);
if (win) {
- outmsg(win == 1 ? "對方贏了!" : "對方禁手");
+ outmsg(win == 1 ? SHM->i18nstr[cuser.language][1134] : SHM->i18nstr[cuser.language][1135]);
if (win != 1) {
cuser.five_lose--;
cuser.five_win++;
@@ -486,7 +483,7 @@ gomoku(int fd)
int win;
HO_add(&mv);
BGOTO(mv.x, mv.y);
- outs(chess[me - 1]);
+ outs(SHM->i18nstr[cuser.language][1097 + me - 1]);
win = chkmv(&mv, me, me == BBLACK);
ku[(int)mv.x][(int)mv.y] = me;
mylasttick = tick;
@@ -495,7 +492,7 @@ gomoku(int fd)
if (send(fd, &mv, sizeof(Horder_t), 0) != sizeof(Horder_t))
break;
if (win) {
- outmsg(win == 1 ? "我贏囉~~" : "禁手輸了");
+ outmsg(win == 1 ? SHM->i18nstr[cuser.language][1136] : SHM->i18nstr[cuser.language][1137]);
if (win == 1) {
cuser.five_lose--;
cuser.five_win++;
@@ -517,7 +514,7 @@ gomoku(int fd)
if (v > pool) {
char ans[4];
- getdata(19, 0, "要保留本局成棋譜嗎?(y/N)", ans, sizeof(ans), LCECHO);
+ getdata(19, 0, SHM->i18nstr[cuser.language][1138], ans, sizeof(ans), LCECHO);
if (*ans == 'y')
HO_log(pool, my->mateid);
}