pip_fight.c

来自「linux/unix环境下的建站系统」· C语言 代码 · 共 1,277 行 · 第 1/3 页

C
1,277
字号
			case '1':				if (rand() % 9 == 0) {					temppress("竟然没打中..:~~~");				} else {					if (mresistmore == 0)						dinjure =						    (d.hskill / 100 +						     d.hexp / 100 +						     d.attack / 9 -						     m.resist / 12 +						     rand() % 12 + 2 -						     m.speed / 30 +						     d.speed / 30);					else						dinjure =						    (d.hskill / 100 +						     d.hexp / 100 +						     d.attack / 9 -						     m.resist / 8 +						     rand() % 12 + 2 -						     m.speed / 30 +						     d.speed / 30);					if (dinjure <= 0)						dinjure = 9;					m.hp -= dinjure;					d.hexp += rand() % 2 + 2;					d.hskill += rand() % 2 + 1;					sprintf(buf,						"普通攻击,对方生命力减低%d",						dinjure);					temppress(buf);				}				d.tired += rand() % (n + 1) / 15 + 2;				break;			case '2':				show_fight_pic(2);				if (rand() % 11 == 0) {					temppress("竟然没打中..:~~~");				} else {					if (mresistmore == 0)						dinjure =						    (d.hskill / 100 +						     d.hexp / 100 +						     d.attack / 5 -						     m.resist / 12 +						     rand() % 12 + 6 -						     m.speed / 50 +						     d.speed / 30);					else						dinjure =						    (d.hskill / 100 +						     d.hexp / 100 +						     d.attack / 5 -						     m.resist / 8 +						     rand() % 12 + 6 -						     m.speed / 40 +						     d.speed / 30);					if (dinjure <= 15)						dinjure = 20;					if (d.hp > 5) {						m.hp -= dinjure;						d.hp -= 5;						d.hexp += rand() % 3 + 3;						d.hskill += rand() % 2 + 2;						d.tired +=						    rand() % (n + 1) / 10 + 3;						sprintf(buf,							"全力攻击,对方生命力减低%d",							dinjure);						temppress(buf);					} else {						d.nodone = 1;						temppress						    ("你的HP小於5啦..不行啦...");					}				}				break;			case '3':				oldtired = d.tired;				oldhp = d.hp;				d.magicmode = 0;				dinjure = pip_magic_menu();				if (dinjure < 0)					dinjure = 5;				if (d.nodone == 0) {					if (d.magicmode == 1) {						oldtired = oldtired - d.tired;						oldhp = d.hp - oldhp;						sprintf(buf,							"治疗后,生命力提高%d 疲劳降低%d",							oldhp, oldtired);						temppress(buf);					} else {						if (rand() % 15 == 0)							temppress							    ("竟然没打中..:~~~");						else {							if (d.mexp <= 100) {								if (rand() % 4 >								    0)									dinjure									    =									    dinjure									    *									    60 /									    100;								else									dinjure									    =									    dinjure									    *									    80 /									    100;							} else if (d.mexp <= 250								   && d.mexp >								   100) {								if (rand() % 4 >								    0)									dinjure									    =									    dinjure									    *									    70 /									    100;								else									dinjure									    =									    dinjure									    *									    85 /									    100;							} else if (d.mexp <= 500								   && d.mexp >								   250) {								if (rand() % 4 >								    0)									dinjure									    =									    dinjure									    *									    85 /									    100;								else									dinjure									    =									    dinjure									    *									    95 /									    100;							} else if (d.mexp > 500) {								if (rand() %								    10 > 0)									dinjure									    =									    dinjure									    *									    90 /									    100;								else									dinjure									    =									    dinjure									    *									    99 /									    100;							}							if ((p[n].							     special[d.								     magicmode -								     2] - 48) ==							    1) {								if (rand() % 2 >								    0) {									dinjure									    =									    dinjure									    *									    125									    /									    100;								} else {									dinjure									    =									    dinjure									    *									    110									    /									    100;								}							} else {								if (rand() % 2 >								    0) {									dinjure									    =									    dinjure									    *									    60 /									    100;								} else {									dinjure									    =									    dinjure									    *									    75 /									    100;								}							}							d.tired +=							    rand() % (n +								      1) / 12 +							    2;							m.hp -= dinjure;							/*							 * d.mexp+=rand()%2+2;							 */							d.mskill +=							    rand() % 2 + 2;							sprintf(buf,								"魔法攻击,对方生命力减低%d",								dinjure);							temppress(buf);						}					}				}				break;			case '4':				dresistmore = 1;				d.tired += rand() % (n + 1) / 20 + 1;				temppress("小鸡加强防御啦....");				break;			case '5':				pip_basic_feed();				break;			case '6':				d.money -= (rand() % 100 + 30);				d.brave -= (rand() % 3 + 2);				if (d.money < 0)					d.money = 0;				if (d.hskill < 0)					d.hskill = 0;				if (d.brave < 0)					d.brave = 0;				clear();				showtitle("电子养小鸡", BBS_FULL_NAME);				move(10, 0);				prints				    ("            \033[1;31m┌——————————————————————┐\033[m");				move(11, 0);				prints				    ("            \033[1;31m│  \033[37m实力不强的小鸡 \033[33m%-10s                 \033[31m│\033[m",				     d.name);				move(12, 0);				prints				    ("            \033[1;31m│  \033[37m在与对手 \033[32m%-10s \033[37m战斗后落跑啦          \033[31m│\033[m",				     p[n].name);				move(13, 0);				sprintf(inbuf1, "%d/%d", d.hexp - oldhexp,					d.mexp - oldmexp);				prints				    ("            \033[1;31m│  \033[37m评价增加了 \033[36m%-5s \033[37m点  技术增加了 \033[36m%-2d/%-2d \033[37m点  \033[31m│\033[m",				     inbuf1, d.hskill - oldhskill,				     d.mskill - oldmskill);				move(14, 0);				sprintf(inbuf1, "%d \033[37m元",					oldmoney - d.money);				prints				    ("            \033[1;31m│  \033[37m勇敢降低了 \033[36m%-5d \033[37m点  金钱减少了 \033[36m%-13s  \033[31m│\033[m",				     oldbrave - d.brave, inbuf1);				move(15, 0);				prints				    ("            \033[1;31m└——————————————————————┘\033[m");				temppress("三十六计 走为上策...");				winorlose = 0;				break;#ifdef MAPLE			case Ctrl('R'):				if (currutmp->msgs[0].last_pid) {					show_last_call_in();					my_write(currutmp->msgs[0].last_pid,						 "水球丢回去:");				}				break;#endif				// END MAPLE			}		}		clear();		move(0, 0);		if (d.sex == 1)			sprintf(buf,				"\033[1;41m  星空战斗鸡 ~ \033[32m♂ \033[37m%-10s                                                  \033[0m",				d.name);		else if (d.sex == 2)			sprintf(buf,				"\033[1;41m  星空战斗鸡 ~ \033[33m♀ \033[37m%-10s                                                  \033[0m",				d.name);		else			sprintf(buf,				"\033[1;41m  星空战斗鸡 ~ \033[34m? \033[37m%-10s                                                  \033[0m",				d.name);		prints(buf);		move(1, 0);		sprintf(buf,			"\033[1;31m┌—————————————————————————————————————┐\033[m");		prints(buf);		move(2, 0);		/*		 * lucky拿来当color用		 */		if (d.tired >= 80)			lucky = 31;		else if (d.tired >= 60 && d.tired < 80)			lucky = 33;		else			lucky = 37;		sprintf(inbuf1, "%d/%d", d.hp, d.maxhp);		sprintf(inbuf2, "%d/%d", d.mp, d.maxmp);		sprintf(buf,			"\033[1;31m│\033[33m生  命:\033[37m%-12s\033[33m法  力:\033[37m%-12s\033[33m疲  劳:\033[%dm%-12d\033[33m金  钱:\033[37m%-10d\033[31m│\033[m",			inbuf1, inbuf2, lucky, d.tired, d.money);		prints(buf);		move(3, 0);		sprintf(inbuf1, "%d/%d", d.hexp, d.mexp);		sprintf(buf,			"\033[1;31m│\033[33m攻  击:\033[37m%-6d      \033[33m防  御:\033[37m%-6d      \033[33m速  度:\033[37m%-5d       \033[33m经  验:\033[37m%-10s\033[31m│\033[m",			d.attack, d.resist, d.speed, inbuf1);		prints(buf);		move(4, 0);		sprintf(buf,			"\033[1;31m│\033[33m食  物:\033[37m%-5d       \033[33m大补丸:\033[37m%-5d       \033[33m零  食:\033[37m%-5d       \033[33m药  草:\033[37m%-5d     \033[31m│\033[m",			d.food, d.bighp, d.cookie, d.medicine);		prints(buf);		move(5, 0);		sprintf(buf,			"\033[1;31m└—————————————————————————————————————┘\033[m");		prints(buf);		move(6, 0);		if (mode == 1)			show_badman_pic(n);		move(19, 0);		sprintf(buf,			"\033[1;34m┌—————————————————————————————————————┐\033[m");		prints(buf);		move(20, 0);		sprintf(inbuf1, "%d/%d", m.hp, m.maxhp);		sprintf(inbuf2, "%d/%d", m.mp, m.maxmp);		sprintf(buf,			"\033[1;34m│\033[32m姓  名:\033[37m%-10s  \033[32m生  命:\033[37m%-11s \033[32m法  力:\033[37m%-11s                  \033[34m│\033[m",			p[n].name, inbuf1, inbuf2);		prints(buf);		move(21, 0);		sprintf(buf,			"\033[1;34m│\033[32m攻  击:\033[37m%-6d      \033[32m防  御:\033[37m%-6d      \033[32m速  度:\033[37m%-6d      \033[32m金  钱:\033[37m%-6d    \033[34m│\033[m",			m.attack, m.resist, m.speed, m.money);		prints(buf);		move(22, 0);		sprintf(buf,			"\033[1;34m└—————————————————————————————————————┘\033[m");		prints(buf);		move(b_lines, 0);		sprintf(buf,			"\033[1;41;37m  \033[37m攻击命令  \033[47m  \033[31m[1]\033[30m普通  \033[31m[2]\033[30m全力  \033[31m[3]\033[30m魔法  \033[31m[4]\033[30m防御  \033[31m[5]\033[30m逃命                     \033[m");		prints(buf);		if ((m.hp > 0) && (pipkey != '6')		    && (pipkey == '1' || pipkey == '2' || pipkey == '3'			|| pipkey == '4' || pipkey == '5') && (d.death == 0)		    && (d.nodone == 0)) {			mresistmore = 0;			lucky = rand() % 100;			if (lucky >= 0 && lucky <= 50)				mankey = 1;			else if (lucky >= 51 && lucky <= 84)				mankey = 2;			else if (lucky >= 85 && lucky <= 97)				mankey = 3;			else if (lucky >= 98)				mankey = 4;            else                mankey=0;			switch (mankey) {			case 1:				if (rand() % 6 == 5) {					temppress("对方没打中..:~~~");				} else {					if (dresistmore == 0)						minjure =						    (m.attack / 9 -						     d.resist / 12 +						     rand() % 15 + 4 -						     d.speed / 30 +						     m.speed / 30 -						     d.hskill / 200 -						     d.hexp / 200);					else						minjure =						    (m.attack / 9 -						     d.resist / 8 +						     rand() % 12 + 4 -						     d.speed / 50 +						     m.speed / 20 -						     d.hskill / 200 -						     d.hexp / 200);					if (minjure <= 0)						minjure = 8;					d.hp -= minjure;					d.tired += rand() % 3 + 2;					sprintf(buf,						"对方普通攻击,生命力减低%d",						minjure);					temppress(buf);				}				break;			case 2:				if (rand() % 11 == 10) {					temppress("对方没打中..:~~~");				} else {					if (m.hp > 5) {						if (dresistmore == 0)

⌨️ 快捷键说明

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