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

📄 pip_special.c

📁 linux/unix环境下的建站系统
💻 C
📖 第 1 页 / 共 2 页
字号:
/*---------------------------------------------------------------------------*//* 特殊选单:看病 减肥 战斗 拜访 朝见                                         *//*                                                                           *//*---------------------------------------------------------------------------*/#include "pip.h"extern struct chicken d;extern time_t start_time;extern time_t lasttime;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}};intpip_see_doctor(){				/*看医生 */	char buf[256];	long savemoney;	savemoney = d.sick * 25;	if (d.sick <= 0) {		temppress("哇哩..没病来医院干嘛..被骂了..呜~~");		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, "你的病要花 %ld 元喔....你不够钱啦...", savemoney);		temppress(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);		temppress("药到病除..没有副作用!!");	}	return 0;}/*减肥*/intpip_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,NULL,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) {				temppress				    ("传统增胖要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,NULL,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);					temppress(inbuf);				} else {					temppress("回心转意罗.....");				}			}			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,NULL,true);#endif				// END MAPLE			weightmp = atoi(genbuf);			if (weightmp <= 0) {				temppress("输入有误..放弃罗...");			} 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,NULL,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);					temppress(inbuf);				} else {					temppress("回心转意罗.....");				}			} else {				temppress("你钱没那麽多啦.......");			}			break;		case '3':			if (d.money < 80) {				temppress				    ("传统减肥要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,NULL,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);					temppress(inbuf);				} else {					temppress("回心转意罗.....");				}			}			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,NULL,true);#endif				// END MAPLE			weightmp = atoi(genbuf);			if (weightmp <= 0) {				temppress("输入有误..放弃罗...");			} else if (d.weight <= weightmp) {				temppress("你没那麽重喔.....");			} 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,NULL,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);					temppress(inbuf);				} else {					temppress("回心转意罗.....");				}			} else {				temppress("你钱没那麽多啦.......");			}			break;		}	}	return 0;}/*参见*/intpip_go_palace(){	pip_go_palace_screen(royallist);	return 0;}int pip_go_palace_screen(const struct royalset *p){	int n;	int a;	int b;	int choice;	int pipkey;	int change;	char buf[256];	char inbuf1[20];	char inbuf2[20];	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,			"\033[1;31m┌——————┤\033[37;41m 来到总司令部了  请选择你欲拜访的对象 \033[0;1;31m├——————┐\033[0m");		prints(buf);		move(14, 4);		sprintf(buf,			"\033[1;31m│                                                                  │\033[0m");		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,					"\033[1;31m│ \033[36m(\033[37m%s\033[36m) \033[33m%-10s  \033[37m%-14s     \033[36m(\033[37m%s\033[36m) \033[33m%-10s  \033[37m%-14s\033[31m│\033[0m",					p[a].num, p[a].name, inbuf1, p[b].num,					p[b].name, inbuf2);			else				sprintf(buf,					"\033[1;31m│ \033[36m(\033[37m%s\033[36m) \033[33m%-10s  \033[37m%-14s                                   \033[31m│\033[0m",					p[a].num, p[a].name, inbuf1);			prints(buf);		}		move(20, 4);		sprintf(buf,			"\033[1;31m│                                                                  │\033[0m");		prints(buf);		move(21, 4);		sprintf(buf,			"\033[1;31m└—————————————————————————————————┘\033[0m");		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("\033[1;33m [生命力] %d/%d  [疲劳度] %d \033[0m", d.hp,		       d.maxhp, d.tired);		move(b_lines, 0);		clrtoeol();		move(b_lines, 0);		prints		    ("\033[1;37;46m  参见选单  \033[44m [字母]选择欲拜访的人物  [Q]离开星空总司令部:                    \033[0m");		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("\033[1;31m累死了...\033[m  ", 1);			}			if (d.hp < 0) {				d.death = 1;				pipdie("\033[1;31m饿死了...\033[m  ", 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 /

⌨️ 快捷键说明

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