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