📄 pip_special.c
字号:
/*---------------------------------------------------------------------------*//* 特殊选单:看病 减肥 战斗 拜访 朝见 *//* *//*---------------------------------------------------------------------------*/#include <time.h>#include "bbs.h"#include "pip.h"extern struct chicken d;extern time_t start_time;extern time_t lasttime;//#define getdata(a, b, c , d, e, f, g) getdata(a,b,c,d,e,f,NULL,g)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}};int pip_see_doctor() /*看医生*/{ char buf[256]; long savemoney; savemoney=d.sick*25; if(d.sick<=0) { pressanykey("哇哩..没病来医院干嘛..被骂了..呜~~"); 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,"你的病要花 %d 元喔....你不够钱啦...",savemoney); pressanykey(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); pressanykey("药到病除..没有副作用!!"); } return 0;}/*减肥*/int pip_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, YEA);#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) { pressanykey("传统增胖要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, YEA);#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); pressanykey(inbuf); } else { pressanykey("回心转意罗....."); } } 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, YEA);#endif // END MAPLE weightmp=atoi(genbuf); if(weightmp<=0) { pressanykey("输入有误..放弃罗..."); } 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, YEA);#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); pressanykey(inbuf); } else { pressanykey("回心转意罗....."); } } else { pressanykey("你钱没那麽多啦......."); } break; case '3': if(d.money<80) { pressanykey("传统减肥要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, YEA);#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); pressanykey(inbuf); } else { pressanykey("回心转意罗....."); } } 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, YEA);#endif // END MAPLE weightmp=atoi(genbuf); if(weightmp<=0) { pressanykey("输入有误..放弃罗..."); } else if(d.weight<=weightmp) { pressanykey("你没那麽重喔....."); } 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, YEA);#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); pressanykey(inbuf); } else { pressanykey("回心转意罗....."); } } else { pressanykey("你钱没那麽多啦......."); } break; } } return 0;}/*参见*/intpip_go_palace(){ pip_go_palace_screen(royallist); return 0;}intpip_go_palace_screen(p) struct royalset *p;{ int n; int a; int b; int choice; int prince; /*王子会不会出现*/ int pipkey; int change; char buf[256]; char inbuf1[20]; char inbuf2[20]; char ans[5]; 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,"[1;31m┌——————┤[37;41m 来到总司令部了 请选择你欲拜访的对象 [0;1;31m├——————┐[0m"); prints(buf); move(14,4); sprintf(buf,"[1;31m│ │[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,"[1;31m│ [36m([37m%s[36m) [33m%-10s [37m%-14s [36m([37m%s[36m) [33m%-10s [37m%-14s[31m│[0m", p[a].num,p[a].name,inbuf1,p[b].num,p[b].name,inbuf2); else sprintf(buf,"[1;31m│ [36m([37m%s[36m) [33m%-10s [37m%-14s [31m│[0m", p[a].num,p[a].name,inbuf1); prints(buf); } move(20,4); sprintf(buf,"[1;31m│ │[0m"); prints(buf); move(21,4); sprintf(buf,"[1;31m└—————————————————————————————————┘[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("[1;33m [生命力] %d/%d [疲劳度] %d [0m",d.hp,d.maxhp,d.tired); move(b_lines, 0); clrtoeol(); move(b_lines,0); prints( "[1;37;46m 参见选单 [44m [字母]选择欲拜访的人物 [Q]离开星空总司令部: [0m"); pipkey=egetch(); 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("[1;31m累死了...[m ",1); } if(d.hp<0) { d.death=1; pipdie("[1;31m饿死了...[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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -