📄 pip_fight.c
字号:
m.maxhp=d.maxhp*(80+rand()%50)/100+20;; m.hp=m.maxhp-rand()%10+20; m.maxmp=d.maxmp*(80+rand()%50)/100+10; m.mp= m.maxmp-rand()%20+10; m.speed=d.speed*(80+rand()%50)/100+10; m.attack=d.attack*(80+rand()%50)/100+10; m.resist=d.resist*(80+rand()%50)/100+10; m.money=0; m.death=0; } /*d.tired+=rand()%(n+1)/4+2;*/ /*d.shit+=rand()%(n+1)/4+2;*/ do { if(m.hp<=0) /*敌人死掉了*/ { m.hp=0; d.money+=m.money; m.death=1; d.brave+=rand()%4+3; } if(d.hp<=0 || d.tired>=100) /*小鸡阵亡*/ { if(mode==1) { d.hp=0; d.tired=0; d.death=1; } else { d.hp=d.maxhp/3+10; d.hexp-=rand()%3+2; d.mexp-=rand()%3+2; d.tired=50; d.death=1; } } clear(); /*showtitle("电子养小鸡", BoardName);*/ move(0,0); if(d.sex==1) sprintf(buf,"[1;41m 星空战斗鸡 ~ [32m♂ [37m%-10s [0m",d.name); else if(d.sex==2) sprintf(buf,"[1;41m 星空战斗鸡 ~ [33m♀ [37m%-10s [0m",d.name); else sprintf(buf,"[1;41m 星空战斗鸡 ~ [34m? [37m%-10s [0m",d.name); prints(buf); move(6,0); if(mode==1) show_badman_pic(n); move(1,0); sprintf(buf,"[1;31m┌—————————————————————————————————————┐[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,"[1;31m│[33m生 命:[37m%-12s[33m法 力:[37m%-12s[33m疲 劳:[%dm%-12d[33m金 钱:[37m%-10d[31m│[m", inbuf1,inbuf2,lucky,d.tired,d.money); prints(buf); move(3,0); sprintf(inbuf1,"%d/%d",d.hexp,d.mexp); sprintf(buf,"[1;31m│[33m攻 击:[37m%-10d [33m防 御:[37m%-10d [33m速 度:[37m%-5d [33m经 验:[37m%-10s[31m│[m", d.attack,d.resist,d.speed,inbuf1); prints(buf); move(4,0); sprintf(buf,"[1;31m│[33m食 物:[37m%-5d [33m大补丸:[37m%-5d [33m零 食:[37m%-5d [33m药 草:[37m%-5d [31m│[m", d.food,d.bighp,d.cookie,d.medicine); prints(buf); move(5,0); sprintf(buf,"[1;31m└—————————————————————————————————————┘[m"); prints(buf); move(19,0); sprintf(buf,"[1;34m┌—————————————————————————————————————┐[m"); prints(buf); move(20,0); sprintf(inbuf1,"%d/%d",m.hp,m.maxhp); sprintf(inbuf2,"%d/%d",m.mp,m.maxmp); sprintf(buf,"[1;34m│[32m姓 名:[37m%-10s [32m生 命:[37m%-11s [32m法 力:[37m%-11s [34m│[m", p[n].name,inbuf1,inbuf2); prints(buf); move(21,0); sprintf(buf,"[1;34m│[32m攻 击:[37m%-6d [32m防 御:[37m%-6d [32m速 度:[37m%-6d [32m金 钱:[37m%-6d [34m│[m", m.attack,m.resist,m.speed,m.money); prints(buf); move(22,0); sprintf(buf,"[1;34m└—————————————————————————————————————┘[m"); prints(buf); move(b_lines,0); sprintf(buf,"[1;44;37m 战斗命令 [46m [1]普通 [2]全力 [3]魔法 [4]防御 [5]补充 [6]逃命 [m"); prints(buf); if(m.death==0 && d.death==0) { dresistmore=0; d.nodone=0; pipkey=egetch(); switch(pipkey) { case '1': if(rand()%9==0) { pressanykey("竟然没打中..:~~~"); } 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); pressanykey(buf); } d.tired+=rand()%(n+1)/15+2; break; case '2': show_fight_pic(2); if(rand()%11==0) { pressanykey("竟然没打中..:~~~"); } 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); pressanykey(buf); } else { d.nodone=1; pressanykey("你的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); pressanykey(buf); } else { if(rand()%15==0) pressanykey("竟然没打中..:~~~"); 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); pressanykey(buf); } } } break; case '4': dresistmore=1; d.tired+=rand()%(n+1)/20+1; pressanykey("小鸡加强防御啦...."); 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("电子养小鸡", BoardName); move(10,0); prints(" [1;31m┌——————————————————————┐[m"); move(11,0); prints(" [1;31m│ [37m实力不强的小鸡 [33m%-10s [31m│[m",d.name); move(12,0); prints(" [1;31m│ [37m在与对手 [32m%-10s [37m战斗後落跑啦 [31m│[m",p[n].name); move(13,0); sprintf(inbuf1,"%d/%d",d.hexp-oldhexp,d.mexp-oldmexp); prints(" [1;31m│ [37m评价增加了 [36m%-5s [37m点 技术增加了 [36m%-2d/%-2d [37m点 [31m│[m",inbuf1,d.hskill-oldhskill,d.mskill-oldmskill); move(14,0); sprintf(inbuf1,"%d [37m元",oldmoney-d.money); prints(" [1;31m│ [37m勇敢降低了 [36m%-5d [37m点 金钱减少了 [36m%-13s [31m│[m",oldbrave-d.brave,inbuf1); move(15,0); prints(" [1;31m└——————————————————————┘[m"); pressanykey("叁十六计 走为上策..."); 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,"[1;41m 星空战斗鸡 ~ [32m♂ [37m%-10s [0m",d.name); else if(d.sex==2) sprintf(buf,"[1;41m 星空战斗鸡 ~ [33m♀ [37m%-10s [0m",d.name); else sprintf(buf,"[1;41m 星空战斗鸡 ~ [34m? [37m%-10s [0m",d.name); prints(buf); move(1,0); sprintf(buf,"[1;31m┌—————————————————————————————————————┐[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,"[1;31m│[33m生 命:[37m%-12s[33m法 力:[37m%-12s[33m疲 劳:[%dm%-12d[33m金 钱:[37m%-10d[31m│[m", inbuf1,inbuf2,lucky,d.tired,d.money); prints(buf); move(3,0); sprintf(inbuf1,"%d/%d",d.hexp,d.mexp); sprintf(buf,"[1;31m│[33m攻 击:[37m%-6d [33m防 御:[37m%-6d [33m速 度:[37m%-5d [33m经 验:[37m%-10s[31m│[m", d.attack,d.resist,d.speed,inbuf1); prints(buf); move(4,0); sprintf(buf,"[1;31m│[33m食 物:[37m%-5d [33m大补丸:[37m%-5d [33m零 食:[37m%-5d [33m药 草:[37m%-5d [31m│[m", d.food,d.bighp,d.cookie,d.medicine); prints(buf); move(5,0); sprintf(buf,"[1;31m└—————————————————————————————————————┘[m"); prints(buf); move(6,0); if(mode==1) show_badman_pic(n); move(19,0); sprintf(buf,"[1;34m┌—————————————————————————————————————┐[m"); prints(buf); move(20,0); sprintf(inbuf1,"%d/%d",m.hp,m.maxhp); sprintf(inbuf2,"%d/%d",m.mp,m.maxmp); sprintf(buf,"[1;34m│[32m姓 名:[37m%-10s [32m生 命:[37m%-11s [32m法 力:[37m%-11s [34m│[m", p[n].name,inbuf1,inbuf2); prints(buf); move(21,0); sprintf(buf,"[1;34m│[32m攻 击:[37m%-6d [32m防 御:[37m%-6d [32m速 度:[37m%-6d [32m金 钱:[37m%-6d [34m│[m", m.attack,m.resist,m.speed,m.money); prints(buf); move(22,0); sprintf(buf,"[1;34m└—————————————————————————————————————┘[m"); prints(buf); move(b_lines,0); sprintf(buf,"[1;41;37m [37m攻击命令 [47m [31m[1][30m普通 [31m[2][30m全力 [31m[3][30m魔法 [31m[4][30m防御 [31m[5][30m逃命 [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; switch(mankey) { case 1: if(rand()%6==5) { pressanykey("对方没打中..:~~~"); } 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -