pip_ending.c
来自「linux/unix环境下的建站系统」· C语言 代码 · 共 1,425 行 · 第 1/3 页
C
1,425 行
/*---------------------------------------------------------------------------*//* 结局函式 *//* *//*---------------------------------------------------------------------------*/#include "pip.h"extern struct chicken d;extern time_t start_time;extern time_t lasttime;/*--------------------------------------------------------------------------*//* 结局参数设定 *//*--------------------------------------------------------------------------*//*万能*/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 ("\033[1;33m┏━━━┓┏━━ ┓┏━━━ ┏━━━┓┏━━ ┓ ━━━ \033[0m"); move(2, 9); prints ("\033[1;37m┃ ┃┃ ┃┃┃ ┃┃ ┃┃ ┃┃┃ ┃\033[0m"); move(3, 9); prints ("\033[0;37m┃ ━ ┃ ┃┃┃ ┃┗━┓┏┛┃ ┃┃┃ ┏━┓\033[0m"); move(4, 9); prints ("\033[0;37m┃ ━ ┃ ┃ ┃┃ ┃┏━┛┗┓┃ ┃ ┃┃ ┃\033[0m"); move(5, 9); prints ("\033[1;37m┃ ┃┃ ┃ ┃┃ ┃┃ ┃┃ ┃ ┃┃ ┃\033[0m"); move(6, 9); prints ("\033[1;35m┗━━━┛┗━ ━┛┗━━━ ┗━━━┛┗━ ━┛ ━━━ \033[0m"); move(7, 8); prints ("\033[1;31m——————————\033[41;37m 星空战斗鸡结局报告 \033[0;1;31m———————————\033[0m"); move(9, 10); prints("\033[1;36m这个时间不知不觉地还是到临了...\033[0m"); move(11, 10); prints ("\033[1;37m\033[33m%s\033[37m 得离开你的温暖怀抱,自己一只鸡在外面求生存了.....\033[0m", d.name); move(13, 10); prints ("\033[1;36m在你照顾教导他的这段时光,让他接触了很多领域,培养了很多的能力....\033[0m"); move(15, 10); prints ("\033[1;37m因为这些,让小鸡 \033[33m%s\033[37m 之后的生活,变得更多采多姿了........\033[0m", d.name); move(17, 10); prints("\033[1;36m对於你的关心,你的付出,你所有的爱......\033[0m"); move(19, 10); prints("\033[1;37m\033[33m%s\033[37m 会永远都铭记在心的....\033[0m", d.name); temppress("接下来看未来发展"); clrchyiuan(7, 19); move(7, 8); prints ("\033[1;34m——————————\033[44;37m 星空战斗鸡未来发展 \033[0;1;34m———————————\033[0m"); move(9, 10); prints ("\033[1;36m透过水晶球,让我们一起来看 \033[33m%s\033[36m 的未来发展吧.....\033[0m", d.name); move(11, 10); prints("\033[1;37m小鸡 \033[33m%s\033[37m 后来%s....\033[0m", d.name, endbuf1); move(13, 10); prints("\033[1;36m因为他的之前的努力,使得他在这一方面%s....\033[0m", endbuf2); move(15, 10); prints("\033[1;37m至於小鸡的婚姻状况,他后来%s,婚姻算是很美满.....\033[0m", endbuf3); move(17, 10); prints("\033[1;36m嗯..这是一个不错的结局唷..........\033[0m"); temppress("我想 你一定很感动吧....."); show_ending_pic(0); temppress("看一看分数罗"); endgrade = pip_game_over(endgrade); temppress("下一页是小鸡资料 赶快copy下来做纪念"); pip_data_list(); temppress("欢迎再来挑战...."); /* * 记录开始 */ now = time(0); sprintf(buf, "\033[1;35m———————————————————————————————————————\033[0m\n"); pip_log_record(buf); sprintf(buf, "\033[1;37m在 \033[33m%s \033[37m的时候,\033[36m%s \033[37m的小鸡 \033[32m%s\033[37m 出现了结局\033[0m\n", Cdate(now), getCurrentUser()->userid, d.name); pip_log_record(buf); sprintf(buf, "\033[1;37m小鸡 \033[32m%s \033[37m努力加强自己,后来%s\033[0m\n\033[1;37m因为之前的努力,使得在这一方面%s\033[0m\n", d.name, endbuf1, endbuf2); pip_log_record(buf); sprintf(buf, "\033[1;37m至於婚姻状况,他后来%s,婚姻算是很美满.....\033[0m\n\n\033[1;37m小鸡 \033[32n%s\033[37m 的总积分= \033[33m%d\033[0m\n", endbuf3, d.name, endgrade); pip_log_record(buf); sprintf(buf, "\033[1;35m———————————————————————————————————————\033[0m\n"); pip_log_record(buf); /* * 记录终止 */ d.death = 3; pipdie("\033[1;31m游戏结束罗...\033[m ", 3); return 0;}intpip_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:家事*/intpip_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;}/*结婚的判断*/intpip_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;}intpip_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)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?