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 + -
显示快捷键?