• [C++] 小游戏 斗破苍穹 2.2.1至2.11.5全部版本(上) zty出品


    大家好,今天zty整合了斗破苍穹2.2.1到2.11.5的所有版本 我这么辛苦,就要50个赞吧

    2.2.1

    1. #include
    2. #include
    3. #include //suiji
    4. #include //SLEEP函数
    5. struct Player //玩家结构体,并初始化player
    6. {
    7. char name[21];
    8. int attack;
    9. int defense;
    10. int health;
    11. long int max_health;
    12. int level;
    13. int exp;
    14. int range_exp;
    15. long int max_exp;
    16. } player= {"勇者",50,40,100,100,1,0,0,100};
    17. struct Enemy //怪的结构体,并初始化各种怪
    18. {
    19. char name[20];
    20. char wupin[12];
    21. int attack;
    22. int defense;
    23. int health;
    24. int money;
    25. long int exp;
    26. int wupin_sign;
    27. int wupinpro;
    28. int double_attack;
    29. int miss;
    30. } strongman= {"森林巨人","黄金圣衣",40,50,350,200,100,1,2,1,0},
    31. witch= {"森林女巫","银甲",25,15,100,50,50,2,2,1,1},
    32. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2},
    33. big_strongman= {"森林巨人王","巨人晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    34. lion= {"草原雄狮","绝世好剑",60,30,280,200,100,5,2,1,0},
    35. horse= {"草原野马","碧血剑",28,12,90,50,50,6,2,1,1},
    36. bee= {"草原黄蜂","长剑",17,11,60,30,35,7,3,2,2},
    37. shitu= {"使徒","\0",60*8,30*8,280*8,200*8,100*8,9,1,1,0},
    38. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    39. struct Place
    40. {
    41. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3;
    42. } place= {1,2,3,4,5,6,7,8};
    43. int max_exp=0;
    44. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=9;
    45. int cao=3,jijiubao=2,baiyao=2,superbaiyao=1,boom=3,dubiao=2,atom_boom=1;
    46. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0;
    47. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0;
    48. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    49. char gongname[20]="无",fangname[20]="无";
    50. char proof;
    51. void AddWupin(int);
    52. int AttackResult();
    53. void BattleAct();
    54. void ChooseWupin();
    55. void DisplayState();
    56. void OrdinaryAct();
    57. int SuiJi();
    58. int SuiJi100();
    59. void WhetherLevelUp();
    60. void SlowDisplay(char *);
    61. int main()
    62. {
    63. int i=0,j=0,k=0;
    64. char player_name[21];
    65. Sleep(1000);
    66. printf("--------------------------欢迎来到 [苍穹世界] 2.2.1 正式版-----------------------\n\n\n");
    67. //如果想使用外挂,名字请输入:“zty ”。
    68. Sleep(1000);
    69. printf("这里是苍穹世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");
    70. scanf("%s",player_name);
    71. strncpy(player.name,player_name,20);
    72. if(strcmp(player.name,"zty")==0)
    73. {
    74. printf("\n\n\n封印多年的圣剑血统啊!你终于觉醒了!\n\n\n圣战斗士,你成为了天选之人,请你救出公主吧!\n\n\n");
    75. player.attack=999;
    76. player.defense=999;
    77. player.health=9999;
    78. player.max_health=9999;
    79. }
    80. getchar();
    81. OrdinaryAct();
    82. return 0;
    83. }
    84. int SuiJi()
    85. {
    86. srand((unsigned)time(NULL));
    87. return rand()%10;
    88. }
    89. int SuiJi100()
    90. {
    91. srand((unsigned)time(NULL));
    92. return rand()%100;
    93. }
    94. void ChooseWupin() //选择物品 并使用
    95. {
    96. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨人晶石%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm);
    97. switch(scanf("%d",&choose_number),choose_number)
    98. {
    99. case 1:
    100. if(cao>0)
    101. {
    102. printf("使用止血草,HP增加60\n\n\n");
    103. cao--;
    104. if(player.health+60>player.max_health)player.health=player.max_health;
    105. else player.health+=60;
    106. }
    107. else printf("没有止血草了\n\n\n");
    108. break;
    109. case 2:
    110. if(jijiubao>0)
    111. {
    112. printf("使用急救包,HP增加80\n\n\n");
    113. jijiubao--;
    114. if(player.health+80>player.max_health)player.health=player.max_health;
    115. else player.health+=80;
    116. }
    117. else printf("没有急救包了\n\n\n");
    118. break;
    119. case 3:
    120. if(baiyao>0)
    121. {
    122. printf("使用云南白药,HP增加120\nz\n\n");
    123. baiyao--;
    124. if(player.health+120>player.max_health)player.health=player.max_health;
    125. else player.health+=120;
    126. }
    127. else printf("没有云南白药了\n\n\n");
    128. break;
    129. case 4:
    130. if(superbaiyao>0)
    131. {
    132. printf("使用超级云南白药,HP增加200\n\n\n");
    133. superbaiyao--;
    134. if(player.health+200>player.max_health)player.health=player.max_health;
    135. else player.health+=200;
    136. }
    137. else printf("没有超级云南白药了\n\n\n");
    138. break;
    139. case 5:
    140. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    141. {
    142. if(boom>0)
    143. {
    144. printf("使用手雷,敌人HP减少100\n\n\n");
    145. boom--;
    146. guai.health-=100;
    147. AttackResult();
    148. }
    149. }
    150. else printf("非战斗状态,不能使用手雷!\n\n\n");
    151. break;
    152. case 6:
    153. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    154. {
    155. if(dubiao>0)
    156. {
    157. printf("使用毒标,敌人HP减少200\n\n\n");
    158. dubiao--;
    159. guai.health-=200;
    160. AttackResult();
    161. }
    162. }
    163. else printf("非战斗状态,不能使用毒标!\n\n\n");
    164. break;
    165. case 7:
    166. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    167. {
    168. if(atom_boom>0)
    169. {
    170. printf("使用手抛式原子弹,敌人HP减少666666666\n\n\n");
    171. atom_boom--;
    172. guai.health-=666666666;
    173. AttackResult();
    174. }
    175. }
    176. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");
    177. break;
    178. case 8:
    179. if(jingyancao>0 && player.level<1000)
    180. {
    181. printf("使用经验草,等级增加10级\n\n\n");
    182. jingyancao--;
    183. player.level+=10;
    184. printf("等级:%d\n",player.level);
    185. }
    186. else if(jingyancao<1)
    187. {
    188. printf("没有经验草了\n\n\n");
    189. }
    190. else printf("等级超过45级,修为太高,无法使用。\n\n\n");
    191. break;
    192. case 9:
    193. if(jingyanbao>0 && player.level<1000)
    194. {
    195. if(player.level>44&&player.level<1000)
    196. {
    197. int sheng;
    198. sheng=45-player.level;
    199. player.level+=sheng;
    200. printf("使用经验包,等级增加%d级",sheng);
    201. printf("等级:%d\n",player.level);
    202. }
    203. else
    204. {
    205. printf("使用经验包,等级增加2级\n\n\n");
    206. jingyanbao--;
    207. player.level+=2;
    208. printf("等级:%d\n",player.level);
    209. }
    210. }
    211. else if(jingyanbao<1)
    212. {
    213. printf("没有经验包了");
    214. }
    215. else printf("等级超过45级,修为太高,无法使用。\n\n\n");
    216. break;
    217. case 10:
    218. if(jingyanshi>0 && player.level<1000)
    219. {
    220. if(player.level>42&&player.level<1000)
    221. {
    222. int sheng;
    223. sheng=45-player.level;
    224. player.level+=sheng;
    225. printf("使用经验石,等级增加%d级\n",sheng);
    226. printf("等级:%d\n",player.level);
    227. }
    228. else
    229. {
    230. printf("使用经验石,等级增加10级\n");
    231. jingyanshi--;
    232. player.level+=10;
    233. }
    234. }
    235. else if(jingyanshi<1)
    236. {
    237. printf("没有经验石了\n\n\n");
    238. }
    239. else printf("等级超过45级,修为太高,无法使用。\n\n\n");
    240. break;
    241. case 11:
    242. if(strongman_arm>0 && player.level<10000)
    243. {
    244. if(player.level>29&&player.level<10000)
    245. {
    246. int sheng;
    247. sheng=45-player.level;
    248. player.level+=sheng;
    249. printf("使用巨人晶石,等级增加%d级",sheng);
    250. printf("等级:%d\n",player.level);
    251. }
    252. else
    253. {
    254. printf("使用巨人晶石,等级增加16级\n\n\n");
    255. strongman_arm--;
    256. player.level+=16;
    257. printf("等级:%d\n",player.level);
    258. }
    259. }
    260. else if(strongman_arm<1)
    261. {
    262. printf("没有巨人晶石了。\n\n\n");
    263. }
    264. else printf("等级超过45级,修为太高,无法使用。\n\n\n");
    265. break;
    266. case 0:
    267. break;
    268. default:
    269. printf("ChooseWupin error!\n\n\n");
    270. }
    271. }
    272. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    273. {
    274. if(guai.health<=0)
    275. {
    276. battle=0;
    277. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
    278. player.exp+=guai.exp;
    279. player.range_exp+=guai.exp;
    280. money+=guai.money;
    281. s=SuiJi();
    282. if(s
    283. {
    284. printf("从敌人尸骸中发现");
    285. printf("%s\n\n\n",guai.wupin);
    286. AddWupin(guai.wupin_sign);
    287. }
    288. WhetherLevelUp();
    289. if(strcmp(guai.name,"使徒")==0)
    290. {
    291. printf("战斗胜利,救出公主!!!");
    292. getchar();
    293. getchar();
    294. exit(0);
    295. }
    296. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    297. }
    298. else
    299. {
    300. int s=SuiJi();
    301. if((guai.attack+s-player.defense/3)<0)
    302. {
    303. player.health-=1;
    304. printf("%s反击,你的HP减少了 1\n\n",guai.name);
    305. }
    306. else
    307. {
    308. player.health-=guai.attack+s-player.defense/3;
    309. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);
    310. }
    311. if(player.health<0)
    312. {
    313. battle=0;
    314. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);
    315. money-=player.level*500;
    316. player.health=player.max_health/5;
    317. OrdinaryAct();//
    318. return 1;
    319. }
    320. }
    321. return 0;
    322. }
    323. void AddWupin(int wupin_sign)
    324. {
    325. switch(wupin_sign)
    326. {
    327. case 1:
    328. fang4n++;
    329. break;
    330. case 2:
    331. fang3n++;
    332. break;
    333. case 3:
    334. fang2n++;
    335. break;
    336. case 4:
    337. strongman_arm=1;
    338. break;
    339. case 5:
    340. gong4n++;
    341. break;
    342. case 6:
    343. gong3n++;
    344. break;
    345. case 7:
    346. gong2n++;
    347. break;
    348. default:
    349. printf("AddWupin error\n\n\n");
    350. }
    351. }
    352. void WhetherLevelUp()
    353. {
    354. int i=0,j=0;
    355. int l1=player.range_exp/100;
    356. int l2=player.range_exp/300;
    357. int l3=player.range_exp/600;
    358. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    359. {
    360. if(l1==1)
    361. {
    362. printf("%s",player.name);
    363. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    364. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    365. player.attack+=3;
    366. player.defense+=2;
    367. player.max_health+=20;
    368. player.health=player.max_health;
    369. player.level++;
    370. player.range_exp=0;
    371. player.exp=player.max_exp;
    372. player.max_exp+=100;
    373. }
    374. else
    375. {
    376. printf("好厉害!连升%d级!",l1);
    377. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
    378. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    379. player.attack+=3*l1;
    380. player.defense+=2*l1;
    381. player.max_health+=20*l1;
    382. player.health=player.max_health;
    383. player.level+=l1;
    384. player.range_exp=0;
    385. player.exp=player.max_exp;
    386. player.max_exp+=100*l1;
    387. }
    388. }
    389. else if(player.level<=40&&l2>0)
    390. {
    391. if(l2==1)
    392. {
    393. printf("%s",player.name);
    394. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    395. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    396. player.attack+=3;
    397. player.defense+=2;
    398. player.max_health+=20;
    399. player.health=player.max_health;
    400. player.level++;
    401. player.range_exp=0;
    402. player.exp=player.max_exp;
    403. player.max_exp+=300;
    404. }
    405. else
    406. {
    407. printf("好厉害!连升%d级!",l1);
    408. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
    409. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    410. player.attack+=3*l2;
    411. player.defense+=2*l2;
    412. player.max_health+=20*l2;
    413. player.health=player.max_health;
    414. player.level+=l2;
    415. player.range_exp=0;
    416. player.exp=player.max_exp;
    417. player.max_exp+=300*l2;
    418. }
    419. }
    420. else if(l3>0)
    421. {
    422. if(l3==1)
    423. {
    424. printf("%s",player.name);
    425. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    426. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    427. player.attack+=3;
    428. player.defense+=2;
    429. player.max_health+=20;
    430. player.health=player.max_health;
    431. player.level++;
    432. player.range_exp=0;
    433. player.exp=player.max_exp;
    434. player.max_exp+=600;
    435. }
    436. else
    437. {
    438. printf("好厉害!连升%d级!",l1);
    439. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
    440. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    441. player.attack+=3*l3;
    442. player.defense+=2*l3;
    443. player.max_health+=20*l3;
    444. player.health=player.max_health;
    445. player.level+=l3;
    446. player.range_exp=0;
    447. player.exp=player.max_exp;
    448. player.max_exp+=600*l3;
    449. }
    450. }
    451. }
    452. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    453. {
    454. while(1)
    455. {
    456. // \(1000);
    457. // system("cls");
    458. puts("=============================================================================");
    459. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");
    460. puts("=============================================================================");
    461. switch(scanf("%d",&choose_number),choose_number)
    462. {
    463. case 1: //显示移动菜单
    464. printf("要去哪里?\n\n\n");
    465. printf("1,happy酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");
    466. switch(scanf("%d",&choose_number),choose_number)
    467. {
    468. case 1:
    469. place_sign=place.bar; //记录目前位置-酒吧
    470. // OrdinaryAct();
    471. break;
    472. case 2:
    473. place_sign=place.hotel; //进入旅店
    474. printf("金币:%d",money);
    475. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");
    476. choose_number=1;
    477. switch(scanf("%d",&choose_number),choose_number)
    478. {
    479. case 1:
    480. if(money-200<0) //判断钱是否够
    481. {
    482. printf("Sorry,你的钱不够~\n\n\n");
    483. printf("金币:%d",money);
    484. }
    485. else
    486. {
    487. printf("好好休息\nHP满\n第二天了\n\n");
    488. printf("金币:%d\n",money);
    489. money-=200; //花费200住店费
    490. player.health=player.max_health; //体力满
    491. }
    492. break;
    493. case 0:
    494. printf("下次再来!\n\n\n");
    495. break;
    496. default:
    497. printf("hotel talk error!\n\n\n");
    498. }
    499. place_sign=0;
    500. break;
    501. case 3:
    502. int yongju,gong,fang;
    503. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");
    504. scanf("%d",&yongju);
    505. switch(yongju)
    506. {
    507. case 1:
    508. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,长剑¥500 3,碧血剑¥1000\n\n\n");
    509. scanf("%d",&gong);
    510. switch(gong)
    511. {
    512. case 1:
    513. if(money>=300)
    514. {
    515. gong1n++;
    516. money=money-300;
    517. printf ("匕首+1\n");
    518. printf("匕首:%d个\n",gong1n);
    519. printf("金币:%d\n",money);
    520. break;
    521. }
    522. else
    523. {
    524. printf("钱不够!\n");
    525. printf("金币:%d\n",money);
    526. break;
    527. }
    528. case 2:
    529. if(money>=500)
    530. {
    531. gong2n++;
    532. money=money-500;
    533. printf ("长剑+1\n");
    534. printf("长剑:%d个\n",gong2n);
    535. printf("金币:%d\n",money);
    536. break;
    537. }
    538. else
    539. {
    540. printf("钱不够!\n");
    541. printf("金币:%d\n",money);
    542. break;
    543. }
    544. case 3:
    545. if(money>=1000)
    546. {
    547. gong3n++;
    548. money=money-1000;
    549. printf ("碧血剑+1\n");
    550. printf("碧血剑:%d个\n",gong3n);
    551. printf("金币:%d\n",money);
    552. break;
    553. }
    554. else
    555. {
    556. printf("钱不够!\n");
    557. printf("金币:%d\n",money);
    558. break;
    559. }
    560. default:
    561. printf("对不起,我们只会打造以上武器。");
    562. break;
    563. }
    564. break;
    565. case 2:
    566. int fang;
    567. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,银甲¥1000\n\n\n");
    568. scanf("%d",&fang);
    569. switch(fang)
    570. {
    571. case 1:
    572. if(money>=300)
    573. {
    574. fang1n++;
    575. money=money-300;
    576. printf ("布衣+1\n");
    577. printf("布衣:%d个\n",fang1n);
    578. printf("金币:%d\n",money);
    579. }
    580. else
    581. {
    582. printf("钱不够!\n");
    583. printf("金币:%d\n",money);
    584. }
    585. break;
    586. case 2:
    587. if(money>=500)
    588. {
    589. fang2n++;
    590. money=money-500;
    591. printf ("铁甲+1\n");
    592. printf("铁甲:%d个\n",fang2n);
    593. printf("金币:%d\n",money);
    594. }
    595. else
    596. {
    597. printf("钱不够!\n");
    598. printf("金币:%d",money);
    599. }
    600. break;
    601. case 3:
    602. if(money>=1000)
    603. {
    604. fang3n++;
    605. money=money-1000;
    606. printf ("银甲+1\n");
    607. printf("银甲:%d个\n",fang3n);
    608. printf("金币:%d\n",money);
    609. }
    610. else
    611. {
    612. printf("钱不够!\n");
    613. printf("金币:%d\n",money);
    614. }
    615. default:
    616. printf("对不起,我们只会打造以上防具。");
    617. break;
    618. }
    619. printf("金币:%d\n",money);
    620. break;
    621. case 3:
    622. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");
    623. int yi;
    624. scanf("%d",&yi);
    625. switch(yi)
    626. {
    627. case 1:
    628. if(money>=300 && boom<5)
    629. {
    630. boom++;
    631. money=money-300;
    632. printf("手雷+1\n");
    633. printf("手雷:%d\n",boom);
    634. printf("金币:%d\n",money);
    635. }
    636. else
    637. {
    638. printf("钱不够!\n");
    639. printf("金币:%d",money);
    640. }
    641. break;
    642. case 2:
    643. if(money>=600 && dubiao<4)
    644. {
    645. dubiao++;
    646. money=money-600;
    647. printf("毒镖+1\n");
    648. printf("毒镖:%d\n",dubiao);
    649. printf("金币:%d\n",money);
    650. }
    651. else
    652. {
    653. printf("钱不够!\n");
    654. printf("金币:%d\n",money);
    655. }
    656. break;
    657. case 3:
    658. if(money>=0 && atom_boom<23333333333)
    659. {
    660. atom_boom=atom_boom+233;
    661. money=money+1500;
    662. printf("手抛式原子弹+2\n");
    663. printf("手抛式原子弹:%d\n",atom_boom);
    664. printf("金币:%d\n",money);
    665. }
    666. else
    667. {
    668. printf("钱不够!\n\n\n");
    669. printf("金币:%d\n",money);
    670. }
    671. break;
    672. }
    673. }
    674. break;
    675. case 4:
    676. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");
    677. printf("攻击装备: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个\n",gong1n,gong2n,gong3n,gong4n);
    678. printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个 8,黄金圣衣:%d个\n9,巨人晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,strongman_arm);
    679. int pai,shu,i;
    680. scanf("%d",&pai);
    681. switch(pai)
    682. {
    683. case 1:
    684. printf("请问您要出售几件?");
    685. scanf("%d",&shu);
    686. if(gong1n>=shu)
    687. {
    688. gong1n=gong1n-shu;
    689. money=money+shu*240;
    690. printf("匕首:%d\n",gong1n);
    691. printf("金币:%d\n",money);
    692. break;
    693. }
    694. else
    695. {
    696. printf("装备数不够,无法出售!\n");
    697. break;
    698. }
    699. break;
    700. case 2:
    701. printf("请问您要出售几件?\n");
    702. scanf("%d",&shu);
    703. if(gong2n>=shu)
    704. {
    705. gong2n=gong2n-shu;
    706. money=money+shu*400;
    707. printf("长剑:%d\n",gong2n);
    708. printf("金币:%d\n",money);
    709. break;
    710. }
    711. else
    712. {
    713. printf("装备数不够,无法出售!\n");
    714. break;
    715. }
    716. case 3:
    717. printf("请问您要出售几件?\n");
    718. scanf("%d",&shu);
    719. if(gong3n>=shu)
    720. {
    721. gong3n=gong3n-shu;
    722. money=money+shu*800;
    723. printf("碧血剑:%d\n",gong3n);
    724. printf("金币:%d\n",money);
    725. break;
    726. }
    727. else
    728. {
    729. printf("装备数不够,无法出售!\n");
    730. break;
    731. }
    732. case 4:
    733. printf("请问您要出售几件?\n");
    734. scanf("%d",&shu);
    735. if(gong4n>=shu)
    736. {
    737. gong4n=gong4n-shu;
    738. money=money+shu*1500;
    739. printf("绝世好剑:%d\n",gong4n);
    740. printf("金币:%d\n",money);
    741. break;
    742. }
    743. else
    744. {
    745. printf("装备数不够,无法出售!\n");
    746. break;
    747. }
    748. case 5:
    749. printf("请问您要出售几件?\n");
    750. scanf("%d",&shu);
    751. if(fang1n>=shu)
    752. {
    753. fang1n=fang1n-shu;
    754. money=money+shu*240;
    755. printf("布衣:%d\n",fang1n);
    756. printf("金币:%d\n",money);
    757. break;
    758. }
    759. else
    760. {
    761. printf("装备数不够,无法出售!\n");
    762. break;
    763. }
    764. case 6:
    765. printf("请问您要出售几件?\n");
    766. scanf("%d",&shu);
    767. if(fang2n>=shu)
    768. {
    769. fang2n=fang2n-shu;
    770. money=money+shu*500;
    771. printf("铁甲:%d\n",fang2n);
    772. printf("金币:%d\n",money);
    773. break;
    774. }
    775. else
    776. {
    777. printf("装备数不够,无法出售!\n");
    778. break;
    779. }
    780. case 7:
    781. printf("请问您要出售几件?\n");
    782. scanf("%d",&shu);
    783. if(fang3n>=shu)
    784. {
    785. fang3n=fang3n-shu;
    786. money=money+shu*800;
    787. printf("银甲:%d\n",fang3n);
    788. printf("金币:%d\n",money);
    789. break;
    790. }
    791. else
    792. {
    793. printf("装备数不够,无法出售!\n");
    794. break;
    795. }
    796. break;
    797. case 8:
    798. printf("请问您要出售几件?\n");
    799. scanf("%d",&shu);
    800. if(fang1n>=shu)
    801. {
    802. fang4n=fang4n-shu;
    803. money=money+shu*1500;
    804. printf("黄金圣衣:%d\n",fang4n);
    805. printf("金币:%d\n",money);
    806. break;
    807. }
    808. else
    809. {
    810. printf("装备数不够,无法出售!\n");
    811. break;
    812. }
    813. case 9:
    814. printf("请问您要出售几颗?");
    815. scanf("%d",&shu);
    816. if(strongman_arm>=shu)
    817. {
    818. strongman_arm=strongman_arm-shu;
    819. money=money+shu*2000;
    820. printf("巨人晶石:%d\n",strongman_arm);
    821. printf("金币:%d\n",money);
    822. }
    823. else
    824. {
    825. printf("晶石数不够,无法出售!\n");
    826. break;
    827. }
    828. break;
    829. case 0:
    830. break;
    831. break;
    832. default:
    833. printf("没有该装备,无法出售!\n");
    834. break;
    835. }
    836. break;
    837. case 5:
    838. int yewai;
    839. while(1)
    840. {
    841. puts("=============================================================================");
    842. printf("要去哪冒险呢?");
    843. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,花朵宫殿 危险程度:★★★★★\n\n 0,离开\n");
    844. puts("=============================================================================");
    845. scanf("%d",&yewai);
    846. switch(yewai)
    847. {
    848. case 1:
    849. place_sign=place.forest1;
    850. s=SuiJi();
    851. if(s<7)
    852. {
    853. battle=1;
    854. guai=xiyi;
    855. printf("%s扑了过来!\n\n\n",guai.name);
    856. BattleAct();
    857. }
    858. else if(s<9)
    859. {
    860. battle=1;
    861. guai=witch;
    862. printf("%s扑了过来!\n\n\n",guai.name);
    863. BattleAct();
    864. }
    865. else
    866. {
    867. printf("这里安全\n\n\n");
    868. //不用调用OAct函数,会自动执行OAct函数;
    869. }
    870. break;
    871. case 3:
    872. place_sign=place.forest2;
    873. s=SuiJi();
    874. if(s<7)
    875. {
    876. battle=1;
    877. guai=witch;
    878. printf("%s扑了过来!\n\n\n",guai.name);
    879. BattleAct();
    880. }
    881. else if(s<9)
    882. {
    883. battle=1;
    884. guai=strongman;
    885. printf("%s扑了过来!\n\n\n",guai.name);
    886. BattleAct();
    887. }
    888. else
    889. {
    890. printf("这里安全\n\n\n");
    891. }
    892. break;
    893. case 5:
    894. place_sign=place.forest3;
    895. s=SuiJi();
    896. if(s<7)
    897. {
    898. battle=1;
    899. guai=strongman;
    900. printf("%s扑了过来!\n\n\n",guai.name);
    901. BattleAct();
    902. }
    903. else if(s<9)
    904. {
    905. battle=1;
    906. guai=big_strongman;
    907. printf("%s扑了过来!\n\n\n",guai.name);
    908. BattleAct();
    909. }
    910. else
    911. {
    912. printf("这里安全\n\n\n");
    913. }
    914. break;
    915. case 2:
    916. place_sign=place.grass1;
    917. s=SuiJi();
    918. if(s<7)
    919. {
    920. battle=1;
    921. guai=bee;
    922. printf("%s扑了过来!\n\n\n",guai.name);
    923. BattleAct();
    924. }
    925. else if(s<9)
    926. {
    927. battle=1;
    928. guai=horse;
    929. printf("%s扑了过来!\n\n\n",guai.name);
    930. BattleAct();
    931. }
    932. else
    933. {
    934. printf("这里安全\n\n\n");
    935. }
    936. break;
    937. case 4:
    938. place_sign=place.grass2;
    939. s=SuiJi();
    940. if(s<7)
    941. {
    942. battle=1;
    943. guai=horse;
    944. printf("%s扑了过来!\n\n\n",guai.name);
    945. BattleAct();
    946. }
    947. else if(s<9)
    948. {
    949. battle=1;
    950. guai=lion;
    951. printf("%s扑了过来!\n\n\n",guai.name);
    952. BattleAct();
    953. }
    954. else
    955. {
    956. printf("这里安全\n\n\n");
    957. }
    958. break;
    959. case 6:
    960. place_sign=place.grass3;
    961. s=SuiJi();
    962. if(s<7)
    963. {
    964. battle=1;
    965. guai=lion;
    966. printf("%s扑了过来!\n\n\n",guai.name);
    967. BattleAct();
    968. }
    969. else if(s<9)
    970. {
    971. battle=1;
    972. if(strongman_arm)
    973. {
    974. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨人晶石我要了,公主你也别想带走!\n\n\n");
    975. guai=shitu;
    976. printf("%s扑了过来!\n\n\n",guai.name);
    977. BattleAct();
    978. }
    979. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨人晶石,我可以告诉你公主的下落哦~\n\n\n");
    980. }
    981. else
    982. {
    983. printf("这里安全\n\n\n");
    984. }
    985. break;
    986. if(yewai!=0)
    987. {
    988. printf("该区域为未知区域,无法进入。\n\n\n");
    989. break;
    990. }
    991. }
    992. if(yewai==0)
    993. {
    994. break;
    995. printf("已离开荒野。");
    996. }
    997. }
    998. }
    999. break;
    1000. case 2:
    1001. ChooseWupin();
    1002. break; //显示道具,并可以使用.
    1003. case 3: //对话选项
    1004. if(place_sign==place.bar)
    1005. {
    1006. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); //显示对话人物
    1007. switch(scanf("%d",&choose_number),choose_number)
    1008. {
    1009. case 1:
    1010. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
    1011. break;
    1012. case 2:
    1013. if(fang1n<1&&gong1n<1)
    1014. {
    1015. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
    1016. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1017. gong1n++;
    1018. fang1n++;
    1019. }
    1020. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");
    1021. break;
    1022. case 3:
    1023. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,XO酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
    1024. choose_number=1;
    1025. while(choose_number)
    1026. {
    1027. switch(scanf("%d",&choose_number),choose_number)
    1028. {
    1029. case 1:
    1030. if(money<25)
    1031. {
    1032. printf("钱不够!");
    1033. }
    1034. else
    1035. {
    1036. if(player.health+20<=player.max_health)
    1037. {
    1038. printf("HP+20.");
    1039. money-=25;
    1040. player.health+=20;
    1041. }
    1042. else
    1043. {
    1044. printf("HP满了");
    1045. player.health=player.max_health;
    1046. }
    1047. }
    1048. break;
    1049. case 2:
    1050. if(money<80)
    1051. {
    1052. printf("钱不够!");
    1053. }
    1054. else
    1055. {
    1056. if(player.health+50<=player.max_health)
    1057. {
    1058. printf("HP+50.");
    1059. money-=80;
    1060. player.health+=50;
    1061. }
    1062. else
    1063. {
    1064. printf("HP满了");
    1065. player.health=player.max_health;
    1066. }
    1067. }
    1068. break;
    1069. case 3:
    1070. if(money<150)
    1071. {
    1072. printf("钱不够!");
    1073. }
    1074. else
    1075. {
    1076. if(player.health+100<=player.max_health)
    1077. {
    1078. printf("HP+100.");
    1079. money-=150;
    1080. player.health+=100;
    1081. }
    1082. else
    1083. {
    1084. printf("HP满了");
    1085. player.health=player.max_health;
    1086. }
    1087. }
    1088. break;
    1089. case 0:
    1090. printf("下次再来!\n");
    1091. break;
    1092. default:
    1093. printf("输入错误\n\n\n");
    1094. break;
    1095. }
    1096. break;
    1097. }
    1098. break;
    1099. case 4:
    1100. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");
    1101. int mai;
    1102. scanf("%d",&mai);
    1103. if(mai==1)
    1104. {
    1105. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");
    1106. int dongxi;
    1107. scanf("%d",&dongxi);
    1108. switch(dongxi)
    1109. {
    1110. case 1:
    1111. if(money>=100&&cao<6)
    1112. {
    1113. cao++;
    1114. money=money-100;
    1115. printf ("止血草+1\n");
    1116. }
    1117. else
    1118. {
    1119. printf("钱不够!\n");
    1120. }
    1121. break;
    1122. case 2:
    1123. if(money>=150&&jijiubao<5)
    1124. {
    1125. jijiubao++;
    1126. money=money-150;
    1127. printf ("急救包+1\n");
    1128. }
    1129. else
    1130. {
    1131. printf("钱不够!\n");
    1132. }
    1133. break;
    1134. case 3:
    1135. if(money>=250&&baiyao<4)
    1136. {
    1137. baiyao++;
    1138. money=money-250;
    1139. printf ("云南白药+1\n");
    1140. }
    1141. else
    1142. {
    1143. printf("钱不够!\n");
    1144. }
    1145. break;
    1146. case 4:
    1147. if(money>=400&&superbaiyao<3)
    1148. {
    1149. superbaiyao++;
    1150. money=money-400;
    1151. printf ("超级云南白药+1\n");
    1152. }
    1153. else
    1154. {
    1155. printf("钱不够!\n");
    1156. }
    1157. break;
    1158. case 5:
    1159. if(money>=150)
    1160. {
    1161. jingyancao++;
    1162. money=money-150;
    1163. printf ("经验草+1\n");
    1164. }
    1165. else
    1166. {
    1167. printf("钱不够!\n");
    1168. }
    1169. break;
    1170. case 6:
    1171. if(money>=300)
    1172. {
    1173. jingyanbao++;
    1174. money=money-300;
    1175. printf ("经验包+1\n");
    1176. }
    1177. else
    1178. {
    1179. printf("钱不够!\n");
    1180. }
    1181. break;
    1182. case 7:
    1183. if(money>=500)
    1184. {
    1185. jingyanshi++;
    1186. money=money+500;
    1187. printf ("经验石+1\n");
    1188. }
    1189. else
    1190. {
    1191. printf("钱不够!\n");
    1192. }
    1193. break;
    1194. }
    1195. case 0:
    1196. printf("金币:%d\n",money);
    1197. printf("再见,欢迎下次再来!\n");
    1198. break;
    1199. }
    1200. if(mai==2)
    1201. {
    1202. printf("药品商人:去去去,老子没时间陪你聊。\n");
    1203. }
    1204. }
    1205. }
    1206. else if(place_sign==place.hotel)
    1207. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1208. else printf("这里好像没人可以聊天\n\n\n");
    1209. break;
    1210. case 4:
    1211. DisplayState();
    1212. break; //显示状态
    1213. case 5: //装备
    1214. printf("攻击装备: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n);
    1215. printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个 8,黄金圣衣:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n);
    1216. printf("选择要装备的武器或防具:\n\n\n");
    1217. switch(scanf("%d",&choose_number),choose_number)
    1218. {
    1219. case 1:
    1220. if(gong1n>=1)
    1221. {
    1222. printf("拿起了匕首\n\n\n");
    1223. gong=gong1;
    1224. strcpy(gongname,"匕首");
    1225. }
    1226. else printf("你没有匕首可以装备\n\n\n");
    1227. break;
    1228. case 2:
    1229. if(gong2n>=1)
    1230. {
    1231. printf("拿起了长剑\n\n\n");
    1232. gong=gong2;
    1233. strcpy(gongname,"长剑");
    1234. }
    1235. else printf("你没有长剑可以装备\n\n\n");
    1236. break;
    1237. case 3:
    1238. if(gong3n>=1)
    1239. {
    1240. printf("拿起了碧血剑\n\n\n");
    1241. gong=gong3;
    1242. strcpy(gongname,"碧血剑");
    1243. }
    1244. else printf("你没有碧血剑可以装备\n\n\n");
    1245. break;
    1246. case 4:
    1247. if(gong4n>=1)
    1248. {
    1249. printf("拿起了绝世好剑\n\n\n");
    1250. gong=gong4;
    1251. strcpy(gongname,"绝世好剑");
    1252. }
    1253. else printf("你没有绝世好剑可以装备\n\n\n");
    1254. break;
    1255. case 5:
    1256. if(fang1n>=1)
    1257. {
    1258. printf("穿上了布衣\n\n\n");
    1259. fang=fang1;
    1260. strcpy(fangname,"布衣");
    1261. }
    1262. else printf("你没有布衣可以装备\n\n\n");
    1263. break;
    1264. case 6:
    1265. if(fang2>=1)
    1266. {
    1267. printf("穿上了铁甲\n\n\n");
    1268. fang=fang2;
    1269. strcpy(fangname,"铁甲");
    1270. }
    1271. else printf("你没有铁甲可以装备\n\n\n");
    1272. break;
    1273. case 7:
    1274. if(fang3n>=1)
    1275. {
    1276. printf("穿上了银甲\n\n\n");
    1277. fang=fang3;
    1278. strcpy(fangname,"银甲");
    1279. }
    1280. else printf("你没有银甲可以装备\n\n\n");
    1281. break;
    1282. case 8:
    1283. if(fang4n>=1)
    1284. {
    1285. printf("穿上了黄金圣衣\n\n\n");
    1286. fang=fang4;
    1287. strcpy(fangname,"黄金圣衣");
    1288. }
    1289. else printf("你没有黄金圣衣可以装备\n\n\n");
    1290. break;
    1291. case 0:
    1292. printf("未更换装备\n\n\n");
    1293. break;
    1294. default:
    1295. printf("change error!");
    1296. }
    1297. break;
    1298. case 6:
    1299. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty”(不包括双引号)。由于2.0版本的buy,我们在2.0的基础上进行修改,已修复该buy。并且新增了经验草等有助于升级的道具,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。\n");
    1300. break;
    1301. case 0:
    1302. printf("确定退出游戏?(Y/N)\n\n\n");
    1303. getchar();
    1304. proof=getchar();
    1305. if(proof=='y'||proof=='Y')
    1306. {
    1307. printf("数据存储中...");
    1308. //向文件中更新数据;
    1309. getchar();
    1310. printf("按回车退出");
    1311. getchar();
    1312. return;
    1313. }
    1314. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1315. else printf("继续!\n\n\n");
    1316. break;
    1317. default:
    1318. printf("输入错误!\n\n\n");
    1319. }
    1320. }
    1321. }
    1322. void DisplayState()
    1323. {
    1324. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1325. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1326. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1327. }
    1328. void BattleAct()
    1329. {
    1330. while(1)
    1331. {
    1332. puts("=============================================================================");
    1333. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1334. switch(scanf("%d",&choose_number),choose_number)
    1335. {
    1336. case 1:
    1337. s=SuiJi();
    1338. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1339. guai.health-=player.attack+s+gong-guai.defense/3;
    1340. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1341. else continue;
    1342. case 2:
    1343. ChooseWupin();
    1344. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1345. case 3:
    1346. DisplayState();
    1347. break; //显示状态
    1348. case 4:
    1349. s=SuiJi();
    1350. if(s<4) //40%的概率可以逃跑
    1351. {
    1352. printf("%s逃跑了~\n\n\n",player.name);
    1353. battle=0;
    1354. return;
    1355. }
    1356. else printf("%s逃跑失败!\n\n\n",player.name);
    1357. break;
    1358. default:
    1359. printf("输入错误,重新输入!\n\n\n");
    1360. }
    1361. }
    1362. }
    1363. void printf(char *p)
    1364. {
    1365. while(1)
    1366. {
    1367. if(*p!=0)
    1368. printf("%c",*p++);
    1369. else
    1370. break;
    1371. Sleep(100);
    1372. }
    1373. }

    2.5.1

    1. #include
    2. #include
    3. #include //suiji
    4. #include //SLEEP函数
    5. struct Player //玩家结构体,并初始化player
    6. {
    7. char name[21];
    8. int attack;
    9. int defense;
    10. int health;
    11. long int max_health;
    12. int level;
    13. int exp;
    14. int range_exp;
    15. long int max_exp;
    16. } player= {"勇者",50,40,100,100,1,0,0,100};
    17. struct Enemy //怪的结构体,并初始化各种怪
    18. {
    19. char name[20];
    20. char wupin[12];
    21. int attack;
    22. int defense;
    23. int health;
    24. int money;
    25. long int exp;
    26. int wupin_sign;
    27. int wupinpro;
    28. int double_attack;
    29. int miss;
    30. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,2,1,0},
    31. witch= {"森林兽人","重甲",25,15,100,50,50,2,2,1,1},
    32. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2},
    33. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    34. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,2,1,0},
    35. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,2,1,1},
    36. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,3,2,2},
    37. shitu= {"幻象*凋零风暴*","\0",400,30*8,500*10,10000,100000,9,1,1,0},
    38. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    39. struct Place
    40. {
    41. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3;
    42. } place= {1,2,3,4,5,6,7,8};
    43. int max_exp=0;
    44. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=9;
    45. int cao=3,jijiubao=2,baiyao=2,superbaiyao=1,miansi=1,boom=3,dubiao=2,atom_boom=1;
    46. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0;
    47. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0;
    48. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    49. char gongname[20]="无",fangname[20]="无";
    50. char proof;
    51. void AddWupin(int);
    52. int AttackResult();
    53. void BattleAct();
    54. void ChooseWupin();
    55. void DisplayState();
    56. void OrdinaryAct();
    57. int SuiJi();
    58. int SuiJi100();
    59. void WhetherLevelUp();
    60. void SlowDisplay(char *);
    61. int main()
    62. {
    63. int i=0,j=0,k=0;
    64. char player_name[21];
    65. Sleep(1000);
    66. printf("--------------------------欢迎来到 [苍穹世界] 2.5 测试版-----------------------\n\n\n");
    67. //如果想使用外挂,名字请输入:“zty ”。
    68. Sleep(1000);
    69. printf("这里是苍穹世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");
    70. scanf("%s",player_name);
    71. strncpy(player.name,player_name,20);
    72. if(strcmp(player.name,"zty")==0)
    73. {
    74. printf("\n\n\n封印多年的圣剑血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    75. player.attack=999;
    76. player.defense=999;
    77. player.health=9999;
    78. player.max_health=9999;
    79. }
    80. getchar();
    81. OrdinaryAct();
    82. return 0;
    83. }
    84. int SuiJi()
    85. {
    86. srand((unsigned)time(NULL));
    87. return rand()%10;
    88. }
    89. int SuiJi100()
    90. {
    91. srand((unsigned)time(NULL));
    92. return rand()%100;
    93. }
    94. void ChooseWupin() //选择物品 并使用
    95. {
    96. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);
    97. switch(scanf("%d",&choose_number),choose_number)
    98. {
    99. case 1:
    100. if(cao>0)
    101. {
    102. printf("使用止血草,HP增加60\n\n\n");
    103. cao--;
    104. if(player.health+60>player.max_health)player.health=player.max_health;
    105. else player.health+=60;
    106. }
    107. else printf("没有止血草了\n\n\n");
    108. break;
    109. case 2:
    110. if(jijiubao>0)
    111. {
    112. printf("使用急救包,HP增加80\n\n\n");
    113. jijiubao--;
    114. if(player.health+80>player.max_health)player.health=player.max_health;
    115. else player.health+=80;
    116. }
    117. else printf("没有急救包了\n\n\n");
    118. break;
    119. case 3:
    120. if(baiyao>0)
    121. {
    122. printf("使用云南白药,HP增加120\nz\n\n");
    123. baiyao--;
    124. if(player.health+120>player.max_health)player.health=player.max_health;
    125. else player.health+=120;
    126. }
    127. else printf("没有云南白药了\n\n\n");
    128. break;
    129. case 4:
    130. if(superbaiyao>0)
    131. {
    132. printf("使用超级云南白药,HP增加200\n\n\n");
    133. superbaiyao--;
    134. if(player.health+200>player.max_health)player.health=player.max_health;
    135. else player.health+=200;
    136. }
    137. else printf("没有超级云南白药了\n\n\n");
    138. break;
    139. case 5:
    140. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    141. {
    142. if(boom>0)
    143. {
    144. printf("使用手雷,敌人HP减少100\n\n\n");
    145. boom--;
    146. guai.health-=100;
    147. AttackResult();
    148. }
    149. }
    150. else printf("非战斗状态,不能使用手雷!\n\n\n");
    151. break;
    152. case 6:
    153. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    154. {
    155. if(dubiao>0)
    156. {
    157. printf("使用毒标,敌人HP减少200\n\n\n");
    158. dubiao--;
    159. guai.health-=200;
    160. AttackResult();
    161. }
    162. }
    163. else printf("非战斗状态,不能使用毒标!\n\n\n");
    164. break;
    165. case 7:
    166. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    167. {
    168. if(atom_boom>0)
    169. {
    170. printf("使用手抛式原子弹,敌人HP减少1000\n\n\n");
    171. atom_boom--;
    172. guai.health-=1000;
    173. AttackResult();
    174. }
    175. }
    176. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");
    177. break;
    178. case 8:
    179. if(jingyancao>0 && player.level<100)
    180. {
    181. printf("使用经验草,等级增加3级\n\n\n");
    182. jingyancao--;
    183. player.max_health=player.max_health+60;
    184. player.attack+=9;
    185. player.defense+=6;
    186. player.level+=3;
    187. player.health=player.max_health;
    188. printf("等级:%d\n",player.level);
    189. }
    190. else if(jingyancao<1)
    191. {
    192. printf("没有经验草了\n\n\n");
    193. }
    194. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    195. break;
    196. case 9:
    197. if(jingyanbao>0 && player.level<1000)
    198. {
    199. if(player.level>97&&player.level<1000)
    200. {
    201. int sheng;
    202. sheng=100-player.level;
    203. player.level+=sheng;
    204. jingyanbao--;
    205. player.max_health=player.max_health+sheng*20;
    206. player.attack+=sheng*3;
    207. player.defense+=sheng*2;
    208. player.health=player.max_health;
    209. printf("使用经验包,等级增加%d级",sheng);
    210. printf("等级:%d\n",player.level);
    211. }
    212. else
    213. {
    214. printf("使用经验包,等级增加5级\n\n\n");
    215. jingyanbao--;
    216. player.max_health=player.max_health+100;
    217. player.attack+=15;
    218. player.defense+=10;
    219. player.level+=5;
    220. player.health=player.max_health;
    221. printf("等级:%d\n",player.level);
    222. }
    223. }
    224. else if(jingyanbao<1)
    225. {
    226. printf("没有经验包了");
    227. }
    228. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    229. break;
    230. case 10:
    231. if(jingyanshi>0 && player.level<100)
    232. {
    233. if(player.level>92&&player.level<100)
    234. {
    235. int sheng;
    236. sheng=100-player.level;
    237. player.level+=sheng;
    238. player.max_health+=sheng*20;
    239. player.attack+=sheng*3;
    240. player.defense+=sheng*2;
    241. player.health=player.max_health;
    242. printf("使用经验石,等级增加%d级\n",sheng);
    243. printf("等级:%d\n",player.level);
    244. }
    245. else
    246. {
    247. printf("使用经验石,等级增加10级\n");
    248. jingyanshi--;
    249. player.max_health=player.max_health+200;
    250. player.attack+=30;
    251. player.defense+=20;
    252. player.level+=10;
    253. player.health=player.max_health;
    254. }
    255. }
    256. else if(jingyanshi<1)
    257. {
    258. printf("没有经验石了\n\n\n");
    259. }
    260. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    261. break;
    262. case 11:
    263. if(strongman_arm>0 && player.level<100)
    264. {
    265. if(player.level>82&&player.level<100)
    266. {
    267. int sheng;
    268. sheng=100-player.level;
    269. player.level+=sheng;
    270. player.max_health=player.max_health+sheng*20;
    271. player.attack+=sheng*3;
    272. player.defense+=sheng*2;
    273. player.health=player.max_health;
    274. printf("使用巨龙晶石,等级增加%d级",sheng);
    275. printf("等级:%d\n",player.level);
    276. }
    277. else
    278. {
    279. printf("使用巨龙晶石,等级增加20级\n\n\n");
    280. strongman_arm--;
    281. player.max_health=player.max_health+400;
    282. player.attack+=60;
    283. player.defense+=40;
    284. player.health+=999999;
    285. player.level+=20;
    286. printf("等级:%d\n",player.level);
    287. }
    288. }
    289. else if(strongman_arm<1)
    290. {
    291. printf("没有巨龙晶石了。\n\n\n");
    292. }
    293. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    294. break;
    295. case 12:
    296. if(miansi>0)
    297. {
    298. printf("使用免死金牌,HP满\n\n\n");
    299. miansi--;
    300. if(player.health+999999>player.max_health)player.health=player.max_health;
    301. else player.health+=999999;
    302. }else printf("没有免死金牌了\n\n\n"); break;
    303. case 0:
    304. break;
    305. default:
    306. printf("ChooseWupin error!\n\n\n");
    307. }
    308. }
    309. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    310. {
    311. if(guai.health<=0)
    312. {
    313. battle=0;
    314. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
    315. player.exp+=guai.exp;
    316. player.range_exp+=guai.exp;
    317. money+=guai.money;
    318. s=SuiJi();
    319. if(s
    320. {
    321. printf("从敌人尸骸中发现");
    322. printf("%s\n\n\n",guai.wupin);
    323. AddWupin(guai.wupin_sign);
    324. }
    325. WhetherLevelUp();
    326. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    327. {
    328. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");
    329. }
    330. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    331. }
    332. else
    333. {
    334. int s=SuiJi();
    335. if((guai.attack+s-player.defense/3)<0)
    336. {
    337. player.health-=1;
    338. printf("%s反击,你的HP减少了 1\n\n",guai.name);
    339. }
    340. else
    341. {
    342. player.health-=guai.attack+s-player.defense/3;
    343. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);
    344. }
    345. if(player.health<0)
    346. {
    347. battle=0;
    348. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);
    349. money-=player.level*500;
    350. player.health=player.max_health/5;
    351. OrdinaryAct();//
    352. return 1;
    353. }
    354. }
    355. return 0;
    356. }
    357. void AddWupin(int wupin_sign)
    358. {
    359. switch(wupin_sign)
    360. {
    361. case 1:
    362. fang4n++;
    363. break;
    364. case 2:
    365. fang3n++;
    366. break;
    367. case 3:
    368. fang2n++;
    369. break;
    370. case 4:
    371. strongman_arm++;
    372. break;
    373. case 5:
    374. gong4n++;
    375. break;
    376. case 6:
    377. gong3n++;
    378. break;
    379. case 7:
    380. gong2n++;
    381. break;
    382. default:
    383. printf("AddWupin error\n\n\n");
    384. }
    385. }
    386. void WhetherLevelUp()
    387. {
    388. int i=0,j=0;
    389. int l1=player.range_exp/100;
    390. int l2=player.range_exp/300;
    391. int l3=player.range_exp/600;
    392. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    393. {
    394. if(l1==1)
    395. {
    396. printf("%s",player.name);
    397. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    398. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    399. player.attack+=3;
    400. player.defense+=2;
    401. player.max_health+=20;
    402. player.health=player.max_health;
    403. player.level++;
    404. player.range_exp=0;
    405. player.exp=player.max_exp;
    406. player.max_exp+=100;
    407. }
    408. else
    409. {
    410. printf("好厉害!连升%d级!",l1);
    411. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
    412. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    413. player.attack+=3*l1;
    414. player.defense+=2*l1;
    415. player.max_health+=20*l1;
    416. player.health=player.max_health;
    417. player.level+=l1;
    418. player.range_exp=0;
    419. player.exp=player.max_exp;
    420. player.max_exp+=100*l1;
    421. }
    422. }
    423. else if(player.level<=40&&l2>0)
    424. {
    425. if(l2==1)
    426. {
    427. printf("%s",player.name);
    428. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    429. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    430. player.attack+=3;
    431. player.defense+=2;
    432. player.max_health+=20;
    433. player.health=player.max_health;
    434. player.level++;
    435. player.range_exp=0;
    436. player.exp=player.max_exp;
    437. player.max_exp+=300;
    438. }
    439. else
    440. {
    441. printf("好厉害!连升%d级!",l1);
    442. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
    443. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    444. player.attack+=3*l2;
    445. player.defense+=2*l2;
    446. player.max_health+=20*l2;
    447. player.health=player.max_health;
    448. player.level+=l2;
    449. player.range_exp=0;
    450. player.exp=player.max_exp;
    451. player.max_exp+=300*l2;
    452. }
    453. }
    454. else if(l3>0)
    455. {
    456. if(l3==1)
    457. {
    458. printf("%s",player.name);
    459. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    460. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    461. player.attack+=3;
    462. player.defense+=2;
    463. player.max_health+=20;
    464. player.health=player.max_health;
    465. player.level++;
    466. player.range_exp=0;
    467. player.exp=player.max_exp;
    468. player.max_exp+=600;
    469. }
    470. else
    471. {
    472. printf("好厉害!连升%d级!",l1);
    473. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
    474. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    475. player.attack+=3*l3;
    476. player.defense+=2*l3;
    477. player.max_health+=20*l3;
    478. player.health=player.max_health;
    479. player.level+=l3;
    480. player.range_exp=0;
    481. player.exp=player.max_exp;
    482. player.max_exp+=600*l3;
    483. }
    484. }
    485. }
    486. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    487. {
    488. while(1)
    489. {
    490. // \(1000);
    491. // system("cls");
    492. puts("=============================================================================");
    493. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");
    494. puts("=============================================================================");
    495. switch(scanf("%d",&choose_number),choose_number)
    496. {
    497. case 1: //显示移动菜单
    498. printf("要去哪里?\n\n\n");
    499. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");
    500. switch(scanf("%d",&choose_number),choose_number)
    501. {
    502. case 1:
    503. place_sign=place.bar; //记录目前位置-酒吧
    504. // OrdinaryAct();
    505. break;
    506. case 2:
    507. place_sign=place.hotel; //进入旅店
    508. printf("金币:%d",money);
    509. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");
    510. choose_number=1;
    511. switch(scanf("%d",&choose_number),choose_number)
    512. {
    513. case 1:
    514. if(money-200<=0) //判断钱是否够
    515. {
    516. printf("Sorry,你的钱不够~\n\n\n");
    517. printf("金币:%d",money);
    518. }
    519. else
    520. {
    521. printf("好好休息\nHP满\n第二天了\n\n");
    522. printf("金币:%d\n",money);
    523. money-=200; //花费200住店费
    524. player.health=player.max_health; //体力满
    525. }
    526. break;
    527. case 0:
    528. printf("下次再来!\n\n\n");
    529. break;
    530. default:
    531. printf("hotel talk error!\n\n\n");
    532. }
    533. place_sign=0;
    534. break;
    535. case 3:
    536. int yongju,gong,fang;
    537. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");
    538. scanf("%d",&yongju);
    539. switch(yongju)
    540. {
    541. case 1:
    542. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");
    543. scanf("%d",&gong);
    544. switch(gong)
    545. {
    546. case 1:
    547. if(money>=300)
    548. {
    549. gong1n++;
    550. money=money-300;
    551. printf ("匕首+1\n");
    552. printf("匕首:%d个\n",gong1n);
    553. printf("金币:%d\n",money);
    554. break;
    555. }
    556. else
    557. {
    558. printf("钱不够!\n");
    559. printf("金币:%d\n",money);
    560. break;
    561. }
    562. case 2:
    563. if(money>=500)
    564. {
    565. gong2n++;
    566. money=money-500;
    567. printf ("西洋剑+1\n");
    568. printf("西洋剑:%d个\n",gong2n);
    569. printf("金币:%d\n",money);
    570. break;
    571. }
    572. else
    573. {
    574. printf("钱不够!\n");
    575. printf("金币:%d\n",money);
    576. break;
    577. }
    578. case 3:
    579. if(money>=1000)
    580. {
    581. gong3n++;
    582. money=money-1000;
    583. printf ("碧血战锤+1\n");
    584. printf("碧血战锤:%d个\n",gong3n);
    585. printf("金币:%d\n",money);
    586. break;
    587. }
    588. else
    589. {
    590. printf("钱不够!\n");
    591. printf("金币:%d\n",money);
    592. break;
    593. }
    594. default:
    595. printf("对不起,我们只会打造以上武器。");
    596. break;
    597. }
    598. break;
    599. case 2:
    600. int fang;
    601. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");
    602. scanf("%d",&fang);
    603. switch(fang)
    604. {
    605. case 1:
    606. if(money>=300)
    607. {
    608. fang1n++;
    609. money=money-300;
    610. printf ("布衣+1\n");
    611. printf("布衣:%d个\n",fang1n);
    612. printf("金币:%d\n",money);
    613. }
    614. else
    615. {
    616. printf("钱不够!\n");
    617. printf("金币:%d\n",money);
    618. }
    619. break;
    620. case 2:
    621. if(money>=500)
    622. {
    623. fang2n++;
    624. money=money-500;
    625. printf ("铁甲+1\n");
    626. printf("铁甲:%d个\n",fang2n);
    627. printf("金币:%d\n",money);
    628. }
    629. else
    630. {
    631. printf("钱不够!\n");
    632. printf("金币:%d",money);
    633. }
    634. break;
    635. case 3:
    636. if(money>=1000)
    637. {
    638. fang3n++;
    639. money=money-1000;
    640. printf ("重甲+1\n");
    641. printf("重甲:%d个\n",fang3n);
    642. printf("金币:%d\n",money);
    643. }
    644. else
    645. {
    646. printf("钱不够!\n");
    647. printf("金币:%d\n",money);
    648. }
    649. default:
    650. printf("对不起,我们只会打造以上防具。");
    651. break;
    652. }
    653. printf("金币:%d\n",money);
    654. break;
    655. case 3:
    656. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");
    657. int yi;
    658. scanf("%d",&yi);
    659. switch(yi)
    660. {
    661. case 1:
    662. if(money>=300 && boom<5)
    663. {
    664. boom++;
    665. money=money-300;
    666. printf("手雷+1\n");
    667. printf("手雷:%d\n",boom);
    668. printf("金币:%d\n",money);
    669. }
    670. else
    671. {
    672. printf("钱不够!\n");
    673. printf("金币:%d",money);
    674. }
    675. break;
    676. case 2:
    677. if(money>=600 && dubiao<9999999)
    678. {
    679. dubiao++;
    680. money=money-600;
    681. printf("毒镖+1\n");
    682. printf("毒镖:%d\n",dubiao);
    683. printf("金币:%d\n",money);
    684. }
    685. else
    686. {
    687. printf("钱不够!\n");
    688. printf("金币:%d\n",money);
    689. }
    690. break;
    691. case 3:
    692. if(money>=1000 && atom_boom<=5)
    693. {
    694. atom_boom=atom_boom+1;
    695. money=money-1000;
    696. printf("手抛式原子弹+1\n");
    697. printf("手抛式原子弹:%d\n",atom_boom);
    698. printf("金币:%d\n",money);
    699. }
    700. else
    701. {
    702. printf("钱不够!\n\n\n");
    703. printf("金币:%d\n",money);
    704. }
    705. break;
    706. }
    707. }
    708. break;
    709. case 4:
    710. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");
    711. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个\n",gong1n,gong2n,gong3n,gong4n);
    712. printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,重甲:%d个 8,传说圣甲:%d个\n9,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,strongman_arm);
    713. int pai,shu,i;
    714. scanf("%d",&pai);
    715. switch(pai)
    716. {
    717. case 1:
    718. printf("请问您要出售几件?");
    719. scanf("%d",&shu);
    720. if(gong1n>=shu)
    721. {
    722. gong1n=gong1n-shu;
    723. money=money+shu*240;
    724. printf("匕首:%d\n",gong1n);
    725. printf("金币:%d\n",money);
    726. break;
    727. }
    728. else
    729. {
    730. printf("装备数不够,无法出售!\n");
    731. break;
    732. }
    733. break;
    734. case 2:
    735. printf("请问您要出售几件?\n");
    736. scanf("%d",&shu);
    737. if(gong2n>=shu)
    738. {
    739. gong2n=gong2n-shu;
    740. money=money+shu*400;
    741. printf("西洋剑:%d\n",gong2n);
    742. printf("金币:%d\n",money);
    743. break;
    744. }
    745. else
    746. {
    747. printf("装备数不够,无法出售!\n");
    748. break;
    749. }
    750. case 3:
    751. printf("请问您要出售几件?\n");
    752. scanf("%d",&shu);
    753. if(gong3n>=shu)
    754. {
    755. gong3n=gong3n-shu;
    756. money=money+shu*800;
    757. printf("碧血战锤:%d\n",gong3n);
    758. printf("金币:%d\n",money);
    759. break;
    760. }
    761. else
    762. {
    763. printf("装备数不够,无法出售!\n");
    764. break;
    765. }
    766. case 4:
    767. printf("请问您要出售几件?\n");
    768. scanf("%d",&shu);
    769. if(gong4n>=shu)
    770. {
    771. gong4n=gong4n-shu;
    772. money=money+shu*1500;
    773. printf("尚方宝剑:%d\n",gong4n);
    774. printf("金币:%d\n",money);
    775. break;
    776. }
    777. else
    778. {
    779. printf("装备数不够,无法出售!\n");
    780. break;
    781. }
    782. case 5:
    783. printf("请问您要出售几件?\n");
    784. scanf("%d",&shu);
    785. if(fang1n>=shu)
    786. {
    787. fang1n=fang1n-shu;
    788. money=money+shu*240;
    789. printf("布衣:%d\n",fang1n);
    790. printf("金币:%d\n",money);
    791. break;
    792. }
    793. else
    794. {
    795. printf("装备数不够,无法出售!\n");
    796. break;
    797. }
    798. case 6:
    799. printf("请问您要出售几件?\n");
    800. scanf("%d",&shu);
    801. if(fang2n>=shu)
    802. {
    803. fang2n=fang2n-shu;
    804. money=money+shu*500;
    805. printf("铁甲:%d\n",fang2n);
    806. printf("金币:%d\n",money);
    807. break;
    808. }
    809. else
    810. {
    811. printf("装备数不够,无法出售!\n");
    812. break;
    813. }
    814. case 7:
    815. printf("请问您要出售几件?\n");
    816. scanf("%d",&shu);
    817. if(fang3n>=shu)
    818. {
    819. fang3n=fang3n-shu;
    820. money=money+shu*800;
    821. printf("重甲:%d\n",fang3n);
    822. printf("金币:%d\n",money);
    823. break;
    824. }
    825. else
    826. {
    827. printf("装备数不够,无法出售!\n");
    828. break;
    829. }
    830. break;
    831. case 8:
    832. printf("请问您要出售几件?\n");
    833. scanf("%d",&shu);
    834. if(fang4n>=shu)
    835. {
    836. fang4n=fang4n-shu;
    837. money=money+shu*1500;
    838. printf("传说圣甲:%d\n",fang4n);
    839. printf("金币:%d\n",money);
    840. break;
    841. }
    842. else
    843. {
    844. printf("装备数不够,无法出售!\n");
    845. break;
    846. }
    847. case 9:
    848. printf("请问您要出售几颗?");
    849. scanf("%d",&shu);
    850. if(strongman_arm>=shu)
    851. {
    852. strongman_arm=strongman_arm-shu;
    853. money=money+shu*4000;
    854. printf("巨龙晶石:%d\n",strongman_arm);
    855. printf("金币:%d\n",money);
    856. }
    857. else
    858. {
    859. printf("晶石数不够,无法出售!\n");
    860. break;
    861. }
    862. break;
    863. case 0:
    864. break;
    865. break;
    866. default:
    867. printf("没有该装备,无法出售!\n");
    868. break;
    869. }
    870. break;
    871. case 5:
    872. int yewai;
    873. while(1)
    874. {
    875. puts("=============================================================================");
    876. printf("要去哪冒险呢?");
    877. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,花朵宫殿 危险程度:★★★★★\n\n 0,离开\n");
    878. puts("=============================================================================");
    879. scanf("%d",&yewai);
    880. switch(yewai)
    881. {
    882. case 1:
    883. place_sign=place.forest1;
    884. s=SuiJi();
    885. if(s<7)
    886. {
    887. battle=1;
    888. guai=xiyi;
    889. printf("%s扑了过来!\n\n\n",guai.name);
    890. BattleAct();
    891. }
    892. else if(s<9)
    893. {
    894. battle=1;
    895. guai=witch;
    896. printf("%s扑了过来!\n\n\n",guai.name);
    897. BattleAct();
    898. }
    899. else
    900. {
    901. printf("这里安全\n\n\n");
    902. //不用调用OAct函数,会自动执行OAct函数;
    903. }
    904. break;
    905. case 3:
    906. place_sign=place.forest2;
    907. s=SuiJi();
    908. if(s<7)
    909. {
    910. battle=1;
    911. guai=witch;
    912. printf("%s扑了过来!\n\n\n",guai.name);
    913. BattleAct();
    914. }
    915. else if(s<9)
    916. {
    917. battle=1;
    918. guai=strongman;
    919. printf("%s扑了过来!\n\n\n",guai.name);
    920. BattleAct();
    921. }
    922. else
    923. {
    924. printf("这里安全\n\n\n");
    925. }
    926. break;
    927. case 5:
    928. place_sign=place.forest3;
    929. s=SuiJi();
    930. if(s<7)
    931. {
    932. battle=1;
    933. guai=strongman;
    934. printf("%s扑了过来!\n\n\n",guai.name);
    935. BattleAct();
    936. }
    937. else if(s<9)
    938. {
    939. battle=1;
    940. guai=big_strongman;
    941. printf("%s扑了过来!\n\n\n",guai.name);
    942. BattleAct();
    943. }
    944. else
    945. {
    946. printf("这里安全\n\n\n");
    947. }
    948. break;
    949. case 2:
    950. place_sign=place.grass1;
    951. s=SuiJi();
    952. if(s<7)
    953. {
    954. battle=1;
    955. guai=bee;
    956. printf("%s扑了过来!\n\n\n",guai.name);
    957. BattleAct();
    958. }
    959. else if(s<9)
    960. {
    961. battle=1;
    962. guai=horse;
    963. printf("%s扑了过来!\n\n\n",guai.name);
    964. BattleAct();
    965. }
    966. else
    967. {
    968. printf("这里安全\n\n\n");
    969. }
    970. break;
    971. case 4:
    972. place_sign=place.grass2;
    973. s=SuiJi();
    974. if(s<7)
    975. {
    976. battle=1;
    977. guai=horse;
    978. printf("%s扑了过来!\n\n\n",guai.name);
    979. BattleAct();
    980. }
    981. else if(s<9)
    982. {
    983. battle=1;
    984. guai=lion;
    985. printf("%s扑了过来!\n\n\n",guai.name);
    986. BattleAct();
    987. }
    988. else
    989. {
    990. printf("这里安全\n\n\n");
    991. }
    992. break;
    993. case 6:
    994. place_sign=place.grass3;
    995. s=SuiJi();
    996. if(s<7)
    997. {
    998. battle=1;
    999. guai=lion;
    1000. printf("%s扑了过来!\n\n\n",guai.name);
    1001. BattleAct();
    1002. }
    1003. else if(s<9)
    1004. {
    1005. battle=1;
    1006. if(strongman_arm>=1)
    1007. {
    1008. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1009. guai=shitu;
    1010. printf("%s扑了过来!\n\n\n",guai.name);
    1011. BattleAct();
    1012. }
    1013. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1014. }
    1015. else
    1016. {
    1017. printf("这里安全\n\n\n");
    1018. }
    1019. break;
    1020. if(yewai!=0)
    1021. {
    1022. printf("该区域为未知区域,无法进入。\n\n\n");
    1023. break;
    1024. }
    1025. }
    1026. if(yewai==0)
    1027. {
    1028. break;
    1029. printf("已离开荒野。");
    1030. }
    1031. }
    1032. }
    1033. break;
    1034. case 2:
    1035. ChooseWupin();
    1036. break; //显示道具,并可以使用.
    1037. case 3: //对话选项
    1038. if(place_sign==place.bar)
    1039. {
    1040. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); //显示对话人物
    1041. switch(scanf("%d",&choose_number),choose_number)
    1042. {
    1043. case 1:
    1044. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
    1045. break;
    1046. case 2:
    1047. if(fang1n<1&&gong1n<1)
    1048. {
    1049. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
    1050. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1051. gong1n++;
    1052. fang1n++;
    1053. }
    1054. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");
    1055. break;
    1056. case 3:
    1057. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
    1058. choose_number=1;
    1059. while(choose_number)
    1060. {
    1061. switch(scanf("%d",&choose_number),choose_number)
    1062. {
    1063. case 1:
    1064. if(money<25)
    1065. {
    1066. printf("钱不够!");
    1067. }
    1068. else
    1069. {
    1070. if(player.health+20<=player.max_health)
    1071. {
    1072. printf("HP+20.");
    1073. money-=25;
    1074. player.health+=20;
    1075. }
    1076. else
    1077. {
    1078. printf("HP满了");
    1079. player.health=player.max_health;
    1080. }
    1081. }
    1082. break;
    1083. case 2:
    1084. if(money<80)
    1085. {
    1086. printf("钱不够!");
    1087. }
    1088. else
    1089. {
    1090. if(player.health+50<=player.max_health)
    1091. {
    1092. printf("HP+50.");
    1093. money-=80;
    1094. player.health+=50;
    1095. }
    1096. else
    1097. {
    1098. printf("HP满了");
    1099. player.health=player.max_health;
    1100. }
    1101. }
    1102. break;
    1103. case 3:
    1104. if(money<150)
    1105. {
    1106. printf("钱不够!");
    1107. }
    1108. else
    1109. {
    1110. if(player.health+100<=player.max_health)
    1111. {
    1112. printf("HP+100.");
    1113. money-=150;
    1114. player.health+=100;
    1115. }
    1116. else
    1117. {
    1118. printf("HP满了");
    1119. player.health=player.max_health;
    1120. }
    1121. }
    1122. break;
    1123. case 0:
    1124. printf("下次再来!\n");
    1125. break;
    1126. default:
    1127. printf("输入错误\n\n\n");
    1128. break;
    1129. }
    1130. break;
    1131. }
    1132. break;
    1133. case 4:
    1134. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");
    1135. int mai;
    1136. scanf("%d",&mai);
    1137. if(mai==1)
    1138. {
    1139. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");
    1140. int dongxi;
    1141. scanf("%d",&dongxi);
    1142. switch(dongxi)
    1143. {
    1144. case 1:
    1145. if(money>=100&&cao<6)
    1146. {
    1147. cao++;
    1148. money=money-100;
    1149. printf ("止血草+1\n");
    1150. }
    1151. else
    1152. {
    1153. printf("钱不够!\n");
    1154. }
    1155. break;
    1156. case 2:
    1157. if(money>=150&&jijiubao<10)
    1158. {
    1159. jijiubao++;
    1160. money=money-150;
    1161. printf ("急救包+1\n");
    1162. }
    1163. else
    1164. {
    1165. printf("钱不够!\n");
    1166. }
    1167. break;
    1168. case 3:
    1169. if(money>=250&&baiyao<10)
    1170. {
    1171. baiyao++;
    1172. money=money-250;
    1173. printf ("云南白药+1\n");
    1174. }
    1175. else
    1176. {
    1177. printf("钱不够!\n");
    1178. }
    1179. break;
    1180. case 4:
    1181. if(money>=400&&superbaiyao<10)
    1182. {
    1183. superbaiyao++;
    1184. money=money-400;
    1185. printf ("超级云南白药+1\n");
    1186. }
    1187. else
    1188. {
    1189. printf("钱不够!\n");
    1190. }
    1191. break;
    1192. case 5:
    1193. if(money>=150)
    1194. {
    1195. jingyancao++;
    1196. money=money-150;
    1197. printf ("经验草+1\n");
    1198. }
    1199. else
    1200. {
    1201. printf("钱不够!\n");
    1202. }
    1203. break;
    1204. case 6:
    1205. if(money>=300)
    1206. {
    1207. jingyanbao++;
    1208. money=money-300;
    1209. printf ("经验包+1\n");
    1210. }
    1211. else
    1212. {
    1213. printf("钱不够!\n");
    1214. }
    1215. break;
    1216. case 7:
    1217. if(money>=500)
    1218. {
    1219. jingyanshi++;
    1220. money=money-500;
    1221. printf ("经验石+1\n");
    1222. }
    1223. else
    1224. {
    1225. printf("钱不够!\n");
    1226. }
    1227. break;
    1228. }
    1229. case 0:
    1230. printf("金币:%d\n",money);
    1231. printf("再见,欢迎下次再来!\n");
    1232. break;
    1233. }
    1234. if(mai==2)
    1235. {
    1236. printf("药品商人:去去去,老子没时间陪你聊。\n");
    1237. }
    1238. }
    1239. }
    1240. else if(place_sign==place.hotel)
    1241. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1242. else printf("这里好像没人可以聊天\n\n\n");
    1243. break;
    1244. case 4:
    1245. DisplayState();
    1246. break; //显示状态
    1247. case 5: //装备
    1248. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n);
    1249. printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,重甲:%d个 8,传说圣甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n);
    1250. printf("选择要装备的武器或防具:\n\n\n");
    1251. switch(scanf("%d",&choose_number),choose_number)
    1252. {
    1253. case 1:
    1254. if(gong1n>=1)
    1255. {
    1256. printf("拿起了匕首\n\n\n");
    1257. gong=gong1;
    1258. strcpy(gongname,"匕首");
    1259. }
    1260. else printf("你没有匕首可以装备\n\n\n");
    1261. break;
    1262. case 2:
    1263. if(gong2n>=1)
    1264. {
    1265. printf("拿起了西洋剑\n\n\n");
    1266. gong=gong2;
    1267. strcpy(gongname,"西洋剑");
    1268. }
    1269. else printf("你没有西洋剑可以装备\n\n\n");
    1270. break;
    1271. case 3:
    1272. if(gong3n>=1)
    1273. {
    1274. printf("拿起了碧血战锤\n\n\n");
    1275. gong=gong3;
    1276. strcpy(gongname,"碧血战锤");
    1277. }
    1278. else printf("你没有碧血战锤可以装备\n\n\n");
    1279. break;
    1280. case 4:
    1281. if(gong4n>=1)
    1282. {
    1283. printf("拿起了尚方宝剑\n\n\n");
    1284. gong=gong4;
    1285. strcpy(gongname,"尚方宝剑");
    1286. }
    1287. else printf("你没有尚方宝剑可以装备\n\n\n");
    1288. break;
    1289. case 5:
    1290. if(fang1n>=1)
    1291. {
    1292. printf("穿上了布衣\n\n\n");
    1293. fang=fang1;
    1294. strcpy(fangname,"布衣");
    1295. }
    1296. else printf("你没有布衣可以装备\n\n\n");
    1297. break;
    1298. case 6:
    1299. if(fang2>=1)
    1300. {
    1301. printf("穿上了铁甲\n\n\n");
    1302. fang=fang2;
    1303. strcpy(fangname,"铁甲");
    1304. }
    1305. else printf("你没有铁甲可以装备\n\n\n");
    1306. break;
    1307. case 7:
    1308. if(fang3n>=1)
    1309. {
    1310. printf("穿上了重甲\n\n\n");
    1311. fang=fang3;
    1312. strcpy(fangname,"重甲");
    1313. }
    1314. else printf("你没有重甲可以装备\n\n\n");
    1315. break;
    1316. case 8:
    1317. if(fang4n>=1)
    1318. {
    1319. printf("穿上了传说圣甲\n\n\n");
    1320. fang=fang4;
    1321. strcpy(fangname,"传说圣甲");
    1322. }
    1323. else printf("你没有传说圣甲可以装备\n\n\n");
    1324. break;
    1325. case 0:
    1326. printf("未更换装备\n\n\n");
    1327. break;
    1328. default:
    1329. printf("change error!");
    1330. }
    1331. break;
    1332. case 6:
    1333. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.4.1版本的buy,我们在2.4.1的基础上进行修改,已修复该buy。并且新增了经验草等有助于升级的道具,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。\n");
    1334. break;
    1335. case 0:
    1336. printf("确定退出游戏?(Y/N)\n\n\n");
    1337. getchar();
    1338. proof=getchar();
    1339. if(proof=='y'||proof=='Y')
    1340. {
    1341. printf("数据存储中...");
    1342. //向文件中更新数据;
    1343. getchar();
    1344. printf("按回车退出");
    1345. getchar();
    1346. return;
    1347. }
    1348. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1349. else printf("继续!\n\n\n");
    1350. break;
    1351. default:
    1352. printf("输入错误!\n\n\n");
    1353. }
    1354. }
    1355. }
    1356. void DisplayState()
    1357. {
    1358. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1359. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1360. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1361. }
    1362. void BattleAct()
    1363. {
    1364. while(1)
    1365. {
    1366. puts("=============================================================================");
    1367. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1368. switch(scanf("%d",&choose_number),choose_number)
    1369. {
    1370. case 1:
    1371. s=SuiJi();
    1372. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1373. guai.health-=player.attack+s+gong-guai.defense/3;
    1374. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1375. else continue;
    1376. case 2:
    1377. ChooseWupin();
    1378. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1379. case 3:
    1380. DisplayState();
    1381. break; //显示状态
    1382. case 4:
    1383. s=SuiJi();
    1384. if(s<4) //40%的概率可以逃跑
    1385. {
    1386. printf("%s逃跑了~\n\n\n",player.name);
    1387. battle=0;
    1388. return;
    1389. }
    1390. else printf("%s逃跑失败!\n\n\n",player.name);
    1391. break;
    1392. default:
    1393. printf("输入错误,重新输入!\n\n\n");
    1394. }
    1395. }
    1396. }
    1397. void printf(char *p)
    1398. {
    1399. while(1)
    1400. {
    1401. if(*p!=0)
    1402. printf("%c",*p++);
    1403. else
    1404. break;
    1405. Sleep(100);
    1406. }
    1407. }

    2.6.1

    1. #include
    2. #include
    3. #include //suiji
    4. #include //SLEEP函数
    5. struct Player //玩家结构体,并初始化player
    6. {
    7. char name[21];
    8. int attack;
    9. int defense;
    10. int health;
    11. long int max_health;
    12. int level;
    13. int exp;
    14. int range_exp;
    15. long int max_exp;
    16. } player= {"勇者",50,40,100,100,1,0,0,100};
    17. struct Enemy //怪的结构体,并初始化各种怪
    18. {
    19. char name[20];
    20. char wupin[12];
    21. int attack;
    22. int defense;
    23. int health;
    24. int money;
    25. long int exp;
    26. int wupin_sign;
    27. int wupinpro;
    28. int double_attack;
    29. int miss;
    30. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,2,1,0},
    31. witch= {"森林兽人","重甲",25,15,100,50,50,2,2,1,1},
    32. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2},
    33. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    34. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,2,1,0},
    35. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,2,1,1},
    36. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,3,2,2},
    37. shitu= {"幻象*凋零风暴*","\0",400,30*8,500*10,10000,100000,9,1,1,0},
    38. pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,1,1,0},
    39. dapika= {"大皮卡超人","\0",350,40*10,1500,3000,2000,0,1,1,0},
    40. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    41. struct Place
    42. {
    43. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3;
    44. } place= {1,2,3,4,5,6,7,8};
    45. int max_exp=0;
    46. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
    47. int cao=3,jijiubao=2,baiyao=2,superbaiyao=1,miansi=1,boom=3,dubiao=2,atom_boom=1;
    48. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0;
    49. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0;
    50. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    51. char gongname[20]="无",fangname[20]="无";
    52. char proof;
    53. void AddWupin(int);
    54. int AttackResult();
    55. void BattleAct();
    56. void ChooseWupin();
    57. void DisplayState();
    58. void OrdinaryAct();
    59. int SuiJi();
    60. int SuiJi100();
    61. void WhetherLevelUp();
    62. void SlowDisplay(char *);
    63. int main()
    64. {
    65. int i=0,j=0,k=0;
    66. char player_name[21];
    67. Sleep(1000);
    68. printf("--------------------------欢迎来到 [苍穹世界] 2.6.1 测试版-----------------------\n\n\n");
    69. //如果想使用外挂,名字请输入:“zty ”。
    70. Sleep(1000);
    71. printf("这里是苍穹世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");
    72. scanf("%s",player_name);
    73. strncpy(player.name,player_name,20);
    74. if(strcmp(player.name,"zty")==0)
    75. {
    76. printf("\n\n\n封印多年的圣剑血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    77. player.attack=999;
    78. player.defense=999;
    79. player.health=9999;
    80. player.max_health=9999;
    81. }
    82. getchar();
    83. OrdinaryAct();
    84. return 0;
    85. }
    86. int SuiJi()
    87. {
    88. srand((unsigned)time(NULL));
    89. return rand()%10;
    90. }
    91. int SuiJi100()
    92. {
    93. srand((unsigned)time(NULL));
    94. return rand()%100;
    95. }
    96. void ChooseWupin() //选择物品 并使用
    97. {
    98. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);
    99. switch(scanf("%d",&choose_number),choose_number)
    100. {
    101. case 1:
    102. if(cao>0)
    103. {
    104. printf("使用止血草,HP增加60\n\n\n");
    105. cao--;
    106. if(player.health+60>player.max_health)player.health=player.max_health;
    107. else player.health+=60;
    108. }
    109. else printf("没有止血草了\n\n\n");
    110. break;
    111. case 2:
    112. if(jijiubao>0)
    113. {
    114. printf("使用急救包,HP增加80\n\n\n");
    115. jijiubao--;
    116. if(player.health+80>player.max_health)player.health=player.max_health;
    117. else player.health+=80;
    118. }
    119. else printf("没有急救包了\n\n\n");
    120. break;
    121. case 3:
    122. if(baiyao>0)
    123. {
    124. printf("使用云南白药,HP增加120\nz\n\n");
    125. baiyao--;
    126. if(player.health+120>player.max_health)player.health=player.max_health;
    127. else player.health+=120;
    128. }
    129. else printf("没有云南白药了\n\n\n");
    130. break;
    131. case 4:
    132. if(superbaiyao>0)
    133. {
    134. printf("使用超级云南白药,HP增加200\n\n\n");
    135. superbaiyao--;
    136. if(player.health+200>player.max_health)player.health=player.max_health;
    137. else player.health+=200;
    138. }
    139. else printf("没有超级云南白药了\n\n\n");
    140. break;
    141. case 5:
    142. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    143. {
    144. if(boom>0)
    145. {
    146. printf("使用手雷,敌人HP减少100\n\n\n");
    147. boom--;
    148. guai.health-=100;
    149. AttackResult();
    150. }
    151. }
    152. else printf("非战斗状态,不能使用手雷!\n\n\n");
    153. break;
    154. case 6:
    155. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    156. {
    157. if(dubiao>0)
    158. {
    159. printf("使用毒标,敌人HP减少200\n\n\n");
    160. dubiao--;
    161. guai.health-=200;
    162. AttackResult();
    163. }
    164. }
    165. else printf("非战斗状态,不能使用毒标!\n\n\n");
    166. break;
    167. case 7:
    168. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    169. {
    170. if(atom_boom>0)
    171. {
    172. printf("使用手抛式原子弹,敌人HP减少1000\n\n\n");
    173. atom_boom--;
    174. guai.health-=1000;
    175. AttackResult();
    176. }
    177. }
    178. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");
    179. break;
    180. case 8:
    181. if(jingyancao>0 && player.level<100)
    182. {
    183. printf("使用经验草,等级增加3级\n\n\n");
    184. jingyancao--;
    185. player.max_health=player.max_health+60;
    186. player.attack+=9;
    187. player.defense+=6;
    188. player.level+=3;
    189. player.health=player.max_health;
    190. printf("等级:%d\n",player.level);
    191. }
    192. else if(jingyancao<1)
    193. {
    194. printf("没有经验草了\n\n\n");
    195. }
    196. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    197. break;
    198. case 9:
    199. if(jingyanbao>0 && player.level<1000)
    200. {
    201. if(player.level>97&&player.level<1000)
    202. {
    203. int sheng;
    204. sheng=100-player.level;
    205. player.level+=sheng;
    206. jingyanbao--;
    207. player.max_health=player.max_health+sheng*20;
    208. player.attack+=sheng*3;
    209. player.defense+=sheng*2;
    210. player.health=player.max_health;
    211. printf("使用经验包,等级增加%d级",sheng);
    212. printf("等级:%d\n",player.level);
    213. }
    214. else
    215. {
    216. printf("使用经验包,等级增加5级\n\n\n");
    217. jingyanbao--;
    218. player.max_health=player.max_health+100;
    219. player.attack+=15;
    220. player.defense+=10;
    221. player.level+=5;
    222. player.health=player.max_health;
    223. printf("等级:%d\n",player.level);
    224. }
    225. }
    226. else if(jingyanbao<1)
    227. {
    228. printf("没有经验包了");
    229. }
    230. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    231. break;
    232. case 10:
    233. if(jingyanshi>0 && player.level<100)
    234. {
    235. if(player.level>92&&player.level<100)
    236. {
    237. int sheng;
    238. sheng=100-player.level;
    239. player.level+=sheng;
    240. player.max_health+=sheng*20;
    241. player.attack+=sheng*3;
    242. player.defense+=sheng*2;
    243. player.health=player.max_health;
    244. printf("使用经验石,等级增加%d级\n",sheng);
    245. printf("等级:%d\n",player.level);
    246. }
    247. else
    248. {
    249. printf("使用经验石,等级增加10级\n");
    250. jingyanshi--;
    251. player.max_health=player.max_health+200;
    252. player.attack+=30;
    253. player.defense+=20;
    254. player.level+=10;
    255. player.health=player.max_health;
    256. }
    257. }
    258. else if(jingyanshi<1)
    259. {
    260. printf("没有经验石了\n\n\n");
    261. }
    262. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    263. break;
    264. case 11:
    265. if(strongman_arm>0 && player.level<100)
    266. {
    267. if(player.level>82&&player.level<100)
    268. {
    269. int sheng;
    270. sheng=100-player.level;
    271. player.level+=sheng;
    272. player.max_health=player.max_health+sheng*20;
    273. player.attack+=sheng*3;
    274. player.defense+=sheng*2;
    275. player.health=player.max_health;
    276. printf("使用巨龙晶石,等级增加%d级",sheng);
    277. printf("等级:%d\n",player.level);
    278. }
    279. else
    280. {
    281. printf("使用巨龙晶石,等级增加20级\n\n\n");
    282. strongman_arm--;
    283. player.max_health=player.max_health+400;
    284. player.attack+=60;
    285. player.defense+=40;
    286. player.health+=999999;
    287. player.level+=20;
    288. printf("等级:%d\n",player.level);
    289. }
    290. }
    291. else if(strongman_arm<1)
    292. {
    293. printf("没有巨龙晶石了。\n\n\n");
    294. }
    295. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    296. break;
    297. case 12:
    298. if(miansi>0)
    299. {
    300. printf("使用免死金牌,HP满\n\n\n");
    301. miansi--;
    302. if(player.health+999999>player.max_health)player.health=player.max_health;
    303. else player.health+=999999;
    304. }else printf("没有免死金牌了\n\n\n"); break;
    305. case 0:
    306. break;
    307. default:
    308. printf("ChooseWupin error!\n\n\n");
    309. }
    310. }
    311. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    312. {
    313. if(guai.health<=0)
    314. {
    315. battle=0;
    316. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
    317. player.exp+=guai.exp;
    318. player.range_exp+=guai.exp;
    319. money+=guai.money;
    320. s=SuiJi();
    321. if(s
    322. {
    323. printf("从敌人尸骸中发现");
    324. printf("%s\n\n\n",guai.wupin);
    325. AddWupin(guai.wupin_sign);
    326. }
    327. WhetherLevelUp();
    328. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    329. {
    330. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");
    331. }
    332. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    333. }
    334. else
    335. {
    336. int s=SuiJi();
    337. if((guai.attack+s-player.defense/3)<0)
    338. {
    339. player.health-=1;
    340. printf("%s反击,你的HP减少了 1\n\n",guai.name);
    341. }
    342. else
    343. {
    344. player.health-=guai.attack+s-player.defense/3;
    345. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);
    346. }
    347. if(player.health<0)
    348. {
    349. battle=0;
    350. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);
    351. money-=player.level*500;
    352. player.health=player.max_health/5;
    353. OrdinaryAct();//
    354. return 1;
    355. }
    356. }
    357. return 0;
    358. }
    359. void AddWupin(int wupin_sign)
    360. {
    361. switch(wupin_sign)
    362. {
    363. case 1:
    364. fang4n++;
    365. break;
    366. case 2:
    367. fang3n++;
    368. break;
    369. case 3:
    370. fang2n++;
    371. break;
    372. case 4:
    373. strongman_arm++;
    374. break;
    375. case 5:
    376. gong4n++;
    377. break;
    378. case 6:
    379. gong3n++;
    380. break;
    381. case 7:
    382. gong2n++;
    383. break;
    384. default:
    385. printf("AddWupin error\n\n\n");
    386. }
    387. }
    388. void WhetherLevelUp()
    389. {
    390. int i=0,j=0;
    391. int l1=player.range_exp/100;
    392. int l2=player.range_exp/300;
    393. int l3=player.range_exp/600;
    394. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    395. {
    396. if(l1==1)
    397. {
    398. printf("%s",player.name);
    399. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    400. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    401. player.attack+=3;
    402. player.defense+=2;
    403. player.max_health+=20;
    404. player.health=player.max_health;
    405. player.level++;
    406. player.range_exp=0;
    407. player.exp=player.max_exp;
    408. player.max_exp+=100;
    409. }
    410. else
    411. {
    412. printf("好厉害!连升%d级!",l1);
    413. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
    414. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    415. player.attack+=3*l1;
    416. player.defense+=2*l1;
    417. player.max_health+=20*l1;
    418. player.health=player.max_health;
    419. player.level+=l1;
    420. player.range_exp=0;
    421. player.exp=player.max_exp;
    422. player.max_exp+=100*l1;
    423. }
    424. }
    425. else if(player.level<=40&&l2>0)
    426. {
    427. if(l2==1)
    428. {
    429. printf("%s",player.name);
    430. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    431. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    432. player.attack+=3;
    433. player.defense+=2;
    434. player.max_health+=20;
    435. player.health=player.max_health;
    436. player.level++;
    437. player.range_exp=0;
    438. player.exp=player.max_exp;
    439. player.max_exp+=300;
    440. }
    441. else
    442. {
    443. printf("好厉害!连升%d级!",l1);
    444. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
    445. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    446. player.attack+=3*l2;
    447. player.defense+=2*l2;
    448. player.max_health+=20*l2;
    449. player.health=player.max_health;
    450. player.level+=l2;
    451. player.range_exp=0;
    452. player.exp=player.max_exp;
    453. player.max_exp+=300*l2;
    454. }
    455. }
    456. else if(l3>0)
    457. {
    458. if(l3==1)
    459. {
    460. printf("%s",player.name);
    461. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    462. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    463. player.attack+=3;
    464. player.defense+=2;
    465. player.max_health+=20;
    466. player.health=player.max_health;
    467. player.level++;
    468. player.range_exp=0;
    469. player.exp=player.max_exp;
    470. player.max_exp+=600;
    471. }
    472. else
    473. {
    474. printf("好厉害!连升%d级!",l1);
    475. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
    476. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    477. player.attack+=3*l3;
    478. player.defense+=2*l3;
    479. player.max_health+=20*l3;
    480. player.health=player.max_health;
    481. player.level+=l3;
    482. player.range_exp=0;
    483. player.exp=player.max_exp;
    484. player.max_exp+=600*l3;
    485. }
    486. }
    487. }
    488. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    489. {
    490. while(1)
    491. {
    492. // \(1000);
    493. // system("cls");
    494. puts("=============================================================================");
    495. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");
    496. puts("=============================================================================");
    497. switch(scanf("%d",&choose_number),choose_number)
    498. {
    499. case 1: //显示移动菜单
    500. printf("要去哪里?\n\n\n");
    501. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");
    502. switch(scanf("%d",&choose_number),choose_number)
    503. {
    504. case 1:
    505. place_sign=place.bar; //记录目前位置-酒吧
    506. // OrdinaryAct();
    507. break;
    508. case 2:
    509. place_sign=place.hotel; //进入旅店
    510. printf("金币:%d",money);
    511. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");
    512. choose_number=1;
    513. switch(scanf("%d",&choose_number),choose_number)
    514. {
    515. case 1:
    516. if(money-200<=0) //判断钱是否够
    517. {
    518. printf("Sorry,你的钱不够~\n\n\n");
    519. printf("金币:%d",money);
    520. }
    521. else
    522. {
    523. printf("好好休息\nHP满\n第二天了\n\n");
    524. printf("金币:%d\n",money);
    525. money-=200; //花费200住店费
    526. player.health=player.max_health; //体力满
    527. }
    528. break;
    529. case 0:
    530. printf("下次再来!\n\n\n");
    531. break;
    532. default:
    533. printf("hotel talk error!\n\n\n");
    534. }
    535. place_sign=0;
    536. break;
    537. case 3:
    538. int yongju,gong,fang;
    539. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");
    540. scanf("%d",&yongju);
    541. switch(yongju)
    542. {
    543. case 1:
    544. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");
    545. scanf("%d",&gong);
    546. switch(gong)
    547. {
    548. case 1:
    549. if(money>=300)
    550. {
    551. gong1n++;
    552. money=money-300;
    553. printf ("匕首+1\n");
    554. printf("匕首:%d个\n",gong1n);
    555. printf("金币:%d\n",money);
    556. break;
    557. }
    558. else
    559. {
    560. printf("钱不够!\n");
    561. printf("金币:%d\n",money);
    562. break;
    563. }
    564. case 2:
    565. if(money>=500)
    566. {
    567. gong2n++;
    568. money=money-500;
    569. printf ("西洋剑+1\n");
    570. printf("西洋剑:%d个\n",gong2n);
    571. printf("金币:%d\n",money);
    572. break;
    573. }
    574. else
    575. {
    576. printf("钱不够!\n");
    577. printf("金币:%d\n",money);
    578. break;
    579. }
    580. case 3:
    581. if(money>=1000)
    582. {
    583. gong3n++;
    584. money=money-1000;
    585. printf ("碧血战锤+1\n");
    586. printf("碧血战锤:%d个\n",gong3n);
    587. printf("金币:%d\n",money);
    588. break;
    589. }
    590. else
    591. {
    592. printf("钱不够!\n");
    593. printf("金币:%d\n",money);
    594. break;
    595. }
    596. default:
    597. printf("对不起,我们只会打造以上武器。");
    598. break;
    599. }
    600. break;
    601. case 2:
    602. int fang;
    603. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");
    604. scanf("%d",&fang);
    605. switch(fang)
    606. {
    607. case 1:
    608. if(money>=300)
    609. {
    610. fang1n++;
    611. money=money-300;
    612. printf ("布衣+1\n");
    613. printf("布衣:%d个\n",fang1n);
    614. printf("金币:%d\n",money);
    615. }
    616. else
    617. {
    618. printf("钱不够!\n");
    619. printf("金币:%d\n",money);
    620. }
    621. break;
    622. case 2:
    623. if(money>=500)
    624. {
    625. fang2n++;
    626. money=money-500;
    627. printf ("铁甲+1\n");
    628. printf("铁甲:%d个\n",fang2n);
    629. printf("金币:%d\n",money);
    630. }
    631. else
    632. {
    633. printf("钱不够!\n");
    634. printf("金币:%d",money);
    635. }
    636. break;
    637. case 3:
    638. if(money>=1000)
    639. {
    640. fang3n++;
    641. money=money-1000;
    642. printf ("重甲+1\n");
    643. printf("重甲:%d个\n",fang3n);
    644. printf("金币:%d\n",money);
    645. }
    646. else
    647. {
    648. printf("钱不够!\n");
    649. printf("金币:%d\n",money);
    650. }
    651. default:
    652. printf("对不起,我们只会打造以上防具。");
    653. break;
    654. }
    655. printf("金币:%d\n",money);
    656. break;
    657. case 3:
    658. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");
    659. int yi;
    660. scanf("%d",&yi);
    661. switch(yi)
    662. {
    663. case 1:
    664. if(money>=300 && boom<5)
    665. {
    666. boom++;
    667. money=money-300;
    668. printf("手雷+1\n");
    669. printf("手雷:%d\n",boom);
    670. printf("金币:%d\n",money);
    671. }
    672. else
    673. {
    674. printf("钱不够!\n");
    675. printf("金币:%d",money);
    676. }
    677. break;
    678. case 2:
    679. if(money>=600 && dubiao<9999999)
    680. {
    681. dubiao++;
    682. money=money-600;
    683. printf("毒镖+1\n");
    684. printf("毒镖:%d\n",dubiao);
    685. printf("金币:%d\n",money);
    686. }
    687. else
    688. {
    689. printf("钱不够!\n");
    690. printf("金币:%d\n",money);
    691. }
    692. break;
    693. case 3:
    694. if(money>=1000 && atom_boom<=5)
    695. {
    696. atom_boom=atom_boom+1;
    697. money=money-1000;
    698. printf("手抛式原子弹+1\n");
    699. printf("手抛式原子弹:%d\n",atom_boom);
    700. printf("金币:%d\n",money);
    701. }
    702. else
    703. {
    704. printf("钱不够!\n\n\n");
    705. printf("金币:%d\n",money);
    706. }
    707. break;
    708. }
    709. }
    710. break;
    711. case 4:
    712. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");
    713. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个\n",gong1n,gong2n,gong3n,gong4n);
    714. printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,重甲:%d个 8,传说圣甲:%d个\n9,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,strongman_arm);
    715. int pai,shu,i;
    716. scanf("%d",&pai);
    717. switch(pai)
    718. {
    719. case 1:
    720. printf("请问您要出售几件?");
    721. scanf("%d",&shu);
    722. if(gong1n>=shu)
    723. {
    724. gong1n=gong1n-shu;
    725. money=money+shu*240;
    726. printf("匕首:%d\n",gong1n);
    727. printf("金币:%d\n",money);
    728. break;
    729. }
    730. else
    731. {
    732. printf("装备数不够,无法出售!\n");
    733. break;
    734. }
    735. break;
    736. case 2:
    737. printf("请问您要出售几件?\n");
    738. scanf("%d",&shu);
    739. if(gong2n>=shu)
    740. {
    741. gong2n=gong2n-shu;
    742. money=money+shu*400;
    743. printf("西洋剑:%d\n",gong2n);
    744. printf("金币:%d\n",money);
    745. break;
    746. }
    747. else
    748. {
    749. printf("装备数不够,无法出售!\n");
    750. break;
    751. }
    752. case 3:
    753. printf("请问您要出售几件?\n");
    754. scanf("%d",&shu);
    755. if(gong3n>=shu)
    756. {
    757. gong3n=gong3n-shu;
    758. money=money+shu*800;
    759. printf("碧血战锤:%d\n",gong3n);
    760. printf("金币:%d\n",money);
    761. break;
    762. }
    763. else
    764. {
    765. printf("装备数不够,无法出售!\n");
    766. break;
    767. }
    768. case 4:
    769. printf("请问您要出售几件?\n");
    770. scanf("%d",&shu);
    771. if(gong4n>=shu)
    772. {
    773. gong4n=gong4n-shu;
    774. money=money+shu*1500;
    775. printf("尚方宝剑:%d\n",gong4n);
    776. printf("金币:%d\n",money);
    777. break;
    778. }
    779. else
    780. {
    781. printf("装备数不够,无法出售!\n");
    782. break;
    783. }
    784. case 5:
    785. printf("请问您要出售几件?\n");
    786. scanf("%d",&shu);
    787. if(fang1n>=shu)
    788. {
    789. fang1n=fang1n-shu;
    790. money=money+shu*240;
    791. printf("布衣:%d\n",fang1n);
    792. printf("金币:%d\n",money);
    793. break;
    794. }
    795. else
    796. {
    797. printf("装备数不够,无法出售!\n");
    798. break;
    799. }
    800. case 6:
    801. printf("请问您要出售几件?\n");
    802. scanf("%d",&shu);
    803. if(fang2n>=shu)
    804. {
    805. fang2n=fang2n-shu;
    806. money=money+shu*500;
    807. printf("铁甲:%d\n",fang2n);
    808. printf("金币:%d\n",money);
    809. break;
    810. }
    811. else
    812. {
    813. printf("装备数不够,无法出售!\n");
    814. break;
    815. }
    816. case 7:
    817. printf("请问您要出售几件?\n");
    818. scanf("%d",&shu);
    819. if(fang3n>=shu)
    820. {
    821. fang3n=fang3n-shu;
    822. money=money+shu*800;
    823. printf("重甲:%d\n",fang3n);
    824. printf("金币:%d\n",money);
    825. break;
    826. }
    827. else
    828. {
    829. printf("装备数不够,无法出售!\n");
    830. break;
    831. }
    832. break;
    833. case 8:
    834. printf("请问您要出售几件?\n");
    835. scanf("%d",&shu);
    836. if(fang4n>=shu)
    837. {
    838. fang4n=fang4n-shu;
    839. money=money+shu*1500;
    840. printf("传说圣甲:%d\n",fang4n);
    841. printf("金币:%d\n",money);
    842. break;
    843. }
    844. else
    845. {
    846. printf("装备数不够,无法出售!\n");
    847. break;
    848. }
    849. case 9:
    850. printf("请问您要出售几颗?");
    851. scanf("%d",&shu);
    852. if(strongman_arm>=shu)
    853. {
    854. strongman_arm=strongman_arm-shu;
    855. money=money+shu*4000;
    856. printf("巨龙晶石:%d\n",strongman_arm);
    857. printf("金币:%d\n",money);
    858. }
    859. else
    860. {
    861. printf("晶石数不够,无法出售!\n");
    862. break;
    863. }
    864. break;
    865. case 0:
    866. break;
    867. break;
    868. default:
    869. printf("没有该装备,无法出售!\n");
    870. break;
    871. }
    872. break;
    873. case 5:
    874. int yewai;
    875. while(1)
    876. {
    877. puts("=============================================================================");
    878. printf("要去哪冒险呢?");
    879. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,皮卡超人游乐场 危险程度★★★★★\n\n 7,花朵宫殿 危险程度:★★★★★\n\n 0,离开\n");
    880. puts("=============================================================================");
    881. scanf("%d",&yewai);
    882. switch(yewai)
    883. {
    884. case 1:
    885. place_sign=place.forest1;
    886. s=SuiJi();
    887. if(s<7)
    888. {
    889. battle=1;
    890. guai=xiyi;
    891. printf("%s扑了过来!\n\n\n",guai.name);
    892. BattleAct();
    893. }
    894. else if(s<9)
    895. {
    896. battle=1;
    897. guai=witch;
    898. printf("%s扑了过来!\n\n\n",guai.name);
    899. BattleAct();
    900. }
    901. else
    902. {
    903. printf("这里安全\n\n\n");
    904. //不用调用OAct函数,会自动执行OAct函数;
    905. }
    906. break;
    907. case 3:
    908. place_sign=place.forest2;
    909. s=SuiJi();
    910. if(s<7)
    911. {
    912. battle=1;
    913. guai=witch;
    914. printf("%s扑了过来!\n\n\n",guai.name);
    915. BattleAct();
    916. }
    917. else if(s<9)
    918. {
    919. battle=1;
    920. guai=strongman;
    921. printf("%s扑了过来!\n\n\n",guai.name);
    922. BattleAct();
    923. }
    924. else
    925. {
    926. printf("这里安全\n\n\n");
    927. }
    928. break;
    929. case 5:
    930. place_sign=place.forest3;
    931. s=SuiJi();
    932. if(s<7)
    933. {
    934. battle=1;
    935. guai=strongman;
    936. printf("%s扑了过来!\n\n\n",guai.name);
    937. BattleAct();
    938. }
    939. else if(s<9)
    940. {
    941. battle=1;
    942. guai=big_strongman;
    943. printf("%s扑了过来!\n\n\n",guai.name);
    944. BattleAct();
    945. }
    946. else
    947. {
    948. printf("这里安全\n\n\n");
    949. }
    950. break;
    951. case 2:
    952. place_sign=place.grass1;
    953. s=SuiJi();
    954. if(s<7)
    955. {
    956. battle=1;
    957. guai=bee;
    958. printf("%s扑了过来!\n\n\n",guai.name);
    959. BattleAct();
    960. }
    961. else if(s<9)
    962. {
    963. battle=1;
    964. guai=horse;
    965. printf("%s扑了过来!\n\n\n",guai.name);
    966. BattleAct();
    967. }
    968. else
    969. {
    970. printf("这里安全\n\n\n");
    971. }
    972. break;
    973. case 4:
    974. place_sign=place.grass2;
    975. s=SuiJi();
    976. if(s<7)
    977. {
    978. battle=1;
    979. guai=horse;
    980. printf("%s扑了过来!\n\n\n",guai.name);
    981. BattleAct();
    982. }
    983. else if(s<9)
    984. {
    985. battle=1;
    986. guai=lion;
    987. printf("%s扑了过来!\n\n\n",guai.name);
    988. BattleAct();
    989. }
    990. else
    991. {
    992. printf("这里安全\n\n\n");
    993. }
    994. break;
    995. case 6:
    996. s=SuiJi();
    997. if(s<7)
    998. {
    999. battle=1;
    1000. guai=pika;
    1001. printf("%s扑了过来!\n\n\n",guai.name);
    1002. BattleAct();
    1003. }
    1004. else if(s<9)
    1005. {
    1006. battle=1;
    1007. guai=dapika;
    1008. printf("%s扑了过来!\n\n\n",guai.name);
    1009. BattleAct();
    1010. }
    1011. else
    1012. {
    1013. printf("这里安全\n\n\n");
    1014. }
    1015. break;
    1016. case 7:
    1017. place_sign=place.grass3;
    1018. s=SuiJi();
    1019. if(s<7)
    1020. {
    1021. battle=1;
    1022. guai=lion;
    1023. printf("%s扑了过来!\n\n\n",guai.name);
    1024. BattleAct();
    1025. }
    1026. else if(s<9)
    1027. {
    1028. battle=1;
    1029. if(strongman_arm>=1)
    1030. {
    1031. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1032. guai=shitu;
    1033. printf("%s扑了过来!\n\n\n",guai.name);
    1034. BattleAct();
    1035. }
    1036. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1037. }
    1038. else
    1039. {
    1040. printf("这里安全\n\n\n");
    1041. }
    1042. break;
    1043. if(yewai!=0)
    1044. {
    1045. printf("该区域为未知区域,无法进入。\n\n\n");
    1046. break;
    1047. }
    1048. }
    1049. if(yewai==0)
    1050. {
    1051. break;
    1052. printf("已离开荒野。");
    1053. }
    1054. }
    1055. }
    1056. break;
    1057. case 2:
    1058. ChooseWupin();
    1059. break; //显示道具,并可以使用.
    1060. case 3: //对话选项
    1061. if(place_sign==place.bar)
    1062. {
    1063. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); //显示对话人物
    1064. switch(scanf("%d",&choose_number),choose_number)
    1065. {
    1066. case 1:
    1067. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
    1068. break;
    1069. case 2:
    1070. if(fang1n<1&&gong1n<1)
    1071. {
    1072. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
    1073. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1074. gong1n++;
    1075. fang1n++;
    1076. }
    1077. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");
    1078. break;
    1079. case 3:
    1080. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
    1081. choose_number=1;
    1082. while(choose_number)
    1083. {
    1084. switch(scanf("%d",&choose_number),choose_number)
    1085. {
    1086. case 1:
    1087. if(money<25)
    1088. {
    1089. printf("钱不够!");
    1090. }
    1091. else
    1092. {
    1093. if(player.health+20<=player.max_health)
    1094. {
    1095. printf("HP+20.");
    1096. money-=25;
    1097. player.health+=20;
    1098. }
    1099. else
    1100. {
    1101. printf("HP满了");
    1102. player.health=player.max_health;
    1103. }
    1104. }
    1105. break;
    1106. case 2:
    1107. if(money<80)
    1108. {
    1109. printf("钱不够!");
    1110. }
    1111. else
    1112. {
    1113. if(player.health+50<=player.max_health)
    1114. {
    1115. printf("HP+50.");
    1116. money-=80;
    1117. player.health+=50;
    1118. }
    1119. else
    1120. {
    1121. printf("HP满了");
    1122. player.health=player.max_health;
    1123. }
    1124. }
    1125. break;
    1126. case 3:
    1127. if(money<150)
    1128. {
    1129. printf("钱不够!");
    1130. }
    1131. else
    1132. {
    1133. if(player.health+100<=player.max_health)
    1134. {
    1135. printf("HP+100.");
    1136. money-=150;
    1137. player.health+=100;
    1138. }
    1139. else
    1140. {
    1141. printf("HP满了");
    1142. player.health=player.max_health;
    1143. }
    1144. }
    1145. break;
    1146. case 0:
    1147. printf("下次再来!\n");
    1148. break;
    1149. default:
    1150. printf("输入错误\n\n\n");
    1151. break;
    1152. }
    1153. break;
    1154. }
    1155. break;
    1156. case 4:
    1157. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");
    1158. int mai;
    1159. scanf("%d",&mai);
    1160. if(mai==1)
    1161. {
    1162. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");
    1163. int dongxi;
    1164. scanf("%d",&dongxi);
    1165. switch(dongxi)
    1166. {
    1167. case 1:
    1168. if(money>=100&&cao<6)
    1169. {
    1170. cao++;
    1171. money=money-100;
    1172. printf ("止血草+1\n");
    1173. }
    1174. else
    1175. {
    1176. printf("钱不够!\n");
    1177. }
    1178. break;
    1179. case 2:
    1180. if(money>=150&&jijiubao<10)
    1181. {
    1182. jijiubao++;
    1183. money=money-150;
    1184. printf ("急救包+1\n");
    1185. }
    1186. else
    1187. {
    1188. printf("钱不够!\n");
    1189. }
    1190. break;
    1191. case 3:
    1192. if(money>=250&&baiyao<10)
    1193. {
    1194. baiyao++;
    1195. money=money-250;
    1196. printf ("云南白药+1\n");
    1197. }
    1198. else
    1199. {
    1200. printf("钱不够!\n");
    1201. }
    1202. break;
    1203. case 4:
    1204. if(money>=400&&superbaiyao<10)
    1205. {
    1206. superbaiyao++;
    1207. money=money-400;
    1208. printf ("超级云南白药+1\n");
    1209. }
    1210. else
    1211. {
    1212. printf("钱不够!\n");
    1213. }
    1214. break;
    1215. case 5:
    1216. if(money>=150)
    1217. {
    1218. jingyancao++;
    1219. money=money-150;
    1220. printf ("经验草+1\n");
    1221. }
    1222. else
    1223. {
    1224. printf("钱不够!\n");
    1225. }
    1226. break;
    1227. case 6:
    1228. if(money>=300)
    1229. {
    1230. jingyanbao++;
    1231. money=money-300;
    1232. printf ("经验包+1\n");
    1233. }
    1234. else
    1235. {
    1236. printf("钱不够!\n");
    1237. }
    1238. break;
    1239. case 7:
    1240. if(money>=500)
    1241. {
    1242. jingyanshi++;
    1243. money=money-500;
    1244. printf ("经验石+1\n");
    1245. }
    1246. else
    1247. {
    1248. printf("钱不够!\n");
    1249. }
    1250. break;
    1251. }
    1252. case 0:
    1253. printf("金币:%d\n",money);
    1254. printf("再见,欢迎下次再来!\n");
    1255. break;
    1256. }
    1257. if(mai==2)
    1258. {
    1259. printf("药品商人:去去去,老子没时间陪你聊。\n");
    1260. }
    1261. }
    1262. }
    1263. else if(place_sign==place.hotel)
    1264. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1265. else printf("这里好像没人可以聊天\n\n\n");
    1266. break;
    1267. case 4:
    1268. DisplayState();
    1269. break; //显示状态
    1270. case 5: //装备
    1271. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n);
    1272. printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,重甲:%d个 8,传说圣甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n);
    1273. printf("选择要装备的武器或防具:\n\n\n");
    1274. switch(scanf("%d",&choose_number),choose_number)
    1275. {
    1276. case 1:
    1277. if(gong1n>=1)
    1278. {
    1279. printf("拿起了匕首\n\n\n");
    1280. gong=gong1;
    1281. strcpy(gongname,"匕首");
    1282. }
    1283. else printf("你没有匕首可以装备\n\n\n");
    1284. break;
    1285. case 2:
    1286. if(gong2n>=1)
    1287. {
    1288. printf("拿起了西洋剑\n\n\n");
    1289. gong=gong2;
    1290. strcpy(gongname,"西洋剑");
    1291. }
    1292. else printf("你没有西洋剑可以装备\n\n\n");
    1293. break;
    1294. case 3:
    1295. if(gong3n>=1)
    1296. {
    1297. printf("拿起了碧血战锤\n\n\n");
    1298. gong=gong3;
    1299. strcpy(gongname,"碧血战锤");
    1300. }
    1301. else printf("你没有碧血战锤可以装备\n\n\n");
    1302. break;
    1303. case 4:
    1304. if(gong4n>=1)
    1305. {
    1306. printf("拿起了尚方宝剑\n\n\n");
    1307. gong=gong4;
    1308. strcpy(gongname,"尚方宝剑");
    1309. }
    1310. else printf("你没有尚方宝剑可以装备\n\n\n");
    1311. break;
    1312. case 5:
    1313. if(fang1n>=1)
    1314. {
    1315. printf("穿上了布衣\n\n\n");
    1316. fang=fang1;
    1317. strcpy(fangname,"布衣");
    1318. }
    1319. else printf("你没有布衣可以装备\n\n\n");
    1320. break;
    1321. case 6:
    1322. if(fang2>=1)
    1323. {
    1324. printf("穿上了铁甲\n\n\n");
    1325. fang=fang2;
    1326. strcpy(fangname,"铁甲");
    1327. }
    1328. else printf("你没有铁甲可以装备\n\n\n");
    1329. break;
    1330. case 7:
    1331. if(fang3n>=1)
    1332. {
    1333. printf("穿上了重甲\n\n\n");
    1334. fang=fang3;
    1335. strcpy(fangname,"重甲");
    1336. }
    1337. else printf("你没有重甲可以装备\n\n\n");
    1338. break;
    1339. case 8:
    1340. if(fang4n>=1)
    1341. {
    1342. printf("穿上了传说圣甲\n\n\n");
    1343. fang=fang4;
    1344. strcpy(fangname,"传说圣甲");
    1345. }
    1346. else printf("你没有传说圣甲可以装备\n\n\n");
    1347. break;
    1348. case 0:
    1349. printf("未更换装备\n\n\n");
    1350. break;
    1351. default:
    1352. printf("change error!");
    1353. }
    1354. break;
    1355. case 6:
    1356. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,本团队时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.0版本的buy,我们在2.0的基础上进行修改,已修复该buy。并且新增了经验草等有助于升级的道具,希望大家喜欢。在这里要感谢离陌同学,他给了我们许多宝贵的建议,谢谢。\n");
    1357. break;
    1358. case 0:
    1359. printf("确定退出游戏?(Y/N)\n\n\n");
    1360. getchar();
    1361. proof=getchar();
    1362. if(proof=='y'||proof=='Y')
    1363. {
    1364. printf("数据存储中...");
    1365. //向文件中更新数据;
    1366. getchar();
    1367. printf("按回车退出");
    1368. getchar();
    1369. return;
    1370. }
    1371. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1372. else printf("继续!\n\n\n");
    1373. break;
    1374. default:
    1375. printf("输入错误!\n\n\n");
    1376. }
    1377. }
    1378. }
    1379. void DisplayState()
    1380. {
    1381. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1382. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1383. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1384. }
    1385. void BattleAct()
    1386. {
    1387. while(1)
    1388. {
    1389. puts("=============================================================================");
    1390. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1391. switch(scanf("%d",&choose_number),choose_number)
    1392. {
    1393. case 1:
    1394. s=SuiJi();
    1395. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1396. guai.health-=player.attack+s+gong-guai.defense/3;
    1397. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1398. else continue;
    1399. case 2:
    1400. ChooseWupin();
    1401. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1402. case 3:
    1403. DisplayState();
    1404. break; //显示状态
    1405. case 4:
    1406. s=SuiJi();
    1407. if(s<4) //40%的概率可以逃跑
    1408. {
    1409. printf("%s逃跑了~\n\n\n",player.name);
    1410. battle=0;
    1411. return;
    1412. }
    1413. else printf("%s逃跑失败!\n\n\n",player.name);
    1414. break;
    1415. default:
    1416. printf("输入错误,重新输入!\n\n\n");
    1417. }
    1418. }
    1419. }
    1420. void printf(char *p)
    1421. {
    1422. while(1)
    1423. {
    1424. if(*p!=0)
    1425. printf("%c",*p++);
    1426. else
    1427. break;
    1428. Sleep(100);
    1429. }
    1430. }

    2.7.1

    1. #include
    2. #include
    3. #include //suiji
    4. #include //SLEEP函数
    5. struct Player //玩家结构体,并初始化player
    6. {
    7. char name[21];
    8. int attack;
    9. int defense;
    10. int health;
    11. long int max_health;
    12. int level;
    13. int exp;
    14. int range_exp;
    15. long int max_exp;
    16. } player= {"勇者",50,40,100,100,1,0,0,100};
    17. struct Enemy //怪的结构体,并初始化各种怪
    18. {
    19. char name[20];
    20. char wupin[20];
    21. int attack;
    22. int defense;
    23. int health;
    24. int money;
    25. long int exp;
    26. int wupin_sign;
    27. int wupinpro;
    28. int double_attack;
    29. int miss;
    30. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
    31. witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
    32. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
    33. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    34. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
    35. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
    36. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
    37. shitu= {"幻象*凋零风暴*","\0",2000,700,20000,10000,5000,0,1,1,0},
    38. pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
    39. dapika= {"大皮卡超人","皮卡大剑",350,40*10,1500,3000,2000,8,6,6,0},
    40. cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
    41. jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
    42. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    43. struct Place
    44. {
    45. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
    46. } place= {1,2,3,4,5,6,7,8,9,10,11,12};
    47. int max_exp=0;
    48. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
    49. int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
    50. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
    51. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
    52. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    53. char gongname[20]="无",fangname[20]="无";
    54. char proof;
    55. void AddWupin(int);
    56. int AttackResult();
    57. void BattleAct();
    58. void ChooseWupin();
    59. void DisplayState();
    60. void OrdinaryAct();
    61. int SuiJi();
    62. int SuiJi100();
    63. void WhetherLevelUp();
    64. void SlowDisplay(char *);
    65. int main()
    66. {
    67. int i=0,j=0,k=0;
    68. char player_name[21];
    69. Sleep(1000);
    70. printf("--------------------------欢迎来到 [苍穹世界] 2.7.1 正式版-----------------------\n\n\n");
    71. //如果想使用外挂,名字请输入:“zty ”。
    72. Sleep(1000);
    73. printf("这里是苍穹世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");
    74. scanf("%s",player_name);
    75. strncpy(player.name,player_name,20);
    76. if(strcmp(player.name,"zty")==0)
    77. {
    78. printf("\n\n\n封印多年的圣剑血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    79. player.attack=999;
    80. player.defense=999;
    81. player.health=9999;
    82. player.max_health=9999;
    83. }
    84. getchar();
    85. OrdinaryAct();
    86. return 0;
    87. }
    88. int SuiJi()
    89. {
    90. srand((unsigned)time(NULL));
    91. return rand()%10;
    92. }
    93. int SuiJi100()
    94. {
    95. srand((unsigned)time(NULL));
    96. return rand()%100;
    97. }
    98. void ChooseWupin() //选择物品 并使用
    99. {
    100. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);
    101. switch(scanf("%d",&choose_number),choose_number)
    102. {
    103. case 1:
    104. if(cao>0)
    105. {
    106. printf("使用止血草,HP增加60\n\n\n");
    107. cao--;
    108. if(player.health+60>player.max_health)player.health=player.max_health;
    109. else player.health+=60;
    110. }
    111. else printf("没有止血草了\n\n\n");
    112. break;
    113. case 2:
    114. if(jijiubao>0)
    115. {
    116. printf("使用急救包,HP增加80\n\n\n");
    117. jijiubao--;
    118. if(player.health+80>player.max_health)player.health=player.max_health;
    119. else player.health+=80;
    120. }
    121. else printf("没有急救包了\n\n\n");
    122. break;
    123. case 3:
    124. if(baiyao>0)
    125. {
    126. printf("使用云南白药,HP增加120\nz\n\n");
    127. baiyao--;
    128. if(player.health+120>player.max_health)player.health=player.max_health;
    129. else player.health+=120;
    130. }
    131. else printf("没有云南白药了\n\n\n");
    132. break;
    133. case 4:
    134. if(superbaiyao>0)
    135. {
    136. printf("使用超级云南白药,HP增加200\n\n\n");
    137. superbaiyao--;
    138. if(player.health+200>player.max_health)player.health=player.max_health;
    139. else player.health+=200;
    140. }
    141. else printf("没有超级云南白药了\n\n\n");
    142. break;
    143. case 5:
    144. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    145. {
    146. if(boom>0)
    147. {
    148. printf("使用手雷,敌人HP减少100\n\n\n");
    149. boom--;
    150. guai.health-=100;
    151. AttackResult();
    152. }
    153. }
    154. else printf("非战斗状态,不能使用手雷!\n\n\n");
    155. break;
    156. case 6:
    157. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    158. {
    159. if(dubiao>0)
    160. {
    161. printf("使用毒标,敌人HP减少200\n\n\n");
    162. dubiao--;
    163. guai.health-=200;
    164. AttackResult();
    165. }
    166. }
    167. else printf("非战斗状态,不能使用毒标!\n\n\n");
    168. break;
    169. case 7:
    170. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    171. {
    172. if(atom_boom>0)
    173. {
    174. printf("使用手抛式原子弹,敌人HP减少1000\n\n\n");
    175. atom_boom--;
    176. guai.health-=1000;
    177. AttackResult();
    178. }
    179. }
    180. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");
    181. break;
    182. case 8:
    183. if(jingyancao>0 && player.level<100)
    184. {
    185. printf("使用经验草,等级增加3级\n\n\n");
    186. jingyancao--;
    187. player.max_health=player.max_health+60;
    188. player.attack+=9;
    189. player.defense+=6;
    190. player.level+=3;
    191. player.health=player.max_health;
    192. printf("等级:%d\n",player.level);
    193. }
    194. else if(jingyancao<1)
    195. {
    196. printf("没有经验草了\n\n\n");
    197. }
    198. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    199. break;
    200. case 9:
    201. if(jingyanbao>0 && player.level<1000)
    202. {
    203. if(player.level>97&&player.level<1000)
    204. {
    205. int sheng;
    206. sheng=100-player.level;
    207. player.level+=sheng;
    208. jingyanbao--;
    209. player.max_health=player.max_health+sheng*20;
    210. player.attack+=sheng*3;
    211. player.defense+=sheng*2;
    212. player.health=player.max_health;
    213. printf("使用经验包,等级增加%d级",sheng);
    214. printf("等级:%d\n",player.level);
    215. }
    216. else
    217. {
    218. printf("使用经验包,等级增加5级\n\n\n");
    219. jingyanbao--;
    220. player.max_health=player.max_health+100;
    221. player.attack+=15;
    222. player.defense+=10;
    223. player.level+=5;
    224. player.health=player.max_health;
    225. printf("等级:%d\n",player.level);
    226. }
    227. }
    228. else if(jingyanbao<1)
    229. {
    230. printf("没有经验包了");
    231. }
    232. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    233. break;
    234. case 10:
    235. if(jingyanshi>0 && player.level<100)
    236. {
    237. if(player.level>92&&player.level<100)
    238. {
    239. int sheng;
    240. sheng=100-player.level;
    241. player.level+=sheng;
    242. player.max_health+=sheng*20;
    243. player.attack+=sheng*3;
    244. player.defense+=sheng*2;
    245. player.health=player.max_health;
    246. printf("使用经验石,等级增加%d级\n",sheng);
    247. printf("等级:%d\n",player.level);
    248. }
    249. else
    250. {
    251. printf("使用经验石,等级增加10级\n");
    252. jingyanshi--;
    253. player.max_health=player.max_health+200;
    254. player.attack+=30;
    255. player.defense+=20;
    256. player.level+=10;
    257. player.health=player.max_health;
    258. }
    259. }
    260. else if(jingyanshi<1)
    261. {
    262. printf("没有经验石了\n\n\n");
    263. }
    264. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    265. break;
    266. case 11:
    267. if(strongman_arm>0 && player.level<100)
    268. {
    269. if(player.level>82&&player.level<100)
    270. {
    271. int sheng;
    272. sheng=100-player.level;
    273. player.level+=sheng;
    274. player.max_health=player.max_health+sheng*20;
    275. player.attack+=sheng*3;
    276. player.defense+=sheng*2;
    277. player.health=player.max_health;
    278. printf("使用巨龙晶石,等级增加%d级",sheng);
    279. printf("等级:%d\n",player.level);
    280. }
    281. else
    282. {
    283. printf("使用巨龙晶石,等级增加20级\n\n\n");
    284. strongman_arm--;
    285. player.max_health=player.max_health+400;
    286. player.attack+=60;
    287. player.defense+=40;
    288. player.health+=999999;
    289. player.level+=20;
    290. printf("等级:%d\n",player.level);
    291. }
    292. }
    293. else if(strongman_arm<1)
    294. {
    295. printf("没有巨龙晶石了。\n\n\n");
    296. }
    297. else printf("等级超过100级,修为太高,无法使用。\n\n\n");
    298. break;
    299. case 12:
    300. if(miansi>0)
    301. {
    302. printf("使用免死金牌,HP满\n\n\n");
    303. miansi--;
    304. if(player.health+999999>player.max_health)player.health=player.max_health;
    305. else player.health+=999999;
    306. }else printf("没有免死金牌了\n\n\n"); break;
    307. case 0:
    308. break;
    309. default:
    310. printf("ChooseWupin error!\n\n\n");
    311. }
    312. }
    313. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    314. {
    315. if(guai.health<=0)
    316. {
    317. battle=0;
    318. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
    319. player.exp+=guai.exp;
    320. player.range_exp+=guai.exp;
    321. money+=guai.money;
    322. s=SuiJi();
    323. if(s
    324. {
    325. printf("从敌人尸骸中发现");
    326. printf("%s\n\n\n",guai.wupin);
    327. AddWupin(guai.wupin_sign);
    328. }
    329. WhetherLevelUp();
    330. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    331. {
    332. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");
    333. }
    334. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    335. }
    336. else
    337. {
    338. int s=SuiJi();
    339. if((guai.attack+s-player.defense/3)<0)
    340. {
    341. player.health-=1;
    342. printf("%s反击,你的HP减少了 1\n\n",guai.name);
    343. }
    344. else
    345. {
    346. player.health-=guai.attack+s-player.defense/3;
    347. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);
    348. }
    349. if(player.health<0)
    350. {
    351. battle=0;
    352. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);
    353. money-=player.level*500;
    354. player.health=player.max_health/5;
    355. OrdinaryAct();//
    356. return 1;
    357. }
    358. }
    359. return 0;
    360. }
    361. void AddWupin(int wupin_sign)
    362. {
    363. switch(wupin_sign)
    364. {
    365. case 1:
    366. fang4n++;
    367. break;
    368. case 2:
    369. fang3n++;
    370. break;
    371. case 3:
    372. fang2n++;
    373. break;
    374. case 4:
    375. strongman_arm++;
    376. break;
    377. case 5:
    378. gong4n++;
    379. break;
    380. case 6:
    381. gong3n++;
    382. break;
    383. case 7:
    384. gong2n++;
    385. break;
    386. case 8:
    387. gong5n++;
    388. break;
    389. case 9:
    390. fang5n++;
    391. break;
    392. default:
    393. printf("AddWupin error\n\n\n");
    394. }
    395. }
    396. void WhetherLevelUp()
    397. {
    398. int i=0,j=0;
    399. int l1=player.range_exp/100;
    400. int l2=player.range_exp/300;
    401. int l3=player.range_exp/600;
    402. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    403. {
    404. if(l1==1)
    405. {
    406. printf("%s",player.name);
    407. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    408. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    409. player.attack+=3;
    410. player.defense+=2;
    411. player.max_health+=20;
    412. player.health=player.max_health;
    413. player.level++;
    414. player.range_exp=0;
    415. player.exp=player.max_exp;
    416. player.max_exp+=100;
    417. }
    418. else
    419. {
    420. printf("好厉害!连升%d级!",l1);
    421. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
    422. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    423. player.attack+=3*l1;
    424. player.defense+=2*l1;
    425. player.max_health+=20*l1;
    426. player.health=player.max_health;
    427. player.level+=l1;
    428. player.range_exp=0;
    429. player.exp=player.max_exp;
    430. player.max_exp+=100*l1;
    431. }
    432. }
    433. else if(player.level<=40&&l2>0)
    434. {
    435. if(l2==1)
    436. {
    437. printf("%s",player.name);
    438. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    439. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    440. player.attack+=3;
    441. player.defense+=2;
    442. player.max_health+=20;
    443. player.health=player.max_health;
    444. player.level++;
    445. player.range_exp=0;
    446. player.exp=player.max_exp;
    447. player.max_exp+=300;
    448. }
    449. else
    450. {
    451. printf("好厉害!连升%d级!",l1);
    452. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
    453. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    454. player.attack+=3*l2;
    455. player.defense+=2*l2;
    456. player.max_health+=20*l2;
    457. player.health=player.max_health;
    458. player.level+=l2;
    459. player.range_exp=0;
    460. player.exp=player.max_exp;
    461. player.max_exp+=300*l2;
    462. }
    463. }
    464. else if(l3>0)
    465. {
    466. if(l3==1)
    467. {
    468. printf("%s",player.name);
    469. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    470. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    471. player.attack+=3;
    472. player.defense+=2;
    473. player.max_health+=20;
    474. player.health=player.max_health;
    475. player.level++;
    476. player.range_exp=0;
    477. player.exp=player.max_exp;
    478. player.max_exp+=600;
    479. }
    480. else
    481. {
    482. printf("好厉害!连升%d级!",l1);
    483. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
    484. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    485. player.attack+=3*l3;
    486. player.defense+=2*l3;
    487. player.max_health+=20*l3;
    488. player.health=player.max_health;
    489. player.level+=l3;
    490. player.range_exp=0;
    491. player.exp=player.max_exp;
    492. player.max_exp+=600*l3;
    493. }
    494. }
    495. }
    496. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    497. {
    498. while(1)
    499. {
    500. // \(1000);
    501. // system("cls");
    502. puts("=============================================================================");
    503. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");
    504. puts("=============================================================================");
    505. switch(scanf("%d",&choose_number),choose_number)
    506. {
    507. case 1: //显示移动菜单
    508. printf("要去哪里?\n\n\n");
    509. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");
    510. switch(scanf("%d",&choose_number),choose_number)
    511. {
    512. case 1:
    513. place_sign=place.bar; //记录目前位置-酒吧
    514. // OrdinaryAct();
    515. break;
    516. case 2:
    517. place_sign=place.hotel; //进入旅店
    518. printf("金币:%d",money);
    519. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");
    520. choose_number=1;
    521. switch(scanf("%d",&choose_number),choose_number)
    522. {
    523. case 1:
    524. if(money-200<=0) //判断钱是否够
    525. {
    526. printf("Sorry,你的钱不够~\n\n\n");
    527. printf("金币:%d",money);
    528. }
    529. else
    530. {
    531. printf("好好休息\nHP满\n第二天了\n\n");
    532. printf("金币:%d\n",money);
    533. money-=200; //花费200住店费
    534. player.health=player.max_health; //体力满
    535. }
    536. break;
    537. case 0:
    538. printf("下次再来!\n\n\n");
    539. break;
    540. default:
    541. printf("hotel talk error!\n\n\n");
    542. }
    543. place_sign=0;
    544. break;
    545. case 3:
    546. int yongju,gong,fang;
    547. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");
    548. scanf("%d",&yongju);
    549. switch(yongju)
    550. {
    551. case 1:
    552. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");
    553. scanf("%d",&gong);
    554. switch(gong)
    555. {
    556. case 1:
    557. if(money>=300)
    558. {
    559. gong1n++;
    560. money=money-300;
    561. printf ("匕首+1\n");
    562. printf("匕首:%d个\n",gong1n);
    563. printf("金币:%d\n",money);
    564. break;
    565. }
    566. else
    567. {
    568. printf("钱不够!\n");
    569. printf("金币:%d\n",money);
    570. break;
    571. }
    572. case 2:
    573. if(money>=500)
    574. {
    575. gong2n++;
    576. money=money-500;
    577. printf ("西洋剑+1\n");
    578. printf("西洋剑:%d个\n",gong2n);
    579. printf("金币:%d\n",money);
    580. break;
    581. }
    582. else
    583. {
    584. printf("钱不够!\n");
    585. printf("金币:%d\n",money);
    586. break;
    587. }
    588. case 3:
    589. if(money>=1000)
    590. {
    591. gong3n++;
    592. money=money-1000;
    593. printf ("碧血战锤+1\n");
    594. printf("碧血战锤:%d个\n",gong3n);
    595. printf("金币:%d\n",money);
    596. break;
    597. }
    598. else
    599. {
    600. printf("钱不够!\n");
    601. printf("金币:%d\n",money);
    602. break;
    603. }
    604. default:
    605. printf("对不起,我们只会打造以上武器。");
    606. break;
    607. }
    608. break;
    609. case 2:
    610. int fang;
    611. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");
    612. scanf("%d",&fang);
    613. switch(fang)
    614. {
    615. case 1:
    616. if(money>=300)
    617. {
    618. fang1n++;
    619. money=money-300;
    620. printf ("布衣+1\n");
    621. printf("布衣:%d个\n",fang1n);
    622. printf("金币:%d\n",money);
    623. }
    624. else
    625. {
    626. printf("钱不够!\n");
    627. printf("金币:%d\n",money);
    628. }
    629. break;
    630. case 2:
    631. if(money>=500)
    632. {
    633. fang2n++;
    634. money=money-500;
    635. printf ("铁甲+1\n");
    636. printf("铁甲:%d个\n",fang2n);
    637. printf("金币:%d\n",money);
    638. }
    639. else
    640. {
    641. printf("钱不够!\n");
    642. printf("金币:%d",money);
    643. }
    644. break;
    645. case 3:
    646. if(money>=1000)
    647. {
    648. fang3n++;
    649. money=money-1000;
    650. printf ("重甲+1\n");
    651. printf("重甲:%d个\n",fang3n);
    652. printf("金币:%d\n",money);
    653. }
    654. else
    655. {
    656. printf("钱不够!\n");
    657. printf("金币:%d\n",money);
    658. }
    659. default:
    660. printf("对不起,我们只会打造以上防具。");
    661. break;
    662. }
    663. printf("金币:%d\n",money);
    664. break;
    665. case 3:
    666. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");
    667. int yi;
    668. scanf("%d",&yi);
    669. switch(yi)
    670. {
    671. case 1:
    672. if(money>=300 && boom<5)
    673. {
    674. boom++;
    675. money=money-300;
    676. printf("手雷+1\n");
    677. printf("手雷:%d\n",boom);
    678. printf("金币:%d\n",money);
    679. }
    680. else
    681. {
    682. printf("钱不够!\n");
    683. printf("金币:%d",money);
    684. }
    685. break;
    686. case 2:
    687. if(money>=600 && dubiao<9999999)
    688. {
    689. dubiao++;
    690. money=money-600;
    691. printf("毒镖+1\n");
    692. printf("毒镖:%d\n",dubiao);
    693. printf("金币:%d\n",money);
    694. }
    695. else
    696. {
    697. printf("钱不够!\n");
    698. printf("金币:%d\n",money);
    699. }
    700. break;
    701. case 3:
    702. if(money>=1000 && atom_boom<=5)
    703. {
    704. atom_boom=atom_boom+1;
    705. money=money-1000;
    706. printf("手抛式原子弹+1\n");
    707. printf("手抛式原子弹:%d\n",atom_boom);
    708. printf("金币:%d\n",money);
    709. }
    710. else
    711. {
    712. printf("钱不够!\n\n\n");
    713. printf("金币:%d\n",money);
    714. }
    715. break;
    716. }
    717. }
    718. break;
    719. case 4:
    720. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");
    721. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n",gong1n,gong2n,gong3n,gong4n,gong5n);
    722. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10,万龙甲:%d个\n11,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n,strongman_arm);
    723. int pai,shu,i;
    724. scanf("%d",&pai);
    725. switch(pai)
    726. {
    727. case 1:
    728. printf("请问您要出售几件?");
    729. scanf("%d",&shu);
    730. if(gong1n>=shu)
    731. {
    732. gong1n=gong1n-shu;
    733. money=money+shu*240;
    734. printf("匕首:%d\n",gong1n);
    735. printf("金币:%d\n",money);
    736. break;
    737. }
    738. else
    739. {
    740. printf("装备数不够,无法出售!\n");
    741. break;
    742. }
    743. break;
    744. case 2:
    745. printf("请问您要出售几件?\n");
    746. scanf("%d",&shu);
    747. if(gong2n>=shu)
    748. {
    749. gong2n=gong2n-shu;
    750. money=money+shu*400;
    751. printf("西洋剑:%d\n",gong2n);
    752. printf("金币:%d\n",money);
    753. break;
    754. }
    755. else
    756. {
    757. printf("装备数不够,无法出售!\n");
    758. break;
    759. }
    760. case 3:
    761. printf("请问您要出售几件?\n");
    762. scanf("%d",&shu);
    763. if(gong3n>=shu)
    764. {
    765. gong3n=gong3n-shu;
    766. money=money+shu*800;
    767. printf("碧血战锤:%d\n",gong3n);
    768. printf("金币:%d\n",money);
    769. break;
    770. }
    771. else
    772. {
    773. printf("装备数不够,无法出售!\n");
    774. break;
    775. }
    776. case 4:
    777. printf("请问您要出售几件?\n");
    778. scanf("%d",&shu);
    779. if(gong4n>=shu)
    780. {
    781. gong4n=gong4n-shu;
    782. money=money+shu*1500;
    783. printf("尚方宝剑:%d\n",gong4n);
    784. printf("金币:%d\n",money);
    785. break;
    786. }
    787. else
    788. {
    789. printf("装备数不够,无法出售!\n");
    790. break;
    791. }
    792. case 5:
    793. printf("请问您要出售几件?\n");
    794. scanf("%d",&shu);
    795. if(gong5n>=shu)
    796. {
    797. gong5n=gong5n-shu;
    798. money=money+shu*3000;
    799. printf("皮卡大剑:%d\n",gong5n);
    800. printf("金币:%d\n",money);
    801. break;
    802. }
    803. else
    804. {
    805. printf("装备数不够,无法出售!\n");
    806. break;
    807. }
    808. case 6:
    809. printf("请问您要出售几件?\n");
    810. scanf("%d",&shu);
    811. if(fang1n>=shu)
    812. {
    813. fang1n=fang1n-shu;
    814. money=money+shu*240;
    815. printf("布衣:%d\n",fang1n);
    816. printf("金币:%d\n",money);
    817. break;
    818. }
    819. else
    820. {
    821. printf("装备数不够,无法出售!\n");
    822. break;
    823. }
    824. case 7:
    825. printf("请问您要出售几件?\n");
    826. scanf("%d",&shu);
    827. if(fang2n>=shu)
    828. {
    829. fang2n=fang2n-shu;
    830. money=money+shu*500;
    831. printf("铁甲:%d\n",fang2n);
    832. printf("金币:%d\n",money);
    833. break;
    834. }
    835. else
    836. {
    837. printf("装备数不够,无法出售!\n");
    838. break;
    839. }
    840. case 8:
    841. printf("请问您要出售几件?\n");
    842. scanf("%d",&shu);
    843. if(fang3n>=shu)
    844. {
    845. fang3n=fang3n-shu;
    846. money=money+shu*800;
    847. printf("重甲:%d\n",fang3n);
    848. printf("金币:%d\n",money);
    849. break;
    850. }
    851. else
    852. {
    853. printf("装备数不够,无法出售!\n");
    854. break;
    855. }
    856. break;
    857. case 9:
    858. printf("请问您要出售几件?\n");
    859. scanf("%d",&shu);
    860. if(fang4n>=shu)
    861. {
    862. fang4n=fang4n-shu;
    863. money=money+shu*1500;
    864. printf("传说圣甲:%d\n",fang4n);
    865. printf("金币:%d\n",money);
    866. break;
    867. }
    868. else
    869. {
    870. printf("装备数不够,无法出售!\n");
    871. break;
    872. }
    873. case 10:
    874. printf("请问您要出售几件?\n");
    875. scanf("%d",&shu);
    876. if(fang5n>=shu)
    877. {
    878. fang5n=fang5n-shu;
    879. money=money+shu*3000;
    880. printf("万龙甲:%d\n",fang5n);
    881. printf("金币:%d\n",money);
    882. break;
    883. }
    884. else
    885. {
    886. printf("装备数不够,无法出售!\n");
    887. break;
    888. }
    889. case 11:
    890. printf("请问您要出售几颗?");
    891. scanf("%d",&shu);
    892. if(strongman_arm>=shu)
    893. {
    894. strongman_arm=strongman_arm-shu;
    895. money=money+shu*4000;
    896. printf("巨龙晶石:%d\n",strongman_arm);
    897. printf("金币:%d\n",money);
    898. }
    899. else
    900. {
    901. printf("晶石数不够,无法出售!\n");
    902. break;
    903. }
    904. break;
    905. case 0:
    906. break;
    907. break;
    908. default:
    909. printf("没有该装备,无法出售!\n");
    910. break;
    911. }
    912. break;
    913. case 5:
    914. int yewai;
    915. while(1)
    916. {
    917. puts("=============================================================================");
    918. printf("要去哪冒险呢?");
    919. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,皮卡超人游乐场 危险程度★★★★★\n\n 7,花朵宫殿 危险程度:★★★★★\n\n 8,五千龙穴 危险程度:★★★★★★\n\n 0,离开\n");
    920. puts("=============================================================================");
    921. scanf("%d",&yewai);
    922. switch(yewai)
    923. {
    924. case 1:
    925. place_sign=place.forest1;
    926. s=SuiJi();
    927. if(s<7)
    928. {
    929. battle=1;
    930. guai=xiyi;
    931. printf("%s扑了过来!\n\n\n",guai.name);
    932. BattleAct();
    933. }
    934. else if(s<9)
    935. {
    936. battle=1;
    937. guai=witch;
    938. printf("%s扑了过来!\n\n\n",guai.name);
    939. BattleAct();
    940. }
    941. else
    942. {
    943. printf("这里安全\n\n\n");
    944. //不用调用OAct函数,会自动执行OAct函数;
    945. }
    946. break;
    947. case 3:
    948. place_sign=place.forest2;
    949. s=SuiJi();
    950. if(s<7)
    951. {
    952. battle=1;
    953. guai=witch;
    954. printf("%s扑了过来!\n\n\n",guai.name);
    955. BattleAct();
    956. }
    957. else if(s<9)
    958. {
    959. battle=1;
    960. guai=strongman;
    961. printf("%s扑了过来!\n\n\n",guai.name);
    962. BattleAct();
    963. }
    964. else
    965. {
    966. printf("这里安全\n\n\n");
    967. }
    968. break;
    969. case 5:
    970. place_sign=place.forest3;
    971. s=SuiJi();
    972. if(s<7)
    973. {
    974. battle=1;
    975. guai=strongman;
    976. printf("%s扑了过来!\n\n\n",guai.name);
    977. BattleAct();
    978. }
    979. else if(s<9)
    980. {
    981. battle=1;
    982. guai=big_strongman;
    983. printf("%s扑了过来!\n\n\n",guai.name);
    984. BattleAct();
    985. }
    986. else
    987. {
    988. printf("这里安全\n\n\n");
    989. }
    990. break;
    991. case 2:
    992. place_sign=place.grass1;
    993. s=SuiJi();
    994. if(s<7)
    995. {
    996. battle=1;
    997. guai=bee;
    998. printf("%s扑了过来!\n\n\n",guai.name);
    999. BattleAct();
    1000. }
    1001. else if(s<9)
    1002. {
    1003. battle=1;
    1004. guai=horse;
    1005. printf("%s扑了过来!\n\n\n",guai.name);
    1006. BattleAct();
    1007. }
    1008. else
    1009. {
    1010. printf("这里安全\n\n\n");
    1011. }
    1012. break;
    1013. case 4:
    1014. place_sign=place.grass2;
    1015. s=SuiJi();
    1016. if(s<7)
    1017. {
    1018. battle=1;
    1019. guai=horse;
    1020. printf("%s扑了过来!\n\n\n",guai.name);
    1021. BattleAct();
    1022. }
    1023. else if(s<9)
    1024. {
    1025. battle=1;
    1026. guai=lion;
    1027. printf("%s扑了过来!\n\n\n",guai.name);
    1028. BattleAct();
    1029. }
    1030. else
    1031. {
    1032. printf("这里安全\n\n\n");
    1033. }
    1034. break;
    1035. case 6:
    1036. s=SuiJi();
    1037. if(s<7)
    1038. {
    1039. battle=1;
    1040. guai=pika;
    1041. printf("%s扑了过来!\n\n\n",guai.name);
    1042. BattleAct();
    1043. }
    1044. else if(s<9)
    1045. {
    1046. battle=1;
    1047. guai=dapika;
    1048. printf("%s扑了过来!\n\n\n",guai.name);
    1049. BattleAct();
    1050. }
    1051. else
    1052. {
    1053. printf("这里安全\n\n\n");
    1054. }
    1055. break;
    1056. case 8:
    1057. s=SuiJi();
    1058. if(s<7)
    1059. {
    1060. battle=1;
    1061. guai=cl;
    1062. printf("%s扑了过来!\n\n\n",guai.name);
    1063. BattleAct();
    1064. }
    1065. else {
    1066. battle=1;
    1067. guai=jl;
    1068. printf("%s扑了过来!\n\n\n",guai.name);
    1069. BattleAct();
    1070. }
    1071. break;
    1072. case 7:
    1073. place_sign=place.grass3;
    1074. s=SuiJi();
    1075. if(s<7)
    1076. {
    1077. battle=1;
    1078. guai=lion;
    1079. printf("%s扑了过来!\n\n\n",guai.name);
    1080. BattleAct();
    1081. }
    1082. else if(s<9)
    1083. {
    1084. battle=1;
    1085. if(strongman_arm>=1)
    1086. {
    1087. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1088. guai=shitu;
    1089. printf("%s扑了过来!\n\n\n",guai.name);
    1090. BattleAct();
    1091. }
    1092. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1093. }
    1094. else
    1095. {
    1096. printf("这里安全\n\n\n");
    1097. }
    1098. break;
    1099. if(yewai!=0)
    1100. {
    1101. printf("该区域为未知区域,无法进入。\n\n\n");
    1102. break;
    1103. }
    1104. }
    1105. if(yewai==0)
    1106. {
    1107. break;
    1108. printf("已离开荒野。");
    1109. }
    1110. }
    1111. }
    1112. break;
    1113. case 2:
    1114. ChooseWupin();
    1115. break; //显示道具,并可以使用.
    1116. case 3: //对话选项
    1117. if(place_sign==place.bar)
    1118. {
    1119. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); //显示对话人物
    1120. switch(scanf("%d",&choose_number),choose_number)
    1121. {
    1122. case 1:
    1123. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
    1124. break;
    1125. case 2:
    1126. if(fang1n<1&&gong1n<1)
    1127. {
    1128. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
    1129. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1130. gong1n++;
    1131. fang1n++;
    1132. }
    1133. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");
    1134. break;
    1135. case 3:
    1136. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
    1137. choose_number=1;
    1138. while(choose_number)
    1139. {
    1140. switch(scanf("%d",&choose_number),choose_number)
    1141. {
    1142. case 1:
    1143. if(money<25)
    1144. {
    1145. printf("钱不够!");
    1146. }
    1147. else
    1148. {
    1149. if(player.health+20<=player.max_health)
    1150. {
    1151. printf("HP+20.");
    1152. money-=25;
    1153. player.health+=20;
    1154. }
    1155. else
    1156. {
    1157. printf("HP满了");
    1158. player.health=player.max_health;
    1159. }
    1160. }
    1161. break;
    1162. case 2:
    1163. if(money<80)
    1164. {
    1165. printf("钱不够!");
    1166. }
    1167. else
    1168. {
    1169. if(player.health+50<=player.max_health)
    1170. {
    1171. printf("HP+50.");
    1172. money-=80;
    1173. player.health+=50;
    1174. }
    1175. else
    1176. {
    1177. printf("HP满了");
    1178. player.health=player.max_health;
    1179. }
    1180. }
    1181. break;
    1182. case 3:
    1183. if(money<150)
    1184. {
    1185. printf("钱不够!");
    1186. }
    1187. else
    1188. {
    1189. if(player.health+100<=player.max_health)
    1190. {
    1191. printf("HP+100.");
    1192. money-=150;
    1193. player.health+=100;
    1194. }
    1195. else
    1196. {
    1197. printf("HP满了");
    1198. player.health=player.max_health;
    1199. }
    1200. }
    1201. break;
    1202. case 0:
    1203. printf("下次再来!\n");
    1204. break;
    1205. default:
    1206. printf("输入错误\n\n\n");
    1207. break;
    1208. }
    1209. break;
    1210. }
    1211. break;
    1212. case 4:
    1213. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");
    1214. int mai;
    1215. scanf("%d",&mai);
    1216. if(mai==1)
    1217. {
    1218. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");
    1219. int dongxi;
    1220. scanf("%d",&dongxi);
    1221. switch(dongxi)
    1222. {
    1223. case 1:
    1224. if(money>=100&&cao<6)
    1225. {
    1226. cao++;
    1227. money=money-100;
    1228. printf ("止血草+1\n");
    1229. }
    1230. else
    1231. {
    1232. printf("钱不够!\n");
    1233. }
    1234. break;
    1235. case 2:
    1236. if(money>=150&&jijiubao<10)
    1237. {
    1238. jijiubao++;
    1239. money=money-150;
    1240. printf ("急救包+1\n");
    1241. }
    1242. else
    1243. {
    1244. printf("钱不够!\n");
    1245. }
    1246. break;
    1247. case 3:
    1248. if(money>=250&&baiyao<10)
    1249. {
    1250. baiyao++;
    1251. money=money-250;
    1252. printf ("云南白药+1\n");
    1253. }
    1254. else
    1255. {
    1256. printf("钱不够!\n");
    1257. }
    1258. break;
    1259. case 4:
    1260. if(money>=400&&superbaiyao<10)
    1261. {
    1262. superbaiyao++;
    1263. money=money-400;
    1264. printf ("超级云南白药+1\n");
    1265. }
    1266. else
    1267. {
    1268. printf("钱不够!\n");
    1269. }
    1270. break;
    1271. case 5:
    1272. if(money>=150)
    1273. {
    1274. jingyancao++;
    1275. money=money-150;
    1276. printf ("经验草+1\n");
    1277. }
    1278. else
    1279. {
    1280. printf("钱不够!\n");
    1281. }
    1282. break;
    1283. case 6:
    1284. if(money>=300)
    1285. {
    1286. jingyanbao++;
    1287. money=money-300;
    1288. printf ("经验包+1\n");
    1289. }
    1290. else
    1291. {
    1292. printf("钱不够!\n");
    1293. }
    1294. break;
    1295. case 7:
    1296. if(money>=500)
    1297. {
    1298. jingyanshi++;
    1299. money=money-500;
    1300. printf ("经验石+1\n");
    1301. }
    1302. else
    1303. {
    1304. printf("钱不够!\n");
    1305. }
    1306. break;
    1307. }
    1308. case 0:
    1309. printf("金币:%d\n",money);
    1310. printf("再见,欢迎下次再来!\n");
    1311. break;
    1312. }
    1313. if(mai==2)
    1314. {
    1315. printf("药品商人:去去去,老子没时间陪你聊。\n");
    1316. }
    1317. }
    1318. }
    1319. else if(place_sign==place.hotel)
    1320. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1321. else printf("这里好像没人可以聊天\n\n\n");
    1322. break;
    1323. case 4:
    1324. DisplayState();
    1325. break; //显示状态
    1326. case 5: //装备
    1327. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);
    1328. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n);
    1329. printf("选择要装备的武器或防具:\n\n\n");
    1330. switch(scanf("%d",&choose_number),choose_number)
    1331. {
    1332. case 1:
    1333. if(gong1n>=1)
    1334. {
    1335. printf("拿起了匕首\n\n\n");
    1336. gong=gong1;
    1337. strcpy(gongname,"匕首");
    1338. }
    1339. else printf("你没有匕首可以装备\n\n\n");
    1340. break;
    1341. case 2:
    1342. if(gong2n>=1)
    1343. {
    1344. printf("拿起了西洋剑\n\n\n");
    1345. gong=gong2;
    1346. strcpy(gongname,"西洋剑");
    1347. }
    1348. else printf("你没有西洋剑可以装备\n\n\n");
    1349. break;
    1350. case 3:
    1351. if(gong3n>=1)
    1352. {
    1353. printf("拿起了碧血战锤\n\n\n");
    1354. gong=gong3;
    1355. strcpy(gongname,"碧血战锤");
    1356. }
    1357. else printf("你没有碧血战锤可以装备\n\n\n");
    1358. break;
    1359. case 4:
    1360. if(gong4n>=1)
    1361. {
    1362. printf("拿起了尚方宝剑\n\n\n");
    1363. gong=gong4;
    1364. strcpy(gongname,"尚方宝剑");
    1365. }
    1366. else printf("你没有尚方宝剑可以装备\n\n\n");
    1367. break;
    1368. case 5:
    1369. if(gong5n>=1)
    1370. {
    1371. printf("拿起了皮卡大剑\n\n\n");
    1372. gong=gong5;
    1373. strcpy(gongname,"皮卡大剑");
    1374. }
    1375. else printf("你没有皮卡大剑可以装备\n\n\n");
    1376. break;
    1377. case 6:
    1378. if(fang1n>=1)
    1379. {
    1380. printf("穿上了布衣\n\n\n");
    1381. fang=fang1;
    1382. strcpy(fangname,"布衣");
    1383. }
    1384. else printf("你没有布衣可以装备\n\n\n");
    1385. break;
    1386. case 7:
    1387. if(fang2>=1)
    1388. {
    1389. printf("穿上了铁甲\n\n\n");
    1390. fang=fang2;
    1391. strcpy(fangname,"铁甲");
    1392. }
    1393. else printf("你没有铁甲可以装备\n\n\n");
    1394. break;
    1395. case 8:
    1396. if(fang3n>=1)
    1397. {
    1398. printf("穿上了重甲\n\n\n");
    1399. fang=fang3;
    1400. strcpy(fangname,"重甲");
    1401. }
    1402. else printf("你没有重甲可以装备\n\n\n");
    1403. break;
    1404. case 9:
    1405. if(fang4n>=1)
    1406. {
    1407. printf("穿上了传说圣甲\n\n\n");
    1408. fang=fang4;
    1409. strcpy(fangname,"传说圣甲");
    1410. }
    1411. else printf("你没有传说圣甲可以装备\n\n\n");
    1412. break;
    1413. case 10:
    1414. if(fang5n>=1)
    1415. {
    1416. printf("穿上了万龙甲\n\n\n");
    1417. fang=fang5;
    1418. strcpy(fangname,"万龙甲");
    1419. }
    1420. else printf("你没有万龙甲可以装备\n\n\n");
    1421. break;
    1422. case 0:
    1423. printf("未更换装备\n\n\n");
    1424. break;
    1425. default:
    1426. printf("change error!");
    1427. }
    1428. break;
    1429. case 6:
    1430. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.6.1版本的bug,我们在2.6.1的基础上进行修改,已修复该buy。新增了五千龙穴地图和对应的怪物装备,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。\n");
    1431. break;
    1432. case 0:
    1433. printf("确定退出游戏?(Y/N)\n\n\n");
    1434. getchar();
    1435. proof=getchar();
    1436. if(proof=='y'||proof=='Y')
    1437. {
    1438. printf("数据存储中...");
    1439. //向文件中更新数据;
    1440. getchar();
    1441. printf("按回车退出");
    1442. getchar();
    1443. return;
    1444. }
    1445. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1446. else printf("继续!\n\n\n");
    1447. break;
    1448. default:
    1449. printf("输入错误!\n\n\n");
    1450. }
    1451. }
    1452. }
    1453. void DisplayState()
    1454. {
    1455. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1456. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1457. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1458. }
    1459. void BattleAct()
    1460. {
    1461. while(1)
    1462. {
    1463. puts("=============================================================================");
    1464. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1465. switch(scanf("%d",&choose_number),choose_number)
    1466. {
    1467. case 1:
    1468. s=SuiJi();
    1469. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1470. guai.health-=player.attack+s+gong-guai.defense/3;
    1471. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1472. else continue;
    1473. case 2:
    1474. ChooseWupin();
    1475. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1476. case 3:
    1477. DisplayState();
    1478. break; //显示状态
    1479. case 4:
    1480. s=SuiJi();
    1481. if(s<4) //40%的概率可以逃跑
    1482. {
    1483. printf("%s逃跑了~\n\n\n",player.name);
    1484. battle=0;
    1485. return;
    1486. }
    1487. else printf("%s逃跑失败!\n\n\n",player.name);
    1488. break;
    1489. default:
    1490. printf("输入错误,重新输入!\n\n\n");
    1491. }
    1492. }
    1493. }
    1494. void printf(char *p)
    1495. {
    1496. while(1)
    1497. {
    1498. if(*p!=0)
    1499. printf("%c",*p++);
    1500. else
    1501. break;
    1502. Sleep(100);
    1503. }
    1504. }

    2.7.2

    1. #include
    2. #include
    3. #include //suiji
    4. #include //SLEEP函数
    5. struct Player //玩家结构体,并初始化player
    6. {
    7. char name[21];
    8. int attack;
    9. int defense;
    10. int health;
    11. long int max_health;
    12. int level;
    13. int exp;
    14. int range_exp;
    15. long int max_exp;
    16. } player= {"勇者",50,40,100,100,1,0,0,100};
    17. struct Enemy //怪的结构体,并初始化各种怪
    18. {
    19. char name[20];
    20. char wupin[20];
    21. int attack;
    22. int defense;
    23. int health;
    24. int money;
    25. long int exp;
    26. int wupin_sign;
    27. int wupinpro;
    28. int double_attack;
    29. int miss;
    30. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
    31. witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
    32. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
    33. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    34. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
    35. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
    36. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
    37. shitu= {"幻象*凋零风暴*","\0",2000,700,20000,10000,5000,0,1,1,0},
    38. pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
    39. dapika= {"大皮卡超人","皮卡大剑",350,40*10,1500,3000,2000,8,6,6,0},
    40. cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
    41. jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
    42. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    43. struct Place
    44. {
    45. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
    46. } place= {1,2,3,4,5,6,7,8,9,10,11,12};
    47. int max_exp=0;
    48. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
    49. int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
    50. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
    51. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
    52. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    53. char gongname[20]="无",fangname[20]="无";
    54. char proof;
    55. void AddWupin(int);
    56. int AttackResult();
    57. void BattleAct();
    58. void ChooseWupin();
    59. void DisplayState();
    60. void OrdinaryAct();
    61. int SuiJi();
    62. int SuiJi100();
    63. void WhetherLevelUp();
    64. void SlowDisplay(char *);
    65. int main()
    66. {
    67. int i=0,j=0,k=0;
    68. char player_name[21];
    69. Sleep(1000);
    70. printf("-------------------.+*--欢迎来到 [苍穹世界] 2.7.2 正式版--*+.-------------------\n\n\n");
    71. //如果想使用外挂,名字请输入:“zty ”。
    72. Sleep(1000);
    73. printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!\n\n\n 伟大的勇者啊~拿起你的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");
    74. scanf("%s",player_name);
    75. strncpy(player.name,player_name,20);
    76. if(strcmp(player.name,"zty")==0)
    77. {
    78. printf("\n\n\n封印多年的郑族血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    79. player.attack=999;
    80. player.defense=999;
    81. player.health=9999;
    82. player.max_health=9999;
    83. }
    84. getchar();
    85. OrdinaryAct();
    86. return 0;
    87. }
    88. int SuiJi()
    89. {
    90. srand((unsigned)time(NULL));
    91. return rand()%10;
    92. }
    93. int SuiJi100()
    94. {
    95. srand((unsigned)time(NULL));
    96. return rand()%100;
    97. }
    98. void ChooseWupin() //选择物品 并使用
    99. {
    100. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);
    101. switch(scanf("%d",&choose_number),choose_number)
    102. {
    103. case 1:
    104. if(cao>0)
    105. {
    106. printf("使用止血草,HP增加120\n\n\n");
    107. cao--;
    108. if(player.health+120>player.max_health)player.health=player.max_health;
    109. else player.health+=120;
    110. }
    111. else printf("没有止血草了\n\n\n");
    112. break;
    113. case 2:
    114. if(jijiubao>0)
    115. {
    116. printf("使用急救包,HP增加180\n\n\n");
    117. jijiubao--;
    118. if(player.health+180>player.max_health)player.health=player.max_health;
    119. else player.health+=180;
    120. }
    121. else printf("没有急救包了\n\n\n");
    122. break;
    123. case 3:
    124. if(baiyao>0)
    125. {
    126. printf("使用云南白药,HP增加240\nz\n\n");
    127. baiyao--;
    128. if(player.health+240>player.max_health)player.health=player.max_health;
    129. else player.health+=240;
    130. }
    131. else printf("没有云南白药了\n\n\n");
    132. break;
    133. case 4:
    134. if(superbaiyao>0)
    135. {
    136. printf("使用超级云南白药,HP增加400\n\n\n");
    137. superbaiyao--;
    138. if(player.health+400>player.max_health)player.health=player.max_health;
    139. else player.health+=400;
    140. }
    141. else printf("没有超级云南白药了\n\n\n");
    142. break;
    143. case 5:
    144. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    145. {
    146. if(boom>0)
    147. {
    148. printf("使用手雷,敌人HP减少100\n\n\n");
    149. boom--;
    150. guai.health-=100;
    151. AttackResult();
    152. }
    153. }
    154. else printf("非战斗状态,不能使用手雷!\n\n\n");
    155. break;
    156. case 6:
    157. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    158. {
    159. if(dubiao>0)
    160. {
    161. printf("使用毒标,敌人HP减少200\n\n\n");
    162. dubiao--;
    163. guai.health-=200;
    164. AttackResult();
    165. }
    166. }
    167. else printf("非战斗状态,不能使用毒标!\n\n\n");
    168. break;
    169. case 7:
    170. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    171. {
    172. if(atom_boom>0)
    173. {
    174. printf("使用手抛式原子弹,敌人HP减少1500\n\n\n");
    175. atom_boom--;
    176. guai.health-=1500;
    177. AttackResult();
    178. }
    179. }
    180. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");
    181. break;
    182. case 8:
    183. if(jingyancao>0 && player.level<200)
    184. {
    185. printf("使用经验草,等级增加3级\n\n\n");
    186. jingyancao--;
    187. player.max_health=player.max_health+60;
    188. player.attack+=9;
    189. player.defense+=6;
    190. player.level+=3;
    191. player.health=player.max_health;
    192. printf("等级:%d\n",player.level);
    193. }
    194. else if(jingyancao<1)
    195. {
    196. printf("没有经验草了\n\n\n");
    197. }
    198. else printf("等级超过200级,修为太高,无法使用。\n\n\n");
    199. break;
    200. case 9:
    201. if(jingyanbao>0 && player.level<200)
    202. {
    203. if(player.level>197&&player.level<200)
    204. {
    205. int sheng;
    206. sheng=100-player.level;
    207. player.level+=sheng;
    208. jingyanbao--;
    209. player.max_health=player.max_health+sheng*20;
    210. player.attack+=sheng*3;
    211. player.defense+=sheng*2;
    212. player.health=player.max_health;
    213. printf("使用经验包,等级增加%d级",sheng);
    214. printf("等级:%d\n",player.level);
    215. }
    216. else
    217. {
    218. printf("使用经验包,等级增加5级\n\n\n");
    219. jingyanbao--;
    220. player.max_health=player.max_health+100;
    221. player.attack+=15;
    222. player.defense+=10;
    223. player.level+=5;
    224. player.health=player.max_health;
    225. printf("等级:%d\n",player.level);
    226. }
    227. }
    228. else if(jingyanbao<1)
    229. {
    230. printf("没有经验包了");
    231. }
    232. else printf("等级超过200级,修为太高,无法使用。\n\n\n");
    233. break;
    234. case 10:
    235. if(jingyanshi>0 && player.level<200)
    236. {
    237. if(player.level>192&&player.level<200)
    238. {
    239. int sheng;
    240. sheng=100-player.level;
    241. player.level+=sheng;
    242. player.max_health+=sheng*20;
    243. player.attack+=sheng*3;
    244. player.defense+=sheng*2;
    245. player.health=player.max_health;
    246. printf("使用经验石,等级增加%d级\n",sheng);
    247. printf("等级:%d\n",player.level);
    248. }
    249. else
    250. {
    251. printf("使用经验石,等级增加10级\n");
    252. jingyanshi--;
    253. player.max_health=player.max_health+200;
    254. player.attack+=30;
    255. player.defense+=20;
    256. player.level+=10;
    257. player.health=player.max_health;
    258. }
    259. }
    260. else if(jingyanshi<1)
    261. {
    262. printf("没有经验石了\n\n\n");
    263. }
    264. else printf("等级超过200级,修为太高,无法使用。\n\n\n");
    265. break;
    266. case 11:
    267. if(strongman_arm>0 && player.level<200)
    268. {
    269. if(player.level>182&&player.level<200)
    270. {
    271. int sheng;
    272. sheng=100-player.level;
    273. player.level+=sheng;
    274. player.max_health=player.max_health+sheng*20;
    275. player.attack+=sheng*3;
    276. player.defense+=sheng*2;
    277. player.health=player.max_health;
    278. printf("使用巨龙晶石,等级增加%d级",sheng);
    279. printf("等级:%d\n",player.level);
    280. }
    281. else
    282. {
    283. printf("使用巨龙晶石,等级增加20级\n\n\n");
    284. strongman_arm--;
    285. player.max_health=player.max_health+400;
    286. player.attack+=60;
    287. player.defense+=40;
    288. player.health+=999999;
    289. player.level+=20;
    290. printf("等级:%d\n",player.level);
    291. }
    292. }
    293. else if(strongman_arm<1)
    294. {
    295. printf("没有巨龙晶石了。\n\n\n");
    296. }
    297. else printf("等级超过200级,修为太高,无法使用。\n\n\n");
    298. break;
    299. case 12:
    300. if(miansi>0)
    301. {
    302. printf("使用免死金牌,HP满\n\n\n");
    303. miansi--;
    304. if(player.health+999999>player.max_health)player.health=player.max_health;
    305. else player.health+=999999;
    306. }else printf("没有免死金牌了\n\n\n"); break;
    307. case 0:
    308. break;
    309. default:
    310. printf("ChooseWupin error!\n\n\n");
    311. }
    312. }
    313. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    314. {
    315. if(guai.health<=0)
    316. {
    317. battle=0;
    318. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
    319. player.exp+=guai.exp;
    320. player.range_exp+=guai.exp;
    321. money+=guai.money;
    322. s=SuiJi();
    323. if(s
    324. {
    325. printf("从敌人尸骸中发现");
    326. printf("%s\n\n\n",guai.wupin);
    327. AddWupin(guai.wupin_sign);
    328. }
    329. WhetherLevelUp();
    330. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    331. {
    332. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");
    333. }
    334. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    335. }
    336. else
    337. {
    338. int s=SuiJi();
    339. if((guai.attack+s-player.defense/3)<0)
    340. {
    341. player.health-=1;
    342. printf("%s反击,你的HP减少了 1\n\n",guai.name);
    343. }
    344. else
    345. {
    346. player.health-=guai.attack+s-player.defense/3;
    347. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);
    348. }
    349. if(player.health<0)
    350. {
    351. battle=0;
    352. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);
    353. money-=player.level*500;
    354. player.health=player.max_health/5;
    355. OrdinaryAct();//
    356. return 1;
    357. }
    358. }
    359. return 0;
    360. }
    361. void AddWupin(int wupin_sign)
    362. {
    363. switch(wupin_sign)
    364. {
    365. case 1:
    366. fang4n++;
    367. break;
    368. case 2:
    369. fang3n++;
    370. break;
    371. case 3:
    372. fang2n++;
    373. break;
    374. case 4:
    375. strongman_arm++;
    376. break;
    377. case 5:
    378. gong4n++;
    379. break;
    380. case 6:
    381. gong3n++;
    382. break;
    383. case 7:
    384. gong2n++;
    385. break;
    386. case 8:
    387. gong5n++;
    388. break;
    389. case 9:
    390. fang5n++;
    391. break;
    392. default:
    393. printf("AddWupin error\n\n\n");
    394. }
    395. }
    396. void WhetherLevelUp()
    397. {
    398. int i=0,j=0;
    399. int l1=player.range_exp/100;
    400. int l2=player.range_exp/300;
    401. int l3=player.range_exp/600;
    402. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    403. {
    404. if(l1==1)
    405. {
    406. printf("%s",player.name);
    407. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    408. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    409. player.attack+=3;
    410. player.defense+=2;
    411. player.max_health+=20;
    412. player.health=player.max_health;
    413. player.level++;
    414. player.range_exp=0;
    415. player.exp=player.max_exp;
    416. player.max_exp+=100;
    417. }
    418. else
    419. {
    420. printf("好厉害!连升%d级!",l1);
    421. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
    422. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    423. player.attack+=3*l1;
    424. player.defense+=2*l1;
    425. player.max_health+=20*l1;
    426. player.health=player.max_health;
    427. player.level+=l1;
    428. player.range_exp=0;
    429. player.exp=player.max_exp;
    430. player.max_exp+=100*l1;
    431. }
    432. }
    433. else if(player.level<=40&&l2>0)
    434. {
    435. if(l2==1)
    436. {
    437. printf("%s",player.name);
    438. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    439. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    440. player.attack+=3;
    441. player.defense+=2;
    442. player.max_health+=20;
    443. player.health=player.max_health;
    444. player.level++;
    445. player.range_exp=0;
    446. player.exp=player.max_exp;
    447. player.max_exp+=300;
    448. }
    449. else
    450. {
    451. printf("好厉害!连升%d级!",l1);
    452. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
    453. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    454. player.attack+=3*l2;
    455. player.defense+=2*l2;
    456. player.max_health+=20*l2;
    457. player.health=player.max_health;
    458. player.level+=l2;
    459. player.range_exp=0;
    460. player.exp=player.max_exp;
    461. player.max_exp+=300*l2;
    462. }
    463. }
    464. else if(l3>0)
    465. {
    466. if(l3==1)
    467. {
    468. printf("%s",player.name);
    469. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
    470. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    471. player.attack+=3;
    472. player.defense+=2;
    473. player.max_health+=20;
    474. player.health=player.max_health;
    475. player.level++;
    476. player.range_exp=0;
    477. player.exp=player.max_exp;
    478. player.max_exp+=600;
    479. }
    480. else
    481. {
    482. printf("好厉害!连升%d级!",l1);
    483. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
    484. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    485. player.attack+=3*l3;
    486. player.defense+=2*l3;
    487. player.max_health+=20*l3;
    488. player.health=player.max_health;
    489. player.level+=l3;
    490. player.range_exp=0;
    491. player.exp=player.max_exp;
    492. player.max_exp+=600*l3;
    493. }
    494. }
    495. }
    496. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    497. {
    498. while(1)
    499. {
    500. // \(1000);
    501. // system("cls");
    502. puts("=============================================================================");
    503. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");
    504. puts("=============================================================================");
    505. switch(scanf("%d",&choose_number),choose_number)
    506. {
    507. case 1: //显示移动菜单
    508. printf("要去哪里?\n\n\n");
    509. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");
    510. switch(scanf("%d",&choose_number),choose_number)
    511. {
    512. case 1:
    513. place_sign=place.bar; //记录目前位置-酒吧
    514. // OrdinaryAct();
    515. break;
    516. case 2:
    517. place_sign=place.hotel; //进入旅店
    518. printf("金币:%d",money);
    519. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");
    520. choose_number=1;
    521. switch(scanf("%d",&choose_number),choose_number)
    522. {
    523. case 1:
    524. if(money-200<=0) //判断钱是否够
    525. {
    526. printf("Sorry,你的钱不够~\n\n\n");
    527. printf("金币:%d",money);
    528. }
    529. else
    530. {
    531. printf("好好休息\nHP满\n第二天了\n\n");
    532. printf("金币:%d\n",money);
    533. money-=200; //花费200住店费
    534. player.health=player.max_health; //体力满
    535. }
    536. break;
    537. case 0:
    538. printf("下次再来!\n\n\n");
    539. break;
    540. default:
    541. printf("hotel talk error!\n\n\n");
    542. }
    543. place_sign=0;
    544. break;
    545. case 3:
    546. int yongju,gong,fang;
    547. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");
    548. scanf("%d",&yongju);
    549. switch(yongju)
    550. {
    551. case 1:
    552. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");
    553. scanf("%d",&gong);
    554. switch(gong)
    555. {
    556. case 1:
    557. if(money>=300)
    558. {
    559. gong1n++;
    560. money=money-300;
    561. printf ("匕首+1\n");
    562. printf("匕首:%d个\n",gong1n);
    563. printf("金币:%d\n",money);
    564. break;
    565. }
    566. else
    567. {
    568. printf("钱不够!\n");
    569. printf("金币:%d\n",money);
    570. break;
    571. }
    572. case 2:
    573. if(money>=500)
    574. {
    575. gong2n++;
    576. money=money-500;
    577. printf ("西洋剑+1\n");
    578. printf("西洋剑:%d个\n",gong2n);
    579. printf("金币:%d\n",money);
    580. break;
    581. }
    582. else
    583. {
    584. printf("钱不够!\n");
    585. printf("金币:%d\n",money);
    586. break;
    587. }
    588. case 3:
    589. if(money>=1000)
    590. {
    591. gong3n++;
    592. money=money-1000;
    593. printf ("碧血战锤+1\n");
    594. printf("碧血战锤:%d个\n",gong3n);
    595. printf("金币:%d\n",money);
    596. break;
    597. }
    598. else
    599. {
    600. printf("钱不够!\n");
    601. printf("金币:%d\n",money);
    602. break;
    603. }
    604. default:
    605. printf("对不起,我们只会打造以上武器。");
    606. break;
    607. }
    608. break;
    609. case 2:
    610. int fang;
    611. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");
    612. scanf("%d",&fang);
    613. switch(fang)
    614. {
    615. case 1:
    616. if(money>=300)
    617. {
    618. fang1n++;
    619. money=money-300;
    620. printf ("布衣+1\n");
    621. printf("布衣:%d个\n",fang1n);
    622. printf("金币:%d\n",money);
    623. }
    624. else
    625. {
    626. printf("钱不够!\n");
    627. printf("金币:%d\n",money);
    628. }
    629. break;
    630. case 2:
    631. if(money>=500)
    632. {
    633. fang2n++;
    634. money=money-500;
    635. printf ("铁甲+1\n");
    636. printf("铁甲:%d个\n",fang2n);
    637. printf("金币:%d\n",money);
    638. }
    639. else
    640. {
    641. printf("钱不够!\n");
    642. printf("金币:%d",money);
    643. }
    644. break;
    645. case 3:
    646. if(money>=1000)
    647. {
    648. fang3n++;
    649. money=money-1000;
    650. printf ("重甲+1\n");
    651. printf("重甲:%d个\n",fang3n);
    652. printf("金币:%d\n",money);
    653. }
    654. else
    655. {
    656. printf("钱不够!\n");
    657. printf("金币:%d\n",money);
    658. }
    659. default:
    660. printf("对不起,我们只会打造以上防具。");
    661. break;
    662. }
    663. printf("金币:%d\n",money);
    664. break;
    665. case 3:
    666. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");
    667. int yi;
    668. scanf("%d",&yi);
    669. switch(yi)
    670. {
    671. case 1:
    672. if(money>=300 && boom<5)
    673. {
    674. boom++;
    675. money=money-300;
    676. printf("手雷+1\n");
    677. printf("手雷:%d\n",boom);
    678. printf("金币:%d\n",money);
    679. }
    680. else
    681. {
    682. printf("钱不够!\n");
    683. printf("金币:%d",money);
    684. }
    685. break;
    686. case 2:
    687. if(money>=600 && dubiao<9999999)
    688. {
    689. dubiao++;
    690. money=money-600;
    691. printf("毒镖+1\n");
    692. printf("毒镖:%d\n",dubiao);
    693. printf("金币:%d\n",money);
    694. }
    695. else
    696. {
    697. printf("钱不够!\n");
    698. printf("金币:%d\n",money);
    699. }
    700. break;
    701. case 3:
    702. if(money>=1000 && atom_boom<5)
    703. {
    704. atom_boom=atom_boom+1;
    705. money=money-1000;
    706. printf("手抛式原子弹+1\n");
    707. printf("手抛式原子弹:%d\n",atom_boom);
    708. printf("金币:%d\n",money);
    709. }
    710. else
    711. {
    712. printf("钱不够!\n\n\n");
    713. printf("金币:%d\n",money);
    714. }
    715. break;
    716. }
    717. }
    718. break;
    719. case 4:
    720. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");
    721. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n",gong1n,gong2n,gong3n,gong4n,gong5n);
    722. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10,万龙甲:%d个\n11,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n,strongman_arm);
    723. int pai,shu,i;
    724. scanf("%d",&pai);
    725. switch(pai)
    726. {
    727. case 1:
    728. printf("请问您要出售几件?");
    729. scanf("%d",&shu);
    730. if(gong1n>=shu)
    731. {
    732. gong1n=gong1n-shu;
    733. money=money+shu*240;
    734. printf("匕首:%d\n",gong1n);
    735. printf("金币:%d\n",money);
    736. break;
    737. }
    738. else
    739. {
    740. printf("装备数不够,无法出售!\n");
    741. break;
    742. }
    743. break;
    744. case 2:
    745. printf("请问您要出售几件?\n");
    746. scanf("%d",&shu);
    747. if(gong2n>=shu)
    748. {
    749. gong2n=gong2n-shu;
    750. money=money+shu*400;
    751. printf("西洋剑:%d\n",gong2n);
    752. printf("金币:%d\n",money);
    753. break;
    754. }
    755. else
    756. {
    757. printf("装备数不够,无法出售!\n");
    758. break;
    759. }
    760. case 3:
    761. printf("请问您要出售几件?\n");
    762. scanf("%d",&shu);
    763. if(gong3n>=shu)
    764. {
    765. gong3n=gong3n-shu;
    766. money=money+shu*800;
    767. printf("碧血战锤:%d\n",gong3n);
    768. printf("金币:%d\n",money);
    769. break;
    770. }
    771. else
    772. {
    773. printf("装备数不够,无法出售!\n");
    774. break;
    775. }
    776. case 4:
    777. printf("请问您要出售几件?\n");
    778. scanf("%d",&shu);
    779. if(gong4n>=shu)
    780. {
    781. gong4n=gong4n-shu;
    782. money=money+shu*1500;
    783. printf("尚方宝剑:%d\n",gong4n);
    784. printf("金币:%d\n",money);
    785. break;
    786. }
    787. else
    788. {
    789. printf("装备数不够,无法出售!\n");
    790. break;
    791. }
    792. case 5:
    793. printf("请问您要出售几件?\n");
    794. scanf("%d",&shu);
    795. if(gong5n>=shu)
    796. {
    797. gong5n=gong5n-shu;
    798. money=money+shu*3000;
    799. printf("皮卡大剑:%d\n",gong5n);
    800. printf("金币:%d\n",money);
    801. break;
    802. }
    803. else
    804. {
    805. printf("装备数不够,无法出售!\n");
    806. break;
    807. }
    808. case 6:
    809. printf("请问您要出售几件?\n");
    810. scanf("%d",&shu);
    811. if(fang1n>=shu)
    812. {
    813. fang1n=fang1n-shu;
    814. money=money+shu*240;
    815. printf("布衣:%d\n",fang1n);
    816. printf("金币:%d\n",money);
    817. break;
    818. }
    819. else
    820. {
    821. printf("装备数不够,无法出售!\n");
    822. break;
    823. }
    824. case 7:
    825. printf("请问您要出售几件?\n");
    826. scanf("%d",&shu);
    827. if(fang2n>=shu)
    828. {
    829. fang2n=fang2n-shu;
    830. money=money+shu*500;
    831. printf("铁甲:%d\n",fang2n);
    832. printf("金币:%d\n",money);
    833. break;
    834. }
    835. else
    836. {
    837. printf("装备数不够,无法出售!\n");
    838. break;
    839. }
    840. case 8:
    841. printf("请问您要出售几件?\n");
    842. scanf("%d",&shu);
    843. if(fang3n>=shu)
    844. {
    845. fang3n=fang3n-shu;
    846. money=money+shu*800;
    847. printf("重甲:%d\n",fang3n);
    848. printf("金币:%d\n",money);
    849. break;
    850. }
    851. else
    852. {
    853. printf("装备数不够,无法出售!\n");
    854. break;
    855. }
    856. break;
    857. case 9:
    858. printf("请问您要出售几件?\n");
    859. scanf("%d",&shu);
    860. if(fang4n>=shu)
    861. {
    862. fang4n=fang4n-shu;
    863. money=money+shu*1500;
    864. printf("传说圣甲:%d\n",fang4n);
    865. printf("金币:%d\n",money);
    866. break;
    867. }
    868. else
    869. {
    870. printf("装备数不够,无法出售!\n");
    871. break;
    872. }
    873. case 10:
    874. printf("请问您要出售几件?\n");
    875. scanf("%d",&shu);
    876. if(fang5n>=shu)
    877. {
    878. fang5n=fang5n-shu;
    879. money=money+shu*3000;
    880. printf("万龙甲:%d\n",fang5n);
    881. printf("金币:%d\n",money);
    882. break;
    883. }
    884. else
    885. {
    886. printf("装备数不够,无法出售!\n");
    887. break;
    888. }
    889. case 11:
    890. printf("请问您要出售几颗?");
    891. scanf("%d",&shu);
    892. if(strongman_arm>=shu)
    893. {
    894. strongman_arm=strongman_arm-shu;
    895. money=money+shu*4000;
    896. printf("巨龙晶石:%d\n",strongman_arm);
    897. printf("金币:%d\n",money);
    898. }
    899. else
    900. {
    901. printf("晶石数不够,无法出售!\n");
    902. break;
    903. }
    904. break;
    905. case 0:
    906. break;
    907. break;
    908. default:
    909. printf("没有该装备,无法出售!\n");
    910. break;
    911. }
    912. break;
    913. case 5:
    914. int yewai;
    915. while(1)
    916. {
    917. puts("=============================================================================");
    918. printf("要去哪冒险呢?");
    919. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,皮卡超人游乐场 危险程度★★★★★\n\n 7,花朵宫殿 危险程度:★★★★★\n\n 8,五千龙穴 危险程度:★★★★★★\n\n 0,离开\n");
    920. puts("=============================================================================");
    921. scanf("%d",&yewai);
    922. switch(yewai)
    923. {
    924. case 1:
    925. place_sign=place.forest1;
    926. s=SuiJi();
    927. if(s<7)
    928. {
    929. battle=1;
    930. guai=xiyi;
    931. printf("%s扑了过来!\n\n\n",guai.name);
    932. BattleAct();
    933. }
    934. else if(s<9)
    935. {
    936. battle=1;
    937. guai=witch;
    938. printf("%s扑了过来!\n\n\n",guai.name);
    939. BattleAct();
    940. }
    941. else
    942. {
    943. printf("这里安全\n\n\n");
    944. //不用调用OAct函数,会自动执行OAct函数;
    945. }
    946. break;
    947. case 3:
    948. place_sign=place.forest2;
    949. s=SuiJi();
    950. if(s<7)
    951. {
    952. battle=1;
    953. guai=witch;
    954. printf("%s扑了过来!\n\n\n",guai.name);
    955. BattleAct();
    956. }
    957. else if(s<9)
    958. {
    959. battle=1;
    960. guai=strongman;
    961. printf("%s扑了过来!\n\n\n",guai.name);
    962. BattleAct();
    963. }
    964. else
    965. {
    966. printf("这里安全\n\n\n");
    967. }
    968. break;
    969. case 5:
    970. place_sign=place.forest3;
    971. s=SuiJi();
    972. if(s<7)
    973. {
    974. battle=1;
    975. guai=strongman;
    976. printf("%s扑了过来!\n\n\n",guai.name);
    977. BattleAct();
    978. }
    979. else if(s<9)
    980. {
    981. battle=1;
    982. guai=big_strongman;
    983. printf("%s扑了过来!\n\n\n",guai.name);
    984. BattleAct();
    985. }
    986. else
    987. {
    988. printf("这里安全\n\n\n");
    989. }
    990. break;
    991. case 2:
    992. place_sign=place.grass1;
    993. s=SuiJi();
    994. if(s<7)
    995. {
    996. battle=1;
    997. guai=bee;
    998. printf("%s扑了过来!\n\n\n",guai.name);
    999. BattleAct();
    1000. }
    1001. else if(s<9)
    1002. {
    1003. battle=1;
    1004. guai=horse;
    1005. printf("%s扑了过来!\n\n\n",guai.name);
    1006. BattleAct();
    1007. }
    1008. else
    1009. {
    1010. printf("这里安全\n\n\n");
    1011. }
    1012. break;
    1013. case 4:
    1014. place_sign=place.grass2;
    1015. s=SuiJi();
    1016. if(s<7)
    1017. {
    1018. battle=1;
    1019. guai=horse;
    1020. printf("%s扑了过来!\n\n\n",guai.name);
    1021. BattleAct();
    1022. }
    1023. else if(s<9)
    1024. {
    1025. battle=1;
    1026. guai=lion;
    1027. printf("%s扑了过来!\n\n\n",guai.name);
    1028. BattleAct();
    1029. }
    1030. else
    1031. {
    1032. printf("这里安全\n\n\n");
    1033. }
    1034. break;
    1035. case 6:
    1036. s=SuiJi();
    1037. if(s<7)
    1038. {
    1039. battle=1;
    1040. guai=pika;
    1041. printf("%s扑了过来!\n\n\n",guai.name);
    1042. BattleAct();
    1043. }
    1044. else if(s<9)
    1045. {
    1046. battle=1;
    1047. guai=dapika;
    1048. printf("%s扑了过来!\n\n\n",guai.name);
    1049. BattleAct();
    1050. }
    1051. else
    1052. {
    1053. printf("这里安全\n\n\n");
    1054. }
    1055. break;
    1056. case 8:
    1057. s=SuiJi();
    1058. if(s<7)
    1059. {
    1060. battle=1;
    1061. guai=cl;
    1062. printf("%s扑了过来!\n\n\n",guai.name);
    1063. BattleAct();
    1064. }
    1065. else {
    1066. battle=1;
    1067. guai=jl;
    1068. printf("%s扑了过来!\n\n\n",guai.name);
    1069. BattleAct();
    1070. }
    1071. break;
    1072. case 7:
    1073. place_sign=place.grass3;
    1074. s=SuiJi();
    1075. if(s<7)
    1076. {
    1077. battle=1;
    1078. guai=lion;
    1079. printf("%s扑了过来!\n\n\n",guai.name);
    1080. BattleAct();
    1081. }
    1082. else if(s<9)
    1083. {
    1084. battle=1;
    1085. if(strongman_arm>=1)
    1086. {
    1087. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1088. guai=shitu;
    1089. printf("%s扑了过来!\n\n\n",guai.name);
    1090. BattleAct();
    1091. }
    1092. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1093. }
    1094. else
    1095. {
    1096. printf("这里安全\n\n\n");
    1097. }
    1098. break;
    1099. if(yewai!=0)
    1100. {
    1101. printf("该区域为未知区域,无法进入。\n\n\n");
    1102. break;
    1103. }
    1104. }
    1105. if(yewai==0)
    1106. {
    1107. break;
    1108. printf("已离开荒野。");
    1109. }
    1110. }
    1111. }
    1112. break;
    1113. case 2:
    1114. ChooseWupin();
    1115. break; //显示道具,并可以使用.
    1116. case 3: //对话选项
    1117. if(place_sign==place.bar)
    1118. {
    1119. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); //显示对话人物
    1120. switch(scanf("%d",&choose_number),choose_number)
    1121. {
    1122. case 1:
    1123. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
    1124. break;
    1125. case 2:
    1126. if(fang1n<1&&gong1n<1)
    1127. {
    1128. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
    1129. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1130. gong1n++;
    1131. fang1n++;
    1132. }
    1133. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");
    1134. break;
    1135. case 3:
    1136. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
    1137. choose_number=1;
    1138. while(choose_number)
    1139. {
    1140. switch(scanf("%d",&choose_number),choose_number)
    1141. {
    1142. case 1:
    1143. if(money<25)
    1144. {
    1145. printf("钱不够!");
    1146. }
    1147. else
    1148. {
    1149. if(player.health+20<=player.max_health)
    1150. {
    1151. printf("HP+20.");
    1152. money-=25;
    1153. player.health+=20;
    1154. }
    1155. else
    1156. {
    1157. printf("HP满了");
    1158. player.health=player.max_health;
    1159. }
    1160. }
    1161. break;
    1162. case 2:
    1163. if(money<80)
    1164. {
    1165. printf("钱不够!");
    1166. }
    1167. else
    1168. {
    1169. if(player.health+50<=player.max_health)
    1170. {
    1171. printf("HP+50.");
    1172. money-=80;
    1173. player.health+=50;
    1174. }
    1175. else
    1176. {
    1177. printf("HP满了");
    1178. player.health=player.max_health;
    1179. }
    1180. }
    1181. break;
    1182. case 3:
    1183. if(money<150)
    1184. {
    1185. printf("钱不够!");
    1186. }
    1187. else
    1188. {
    1189. if(player.health+100<=player.max_health)
    1190. {
    1191. printf("HP+100.");
    1192. money-=150;
    1193. player.health+=100;
    1194. }
    1195. else
    1196. {
    1197. printf("HP满了");
    1198. player.health=player.max_health;
    1199. }
    1200. }
    1201. break;
    1202. case 0:
    1203. printf("下次再来!\n");
    1204. break;
    1205. default:
    1206. printf("输入错误\n\n\n");
    1207. break;
    1208. }
    1209. break;
    1210. }
    1211. break;
    1212. case 4:
    1213. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");
    1214. int mai;
    1215. scanf("%d",&mai);
    1216. if(mai==1)
    1217. {
    1218. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");
    1219. int dongxi;
    1220. scanf("%d",&dongxi);
    1221. switch(dongxi)
    1222. {
    1223. case 1:
    1224. if(money>=100&&cao<6)
    1225. {
    1226. cao++;
    1227. money=money-100;
    1228. printf ("止血草+1\n");
    1229. }
    1230. else
    1231. {
    1232. printf("钱不够!\n");
    1233. }
    1234. break;
    1235. case 2:
    1236. if(money>=150&&jijiubao<10)
    1237. {
    1238. jijiubao++;
    1239. money=money-150;
    1240. printf ("急救包+1\n");
    1241. }
    1242. else
    1243. {
    1244. printf("钱不够!\n");
    1245. }
    1246. break;
    1247. case 3:
    1248. if(money>=250&&baiyao<10)
    1249. {
    1250. baiyao++;
    1251. money=money-250;
    1252. printf ("云南白药+1\n");
    1253. }
    1254. else
    1255. {
    1256. printf("钱不够!\n");
    1257. }
    1258. break;
    1259. case 4:
    1260. if(money>=400&&superbaiyao<10)
    1261. {
    1262. superbaiyao++;
    1263. money=money-400;
    1264. printf ("超级云南白药+1\n");
    1265. }
    1266. else
    1267. {
    1268. printf("钱不够!\n");
    1269. }
    1270. break;
    1271. case 5:
    1272. if(money>=150)
    1273. {
    1274. jingyancao++;
    1275. money=money-150;
    1276. printf ("经验草+1\n");
    1277. }
    1278. else
    1279. {
    1280. printf("钱不够!\n");
    1281. }
    1282. break;
    1283. case 6:
    1284. if(money>=300)
    1285. {
    1286. jingyanbao++;
    1287. money=money-300;
    1288. printf ("经验包+1\n");
    1289. }
    1290. else
    1291. {
    1292. printf("钱不够!\n");
    1293. }
    1294. break;
    1295. case 7:
    1296. if(money>=500)
    1297. {
    1298. jingyanshi++;
    1299. money=money-500;
    1300. printf ("经验石+1\n");
    1301. }
    1302. else
    1303. {
    1304. printf("钱不够!\n");
    1305. }
    1306. break;
    1307. }
    1308. case 0:
    1309. printf("金币:%d\n",money);
    1310. printf("再见,欢迎下次再来!\n");
    1311. break;
    1312. }
    1313. if(mai==2)
    1314. {
    1315. printf("药品商人:去去去,老子没时间陪你聊。\n");
    1316. }
    1317. }
    1318. }
    1319. else if(place_sign==place.hotel)
    1320. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1321. else printf("这里好像没人可以聊天\n\n\n");
    1322. break;
    1323. case 4:
    1324. DisplayState();
    1325. break; //显示状态
    1326. case 5: //装备
    1327. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);
    1328. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n);
    1329. printf("选择要装备的武器或防具:\n\n\n");
    1330. switch(scanf("%d",&choose_number),choose_number)
    1331. {
    1332. case 1:
    1333. if(gong1n>=1)
    1334. {
    1335. printf("拿起了匕首\n\n\n");
    1336. gong=gong1;
    1337. strcpy(gongname,"匕首");
    1338. }
    1339. else printf("你没有匕首可以装备\n\n\n");
    1340. break;
    1341. case 2:
    1342. if(gong2n>=1)
    1343. {
    1344. printf("拿起了西洋剑\n\n\n");
    1345. gong=gong2;
    1346. strcpy(gongname,"西洋剑");
    1347. }
    1348. else printf("你没有西洋剑可以装备\n\n\n");
    1349. break;
    1350. case 3:
    1351. if(gong3n>=1)
    1352. {
    1353. printf("拿起了碧血战锤\n\n\n");
    1354. gong=gong3;
    1355. strcpy(gongname,"碧血战锤");
    1356. }
    1357. else printf("你没有碧血战锤可以装备\n\n\n");
    1358. break;
    1359. case 4:
    1360. if(gong4n>=1)
    1361. {
    1362. printf("拿起了尚方宝剑\n\n\n");
    1363. gong=gong4;
    1364. strcpy(gongname,"尚方宝剑");
    1365. }
    1366. else printf("你没有尚方宝剑可以装备\n\n\n");
    1367. break;
    1368. case 5:
    1369. if(gong5n>=1)
    1370. {
    1371. printf("拿起了皮卡大剑\n\n\n");
    1372. gong=gong5;
    1373. strcpy(gongname,"皮卡大剑");
    1374. }
    1375. else printf("你没有皮卡大剑可以装备\n\n\n");
    1376. break;
    1377. case 6:
    1378. if(fang1n>=1)
    1379. {
    1380. printf("穿上了布衣\n\n\n");
    1381. fang=fang1;
    1382. strcpy(fangname,"布衣");
    1383. }
    1384. else printf("你没有布衣可以装备\n\n\n");
    1385. break;
    1386. case 7:
    1387. if(fang2>=1)
    1388. {
    1389. printf("穿上了铁甲\n\n\n");
    1390. fang=fang2;
    1391. strcpy(fangname,"铁甲");
    1392. }
    1393. else printf("你没有铁甲可以装备\n\n\n");
    1394. break;
    1395. case 8:
    1396. if(fang3n>=1)
    1397. {
    1398. printf("穿上了重甲\n\n\n");
    1399. fang=fang3;
    1400. strcpy(fangname,"重甲");
    1401. }
    1402. else printf("你没有重甲可以装备\n\n\n");
    1403. break;
    1404. case 9:
    1405. if(fang4n>=1)
    1406. {
    1407. printf("穿上了传说圣甲\n\n\n");
    1408. fang=fang4;
    1409. strcpy(fangname,"传说圣甲");
    1410. }
    1411. else printf("你没有传说圣甲可以装备\n\n\n");
    1412. break;
    1413. case 10:
    1414. if(fang5n>=1)
    1415. {
    1416. printf("穿上了万龙甲\n\n\n");
    1417. fang=fang5;
    1418. strcpy(fangname,"万龙甲");
    1419. }
    1420. else printf("你没有万龙甲可以装备\n\n\n");
    1421. break;
    1422. case 0:
    1423. printf("未更换装备\n\n\n");
    1424. break;
    1425. default:
    1426. printf("change error!");
    1427. }
    1428. break;
    1429. case 6:
    1430. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.7.1版本的bug我们在2.7.1的基础上进行修改,已修复该bug。希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。\n");
    1431. break;
    1432. case 0:
    1433. printf("确定退出游戏?(Y/N)\n\n\n");
    1434. getchar();
    1435. proof=getchar();
    1436. if(proof=='y'||proof=='Y')
    1437. {
    1438. printf("数据存储中...");
    1439. //向文件中更新数据;
    1440. getchar();
    1441. printf("按回车退出");
    1442. getchar();
    1443. return;
    1444. }
    1445. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1446. else printf("继续!\n\n\n");
    1447. break;
    1448. default:
    1449. printf("输入错误!\n\n\n");
    1450. }
    1451. }
    1452. }
    1453. void DisplayState()
    1454. {
    1455. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1456. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1457. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1458. }
    1459. void BattleAct()
    1460. {
    1461. while(1)
    1462. {
    1463. puts("=============================================================================");
    1464. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1465. switch(scanf("%d",&choose_number),choose_number)
    1466. {
    1467. case 1:
    1468. s=SuiJi();
    1469. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1470. guai.health-=player.attack+s+gong-guai.defense/3;
    1471. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1472. else continue;
    1473. case 2:
    1474. ChooseWupin();
    1475. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1476. case 3:
    1477. DisplayState();
    1478. break; //显示状态
    1479. case 4:
    1480. s=SuiJi();
    1481. if(s<4) //40%的概率可以逃跑
    1482. {
    1483. printf("%s逃跑了~\n\n\n",player.name);
    1484. battle=0;
    1485. return;
    1486. }
    1487. else printf("%s逃跑失败!\n\n\n",player.name);
    1488. break;
    1489. default:
    1490. printf("输入错误,重新输入!\n\n\n");
    1491. }
    1492. }
    1493. }
    1494. void printf(char *p)
    1495. {
    1496. while(1)
    1497. {
    1498. if(*p!=0)
    1499. printf("%c",*p++);
    1500. else
    1501. break;
    1502. Sleep(100);
    1503. }
    1504. }

    2.7.3

    1. #include
    2. #include
    3. #include
    4. #include //suiji
    5. #include //SLEEP函数
    6. struct Player //玩家结构体,并初始化player
    7. {
    8. char name[21];
    9. int attack;
    10. int defense;
    11. int health;
    12. long int max_health;
    13. int level;
    14. int exp;
    15. int range_exp;
    16. long int max_exp;
    17. } player= {"勇者",50,40,100,100,1,0,0,100};
    18. struct Enemy //怪的结构体,并初始化各种怪
    19. {
    20. char name[20];
    21. char wupin[20];
    22. int attack;
    23. int defense;
    24. int health;
    25. int money;
    26. long int exp;
    27. int wupin_sign;
    28. int wupinpro;
    29. int double_attack;
    30. int miss;
    31. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
    32. witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
    33. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
    34. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    35. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
    36. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
    37. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
    38. shitu= {"幻象*凋零风暴*","\0",2000,700,20000,10000,5000,0,1,1,0},
    39. pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
    40. dapika= {"大皮卡超人","皮卡大剑",350,40*10,1500,3000,2000,8,6,6,0},
    41. cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
    42. jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
    43. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    44. struct Place
    45. {
    46. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
    47. } place= {1,2,3,4,5,6,7,8,9,10,11,12};
    48. int max_exp=0;
    49. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
    50. int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
    51. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
    52. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
    53. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    54. char gongname[20]="无",fangname[20]="无";
    55. char proof;
    56. void AddWupin(int);
    57. int AttackResult();
    58. void BattleAct();
    59. void ChooseWupin();
    60. void DisplayState();
    61. void OrdinaryAct();
    62. int SuiJi();
    63. int SuiJi100();
    64. void WhetherLevelUp();
    65. void SlowDisplay(char *);
    66. int main()
    67. {
    68. int i=0,j=0,k=0;
    69. char player_name[21];
    70. Sleep(1000);
    71. printf("-------------------.+*--欢迎来到 [苍穹世界] 2.7.2 正式版--*+.-------------------\n\n\n");system("color 89");
    72. //如果想使用外挂,名字请输入:“zty ”。
    73. Sleep(1000);
    74. printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!\n\n\n 伟大的勇者啊~拿起你的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");system("color 89");
    75. scanf("%s",player_name);
    76. strncpy(player.name,player_name,20);
    77. if(strcmp(player.name,"zty")==0)
    78. {
    79. printf("\n\n\n封印多年的郑族血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    80. player.attack=999;
    81. player.defense=999;
    82. player.health=9999;
    83. player.max_health=9999;
    84. }
    85. getchar();
    86. OrdinaryAct();
    87. return 0;
    88. }
    89. int SuiJi()
    90. {
    91. srand((unsigned)time(NULL));
    92. return rand()%10;
    93. }
    94. int SuiJi100()
    95. {
    96. srand((unsigned)time(NULL));
    97. return rand()%100;
    98. }
    99. void ChooseWupin() //选择物品 并使用
    100. {
    101. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);system("color 8A");
    102. switch(scanf("%d",&choose_number),choose_number)
    103. {
    104. case 1:
    105. if(cao>0)
    106. {
    107. printf("使用止血草,HP增加120\n\n\n");system("color 8A");
    108. cao--;
    109. if(player.health+120>player.max_health)player.health=player.max_health;
    110. else player.health+=120;
    111. }
    112. else printf("没有止血草了\n\n\n");system("color 8A");
    113. break;
    114. case 2:
    115. if(jijiubao>0)
    116. {
    117. printf("使用急救包,HP增加180\n\n\n");system("color 8A");
    118. jijiubao--;
    119. if(player.health+180>player.max_health)player.health=player.max_health;
    120. else player.health+=180;
    121. }
    122. else printf("没有急救包了\n\n\n");system("color 8A");
    123. break;
    124. case 3:
    125. if(baiyao>0)
    126. {
    127. printf("使用云南白药,HP增加240\nz\n\n");system("color 8A");
    128. baiyao--;
    129. if(player.health+240>player.max_health)player.health=player.max_health;
    130. else player.health+=240;
    131. }
    132. else printf("没有云南白药了\n\n\n");system("color 8A");
    133. break;
    134. case 4:
    135. if(superbaiyao>0)
    136. {
    137. printf("使用超级云南白药,HP增加400\n\n\n");system("color 8A");
    138. superbaiyao--;
    139. if(player.health+400>player.max_health)player.health=player.max_health;
    140. else player.health+=400;
    141. }
    142. else printf("没有超级云南白药了\n\n\n");system("color 8A");
    143. break;
    144. case 5:
    145. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    146. {
    147. if(boom>0)
    148. {
    149. printf("使用手雷,敌人HP减少100\n\n\n");system("color 84");
    150. boom--;
    151. guai.health-=100;
    152. AttackResult();
    153. }
    154. }
    155. else printf("非战斗状态,不能使用手雷!\n\n\n");system("color 84");
    156. break;
    157. case 6:
    158. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    159. {
    160. if(dubiao>0)
    161. {
    162. printf("使用毒标,敌人HP减少200\n\n\n");system("color 84");
    163. dubiao--;
    164. guai.health-=200;
    165. AttackResult();
    166. }
    167. }
    168. else printf("非战斗状态,不能使用毒标!\n\n\n");system("color 84");
    169. break;
    170. case 7:
    171. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    172. {
    173. if(atom_boom>0)
    174. {
    175. printf("使用手抛式原子弹,敌人HP减少1500\n\n\n");system("color 84");
    176. atom_boom--;
    177. guai.health-=1500;
    178. AttackResult();
    179. }
    180. }
    181. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");system("color 84");
    182. break;
    183. case 8:
    184. if(jingyancao>0 && player.level<200)
    185. {
    186. printf("使用经验草,等级增加3级\n\n\n");system("color 8E");
    187. jingyancao--;
    188. player.max_health=player.max_health+60;
    189. player.attack+=9;
    190. player.defense+=6;
    191. player.level+=3;
    192. player.health=player.max_health;
    193. printf("等级:%d\n",player.level);system("color 8E");
    194. }
    195. else if(jingyancao<1)
    196. {
    197. printf("没有经验草了\n\n\n");system("color 8E");
    198. }
    199. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    200. break;
    201. case 9:
    202. if(jingyanbao>0 && player.level<200)
    203. {
    204. if(player.level>197&&player.level<200)
    205. {
    206. int sheng;
    207. sheng=100-player.level;
    208. player.level+=sheng;
    209. jingyanbao--;
    210. player.max_health=player.max_health+sheng*20;
    211. player.attack+=sheng*3;
    212. player.defense+=sheng*2;
    213. player.health=player.max_health;
    214. printf("使用经验包,等级增加%d级",sheng);system("color 8E");
    215. printf("等级:%d\n",player.level);system("color 8E");
    216. }
    217. else
    218. {
    219. printf("使用经验包,等级增加5级\n\n\n");system("color 8E");
    220. jingyanbao--;
    221. player.max_health=player.max_health+100;
    222. player.attack+=15;
    223. player.defense+=10;
    224. player.level+=5;
    225. player.health=player.max_health;
    226. printf("等级:%d\n",player.level);system("color 8E");
    227. }
    228. }
    229. else if(jingyanbao<1)
    230. {
    231. printf("没有经验包了");system("color 8E");
    232. }
    233. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    234. break;
    235. case 10:
    236. if(jingyanshi>0 && player.level<200)
    237. {
    238. if(player.level>192&&player.level<200)
    239. {
    240. int sheng;
    241. sheng=100-player.level;
    242. player.level+=sheng;
    243. player.max_health+=sheng*20;
    244. player.attack+=sheng*3;
    245. player.defense+=sheng*2;
    246. player.health=player.max_health;
    247. printf("使用经验石,等级增加%d级\n",sheng);system("color 8E");
    248. printf("等级:%d\n",player.level);system("color 8E");
    249. }
    250. else
    251. {
    252. printf("使用经验石,等级增加10级\n");system("color 8E");
    253. jingyanshi--;
    254. player.max_health=player.max_health+200;
    255. player.attack+=30;
    256. player.defense+=20;
    257. player.level+=10;
    258. player.health=player.max_health;
    259. }
    260. }
    261. else if(jingyanshi<1)
    262. {
    263. printf("没有经验石了\n\n\n");system("color 8E");
    264. }
    265. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    266. break;
    267. case 11:
    268. if(strongman_arm>0 && player.level<200)
    269. {
    270. if(player.level>182&&player.level<200)
    271. {
    272. int sheng;
    273. sheng=100-player.level;
    274. player.level+=sheng;
    275. player.max_health=player.max_health+sheng*20;
    276. player.attack+=sheng*3;
    277. player.defense+=sheng*2;
    278. player.health=player.max_health;
    279. printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
    280. printf("等级:%d\n",player.level);system("color 8E");
    281. }
    282. else
    283. {
    284. printf("使用巨龙晶石,等级增加20级\n\n\n");system("color 8E");
    285. strongman_arm--;
    286. player.max_health=player.max_health+400;
    287. player.attack+=60;
    288. player.defense+=40;
    289. player.health+=999999;
    290. player.level+=20;
    291. printf("等级:%d\n",player.level);system("color 8E");
    292. }
    293. }
    294. else if(strongman_arm<1)
    295. {
    296. printf("没有巨龙晶石了。\n\n\n");system("color 8E");
    297. }
    298. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    299. break;
    300. case 12:
    301. if(miansi>0)
    302. {
    303. printf("使用免死金牌,HP满\n\n\n");system("color 8b");
    304. miansi--;
    305. if(player.health+999999>player.max_health)player.health=player.max_health;
    306. else player.health+=999999;
    307. }else printf("没有免死金牌了\n\n\n"); system("color 8b");break;
    308. case 0:
    309. break;
    310. default:
    311. printf("ChooseWupin error!\n\n\n");
    312. }
    313. }
    314. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    315. {
    316. if(guai.health<=0)
    317. {
    318. battle=0;
    319. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);system("color 8C");
    320. player.exp+=guai.exp;
    321. player.range_exp+=guai.exp;
    322. money+=guai.money;
    323. s=SuiJi();
    324. if(s
    325. {
    326. printf("从敌人尸骸中发现");system("color 8C");
    327. printf("%s\n\n\n",guai.wupin);
    328. AddWupin(guai.wupin_sign);
    329. }
    330. WhetherLevelUp();
    331. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    332. {
    333. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");system("color 8C");
    334. }
    335. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    336. }
    337. else
    338. {
    339. int s=SuiJi();
    340. if((guai.attack+s-player.defense/3)<0)
    341. {
    342. player.health-=1;
    343. printf("%s反击,你的HP减少了 1\n\n",guai.name);system("color 8C");
    344. }
    345. else
    346. {
    347. player.health-=guai.attack+s-player.defense/3;
    348. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);system("color 8C");
    349. }
    350. if(player.health<0)
    351. {
    352. battle=0;
    353. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);system("color CC");
    354. money-=player.level*500;
    355. player.health=player.max_health/5;
    356. OrdinaryAct();//
    357. return 1;
    358. }
    359. }
    360. return 0;
    361. }
    362. void AddWupin(int wupin_sign)
    363. {
    364. switch(wupin_sign)
    365. {
    366. case 1:
    367. fang4n++;
    368. break;
    369. case 2:
    370. fang3n++;
    371. break;
    372. case 3:
    373. fang2n++;
    374. break;
    375. case 4:
    376. strongman_arm++;
    377. break;
    378. case 5:
    379. gong4n++;
    380. break;
    381. case 6:
    382. gong3n++;
    383. break;
    384. case 7:
    385. gong2n++;
    386. break;
    387. case 8:
    388. gong5n++;
    389. break;
    390. case 9:
    391. fang5n++;
    392. break;
    393. default:
    394. printf("AddWupin error\n\n\n");
    395. }
    396. }
    397. void WhetherLevelUp()
    398. {
    399. int i=0,j=0;
    400. int l1=player.range_exp/100;
    401. int l2=player.range_exp/300;
    402. int l3=player.range_exp/600;
    403. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    404. {
    405. if(l1==1)
    406. {
    407. printf("%s",player.name);
    408. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    409. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    410. player.attack+=3;
    411. player.defense+=2;
    412. player.max_health+=20;
    413. player.health=player.max_health;
    414. player.level++;
    415. player.range_exp=0;
    416. player.exp=player.max_exp;
    417. player.max_exp+=100;
    418. }
    419. else
    420. {
    421. printf("好厉害!连升%d级!",l1);system("color 8E");
    422. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);system("color 8E");
    423. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    424. player.attack+=3*l1;
    425. player.defense+=2*l1;
    426. player.max_health+=20*l1;
    427. player.health=player.max_health;
    428. player.level+=l1;
    429. player.range_exp=0;
    430. player.exp=player.max_exp;
    431. player.max_exp+=100*l1;
    432. }
    433. }
    434. else if(player.level<=40&&l2>0)
    435. {
    436. if(l2==1)
    437. {
    438. printf("%s",player.name);
    439. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    440. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    441. player.attack+=3;
    442. player.defense+=2;
    443. player.max_health+=20;
    444. player.health=player.max_health;
    445. player.level++;
    446. player.range_exp=0;
    447. player.exp=player.max_exp;
    448. player.max_exp+=300;
    449. }
    450. else
    451. {
    452. printf("好厉害!连升%d级!",l1);system("color 8E");
    453. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);system("color 8E");
    454. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    455. player.attack+=3*l2;
    456. player.defense+=2*l2;
    457. player.max_health+=20*l2;
    458. player.health=player.max_health;
    459. player.level+=l2;
    460. player.range_exp=0;
    461. player.exp=player.max_exp;
    462. player.max_exp+=300*l2;
    463. }
    464. }
    465. else if(l3>0)
    466. {
    467. if(l3==1)
    468. {
    469. printf("%s",player.name);
    470. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    471. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    472. player.attack+=3;
    473. player.defense+=2;
    474. player.max_health+=20;
    475. player.health=player.max_health;
    476. player.level++;
    477. player.range_exp=0;
    478. player.exp=player.max_exp;
    479. player.max_exp+=600;
    480. }
    481. else
    482. {
    483. printf("好厉害!连升%d级!",l1);
    484. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);system("color 8E");
    485. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    486. player.attack+=3*l3;
    487. player.defense+=2*l3;
    488. player.max_health+=20*l3;
    489. player.health=player.max_health;
    490. player.level+=l3;
    491. player.range_exp=0;
    492. player.exp=player.max_exp;
    493. player.max_exp+=600*l3;
    494. }
    495. }
    496. }
    497. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    498. {
    499. while(1)
    500. {
    501. // \(1000);
    502. // system("cls");
    503. puts("=============================================================================");system("color 89");
    504. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");system("color 89");
    505. puts("=============================================================================");system("color 89");
    506. switch(scanf("%d",&choose_number),choose_number)
    507. {
    508. case 1: //显示移动菜单
    509. printf("要去哪里?\n\n\n");system("color 89");
    510. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");system("color 89");
    511. switch(scanf("%d",&choose_number),choose_number)
    512. {
    513. case 1:
    514. place_sign=place.bar; //记录目前位置-酒吧
    515. // OrdinaryAct();
    516. break;
    517. case 2:
    518. place_sign=place.hotel; //进入旅店
    519. printf("金币:%d",money);system("color 89");
    520. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");system("color 89");
    521. choose_number=1;
    522. switch(scanf("%d",&choose_number),choose_number)
    523. {
    524. case 1:
    525. if(money-200<=0) //判断钱是否够
    526. {
    527. printf("Sorry,你的钱不够~\n\n\n");system("color 89");
    528. printf("金币:%d",money);system("color 89");
    529. }
    530. else
    531. {
    532. printf("好好休息\nHP满\n第二天了\n\n");system("color 89");
    533. printf("金币:%d\n",money);system("color 89");
    534. money-=200; //花费200住店费
    535. player.health=player.max_health; //体力满
    536. }
    537. break;
    538. case 0:
    539. printf("下次再来!\n\n\n");system("color 89");
    540. break;
    541. default:
    542. printf("hotel talk error!\n\n\n");system("color 89");
    543. }
    544. place_sign=0;
    545. break;
    546. case 3:
    547. int yongju,gong,fang;
    548. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");system("color 89");
    549. scanf("%d",&yongju);
    550. switch(yongju)
    551. {
    552. case 1:
    553. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");system("color 89");
    554. scanf("%d",&gong);
    555. switch(gong)
    556. {
    557. case 1:
    558. if(money>=300)
    559. {
    560. gong1n++;
    561. money=money-300;
    562. printf ("匕首+1\n");system("color 89");
    563. printf("匕首:%d个\n",gong1n);system("color 89");
    564. printf("金币:%d\n",money);system("color 89");
    565. break;
    566. }
    567. else
    568. {
    569. printf("钱不够!\n");system("color 89");
    570. printf("金币:%d\n",money);system("color 89");
    571. break;
    572. }
    573. case 2:
    574. if(money>=500)
    575. {
    576. gong2n++;
    577. money=money-500;
    578. printf ("西洋剑+1\n");system("color 89");
    579. printf("西洋剑:%d个\n",gong2n);system("color 89");
    580. printf("金币:%d\n",money);system("color 89");
    581. break;
    582. }
    583. else
    584. {
    585. printf("钱不够!\n");system("color 89");
    586. printf("金币:%d\n",money);system("color 89");
    587. break;
    588. }
    589. case 3:
    590. if(money>=1000)
    591. {
    592. gong3n++;
    593. money=money-1000;
    594. printf ("碧血战锤+1\n");system("color 89");
    595. printf("碧血战锤:%d个\n",gong3n);system("color 89");
    596. printf("金币:%d\n",money);system("color 89");
    597. break;
    598. }
    599. else
    600. {
    601. printf("钱不够!\n");system("color 89");
    602. printf("金币:%d\n",money);system("color 89");
    603. break;
    604. }
    605. default:
    606. printf("对不起,我们只会打造以上武器。");system("color 89");
    607. break;
    608. }
    609. break;
    610. case 2:
    611. int fang;
    612. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");system("color 89");
    613. scanf("%d",&fang);
    614. switch(fang)
    615. {
    616. case 1:
    617. if(money>=300)
    618. {
    619. fang1n++;
    620. money=money-300;
    621. printf ("布衣+1\n");system("color 89");
    622. printf("布衣:%d个\n",fang1n);system("color 89");
    623. printf("金币:%d\n",money);system("color 89");
    624. }
    625. else
    626. {
    627. printf("钱不够!\n");system("color 89");
    628. printf("金币:%d\n",money);system("color 89");
    629. }
    630. break;
    631. case 2:
    632. if(money>=500)
    633. {
    634. fang2n++;
    635. money=money-500;
    636. printf ("铁甲+1\n");system("color 89");
    637. printf("铁甲:%d个\n",fang2n);system("color 89");
    638. printf("金币:%d\n",money);system("color 89");
    639. }
    640. else
    641. {
    642. printf("钱不够!\n");system("color 89");
    643. printf("金币:%d",money);system("color 89");
    644. }
    645. break;
    646. case 3:
    647. if(money>=1000)
    648. {
    649. fang3n++;
    650. money=money-1000;
    651. printf ("重甲+1\n");system("color 89");
    652. printf("重甲:%d个\n",fang3n);system("color 89");
    653. printf("金币:%d\n",money);system("color 89");
    654. }
    655. else
    656. {
    657. printf("钱不够!\n");system("color 89");
    658. printf("金币:%d\n",money);system("color 89");
    659. }
    660. default:
    661. printf("对不起,我们只会打造以上防具。");system("color 89");
    662. break;
    663. }
    664. printf("金币:%d\n",money);system("color 89");
    665. break;
    666. case 3:
    667. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");system("color 89");
    668. int yi;
    669. scanf("%d",&yi);
    670. switch(yi)
    671. {
    672. case 1:
    673. if(money>=300 && boom<5)
    674. {
    675. boom++;
    676. money=money-300;
    677. printf("手雷+1\n");system("color 89");
    678. printf("手雷:%d\n",boom);system("color 89");
    679. printf("金币:%d\n",money);system("color 89");
    680. }
    681. else
    682. {
    683. printf("钱不够!\n");system("color 89");
    684. printf("金币:%d",money);system("color 89");
    685. }
    686. break;
    687. case 2:
    688. if(money>=600 && dubiao<9999999)
    689. {
    690. dubiao++;
    691. money=money-600;
    692. printf("毒镖+1\n");system("color 89");
    693. printf("毒镖:%d\n",dubiao);system("color 89");
    694. printf("金币:%d\n",money);system("color 89");
    695. }
    696. else
    697. {
    698. printf("钱不够!\n");system("color 89");
    699. printf("金币:%d\n",money);system("color 89");
    700. }
    701. break;
    702. case 3:
    703. if(money>=1000 && atom_boom<5)
    704. {
    705. atom_boom=atom_boom+1;
    706. money=money-1000;
    707. printf("手抛式原子弹+1\n");system("color 89");
    708. printf("手抛式原子弹:%d\n",atom_boom);system("color 89");
    709. printf("金币:%d\n",money);system("color 89");
    710. }
    711. else
    712. {
    713. printf("钱不够!\n\n\n");system("color 89");
    714. printf("金币:%d\n",money);system("color 89");
    715. }
    716. break;
    717. }
    718. }
    719. break;
    720. case 4:
    721. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");system("color 89");
    722. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
    723. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10,万龙甲:%d个\n11,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n,strongman_arm);system("color 89");
    724. int pai,shu,i;
    725. scanf("%d",&pai);system("color 89");
    726. switch(pai)
    727. {
    728. case 1:
    729. printf("请问您要出售几件?");system("color 89");
    730. scanf("%d",&shu);
    731. if(gong1n>=shu)
    732. {
    733. gong1n=gong1n-shu;
    734. money=money+shu*240;
    735. printf("匕首:%d\n",gong1n);system("color 89");
    736. printf("金币:%d\n",money);system("color 89");
    737. break;
    738. }
    739. else
    740. {
    741. printf("装备数不够,无法出售!\n");system("color 89");
    742. break;
    743. }
    744. break;
    745. case 2:
    746. printf("请问您要出售几件?\n");system("color 89");
    747. scanf("%d",&shu);
    748. if(gong2n>=shu)
    749. {
    750. gong2n=gong2n-shu;
    751. money=money+shu*400;
    752. printf("西洋剑:%d\n",gong2n);
    753. printf("金币:%d\n",money);
    754. break;
    755. }
    756. else
    757. {
    758. printf("装备数不够,无法出售!\n");
    759. break;
    760. }
    761. case 3:
    762. printf("请问您要出售几件?\n");
    763. scanf("%d",&shu);
    764. if(gong3n>=shu)
    765. {
    766. gong3n=gong3n-shu;
    767. money=money+shu*800;
    768. printf("碧血战锤:%d\n",gong3n);
    769. printf("金币:%d\n",money);
    770. break;
    771. }
    772. else
    773. {
    774. printf("装备数不够,无法出售!\n");
    775. break;
    776. }
    777. case 4:
    778. printf("请问您要出售几件?\n");
    779. scanf("%d",&shu);
    780. if(gong4n>=shu)
    781. {
    782. gong4n=gong4n-shu;
    783. money=money+shu*1500;
    784. printf("尚方宝剑:%d\n",gong4n);
    785. printf("金币:%d\n",money);
    786. break;
    787. }
    788. else
    789. {
    790. printf("装备数不够,无法出售!\n");
    791. break;
    792. }
    793. case 5:
    794. printf("请问您要出售几件?\n");
    795. scanf("%d",&shu);
    796. if(gong5n>=shu)
    797. {
    798. gong5n=gong5n-shu;
    799. money=money+shu*3000;
    800. printf("皮卡大剑:%d\n",gong5n);
    801. printf("金币:%d\n",money);
    802. break;
    803. }
    804. else
    805. {
    806. printf("装备数不够,无法出售!\n");
    807. break;
    808. }
    809. case 6:
    810. printf("请问您要出售几件?\n");
    811. scanf("%d",&shu);
    812. if(fang1n>=shu)
    813. {
    814. fang1n=fang1n-shu;
    815. money=money+shu*240;
    816. printf("布衣:%d\n",fang1n);
    817. printf("金币:%d\n",money);
    818. break;
    819. }
    820. else
    821. {
    822. printf("装备数不够,无法出售!\n");
    823. break;
    824. }
    825. case 7:
    826. printf("请问您要出售几件?\n");
    827. scanf("%d",&shu);
    828. if(fang2n>=shu)
    829. {
    830. fang2n=fang2n-shu;
    831. money=money+shu*500;
    832. printf("铁甲:%d\n",fang2n);
    833. printf("金币:%d\n",money);
    834. break;
    835. }
    836. else
    837. {
    838. printf("装备数不够,无法出售!\n");
    839. break;
    840. }
    841. case 8:
    842. printf("请问您要出售几件?\n");
    843. scanf("%d",&shu);
    844. if(fang3n>=shu)
    845. {
    846. fang3n=fang3n-shu;
    847. money=money+shu*800;
    848. printf("重甲:%d\n",fang3n);
    849. printf("金币:%d\n",money);
    850. break;
    851. }
    852. else
    853. {
    854. printf("装备数不够,无法出售!\n");
    855. break;
    856. }
    857. break;
    858. case 9:
    859. printf("请问您要出售几件?\n");
    860. scanf("%d",&shu);
    861. if(fang4n>=shu)
    862. {
    863. fang4n=fang4n-shu;
    864. money=money+shu*1500;
    865. printf("传说圣甲:%d\n",fang4n);
    866. printf("金币:%d\n",money);
    867. break;
    868. }
    869. else
    870. {
    871. printf("装备数不够,无法出售!\n");
    872. break;
    873. }
    874. case 10:
    875. printf("请问您要出售几件?\n");
    876. scanf("%d",&shu);
    877. if(fang5n>=shu)
    878. {
    879. fang5n=fang5n-shu;
    880. money=money+shu*3000;
    881. printf("万龙甲:%d\n",fang5n);
    882. printf("金币:%d\n",money);
    883. break;
    884. }
    885. else
    886. {
    887. printf("装备数不够,无法出售!\n");
    888. break;
    889. }
    890. case 11:
    891. printf("请问您要出售几颗?");
    892. scanf("%d",&shu);
    893. if(strongman_arm>=shu)
    894. {
    895. strongman_arm=strongman_arm-shu;
    896. money=money+shu*4000;
    897. printf("巨龙晶石:%d\n",strongman_arm);
    898. printf("金币:%d\n",money);
    899. }
    900. else
    901. {
    902. printf("晶石数不够,无法出售!\n");
    903. break;
    904. }
    905. break;
    906. case 0:
    907. break;
    908. break;
    909. default:
    910. printf("没有该装备,无法出售!\n");
    911. break;
    912. }
    913. break;
    914. case 5:
    915. int yewai;
    916. while(1)
    917. {
    918. puts("=============================================================================");
    919. printf("要去哪冒险呢?");
    920. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,皮卡超人游乐场 危险程度★★★★★\n\n 7,花朵宫殿 危险程度:★★★★★\n\n 8,五千龙穴 危险程度:★★★★★★\n\n 0,离开\n");system("color 8c");
    921. puts("=============================================================================");
    922. scanf("%d",&yewai);
    923. switch(yewai)
    924. {
    925. case 1:
    926. place_sign=place.forest1;
    927. s=SuiJi();
    928. if(s<7)
    929. {
    930. battle=1;
    931. guai=xiyi;
    932. printf("%s扑了过来!\n\n\n",guai.name);
    933. BattleAct();
    934. }
    935. else if(s<9)
    936. {
    937. battle=1;
    938. guai=witch;
    939. printf("%s扑了过来!\n\n\n",guai.name);
    940. BattleAct();
    941. }
    942. else
    943. {
    944. printf("这里安全\n\n\n");
    945. //不用调用OAct函数,会自动执行OAct函数;
    946. }
    947. break;
    948. case 3:
    949. place_sign=place.forest2;
    950. s=SuiJi();
    951. if(s<7)
    952. {
    953. battle=1;
    954. guai=witch;
    955. printf("%s扑了过来!\n\n\n",guai.name);
    956. BattleAct();
    957. }
    958. else if(s<9)
    959. {
    960. battle=1;
    961. guai=strongman;
    962. printf("%s扑了过来!\n\n\n",guai.name);
    963. BattleAct();
    964. }
    965. else
    966. {
    967. printf("这里安全\n\n\n");
    968. }
    969. break;
    970. case 5:
    971. place_sign=place.forest3;
    972. s=SuiJi();
    973. if(s<7)
    974. {
    975. battle=1;
    976. guai=strongman;
    977. printf("%s扑了过来!\n\n\n",guai.name);
    978. BattleAct();
    979. }
    980. else if(s<9)
    981. {
    982. battle=1;
    983. guai=big_strongman;
    984. printf("%s扑了过来!\n\n\n",guai.name);
    985. BattleAct();
    986. }
    987. else
    988. {
    989. printf("这里安全\n\n\n");
    990. }
    991. break;
    992. case 2:
    993. place_sign=place.grass1;
    994. s=SuiJi();
    995. if(s<7)
    996. {
    997. battle=1;
    998. guai=bee;
    999. printf("%s扑了过来!\n\n\n",guai.name);
    1000. BattleAct();
    1001. }
    1002. else if(s<9)
    1003. {
    1004. battle=1;
    1005. guai=horse;
    1006. printf("%s扑了过来!\n\n\n",guai.name);
    1007. BattleAct();
    1008. }
    1009. else
    1010. {
    1011. printf("这里安全\n\n\n");
    1012. }
    1013. break;
    1014. case 4:
    1015. place_sign=place.grass2;
    1016. s=SuiJi();
    1017. if(s<7)
    1018. {
    1019. battle=1;
    1020. guai=horse;
    1021. printf("%s扑了过来!\n\n\n",guai.name);
    1022. BattleAct();
    1023. }
    1024. else if(s<9)
    1025. {
    1026. battle=1;
    1027. guai=lion;
    1028. printf("%s扑了过来!\n\n\n",guai.name);
    1029. BattleAct();
    1030. }
    1031. else
    1032. {
    1033. printf("这里安全\n\n\n");
    1034. }
    1035. break;
    1036. case 6:
    1037. s=SuiJi();
    1038. if(s<7)
    1039. {
    1040. battle=1;
    1041. guai=pika;
    1042. printf("%s扑了过来!\n\n\n",guai.name);
    1043. BattleAct();
    1044. }
    1045. else if(s<9)
    1046. {
    1047. battle=1;
    1048. guai=dapika;
    1049. printf("%s扑了过来!\n\n\n",guai.name);
    1050. BattleAct();
    1051. }
    1052. else
    1053. {
    1054. printf("这里安全\n\n\n");
    1055. }
    1056. break;
    1057. case 8:
    1058. s=SuiJi();
    1059. if(s<7)
    1060. {
    1061. battle=1;
    1062. guai=cl;
    1063. printf("%s扑了过来!\n\n\n",guai.name);
    1064. BattleAct();
    1065. }
    1066. else {
    1067. battle=1;
    1068. guai=jl;
    1069. printf("%s扑了过来!\n\n\n",guai.name);
    1070. BattleAct();
    1071. }
    1072. break;
    1073. case 7:
    1074. place_sign=place.grass3;
    1075. s=SuiJi();
    1076. if(s<7)
    1077. {
    1078. battle=1;
    1079. guai=lion;
    1080. printf("%s扑了过来!\n\n\n",guai.name);
    1081. BattleAct();
    1082. }
    1083. else if(s<9)
    1084. {
    1085. battle=1;
    1086. if(strongman_arm>=1)
    1087. {
    1088. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1089. guai=shitu;
    1090. printf("%s扑了过来!\n\n\n",guai.name);
    1091. BattleAct();
    1092. }
    1093. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1094. }
    1095. else
    1096. {
    1097. printf("这里安全\n\n\n");
    1098. }
    1099. break;
    1100. if(yewai!=0)
    1101. {
    1102. printf("该区域为未知区域,无法进入。\n\n\n");system("color 89");
    1103. break;
    1104. }
    1105. }
    1106. if(yewai==0)
    1107. {
    1108. break;
    1109. printf("已离开荒野。");system("color 89");
    1110. }
    1111. }
    1112. }
    1113. break;
    1114. case 2:
    1115. ChooseWupin();
    1116. break; //显示道具,并可以使用.
    1117. case 3: //对话选项
    1118. if(place_sign==place.bar)
    1119. {
    1120. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); system("color 89");//显示对话人物
    1121. switch(scanf("%d",&choose_number),choose_number)
    1122. {
    1123. case 1:
    1124. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");system("color 89");
    1125. break;
    1126. case 2:
    1127. if(fang1n<1&&gong1n<1)
    1128. {
    1129. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");system("color 89");
    1130. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1131. gong1n++;
    1132. fang1n++;
    1133. }
    1134. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");system("color 89");
    1135. break;
    1136. case 3:
    1137. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");system("color 89");
    1138. choose_number=1;
    1139. while(choose_number)
    1140. {
    1141. switch(scanf("%d",&choose_number),choose_number)
    1142. {
    1143. case 1:
    1144. if(money<25)
    1145. {
    1146. printf("钱不够!");system("color 89");
    1147. }
    1148. else
    1149. {
    1150. if(player.health+20<=player.max_health)
    1151. {
    1152. printf("HP+20.");system("color 89");
    1153. money-=25;
    1154. player.health+=20;
    1155. }
    1156. else
    1157. {
    1158. printf("HP满了");system("color 89");
    1159. player.health=player.max_health;
    1160. }
    1161. }
    1162. break;
    1163. case 2:
    1164. if(money<80)
    1165. {
    1166. printf("钱不够!");system("color 89");
    1167. }
    1168. else
    1169. {
    1170. if(player.health+50<=player.max_health)
    1171. {
    1172. printf("HP+50.");system("color 89");
    1173. money-=80;
    1174. player.health+=50;
    1175. }
    1176. else
    1177. {
    1178. printf("HP满了");system("color 89");
    1179. player.health=player.max_health;
    1180. }
    1181. }
    1182. break;
    1183. case 3:
    1184. if(money<150)
    1185. {
    1186. printf("钱不够!");system("color 89");
    1187. }
    1188. else
    1189. {
    1190. if(player.health+100<=player.max_health)
    1191. {
    1192. printf("HP+100.");system("color 89");
    1193. money-=150;
    1194. player.health+=100;
    1195. }
    1196. else
    1197. {
    1198. printf("HP满了");system("color 89");
    1199. player.health=player.max_health;
    1200. }
    1201. }
    1202. break;
    1203. case 0:
    1204. printf("下次再来!\n");system("color 89");
    1205. break;
    1206. default:
    1207. printf("输入错误\n\n\n");system("color 89");
    1208. break;
    1209. }
    1210. break;
    1211. }
    1212. break;
    1213. case 4:
    1214. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");system("color 89");
    1215. int mai;
    1216. scanf("%d",&mai);
    1217. if(mai==1)
    1218. {
    1219. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");system("color 89");
    1220. int dongxi;
    1221. scanf("%d",&dongxi);
    1222. switch(dongxi)
    1223. {
    1224. case 1:
    1225. if(money>=100&&cao<6)
    1226. {
    1227. cao++;
    1228. money=money-100;
    1229. printf ("止血草+1\n");system("color 89");
    1230. }
    1231. else
    1232. {
    1233. printf("钱不够!\n");system("color 89");
    1234. }
    1235. break;
    1236. case 2:
    1237. if(money>=150&&jijiubao<10)
    1238. {
    1239. jijiubao++;
    1240. money=money-150;
    1241. printf ("急救包+1\n");system("color 89");
    1242. }
    1243. else
    1244. {
    1245. printf("钱不够!\n");system("color 89");
    1246. }
    1247. break;
    1248. case 3:
    1249. if(money>=250&&baiyao<10)
    1250. {
    1251. baiyao++;
    1252. money=money-250;
    1253. printf ("云南白药+1\n");system("color 89");
    1254. }
    1255. else
    1256. {
    1257. printf("钱不够!\n");system("color 89");
    1258. }
    1259. break;
    1260. case 4:
    1261. if(money>=400&&superbaiyao<10)
    1262. {
    1263. superbaiyao++;
    1264. money=money-400;
    1265. printf ("超级云南白药+1\n");system("color 89");
    1266. }
    1267. else
    1268. {
    1269. printf("钱不够!\n");system("color 89");
    1270. }
    1271. break;
    1272. case 5:
    1273. if(money>=150)
    1274. {
    1275. jingyancao++;
    1276. money=money-150;
    1277. printf ("经验草+1\n");system("color 89");
    1278. }
    1279. else
    1280. {
    1281. printf("钱不够!\n");system("color 89");
    1282. }
    1283. break;
    1284. case 6:
    1285. if(money>=300)
    1286. {
    1287. jingyanbao++;
    1288. money=money-300;
    1289. printf ("经验包+1\n");system("color 89");
    1290. }
    1291. else
    1292. {
    1293. printf("钱不够!\n");system("color 89");
    1294. }
    1295. break;
    1296. case 7:
    1297. if(money>=500)
    1298. {
    1299. jingyanshi++;
    1300. money=money-500;
    1301. printf ("经验石+1\n");system("color 89");
    1302. }
    1303. else
    1304. {
    1305. printf("钱不够!\n");system("color 89");
    1306. }
    1307. break;
    1308. }
    1309. case 0:
    1310. printf("金币:%d\n",money);system("color 89");
    1311. printf("再见,欢迎下次再来!\n");system("color 89");
    1312. break;
    1313. }
    1314. if(mai==2)
    1315. {
    1316. printf("药品商人:去去去,老子没时间陪你聊。\n");system("color 89");
    1317. }
    1318. }
    1319. }
    1320. else if(place_sign==place.hotel)
    1321. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1322. else printf("这里好像没人可以聊天\n\n\n");system("color 89");
    1323. break;
    1324. case 4:
    1325. DisplayState();
    1326. break; //显示状态
    1327. case 5: //装备
    1328. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
    1329. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n);system("color 89");
    1330. printf("选择要装备的武器或防具:\n\n\n");system("color 89");
    1331. switch(scanf("%d",&choose_number),choose_number)
    1332. {
    1333. case 1:
    1334. if(gong1n>=1)
    1335. {
    1336. printf("拿起了匕首\n\n\n");system("color 89");
    1337. gong=gong1;
    1338. strcpy(gongname,"匕首");system("color 89");
    1339. }
    1340. else printf("你没有匕首可以装备\n\n\n");system("color 89");
    1341. break;
    1342. case 2:
    1343. if(gong2n>=1)
    1344. {
    1345. printf("拿起了西洋剑\n\n\n");system("color 89");
    1346. gong=gong2;
    1347. strcpy(gongname,"西洋剑");system("color 89");
    1348. }
    1349. else printf("你没有西洋剑可以装备\n\n\n");system("color 89");
    1350. break;
    1351. case 3:
    1352. if(gong3n>=1)
    1353. {
    1354. printf("拿起了碧血战锤\n\n\n");
    1355. gong=gong3;
    1356. strcpy(gongname,"碧血战锤");
    1357. }
    1358. else printf("你没有碧血战锤可以装备\n\n\n");
    1359. break;
    1360. case 4:
    1361. if(gong4n>=1)
    1362. {
    1363. printf("拿起了尚方宝剑\n\n\n");
    1364. gong=gong4;
    1365. strcpy(gongname,"尚方宝剑");
    1366. }
    1367. else printf("你没有尚方宝剑可以装备\n\n\n");
    1368. break;
    1369. case 5:
    1370. if(gong5n>=1)
    1371. {
    1372. printf("拿起了皮卡大剑\n\n\n");
    1373. gong=gong5;
    1374. strcpy(gongname,"皮卡大剑");
    1375. }
    1376. else printf("你没有皮卡大剑可以装备\n\n\n");
    1377. break;
    1378. case 6:
    1379. if(fang1n>=1)
    1380. {
    1381. printf("穿上了布衣\n\n\n");
    1382. fang=fang1;
    1383. strcpy(fangname,"布衣");
    1384. }
    1385. else printf("你没有布衣可以装备\n\n\n");
    1386. break;
    1387. case 7:
    1388. if(fang2>=1)
    1389. {
    1390. printf("穿上了铁甲\n\n\n");
    1391. fang=fang2;
    1392. strcpy(fangname,"铁甲");
    1393. }
    1394. else printf("你没有铁甲可以装备\n\n\n");
    1395. break;
    1396. case 8:
    1397. if(fang3n>=1)
    1398. {
    1399. printf("穿上了重甲\n\n\n");
    1400. fang=fang3;
    1401. strcpy(fangname,"重甲");
    1402. }
    1403. else printf("你没有重甲可以装备\n\n\n");
    1404. break;
    1405. case 9:
    1406. if(fang4n>=1)
    1407. {
    1408. printf("穿上了传说圣甲\n\n\n");
    1409. fang=fang4;
    1410. strcpy(fangname,"传说圣甲");
    1411. }
    1412. else printf("你没有传说圣甲可以装备\n\n\n");
    1413. break;
    1414. case 10:
    1415. if(fang5n>=1)
    1416. {
    1417. printf("穿上了万龙甲\n\n\n");
    1418. fang=fang5;
    1419. strcpy(fangname,"万龙甲");
    1420. }
    1421. else printf("你没有万龙甲可以装备\n\n\n");
    1422. break;
    1423. case 0:
    1424. printf("未更换装备\n\n\n");
    1425. break;
    1426. default:
    1427. printf("change error!");
    1428. }
    1429. break;
    1430. case 6:
    1431. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。本次更新,我们在2.7.2的基础上进行修改,新增了界面颜色,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。\n");system("color 89");
    1432. break;
    1433. case 0:
    1434. printf("确定退出游戏?(Y/N)\n\n\n");system("color 89");
    1435. getchar();
    1436. proof=getchar();
    1437. if(proof=='y'||proof=='Y')
    1438. {
    1439. printf("数据存储中...");system("color 89");
    1440. //向文件中更新数据;
    1441. getchar();
    1442. printf("按回车退出");system("color 89");
    1443. getchar();
    1444. return;
    1445. }
    1446. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1447. else printf("继续!\n\n\n");
    1448. break;
    1449. default:
    1450. printf("输入错误!\n\n\n");
    1451. }
    1452. }
    1453. }
    1454. void DisplayState()
    1455. {
    1456. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1457. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1458. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1459. }
    1460. void BattleAct()
    1461. {
    1462. while(1)
    1463. {
    1464. puts("=============================================================================");
    1465. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1466. switch(scanf("%d",&choose_number),choose_number)
    1467. {
    1468. case 1:
    1469. s=SuiJi();
    1470. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1471. guai.health-=player.attack+s+gong-guai.defense/3;
    1472. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1473. else continue;
    1474. case 2:
    1475. ChooseWupin();
    1476. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1477. case 3:
    1478. DisplayState();
    1479. break; //显示状态
    1480. case 4:
    1481. s=SuiJi();
    1482. if(s<4) //40%的概率可以逃跑
    1483. {
    1484. printf("%s逃跑了~\n\n\n",player.name);
    1485. battle=0;
    1486. return;
    1487. }
    1488. else printf("%s逃跑失败!\n\n\n",player.name);
    1489. break;
    1490. default:
    1491. printf("输入错误,重新输入!\n\n\n");
    1492. }
    1493. }
    1494. }
    1495. void printf(char *p)
    1496. {
    1497. while(1)
    1498. {
    1499. if(*p!=0)
    1500. printf("%c",*p++);
    1501. else
    1502. break;
    1503. Sleep(100);
    1504. }
    1505. }

    2.7.4

    1. #include
    2. #include
    3. #include
    4. #include //suiji
    5. #include //SLEEP函数
    6. struct Player //玩家结构体,并初始化player
    7. {
    8. char name[21];
    9. int attack;
    10. int defense;
    11. int health;
    12. long int max_health;
    13. int level;
    14. int exp;
    15. int range_exp;
    16. long int max_exp;
    17. } player= {"勇者",50,40,100,100,1,0,0,100};
    18. struct Enemy //怪的结构体,并初始化各种怪
    19. {
    20. char name[20];
    21. char wupin[20];
    22. int attack;
    23. int defense;
    24. int health;
    25. int money;
    26. long int exp;
    27. int wupin_sign;
    28. int wupinpro;
    29. int double_attack;
    30. int miss;
    31. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
    32. witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
    33. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
    34. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    35. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
    36. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
    37. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
    38. shitu= {"幻象*凋零风暴*","\0",2000,700,20000,10000,5000,0,1,1,0},
    39. pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
    40. dapika= {"大皮卡超人","皮卡大剑",350,40*10,1500,3000,2000,8,6,6,0},
    41. cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
    42. jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
    43. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    44. struct Place
    45. {
    46. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
    47. } place= {1,2,3,4,5,6,7,8,9,10,11,12};
    48. int max_exp=0;
    49. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
    50. int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
    51. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
    52. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
    53. int jingyancao=0,jingyanbao=0,jingyanshi=0;
    54. char gongname[20]="无",fangname[20]="无";
    55. char proof;
    56. void AddWupin(int);
    57. int AttackResult();
    58. void BattleAct();
    59. void ChooseWupin();
    60. void DisplayState();
    61. void OrdinaryAct();
    62. int SuiJi();
    63. int SuiJi100();
    64. void WhetherLevelUp();
    65. void SlowDisplay(char *);
    66. int main()
    67. {
    68. MessageBox (NULL, "欢迎来到斗破苍穹 2.7.4 正式版 !", "游戏开始提示", MB_OK);
    69. int i=0,j=0,k=0;
    70. char player_name[21];
    71. Sleep(1000);
    72. printf("-------------------.+*--欢迎来到 [苍穹世界] 2.7.4 正式版--*+.-------------------\n\n\n");system("color 89");
    73. //如果想使用外挂,名字请输入:“zty ”。
    74. Sleep(1000);
    75. printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!\n\n\n 伟大的勇者啊~拿起你的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");system("color 89");
    76. scanf("%s",player_name);
    77. strncpy(player.name,player_name,20);
    78. if(strcmp(player.name,"zty")==0)
    79. {
    80. printf("\n\n\n封印多年的郑族血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    81. player.attack=999;
    82. player.defense=999;
    83. player.health=9999;
    84. player.max_health=9999;
    85. }
    86. getchar();
    87. OrdinaryAct();
    88. return 0;
    89. }
    90. int SuiJi()
    91. {
    92. srand((unsigned)time(NULL));
    93. return rand()%10;
    94. }
    95. int SuiJi100()
    96. {
    97. srand((unsigned)time(NULL));
    98. return rand()%100;
    99. }
    100. void ChooseWupin() //选择物品 并使用
    101. {
    102. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);system("color 8A");
    103. switch(scanf("%d",&choose_number),choose_number)
    104. {
    105. case 1:
    106. if(cao>0)
    107. {
    108. printf("使用止血草,HP增加120\n\n\n");system("color 8A");
    109. cao--;
    110. if(player.health+120>player.max_health)player.health=player.max_health;
    111. else player.health+=120;
    112. }
    113. else printf("没有止血草了\n\n\n");system("color 8A");
    114. break;
    115. case 2:
    116. if(jijiubao>0)
    117. {
    118. printf("使用急救包,HP增加180\n\n\n");system("color 8A");
    119. jijiubao--;
    120. if(player.health+180>player.max_health)player.health=player.max_health;
    121. else player.health+=180;
    122. }
    123. else printf("没有急救包了\n\n\n");system("color 8A");
    124. break;
    125. case 3:
    126. if(baiyao>0)
    127. {
    128. printf("使用云南白药,HP增加240\nz\n\n");system("color 8A");
    129. baiyao--;
    130. if(player.health+240>player.max_health)player.health=player.max_health;
    131. else player.health+=240;
    132. }
    133. else printf("没有云南白药了\n\n\n");system("color 8A");
    134. break;
    135. case 4:
    136. if(superbaiyao>0)
    137. {
    138. printf("使用超级云南白药,HP增加400\n\n\n");system("color 8A");
    139. superbaiyao--;
    140. if(player.health+400>player.max_health)player.health=player.max_health;
    141. else player.health+=400;
    142. }
    143. else printf("没有超级云南白药了\n\n\n");system("color 8A");
    144. break;
    145. case 5:
    146. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    147. {
    148. if(boom>0)
    149. {
    150. printf("使用手雷,敌人HP减少100\n\n\n");system("color 84");
    151. boom--;
    152. guai.health-=100;
    153. AttackResult();
    154. }
    155. }
    156. else printf("非战斗状态,不能使用手雷!\n\n\n");system("color 84");
    157. break;
    158. case 6:
    159. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    160. {
    161. if(dubiao>0)
    162. {
    163. printf("使用毒标,敌人HP减少200\n\n\n");system("color 84");
    164. dubiao--;
    165. guai.health-=200;
    166. AttackResult();
    167. }
    168. }
    169. else printf("非战斗状态,不能使用毒标!\n\n\n");system("color 84");
    170. break;
    171. case 7:
    172. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    173. {
    174. if(atom_boom>0)
    175. {
    176. printf("使用手抛式原子弹,敌人HP减少1500\n\n\n");system("color 84");
    177. atom_boom--;
    178. guai.health-=1500;
    179. AttackResult();
    180. }
    181. }
    182. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");system("color 84");
    183. break;
    184. case 8:
    185. if(jingyancao>0 && player.level<200)
    186. {
    187. printf("使用经验草,等级增加3级\n\n\n");system("color 8E");
    188. jingyancao--;
    189. player.max_health=player.max_health+60;
    190. player.attack+=9;
    191. player.defense+=6;
    192. player.level+=3;
    193. player.health=player.max_health;
    194. printf("等级:%d\n",player.level);system("color 8E");
    195. }
    196. else if(jingyancao<1)
    197. {
    198. printf("没有经验草了\n\n\n");system("color 8E");
    199. }
    200. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    201. break;
    202. case 9:
    203. if(jingyanbao>0 && player.level<200)
    204. {
    205. if(player.level>197&&player.level<200)
    206. {
    207. int sheng;
    208. sheng=100-player.level;
    209. player.level+=sheng;
    210. jingyanbao--;
    211. player.max_health=player.max_health+sheng*20;
    212. player.attack+=sheng*3;
    213. player.defense+=sheng*2;
    214. player.health=player.max_health;
    215. printf("使用经验包,等级增加%d级",sheng);system("color 8E");
    216. printf("等级:%d\n",player.level);system("color 8E");
    217. }
    218. else
    219. {
    220. printf("使用经验包,等级增加5级\n\n\n");system("color 8E");
    221. jingyanbao--;
    222. player.max_health=player.max_health+100;
    223. player.attack+=15;
    224. player.defense+=10;
    225. player.level+=5;
    226. player.health=player.max_health;
    227. printf("等级:%d\n",player.level);system("color 8E");
    228. }
    229. }
    230. else if(jingyanbao<1)
    231. {
    232. printf("没有经验包了");system("color 8E");
    233. }
    234. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    235. break;
    236. case 10:
    237. if(jingyanshi>0 && player.level<200)
    238. {
    239. if(player.level>192&&player.level<200)
    240. {
    241. int sheng;
    242. sheng=100-player.level;
    243. player.level+=sheng;
    244. player.max_health+=sheng*20;
    245. player.attack+=sheng*3;
    246. player.defense+=sheng*2;
    247. player.health=player.max_health;
    248. printf("使用经验石,等级增加%d级\n",sheng);system("color 8E");
    249. printf("等级:%d\n",player.level);system("color 8E");
    250. }
    251. else
    252. {
    253. printf("使用经验石,等级增加10级\n");system("color 8E");
    254. jingyanshi--;
    255. player.max_health=player.max_health+200;
    256. player.attack+=30;
    257. player.defense+=20;
    258. player.level+=10;
    259. player.health=player.max_health;
    260. }
    261. }
    262. else if(jingyanshi<1)
    263. {
    264. printf("没有经验石了\n\n\n");system("color 8E");
    265. }
    266. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    267. break;
    268. case 11:
    269. if(strongman_arm>0 && player.level<200)
    270. {
    271. if(player.level>182&&player.level<200)
    272. {
    273. int sheng;
    274. sheng=100-player.level;
    275. player.level+=sheng;
    276. player.max_health=player.max_health+sheng*20;
    277. player.attack+=sheng*3;
    278. player.defense+=sheng*2;
    279. player.health=player.max_health;
    280. printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
    281. printf("等级:%d\n",player.level);system("color 8E");
    282. }
    283. else
    284. {
    285. printf("使用巨龙晶石,等级增加20级\n\n\n");system("color 8E");
    286. strongman_arm--;
    287. player.max_health=player.max_health+400;
    288. player.attack+=60;
    289. player.defense+=40;
    290. player.health+=999999;
    291. player.level+=20;
    292. printf("等级:%d\n",player.level);system("color 8E");
    293. }
    294. }
    295. else if(strongman_arm<1)
    296. {
    297. printf("没有巨龙晶石了。\n\n\n");system("color 8E");
    298. }
    299. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    300. break;
    301. case 12:
    302. if(miansi>0)
    303. {
    304. printf("使用免死金牌,HP满\n\n\n");system("color 8b");
    305. miansi--;
    306. if(player.health+999999>player.max_health)player.health=player.max_health;
    307. else player.health+=999999;
    308. }else printf("没有免死金牌了\n\n\n"); system("color 8b");break;
    309. case 0:
    310. break;
    311. default:
    312. printf("ChooseWupin error!\n\n\n");
    313. }
    314. }
    315. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    316. {
    317. if(guai.health<=0)
    318. {
    319. battle=0;
    320. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);system("color 8C");
    321. player.exp+=guai.exp;
    322. player.range_exp+=guai.exp;
    323. money+=guai.money;
    324. s=SuiJi();
    325. if(s
    326. {
    327. printf("从敌人尸骸中发现");system("color 8C");
    328. printf("%s\n\n\n",guai.wupin);
    329. AddWupin(guai.wupin_sign);
    330. }
    331. WhetherLevelUp();
    332. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    333. {
    334. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");system("color 8C");
    335. }
    336. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    337. }
    338. else
    339. {
    340. int s=SuiJi();
    341. if((guai.attack+s-player.defense/3)<0)
    342. {
    343. player.health-=1;
    344. printf("%s反击,你的HP减少了 1\n\n",guai.name);system("color 8C");
    345. }
    346. else
    347. {
    348. player.health-=guai.attack+s-player.defense/3;
    349. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);system("color 8C");
    350. }
    351. if(player.health<0)
    352. {
    353. battle=0;
    354. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);system("color CC");
    355. money-=player.level*500;
    356. player.health=player.max_health/5;
    357. OrdinaryAct();//
    358. return 1;
    359. }
    360. }
    361. return 0;
    362. }
    363. void AddWupin(int wupin_sign)
    364. {
    365. switch(wupin_sign)
    366. {
    367. case 1:
    368. fang4n++;
    369. break;
    370. case 2:
    371. fang3n++;
    372. break;
    373. case 3:
    374. fang2n++;
    375. break;
    376. case 4:
    377. strongman_arm++;
    378. break;
    379. case 5:
    380. gong4n++;
    381. break;
    382. case 6:
    383. gong3n++;
    384. break;
    385. case 7:
    386. gong2n++;
    387. break;
    388. case 8:
    389. gong5n++;
    390. break;
    391. case 9:
    392. fang5n++;
    393. break;
    394. default:
    395. printf("AddWupin error\n\n\n");
    396. }
    397. }
    398. void WhetherLevelUp()
    399. {
    400. int i=0,j=0;
    401. int l1=player.range_exp/100;
    402. int l2=player.range_exp/300;
    403. int l3=player.range_exp/600;
    404. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    405. {
    406. if(l1==1)
    407. {
    408. printf("%s",player.name);
    409. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    410. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    411. player.attack+=3;
    412. player.defense+=2;
    413. player.max_health+=20;
    414. player.health=player.max_health;
    415. player.level++;
    416. player.range_exp=0;
    417. player.exp=player.max_exp;
    418. player.max_exp+=100;
    419. }
    420. else
    421. {
    422. printf("好厉害!连升%d级!",l1);system("color 8E");
    423. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);system("color 8E");
    424. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    425. player.attack+=3*l1;
    426. player.defense+=2*l1;
    427. player.max_health+=20*l1;
    428. player.health=player.max_health;
    429. player.level+=l1;
    430. player.range_exp=0;
    431. player.exp=player.max_exp;
    432. player.max_exp+=100*l1;
    433. }
    434. }
    435. else if(player.level<=40&&l2>0)
    436. {
    437. if(l2==1)
    438. {
    439. printf("%s",player.name);
    440. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    441. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    442. player.attack+=3;
    443. player.defense+=2;
    444. player.max_health+=20;
    445. player.health=player.max_health;
    446. player.level++;
    447. player.range_exp=0;
    448. player.exp=player.max_exp;
    449. player.max_exp+=300;
    450. }
    451. else
    452. {
    453. printf("好厉害!连升%d级!",l1);system("color 8E");
    454. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);system("color 8E");
    455. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    456. player.attack+=3*l2;
    457. player.defense+=2*l2;
    458. player.max_health+=20*l2;
    459. player.health=player.max_health;
    460. player.level+=l2;
    461. player.range_exp=0;
    462. player.exp=player.max_exp;
    463. player.max_exp+=300*l2;
    464. }
    465. }
    466. else if(l3>0)
    467. {
    468. if(l3==1)
    469. {
    470. printf("%s",player.name);
    471. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    472. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    473. player.attack+=3;
    474. player.defense+=2;
    475. player.max_health+=20;
    476. player.health=player.max_health;
    477. player.level++;
    478. player.range_exp=0;
    479. player.exp=player.max_exp;
    480. player.max_exp+=600;
    481. }
    482. else
    483. {
    484. printf("好厉害!连升%d级!",l1);
    485. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);system("color 8E");
    486. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    487. player.attack+=3*l3;
    488. player.defense+=2*l3;
    489. player.max_health+=20*l3;
    490. player.health=player.max_health;
    491. player.level+=l3;
    492. player.range_exp=0;
    493. player.exp=player.max_exp;
    494. player.max_exp+=600*l3;
    495. }
    496. }
    497. }
    498. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    499. {
    500. while(1)
    501. {
    502. // \(1000);
    503. // system("cls");
    504. puts("=============================================================================");system("color 89");
    505. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n");system("color 89");
    506. puts("=============================================================================");system("color 89");
    507. switch(scanf("%d",&choose_number),choose_number)
    508. {
    509. case 1: //显示移动菜单
    510. printf("要去哪里?\n\n\n");system("color 89");
    511. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");system("color 89");
    512. switch(scanf("%d",&choose_number),choose_number)
    513. {
    514. case 1:
    515. place_sign=place.bar; //记录目前位置-酒吧
    516. // OrdinaryAct();
    517. break;
    518. case 2:
    519. place_sign=place.hotel; //进入旅店
    520. printf("金币:%d",money);system("color 89");
    521. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");system("color 89");
    522. choose_number=1;
    523. switch(scanf("%d",&choose_number),choose_number)
    524. {
    525. case 1:
    526. if(money-200<=0) //判断钱是否够
    527. {
    528. printf("Sorry,你的钱不够~\n\n\n");system("color 89");
    529. printf("金币:%d",money);system("color 89");
    530. }
    531. else
    532. {
    533. printf("好好休息\nHP满\n第二天了\n\n");system("color 89");
    534. printf("金币:%d\n",money);system("color 89");
    535. money-=200; //花费200住店费
    536. player.health=player.max_health; //体力满
    537. }
    538. break;
    539. case 0:
    540. printf("下次再来!\n\n\n");system("color 89");
    541. break;
    542. default:
    543. printf("hotel talk error!\n\n\n");system("color 89");
    544. }
    545. place_sign=0;
    546. break;
    547. case 3:
    548. int yongju,gong,fang;
    549. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");system("color 89");
    550. scanf("%d",&yongju);
    551. switch(yongju)
    552. {
    553. case 1:
    554. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");system("color 89");
    555. scanf("%d",&gong);
    556. switch(gong)
    557. {
    558. case 1:
    559. if(money>=300)
    560. {
    561. gong1n++;
    562. money=money-300;
    563. printf ("匕首+1\n");system("color 89");
    564. printf("匕首:%d个\n",gong1n);system("color 89");
    565. printf("金币:%d\n",money);system("color 89");
    566. break;
    567. }
    568. else
    569. {
    570. printf("钱不够!\n");system("color 89");
    571. printf("金币:%d\n",money);system("color 89");
    572. break;
    573. }
    574. case 2:
    575. if(money>=500)
    576. {
    577. gong2n++;
    578. money=money-500;
    579. printf ("西洋剑+1\n");system("color 89");
    580. printf("西洋剑:%d个\n",gong2n);system("color 89");
    581. printf("金币:%d\n",money);system("color 89");
    582. break;
    583. }
    584. else
    585. {
    586. printf("钱不够!\n");system("color 89");
    587. printf("金币:%d\n",money);system("color 89");
    588. break;
    589. }
    590. case 3:
    591. if(money>=1000)
    592. {
    593. gong3n++;
    594. money=money-1000;
    595. printf ("碧血战锤+1\n");system("color 89");
    596. printf("碧血战锤:%d个\n",gong3n);system("color 89");
    597. printf("金币:%d\n",money);system("color 89");
    598. break;
    599. }
    600. else
    601. {
    602. printf("钱不够!\n");system("color 89");
    603. printf("金币:%d\n",money);system("color 89");
    604. break;
    605. }
    606. default:
    607. printf("对不起,我们只会打造以上武器。");system("color 89");
    608. break;
    609. }
    610. break;
    611. case 2:
    612. int fang;
    613. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");system("color 89");
    614. scanf("%d",&fang);
    615. switch(fang)
    616. {
    617. case 1:
    618. if(money>=300)
    619. {
    620. fang1n++;
    621. money=money-300;
    622. printf ("布衣+1\n");system("color 89");
    623. printf("布衣:%d个\n",fang1n);system("color 89");
    624. printf("金币:%d\n",money);system("color 89");
    625. }
    626. else
    627. {
    628. printf("钱不够!\n");system("color 89");
    629. printf("金币:%d\n",money);system("color 89");
    630. }
    631. break;
    632. case 2:
    633. if(money>=500)
    634. {
    635. fang2n++;
    636. money=money-500;
    637. printf ("铁甲+1\n");system("color 89");
    638. printf("铁甲:%d个\n",fang2n);system("color 89");
    639. printf("金币:%d\n",money);system("color 89");
    640. }
    641. else
    642. {
    643. printf("钱不够!\n");system("color 89");
    644. printf("金币:%d",money);system("color 89");
    645. }
    646. break;
    647. case 3:
    648. if(money>=1000)
    649. {
    650. fang3n++;
    651. money=money-1000;
    652. printf ("重甲+1\n");system("color 89");
    653. printf("重甲:%d个\n",fang3n);system("color 89");
    654. printf("金币:%d\n",money);system("color 89");
    655. }
    656. else
    657. {
    658. printf("钱不够!\n");system("color 89");
    659. printf("金币:%d\n",money);system("color 89");
    660. }
    661. default:
    662. printf("对不起,我们只会打造以上防具。");system("color 89");
    663. break;
    664. }
    665. printf("金币:%d\n",money);system("color 89");
    666. break;
    667. case 3:
    668. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");system("color 89");
    669. int yi;
    670. scanf("%d",&yi);
    671. switch(yi)
    672. {
    673. case 1:
    674. if(money>=300 && boom<5)
    675. {
    676. boom++;
    677. money=money-300;
    678. printf("手雷+1\n");system("color 89");
    679. printf("手雷:%d\n",boom);system("color 89");
    680. printf("金币:%d\n",money);system("color 89");
    681. }
    682. else
    683. {
    684. printf("钱不够!\n");system("color 89");
    685. printf("金币:%d",money);system("color 89");
    686. }
    687. break;
    688. case 2:
    689. if(money>=600 && dubiao<9999999)
    690. {
    691. dubiao++;
    692. money=money-600;
    693. printf("毒镖+1\n");system("color 89");
    694. printf("毒镖:%d\n",dubiao);system("color 89");
    695. printf("金币:%d\n",money);system("color 89");
    696. }
    697. else
    698. {
    699. printf("钱不够!\n");system("color 89");
    700. printf("金币:%d\n",money);system("color 89");
    701. }
    702. break;
    703. case 3:
    704. if(money>=1000 && atom_boom<5)
    705. {
    706. atom_boom=atom_boom+1;
    707. money=money-1000;
    708. printf("手抛式原子弹+1\n");system("color 89");
    709. printf("手抛式原子弹:%d\n",atom_boom);system("color 89");
    710. printf("金币:%d\n",money);system("color 89");
    711. }
    712. else
    713. {
    714. printf("钱不够!\n\n\n");system("color 89");
    715. printf("金币:%d\n",money);system("color 89");
    716. }
    717. break;
    718. }
    719. }
    720. break;
    721. case 4:
    722. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");system("color 89");
    723. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
    724. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10,万龙甲:%d个\n11,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n,strongman_arm);system("color 89");
    725. int pai,shu,i;
    726. scanf("%d",&pai);system("color 89");
    727. switch(pai)
    728. {
    729. case 1:
    730. printf("请问您要出售几件?");system("color 89");
    731. scanf("%d",&shu);
    732. if(gong1n>=shu)
    733. {
    734. gong1n=gong1n-shu;
    735. money=money+shu*240;
    736. printf("匕首:%d\n",gong1n);system("color 89");
    737. printf("金币:%d\n",money);system("color 89");
    738. break;
    739. }
    740. else
    741. {
    742. printf("装备数不够,无法出售!\n");system("color 89");
    743. break;
    744. }
    745. break;
    746. case 2:
    747. printf("请问您要出售几件?\n");system("color 89");
    748. scanf("%d",&shu);
    749. if(gong2n>=shu)
    750. {
    751. gong2n=gong2n-shu;
    752. money=money+shu*400;
    753. printf("西洋剑:%d\n",gong2n);
    754. printf("金币:%d\n",money);
    755. break;
    756. }
    757. else
    758. {
    759. printf("装备数不够,无法出售!\n");
    760. break;
    761. }
    762. case 3:
    763. printf("请问您要出售几件?\n");
    764. scanf("%d",&shu);
    765. if(gong3n>=shu)
    766. {
    767. gong3n=gong3n-shu;
    768. money=money+shu*800;
    769. printf("碧血战锤:%d\n",gong3n);
    770. printf("金币:%d\n",money);
    771. break;
    772. }
    773. else
    774. {
    775. printf("装备数不够,无法出售!\n");
    776. break;
    777. }
    778. case 4:
    779. printf("请问您要出售几件?\n");
    780. scanf("%d",&shu);
    781. if(gong4n>=shu)
    782. {
    783. gong4n=gong4n-shu;
    784. money=money+shu*1500;
    785. printf("尚方宝剑:%d\n",gong4n);
    786. printf("金币:%d\n",money);
    787. break;
    788. }
    789. else
    790. {
    791. printf("装备数不够,无法出售!\n");
    792. break;
    793. }
    794. case 5:
    795. printf("请问您要出售几件?\n");
    796. scanf("%d",&shu);
    797. if(gong5n>=shu)
    798. {
    799. gong5n=gong5n-shu;
    800. money=money+shu*3000;
    801. printf("皮卡大剑:%d\n",gong5n);
    802. printf("金币:%d\n",money);
    803. break;
    804. }
    805. else
    806. {
    807. printf("装备数不够,无法出售!\n");
    808. break;
    809. }
    810. case 6:
    811. printf("请问您要出售几件?\n");
    812. scanf("%d",&shu);
    813. if(fang1n>=shu)
    814. {
    815. fang1n=fang1n-shu;
    816. money=money+shu*240;
    817. printf("布衣:%d\n",fang1n);
    818. printf("金币:%d\n",money);
    819. break;
    820. }
    821. else
    822. {
    823. printf("装备数不够,无法出售!\n");
    824. break;
    825. }
    826. case 7:
    827. printf("请问您要出售几件?\n");
    828. scanf("%d",&shu);
    829. if(fang2n>=shu)
    830. {
    831. fang2n=fang2n-shu;
    832. money=money+shu*500;
    833. printf("铁甲:%d\n",fang2n);
    834. printf("金币:%d\n",money);
    835. break;
    836. }
    837. else
    838. {
    839. printf("装备数不够,无法出售!\n");
    840. break;
    841. }
    842. case 8:
    843. printf("请问您要出售几件?\n");
    844. scanf("%d",&shu);
    845. if(fang3n>=shu)
    846. {
    847. fang3n=fang3n-shu;
    848. money=money+shu*800;
    849. printf("重甲:%d\n",fang3n);
    850. printf("金币:%d\n",money);
    851. break;
    852. }
    853. else
    854. {
    855. printf("装备数不够,无法出售!\n");
    856. break;
    857. }
    858. break;
    859. case 9:
    860. printf("请问您要出售几件?\n");
    861. scanf("%d",&shu);
    862. if(fang4n>=shu)
    863. {
    864. fang4n=fang4n-shu;
    865. money=money+shu*1500;
    866. printf("传说圣甲:%d\n",fang4n);
    867. printf("金币:%d\n",money);
    868. break;
    869. }
    870. else
    871. {
    872. printf("装备数不够,无法出售!\n");
    873. break;
    874. }
    875. case 10:
    876. printf("请问您要出售几件?\n");
    877. scanf("%d",&shu);
    878. if(fang5n>=shu)
    879. {
    880. fang5n=fang5n-shu;
    881. money=money+shu*3000;
    882. printf("万龙甲:%d\n",fang5n);
    883. printf("金币:%d\n",money);
    884. break;
    885. }
    886. else
    887. {
    888. printf("装备数不够,无法出售!\n");
    889. break;
    890. }
    891. case 11:
    892. printf("请问您要出售几颗?");
    893. scanf("%d",&shu);
    894. if(strongman_arm>=shu)
    895. {
    896. strongman_arm=strongman_arm-shu;
    897. money=money+shu*4000;
    898. printf("巨龙晶石:%d\n",strongman_arm);
    899. printf("金币:%d\n",money);
    900. }
    901. else
    902. {
    903. printf("晶石数不够,无法出售!\n");
    904. break;
    905. }
    906. break;
    907. case 0:
    908. break;
    909. break;
    910. default:
    911. printf("没有该装备,无法出售!\n");
    912. break;
    913. }
    914. break;
    915. case 5:
    916. int yewai;
    917. while(1)
    918. {
    919. puts("=============================================================================");
    920. printf("要去哪冒险呢?");
    921. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,皮卡超人游乐场 危险程度★★★★★\n\n 7,花朵宫殿 危险程度:★★★★★\n\n 8,五千龙穴 危险程度:★★★★★★\n\n 0,离开\n");system("color 8c");
    922. puts("=============================================================================");
    923. scanf("%d",&yewai);
    924. switch(yewai)
    925. {
    926. case 1:
    927. place_sign=place.forest1;
    928. s=SuiJi();
    929. if(s<7)
    930. {
    931. battle=1;
    932. guai=xiyi;
    933. printf("%s扑了过来!\n\n\n",guai.name);
    934. BattleAct();
    935. }
    936. else if(s<9)
    937. {
    938. battle=1;
    939. guai=witch;
    940. printf("%s扑了过来!\n\n\n",guai.name);
    941. BattleAct();
    942. }
    943. else
    944. {
    945. printf("这里安全\n\n\n");
    946. //不用调用OAct函数,会自动执行OAct函数;
    947. }
    948. break;
    949. case 3:
    950. place_sign=place.forest2;
    951. s=SuiJi();
    952. if(s<7)
    953. {
    954. battle=1;
    955. guai=witch;
    956. printf("%s扑了过来!\n\n\n",guai.name);
    957. BattleAct();
    958. }
    959. else if(s<9)
    960. {
    961. battle=1;
    962. guai=strongman;
    963. printf("%s扑了过来!\n\n\n",guai.name);
    964. BattleAct();
    965. }
    966. else
    967. {
    968. printf("这里安全\n\n\n");
    969. }
    970. break;
    971. case 5:
    972. place_sign=place.forest3;
    973. s=SuiJi();
    974. if(s<7)
    975. {
    976. battle=1;
    977. guai=strongman;
    978. printf("%s扑了过来!\n\n\n",guai.name);
    979. BattleAct();
    980. }
    981. else if(s<9)
    982. {
    983. battle=1;
    984. guai=big_strongman;
    985. printf("%s扑了过来!\n\n\n",guai.name);
    986. BattleAct();
    987. }
    988. else
    989. {
    990. printf("这里安全\n\n\n");
    991. }
    992. break;
    993. case 2:
    994. place_sign=place.grass1;
    995. s=SuiJi();
    996. if(s<7)
    997. {
    998. battle=1;
    999. guai=bee;
    1000. printf("%s扑了过来!\n\n\n",guai.name);
    1001. BattleAct();
    1002. }
    1003. else if(s<9)
    1004. {
    1005. battle=1;
    1006. guai=horse;
    1007. printf("%s扑了过来!\n\n\n",guai.name);
    1008. BattleAct();
    1009. }
    1010. else
    1011. {
    1012. printf("这里安全\n\n\n");
    1013. }
    1014. break;
    1015. case 4:
    1016. place_sign=place.grass2;
    1017. s=SuiJi();
    1018. if(s<7)
    1019. {
    1020. battle=1;
    1021. guai=horse;
    1022. printf("%s扑了过来!\n\n\n",guai.name);
    1023. BattleAct();
    1024. }
    1025. else if(s<9)
    1026. {
    1027. battle=1;
    1028. guai=lion;
    1029. printf("%s扑了过来!\n\n\n",guai.name);
    1030. BattleAct();
    1031. }
    1032. else
    1033. {
    1034. printf("这里安全\n\n\n");
    1035. }
    1036. break;
    1037. case 6:
    1038. s=SuiJi();
    1039. if(s<7)
    1040. {
    1041. battle=1;
    1042. guai=pika;
    1043. printf("%s扑了过来!\n\n\n",guai.name);
    1044. BattleAct();
    1045. }
    1046. else if(s<9)
    1047. {
    1048. battle=1;
    1049. guai=dapika;
    1050. printf("%s扑了过来!\n\n\n",guai.name);
    1051. BattleAct();
    1052. }
    1053. else
    1054. {
    1055. printf("这里安全\n\n\n");
    1056. }
    1057. break;
    1058. case 8:
    1059. s=SuiJi();
    1060. if(s<7)
    1061. {
    1062. battle=1;
    1063. guai=cl;
    1064. printf("%s扑了过来!\n\n\n",guai.name);
    1065. BattleAct();
    1066. }
    1067. else {
    1068. battle=1;
    1069. guai=jl;
    1070. printf("%s扑了过来!\n\n\n",guai.name);
    1071. BattleAct();
    1072. }
    1073. break;
    1074. case 7:
    1075. place_sign=place.grass3;
    1076. s=SuiJi();
    1077. if(s<7)
    1078. {
    1079. battle=1;
    1080. guai=lion;
    1081. printf("%s扑了过来!\n\n\n",guai.name);
    1082. BattleAct();
    1083. }
    1084. else if(s<9)
    1085. {
    1086. battle=1;
    1087. if(strongman_arm>=1)
    1088. {
    1089. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1090. guai=shitu;
    1091. printf("%s扑了过来!\n\n\n",guai.name);
    1092. BattleAct();
    1093. }
    1094. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1095. }
    1096. else
    1097. {
    1098. printf("这里安全\n\n\n");
    1099. }
    1100. break;
    1101. if(yewai!=0)
    1102. {
    1103. printf("该区域为未知区域,无法进入。\n\n\n");system("color 89");
    1104. break;
    1105. }
    1106. }
    1107. if(yewai==0)
    1108. {
    1109. break;
    1110. printf("已离开荒野。");system("color 89");
    1111. }
    1112. }
    1113. }
    1114. break;
    1115. case 2:
    1116. ChooseWupin();
    1117. break; //显示道具,并可以使用.
    1118. case 3: //对话选项
    1119. if(place_sign==place.bar)
    1120. {
    1121. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); system("color 89");//显示对话人物
    1122. switch(scanf("%d",&choose_number),choose_number)
    1123. {
    1124. case 1:
    1125. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");system("color 89");
    1126. break;
    1127. case 2:
    1128. if(fang1n<1&&gong1n<1)
    1129. {
    1130. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");system("color 89");
    1131. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1132. gong1n++;
    1133. fang1n++;
    1134. }
    1135. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");system("color 89");
    1136. break;
    1137. case 3:
    1138. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");system("color 89");
    1139. choose_number=1;
    1140. while(choose_number)
    1141. {
    1142. switch(scanf("%d",&choose_number),choose_number)
    1143. {
    1144. case 1:
    1145. if(money<25)
    1146. {
    1147. printf("钱不够!");system("color 89");
    1148. }
    1149. else
    1150. {
    1151. if(player.health+20<=player.max_health)
    1152. {
    1153. printf("HP+20.");system("color 89");
    1154. money-=25;
    1155. player.health+=20;
    1156. }
    1157. else
    1158. {
    1159. printf("HP满了");system("color 89");
    1160. player.health=player.max_health;
    1161. }
    1162. }
    1163. break;
    1164. case 2:
    1165. if(money<80)
    1166. {
    1167. printf("钱不够!");system("color 89");
    1168. }
    1169. else
    1170. {
    1171. if(player.health+50<=player.max_health)
    1172. {
    1173. printf("HP+50.");system("color 89");
    1174. money-=80;
    1175. player.health+=50;
    1176. }
    1177. else
    1178. {
    1179. printf("HP满了");system("color 89");
    1180. player.health=player.max_health;
    1181. }
    1182. }
    1183. break;
    1184. case 3:
    1185. if(money<150)
    1186. {
    1187. printf("钱不够!");system("color 89");
    1188. }
    1189. else
    1190. {
    1191. if(player.health+100<=player.max_health)
    1192. {
    1193. printf("HP+100.");system("color 89");
    1194. money-=150;
    1195. player.health+=100;
    1196. }
    1197. else
    1198. {
    1199. printf("HP满了");system("color 89");
    1200. player.health=player.max_health;
    1201. }
    1202. }
    1203. break;
    1204. case 0:
    1205. printf("下次再来!\n");system("color 89");
    1206. break;
    1207. default:
    1208. printf("输入错误\n\n\n");system("color 89");
    1209. break;
    1210. }
    1211. break;
    1212. }
    1213. break;
    1214. case 4:
    1215. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");system("color 89");
    1216. int mai;
    1217. scanf("%d",&mai);
    1218. if(mai==1)
    1219. {
    1220. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");system("color 89");
    1221. int dongxi;
    1222. scanf("%d",&dongxi);
    1223. switch(dongxi)
    1224. {
    1225. case 1:
    1226. if(money>=100&&cao<6)
    1227. {
    1228. cao++;
    1229. money=money-100;
    1230. printf ("止血草+1\n");system("color 89");
    1231. }
    1232. else
    1233. {
    1234. printf("钱不够!\n");system("color 89");
    1235. }
    1236. break;
    1237. case 2:
    1238. if(money>=150&&jijiubao<10)
    1239. {
    1240. jijiubao++;
    1241. money=money-150;
    1242. printf ("急救包+1\n");system("color 89");
    1243. }
    1244. else
    1245. {
    1246. printf("钱不够!\n");system("color 89");
    1247. }
    1248. break;
    1249. case 3:
    1250. if(money>=250&&baiyao<10)
    1251. {
    1252. baiyao++;
    1253. money=money-250;
    1254. printf ("云南白药+1\n");system("color 89");
    1255. }
    1256. else
    1257. {
    1258. printf("钱不够!\n");system("color 89");
    1259. }
    1260. break;
    1261. case 4:
    1262. if(money>=400&&superbaiyao<10)
    1263. {
    1264. superbaiyao++;
    1265. money=money-400;
    1266. printf ("超级云南白药+1\n");system("color 89");
    1267. }
    1268. else
    1269. {
    1270. printf("钱不够!\n");system("color 89");
    1271. }
    1272. break;
    1273. case 5:
    1274. if(money>=150)
    1275. {
    1276. jingyancao++;
    1277. money=money-150;
    1278. printf ("经验草+1\n");system("color 89");
    1279. }
    1280. else
    1281. {
    1282. printf("钱不够!\n");system("color 89");
    1283. }
    1284. break;
    1285. case 6:
    1286. if(money>=300)
    1287. {
    1288. jingyanbao++;
    1289. money=money-300;
    1290. printf ("经验包+1\n");system("color 89");
    1291. }
    1292. else
    1293. {
    1294. printf("钱不够!\n");system("color 89");
    1295. }
    1296. break;
    1297. case 7:
    1298. if(money>=500)
    1299. {
    1300. jingyanshi++;
    1301. money=money-500;
    1302. printf ("经验石+1\n");system("color 89");
    1303. }
    1304. else
    1305. {
    1306. printf("钱不够!\n");system("color 89");
    1307. }
    1308. break;
    1309. }
    1310. case 0:
    1311. printf("金币:%d\n",money);system("color 89");
    1312. printf("再见,欢迎下次再来!\n");system("color 89");
    1313. break;
    1314. }
    1315. if(mai==2)
    1316. {
    1317. printf("药品商人:去去去,老子没时间陪你聊。\n");system("color 89");
    1318. }
    1319. }
    1320. }
    1321. else if(place_sign==place.hotel)
    1322. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1323. else printf("这里好像没人可以聊天\n\n\n");system("color 89");
    1324. break;
    1325. case 4:
    1326. DisplayState();
    1327. break; //显示状态
    1328. case 5: //装备
    1329. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
    1330. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n);system("color 89");
    1331. printf("选择要装备的武器或防具:\n\n\n");system("color 89");
    1332. switch(scanf("%d",&choose_number),choose_number)
    1333. {
    1334. case 1:
    1335. if(gong1n>=1)
    1336. {
    1337. printf("拿起了匕首\n\n\n");system("color 89");
    1338. gong=gong1;
    1339. strcpy(gongname,"匕首");system("color 89");
    1340. }
    1341. else printf("你没有匕首可以装备\n\n\n");system("color 89");
    1342. break;
    1343. case 2:
    1344. if(gong2n>=1)
    1345. {
    1346. printf("拿起了西洋剑\n\n\n");system("color 89");
    1347. gong=gong2;
    1348. strcpy(gongname,"西洋剑");system("color 89");
    1349. }
    1350. else printf("你没有西洋剑可以装备\n\n\n");system("color 89");
    1351. break;
    1352. case 3:
    1353. if(gong3n>=1)
    1354. {
    1355. printf("拿起了碧血战锤\n\n\n");
    1356. gong=gong3;
    1357. strcpy(gongname,"碧血战锤");
    1358. }
    1359. else printf("你没有碧血战锤可以装备\n\n\n");
    1360. break;
    1361. case 4:
    1362. if(gong4n>=1)
    1363. {
    1364. printf("拿起了尚方宝剑\n\n\n");
    1365. gong=gong4;
    1366. strcpy(gongname,"尚方宝剑");
    1367. }
    1368. else printf("你没有尚方宝剑可以装备\n\n\n");
    1369. break;
    1370. case 5:
    1371. if(gong5n>=1)
    1372. {
    1373. printf("拿起了皮卡大剑\n\n\n");
    1374. gong=gong5;
    1375. strcpy(gongname,"皮卡大剑");
    1376. }
    1377. else printf("你没有皮卡大剑可以装备\n\n\n");
    1378. break;
    1379. case 6:
    1380. if(fang1n>=1)
    1381. {
    1382. printf("穿上了布衣\n\n\n");
    1383. fang=fang1;
    1384. strcpy(fangname,"布衣");
    1385. }
    1386. else printf("你没有布衣可以装备\n\n\n");
    1387. break;
    1388. case 7:
    1389. if(fang2>=1)
    1390. {
    1391. printf("穿上了铁甲\n\n\n");
    1392. fang=fang2;
    1393. strcpy(fangname,"铁甲");
    1394. }
    1395. else printf("你没有铁甲可以装备\n\n\n");
    1396. break;
    1397. case 8:
    1398. if(fang3n>=1)
    1399. {
    1400. printf("穿上了重甲\n\n\n");
    1401. fang=fang3;
    1402. strcpy(fangname,"重甲");
    1403. }
    1404. else printf("你没有重甲可以装备\n\n\n");
    1405. break;
    1406. case 9:
    1407. if(fang4n>=1)
    1408. {
    1409. printf("穿上了传说圣甲\n\n\n");
    1410. fang=fang4;
    1411. strcpy(fangname,"传说圣甲");
    1412. }
    1413. else printf("你没有传说圣甲可以装备\n\n\n");
    1414. break;
    1415. case 10:
    1416. if(fang5n>=1)
    1417. {
    1418. printf("穿上了万龙甲\n\n\n");
    1419. fang=fang5;
    1420. strcpy(fangname,"万龙甲");
    1421. }
    1422. else printf("你没有万龙甲可以装备\n\n\n");
    1423. break;
    1424. case 0:
    1425. printf("未更换装备\n\n\n");
    1426. break;
    1427. default:
    1428. printf("change error!");
    1429. }
    1430. break;
    1431. case 6:
    1432. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。我们在2.0的基础上进行更新,新增游戏开始提示,希望大家喜欢。在这里要感谢离陌同学,他给了我们许多宝贵的建议,谢谢。\n");system("color 89");
    1433. break;
    1434. case 0:
    1435. printf("确定退出游戏?(Y/N)\n\n\n");system("color 89");
    1436. getchar();
    1437. proof=getchar();
    1438. if(proof=='y'||proof=='Y')
    1439. {
    1440. printf("数据存储中...");system("color 89");
    1441. //向文件中更新数据;
    1442. getchar();
    1443. printf("按回车退出");system("color 89");
    1444. getchar();
    1445. return;
    1446. }
    1447. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1448. else printf("继续!\n\n\n");
    1449. break;
    1450. default:
    1451. printf("输入错误!\n\n\n");
    1452. }
    1453. }
    1454. }
    1455. void DisplayState()
    1456. {
    1457. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1458. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1459. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1460. }
    1461. void BattleAct()
    1462. {
    1463. while(1)
    1464. {
    1465. puts("=============================================================================");
    1466. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1467. switch(scanf("%d",&choose_number),choose_number)
    1468. {
    1469. case 1:
    1470. s=SuiJi();
    1471. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1472. guai.health-=player.attack+s+gong-guai.defense/3;
    1473. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1474. else continue;
    1475. case 2:
    1476. ChooseWupin();
    1477. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1478. case 3:
    1479. DisplayState();
    1480. break; //显示状态
    1481. case 4:
    1482. s=SuiJi();
    1483. if(s<4) //40%的概率可以逃跑
    1484. {
    1485. printf("%s逃跑了~\n\n\n",player.name);
    1486. battle=0;
    1487. return;
    1488. }
    1489. else printf("%s逃跑失败!\n\n\n",player.name);
    1490. break;
    1491. default:
    1492. printf("输入错误,重新输入!\n\n\n");
    1493. }
    1494. }
    1495. }
    1496. void printf(char *p)
    1497. {
    1498. while(1)
    1499. {
    1500. if(*p!=0)
    1501. printf("%c",*p++);
    1502. else
    1503. break;
    1504. Sleep(100);
    1505. }
    1506. }

    2.8.1

    1. #include
    2. #include
    3. #include
    4. #include
    5. #include //suiji
    6. #include //SLEEP函数
    7. using namespace std;
    8. struct Player //玩家结构体,并初始化player
    9. {
    10. char name[21];
    11. int attack;
    12. int defense;
    13. int health;
    14. long int max_health;
    15. int level;
    16. int exp;
    17. int range_exp;
    18. long int max_exp;
    19. } player= {"勇者",50,40,100,100,1,0,0,100};
    20. struct Enemy //怪的结构体,并初始化各种怪
    21. {
    22. char name[20];
    23. char wupin[20];
    24. int attack;
    25. int defense;
    26. int health;
    27. int money;
    28. long int exp;
    29. int wupin_sign;
    30. int wupinpro;
    31. int double_attack;
    32. int miss;
    33. } strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
    34. witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
    35. xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
    36. big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
    37. lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
    38. horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
    39. bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
    40. shitu= {"幻象*凋零风暴*","\0",2000,700,20000,10000,5000,0,1,1,0},
    41. pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
    42. dapika= {"大皮卡超人","皮卡大剑",350,40*10,1500,3000,2000,8,6,6,0},
    43. cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
    44. jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
    45. guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
    46. struct Place
    47. {
    48. int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
    49. } place= {1,2,3,4,5,6,7,8,9,10,11,12};
    50. int max_exp=0;
    51. int htsr;
    52. int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
    53. int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
    54. int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
    55. int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
    56. int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
    57. char gongname[20]="无",fangname[20]="无";
    58. char proof;
    59. void AddWupin(int);
    60. int AttackResult();
    61. void BattleAct(); // ____
    62. void ChooseWupin(); // /___/|
    63. void DisplayState(); // | |/
    64. void OrdinaryAct(); //▔▔
    65. int SuiJi();
    66. int SuiJi100();
    67. void WhetherLevelUp();
    68. void SlowDisplay(char *);
    69. int main()
    70. {
    71. MessageBox (NULL, "欢迎来到斗破苍穹 2.8.0 正式版 !", "斗破苍穹 2.8.0 游戏开始提示", MB_OK);
    72. int i=0,j=0,k=0;
    73. char player_name[21];
    74. Sleep(1000);
    75. printf(" _________________________________ ");system("color 89");
    76. printf(" /________________________________/| ");system("color 89");
    77. printf(" _.+=*^--{|欢迎来到 [苍穹世界] 2.8.0 正式版|}--^*=+._ ");system("color 89");
    78. printf(" ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ \n");system("color 89");
    79. //如果想使用外挂,名字请输入:“zty ”。
    80. Sleep(1000);
    81. printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!\n\n\n 伟大的勇者啊~拿起你的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");system("color 89");
    82. scanf("%s",player_name);
    83. strncpy(player.name,player_name,20);
    84. if(strcmp(player.name,"zty")==0)
    85. {
    86. printf("\n\n\n封印多年的郑族血统啊!你终于觉醒了!\n\n\nzty,你成为了天选之人,请你救出公主吧!\n\n\n");
    87. player.attack=999;
    88. player.defense=999;
    89. player.health=9999;
    90. player.max_health=9999;
    91. }
    92. getchar();
    93. OrdinaryAct();
    94. return 0;
    95. }
    96. int SuiJi()
    97. {
    98. srand((unsigned)time(NULL));
    99. return rand()%10;
    100. }
    101. int SuiJi100()
    102. {
    103. srand((unsigned)time(NULL));
    104. return rand()%100;
    105. }
    106. void ChooseWupin() //选择物品 并使用
    107. {
    108. printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);system("color 8A");
    109. switch(scanf("%d",&choose_number),choose_number)
    110. {
    111. case 1:
    112. if(cao>0)
    113. {
    114. printf("使用止血草,HP增加120\n\n\n");system("color 8A");
    115. cao--;
    116. if(player.health+120>player.max_health)player.health=player.max_health;
    117. else player.health+=120;
    118. }
    119. else printf("没有止血草了\n\n\n");system("color 8A");
    120. break;
    121. case 2:
    122. if(jijiubao>0)
    123. {
    124. printf("使用急救包,HP增加180\n\n\n");system("color 8A");
    125. jijiubao--;
    126. if(player.health+180>player.max_health)player.health=player.max_health;
    127. else player.health+=180;
    128. }
    129. else printf("没有急救包了\n\n\n");system("color 8A");
    130. break;
    131. case 3:
    132. if(baiyao>0)
    133. {
    134. printf("使用云南白药,HP增加240\nz\n\n");system("color 8A");
    135. baiyao--;
    136. if(player.health+240>player.max_health)player.health=player.max_health;
    137. else player.health+=240;
    138. }
    139. else printf("没有云南白药了\n\n\n");system("color 8A");
    140. break;
    141. case 4:
    142. if(superbaiyao>0)
    143. {
    144. printf("使用超级云南白药,HP增加400\n\n\n");system("color 8A");
    145. superbaiyao--;
    146. if(player.health+400>player.max_health)player.health=player.max_health;
    147. else player.health+=400;
    148. }
    149. else printf("没有超级云南白药了\n\n\n");system("color 8A");
    150. break;
    151. case 5:
    152. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    153. {
    154. if(boom>0)
    155. {
    156. printf("使用手雷,敌人HP减少100\n\n\n");system("color 84");
    157. boom--;
    158. guai.health-=100;
    159. AttackResult();
    160. }
    161. }
    162. else printf("非战斗状态,不能使用手雷!\n\n\n");system("color 84");
    163. break;
    164. case 6:
    165. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    166. {
    167. if(dubiao>0)
    168. {
    169. printf("使用毒标,敌人HP减少200\n\n\n");system("color 84");
    170. dubiao--;
    171. guai.health-=200;
    172. AttackResult();
    173. }
    174. }
    175. else printf("非战斗状态,不能使用毒标!\n\n\n");system("color 84");
    176. break;
    177. case 7:
    178. if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
    179. {
    180. if(atom_boom>0)
    181. {
    182. printf("使用手抛式原子弹,敌人HP减少1500\n\n\n");system("color 84");
    183. atom_boom--;
    184. guai.health-=1500;
    185. AttackResult();
    186. }
    187. }
    188. else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n");system("color 84");
    189. break;
    190. case 8:
    191. if(jingyancao>0 && player.level<200)
    192. {
    193. printf("使用经验草,等级增加3级\n\n\n");system("color 8E");
    194. jingyancao--;
    195. player.max_health=player.max_health+60;
    196. player.attack+=9;
    197. player.defense+=6;
    198. player.level+=3;
    199. player.health=player.max_health;
    200. printf("等级:%d\n",player.level);system("color 8E");
    201. }
    202. else if(jingyancao<1)
    203. {
    204. printf("没有经验草了\n\n\n");system("color 8E");
    205. }
    206. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    207. break;
    208. case 9:
    209. if(jingyanbao>0 && player.level<200)
    210. {
    211. if(player.level>197&&player.level<200)
    212. {
    213. int sheng;
    214. sheng=100-player.level;
    215. player.level+=sheng;
    216. jingyanbao--;
    217. player.max_health=player.max_health+sheng*20;
    218. player.attack+=sheng*3;
    219. player.defense+=sheng*2;
    220. player.health=player.max_health;
    221. printf("使用经验包,等级增加%d级",sheng);system("color 8E");
    222. printf("等级:%d\n",player.level);system("color 8E");
    223. }
    224. else
    225. {
    226. printf("使用经验包,等级增加5级\n\n\n");system("color 8E");
    227. jingyanbao--;
    228. player.max_health=player.max_health+100;
    229. player.attack+=15;
    230. player.defense+=10;
    231. player.level+=5;
    232. player.health=player.max_health;
    233. printf("等级:%d\n",player.level);system("color 8E");
    234. }
    235. }
    236. else if(jingyanbao<1)
    237. {
    238. printf("没有经验包了");system("color 8E");
    239. }
    240. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    241. break;
    242. case 10:
    243. if(jingyanshi>0 && player.level<200)
    244. {
    245. if(player.level>192&&player.level<200)
    246. {
    247. int sheng;
    248. sheng=100-player.level;
    249. player.level+=sheng;
    250. player.max_health+=sheng*20;
    251. player.attack+=sheng*3;
    252. player.defense+=sheng*2;
    253. player.health=player.max_health;
    254. printf("使用经验石,等级增加%d级\n",sheng);system("color 8E");
    255. printf("等级:%d\n",player.level);system("color 8E");
    256. }
    257. else
    258. {
    259. printf("使用经验石,等级增加10级\n");system("color 8E");
    260. jingyanshi--;
    261. player.max_health=player.max_health+200;
    262. player.attack+=30;
    263. player.defense+=20;
    264. player.level+=10;
    265. player.health=player.max_health;
    266. }
    267. }
    268. else if(jingyanshi<1)
    269. {
    270. printf("没有经验石了\n\n\n");system("color 8E");
    271. }
    272. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    273. break;
    274. case 11:
    275. if(strongman_arm>0 && player.level<200)
    276. {
    277. if(player.level>182&&player.level<200)
    278. {
    279. int sheng;
    280. sheng=100-player.level;
    281. player.level+=sheng;
    282. player.max_health=player.max_health+sheng*20;
    283. player.attack+=sheng*3;
    284. player.defense+=sheng*2;
    285. player.health=player.max_health;
    286. printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
    287. printf("等级:%d\n",player.level);system("color 8E");
    288. }
    289. else
    290. {
    291. printf("使用巨龙晶石,等级增加20级\n\n\n");system("color 8E");
    292. strongman_arm--;
    293. player.max_health=player.max_health+400;
    294. player.attack+=60;
    295. player.defense+=40;
    296. player.health+=999999;
    297. player.level+=20;
    298. printf("等级:%d\n",player.level);system("color 8E");
    299. }
    300. }
    301. else if(strongman_arm<1)
    302. {
    303. printf("没有巨龙晶石了。\n\n\n");system("color 8E");
    304. }
    305. else printf("等级超过200级,修为太高,无法使用。\n\n\n");system("color 8E");
    306. break;
    307. case 12:
    308. if(miansi>0)
    309. {
    310. printf("使用免死金牌,HP满\n\n\n");system("color 8b");
    311. miansi--;
    312. if(player.health+999999>player.max_health)player.health=player.max_health;
    313. else player.health+=999999;
    314. }else printf("没有免死金牌了\n\n\n"); system("color 8b");break;
    315. case 0:
    316. break;
    317. default:
    318. printf("ChooseWupin error!\n\n\n");
    319. }
    320. }
    321. int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
    322. {
    323. if(guai.health<=0)
    324. {
    325. battle=0;
    326. printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);system("color 8C");
    327. player.exp+=guai.exp;
    328. player.range_exp+=guai.exp;
    329. money+=guai.money;
    330. s=SuiJi();
    331. if(s
    332. {
    333. printf("从敌人尸骸中发现");system("color 8C");
    334. printf("%s\n\n\n",guai.wupin);
    335. AddWupin(guai.wupin_sign);
    336. }
    337. WhetherLevelUp();
    338. if(strcmp(guai.name,"幻象*凋零风暴*")==0)
    339. {
    340. printf("你把公主救了出来\n\n你可以在主页面退出\n\n");system("color 8C");
    341. }
    342. return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
    343. }
    344. else
    345. {
    346. int s=SuiJi();
    347. if((guai.attack+s-player.defense/3)<0)
    348. {
    349. player.health-=1;
    350. printf("%s反击,你的HP减少了 1\n\n",guai.name);system("color 8C");
    351. }
    352. else
    353. {
    354. player.health-=guai.attack+s-player.defense/3;
    355. printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3);system("color 8C");
    356. }
    357. if(player.health<0)
    358. {
    359. battle=0;
    360. printf("%s战死!金币掉落%d\n\n\n",player.name,player.level*500);system("color CC");
    361. money-=player.level*500;
    362. player.health=player.max_health/5;
    363. OrdinaryAct();//
    364. return 1;
    365. }
    366. }
    367. return 0;
    368. }
    369. void AddWupin(int wupin_sign)
    370. {
    371. switch(wupin_sign)
    372. {
    373. case 1:
    374. fang4n++;
    375. break;
    376. case 2:
    377. fang3n++;
    378. break;
    379. case 3:
    380. fang2n++;
    381. break;
    382. case 4:
    383. strongman_arm++;
    384. break;
    385. case 5:
    386. gong4n++;
    387. break;
    388. case 6:
    389. gong3n++;
    390. break;
    391. case 7:
    392. gong2n++;
    393. break;
    394. case 8:
    395. gong5n++;
    396. break;
    397. case 9:
    398. fang5n++;
    399. break;
    400. default:
    401. printf("AddWupin error\n\n\n");
    402. }
    403. }
    404. void WhetherLevelUp()
    405. {
    406. int i=0,j=0;
    407. int l1=player.range_exp/100;
    408. int l2=player.range_exp/300;
    409. int l3=player.range_exp/600;
    410. if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
    411. {
    412. if(l1==1)
    413. {
    414. printf("%s",player.name);
    415. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    416. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    417. player.attack+=3;
    418. player.defense+=2;
    419. player.max_health+=20;
    420. player.health=player.max_health;
    421. player.level++;
    422. player.range_exp=0;
    423. player.exp=player.max_exp;
    424. player.max_exp+=100;
    425. }
    426. else
    427. {
    428. printf("好厉害!连升%d级!",l1);system("color 8E");
    429. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);system("color 8E");
    430. player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
    431. player.attack+=3*l1;
    432. player.defense+=2*l1;
    433. player.max_health+=20*l1;
    434. player.health=player.max_health;
    435. player.level+=l1;
    436. player.range_exp=0;
    437. player.exp=player.max_exp;
    438. player.max_exp+=100*l1;
    439. }
    440. }
    441. else if(player.level<=40&&l2>0)
    442. {
    443. if(l2==1)
    444. {
    445. printf("%s",player.name);
    446. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    447. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    448. player.attack+=3;
    449. player.defense+=2;
    450. player.max_health+=20;
    451. player.health=player.max_health;
    452. player.level++;
    453. player.range_exp=0;
    454. player.exp=player.max_exp;
    455. player.max_exp+=300;
    456. }
    457. else
    458. {
    459. printf("好厉害!连升%d级!",l1);system("color 8E");
    460. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);system("color 8E");
    461. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    462. player.attack+=3*l2;
    463. player.defense+=2*l2;
    464. player.max_health+=20*l2;
    465. player.health=player.max_health;
    466. player.level+=l2;
    467. player.range_exp=0;
    468. player.exp=player.max_exp;
    469. player.max_exp+=300*l2;
    470. }
    471. }
    472. else if(l3>0)
    473. {
    474. if(l3==1)
    475. {
    476. printf("%s",player.name);
    477. printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");system("color 8E");
    478. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    479. player.attack+=3;
    480. player.defense+=2;
    481. player.max_health+=20;
    482. player.health=player.max_health;
    483. player.level++;
    484. player.range_exp=0;
    485. player.exp=player.max_exp;
    486. player.max_exp+=600;
    487. }
    488. else
    489. {
    490. printf("好厉害!连升%d级!",l1);
    491. printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);system("color 8E");
    492. player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
    493. player.attack+=3*l3;
    494. player.defense+=2*l3;
    495. player.max_health+=20*l3;
    496. player.health=player.max_health;
    497. player.level+=l3;
    498. player.range_exp=0;
    499. player.exp=player.max_exp;
    500. player.max_exp+=600*l3;
    501. }
    502. }
    503. }
    504. void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
    505. {
    506. while(1)
    507. {
    508. // \(1000);
    509. // system("cls");
    510. puts("=============================================================================");system("color 89");
    511. printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏\n\n\n");system("color 89");
    512. puts("=============================================================================");system("color 89");
    513. switch(scanf("%d",&choose_number),choose_number)
    514. {
    515. case 1: //显示移动菜单
    516. printf("要去哪里?\n\n\n");system("color 89");
    517. printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n");system("color 89");
    518. switch(scanf("%d",&choose_number),choose_number)
    519. {
    520. case 1:
    521. place_sign=place.bar; //记录目前位置-酒吧
    522. // OrdinaryAct();
    523. break;
    524. case 2:
    525. place_sign=place.hotel; //进入旅店
    526. printf("金币:%d",money);system("color 89");
    527. printf("要开房吗? 200个金币 1,是 0,否\n\n\n");system("color 89");
    528. choose_number=1;
    529. switch(scanf("%d",&choose_number),choose_number)
    530. {
    531. case 1:
    532. if(money-200<=0) //判断钱是否够
    533. {
    534. printf("Sorry,你的钱不够~\n\n\n");system("color 89");
    535. printf("金币:%d",money);system("color 89");
    536. }
    537. else
    538. {
    539. printf("好好休息\nHP满\n第二天了\n\n");system("color 89");
    540. printf("金币:%d\n",money);system("color 89");
    541. money-=200; //花费200住店费
    542. player.health=player.max_health; //体力满
    543. }
    544. break;
    545. case 0:
    546. printf("下次再来!\n\n\n");system("color 89");
    547. break;
    548. default:
    549. printf("hotel talk error!\n\n\n");system("color 89");
    550. }
    551. place_sign=0;
    552. break;
    553. case 3:
    554. int yongju,gong,fang;
    555. printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n");system("color 89");
    556. scanf("%d",&yongju);
    557. switch(yongju)
    558. {
    559. case 1:
    560. printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,西洋剑¥500 3,碧血战锤¥1000\n\n\n");system("color 89");
    561. scanf("%d",&gong);
    562. switch(gong)
    563. {
    564. case 1:
    565. if(money>=300)
    566. {
    567. gong1n++;
    568. money=money-300;
    569. printf ("匕首+1\n");system("color 89");
    570. printf("匕首:%d个\n",gong1n);system("color 89");
    571. printf("金币:%d\n",money);system("color 89");
    572. break;
    573. }
    574. else
    575. {
    576. printf("钱不够!\n");system("color 89");
    577. printf("金币:%d\n",money);system("color 89");
    578. break;
    579. }
    580. case 2:
    581. if(money>=500)
    582. {
    583. gong2n++;
    584. money=money-500;
    585. printf ("西洋剑+1\n");system("color 89");
    586. printf("西洋剑:%d个\n",gong2n);system("color 89");
    587. printf("金币:%d\n",money);system("color 89");
    588. break;
    589. }
    590. else
    591. {
    592. printf("钱不够!\n");system("color 89");
    593. printf("金币:%d\n",money);system("color 89");
    594. break;
    595. }
    596. case 3:
    597. if(money>=1000)
    598. {
    599. gong3n++;
    600. money=money-1000;
    601. printf ("碧血战锤+1\n");system("color 89");
    602. printf("碧血战锤:%d个\n",gong3n);system("color 89");
    603. printf("金币:%d\n",money);system("color 89");
    604. break;
    605. }
    606. else
    607. {
    608. printf("钱不够!\n");system("color 89");
    609. printf("金币:%d\n",money);system("color 89");
    610. break;
    611. }
    612. default:
    613. printf("对不起,我们只会打造以上武器。");system("color 89");
    614. break;
    615. }
    616. break;
    617. case 2:
    618. int fang;
    619. printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,重甲¥1000\n\n\n");system("color 89");
    620. scanf("%d",&fang);
    621. switch(fang)
    622. {
    623. case 1:
    624. if(money>=300)
    625. {
    626. fang1n++;
    627. money=money-300;
    628. printf ("布衣+1\n");system("color 89");
    629. printf("布衣:%d个\n",fang1n);system("color 89");
    630. printf("金币:%d\n",money);system("color 89");
    631. }
    632. else
    633. {
    634. printf("钱不够!\n");system("color 89");
    635. printf("金币:%d\n",money);system("color 89");
    636. }
    637. break;
    638. case 2:
    639. if(money>=500)
    640. {
    641. fang2n++;
    642. money=money-500;
    643. printf ("铁甲+1\n");system("color 89");
    644. printf("铁甲:%d个\n",fang2n);system("color 89");
    645. printf("金币:%d\n",money);system("color 89");
    646. }
    647. else
    648. {
    649. printf("钱不够!\n");system("color 89");
    650. printf("金币:%d",money);system("color 89");
    651. }
    652. break;
    653. case 3:
    654. if(money>=1000)
    655. {
    656. fang3n++;
    657. money=money-1000;
    658. printf ("重甲+1\n");system("color 89");
    659. printf("重甲:%d个\n",fang3n);system("color 89");
    660. printf("金币:%d\n",money);system("color 89");
    661. }
    662. else
    663. {
    664. printf("钱不够!\n");system("color 89");
    665. printf("金币:%d\n",money);system("color 89");
    666. }
    667. default:
    668. printf("对不起,我们只会打造以上防具。");system("color 89");
    669. break;
    670. }
    671. printf("金币:%d\n",money);system("color 89");
    672. break;
    673. case 3:
    674. printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n");system("color 89");
    675. int yi;
    676. scanf("%d",&yi);
    677. switch(yi)
    678. {
    679. case 1:
    680. if(money>=300 && boom<5)
    681. {
    682. boom++;
    683. money=money-300;
    684. printf("手雷+1\n");system("color 89");
    685. printf("手雷:%d\n",boom);system("color 89");
    686. printf("金币:%d\n",money);system("color 89");
    687. }
    688. else
    689. {
    690. printf("钱不够!\n");system("color 89");
    691. printf("金币:%d",money);system("color 89");
    692. }
    693. break;
    694. case 2:
    695. if(money>=600 && dubiao<9999999)
    696. {
    697. dubiao++;
    698. money=money-600;
    699. printf("毒镖+1\n");system("color 89");
    700. printf("毒镖:%d\n",dubiao);system("color 89");
    701. printf("金币:%d\n",money);system("color 89");
    702. }
    703. else
    704. {
    705. printf("钱不够!\n");system("color 89");
    706. printf("金币:%d\n",money);system("color 89");
    707. }
    708. break;
    709. case 3:
    710. if(money>=1000 && atom_boom<5)
    711. {
    712. atom_boom=atom_boom+1;
    713. money=money-1000;
    714. printf("手抛式原子弹+1\n");system("color 89");
    715. printf("手抛式原子弹:%d\n",atom_boom);system("color 89");
    716. printf("金币:%d\n",money);system("color 89");
    717. }
    718. else
    719. {
    720. printf("钱不够!\n\n\n");system("color 89");
    721. printf("金币:%d\n",money);system("color 89");
    722. }
    723. break;
    724. }
    725. }
    726. break;
    727. case 4:
    728. printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n");system("color 89");
    729. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
    730. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10,万龙甲:%d个\n11,巨龙晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n,strongman_arm);system("color 89");
    731. int pai,shu,i;
    732. scanf("%d",&pai);system("color 89");
    733. switch(pai)
    734. {
    735. case 1:
    736. printf("请问您要出售几件?");system("color 89");
    737. scanf("%d",&shu);
    738. if(gong1n>=shu)
    739. {
    740. gong1n=gong1n-shu;
    741. money=money+shu*240;
    742. printf("匕首:%d\n",gong1n);system("color 89");
    743. printf("金币:%d\n",money);system("color 89");
    744. break;
    745. }
    746. else
    747. {
    748. printf("装备数不够,无法出售!\n");system("color 89");
    749. break;
    750. }
    751. break;
    752. case 2:
    753. printf("请问您要出售几件?\n");system("color 89");
    754. scanf("%d",&shu);
    755. if(gong2n>=shu)
    756. {
    757. gong2n=gong2n-shu;
    758. money=money+shu*400;
    759. printf("西洋剑:%d\n",gong2n);
    760. printf("金币:%d\n",money);
    761. break;
    762. }
    763. else
    764. {
    765. printf("装备数不够,无法出售!\n");
    766. break;
    767. }
    768. case 3:
    769. printf("请问您要出售几件?\n");
    770. scanf("%d",&shu);
    771. if(gong3n>=shu)
    772. {
    773. gong3n=gong3n-shu;
    774. money=money+shu*800;
    775. printf("碧血战锤:%d\n",gong3n);
    776. printf("金币:%d\n",money);
    777. break;
    778. }
    779. else
    780. {
    781. printf("装备数不够,无法出售!\n");
    782. break;
    783. }
    784. case 4:
    785. printf("请问您要出售几件?\n");
    786. scanf("%d",&shu);
    787. if(gong4n>=shu)
    788. {
    789. gong4n=gong4n-shu;
    790. money=money+shu*1500;
    791. printf("尚方宝剑:%d\n",gong4n);
    792. printf("金币:%d\n",money);
    793. break;
    794. }
    795. else
    796. {
    797. printf("装备数不够,无法出售!\n");
    798. break;
    799. }
    800. case 5:
    801. printf("请问您要出售几件?\n");
    802. scanf("%d",&shu);
    803. if(gong5n>=shu)
    804. {
    805. gong5n=gong5n-shu;
    806. money=money+shu*3000;
    807. printf("皮卡大剑:%d\n",gong5n);
    808. printf("金币:%d\n",money);
    809. break;
    810. }
    811. else
    812. {
    813. printf("装备数不够,无法出售!\n");
    814. break;
    815. }
    816. case 6:
    817. printf("请问您要出售几件?\n");
    818. scanf("%d",&shu);
    819. if(fang1n>=shu)
    820. {
    821. fang1n=fang1n-shu;
    822. money=money+shu*240;
    823. printf("布衣:%d\n",fang1n);
    824. printf("金币:%d\n",money);
    825. break;
    826. }
    827. else
    828. {
    829. printf("装备数不够,无法出售!\n");
    830. break;
    831. }
    832. case 7:
    833. printf("请问您要出售几件?\n");
    834. scanf("%d",&shu);
    835. if(fang2n>=shu)
    836. {
    837. fang2n=fang2n-shu;
    838. money=money+shu*500;
    839. printf("铁甲:%d\n",fang2n);
    840. printf("金币:%d\n",money);
    841. break;
    842. }
    843. else
    844. {
    845. printf("装备数不够,无法出售!\n");
    846. break;
    847. }
    848. case 8:
    849. printf("请问您要出售几件?\n");
    850. scanf("%d",&shu);
    851. if(fang3n>=shu)
    852. {
    853. fang3n=fang3n-shu;
    854. money=money+shu*800;
    855. printf("重甲:%d\n",fang3n);
    856. printf("金币:%d\n",money);
    857. break;
    858. }
    859. else
    860. {
    861. printf("装备数不够,无法出售!\n");
    862. break;
    863. }
    864. break;
    865. case 9:
    866. printf("请问您要出售几件?\n");
    867. scanf("%d",&shu);
    868. if(fang4n>=shu)
    869. {
    870. fang4n=fang4n-shu;
    871. money=money+shu*1500;
    872. printf("传说圣甲:%d\n",fang4n);
    873. printf("金币:%d\n",money);
    874. break;
    875. }
    876. else
    877. {
    878. printf("装备数不够,无法出售!\n");
    879. break;
    880. }
    881. case 10:
    882. printf("请问您要出售几件?\n");
    883. scanf("%d",&shu);
    884. if(fang5n>=shu)
    885. {
    886. fang5n=fang5n-shu;
    887. money=money+shu*3000;
    888. printf("万龙甲:%d\n",fang5n);
    889. printf("金币:%d\n",money);
    890. break;
    891. }
    892. else
    893. {
    894. printf("装备数不够,无法出售!\n");
    895. break;
    896. }
    897. case 11:
    898. printf("请问您要出售几颗?");
    899. scanf("%d",&shu);
    900. if(strongman_arm>=shu)
    901. {
    902. strongman_arm=strongman_arm-shu;
    903. money=money+shu*4000;
    904. printf("巨龙晶石:%d\n",strongman_arm);
    905. printf("金币:%d\n",money);
    906. }
    907. else
    908. {
    909. printf("晶石数不够,无法出售!\n");
    910. break;
    911. }
    912. break;
    913. case 0:
    914. break;
    915. break;
    916. default:
    917. printf("没有该装备,无法出售!\n");
    918. break;
    919. }
    920. break;
    921. case 5:
    922. int yewai;
    923. while(1)
    924. {
    925. puts("=============================================================================");
    926. printf("要去哪冒险呢?");
    927. printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,皮卡超人游乐场 危险程度★★★★★\n\n 7,花朵宫殿 危险程度:★★★★★\n\n 8,五千龙穴 危险程度:★★★★★★\n\n 0,离开\n");system("color 8c");
    928. puts("=============================================================================");
    929. scanf("%d",&yewai);
    930. switch(yewai)
    931. {
    932. case 1:
    933. place_sign=place.forest1;
    934. s=SuiJi();
    935. if(s<7)
    936. {
    937. battle=1;
    938. guai=xiyi;
    939. printf("%s扑了过来!\n\n\n",guai.name);
    940. BattleAct();
    941. }
    942. else if(s<9)
    943. {
    944. battle=1;
    945. guai=witch;
    946. printf("%s扑了过来!\n\n\n",guai.name);
    947. BattleAct();
    948. }
    949. else
    950. {
    951. printf("这里安全\n\n\n");
    952. //不用调用OAct函数,会自动执行OAct函数;
    953. }
    954. break;
    955. case 3:
    956. place_sign=place.forest2;
    957. s=SuiJi();
    958. if(s<7)
    959. {
    960. battle=1;
    961. guai=witch;
    962. printf("%s扑了过来!\n\n\n",guai.name);
    963. BattleAct();
    964. }
    965. else if(s<9)
    966. {
    967. battle=1;
    968. guai=strongman;
    969. printf("%s扑了过来!\n\n\n",guai.name);
    970. BattleAct();
    971. }
    972. else
    973. {
    974. printf("这里安全\n\n\n");
    975. }
    976. break;
    977. case 5:
    978. place_sign=place.forest3;
    979. s=SuiJi();
    980. if(s<7)
    981. {
    982. battle=1;
    983. guai=strongman;
    984. printf("%s扑了过来!\n\n\n",guai.name);
    985. BattleAct();
    986. }
    987. else if(s<9)
    988. {
    989. battle=1;
    990. guai=big_strongman;
    991. printf("%s扑了过来!\n\n\n",guai.name);
    992. BattleAct();
    993. }
    994. else
    995. {
    996. printf("这里安全\n\n\n");
    997. }
    998. break;
    999. case 2:
    1000. place_sign=place.grass1;
    1001. s=SuiJi();
    1002. if(s<7)
    1003. {
    1004. battle=1;
    1005. guai=bee;
    1006. printf("%s扑了过来!\n\n\n",guai.name);
    1007. BattleAct();
    1008. }
    1009. else if(s<9)
    1010. {
    1011. battle=1;
    1012. guai=horse;
    1013. printf("%s扑了过来!\n\n\n",guai.name);
    1014. BattleAct();
    1015. }
    1016. else
    1017. {
    1018. printf("这里安全\n\n\n");
    1019. }
    1020. break;
    1021. case 4:
    1022. place_sign=place.grass2;
    1023. s=SuiJi();
    1024. if(s<7)
    1025. {
    1026. battle=1;
    1027. guai=horse;
    1028. printf("%s扑了过来!\n\n\n",guai.name);
    1029. BattleAct();
    1030. }
    1031. else if(s<9)
    1032. {
    1033. battle=1;
    1034. guai=lion;
    1035. printf("%s扑了过来!\n\n\n",guai.name);
    1036. BattleAct();
    1037. }
    1038. else
    1039. {
    1040. printf("这里安全\n\n\n");
    1041. }
    1042. break;
    1043. case 6:
    1044. s=SuiJi();
    1045. if(s<7)
    1046. {
    1047. battle=1;
    1048. guai=pika;
    1049. printf("%s扑了过来!\n\n\n",guai.name);
    1050. BattleAct();
    1051. }
    1052. else if(s<9)
    1053. {
    1054. battle=1;
    1055. guai=dapika;
    1056. printf("%s扑了过来!\n\n\n",guai.name);
    1057. BattleAct();
    1058. }
    1059. else
    1060. {
    1061. printf("这里安全\n\n\n");
    1062. }
    1063. break;
    1064. case 8:
    1065. s=SuiJi();
    1066. if(s<7)
    1067. {
    1068. battle=1;
    1069. guai=cl;
    1070. printf("%s扑了过来!\n\n\n",guai.name);
    1071. BattleAct();
    1072. }
    1073. else {
    1074. battle=1;
    1075. guai=jl;
    1076. printf("%s扑了过来!\n\n\n",guai.name);
    1077. BattleAct();
    1078. }
    1079. break;
    1080. case 7:
    1081. place_sign=place.grass3;
    1082. s=SuiJi();
    1083. if(s<7)
    1084. {
    1085. battle=1;
    1086. guai=lion;
    1087. printf("%s扑了过来!\n\n\n",guai.name);
    1088. BattleAct();
    1089. }
    1090. else if(s<9)
    1091. {
    1092. battle=1;
    1093. if(strongman_arm>=1)
    1094. {
    1095. printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!\n\n\n");
    1096. guai=shitu;
    1097. printf("%s扑了过来!\n\n\n",guai.name);
    1098. BattleAct();
    1099. }
    1100. else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~\n\n\n");
    1101. }
    1102. else
    1103. {
    1104. printf("这里安全\n\n\n");
    1105. }
    1106. break;
    1107. if(yewai!=0)
    1108. {
    1109. printf("该区域为未知区域,无法进入。\n\n\n");system("color 89");
    1110. break;
    1111. }
    1112. }
    1113. if(yewai==0)
    1114. {
    1115. break;
    1116. printf("已离开荒野。");system("color 89");
    1117. }
    1118. }
    1119. }
    1120. break;
    1121. case 2:
    1122. ChooseWupin();
    1123. break; //显示道具,并可以使用.
    1124. case 3: //对话选项
    1125. if(place_sign==place.bar)
    1126. {
    1127. printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); system("color 89");//显示对话人物
    1128. switch(scanf("%d",&choose_number),choose_number)
    1129. {
    1130. case 1:
    1131. printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");system("color 89");
    1132. break;
    1133. case 2:
    1134. if(fang1n<1&&gong1n<1)
    1135. {
    1136. printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");system("color 89");
    1137. printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name);
    1138. gong1n++;
    1139. fang1n++;
    1140. }
    1141. else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n");system("color 89");
    1142. break;
    1143. case 3:
    1144. printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");system("color 89");
    1145. choose_number=1;
    1146. while(choose_number)
    1147. {
    1148. switch(scanf("%d",&choose_number),choose_number){
    1149. case 1:
    1150. if(money<25){
    1151. printf("钱不够!");system("color 89");
    1152. }
    1153. else
    1154. {
    1155. if(player.health+20<=player.max_health){
    1156. printf("HP+20.");system("color 89");
    1157. money-=25;
    1158. player.health+=20;
    1159. }
    1160. else{
    1161. printf("HP满了");system("color 89");
    1162. player.health=player.max_health;
    1163. }
    1164. }
    1165. break;
    1166. case 2:
    1167. if(money<80){
    1168. printf("钱不够!");system("color 89");
    1169. }
    1170. else{
    1171. if(player.health+50<=player.max_health){
    1172. printf("HP+50.");system("color 89");
    1173. money-=80;
    1174. player.health+=50;
    1175. }
    1176. else{
    1177. printf("HP满了");system("color 89");
    1178. player.health=player.max_health;
    1179. }
    1180. }
    1181. break;
    1182. case 3:
    1183. if(money<150){
    1184. printf("钱不够!");system("color 89");
    1185. }
    1186. else{
    1187. if(player.health+100<=player.max_health){
    1188. printf("HP+100.");system("color 89");
    1189. money-=150;
    1190. player.health+=100;
    1191. }
    1192. else{
    1193. printf("HP满了");system("color 89");
    1194. player.health=player.max_health;
    1195. }
    1196. }
    1197. break;
    1198. case 0:
    1199. printf("下次再来!\n");system("color 89");
    1200. break;
    1201. default:
    1202. printf("输入错误\n\n\n");system("color 89");
    1203. break;
    1204. }
    1205. break;
    1206. }
    1207. break;
    1208. case 4:
    1209. printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n");system("color 89");
    1210. int mai;
    1211. scanf("%d",&mai);
    1212. if(mai==1){
    1213. printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n");system("color 89");
    1214. int dongxi;
    1215. scanf("%d",&dongxi);
    1216. switch(dongxi){
    1217. case 1:
    1218. if(money>=100&&cao<6){
    1219. cao++;
    1220. money=money-100;
    1221. printf ("止血草+1\n");system("color 89");
    1222. }
    1223. else{
    1224. printf("钱不够!\n");system("color 89");
    1225. }
    1226. break;
    1227. case 2:
    1228. if(money>=150&&jijiubao<10){
    1229. jijiubao++;
    1230. money=money-150;
    1231. printf ("急救包+1\n");system("color 89");
    1232. }
    1233. else{
    1234. printf("钱不够!\n");system("color 89");
    1235. }
    1236. break;
    1237. case 3:
    1238. if(money>=250&&baiyao<10){
    1239. baiyao++;
    1240. money=money-250;
    1241. printf ("云南白药+1\n");system("color 89");
    1242. }
    1243. else{
    1244. printf("钱不够!\n");system("color 89");
    1245. }
    1246. break;
    1247. case 4:
    1248. if(money>=400&&superbaiyao<10){
    1249. superbaiyao++;
    1250. money=money-400;
    1251. printf ("超级云南白药+1\n");system("color 89");
    1252. }
    1253. else{
    1254. printf("钱不够!\n");system("color 89");
    1255. }
    1256. break;
    1257. case 5:
    1258. if(money>=150){
    1259. jingyancao++;
    1260. money=money-150;
    1261. printf ("经验草+1\n");system("color 89");
    1262. }
    1263. else{
    1264. printf("钱不够!\n");system("color 89");
    1265. }
    1266. break;
    1267. case 6:
    1268. if(money>=300){
    1269. jingyanbao++;
    1270. money=money-300;
    1271. printf ("经验包+1\n");system("color 89");
    1272. }
    1273. else{
    1274. printf("钱不够!\n");system("color 89");
    1275. }
    1276. break;
    1277. case 7:
    1278. if(money>=500){
    1279. jingyanshi++;
    1280. money=money-500;
    1281. printf ("经验石+1\n");system("color 89");
    1282. }
    1283. else{
    1284. printf("钱不够!\n");system("color 89");
    1285. }
    1286. break;
    1287. }
    1288. case 0:
    1289. printf("金币:%d\n",money);system("color 89");
    1290. printf("再见,欢迎下次再来!\n");system("color 89");
    1291. break;
    1292. }
    1293. if(mai==2){
    1294. printf("药品商人:去去去,老子没时间陪你聊。\n");system("color 89");
    1295. }
    1296. }
    1297. }
    1298. else if(place_sign==place.hotel)
    1299. printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
    1300. else printf("这里好像没人可以聊天\n\n\n");system("color 89");
    1301. break;
    1302. case 4:
    1303. DisplayState();
    1304. break; //显示状态
    1305. case 5: //装备
    1306. printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,皮卡大剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
    1307. printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,fang5n);system("color 89");
    1308. printf("选择要装备的武器或防具:\n\n\n");system("color 89");
    1309. switch(scanf("%d",&choose_number),choose_number){
    1310. case 1:
    1311. if(gong1n>=1){
    1312. printf("拿起了匕首\n\n\n");system("color 89");
    1313. gong=gong1;
    1314. strcpy(gongname,"匕首");system("color 89");
    1315. }
    1316. else printf("你没有匕首可以装备\n\n\n");system("color 89");
    1317. break;
    1318. case 2:
    1319. if(gong2n>=1){
    1320. printf("拿起了西洋剑\n\n\n");system("color 89");
    1321. gong=gong2;
    1322. strcpy(gongname,"西洋剑");system("color 89");
    1323. }
    1324. else printf("你没有西洋剑可以装备\n\n\n");system("color 89");
    1325. break;
    1326. case 3:
    1327. if(gong3n>=1){
    1328. printf("拿起了碧血战锤\n\n\n");
    1329. gong=gong3;
    1330. strcpy(gongname,"碧血战锤");
    1331. }
    1332. else printf("你没有碧血战锤可以装备\n\n\n");
    1333. break;
    1334. case 4:
    1335. if(gong4n>=1){
    1336. printf("拿起了尚方宝剑\n\n\n");
    1337. gong=gong4;
    1338. strcpy(gongname,"尚方宝剑");
    1339. }
    1340. else printf("你没有尚方宝剑可以装备\n\n\n");
    1341. break;
    1342. case 5:
    1343. if(gong5n>=1){
    1344. printf("拿起了皮卡大剑\n\n\n");
    1345. gong=gong5;
    1346. strcpy(gongname,"皮卡大剑");
    1347. }
    1348. else printf("你没有皮卡大剑可以装备\n\n\n");
    1349. break;
    1350. case 6:
    1351. if(fang1n>=1){
    1352. printf("穿上了布衣\n\n\n");
    1353. fang=fang1;
    1354. strcpy(fangname,"布衣");
    1355. }
    1356. else printf("你没有布衣可以装备\n\n\n");
    1357. break;
    1358. case 7:
    1359. if(fang2>=1){
    1360. printf("穿上了铁甲\n\n\n");
    1361. fang=fang2;
    1362. strcpy(fangname,"铁甲");
    1363. }
    1364. else printf("你没有铁甲可以装备\n\n\n");
    1365. break;
    1366. case 8:
    1367. if(fang3n>=1){
    1368. printf("穿上了重甲\n\n\n");
    1369. fang=fang3;
    1370. strcpy(fangname,"重甲");
    1371. }
    1372. else printf("你没有重甲可以装备\n\n\n");
    1373. break;
    1374. case 9:
    1375. if(fang4n>=1){
    1376. printf("穿上了传说圣甲\n\n\n");
    1377. fang=fang4;
    1378. strcpy(fangname,"传说圣甲");
    1379. }
    1380. else printf("你没有传说圣甲可以装备\n\n\n");
    1381. break;
    1382. case 10:
    1383. if(fang5n>=1){
    1384. printf("穿上了万龙甲\n\n\n");
    1385. fang=fang5;
    1386. strcpy(fangname,"万龙甲");
    1387. }
    1388. else printf("你没有万龙甲可以装备\n\n\n");
    1389. break;
    1390. case 0:
    1391. printf("未更换装备\n\n\n");
    1392. break;
    1393. default:
    1394. printf("change error!");
    1395. }
    1396. break;
    1397. case 6:
    1398. printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。我们在2.7版本内容的基础上进行修改,新增了可以调试角色的后台,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。\n");system("color 89");
    1399. break;
    1400. case 0:
    1401. printf("确定退出游戏?(Y/N)\n\n\n");system("color 89");
    1402. getchar();
    1403. proof=getchar();
    1404. if(proof=='y'||proof=='Y'){
    1405. printf("数据存储中...");system("color 89");
    1406. //向文件中更新数据;
    1407. getchar();
    1408. printf("按回车退出");system("color 89");
    1409. getchar();
    1410. return;
    1411. }
    1412. else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
    1413. else printf("继续!\n\n\n");
    1414. break;
    1415. default:
    1416. printf("输入错误!\n\n\n");
    1417. break;
    1418. case 7:
    1419. int mi;
    1420. cout<<"=====*【后台管理 简称开挂 测试Bug】*=================================\n请输入管理者密码 想退出就在管理密码那输入211\n=====*【想要后台密码就问郑桐羽,只能输数字,别问为什么,否则死循环】*=========\n管理密码:";
    1421. cin>>mi;
    1422. if(mi%20120913==0){
    1423. cout<<"输入正确!\n欢迎进入后台!\n后台服务:\n=======================\n1.金币加9999\n2.血量加9999\n3.现有血量加9999\n4.攻击加9999\n5.防御加9999\n211.退出\n=======================\n输入>>> "<
    1424. cin>>htsr;
    1425. if(htsr==1){
    1426. cout<<"成功获得效果 *金币加9999\n";
    1427. money+=9999;
    1428. }
    1429. if(htsr==2){
    1430. cout<<"成功获得效果 *血量加9999\n";
    1431. player.health+=9999;
    1432. }
    1433. if(htsr==3){
    1434. cout<<"成功获得效果 *血量上限加9999\n";
    1435. player.max_health+=9999;
    1436. }
    1437. if(htsr==4){
    1438. cout<<"成功获得效果 *攻击加9999\n";
    1439. player.attack+=9999;
    1440. }
    1441. if(htsr==5){
    1442. cout<<"成功获得效果 *防御加9999\n";
    1443. player.defense+=9999;
    1444. }
    1445. if(htsr%211==0){
    1446. cout<<"成功退出\n";
    1447. continue;
    1448. }
    1449. }
    1450. else{
    1451. cout<<"输入错误!请检查!"<
    1452. continue;
    1453. }
    1454. break;
    1455. }
    1456. }
    1457. }
    1458. void DisplayState()
    1459. {
    1460. printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
    1461. printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
    1462. printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
    1463. }
    1464. void BattleAct()
    1465. {
    1466. while(1)
    1467. {
    1468. puts("=============================================================================");
    1469. printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
    1470. switch(scanf("%d",&choose_number),choose_number)
    1471. {
    1472. case 1:
    1473. s=SuiJi();
    1474. printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3);
    1475. guai.health-=player.attack+s+gong-guai.defense/3;
    1476. if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
    1477. else continue;
    1478. case 2:
    1479. ChooseWupin();
    1480. break; //选择物品,可以使用,战斗中允许使用攻击性物品
    1481. case 3:
    1482. DisplayState();
    1483. break; //显示状态
    1484. case 4:
    1485. s=SuiJi();
    1486. if(s<4) //40%的概率可以逃跑
    1487. {
    1488. printf("%s逃跑了~\n\n\n",player.name);
    1489. battle=0;
    1490. return;
    1491. }
    1492. else printf("%s逃跑失败!\n\n\n",player.name);
    1493. break;
    1494. default:
    1495. printf("输入错误,重新输入!\n\n\n");
    1496. }
    1497. }
    1498. }
    1499. void printf(char *p)
    1500. {
    1501. while(1)
    1502. {
    1503. if(*p!=0)
    1504. printf("%c",*p++);
    1505. else
    1506. break;
    1507. Sleep(100);
    1508. }
    1509. }

  • 相关阅读:
    EasyCode介绍及自定义模板
    基于FPGA的五段流水CPU设计
    人力资源行业投资建议
    迅为3A5000_7A2000开发板龙芯全国产处理器LoongArch架构核心方案
    Java面试——单例模式(5种写法、可能存在的问题)
    Python 工匠 第一章 变量与注释
    Nature Microbiology | SeqCode:基于序列数据描述的原核生物命名规则
    Java实现五子棋对战小游戏【完整版】
    app自动化测试
    Fast DDS之Publisher
  • 原文地址:https://blog.csdn.net/zty20120913/article/details/139384157