📄 pip_menu.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)#ifndef MAPLEextern char BoardName[];#endif // END MAPLEchar *menuname[8][2]={ {" ", "[1;44;37m 选单 [46m[1]基本 [2]逛街 [3]修行 [4]玩乐 [5]打工 [6]特殊 [7]系统 [Q]离开 [0m"}, {" ", "[1;44;37m 基本选单 [46m[1]饮食 [2]清洁 [3]休息 [4]亲亲 [Q]跳出: [m"}, {"[1;44;37m 逛街 [46m【日常用品】[1]便利商店 [2]星空药铺 [3]夜里书局 [m", "[1;44;37m 选单 [46m【武器百货】[A]头部武器 [B]右手武器 [C]左手武器 [D]身体武器 [E]脚部武器 [m"}, {"[1;44;37m 修行 [46m[A]科学(%d) [B]诗词(%d) [C]神学(%d) [D]军学(%d) [E]剑术(%d) [m", "[1;44;37m 选单 [46m[F]格斗(%d) [G]魔法(%d) [H]礼仪(%d) [I]绘画(%d) [J]舞蹈(%d) [Q]跳出: [m"}, {" ", "[1;44;37m 玩乐选单 [46m[1]散步 [2]运动 [3]约会 [4]猜拳 [5]旅游 [6]郊外 [7]唱歌 [Q]跳出: [m"}, {"[1;44;37m 打工 [46m[A]家事 [B]保姆 [C]旅馆 [D]农场 [E]餐厅 [F]教堂 [G]地摊 [H]伐木 [m", "[1;44;37m 选单 [46m[I]美发 [J]猎人 [K]工地 [L]守墓 [M]家教 [N]酒家 [O]酒店 [P]夜总会 [Q]跳出[m"}, {" ", "[1;44;37m 特殊选单 [46m[1]星空医院 [2]媚登峰~ [3]战斗修行 [4]拜访朋友 [5]总司令部 [Q]跳出[m"}, {" ", "[1;44;37m 系统选单 [46m[1]详细资料 [2]小鸡自由 [3]特别服务 [4]储存进度 [5]读取进度 [Q]跳出[m"}};/*主选单*/int pip_basic_menu(),pip_store_menu(),pip_practice_menu();int pip_play_menu(),pip_job_menu(),pip_special_menu(),pip_system_menu();static struct pipcommands pipmainlist[] ={pip_basic_menu, '1', '1',pip_store_menu, '2', '2',pip_practice_menu, '3', '3',pip_play_menu, '4', '4',pip_job_menu, '5', '5',pip_special_menu, '6', '6',pip_system_menu, '7', '7',NULL, '\0', '\0'};/*基本选单*/int pip_basic_feed(),pip_basic_takeshower(),pip_basic_takerest(),pip_basic_kiss();static struct pipcommands pipbasiclist[] ={pip_basic_feed, '1', '1',pip_basic_takeshower, '2', '2',pip_basic_takerest, '3', '3',pip_basic_kiss, '4', '4',NULL, '\0', '\0'};/*商店选单*/int pip_store_food(),pip_store_medicine(),pip_store_other();int pip_store_weapon_head(),pip_store_weapon_rhand(),pip_store_weapon_lhand();int pip_store_weapon_body(),pip_store_weapon_foot();static struct pipcommands pipstorelist[] ={pip_store_food, '1', '1',pip_store_medicine, '2', '2',pip_store_other, '3', '3',pip_store_weapon_head, 'a', 'A',pip_store_weapon_rhand, 'b', 'B',pip_store_weapon_lhand, 'c', 'C',pip_store_weapon_body, 'd', 'D',pip_store_weapon_foot, 'e', 'E',NULL, '\0', '\0'};/*修行选单*/int pip_practice_classA(),pip_practice_classB(),pip_practice_classC();int pip_practice_classD(),pip_practice_classE(),pip_practice_classF();int pip_practice_classG(),pip_practice_classH(),pip_practice_classI();int pip_practice_classJ();static struct pipcommands pippracticelist[] ={pip_practice_classA, 'a', 'A',pip_practice_classB, 'b', 'B',pip_practice_classC, 'c', 'C',pip_practice_classD, 'd', 'D',pip_practice_classE, 'e', 'E',pip_practice_classF, 'f', 'F',pip_practice_classG, 'g', 'G',pip_practice_classH, 'h', 'H',pip_practice_classI, 'i', 'I',pip_practice_classJ, 'j', 'J',NULL, '\0', '\0'};/*玩乐选单*/int pip_play_stroll(),pip_play_sport(),pip_play_date(),pip_play_guess();int pip_play_outing(),pip_play_kite(),pip_play_KTV();static struct pipcommands pipplaylist[] ={pip_play_stroll, '1', '1',pip_play_sport, '2', '2',pip_play_date, '3', '3',pip_play_guess, '4', '4',pip_play_outing, '5', '5',pip_play_kite, '6', '6',pip_play_KTV, '7', '7',NULL, '\0', '\0'};/*打工选单*/int pip_job_workA(),pip_job_workB(),pip_job_workC(),pip_job_workD();int pip_job_workE(),pip_job_workF(),pip_job_workG(),pip_job_workH();int pip_job_workI(),pip_job_workJ(),pip_job_workK(),pip_job_workL();int pip_job_workM(),pip_job_workN(),pip_job_workO(),pip_job_workP();static struct pipcommands pipjoblist[] ={pip_job_workA, 'a', 'A',pip_job_workB, 'b', 'B',pip_job_workC, 'c', 'C',pip_job_workD, 'd', 'D',pip_job_workE, 'e', 'E',pip_job_workF, 'f', 'F',pip_job_workG, 'g', 'G',pip_job_workH, 'h', 'H',pip_job_workI, 'i', 'I',pip_job_workJ, 'j', 'J',pip_job_workK, 'k', 'K',pip_job_workL, 'l', 'L',pip_job_workM, 'm', 'M',pip_job_workN, 'n', 'N',pip_job_workO, 'o', 'O',pip_job_workP, 'p', 'P',NULL, '\0', '\0'};/*特殊选单*/int pip_see_doctor(),pip_change_weight(),pip_meet_vs_man(),pip_query(),pip_go_palace();static struct pipcommands pipspeciallist[] ={pip_see_doctor, '1', '1',pip_change_weight, '2', '2',pip_meet_vs_man, '3', '3',pip_query, '4', '4',pip_go_palace, '5', '5',NULL, '\0', '\0'};/*系统选单*/int pip_data_list(),pip_system_freepip(),pip_system_service();int pip_write_backup(),pip_read_backup();int pip_divine(),pip_results_show();static struct pipcommands pipsystemlist[] ={pip_data_list, '1', '1',pip_system_freepip, '2', '2',pip_system_service, '3', '3',pip_write_backup, '4', '4',pip_read_backup, '5', '5',pip_divine, 'o', 'O',pip_results_show, 's', 'S',NULL, '\0', '\0'};/*类似menu.c的功能*/intpip_do_menu(menunum,menumode,cmdtable)int menunum,menumode;struct pipcommands cmdtable[];{ time_t now; int key1,key2; int pipkey; int goback=0,ok=0; int class1=0,class2=0,class3=0,class4=0,class5=0; int class6=0,class7=0,class8=0,class9=0,class10=0; struct pipcommands *cmd1; struct pipcommands *cmd2; do { ok=0; /*判断是否死亡 死掉即跳回上一层*/ if(d.death==1 || d.death==2 || d.death==3) return 0; /*经pip_mainmenu判定後是否死亡*/ if(pip_mainmenu(menumode)) return 0; class1=d.wisdom/200+1; /*科学*/ if(class1>5) class1=5; class2=(d.affect*2+d.wisdom+d.art*2+d.character)/400+1; /*诗词*/ if(class2>5) class2=5; class3=(d.belief*2+d.wisdom)/400+1; /*神学*/ if(class3>5) class3=5; class4=(d.hskill*2+d.wisdom)/400+1; /*军学*/ if(class4>5) class4=5; class5=(d.hskill+d.attack)/400+1; /*剑术*/ if(class5>5) class5=5; class6=(d.hskill+d.resist)/400+1; /*格斗*/ if(class6>5) class6=5; class7=(d.mskill+d.maxmp)/400+1; /*魔法*/ if(class7>5) class7=5; class8=(d.manners*2+d.character)/400+1; /*礼仪*/ if(class8>5) class8=5; class9=(d.art*2+d.character)/400+1; /*绘画*/ if(class9>5) class9=5; class10=(d.art*2+d.charm)/400+1; /*舞蹈*/ if(class10>5) class10=5; clrchyiuan(22,24); move(b_lines-1,0); prints(menuname[menunum][0],class1,class2,class3,class4,class5); move(b_lines,0); prints(menuname[menunum][1],class6,class7,class8,class9,class10); now=time(0); pip_time_change(now); pipkey=egetch(); now=time(0); pip_time_change(now); cmd1=cmdtable; cmd2=cmdtable; switch(pipkey) {#ifdef MAPLE case Ctrl('R'): if (currutmp->msgs[0].last_pid) { show_last_call_in(); my_write(currutmp->msgs[0].last_pid,"流星丢回去:",0); } break;#endif // END MAPLE#ifdef MAPLE case KEY_ESC: if (KEY_ESC_arg == 'c') capture_screen(); else if (KEY_ESC_arg == 'n') edit_note(); break;#endif // END MAPLE case KEY_LEFT: case 'q': case 'Q': goback=1; break; default: for(cmd1; key1 = cmd1->key1; cmd1++) /*if(key == tolower(pipkey))*/ if(key1 == pipkey) { cmd1->fptr(); ok=1; } for(cmd2; key2 = cmd2->key2; cmd2++) if(ok==0 && key2 == pipkey) { cmd2->fptr(); } break; } }while(goback==0); return 0;}/*---------------------------------------------------------------------------*//* 基本选单: 食 清洁 亲亲 休息 *//* *//*---------------------------------------------------------------------------*/int pip_main_menu(){ pip_do_menu(0,0,pipmainlist); return 0;}/*---------------------------------------------------------------------------*//* 基本选单: 食 清洁 亲亲 休息 *//* *//*---------------------------------------------------------------------------*/int pip_basic_menu(){ pip_do_menu(1,0,pipbasiclist); return 0;}/*---------------------------------------------------------------------------*//* 商店选单:食物 零食 大补丸 玩具 书本 *//* *//*---------------------------------------------------------------------------*/int pip_store_menu(){ pip_do_menu(2,1,pipstorelist); return 0;}/*---------------------------------------------------------------------------*//* 修行选单:念书 练武 修行 *//* *//*---------------------------------------------------------------------------*/int pip_practice_menu(){ pip_do_menu(3,3,pippracticelist); return 0;} /*---------------------------------------------------------------------------*//* 玩乐选单:散步 旅游 运动 约会 猜拳 *//* *//*---------------------------------------------------------------------------*/int pip_play_menu(){ pip_do_menu(4,0,pipplaylist); return 0;}/*---------------------------------------------------------------------------*//* 打工选单:家事 苦工 家教 地摊 *//* *//*---------------------------------------------------------------------------*/int pip_job_menu(){ pip_do_menu(5,2,pipjoblist); return 0;}/*---------------------------------------------------------------------------*//* 特殊选单:看病 减肥 战斗 拜访 朝见 *//* *//*---------------------------------------------------------------------------*/int pip_special_menu(){ pip_do_menu(6,0,pipspeciallist); return 0;}/*---------------------------------------------------------------------------*//* 系统选单:个人资料 小鸡放生 特别服务 *//* *//*---------------------------------------------------------------------------*/int pip_system_menu(){ pip_do_menu(7,0,pipsystemlist); return;}intpip_mainmenu(mode)int mode;{ char genbuf[200]; char inbuf1[20]; char inbuf2[20]; char buf[256]; time_t now; int tm,m,color,tm1,m1; int age; int color1,color2,color3,color4; int anynum; float pc; char yo[12][5]={"诞生","婴儿","幼儿","儿童","少年","青年", "成年","壮年","更年","老年","古稀","神仙"}; color1=color2=color3=color4=37; move(1,0); tm=(time(0)-start_time+d.bbtime)/60/30; /* 一岁 */ tm1=(time(0)-start_time+d.bbtime)/60; m=d.bbtime/60/30; m1==d.bbtime/60; /*长大一岁时的增加改变值*/ if(m!=tm) { d.wisdom+=10; d.happy+=rand()%5+5; if(d.happy>100) d.happy=100; d.satisfy+=rand()%5; if(d.satisfy>100) d.satisfy=100; if(tm<13) d.maxhp+=rand()%5+5; else d.maxhp-=rand()%15; d.character+=rand()%5; d.money+=500; d.seeroyalJ=1; count_tired(1,7,"N",100,0); d.bbtime+=time(0)-start_time; start_time=time(0); pip_write_file(); /*记录开始*/ now=time(0); sprintf(genbuf, "[1;37m%s %-11s的小鸡 [%s] 满 %d 岁了 [0m\n", Cdate(&now), cuser.userid,d.name,m+1); pip_log_record(genbuf); /*记录终止*/ clear(); showtitle("电子养小鸡", BoardName); show_basic_pic(20); /*生日快乐*/ pressanykey("小鸡长大一岁了.."); /*结局*/ if(tm%2==0) pip_results_show(); if(tm>=21 && (d.wantend==4 || d.wantend==5 || d.wantend==6)) pip_ending_screen(); clrtobot(); refresh(); } color=37; m=tm; if((rand()%30==29) && tm>=15 && d.charm>=300 && d.character >=300) pip_marriage_offer(); if(mode!=1 && rand()%71==69) pip_divine(); /*武官*/ if((time(0)-start_time)>=900 ) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -