📄 pip_store.c
字号:
} if (smoney < 0) { pressanykey("放弃买入..."); } else if (d.money < smoney * p[choice].money) { pressanykey("你的钱没有那麽多喔.."); } else { sprintf(inbuf, "确定买入物品 [%s] 数量 %d 个吗?(店家卖价 %d) [y/N]:", p[choice].name, smoney, smoney * p[choice].money);#ifdef MAPLE getdata(b_lines - 1, 1, inbuf, genbuf, 2, 1, 0);#else getdata(b_lines - 1, 1, inbuf, genbuf, 2, DOECHO, true);#endif // END MAPLE if (genbuf[0] == 'y' || genbuf[0] == 'Y') { oldnum[choice] += smoney; d.money -= smoney * p[choice].money; sprintf(inbuf, "老板给了你%d个%s", smoney, p[choice].name); pressanykey(inbuf); pressanykey(p[choice].msguse); if (mode == 3 && choice == 1) { d.happy += rand() % 10 + 20 * smoney; d.satisfy += rand() % 10 + 20 * smoney; } if (mode == 3 && choice == 2) { d.happy += (rand() % 2 + 2) * smoney; d.wisdom += (2 + 10 / (d.wisdom / 100 + 1)) * smoney; d.character += (rand() % 4 + 2) * smoney; d.art += (rand() % 2 + 1) * smoney; } } else { pressanykey("放弃买入..."); } } } else { sprintf(inbuf, "放弃买入....."); pressanykey(inbuf); } break; case 'S': case 's': if (mode == 3) { pressanykey("这些东西不能卖喔...."); break; } move(b_lines - 1, 1); sprintf(inbuf, "想要卖出啥呢? [0]放弃卖出 [1~%d]物品商号", oldnum[0]);#ifdef MAPLE getdata(b_lines - 1, 1, inbuf, genbuf, 3, LCECHO, "0");#else getdata(b_lines - 1, 1, inbuf, genbuf, 3, DOECHO, true); if ((genbuf[0] >= 'A') && (genbuf[0] <= 'Z')) genbuf[0] = genbuf[0] | 32;#endif // END MAPLE choice = atoi(genbuf); if (choice >= 1 && choice <= oldnum[0]) { clrchyiuan(6, 18); if (rand() % 2 > 0) show_buy_pic(p[choice].pic1); else show_buy_pic(p[choice].pic2); move(b_lines - 1, 0); clrtoeol(); move(b_lines - 1, 1); smoney = 0; sprintf(inbuf, "你要卖出物品 [%s] 多少个呢?(上限 %d)", p[choice].name, oldnum[choice]);#ifdef MAPLE getdata(b_lines - 1, 1, inbuf, genbuf, 6, 1, 0);#else getdata(b_lines - 1, 1, inbuf, genbuf, 6, DOECHO, true);#endif // END MAPLE smoney = atoi(genbuf); if (smoney < 0) { pressanykey("放弃卖出..."); } else if (smoney > oldnum[choice]) { sprintf(inbuf, "你的 [%s] 没有那麽多个喔", p[choice].name); pressanykey(inbuf); } else { sprintf(inbuf, "确定卖出物品 [%s] 数量 %d 个吗?(店家买价 %d) [y/N]:", p[choice].name, smoney, smoney * p[choice].money * 8 / 10);#ifdef MAPLE getdata(b_lines - 1, 1, inbuf, genbuf, 2, 1, 0);#else getdata(b_lines - 1, 1, inbuf, genbuf, 2, DOECHO, true);#endif // END MAPLE if (genbuf[0] == 'y' || genbuf[0] == 'Y') { oldnum[choice] -= smoney; d.money += smoney * p[choice].money * 8 / 10; sprintf(inbuf, "老板拿走了你的%d个%s", smoney, p[choice].name); pressanykey(inbuf); } else { pressanykey("放弃卖出..."); } } } else { sprintf(inbuf, "放弃卖出....."); pressanykey(inbuf); } break; case 'Q': case 'q': sprintf(inbuf, "金钱交易共 %d 元,离开 %s ", d.money - oldmoney, shopname[mode]); pressanykey(inbuf); break;#ifdef MAPLE case Ctrl('R'): if (currutmp->msgs[0].last_pid) { show_last_call_in(); my_write(currutmp->msgs[0].last_pid, "水球丢回去:"); } break;#endif // END MAPLE } } while ((pipkey != 'Q') && (pipkey != 'q') && (pipkey != KEY_LEFT)); return 0;}int pip_weapon_doing_menu(variance, type, p) /* 武器购买画面 */int variance;int type;struct weapon *p;{ time_t now; register int n = 0; register char *s; char buf[256]; char ans[5]; char shortbuf[100]; const static char menutitle[5][11] = { "头部装备区", "右手装备区", "左手装备区", "身体装备区", "足部装备区" }; int pipkey; char choicekey[5]; int choice; do { clear(); showtitle(menutitle[type], BBS_FULL_NAME); show_weapon_pic(0);/* move(10,2); sprintf(buf,"[1;37m现今能力:体力Max:[36m%-5d[37m 法力Max:[36m%-5d[37m 攻击:[36m%-5d[37m 防御:[36m%-5d[37m 速度:[36m%-5d [m", d.maxhp,d.maxmp,d.attack,d.resist,d.speed); prints(buf);*/ move(11, 2); sprintf(buf, "[1;37;41m [NO] [器具名] [体力] [法力] [速度] [攻击] [防御] [速度] [售 价] [m"); prints(buf); move(12, 2); sprintf(buf, " [1;31m——[37m白色 可以购买[31m——[32m绿色 拥有装备[31m——[33m黄色 钱钱不够[31m——[35m紫色 能力不足[31m——[m"); prints(buf); n = 0; while (s = p[n].name) { move(13 + n, 2); if (variance != 0 && variance == (n)) { /*本身有的 */ sprintf(buf, "[1;32m (%2d) %-10s %4d %4d %4d %4d %4d %4d %6d[m", n, p[n].name, p[n].needmaxhp, p[n].needmaxmp, p[n].needspeed, p[n].attack, p[n].resist, p[n].speed, p[n].cost); } else if (d.maxhp < p[n].needmaxhp || d.maxmp < p[n].needmaxmp || d.speed < p[n].needspeed) { /*能力不足 */ sprintf(buf, "[1;35m (%2d) %-10s %4d %4d %4d %4d %4d %4d %6d[m", n, p[n].name, p[n].needmaxhp, p[n].needmaxmp, p[n].needspeed, p[n].attack, p[n].resist, p[n].speed, p[n].cost); } else if (d.money < p[n].cost) { /*钱不够的 */ sprintf(buf, "[1;33m (%2d) %-10s %4d %4d %4d %4d %4d %4d %6d[m", n, p[n].name, p[n].needmaxhp, p[n].needmaxmp, p[n].needspeed, p[n].attack, p[n].resist, p[n].speed, p[n].cost); } else { sprintf(buf, "[1;37m (%2d) %-10s %4d %4d %4d %4d %4d %4d %6d[m", n, p[n].name, p[n].needmaxhp, p[n].needmaxmp, p[n].needspeed, p[n].attack, p[n].resist, p[n].speed, p[n].cost); } prints(buf); n++; } move(b_lines, 0); sprintf(buf, "[1;44;37m 武器购买选单 [46m [B]购买武器 [S]卖掉装备 [W]个人资料 [Q]跳出: [m"); prints(buf); now = time(0); pip_time_change(now); pipkey = igetkey(); pip_time_change(now); switch (pipkey) { case 'B': case 'b': move(b_lines - 1, 1); sprintf(shortbuf, "想要购买啥呢? 你的钱钱[%d]元:[数字]", d.money); prints(shortbuf);#ifdef MAPLE getdata(b_lines - 1, 1, shortbuf, choicekey, 4, LCECHO, "0");#else getdata(b_lines - 1, 1, shortbuf, choicekey, 4, DOECHO, true); if ((choicekey[0] >= 'A') && (choicekey[0] <= 'Z')) choicekey[0] = choicekey[0] | 32;#endif // END MAPLE choice = atoi(choicekey); if (choice >= 0 && choice <= n) { move(b_lines - 1, 0); clrtoeol(); move(b_lines - 1, 1); if (choice == 0) { /*解除 */ sprintf(shortbuf, "放弃购买..."); pressanykey(shortbuf); } else if (variance == choice) { /*早已经有啦 */ sprintf(shortbuf, "你早已经有 %s 罗", p[variance].name); pressanykey(shortbuf); } else if (p[choice].cost >= (d.money + p[variance].sell)) { /*钱不够 */ sprintf(shortbuf, "这个要 %d 元,你的钱不够啦!", p[choice].cost); pressanykey(shortbuf); } else if (d.maxhp < p[choice].needmaxhp || d.maxmp < p[choice].needmaxmp || d.speed < p[choice].needspeed) { /*能力不足 */ sprintf(shortbuf, "需要HP %d MP %d SPEED %d 喔", p[choice].needmaxhp, p[choice].needmaxmp, p[choice].needspeed); pressanykey(shortbuf); } else { /*顺利购买 */ sprintf(shortbuf, "你确定要购买 %s 吗?($%d) [y/N]", p[choice].name, p[choice].cost);#ifdef MAPLE getdata(b_lines - 1, 1, shortbuf, ans, 2, 1, 0);#else getdata(b_lines - 1, 1, shortbuf, ans, 2, DOECHO, true);#endif // END MAPLE if (ans[0] == 'y' || ans[0] == 'Y') { sprintf(shortbuf, "小鸡已经装配上 %s 了", p[choice].name); pressanykey(shortbuf); d.attack += (p[choice].attack - p[variance].attack); d.resist += (p[choice].resist - p[variance].resist); d.speed += (p[choice].speed - p[variance].speed); d.money -= (p[choice].cost - p[variance].sell); variance = choice; } else { sprintf(shortbuf, "放弃购买....."); pressanykey(shortbuf); } } } break; case 'S': case 's': if (variance != 0) { sprintf(shortbuf, "你确定要卖掉%s吗? 卖价:%d [y/N]", p[variance].name, p[variance].sell);#ifdef MAPLE getdata(b_lines - 1, 1, shortbuf, ans, 2, 1, 0);#else getdata(b_lines - 1, 1, shortbuf, ans, 2, DOECHO, true);#endif // END MAPLE if (ans[0] == 'y' || ans[0] == 'Y') { sprintf(shortbuf, "装备 %s 卖了 %d", p[variance].name, p[variance].sell); d.attack -= p[variance].attack; d.resist -= p[variance].resist; d.speed -= p[variance].speed; d.money += p[variance].sell; pressanykey(shortbuf); variance = 0; } else { sprintf(shortbuf, "ccc..我回心转意了..."); pressanykey(shortbuf); } } else if (variance == 0) { sprintf(shortbuf, "你本来就没有装备了..."); pressanykey(shortbuf); variance = 0; } break; case 'W': case 'w': pip_data_list(); break;#ifdef MAPLE case Ctrl('R'): if (currutmp->msgs[0].last_pid) { show_last_call_in(); my_write(currutmp->msgs[0].last_pid, "水球丢回去:"); } break;#endif // END MAPLE } } while ((pipkey != 'Q') && (pipkey != 'q') && (pipkey != KEY_LEFT)); return variance;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -