⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pip_special.c

📁 bbs server linux平台下软件源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*---------------------------------------------------------------------------*//* 特殊选单:看病 减肥 战斗 拜访 朝见                                         *//*                                                                           *//*---------------------------------------------------------------------------*/#include <time.h>#include "bbs.h"#include "pip.h"extern struct chicken d;extern time_t start_time;extern time_t lasttime;//#define getdata(a, b, c , d, e, f, g) getdata(a,b,c,d,e,f,NULL,g)const struct royalset royallist[] = {    {"T", "拜访对象", 0, 0, 0, 0, "", "" /*NULL,NULL */ },    {"A", "星空骑兵连", 1, 10, 15, 100, "你真好,来陪我聊天..",     "守卫星空的安全是很辛苦的.."},    {"B", "星空007", 1, 100, 25, 200, "真是礼貌的小鸡..我喜欢...",     "特务就是秘密保护站长安全的人.."},    {"C", "镇国大将军", 1, 200, 30, 250, "告诉你唷!当年那个战役很精彩喔..",     "你真是高贵优雅的小鸡..."},    {"D", "参谋总务长", 1, 300, 35, 300, "我帮站长管理这个国家唷..",     "你的声音很好听耶..我很喜欢喔...:)"},    {"E", "小天使站长", 1, 400, 35, 300, "你很有教养唷!很高兴认识你...",     "优雅的你,请让我帮你祈福...."},    {"F", "风筝手站长", 1, 500, 40, 350, "你好可爱喔..我喜欢你唷....",     "对啦..以后要多多来和我玩喔..."},    {"G", "乖小孩站长", 1, 550, 40, 350,     "跟你讲话很快乐喔..不像站长一样无聊..",     "来,坐我膝盖上,听我讲故事.."},    {"H", "小米克站长", 1, 600, 50, 400, "一站之长责任重大呀..:)..",     "谢谢你听我讲话..以后要多来喔..."},    {"I", "星空灌水群", 2, 60, 0, 0, "不错唷..蛮机灵的喔..很可爱....",     "来  我们一起来灌水吧...."},    {"J", "青年帅武官", 0, 0, 0, 0,     "你好,我是武官,刚从银河边境回来休息..",     "希望下次还能见到你...:)"},//NULL,         NULL,NULL,    NULL,    NULL,NULL,NULL//{NULL,                        0,      0,      0,      0, NULL, NULL}};int pip_see_doctor(){                               /*看医生 */    char buf[256];    long savemoney;    savemoney = d.sick * 25;    if (d.sick <= 0) {        pressanykey("哇哩..没病来医院干嘛..被骂了..呜~~");        d.character -= (rand() % 3 + 1);        if (d.character < 0)            d.character = 0;        d.happy -= (rand() % 3 + 3);        d.satisfy -= rand() % 3 + 2;    } else if (d.money < savemoney) {        sprintf(buf, "你的病要花 %d 元喔....你不够钱啦...", savemoney);        pressanykey(buf);    } else if (d.sick > 0 && d.money >= savemoney) {        d.tired -= rand() % 10 + 20;        if (d.tired < 0)            d.tired = 0;        d.sick = 0;        d.money = d.money - savemoney;        move(4, 0);        show_special_pic(1);        pressanykey("药到病除..没有副作用!!");    }    return 0;}/*减肥*/int pip_change_weight(){    char genbuf[5];    char inbuf[256];    int weightmp;    move(b_lines - 1, 0);    clrtoeol();    show_special_pic(2);#ifdef MAPLE    getdata(b_lines - 1, 1, "你的选择是? [Q]离开:", genbuf, 2, 1, 0);#else    getdata(b_lines - 1, 1, "你的选择是? [Q]离开:", genbuf, 2, DOECHO, true);#endif                          // END MAPLE    if (genbuf[0] == '1' || genbuf[0] == '2' || genbuf[0] == '3' || genbuf[0] == '4') {        switch (genbuf[0]) {        case '1':            if (d.money < 80) {                pressanykey("传统增胖要80元喔....你不够钱啦...");            } else {#ifdef MAPLE                getdata(b_lines - 1, 1, "需花费80元(3~5公斤),你确定吗? [y/N]", genbuf, 2, 1, 0);#else                getdata(b_lines - 1, 1, "需花费80元(3~5公斤),你确定吗? [y/N]", genbuf, 2, DOECHO, true);#endif                          // END MAPLE                if (genbuf[0] == 'Y' || genbuf[0] == 'y') {                    weightmp = 3 + rand() % 3;                    d.weight += weightmp;                    d.money -= 80;                    d.maxhp -= rand() % 2;                    d.hp -= rand() % 2 + 3;                    show_special_pic(3);                    sprintf(inbuf, "总共增加了%d公斤", weightmp);                    pressanykey(inbuf);                } else {                    pressanykey("回心转意罗.....");                }            }            break;        case '2':#ifdef MAPLE            getdata(b_lines - 1, 1, "增一公斤要30元,你要增多少公斤呢? [请填数字]:", genbuf, 4, 1, 0);#else            getdata(b_lines - 1, 1, "增一公斤要30元,你要增多少公斤呢? [请填数字]:", genbuf, 4, DOECHO, true);#endif                          // END MAPLE            weightmp = atoi(genbuf);            if (weightmp <= 0) {                pressanykey("输入有误..放弃罗...");            } else if (d.money > (weightmp * 30)) {                sprintf(inbuf, "增加%d公斤,总共需花费了%d元,确定吗? [y/N]", weightmp, weightmp * 30);#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') {                    d.money -= weightmp * 30;                    d.weight += weightmp;                    d.maxhp -= (rand() % 2 + 2);                    count_tired(5, 8, "N", 100, 1);                    d.hp -= (rand() % 2 + 3);                    d.sick += rand() % 10 + 5;                    show_special_pic(3);                    sprintf(inbuf, "总共增加了%d公斤", weightmp);                    pressanykey(inbuf);                } else {                    pressanykey("回心转意罗.....");                }            } else {                pressanykey("你钱没那麽多啦.......");            }            break;        case '3':            if (d.money < 80) {                pressanykey("传统减肥要80元喔....你不够钱啦...");            } else {#ifdef MAPLE                getdata(b_lines - 1, 1, "需花费80元(3~5公斤),你确定吗? [y/N]", genbuf, 2, 1, 0);#else                getdata(b_lines - 1, 1, "需花费80元(3~5公斤),你确定吗? [y/N]", genbuf, 2, DOECHO, true);#endif                          // END MAPLE                if (genbuf[0] == 'Y' || genbuf[0] == 'y') {                    weightmp = 3 + rand() % 3;                    d.weight -= weightmp;                    if (d.weight < 0)                        d.weight = 0;                    d.money -= 100;                    d.maxhp += rand() % 2;                    d.hp -= rand() % 2 + 3;                    show_special_pic(4);                    sprintf(inbuf, "总共减少了%d公斤", weightmp);                    pressanykey(inbuf);                } else {                    pressanykey("回心转意罗.....");                }            }            break;        case '4':#ifdef MAPLE            getdata(b_lines - 1, 1, "减一公斤要30元,你要减多少公斤呢? [请填数字]:", genbuf, 4, 1, 0);#else            getdata(b_lines - 1, 1, "减一公斤要30元,你要减多少公斤呢? [请填数字]:", genbuf, 4, DOECHO, true);#endif                          // END MAPLE            weightmp = atoi(genbuf);            if (weightmp <= 0) {                pressanykey("输入有误..放弃罗...");            } else if (d.weight <= weightmp) {                pressanykey("你没那麽重喔.....");            } else if (d.money > (weightmp * 30)) {                sprintf(inbuf, "减少%d公斤,总共需花费了%d元,确定吗? [y/N]", weightmp, weightmp * 30);#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') {                    d.money -= weightmp * 30;                    d.weight -= weightmp;                    d.maxhp -= (rand() % 2 + 2);                    count_tired(5, 8, "N", 100, 1);                    d.hp -= (rand() % 2 + 3);                    d.sick += rand() % 10 + 5;                    show_special_pic(4);                    sprintf(inbuf, "总共减少了%d公斤", weightmp);                    pressanykey(inbuf);                } else {                    pressanykey("回心转意罗.....");                }            } else {                pressanykey("你钱没那麽多啦.......");            }            break;        }    }    return 0;}/*参见*/int pip_go_palace(){    pip_go_palace_screen(royallist);    return 0;}int pip_go_palace_screen(p)struct royalset *p;{    int n;    int a;    int b;    int choice;    int prince;                 /*王子会不会出现 */    int pipkey;    int change;    char buf[256];    char inbuf1[20];    char inbuf2[20];    char ans[5];    char *needmode[3] = { "      ", "礼仪表现>", "谈吐技巧>" };    int save[11] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };    d.nodone = 0;    do {        clear();        show_palace_pic(0);        move(13, 4);        sprintf(buf, "┌——————┤ 来到总司令部了  请选择你欲拜访的对象 ├——————┐");        prints(buf);        move(14, 4);        sprintf(buf, "│                                                                  │");        prints(buf);        for (n = 0; n < 5; n++) {            a = 2 * n + 1;            b = 2 * n + 2;            move(15 + n, 4);            sprintf(inbuf1, "%-10s%3d", needmode[p[a].needmode], p[a].needvalue);            if (n == 4) {                sprintf(inbuf2, "%-10s", needmode[p[b].needmode]);            } else {                sprintf(inbuf2, "%-10s%3d", needmode[p[b].needmode], p[b].needvalue);            }            if ((d.seeroyalJ == 1 && n == 4) || (n != 4))                sprintf(buf,                        "│ (%s) %-10s  %-14s     (%s) %-10s  %-14s│", p[a].num, p[a].name, inbuf1, p[b].num, p[b].name, inbuf2);            else                sprintf(buf, "│ (%s) %-10s  %-14s                                   │", p[a].num, p[a].name, inbuf1);            prints(buf);        }        move(20, 4);        sprintf(buf, "│                                                                  │");        prints(buf);        move(21, 4);        sprintf(buf, "└—————————————————————————————————┘");        prints(buf);        if (d.death == 1 || d.death == 2 || d.death == 3)            return 0;        /*         * 将各人务已经给与的数值叫回来         */        save[1] = d.royalA;     /*from守卫 */        save[2] = d.royalB;     /*from近卫 */        save[3] = d.royalC;     /*from将军 */        save[4] = d.royalD;     /*from大臣 */        save[5] = d.royalE;     /*from祭司 */        save[6] = d.royalF;     /*from宠妃 */        save[7] = d.royalG;     /*from王妃 */        save[8] = d.royalH;     /*from国王 */        save[9] = d.royalI;     /*from小丑 */        save[10] = d.royalJ;    /*from王子 */        move(b_lines - 1, 0);        clrtoeol();        move(b_lines - 1, 0);        prints(" [生命力] %d/%d  [疲劳度] %d ", d.hp, d.maxhp, d.tired);        move(b_lines, 0);        clrtoeol();        move(b_lines, 0);        prints("  参见选单   [字母]选择欲拜访的人物  [Q]离开星空总司令部:                    ");        pipkey = igetkey();        choice = pipkey - 64;        if (choice < 1 || choice > 10)            choice = pipkey - 96;        if ((choice >= 1 && choice <= 10 && d.seeroyalJ == 1)            || (choice >= 1 && choice <= 9 && d.seeroyalJ == 0)) {            d.social += rand() % 3 + 3;            d.hp -= rand() % 5 + 6;            d.tired += rand() % 5 + 8;            if (d.tired >= 100) {                d.death = 1;                pipdie("累死了...  ", 1);            }            if (d.hp < 0) {                d.death = 1;                pipdie("饿死了...  ", 1);            }            if (d.death == 1) {                sprintf(buf, "掰掰了...真是悲情..");            } else {                if ((p[choice].needmode == 0) || (p[choice].needmode == 1 && d.manners >= p[choice].needvalue)                    || (p[choice].needmode == 2 && d.speech >= p[choice].needvalue)) {                    if (choice >= 1 && choice <= 9 && save[choice] >= p[choice].maxtoman) {                        if (rand() % 2 > 0)                            sprintf(buf, "能和这麽伟大的你讲话真是荣幸ㄚ...");                        else                            sprintf(buf, "很高兴你来拜访我,但我不能给你什麽了..");                    } else {                        change = 0;                        if (choice >= 1 && choice <= 8) {                            switch (choice) {                            case 1:                                change = d.character / 5;                                break;                            case 2:                                change = d.character / 8;                                break;                            case 3:                                change = d.charm / 5;                                break;                            case 4:                                change = d.wisdom / 10;                                break;                            case 5:                                change = d.belief / 10;                                break;                            case 6:                                change = d.speech / 10;                                break;                            case 7:                                change = d.social / 10;                                break;                            case 8:                                change = d.hexp / 10;                                break;                            }                            /*                             * 如果大於每次的增加最大量                             */                            if (change > p[choice].addtoman)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -