pip_ending.c

来自「bbs server linux平台下软件源码」· C语言 代码 · 共 1,365 行 · 第 1/3 页

C
1,365
字号
/*---------------------------------------------------------------------------*//* 结局函式                                                                  *//*                                                                           *//*---------------------------------------------------------------------------*/#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)/*--------------------------------------------------------------------------*//*  结局参数设定                                                            *//*--------------------------------------------------------------------------*/struct newendingset {    char *girl;                 /*女生结局的职业 */    char *boy;                  /*男生结局的职业 */    int grade;                  /*评分 */};typedef struct newendingset newendingset;/*万能*/const struct newendingset endmodeall_purpose[] = {    "女性职业", "男生职业", 0,    "成为这个国家新女王", "成为这个国家新国王", 500,    "成为国家的宰相", "成为国家的宰相", 400,    "成为教会中的大主教", "成为教会中的大主教", 350,    "成为国家的大臣", "成为国家的大臣", 320,    "成为一位博士", "成为一位博士", 300,    "成为教会中的修女", "成为教会中的神父", 150,    "成为法庭上的大法官", "成为法庭上的法官", 200,    "成为知名的学者", "成为知名的学者", 120,    "成为一名女官", "成为一名男官", 100,    "在育幼院工作", "在育幼院工作", 100,    "在旅馆工作", "在旅馆工作", 100,    "在农场工作", "在农场工作", 100,    "在餐厅工作", "在餐厅工作", 100,    "在教堂工作", "在教堂工作", 100,    "在地摊工作", "在地摊工作", 100,    "在伐木场工作", "在伐木场工作", 100,    "在美容院工作", "在美容院工作", 100,    "在狩猎区工作", "在狩猎区工作", 100,    "在工地工作", "在工地工作", 100,    "在墓园工作", "在墓园工作", 100,    "担任家庭教师工作", "担任家庭教师工作", 100,    "在酒家工作", "在酒家工作", 100,    "在酒店工作", "在酒店工作", 100,    "在大夜总会工作", "在大夜总会工作", 100,    "在家中帮忙", "在家中帮忙", 50,    "在育幼院兼差", "在育幼院兼差", 50,    "在旅馆兼差", "在旅馆兼差", 50,    "在农场兼差", "在农场兼差", 50,    "在餐厅兼差", "在餐厅兼差", 50,    "在教堂兼差", "在教堂兼差", 50,    "在地摊兼差", "在地摊兼差", 50,    "在伐木场兼差", "在伐木场兼差", 50,    "在美容院兼差", "在美容院兼差", 50,    "在狩猎区兼差", "在狩猎区兼差", 50,    "在工地兼差", "在工地兼差", 50,    "在墓园兼差", "在墓园兼差", 50,    "担任家庭教师兼差", "担任家庭教师兼差", 50,    "在酒家兼差", "在酒家兼差", 50,    "在酒店兼差", "在酒店兼差", 50,    "在大夜总会兼差", "在大夜总会兼差", 50,    NULL, NULL, 0};/*战斗*/const struct newendingset endmodecombat[] = {    "女性职业", "男生职业", 0,    "被封为勇者 战士型", "被封为勇者 战士型", 420,    "被拔擢成为一国的将军", "被拔擢成为一国的将军", 300,    "当上了国家近卫队队长", "当上了国家近卫队队长", 200,    "当了武术老师", "当了武术老师", 150,    "变成骑士报效国家", "变成骑士报效国家", 160,    "投身军旅生活,成为士兵", "投身军旅生活,成为士兵", 80,    "变成奖金猎人", "变成奖金猎人", 0,    "以佣兵工作维生", "以佣兵工作维生", 0,    NULL, NULL, 0};/*魔法*/const struct newendingset endmodemagic[] = {    "女性职业", "男生职业", 0,    "被封为勇者 魔法型", "被封为勇者 魔法型", 420,    "被聘为王宫魔法师", "被聘为王官魔法师", 280,    "当了魔法老师", "当了魔法老师", 160,    "变成一位魔导士", "变成一位魔导士", 180,    "当了魔法师", "当了魔法师", 120,    "以占卜师帮人算命为生", "以占卜师帮人算命为生", 40,    "成为一个魔术师", "成为一个魔术师", 20,    "成为街头艺人", "成为街头艺人", 10,    NULL, NULL, 0};/*社交*/const struct newendingset endmodesocial[] = {    "女性职业", "男生职业", 0,    "成为国王的宠妃", "成为女王的驸马爷", 170,    "被挑选成为王妃", "被选中当女王的夫婿", 260,    "被伯爵看中,成为夫人", "成为了女伯爵的夫婿", 130,    "成为富豪的妻子", "成为女富豪的夫婿", 100,    "成为商人的妻子", "成为女商人的夫婿", 80,    "成为农人的妻子", "成为女农人的夫婿", 80,    "成为地主的情妇", "成为女地主的情夫", -40,    NULL, NULL, 0};/*艺术*/const struct newendingset endmodeart[] = {    "女性职业", "男生职业", 0,    "成为了小丑", "成为了小丑", 100,    "成为了作家", "成为了作家", 100,    "成为了画家", "成为了画家", 100,    "成为了舞蹈家", "成为了舞蹈家", 100,    NULL, NULL, 0};/*暗黑*/const struct newendingset endmodeblack[] = {    "女性职业", "男生职业", 0,    "变成了魔王", "变成了魔王", -1000,    "混成了太妹", "混成了流氓", -350,    "做了[SM女王]的工作", "做了[SM国王]的工作", -150,    "当了黑街的大姐", "当了黑街的老大", -500,    "变成高级娼妇", "变成高级情夫", -350,    "变成诈欺师诈欺别人", "变成金光党骗别人钱", -350,    "以流莺的工作生活", "以牛郎的工作生活", -350,    NULL, NULL, 0};/*家事*/const struct newendingset endmodefamily[] = {    "女性职业", "男生职业", 0,    "正在新娘修行", "正在新郎修行", 50,    NULL, NULL, 0};int /*结局画面 */ pip_ending_screen(){    time_t now;    char buf[256];    char endbuf1[50];    char endbuf2[50];    char endbuf3[50];    int endgrade = 0;    int endmode = 0;    clear();    pip_ending_decide(endbuf1, endbuf2, endbuf3, &endmode, &endgrade);    move(1, 9);    prints("┏━━━┓┏━━  ┓┏━━━  ┏━━━┓┏━━  ┓  ━━━  ");    move(2, 9);    prints("┃      ┃┃    ┃┃┃      ┃┃      ┃┃    ┃┃┃      ┃");    move(3, 9);    prints("┃    ━  ┃    ┃┃┃      ┃┗━┓┏┛┃    ┃┃┃  ┏━┓");    move(4, 9);    prints("┃    ━  ┃  ┃  ┃┃      ┃┏━┛┗┓┃  ┃  ┃┃      ┃");    move(5, 9);    prints("┃      ┃┃  ┃  ┃┃      ┃┃      ┃┃  ┃  ┃┃      ┃");    move(6, 9);    prints("┗━━━┛┗━  ━┛┗━━━  ┗━━━┛┗━  ━┛  ━━━  ");    move(7, 8);    prints("—————————— 星空战斗鸡结局报告 ———————————");    move(9, 10);    prints("这个时间不知不觉地还是到临了...");    move(11, 10);    prints("%s 得离开你的温暖怀抱,自己一只鸡在外面求生存了.....", d.name);    move(13, 10);    prints("在你照顾教导他的这段时光,让他接触了很多领域,培养了很多的能力....");    move(15, 10);    prints("因为这些,让小鸡 %s 之后的生活,变得更多采多姿了........", d.name);    move(17, 10);    prints("对於你的关心,你的付出,你所有的爱......");    move(19, 10);    prints("%s 会永远都铭记在心的....", d.name);    pressanykey("接下来看未来发展");    clrchyiuan(7, 19);    move(7, 8);    prints("—————————— 星空战斗鸡未来发展 ———————————");    move(9, 10);    prints("透过水晶球,让我们一起来看 %s 的未来发展吧.....", d.name);    move(11, 10);    prints("小鸡 %s 后来%s....", d.name, endbuf1);    move(13, 10);    prints("因为他的之前的努力,使得他在这一方面%s....", endbuf2);    move(15, 10);    prints("至於小鸡的婚姻状况,他后来%s,婚姻算是很美满.....", endbuf3);    move(17, 10);    prints("嗯..这是一个不错的结局唷..........");    pressanykey("我想  你一定很感动吧.....");    show_ending_pic(0);    pressanykey("看一看分数罗");    endgrade = pip_game_over(endgrade);    pressanykey("下一页是小鸡资料  赶快copy下来做纪念");    pip_data_list();    pressanykey("欢迎再来挑战....");    /*     * 记录开始     */    now = time(0);    sprintf(buf, "———————————————————————————————————————\n");    pip_log_record(buf);    sprintf(buf, "在 %s 的时候,%s 的小鸡 %s 出现了结局\n", Cdate(now), cuser->userid, d.name);    pip_log_record(buf);    sprintf(buf, "小鸡 %s 努力加强自己,后来%s\n因为之前的努力,使得在这一方面%s\n", d.name, endbuf1, endbuf2);    pip_log_record(buf);    sprintf(buf, "至於婚姻状况,他后来%s,婚姻算是很美满.....\n\n小鸡 %s 的总积分= %d\n", endbuf3, d.name, endgrade);    pip_log_record(buf);    sprintf(buf, "———————————————————————————————————————\n");    pip_log_record(buf);    /*     * 记录终止     */    d.death = 3;    pipdie("游戏结束罗...  ", 3);    return 0;}int pip_ending_decide(endbuf1, endbuf2, endbuf3, endmode, endgrade)char *endbuf1, *endbuf2, *endbuf3;int *endmode, *endgrade;{    const static char *name[8][2] = { {"男的", "女的"},    {"嫁给王子", "娶了公主"},    {"嫁给你", "娶了你"},    {"嫁给商人A", "娶了女商人A"},    {"嫁给商人B", "娶了女商人B"},    {"嫁给商人C", "娶了女商人C"},    {"嫁给商人D", "娶了女商人D"},    {"嫁给商人E", "娶了女商人E"}    };    int m = 0, n = 0, grade = 0;    int modeall_purpose = 0;    char buf1[256];    char buf2[256];    *endmode = pip_future_decide(&modeall_purpose);    switch (*endmode) {        /*         * 1:暗黑 2:艺术 3:万能 4:战士 5:魔法 6:社交 7:家事         */    case 1:        pip_endingblack(buf1, &m, &n, &grade);        break;    case 2:        pip_endingart(buf1, &m, &n, &grade);        break;    case 3:        pip_endingall_purpose(buf1, &m, &n, &grade, modeall_purpose);        break;    case 4:        pip_endingcombat(buf1, &m, &n, &grade);        break;    case 5:        pip_endingmagic(buf1, &m, &n, &grade);        break;    case 6:        pip_endingsocial(buf1, &m, &n, &grade);        break;    case 7:        pip_endingfamily(buf1, &m, &n, &grade);        break;    }    grade += pip_marry_decide();    strcpy(endbuf1, buf1);    if (n == 1) {        *endgrade = grade + 300;        sprintf(buf2, "非常的顺利..");    } else if (n == 2) {        *endgrade = grade + 100;        sprintf(buf2, "表现还不错..");    } else if (n == 3) {        *endgrade = grade - 10;        sprintf(buf2, "常遇到很多问题....");    }    strcpy(endbuf2, buf2);    if (d.lover >= 1 && d.lover <= 7) {        if (d.sex == 1)            sprintf(buf2, "%s", name[d.lover][1]);        else            sprintf(buf2, "%s", name[d.lover][0]);    } else if (d.lover == 10)        sprintf(buf2, "%s", buf1);    else if (d.lover == 0) {        if (d.sex == 1)            sprintf(buf2, "娶了同行的女孩");        else            sprintf(buf2, "嫁给了同行的男生");    }    strcpy(endbuf3, buf2);    return 0;}/*结局判断*//*1:暗黑 2:艺术 3:万能 4:战士 5:魔法 6:社交 7:家事*/int pip_future_decide(modeall_purpose)int *modeall_purpose;{    int endmode;    /*     * 暗黑     */    if ((d.etchics == 0 && d.offense >= 100)        || (d.etchics > 0 && d.etchics < 50 && d.offense >= 250))        endmode = 1;    /*     * 艺术     */    else if (d.art > d.hexp && d.art > d.mexp && d.art > d.hskill             && d.art > d.mskill && d.art > d.social && d.art > d.family             && d.art > d.homework && d.art > d.wisdom && d.art > d.charm && d.art > d.belief && d.art > d.manners && d.art > d.speech && d.art > d.cookskill && d.art > d.love)        endmode = 2;    /*     * 战斗     */    else if (d.hexp >= d.social && d.hexp >= d.mexp && d.hexp >= d.family) {        *modeall_purpose = 1;        if (d.hexp > d.social + 50 || d.hexp > d.mexp + 50 || d.hexp > d.family + 50)            endmode = 4;        else            endmode = 3;    }    /*     * 魔法     */    else if (d.mexp >= d.hexp && d.mexp >= d.social && d.mexp >= d.family) {        *modeall_purpose = 2;        if (d.mexp > d.hexp || d.mexp > d.social || d.mexp > d.family)            endmode = 5;        else            endmode = 3;    } else if (d.social >= d.hexp && d.social >= d.mexp && d.social >= d.family) {        *modeall_purpose = 3;        if (d.social > d.hexp + 50 || d.social > d.mexp + 50 || d.social > d.family + 50)            endmode = 6;        else            endmode = 3;    }    else {        *modeall_purpose = 4;        if (d.family > d.hexp + 50 || d.family > d.mexp + 50 || d.family > d.social + 50)            endmode = 7;        else            endmode = 3;    }    return endmode;}/*结婚的判断*/int pip_marry_decide(){    int grade;    if (d.lover != 0) {        /*         * 3 4 5 6 7:商人          */        d.lover = d.lover;        grade = 80;    } else {        if (d.royalJ >= d.relation && d.royalJ >= 100) {            d.lover = 1;        /*王子 */            grade = 200;        } else if (d.relation > d.royalJ && d.relation >= 100) {            d.lover = 2;        /*父亲或母亲 */            grade = 0;        } else {            d.lover = 0;            grade = 40;        }    }    return grade;}int pip_endingblack(buf, m, n, grade)   /*暗黑 */char *buf;int *m, *n, *grade;{    if (d.offense >= 500 && d.mexp >= 500) {    /*魔王 */        *m = 1;        if (d.mexp >= 1000)            *n = 1;        else if (d.mexp < 1000 && d.mexp >= 800)            *n = 2;        else            *n = 3;    }    else if (d.hexp >= 600) {   /*流氓 */        *m = 2;        if (d.wisdom >= 350)            *n = 1;        else if (d.wisdom < 350 && d.wisdom >= 300)            *n = 2;        else            *n = 3;    } else if (d.speech >= 100 && d.art >= 80)        /*SM*/ {        *m = 3;        if (d.speech > 150 && d.art >= 120)            *n = 1;        else if (d.speech > 120 && d.art >= 100)            *n = 2;        else            *n = 3;    } else if (d.hexp >= 320 && d.character > 200 && d.charm < 200) {   /*黑街老大 */        *m = 4;        if (d.hexp >= 400)            *n = 1;        else if (d.hexp < 400 && d.hexp >= 360)            *n = 2;        else            *n = 3;    } else if (d.character >= 200 && d.charm >= 200 && d.speech > 70 && d.toman > 70) { /*高级娼妇 */        *m = 5;        if (d.charm >= 300)            *n = 1;        else if (d.charm < 300 && d.charm >= 250)            *n = 2;        else            *n = 3;    }    else if (d.wisdom >= 450) { /*诈骗师 */        *m = 6;        if (d.wisdom >= 550)            *n = 1;        else if (d.wisdom < 550 && d.wisdom >= 500)            *n = 2;        else            *n = 3;    }    else {                      /*流莺 */        *m = 7;        if (d.charm >= 350)            *n = 1;        else if (d.charm < 350 && d.charm >= 300)            *n = 2;        else            *n = 3;    }    if (d.sex == 1)        strcpy(buf, endmodeblack[*m].boy);    else        strcpy(buf, endmodeblack[*m].girl);    *grade = endmodeblack[*m].grade;    return 0;

⌨️ 快捷键说明

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