Advertisement
Guest User

Untitled

a guest
Dec 11th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 102.79 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <locale.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6.  
  7. void pause (float);
  8. void pause (float delay1)
  9. {
  10. if(delay1<0.001)
  11. return;
  12. float inst1=0, inst2=0;
  13. inst1 = (float)clock()/(float)CLOCKS_PER_SEC;
  14. while(inst2-inst1<delay1) inst2 = (float)clock()/(float)CLOCKS_PER_SEC;
  15. return;
  16. }
  17.  
  18. struct reg_personagem_fichaclasse1
  19. {
  20. int forca, hab, resist, armor, firep, pVIDA, pMANA, escolha;
  21. };
  22.  
  23. struct reg_personagem_fichaclasse2
  24. {
  25. int forca, hab, resist, armor, firep, pVIDA, pMANA, escolha;
  26. };
  27.  
  28. struct reg_personagem_fichaclasse3
  29. {
  30. int forca, hab, resist, armor, firep, pVIDA, pMANA, escolha;
  31. };
  32.  
  33. struct reg_personagem_fichaclasse4
  34. {
  35. int forca, hab, resist, armor, firep, pVIDA, pMANA, escolha;
  36. };
  37.  
  38. struct reg_personagem_fichaclasse5
  39. {
  40. int forca, hab, resist, armor, firep, pVIDA, pMANA, escolha;
  41. };
  42.  
  43. struct reg_personagem_classe
  44. {
  45. struct reg_personagem_fichaclasse1 human;
  46. struct reg_personagem_fichaclasse2 elfF;
  47. struct reg_personagem_fichaclasse3 elfD;
  48. struct reg_personagem_fichaclasse4 dwarf;
  49. struct reg_personagem_fichaclasse5 half;
  50. };
  51.  
  52. struct reg_personagem_tipos
  53. {
  54. int barba, busto, sex_appeal, etiqueta, streetwise;
  55. };
  56.  
  57. struct reg_personagem_hist
  58. {
  59. int infancia, dif, consideracao;
  60. char descricao1[250], descricao2[250], descricao3[250], descricao4[250], descricao5[250];
  61. };
  62.  
  63. struct reg_personagem
  64. {
  65. char nome[50];
  66. int sexo, idade, cabelo, olho, pele, corpo, street, sexappeal;
  67. float altura;
  68. struct reg_personagem_tipos tipo;
  69. struct reg_personagem_hist historia;
  70. struct reg_personagem_classe classe;
  71. };
  72.  
  73. main()
  74. {
  75. srand(time(NULL));
  76. struct reg_personagem personagem;
  77. setlocale(LC_ALL, "Portuguese");
  78. int op, verifica, dado, tamanho=0;
  79. char personagemSTRCabelo[9], personagemSTROlho[6], personagemSTRPele[26], personagemSTRCorpo[68], personagemSTRBarba[23], personagemSTRBusto[8], personagemSTREtiqueta[100], personagemSTRVocacao[17];
  80.  
  81. strcpy(personagem.nome, "\0");
  82. personagem.idade=0;
  83. personagem.sexo=0;
  84. personagem.cabelo=0;
  85. personagem.olho=0;
  86. personagem.pele=0;
  87. personagem.corpo=0;
  88. personagem.altura=0;
  89.  
  90. personagem.tipo.barba=0;
  91. personagem.tipo.busto=0;
  92. personagem.tipo.sex_appeal=0;
  93. personagem.tipo.etiqueta=0;
  94.  
  95. personagem.historia.infancia=0;
  96. personagem.historia.dif=0;
  97. personagem.historia.consideracao=0;
  98. strcpy(personagem.historia.descricao1, "\0");
  99. strcpy(personagem.historia.descricao2, "\0");
  100. strcpy(personagem.historia.descricao3, "\0");
  101. strcpy(personagem.historia.descricao4, "\0");
  102. strcpy(personagem.historia.descricao5, "\0");
  103.  
  104. personagem.classe.human.escolha=0;
  105. personagem.classe.elfF.escolha=0;
  106. personagem.classe.elfD.escolha=0;
  107. personagem.classe.dwarf.escolha=0;
  108. personagem.classe.half.escolha=0;
  109.  
  110. personagem.classe.human.forca=5;
  111. personagem.classe.human.hab=3;
  112. personagem.classe.human.resist=2;
  113. personagem.classe.human.armor=2;
  114. personagem.classe.human.firep=2;
  115. personagem.classe.human.pVIDA=5;
  116. personagem.classe.human.pMANA=5;
  117.  
  118. personagem.classe.elfF.forca=2;
  119. personagem.classe.elfF.hab=5;
  120. personagem.classe.elfF.resist=1;
  121. personagem.classe.elfF.armor=1;
  122. personagem.classe.elfF.firep=2;
  123. personagem.classe.elfF.pVIDA=3;
  124. personagem.classe.elfF.pMANA=5;
  125.  
  126. personagem.classe.elfD.forca=1;
  127. personagem.classe.elfD.hab=2;
  128. personagem.classe.elfD.resist=1;
  129. personagem.classe.elfD.armor=1;
  130. personagem.classe.elfD.firep=7;
  131. personagem.classe.elfD.pVIDA=2;
  132. personagem.classe.elfD.pMANA=10;
  133.  
  134. personagem.classe.dwarf.forca=7;
  135. personagem.classe.dwarf.hab=1;
  136. personagem.classe.dwarf.resist=5;
  137. personagem.classe.dwarf.armor=4;
  138. personagem.classe.dwarf.firep=1;
  139. personagem.classe.dwarf.pVIDA=8;
  140. personagem.classe.dwarf.pMANA=1;
  141.  
  142. personagem.classe.half.forca=1;
  143. personagem.classe.half.hab=7;
  144. personagem.classe.half.resist=1;
  145. personagem.classe.half.armor=1;
  146. personagem.classe.half.firep=7;
  147. personagem.classe.half.pVIDA=3;
  148. personagem.classe.half.pMANA=2;
  149.  
  150. printf("Bem-vindo ao joguinho.\n");
  151. system("pause");
  152.  
  153. system("ClS");
  154. while(tamanho<6)
  155. {
  156. printf("Digite o nome do seu personagem:\n");
  157. fflush(stdin);
  158. gets(personagem.nome);
  159. tamanho = strlen(personagem.nome);
  160. if(tamanho<6)
  161. printf("O nome do personagem precisa ter mais do que 5 caracteres.\n");
  162. }
  163.  
  164. while(personagem.idade<15 || personagem.idade>99)
  165. {
  166. printf("\nDigite a idade do seu personagem:\n");
  167. scanf("%d", &personagem.idade);
  168. if(personagem.idade<15)
  169. printf("Personagem muito novo.\n");
  170. else if(personagem.idade>99)
  171. printf("Personagem muito velho.\n");
  172. }
  173.  
  174. while(personagem.sexo!=1 || personagem.sexo!=2)
  175. {
  176. printf("\nQual o sexo do seu personagem?\n");
  177. printf("Opção 1: Masculino.\n");
  178. printf("Opção 2: Feminino.\n");
  179. scanf("%d", &personagem.sexo);
  180. if(personagem.sexo<1 || personagem.sexo>2)
  181. printf("Opção inválida.\n\n");
  182. else
  183. break;
  184. }
  185.  
  186. system("ClS");
  187. menu_inicial:
  188. printf("%s, customize seu personagem.\nTODAS as opções abaixo impactarão do futuro do seu personagem.\n\n", personagem.nome);
  189. printf("Opção 1: Aparência.\n");
  190. printf("Opção 2: História.\n");
  191. printf("Opção 3: Atributos e vocações.\n");
  192. printf("Opção 4: Ajuda.\n");
  193. printf("Opção 5: Pular e gerar personagem aleatório (não recomendado).\n");
  194. printf("Opção 6: Tudo pronto, vamos começar.\n");
  195. scanf("%d", &op);
  196. system("ClS");
  197. do
  198. {
  199. switch(op)
  200. {
  201. case 1:
  202. do
  203. {
  204. printf("Opção 1: Cor do cabelo.\n");
  205. printf("Opção 2: Cor dos olhos.\n");
  206. printf("Opção 3: Cor da pele.\n");
  207. printf("Opção 4: Peso e musculatura.\n");
  208. printf("Opção 5: Atributos de beleza.\n");
  209. printf("Opção 6: Voltar ao menu anterior.\n");
  210. scanf("%d", &op);
  211. switch(op)
  212. {
  213. case 1:
  214. system("ClS");
  215. printf("Qual será a cor dos cabelos do seu personagem?\n\n");
  216. printf("Opção 1: Loiro.\n");
  217. printf("Opção 2: Castanho.\n");
  218. printf("Opção 3: Preto.\n");
  219. printf("Opção 4: Ruivo.\n");
  220. printf("Opção 5: Careca.\n");
  221. scanf("%d", &personagem.cabelo);
  222. switch(personagem.cabelo)
  223. {
  224. case 1:
  225. strcpy(personagemSTRCabelo, "Loiro");
  226. break;
  227. case 2:
  228. strcpy(personagemSTRCabelo, "Castanho");
  229. break;
  230. case 3:
  231. strcpy(personagemSTRCabelo, "Preto");
  232. break;
  233. case 4:
  234. strcpy(personagemSTRCabelo, "Ruivo");
  235. break;
  236. case 5:
  237. strcpy(personagemSTRCabelo, "Careca");
  238. break;
  239. default:
  240. printf("Opção inválida.\n\n");
  241. personagem.cabelo=0;
  242. goto menu_inicial;
  243. }
  244. case 2:
  245. system("ClS");
  246. printf("Qual será a cor dos olhos do seu personagem?\n\n");
  247. printf("Opção 1: Azul.\n");
  248. printf("Opção 2: Mel.\n");
  249. printf("Opção 3: Preto.\n");
  250. printf("Opção 4: Verde.\n");
  251. printf("Opção 5: Cinza.\n");
  252. scanf("%d", &personagem.olho);
  253. switch(personagem.olho)
  254. {
  255. case 1:
  256. strcpy(personagemSTROlho, "Azul");
  257. break;
  258. case 2:
  259. strcpy(personagemSTROlho, "Mel");
  260. break;
  261. case 3:
  262. strcpy(personagemSTROlho, "Preto");
  263. break;
  264. case 4:
  265. strcpy(personagemSTROlho, "Verde");
  266. break;
  267. case 5:
  268. strcpy(personagemSTROlho, "Cinza");
  269. break;
  270. default:
  271. printf("Opção inválida.\n\n");
  272. personagem.olho=0;
  273. goto menu_inicial;
  274. }
  275. case 3:
  276. system("ClS");
  277. printf("Qual será a cor da pele do seu personagem?\n\n");
  278. printf("Opção 1: Caucasiano (muito claro).\n");
  279. printf("Opção 2: Caucasiano (mediterrâneo).\n");
  280. printf("Opção 3: Pardo.\n");
  281. printf("Opção 4: Negro.\n");
  282. scanf("%d", &personagem.pele);
  283. switch(personagem.pele)
  284. {
  285. case 1:
  286. strcpy(personagemSTRPele, "Caucasiano (muito claro)");
  287. break;
  288. case 2:
  289. strcpy(personagemSTRPele, "Caucasiano (mediterrâneo)");
  290. break;
  291. case 3:
  292. strcpy(personagemSTRPele, "Pardo");
  293. break;
  294. case 4:
  295. strcpy(personagemSTRPele, "Negro");
  296. break;
  297. default:
  298. printf("Opção inválida.\n\n");
  299. personagem.pele=0;
  300. goto menu_inicial;
  301. }
  302. case 4:
  303. system("ClS");
  304. printf("Como será o corpo do seu personagem?\n\n");
  305. printf("Opção 1: Obeso com pouquíssima massa muscular.\n");
  306. printf("Opção 2: Levemente obeso e com pouca massa muscular.\n");
  307. printf("Opção 3: Magro (skynny) com pouca massa muscular.\n");
  308. printf("Opção 4: Encorpado, magro, com razoável nível de massa muscular.\n");
  309. printf("Opção 5: Encorpado, magro e forte, com considerável nível de massa muscular.\n");
  310. printf("Opção 6: Forte e com muita massa muscular.\n");
  311. scanf("%d", &personagem.corpo);
  312. switch(personagem.corpo)
  313. {
  314. case 1:
  315. strcpy(personagemSTRCorpo, "Obeso com pouquíssima massa muscular");
  316. break;
  317. case 2:
  318. strcpy(personagemSTRCorpo, "Levemente obeso e com pouca massa muscular");
  319. break;
  320. case 3:
  321. strcpy(personagemSTRCorpo, "Magro (skynny) com pouca massa muscular");
  322. break;
  323. case 4:
  324. strcpy(personagemSTRCorpo, "Encorpado, magro, com razoável nível de massa muscular");
  325. break;
  326. case 5:
  327. strcpy(personagemSTRCorpo, "Encorpado, magro e forte, com considerável nível de massa\nmuscular");
  328. break;
  329. case 6:
  330. strcpy(personagemSTRCorpo, "Forte e com muita massa muscular");
  331. break;
  332. default:
  333. printf("Opção inválida.\n\n");
  334. personagem.corpo=0;
  335. goto menu_inicial;
  336. }
  337. case 5:
  338. system("ClS");
  339. printf("Atributos de beleza:\n");
  340. printf("Opção 1: Barba (apenas personagens masculinos).\n");
  341. printf("Opção 2: Etiqueta e Sagacidade.\n");
  342. printf("Opção 3: Altura.\n");
  343. printf("Opção 4: Busto (apenas personagens femininos).\n");
  344. scanf("%d", &op);
  345. switch(op)
  346. {
  347. case 1:
  348. if(personagem.sexo==2)
  349. {
  350. printf("Apenas personagens masculinos podem escolher a barba.\nPersonagens femininos não possuem barba.\n\n");
  351. goto menu_inicial;
  352. }
  353. else
  354. {
  355. system("ClS");
  356. printf("Escolha o tipo de barba do seu personagem.\nA barba terá a mesma cor do cabelo.\n\n");
  357. printf("Opção 1: Sem barba.\n");
  358. printf("Opção 2: Barba rala (mal feita).\n");
  359. printf("Opção 3: Barba cheia, pequena.\n");
  360. printf("Opção 4: Barba cheia, média.\n");
  361. printf("Opção 5: Barba cheia, grande.\n");
  362. scanf("%d", &personagem.tipo.barba);
  363. switch(personagem.tipo.barba)
  364. {
  365. case 1:
  366. strcpy(personagemSTRBarba, "Sem barba");
  367. break;
  368. case 2:
  369. strcpy(personagemSTRBarba, "Barba rala (mal feita)");
  370. break;
  371. case 3:
  372. strcpy(personagemSTRBarba, "Barba cheia, pequena");
  373. break;
  374. case 4:
  375. strcpy(personagemSTRBarba, "Barba cheia, média");
  376. break;
  377. case 5:
  378. strcpy(personagemSTRBarba, "Barba cheia, grande");
  379. break;
  380. default:
  381. printf("Opção inválida.\n\n");
  382. personagem.tipo.barba=0;
  383. goto menu_inicial;
  384. }
  385. }
  386. case 2:
  387. system("ClS");
  388. printf("Escolha o nível de educação/sagacidade do seu personagem.\n\n");
  389. printf("Opção 1: Ignorante, nenhum conhecimento específico e\nnada de streetwise.\n");
  390. printf("Opção 2: Educação informal, pouco ou nenhum conhecimento específico,\ncom pouco streetwise (médio).\n");
  391. printf("Opção 3: Educação informal, mas sabe como a banda toca, alto streetwise.\n");
  392. printf("Opção 4: Educação formal, tem conhecimento específico, mas apenas\nsuperficialmente, quase nenhum streetwise.\n");
  393. printf("Opção 5: Educação formal, alto conhecimento específico, nenhum streetwise.\n");
  394. scanf("%d", &personagem.tipo.etiqueta);
  395. switch(personagem.tipo.etiqueta)
  396. {
  397. case 1:
  398. strcpy(personagemSTREtiqueta, "Ignorante, nenhum conhecimento específico e nada de\nstreetwise");
  399. break;
  400. case 2:
  401. strcpy(personagemSTREtiqueta, "Educação informal, pouco ou nenhum conhecimento\nespecífico, com pouco streetwise (médio)");
  402. break;
  403. case 3:
  404. strcpy(personagemSTREtiqueta, "Educação informal, mas sabe como a banda toca, alto\nstreetwise");
  405. break;
  406. case 4:
  407. strcpy(personagemSTREtiqueta, "Educação formal, tem conhecimento específico, mas apenas\nsuperficialmente, quase nenhum streetwise");
  408. break;
  409. case 5:
  410. strcpy(personagemSTREtiqueta, "Educação formal, alto conhecimento específico, nenhum\nstreetwise");
  411. break;
  412. default:
  413. printf("Opção inválida.\n\n");
  414. personagem.tipo.etiqueta=0;
  415. goto menu_inicial;
  416. }
  417. case 3:
  418. system("ClS");
  419. printf("Digite a altura do seu personagem.\n\n");
  420. printf("Não digite m ou cm no final do número.\nNão digite ponto, utilize vírgula.\n");
  421. printf("Exemplo de altura aceita: 1,75\n");
  422. printf("Altura mínima: 1.5 Altura máxima: 2.1\n");
  423. scanf("%f", &personagem.altura);
  424. if(personagem.altura<1.5)
  425. {
  426. printf("Personagem muito baixo.\n");
  427. personagem.altura=0;
  428. goto menu_inicial;
  429. }
  430. else if(personagem.altura>2.1)
  431. {
  432. printf("Personagem muito alto.\n");
  433. personagem.altura=0;
  434. goto menu_inicial;
  435. }
  436. break;
  437. case 4:
  438. if(personagem.sexo==1)
  439. {
  440. printf("Apenas personagens femininos podem escolher o busto.\nPersonagens masculinos não possuem busto.\n\n");
  441. goto menu_inicial;
  442. }
  443. else
  444. {
  445. system("ClS");
  446. printf("Escolha o tipo de busto do seu personagem.\n\n");
  447. printf("Opção 1: Pequeno.\n");
  448. printf("Opção 2: Médio.\n");
  449. printf("Opção 3: Grande.\n");
  450. scanf("%d", &personagem.tipo.busto);
  451. switch(personagem.tipo.busto)
  452. {
  453. case 1:
  454. strcpy(personagemSTRBusto, "Pequeno");
  455. goto menu_inicial;
  456. case 2:
  457. strcpy(personagemSTRBusto, "Médio");
  458. goto menu_inicial;
  459. case 3:
  460. strcpy(personagemSTRBusto, "Grande");
  461. goto menu_inicial;
  462. default:
  463. printf("Opção inválida.\n\n");
  464. personagem.tipo.busto=0;
  465. goto menu_inicial;
  466. }
  467. }
  468. default:
  469. printf("Opção inválida.\n");
  470. goto menu_inicial;
  471. }
  472. case 6:
  473. system("ClS");
  474. goto menu_inicial;
  475. default:
  476. system("ClS");
  477. printf("Opção inválida.\n\n");
  478. }
  479. }while(op!=6);
  480. case 2:
  481. do
  482. {
  483. printf("Defina a história do seu personagem.\n");
  484. printf("Atenção, alguns detalhes da história serão escolhidos aleatoriamente\nbaseados na aparência e atributos do seu personagem.\n\n");
  485. printf("Opção 1: Infância e adolescência.\n");
  486. printf("Opção 2: Morte de alguém próximo ao personagem.\n");
  487. printf("Opção 3: História da arma do personagem.\n");
  488. printf("Opção 4: Voltar ao menu anterior.\n");
  489. scanf("%d", &op);
  490. switch(op)
  491. {
  492. case 1:
  493. system("ClS");
  494. printf("Defina a história da infância e adolescência do seu personagem.\n\n");
  495. printf("Opção 1: Abusos na infância.\n");
  496. printf("Opção 2: Dificuldades na infância.\n");
  497. printf("Opção 3: Grandes experiências na infância.\n");
  498. printf("Opção 4: Voltar ao menu anterior.\n");
  499. scanf("%d", &op);
  500. switch(op)
  501. {
  502. case 1:
  503. system("ClS");
  504. printf("Quais tipos de abusos o seu personagem sofreu na infância?\nEscolha somente UMA opção.\n\n");
  505. printf("Opção 1: Abusos sexuais.\n");
  506. printf("Opção 2: Abusos de trabalhos.\n");
  507. printf("Opção 3: Nenhum abuso.\n");
  508. scanf("%d", &personagem.historia.infancia);
  509. if(personagem.historia.infancia<1 || personagem.historia.infancia>3)
  510. {
  511. system("ClS");
  512. printf("Opção inválida.\n\n");
  513. personagem.historia.infancia=0;
  514. goto menu_inicial;
  515. }
  516. else if(personagem.historia.infancia==1 || personagem.historia.infancia==2)
  517. {
  518. system("ClS");
  519. printf("Descreva o abuso do seu personagem na infância:\n");
  520. fflush(stdin);
  521. gets(personagem.historia.descricao1);
  522. }
  523. else
  524. strcpy(personagem.historia.descricao1, "Não tenho nenhuma história sobre isso.");
  525. break;
  526. case 2:
  527. system("ClS");
  528. printf("Quais tipos de dificuldades o seu personagem sofreu na infância?\nEscolha somente UMA opção.\n\n");
  529. printf("Opção 1: Financeira.\n");
  530. printf("Opção 2: Fome.\n");
  531. printf("Opção 3: Bullying.\n");
  532. printf("Opção 4: Nenhuma dificuldade.\n");
  533. scanf("%d", &personagem.historia.dif);
  534. if(personagem.historia.dif<1 || personagem.historia.dif>4)
  535. {
  536. system("ClS");
  537. printf("Opção inválida.\n\n");
  538. personagem.historia.dif=0;
  539. goto menu_inicial;
  540. }
  541. else if(personagem.historia.dif>=1 && personagem.historia.dif<=3)
  542. {
  543. system("ClS");
  544. printf("Descreva a dificuldade do seu personagem da infância:\n");
  545. fflush(stdin);
  546. gets(personagem.historia.descricao2);
  547. }
  548. else
  549. strcpy(personagem.historia.descricao2, "Não tenho nenhuma história sobre isso.");
  550. break;
  551. case 3:
  552. system("ClS");
  553. printf("Quais foram as grandes experiências que seu personagem teve na infância?\nEscolha somente UMA opção.\n\n");
  554. printf("Opção 1: Um grande mestre de magia.\n");
  555. printf("Opção 2: Um grande mestre de luta corpo-a-corpo.\n");
  556. printf("Opção 3: Um grande mestre de luta à distância.\n");
  557. printf("Opção 4: Nenhuma grande experiência.\n");
  558. scanf("%d", &personagem.historia.consideracao);
  559. if(personagem.historia.consideracao<1 || personagem.historia.consideracao>4)
  560. {
  561. system("ClS");
  562. printf("Opção inválida.\n\n");
  563. personagem.historia.consideracao=0;
  564. goto menu_inicial;
  565. }
  566. else if(personagem.historia.consideracao>=1 && personagem.historia.consideracao<=3)
  567. {
  568. system("ClS");
  569. printf("Descreva a experiência do seu personagem:\n");
  570. fflush(stdin);
  571. gets(personagem.historia.descricao3);
  572. }
  573. else
  574. strcpy(personagem.historia.descricao3, "Não tenho nenhuma história sobre isso.");
  575. break;
  576. case 4:
  577. system("ClS");
  578. goto menu_inicial;
  579. default:
  580. system("ClS");
  581. printf("Opção inválida.\n\n");
  582. goto menu_inicial;
  583. }
  584. break;
  585. case 2:
  586. system("ClS");
  587. printf("Houve alguma morte traumatizante na vida do personagem?\n\n");
  588. printf("Opção 1: Sim.\n");
  589. printf("Opção 2: Não.\n");
  590. scanf("%d", &op);
  591. switch(op)
  592. {
  593. case 1:
  594. system("ClS");
  595. printf("Descreva a morte que traumatizou o personagem:\n");
  596. fflush(stdin);
  597. gets(personagem.historia.descricao4);
  598. goto menu_inicial;
  599. case 2:
  600. system("ClS");
  601. strcpy(personagem.historia.descricao4, "Não tenho nenhuma história sobre isso.");
  602. goto menu_inicial;
  603. default:
  604. system("ClS");
  605. printf("Opção inválida.\n\n");
  606. goto menu_inicial;
  607. }
  608. case 3:
  609. system("ClS");
  610. printf("Descreva a arma do seu personagem.\nEscolha somente UMA opção.\n\n");
  611. printf("Opção 1: Histórias de antigas guerras.\n");
  612. printf("Opção 2: História sobre como ganhou a arma.\n");
  613. printf("Opção 3: Nenhuma história.\n");
  614. scanf("%d", &op);
  615. switch(op)
  616. {
  617. case 1:
  618. printf("Descreva as histórias de antigas batalhas da arma do seu personagem:\n");
  619. fflush(stdin);
  620. gets(personagem.historia.descricao5);
  621. break;
  622. case 2:
  623. printf("Descreva a história de como conseguiu sua arma:\n");
  624. fflush(stdin);
  625. gets(personagem.historia.descricao5);
  626. case 3:
  627. system("ClS");
  628. strcpy(personagem.historia.descricao5, "Não tenho nenhuma história sobre isso.");
  629. goto menu_inicial;
  630. default:
  631. system("ClS");
  632. printf("Opção inválida.\n\n");
  633. goto menu_inicial;
  634. }
  635. case 4:
  636. system("ClS");
  637. goto menu_inicial;
  638. default:
  639. system("ClS");
  640. printf("Opção inválida.\n\n");
  641. goto menu_inicial;
  642. }
  643. }while(op!=4);
  644. case 3:
  645. do
  646. {
  647. system("ClS");
  648. printf("Defina os atributos e vocações do seu personagem.\n\n====================\n");
  649. printf("Classe: HUMANO\n");
  650. printf("Força base: 5\n");
  651. printf("Habilidade base: 3\n");
  652. printf("Resistência base: 2\n");
  653. printf("Armadura base: 2\n");
  654. printf("Poder de Fogo base: 2\n");
  655. printf("Pontos de Vida base: 5\n");
  656. printf("Pontos de Mana base: 5\n");
  657. printf("Caracteristicas: Classe intermediária entre guerreiro, mago e\narqueiro (ataque à distância).\n");
  658. printf("====================\n");
  659. printf("Classe: ELFO DA FLORESTA\n");
  660. printf("Força base: 2\n");
  661. printf("Habilidade base: 5\n");
  662. printf("Resistência base: 1\n");
  663. printf("Armadura base: 1\n");
  664. printf("Poder de Fogo base: 2\n");
  665. printf("Pontos de Vida base: 3\n");
  666. printf("Pontos de Mana base: 5\n");
  667. printf("Caracteristicas: Classe focada em ataque à distância.\n");
  668. printf("====================\n");
  669. printf("Classe: DARK ELFO\n");
  670. printf("Força base: 1\n");
  671. printf("Habilidade base: 2\n");
  672. printf("Resistência base: 1\n");
  673. printf("Armadura base: 1\n");
  674. printf("Poder de Fogo base: 7\n");
  675. printf("Pontos de Vida base: 2\n");
  676. printf("Pontos de Mana base: 10\n");
  677. printf("Caracteristicas: Classe focada em magias.\n");
  678. printf("====================\n");
  679. printf("Classe: DWARF\n");
  680. printf("Força base: 7\n");
  681. printf("Habilidade base: 1\n");
  682. printf("Resistência base: 5\n");
  683. printf("Armadura base: 4\n");
  684. printf("Poder de Fogo base: 1\n");
  685. printf("Pontos de Vida base: 8\n");
  686. printf("Pontos de Mana base: 1\n");
  687. printf("Caracteristicas: Classe focada em combate corpo-a-corpo.\n");
  688. printf("====================\n");
  689. printf("Classe: HALFLING\n");
  690. printf("Força base: 1\n");
  691. printf("Habilidade base: 7\n");
  692. printf("Resistência base: 1\n");
  693. printf("Armadura base: 1\n");
  694. printf("Poder de Fogo base: 1\n");
  695. printf("Pontos de Vida base: 3\n");
  696. printf("Pontos de Mana base: 2\n");
  697. printf("Caracteristicas: Classe focada em ações rápidas, como furtos e distrações.\n\n");
  698. printf("Escolha sua classe.\n");
  699. printf("Opção 1: Humano.\n");
  700. printf("Opção 2: Elfo da Floresta.\n");
  701. printf("Opção 3: Dark Elfo.\n");
  702. printf("Opção 4: Dwarf.\n");
  703. printf("Opção 5: Halfling.\n");
  704. printf("Opção 6: Voltar ao menu anterior.\n");
  705. scanf("%d", &op);
  706. switch(op)
  707. {
  708. case 1:
  709. system("ClS");
  710. personagem.classe.human.escolha=1;
  711. personagem.classe.elfF.escolha=0;
  712. personagem.classe.elfD.escolha=0;
  713. personagem.classe.dwarf.escolha=0;
  714. personagem.classe.half.escolha=0;
  715. personagem.classe.human.forca=5;
  716. personagem.classe.human.hab=3;
  717. personagem.classe.human.resist=2;
  718. personagem.classe.human.armor=2;
  719. personagem.classe.human.firep=2;
  720. personagem.classe.human.pVIDA=5;
  721. personagem.classe.human.pMANA=5;
  722. strcpy(personagemSTRVocacao, "Humano");
  723. printf("Certo, humano, monte sua ficha.\n\n");
  724. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  725. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  726. printf("Resultado do d20: %d\n", dado);
  727. do{
  728. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  729. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  730. printf("Opção 1: Força.\n");
  731. printf("Opção 2: Habilidade.\n");
  732. printf("Opção 3: Resistência.\n");
  733. printf("Opção 4: Armadura.\n");
  734. printf("Opção 5: Poder de Fogo.\n");
  735. printf("Opção 6: Pontos de Vida.\n");
  736. printf("Opção 7: Pontos de Mana.\n");
  737. scanf("%d", &op);
  738. switch(op)
  739. {
  740. case 1:
  741. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  742. personagem.classe.human.forca=personagem.classe.human.forca+1;
  743. dado--;
  744. break;
  745. case 2:
  746. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  747. personagem.classe.human.hab=personagem.classe.human.hab+1;
  748. dado--;
  749. break;
  750. case 3:
  751. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  752. personagem.classe.human.resist=personagem.classe.human.resist+1;
  753. dado--;
  754. break;
  755. case 4:
  756. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  757. personagem.classe.human.armor=personagem.classe.human.armor+1;
  758. dado--;
  759. break;
  760. case 5:
  761. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  762. personagem.classe.human.firep=personagem.classe.human.firep+1;
  763. dado--;
  764. break;
  765. case 6:
  766. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  767. personagem.classe.human.pVIDA=personagem.classe.human.pVIDA+1;
  768. dado--;
  769. break;
  770. case 7:
  771. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  772. personagem.classe.human.pMANA=personagem.classe.human.pMANA+1;
  773. dado--;
  774. break;
  775. default:
  776. printf("Opção inválida.\n\n");
  777.  
  778. }
  779. }while(dado!=0);
  780. if (dado==0)
  781. {
  782. system("ClS");
  783. printf("\nVocê distribuiu todos os pontos.\nNão retorne ao menu de distribuição ou sua ficha será substituída por uma nova.\n\n");
  784. goto menu_inicial;
  785. }
  786. break;
  787. case 2:
  788. system("ClS");
  789. personagem.classe.human.escolha=0;
  790. personagem.classe.elfF.escolha=1;
  791. personagem.classe.elfD.escolha=0;
  792. personagem.classe.dwarf.escolha=0;
  793. personagem.classe.half.escolha=0;
  794. personagem.classe.elfF.forca=2;
  795. personagem.classe.elfF.hab=5;
  796. personagem.classe.elfF.resist=1;
  797. personagem.classe.elfF.armor=1;
  798. personagem.classe.elfF.firep=2;
  799. personagem.classe.elfF.pVIDA=3;
  800. personagem.classe.elfF.pMANA=5;
  801. strcpy(personagemSTRVocacao, "Elfo da Floresta");
  802. printf("Nai anar kaluva tielyanna, elfo da floresta, monte sua ficha.\n\n");
  803. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  804. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  805. printf("Resultado do d20: %d\n", dado);
  806. do{
  807. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  808. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  809. printf("Opção 1: Força.\n");
  810. printf("Opção 2: Habilidade.\n");
  811. printf("Opção 3: Resistência.\n");
  812. printf("Opção 4: Armadura.\n");
  813. printf("Opção 5: Poder de Fogo.\n");
  814. printf("Opção 6: Pontos de Vida.\n");
  815. printf("Opção 7: Pontos de Mana.\n");
  816. scanf("%d", &op);
  817. switch(op)
  818. {
  819. case 1:
  820. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  821. personagem.classe.elfF.forca=personagem.classe.elfF.forca+1;
  822. dado--;
  823. break;
  824. case 2:
  825. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  826. personagem.classe.elfF.hab=personagem.classe.elfF.hab+1;
  827. dado--;
  828. break;
  829. case 3:
  830. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  831. personagem.classe.elfF.resist=personagem.classe.elfF.resist+1;
  832. dado--;
  833. break;
  834. case 4:
  835. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  836. personagem.classe.elfF.armor=personagem.classe.elfF.armor+1;
  837. dado--;
  838. break;
  839. case 5:
  840. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  841. personagem.classe.elfF.firep=personagem.classe.elfF.firep+1;
  842. dado--;
  843. break;
  844. case 6:
  845. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  846. personagem.classe.elfF.pVIDA=personagem.classe.elfF.pVIDA+1;
  847. dado--;
  848. break;
  849. case 7:
  850. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  851. personagem.classe.elfF.pMANA=personagem.classe.elfF.pMANA+1;
  852. dado--;
  853. break;
  854. default:
  855. printf("Opção inválida.\n\n");
  856. }
  857. }while(dado!=0);
  858. if (dado==0)
  859. {
  860. system("ClS");
  861. printf("\nVocê distribuiu todos os pontos.\nNão retorne ao menu de distribuição ou sua ficha será substituída por uma nova.\n\n");
  862. goto menu_inicial;
  863. }
  864. break;
  865. case 3:
  866. system("ClS");
  867. personagem.classe.human.escolha=0;
  868. personagem.classe.elfF.escolha=0;
  869. personagem.classe.elfD.escolha=1;
  870. personagem.classe.dwarf.escolha=0;
  871. personagem.classe.half.escolha=0;
  872. personagem.classe.elfD.forca=1;
  873. personagem.classe.elfD.hab=2;
  874. personagem.classe.elfD.resist=1;
  875. personagem.classe.elfD.armor=1;
  876. personagem.classe.elfD.firep=7;
  877. personagem.classe.elfD.pVIDA=2;
  878. personagem.classe.elfD.pMANA=10;
  879. strcpy(personagemSTRVocacao, "Dark Elfo");
  880. printf("Harië malta úva carë nér anwavë alya, dark elfo, monte sua ficha.\n\n");
  881. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  882. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  883. printf("Resultado do d20: %d\n", dado);
  884. do{
  885. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  886. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  887. printf("Opção 1: Força.\n");
  888. printf("Opção 2: Habilidade.\n");
  889. printf("Opção 3: Resistência.\n");
  890. printf("Opção 4: Armadura.\n");
  891. printf("Opção 5: Poder de Fogo.\n");
  892. printf("Opção 6: Pontos de Vida.\n");
  893. printf("Opção 7: Pontos de Mana.\n");
  894. scanf("%d", &op);
  895. switch(op)
  896. {
  897. case 1:
  898. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  899. personagem.classe.elfD.forca=personagem.classe.elfD.forca+1;
  900. dado--;
  901. break;
  902. case 2:
  903. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  904. personagem.classe.elfD.hab=personagem.classe.elfD.hab+1;
  905. dado--;
  906. break;
  907. case 3:
  908. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  909. personagem.classe.elfD.resist=personagem.classe.elfD.resist+1;
  910. dado--;
  911. break;
  912. case 4:
  913. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  914. personagem.classe.elfD.armor=personagem.classe.elfD.armor+1;
  915. dado--;
  916. break;
  917. case 5:
  918. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  919. personagem.classe.elfD.firep=personagem.classe.elfD.firep+1;
  920. dado--;
  921. break;
  922. case 6:
  923. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  924. personagem.classe.elfD.pVIDA=personagem.classe.elfD.pVIDA+1;
  925. dado--;
  926. break;
  927. case 7:
  928. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  929. personagem.classe.elfD.pMANA=personagem.classe.elfD.pMANA+1;
  930. dado--;
  931. break;
  932. default:
  933. printf("Opção inválida.\n\n");
  934. }
  935. }while(dado!=0);
  936. if (dado==0)
  937. {
  938. system("ClS");
  939. printf("\nVocê distribuiu todos os pontos.\nNão retorne ao menu de distribuição ou sua ficha será substituída por uma nova.\n\n");
  940. goto menu_inicial;
  941. }
  942. break;
  943. case 4:
  944. system("ClS");
  945. personagem.classe.human.escolha=0;
  946. personagem.classe.elfF.escolha=0;
  947. personagem.classe.elfD.escolha=0;
  948. personagem.classe.dwarf.escolha=1;
  949. personagem.classe.half.escolha=0;
  950. personagem.classe.dwarf.forca=7;
  951. personagem.classe.dwarf.hab=1;
  952. personagem.classe.dwarf.resist=5;
  953. personagem.classe.dwarf.armor=4;
  954. personagem.classe.dwarf.firep=1;
  955. personagem.classe.dwarf.pVIDA=8;
  956. personagem.classe.dwarf.pMANA=1;
  957. strcpy(personagemSTRVocacao, "Dwarf");
  958. printf("Hail Durin, anão, monte sua ficha.\n\n");
  959. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  960. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  961. printf("Resultado do d20: %d\n", dado);
  962. do{
  963. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  964. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  965. printf("Opção 1: Força.\n");
  966. printf("Opção 2: Habilidade.\n");
  967. printf("Opção 3: Resistência.\n");
  968. printf("Opção 4: Armadura.\n");
  969. printf("Opção 5: Poder de Fogo.\n");
  970. printf("Opção 6: Pontos de Vida.\n");
  971. printf("Opção 7: Pontos de Mana.\n");
  972. scanf("%d", &op);
  973. switch(op)
  974. {
  975. case 1:
  976. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  977. personagem.classe.dwarf.forca=personagem.classe.dwarf.forca+1;
  978. dado--;
  979. break;
  980. case 2:
  981. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  982. personagem.classe.dwarf.hab=personagem.classe.dwarf.hab+1;
  983. dado--;
  984. break;
  985. case 3:
  986. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  987. personagem.classe.dwarf.resist=personagem.classe.dwarf.resist+1;
  988. dado--;
  989. break;
  990. case 4:
  991. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  992. personagem.classe.dwarf.armor=personagem.classe.dwarf.armor+1;
  993. dado--;
  994. break;
  995. case 5:
  996. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  997. personagem.classe.dwarf.firep=personagem.classe.dwarf.firep+1;
  998. dado--;
  999. break;
  1000. case 6:
  1001. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1002. personagem.classe.dwarf.pVIDA=personagem.classe.dwarf.pVIDA+1;
  1003. dado--;
  1004. break;
  1005. case 7:
  1006. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1007. personagem.classe.dwarf.pMANA=personagem.classe.dwarf.pMANA+1;
  1008. dado--;
  1009. break;
  1010. default:
  1011. printf("Opção inválida.\n\n");
  1012. }
  1013. }while(dado!=0);
  1014. if (dado==0)
  1015. {
  1016. system("ClS");
  1017. printf("\nVocê distribuiu todos os pontos.\nNão retorne ao menu de distribuição ou sua ficha será substituída por uma nova.\n\n");
  1018. goto menu_inicial;
  1019. }
  1020. break;
  1021. case 5:
  1022. system("ClS");
  1023. personagem.classe.human.escolha=0;
  1024. personagem.classe.elfF.escolha=0;
  1025. personagem.classe.elfD.escolha=0;
  1026. personagem.classe.dwarf.escolha=0;
  1027. personagem.classe.half.escolha=1;
  1028. personagem.classe.half.forca=1;
  1029. personagem.classe.half.hab=7;
  1030. personagem.classe.half.resist=1;
  1031. personagem.classe.half.armor=1;
  1032. personagem.classe.half.firep=7;
  1033. personagem.classe.half.pVIDA=3;
  1034. personagem.classe.half.pMANA=2;
  1035. strcpy(personagemSTRVocacao, "Halfling");
  1036. printf("A beleza está nas pequenas coisas, pequeno, monte sua ficha.\n\n");
  1037. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  1038. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  1039. printf("Resultado do d20: %d\n", dado);
  1040. do{
  1041. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  1042. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  1043. printf("Opção 1: Força.\n");
  1044. printf("Opção 2: Habilidade.\n");
  1045. printf("Opção 3: Resistência.\n");
  1046. printf("Opção 4: Armadura.\n");
  1047. printf("Opção 5: Poder de Fogo.\n");
  1048. printf("Opção 6: Pontos de Vida.\n");
  1049. printf("Opção 7: Pontos de Mana.\n");
  1050. scanf("%d", &op);
  1051. switch(op)
  1052. {
  1053. case 1:
  1054. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  1055. personagem.classe.half.forca=personagem.classe.half.forca+1;
  1056. dado--;
  1057. break;
  1058. case 2:
  1059. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  1060. personagem.classe.half.hab=personagem.classe.half.hab+1;
  1061. dado--;
  1062. break;
  1063. case 3:
  1064. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  1065. personagem.classe.half.resist=personagem.classe.half.resist+1;
  1066. dado--;
  1067. break;
  1068. case 4:
  1069. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  1070. personagem.classe.half.armor=personagem.classe.half.armor+1;
  1071. dado--;
  1072. break;
  1073. case 5:
  1074. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  1075. personagem.classe.half.firep=personagem.classe.half.firep+1;
  1076. dado--;
  1077. break;
  1078. case 6:
  1079. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1080. personagem.classe.half.pVIDA=personagem.classe.half.pVIDA+1;
  1081. dado--;
  1082. break;
  1083. case 7:
  1084. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1085. personagem.classe.half.pMANA=personagem.classe.half.pMANA+1;
  1086. dado--;
  1087. break;
  1088. default:
  1089. printf("Opção inválida.\n\n");
  1090. }
  1091. }while(dado!=0);
  1092. if (dado==0)
  1093. {
  1094. system("ClS");
  1095. printf("\nVocê distribuiu todos os pontos.\nNão retorne ao menu de distribuição ou sua ficha será substituída por uma nova.\n\n");
  1096. goto menu_inicial;
  1097. }
  1098. break;
  1099. case 6:
  1100. system("ClS");
  1101. goto menu_inicial;
  1102. default:
  1103. system("ClS");
  1104. printf("Opção inválida.\n\n");
  1105. goto menu_inicial;
  1106. }
  1107. }while(op!=6);
  1108. case 4:
  1109. do
  1110. {
  1111. printf("Escolha uma opção abaixo.\n\n");
  1112. printf("Opção 1: Ajuda com a Aparência.\n");
  1113. printf("Opção 2: Ajuda com a História.\n");
  1114. printf("Opção 3: Ajuda com Atributos e vocações.\n");
  1115. printf("Opção 4: Voltar ao menu anterior.\n");
  1116. scanf("%d", &op);
  1117. switch(op)
  1118. {
  1119. case 1:
  1120. system("ClS");
  1121. printf("A aparência impactará no nível de streetwise do seu personagem.\nPor exemplo, se você optou por seu personagem ser obeso, você\nreceberá um redutor no d20, quando o streetwise for definido.\nContudo, esse impacto é pequeno.\n");
  1122. printf("A aparência também dirá quais as chances de sucesso do seu personagem\nem uma tentativa de sedução. Por exemplo, seu personagem\nprecisa subornar um guarda, mas ele quer favores sexuais em\ntroca, então, o sex appeal do seu personagem deve ser alto para\nter sucesso.\n\n");
  1123. break;
  1124. case 2:
  1125. system("ClS");
  1126. printf("A história do seu personagem afetará dastricamente o streetwise.\n");
  1127. printf("O personagem deve possuir motivos convincentes para poder enganar e distrair.\nAlém disso, histórias fortes formam grupos fortes.\n");
  1128. break;
  1129. case 3:
  1130. system("ClS");
  1131. printf("A classe do seu personagem deve ser escolhida com muita atenção, ela não mudará quando o jogo inicar.\n");
  1132. printf("Os atributos devem ser distribuidos conforme as necessidades do seu personage.\nPor exemplo, se seu personagem é um lutador corpo-a-corpo, é interessante\naumentar sua força e sua vida.\n");
  1133. break;
  1134. case 4:
  1135. system("ClS");
  1136. goto menu_inicial;
  1137. default:
  1138. system("ClS");
  1139. printf("Opção inválida.\n\n");
  1140. goto menu_inicial;
  1141. }
  1142. }while(op!=4);
  1143. case 5:
  1144. printf("Tem certeza disso?\n");
  1145. printf("Opção 1: Sim, continuar.\n");
  1146. printf("Opção 2: Não, voltar.\n");
  1147. scanf("%d", &op);
  1148. switch(op)
  1149. {
  1150. case 1:
  1151. verifica=0;
  1152. goto ficha_final;
  1153. case 2:
  1154. system("ClS");
  1155. goto menu_inicial;
  1156. default:
  1157. system("ClS");
  1158. printf("Opção inválida.\n\n");
  1159. goto menu_inicial;
  1160. }
  1161. case 6:
  1162. printf("Tem certeza disso?\n");
  1163. printf("Opção 1: Sim, continuar.\n");
  1164. printf("Opção 2: Não, voltar.\n");
  1165. scanf("%d", &op);
  1166. switch(op)
  1167. {
  1168. case 1:
  1169. // APARÊNCIA
  1170. if(personagem.cabelo==0 || personagem.olho==0 || personagem.pele==0 || personagem.corpo==0 || personagem.altura==0 || personagem.tipo.etiqueta==0)
  1171. {
  1172. printf("Você não acabou de customizar a aparência do seu personagem.\n\n");
  1173. goto menu_inicial;
  1174. }
  1175. if(personagem.sexo==1)
  1176. if(personagem.tipo.barba==0)
  1177. {
  1178. printf("Você não acabou de customizar a apareência do seu personagem.\n\n");
  1179. goto menu_inicial;
  1180. }
  1181. if(personagem.sexo==2)
  1182. if(personagem.tipo.busto==0)
  1183. {
  1184. printf("Você não acabou de customizar a aparência do seu personagem.\n\n");
  1185. goto menu_inicial;
  1186. }
  1187. // HISTÓRIA
  1188. if(personagem.historia.infancia==0 || personagem.historia.dif==0 || personagem.historia.consideracao==0)
  1189. {
  1190. printf("Você não acabou de customizar as histórias do seu personagem.\n\n");
  1191. goto menu_inicial;
  1192. }
  1193. // ATRIBUTOS E VOCAÇÃO
  1194. if(personagem.classe.human.escolha==0 && personagem.classe.elfF.escolha==0 && personagem.classe.elfD.escolha==0 && personagem.classe.dwarf.escolha==0 && personagem.classe.half.escolha==0)
  1195. {
  1196. printf("Você não acabou de customizar a classe do seu personagem.\n\n");
  1197. goto menu_inicial;
  1198. }
  1199. verifica=1;
  1200. goto ficha_final;
  1201. case 2:
  1202. system("ClS");
  1203. goto menu_inicial;
  1204. default:
  1205. system("ClS");
  1206. printf("Opção inválida.\n\n");
  1207. goto menu_inicial;
  1208. }
  1209. default:
  1210. system("ClS");
  1211. printf("Opção inválida.\n\n");
  1212. goto menu_inicial;
  1213. }
  1214. }while(op!=6 || op!=5);
  1215. ficha_final:
  1216. system("ClS");
  1217. if(verifica==0)
  1218. {
  1219. do
  1220. {
  1221. printf("Você optou por um personagem randômico.\n");
  1222. printf("O seu personagem gerado foi:\n\n");
  1223. printf("======================\n");
  1224. printf("Nome: %s\n", personagem.nome);
  1225. printf("Idade: %d anos\n", personagem.idade);
  1226. if(personagem.sexo==1)
  1227. printf("Sexo: Masculino\n");
  1228. else
  1229. printf("Sexo: Feminino\n");
  1230. printf("======================\n");
  1231. printf("Aparência:\n");
  1232. do{dado = rand() % 5;}while(dado<=0 || dado>5);
  1233. if(dado==1)
  1234. {
  1235. personagem.cabelo=dado;
  1236. strcpy(personagemSTRCabelo, "Loiro");
  1237. }
  1238. else if(dado==2)
  1239. {
  1240. personagem.cabelo=dado;
  1241. strcpy(personagemSTRCabelo, "Castanho");
  1242. }
  1243. else if(dado==3)
  1244. {
  1245. personagem.cabelo=dado;
  1246. strcpy(personagemSTRCabelo, "Preto");
  1247. }
  1248. else if(dado==4)
  1249. {
  1250. personagem.cabelo=dado;
  1251. strcpy(personagemSTRCabelo, "Ruivo");
  1252. }
  1253. else
  1254. {
  1255. personagem.cabelo=dado;
  1256. strcpy(personagemSTRCabelo, "Careca");
  1257. }
  1258. printf("Cabelo: %s\n", personagemSTRCabelo);
  1259. do{dado = rand() % 5;}while(dado<=0 || dado>5);
  1260. if(dado==1)
  1261. {
  1262. personagem.olho=dado;
  1263. strcpy(personagemSTROlho, "Azul");
  1264. }
  1265. else if(dado==2)
  1266. {
  1267. personagem.olho=dado;
  1268. strcpy(personagemSTROlho, "Mel");
  1269. }
  1270. else if(dado==3)
  1271. {
  1272. personagem.olho=dado;
  1273. strcpy(personagemSTROlho, "Preto");
  1274. }
  1275. else if(dado==4)
  1276. {
  1277. personagem.olho=dado;
  1278. strcpy(personagemSTROlho, "Verde");
  1279. }
  1280. else
  1281. {
  1282. personagem.olho=dado;
  1283. strcpy(personagemSTROlho, "Cinza");
  1284. }
  1285. printf("Cor dos olhos: %s\n", personagemSTROlho);
  1286. do{dado = rand() % 4;}while(dado<=0 || dado>4);
  1287. if(dado==1)
  1288. {
  1289. personagem.pele=dado;
  1290. strcpy(personagemSTRPele, "Caucasiano (muito claro)");
  1291. }
  1292. else if(dado==2)
  1293. {
  1294. personagem.pele=dado;
  1295. strcpy(personagemSTRPele, "Caucasiano (mediterrâneo)");
  1296. }
  1297. else if(dado==3)
  1298. {
  1299. personagem.pele=dado;
  1300. strcpy(personagemSTRPele, "Pardo");
  1301. }
  1302. else
  1303. {
  1304. personagem.pele=dado;
  1305. strcpy(personagemSTRPele, "Negro");
  1306. }
  1307. printf("Cor da pele: %s\n", personagemSTRPele);
  1308. do{dado = rand() % 6;}while(dado<=0 || dado>6);
  1309. if(dado==1)
  1310. {
  1311. personagem.corpo=dado;
  1312. strcpy(personagemSTRCorpo, "Obeso com pouquíssima massa muscular");
  1313. }
  1314. else if(dado==2)
  1315. {
  1316. personagem.corpo=dado;
  1317. strcpy(personagemSTRCorpo, "Levemente obeso e com pouca massa muscular");
  1318. }
  1319. else if(dado==3)
  1320. {
  1321. personagem.corpo=dado;
  1322. strcpy(personagemSTRCorpo, "Magro (skynny) com pouca massa muscular");
  1323. }
  1324. else if(dado==4)
  1325. {
  1326. personagem.corpo=dado;
  1327. strcpy(personagemSTRCorpo, "Encorpado, magro, com razoável nível de massa muscular");
  1328. }
  1329. else if(dado==5)
  1330. {
  1331. personagem.corpo=dado;
  1332. strcpy(personagemSTRCorpo, "Encorpado, magro e forte, com considerável nível de massa\nmuscular");
  1333. }
  1334. else
  1335. {
  1336. personagem.corpo=dado;
  1337. strcpy(personagemSTRCorpo, "Forte e com muita massa muscular");
  1338. }
  1339. printf("Tipo de corpo: %s\n", personagemSTRCorpo);
  1340. if(personagem.sexo==1)
  1341. {
  1342. do{dado = rand() % 5;}while(dado<=0 || dado>5);
  1343. if(dado==1)
  1344. {
  1345. personagem.tipo.barba=dado;
  1346. strcpy(personagemSTRBarba, "Sem barba");
  1347. }
  1348. else if(dado==2)
  1349. {
  1350. personagem.tipo.barba=dado;
  1351. strcpy(personagemSTRBarba, "Barba rala (mal feita)");
  1352. }
  1353. else if(dado==3)
  1354. {
  1355. personagem.tipo.barba=dado;
  1356. strcpy(personagemSTRBarba, "Barba cheia, pequena");
  1357. }
  1358. else if(dado==4)
  1359. {
  1360. personagem.tipo.barba=dado;
  1361. strcpy(personagemSTRBarba, "Barba cheia, média");
  1362. }
  1363. else
  1364. {
  1365. personagem.tipo.barba=dado;
  1366. strcpy(personagemSTRBarba, "Barba cheia, grande");
  1367. }
  1368. printf("Tipo de barba: %s\n", personagemSTRBarba);
  1369. }
  1370. else if(personagem.sexo==2)
  1371. {
  1372. do{dado = rand() % 3;}while(dado<=0 || dado>3);
  1373. if(dado==1)
  1374. {
  1375. personagem.tipo.busto=dado;
  1376. strcpy(personagemSTRBusto, "Pequeno");
  1377. }
  1378. else if(dado==2)
  1379. {
  1380. personagem.tipo.busto=dado;
  1381. strcpy(personagemSTRBusto, "Médio");
  1382. }
  1383. else
  1384. {
  1385. personagem.tipo.busto=dado;
  1386. strcpy(personagemSTRBusto, "Grande");
  1387. }
  1388. printf("Tipo de busto: %s\n", personagemSTRBusto);
  1389. }
  1390. do{dado = rand() % 5;}while(dado<=0 || dado>5);
  1391. if(dado==1)
  1392. {
  1393. personagem.tipo.etiqueta=dado;
  1394. strcpy(personagemSTREtiqueta, "Ignorante, nenhum conhecimento específico e nada de\nstreetwise");
  1395. }
  1396. else if(dado==2)
  1397. {
  1398. personagem.tipo.etiqueta=dado;
  1399. strcpy(personagemSTREtiqueta, "Educação informal, pouco ou nenhum conhecimento\nespecífico, com pouco streetwise (médio)");
  1400. }
  1401. else if(dado==3)
  1402. {
  1403. personagem.tipo.etiqueta=dado;
  1404. strcpy(personagemSTREtiqueta, "Educação informal, mas sabe como a banda toca, alto\nstreetwise");
  1405. }
  1406. else if(dado==4)
  1407. {
  1408. personagem.tipo.etiqueta=dado;
  1409. strcpy(personagemSTREtiqueta, "Educação formal, tem conhecimento específico, mas apenas\nsuperficialmente, quase nenhum streetwise");
  1410. }
  1411. else
  1412. {
  1413. personagem.tipo.etiqueta=dado;
  1414. strcpy(personagemSTREtiqueta, "Educação formal, alto conhecimento específico, nenhum\nstreetwise");
  1415. }
  1416. printf("Educação e Sagacidade: %s\n", personagemSTREtiqueta);
  1417. personagem.altura=1.75;
  1418. printf("Altura: %g metros\n", personagem.altura);
  1419. printf("======================\n");
  1420. printf("Histórias:\n");
  1421. strcpy(personagem.historia.descricao1, "Não tenho nenhuma história sobre isso.");
  1422. printf("Sobre a infância: %s\n", personagem.historia.descricao1);
  1423. strcpy(personagem.historia.descricao2, "Não tenho nenhuma história sobre isso.");
  1424. printf("Sobre dificuldades: %s\n", personagem.historia.descricao2);
  1425. strcpy(personagem.historia.descricao3, "Não tenho nenhuma história sobre isso.");
  1426. printf("Sobre experiências: %s\n", personagem.historia.descricao3);
  1427. strcpy(personagem.historia.descricao4, "Não tenho nenhuma história sobre isso.");
  1428. printf("Sobre mortes: %s\n", personagem.historia.descricao4);
  1429. strcpy(personagem.historia.descricao5, "Não tenho nenhuma história sobre isso.");
  1430. printf("Sobre a arma: %s\n", personagem.historia.descricao5);
  1431. printf("======================\n");
  1432. printf("Vocação e atributos:\n");
  1433. do{dado = rand() % 5;}while(dado<=0 || dado>5);
  1434. if(dado==1)
  1435. {
  1436. personagem.classe.human.escolha=1;
  1437. personagem.classe.elfF.escolha=0;
  1438. personagem.classe.elfD.escolha=0;
  1439. personagem.classe.dwarf.escolha=0;
  1440. personagem.classe.half.escolha=0;
  1441. strcpy(personagemSTRVocacao, "Humano");
  1442. }
  1443. else if(dado==2)
  1444. {
  1445. personagem.classe.human.escolha=0;
  1446. personagem.classe.elfF.escolha=1;
  1447. personagem.classe.elfD.escolha=0;
  1448. personagem.classe.dwarf.escolha=0;
  1449. personagem.classe.half.escolha=0;
  1450. strcpy(personagemSTRVocacao, "Elfo da Floresta");
  1451. }
  1452. else if(dado==3)
  1453. {
  1454. personagem.classe.human.escolha=0;
  1455. personagem.classe.elfF.escolha=0;
  1456. personagem.classe.elfD.escolha=1;
  1457. personagem.classe.dwarf.escolha=0;
  1458. personagem.classe.half.escolha=0;
  1459. strcpy(personagemSTRVocacao, "Dark Elfo");
  1460. }
  1461. else if(dado==4)
  1462. {
  1463. personagem.classe.human.escolha=0;
  1464. personagem.classe.elfF.escolha=0;
  1465. personagem.classe.elfD.escolha=0;
  1466. personagem.classe.dwarf.escolha=1;
  1467. personagem.classe.half.escolha=0;
  1468. strcpy(personagemSTRVocacao, "Dwarf");
  1469. }
  1470. else
  1471. {
  1472. personagem.classe.human.escolha=0;
  1473. personagem.classe.elfF.escolha=0;
  1474. personagem.classe.elfD.escolha=0;
  1475. personagem.classe.dwarf.escolha=0;
  1476. personagem.classe.half.escolha=1;
  1477. strcpy(personagemSTRVocacao, "Halfling");
  1478. }
  1479. printf("Vocação: %s\n", personagemSTRVocacao);
  1480. printf("Atributos:\n");
  1481. if(personagem.classe.human.escolha==1)
  1482. {
  1483. printf("Força base: 5\n");
  1484. printf("Habilidade base: 3\n");
  1485. printf("Resistência base: 2\n");
  1486. printf("Armadura base: 2\n");
  1487. printf("Poder de Fogo base: 2\n");
  1488. printf("Pontos de Vida base: 5\n");
  1489. printf("Pontos de Mana base: 5\n");
  1490. printf("Caracteristicas: Classe intermediária entre guerreiro, mago e\narqueiro (ataque à distância).\n");
  1491. personagem.classe.human.forca=5;
  1492. personagem.classe.human.hab=3;
  1493. personagem.classe.human.resist=2;
  1494. personagem.classe.human.armor=2;
  1495. personagem.classe.human.firep=2;
  1496. personagem.classe.human.pVIDA=5;
  1497. personagem.classe.human.pMANA=5;
  1498. }
  1499. else if(personagem.classe.elfF.escolha==1)
  1500. {
  1501. printf("Força base: 2\n");
  1502. printf("Habilidade base: 5\n");
  1503. printf("Resistência base: 1\n");
  1504. printf("Armadura base: 1\n");
  1505. printf("Poder de Fogo base: 2\n");
  1506. printf("Pontos de Vida base: 3\n");
  1507. printf("Pontos de Mana base: 5\n");
  1508. printf("Caracteristicas: Classe focada em ataque à distância.\n");
  1509. personagem.classe.elfF.forca=2;
  1510. personagem.classe.elfF.hab=5;
  1511. personagem.classe.elfF.resist=1;
  1512. personagem.classe.elfF.armor=1;
  1513. personagem.classe.elfF.firep=2;
  1514. personagem.classe.elfF.pVIDA=3;
  1515. personagem.classe.elfF.pMANA=5;
  1516. }
  1517. else if(personagem.classe.elfD.escolha==1)
  1518. {
  1519. printf("Força base: 1\n");
  1520. printf("Habilidade base: 2\n");
  1521. printf("Resistência base: 1\n");
  1522. printf("Armadura base: 1\n");
  1523. printf("Poder de Fogo base: 7\n");
  1524. printf("Pontos de Vida base: 2\n");
  1525. printf("Pontos de Mana base: 10\n");
  1526. printf("Caracteristicas: Classe focada em magias.\n");
  1527. personagem.classe.elfD.forca=1;
  1528. personagem.classe.elfD.hab=2;
  1529. personagem.classe.elfD.resist=1;
  1530. personagem.classe.elfD.armor=1;
  1531. personagem.classe.elfD.firep=7;
  1532. personagem.classe.elfD.pVIDA=2;
  1533. personagem.classe.elfD.pMANA=10;
  1534. }
  1535. else if(personagem.classe.dwarf.escolha==1)
  1536. {
  1537. printf("Força base: 7\n");
  1538. printf("Habilidade base: 1\n");
  1539. printf("Resistência base: 5\n");
  1540. printf("Armadura base: 4\n");
  1541. printf("Poder de Fogo base: 1\n");
  1542. printf("Pontos de Vida base: 8\n");
  1543. printf("Pontos de Mana base: 1\n");
  1544. printf("Caracteristicas: Classe focada em combate corpo-a-corpo.\n");
  1545. personagem.classe.dwarf.forca=7;
  1546. personagem.classe.dwarf.hab=1;
  1547. personagem.classe.dwarf.resist=5;
  1548. personagem.classe.dwarf.armor=4;
  1549. personagem.classe.dwarf.firep=1;
  1550. personagem.classe.dwarf.pVIDA=8;
  1551. personagem.classe.dwarf.pMANA=1;
  1552.  
  1553. }
  1554. else if(personagem.classe.half.escolha==1)
  1555. {
  1556. printf("Força base: 1\n");
  1557. printf("Habilidade base: 7\n");
  1558. printf("Resistência base: 1\n");
  1559. printf("Armadura base: 1\n");
  1560. printf("Poder de Fogo base: 1\n");
  1561. printf("Pontos de Vida base: 3\n");
  1562. printf("Pontos de Mana base: 2\n");
  1563. printf("Caracteristicas: Classe focada em ações rápidas, como furtos e distrações.\n");
  1564. personagem.classe.half.forca=1;
  1565. personagem.classe.half.hab=7;
  1566. personagem.classe.half.resist=1;
  1567. personagem.classe.half.armor=1;
  1568. personagem.classe.half.firep=7;
  1569. personagem.classe.half.pVIDA=3;
  1570. personagem.classe.half.pMANA=2;
  1571. }
  1572. printf("======================\n\n");
  1573. printf("Deseja continuar com este personagem ou gerar outro?\n");
  1574. printf("Opção 1: Continuar.\n");
  1575. printf("Opção 2: Gerar outro personagem.\n");
  1576. printf("Opção 3: Voltar ao menu anterior.\n");
  1577. scanf("%d", &op);
  1578. switch(op)
  1579. {
  1580. case 1:
  1581. system("ClS");
  1582. if(personagem.classe.human.escolha==1)
  1583. {
  1584. printf("Certo, humano, monte sua ficha.\n\n");
  1585. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  1586. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  1587. printf("Resultado do d20: %d\n", dado);
  1588. do{
  1589. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  1590. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  1591. printf("Opção 1: Força.\n");
  1592. printf("Opção 2: Habilidade.\n");
  1593. printf("Opção 3: Resistência.\n");
  1594. printf("Opção 4: Armadura.\n");
  1595. printf("Opção 5: Poder de Fogo.\n");
  1596. printf("Opção 6: Pontos de Vida.\n");
  1597. printf("Opção 7: Pontos de Mana.\n");
  1598. scanf("%d", &op);
  1599. switch(op)
  1600. {
  1601. case 1:
  1602. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  1603. personagem.classe.human.forca=personagem.classe.human.forca+1;
  1604. dado--;
  1605. break;
  1606. case 2:
  1607. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  1608. personagem.classe.human.hab=personagem.classe.human.hab+1;
  1609. dado--;
  1610. break;
  1611. case 3:
  1612. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  1613. personagem.classe.human.resist=personagem.classe.human.resist+1;
  1614. dado--;
  1615. break;
  1616. case 4:
  1617. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  1618. personagem.classe.human.armor=personagem.classe.human.armor+1;
  1619. dado--;
  1620. break;
  1621. case 5:
  1622. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  1623. personagem.classe.human.firep=personagem.classe.human.firep+1;
  1624. dado--;
  1625. break;
  1626. case 6:
  1627. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1628. personagem.classe.human.pVIDA=personagem.classe.human.pVIDA+1;
  1629. dado--;
  1630. break;
  1631. case 7:
  1632. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1633. personagem.classe.human.pMANA=personagem.classe.human.pMANA+1;
  1634. dado--;
  1635. break;
  1636. default:
  1637. printf("Opção inválida.\n\n");
  1638.  
  1639. }
  1640. }while(dado!=0);
  1641. system("ClS");
  1642. goto confirmacao;
  1643. }
  1644. else if(personagem.classe.elfF.escolha==1)
  1645. {
  1646. printf("Nai anar kaluva tielyanna, elfo da floresta, monte sua ficha.\n\n");
  1647. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  1648. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  1649. printf("Resultado do d20: %d\n", dado);
  1650. do{
  1651. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  1652. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  1653. printf("Opção 1: Força.\n");
  1654. printf("Opção 2: Habilidade.\n");
  1655. printf("Opção 3: Resistência.\n");
  1656. printf("Opção 4: Armadura.\n");
  1657. printf("Opção 5: Poder de Fogo.\n");
  1658. printf("Opção 6: Pontos de Vida.\n");
  1659. printf("Opção 7: Pontos de Mana.\n");
  1660. scanf("%d", &op);
  1661. switch(op)
  1662. {
  1663. case 1:
  1664. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  1665. personagem.classe.elfF.forca=personagem.classe.elfF.forca+1;
  1666. dado--;
  1667. break;
  1668. case 2:
  1669. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  1670. personagem.classe.elfF.hab=personagem.classe.elfF.hab+1;
  1671. dado--;
  1672. break;
  1673. case 3:
  1674. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  1675. personagem.classe.elfF.resist=personagem.classe.elfF.resist+1;
  1676. dado--;
  1677. break;
  1678. case 4:
  1679. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  1680. personagem.classe.elfF.armor=personagem.classe.elfF.armor+1;
  1681. dado--;
  1682. break;
  1683. case 5:
  1684. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  1685. personagem.classe.elfF.firep=personagem.classe.elfF.firep+1;
  1686. dado--;
  1687. break;
  1688. case 6:
  1689. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1690. personagem.classe.elfF.pVIDA=personagem.classe.elfF.pVIDA+1;
  1691. dado--;
  1692. break;
  1693. case 7:
  1694. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1695. personagem.classe.elfF.pMANA=personagem.classe.elfF.pMANA+1;
  1696. dado--;
  1697. break;
  1698. default:
  1699. printf("Opção inválida.\n\n");
  1700. }
  1701. }while(dado!=0);
  1702. system("ClS");
  1703. goto confirmacao;
  1704. }
  1705. else if(personagem.classe.elfD.escolha==1)
  1706. {
  1707. printf("Harië malta úva carë nér anwavë alya, dark elfo, monte sua ficha.\n\n");
  1708. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  1709. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  1710. printf("Resultado do d20: %d\n", dado);
  1711. do{
  1712. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  1713. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  1714. printf("Opção 1: Força.\n");
  1715. printf("Opção 2: Habilidade.\n");
  1716. printf("Opção 3: Resistência.\n");
  1717. printf("Opção 4: Armadura.\n");
  1718. printf("Opção 5: Poder de Fogo.\n");
  1719. printf("Opção 6: Pontos de Vida.\n");
  1720. printf("Opção 7: Pontos de Mana.\n");
  1721. scanf("%d", &op);
  1722. switch(op)
  1723. {
  1724. case 1:
  1725. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  1726. personagem.classe.elfD.forca=personagem.classe.elfD.forca+1;
  1727. dado--;
  1728. break;
  1729. case 2:
  1730. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  1731. personagem.classe.elfD.hab=personagem.classe.elfD.hab+1;
  1732. dado--;
  1733. break;
  1734. case 3:
  1735. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  1736. personagem.classe.elfD.resist=personagem.classe.elfD.resist+1;
  1737. dado--;
  1738. break;
  1739. case 4:
  1740. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  1741. personagem.classe.elfD.armor=personagem.classe.elfD.armor+1;
  1742. dado--;
  1743. break;
  1744. case 5:
  1745. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  1746. personagem.classe.elfD.firep=personagem.classe.elfD.firep+1;
  1747. dado--;
  1748. break;
  1749. case 6:
  1750. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1751. personagem.classe.elfD.pVIDA=personagem.classe.elfD.pVIDA+1;
  1752. dado--;
  1753. break;
  1754. case 7:
  1755. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1756. personagem.classe.elfD.pMANA=personagem.classe.elfD.pMANA+1;
  1757. dado--;
  1758. break;
  1759. default:
  1760. printf("Opção inválida.\n\n");
  1761. }
  1762. }while(dado!=0);
  1763. system("ClS");
  1764. goto confirmacao;
  1765. }
  1766. else if(personagem.classe.dwarf.escolha==1)
  1767. {
  1768. printf("Hail Durin, anão, monte sua ficha.\n\n");
  1769. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  1770. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  1771. printf("Resultado do d20: %d\n", dado);
  1772. do{
  1773. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  1774. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  1775. printf("Opção 1: Força.\n");
  1776. printf("Opção 2: Habilidade.\n");
  1777. printf("Opção 3: Resistência.\n");
  1778. printf("Opção 4: Armadura.\n");
  1779. printf("Opção 5: Poder de Fogo.\n");
  1780. printf("Opção 6: Pontos de Vida.\n");
  1781. printf("Opção 7: Pontos de Mana.\n");
  1782. scanf("%d", &op);
  1783. switch(op)
  1784. {
  1785. case 1:
  1786. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  1787. personagem.classe.dwarf.forca=personagem.classe.dwarf.forca+1;
  1788. dado--;
  1789. break;
  1790. case 2:
  1791. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  1792. personagem.classe.dwarf.hab=personagem.classe.dwarf.hab+1;
  1793. dado--;
  1794. break;
  1795. case 3:
  1796. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  1797. personagem.classe.dwarf.resist=personagem.classe.dwarf.resist+1;
  1798. dado--;
  1799. break;
  1800. case 4:
  1801. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  1802. personagem.classe.dwarf.armor=personagem.classe.dwarf.armor+1;
  1803. dado--;
  1804. break;
  1805. case 5:
  1806. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  1807. personagem.classe.dwarf.firep=personagem.classe.dwarf.firep+1;
  1808. dado--;
  1809. break;
  1810. case 6:
  1811. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1812. personagem.classe.dwarf.pVIDA=personagem.classe.dwarf.pVIDA+1;
  1813. dado--;
  1814. break;
  1815. case 7:
  1816. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1817. personagem.classe.dwarf.pMANA=personagem.classe.dwarf.pMANA+1;
  1818. dado--;
  1819. break;
  1820. default:
  1821. printf("Opção inválida.\n\n");
  1822. }
  1823. }while(dado!=0);
  1824. system("ClS");
  1825. goto confirmacao;
  1826. }
  1827. else if(personagem.classe.half.escolha==1)
  1828. {
  1829. printf("A beleza está nas pequenas coisas, pequeno, monte sua ficha.\n\n");
  1830. printf("Um d20 dirá quantos pontos extras seu personagem possuí para serem\ndistribuídos.\n");
  1831. do{dado = rand() % 20 + 1;}while(dado<=0 || dado >20);
  1832. printf("Resultado do d20: %d\n", dado);
  1833. do{
  1834. printf("Você tem %d pontos para distribuir na sua ficha.\n\n", dado);
  1835. printf("Atenção, ao escolher uma opção abaixo, você perde um ponto de distribuição,\nmas adiciona um ponto na opção escolhida.\n");
  1836. printf("Opção 1: Força.\n");
  1837. printf("Opção 2: Habilidade.\n");
  1838. printf("Opção 3: Resistência.\n");
  1839. printf("Opção 4: Armadura.\n");
  1840. printf("Opção 5: Poder de Fogo.\n");
  1841. printf("Opção 6: Pontos de Vida.\n");
  1842. printf("Opção 7: Pontos de Mana.\n");
  1843. scanf("%d", &op);
  1844. switch(op)
  1845. {
  1846. case 1:
  1847. printf("Você adicionou 1 ponto de distribuição em Força.\n");
  1848. personagem.classe.half.forca=personagem.classe.half.forca+1;
  1849. dado--;
  1850. break;
  1851. case 2:
  1852. printf("Você adicionou 1 ponto de distribuição em Habilidade.\n");
  1853. personagem.classe.half.hab=personagem.classe.half.hab+1;
  1854. dado--;
  1855. break;
  1856. case 3:
  1857. printf("Você adicionou 1 ponto de distribuição em Resistência.\n");
  1858. personagem.classe.half.resist=personagem.classe.half.resist+1;
  1859. dado--;
  1860. break;
  1861. case 4:
  1862. printf("Você adicionou 1 ponto de distribuição em Armadura.\n");
  1863. personagem.classe.half.armor=personagem.classe.half.armor+1;
  1864. dado--;
  1865. break;
  1866. case 5:
  1867. printf("Você adicionou 1 ponto de distribuição em Poder de Fogo.\n");
  1868. personagem.classe.half.firep=personagem.classe.half.firep+1;
  1869. dado--;
  1870. break;
  1871. case 6:
  1872. printf("Você adicionou 1 ponto de distribuição em Pontos de Vida.\n");
  1873. personagem.classe.half.pVIDA=personagem.classe.half.pVIDA+1;
  1874. dado--;
  1875. break;
  1876. case 7:
  1877. printf("Você adicionou 1 ponto de distribuição em Pontos de Mana.\n");
  1878. personagem.classe.half.pMANA=personagem.classe.half.pMANA+1;
  1879. dado--;
  1880. break;
  1881. default:
  1882. printf("Opção inválida.\n\n");
  1883. }
  1884. }while(dado!=0);
  1885. system("ClS");
  1886. goto confirmacao;
  1887. }
  1888.  
  1889. case 2:
  1890. goto ficha_final;
  1891. case 3:
  1892. system("ClS");
  1893. goto menu_inicial;
  1894. default:
  1895. system("ClS");
  1896. }
  1897. }while(op!=1);
  1898. }
  1899. else
  1900. {
  1901. confirmacao:
  1902. printf("Ficha final (já com pontos distribuídos):\n");
  1903. printf("\n======================\n");
  1904. printf("Nome: %s\n", personagem.nome);
  1905. printf("Idade: %d\n", personagem.idade);
  1906. if(personagem.sexo==1)
  1907. printf("Sexo: Masculino\n");
  1908. else
  1909. printf("Sexo: Feminino\n");
  1910. printf("======================\n");
  1911. printf("Aparência:\n");
  1912. printf("Cabelo: %s\n", personagemSTRCabelo);
  1913. printf("Cor dos olhos: %s\n", personagemSTROlho);
  1914. printf("Cor da pele: %s\n", personagemSTRPele);
  1915. printf("Tipo de corpo: %s\n", personagemSTRCorpo);
  1916. if(personagem.sexo==1)
  1917. printf("Tipo de barba: %s\n", personagemSTRBarba);
  1918. else
  1919. printf("Tipo de busto: %s\n", personagemSTRBusto);
  1920. printf("Educação e Sagacidade: %s\n", personagemSTREtiqueta);
  1921. printf("Altura: %g metros\n", personagem.altura);
  1922. printf("======================\n");
  1923. printf("Histórias:\n");
  1924. printf("Sobre a infância: %s\n", personagem.historia.descricao1);
  1925. printf("Sobre dificuldades: %s\n", personagem.historia.descricao2);
  1926. printf("Sobre experiências: %s\n", personagem.historia.descricao3);
  1927. printf("Sobre mortes: %s\n", personagem.historia.descricao4);
  1928. printf("Sobre a arma: %s\n", personagem.historia.descricao5);
  1929. printf("======================\n");
  1930. printf("Vocação e atributos:\n");
  1931. printf("Vocação: %s\n", personagemSTRVocacao);
  1932. printf("Atributos:\n");
  1933. if(personagem.classe.human.escolha==1)
  1934. {
  1935. printf("Força: %d\n", personagem.classe.human.forca);
  1936. printf("Habilidade: %d\n", personagem.classe.human.hab);
  1937. printf("Resistência: %d\n", personagem.classe.human.resist);
  1938. printf("Armadura: %d\n", personagem.classe.human.armor);
  1939. printf("Poder de Fogo: %d\n", personagem.classe.human.firep);
  1940. printf("Vida: %d\n", personagem.classe.human.pVIDA);
  1941. printf("Mana: %d\n", personagem.classe.human.pMANA);
  1942. }
  1943. else if(personagem.classe.elfF.escolha==1)
  1944. {
  1945. printf("Força: %d\n", personagem.classe.elfF.forca);
  1946. printf("Habilidade: %d\n", personagem.classe.elfF.hab);
  1947. printf("Resistência: %d\n", personagem.classe.elfF.resist);
  1948. printf("Armadura: %d\n", personagem.classe.elfF.armor);
  1949. printf("Poder de Fogo: %d\n", personagem.classe.elfF.firep);
  1950. printf("Vida: %d\n", personagem.classe.elfF.pVIDA);
  1951. printf("Mana: %d\n", personagem.classe.elfF.pMANA);
  1952. }
  1953. else if(personagem.classe.elfD.escolha==1)
  1954. {
  1955. printf("Força: %d\n", personagem.classe.elfD.forca);
  1956. printf("Habilidade: %d\n", personagem.classe.elfD.hab);
  1957. printf("Resistência: %d\n", personagem.classe.elfD.resist);
  1958. printf("Armadura: %d\n", personagem.classe.elfD.armor);
  1959. printf("Poder de Fogo: %d\n", personagem.classe.elfD.firep);
  1960. printf("Vida: %d\n", personagem.classe.elfD.pVIDA);
  1961. printf("Mana: %d\n", personagem.classe.elfD.pMANA);
  1962. }
  1963. else if(personagem.classe.dwarf.escolha==1)
  1964. {
  1965. printf("Força: %d\n", personagem.classe.dwarf.forca);
  1966. printf("Habilidade: %d\n", personagem.classe.dwarf.hab);
  1967. printf("Resistência: %d\n", personagem.classe.dwarf.resist);
  1968. printf("Armadura: %d\n", personagem.classe.dwarf.armor);
  1969. printf("Poder de Fogo: %d\n", personagem.classe.dwarf.firep);
  1970. printf("Vida: %d\n", personagem.classe.dwarf.pVIDA);
  1971. printf("Mana: %d\n", personagem.classe.dwarf.pMANA);
  1972. }
  1973. else if(personagem.classe.half.escolha==1)
  1974. {
  1975. printf("Força: %d\n", personagem.classe.half.forca);
  1976. printf("Habilidade: %d\n", personagem.classe.half.hab);
  1977. printf("Resistência: %d\n", personagem.classe.half.resist);
  1978. printf("Armadura: %d\n", personagem.classe.half.armor);
  1979. printf("Poder de Fogo: %d\n", personagem.classe.half.firep);
  1980. printf("Vida: %d\n", personagem.classe.half.pVIDA);
  1981. printf("Mana: %d\n", personagem.classe.half.pMANA);
  1982. }
  1983. printf("======================\n");
  1984. if(personagem.tipo.etiqueta==1)
  1985. {
  1986. do{dado = rand() % 20 - 5;}while(dado<=0 || dado >20);
  1987. personagem.street = dado;
  1988. }
  1989. else if(personagem.tipo.etiqueta==2)
  1990. {
  1991. do{dado = rand() % 20 + 3;}while(dado<=0 || dado >20);
  1992. personagem.street = dado;
  1993. }
  1994. else if(personagem.tipo.etiqueta==3)
  1995. {
  1996. do{dado = rand() % 20 + 5;}while(dado<=0 || dado >20);
  1997. personagem.street = dado;
  1998. }
  1999. else if(personagem.tipo.etiqueta==4)
  2000. {
  2001. do{dado = rand() % 20 - 3;}while(dado<=0 || dado >20);
  2002. personagem.street = dado;
  2003. }
  2004. else if(personagem.tipo.etiqueta==5)
  2005. {
  2006. do{dado = rand() % 20 - 7;}while(dado<=0 || dado >20);
  2007. personagem.street = dado;
  2008. }
  2009. printf("Streetwise: %d\n", personagem.street);
  2010. if(personagem.corpo==1)
  2011. {
  2012. do{dado = rand() % 20 - 10;}while(dado<=0 || dado >20);
  2013. personagem.sexappeal = dado;
  2014. }
  2015. else if(personagem.corpo==2)
  2016. {
  2017. do{dado = rand() % 20 - 5;}while(dado<=0 || dado >20);
  2018. personagem.sexappeal = dado;
  2019. }
  2020. else if(personagem.corpo==3)
  2021. {
  2022. do{dado = rand() % 20 - 3;}while(dado<=0 || dado >20);
  2023. personagem.sexappeal = dado;
  2024. }
  2025. else if(personagem.corpo==4)
  2026. {
  2027. do{dado = rand() % 20 + 3;}while(dado<=0 || dado >20);
  2028. personagem.sexappeal = dado;
  2029. }
  2030. else if(personagem.corpo==5)
  2031. {
  2032. do{dado = rand() % 20 + 5;}while(dado<=0 || dado >20);
  2033. personagem.sexappeal = dado;
  2034. }
  2035. else if(personagem.corpo==6)
  2036. {
  2037. do{dado = rand() % 20;}while(dado<=0 || dado >20);
  2038. personagem.sexappeal = dado;
  2039. }
  2040. printf("Sex appeal: %d\n", personagem.sexappeal);
  2041. printf("======================\n\n");
  2042. printf("Está pronto para começar sua jornada?\n");
  2043. printf("Opção 1: Continuar.\n");
  2044. printf("Opção 2: Voltar.\n");
  2045. scanf("%d", &op);
  2046. switch(op)
  2047. {
  2048. case 1:
  2049. system("ClS");
  2050. goto comeco_hist;
  2051. case 2:
  2052. system("ClS");
  2053. goto menu_inicial;
  2054. default:
  2055. printf("Opção inválida.\n\n");
  2056. goto confirmacao;
  2057. }
  2058. }
  2059. comeco_hist:
  2060. printf("Precione qualquer tecla para pular.\n");
  2061. getchar();
  2062. getchar();
  2063. system("ClS");
  2064. printf("Você vê somente escuridão.\nNão existe nada além de um abismo negro e vazio diante dos seus olhos.\n");
  2065. printf("Mas então, de repente...\n");
  2066. pause(3.5);
  2067. printf("\nPequenas luzes começam a sintilar ao fundo.\n\n * *\n\n *\n *\n *\n * *\n");
  2068. pause(3.5);
  2069. printf("\n\nEntão mais luzes.\n");
  2070. printf("* *\n * * **\n\n* * * * * * *\n * * * * * *\n");
  2071. getchar();
  2072. system("ClS");
  2073. printf("Em menos de um piscar de olhos, tudo estava iluminado.\nVocê se pegou coxilando enquanto cavalgava na estrada.\n");
  2074. if(personagem.sexo==1)
  2075. printf("\n-- Senhor, estamos quase chegando, levaremos pouco menos\nde quinze minutos para avistar a entrada. - Diz o guarda.\n");
  2076. else
  2077. printf("\n-- Senhora, estamos quase chegando, levaremos pouco menos\nde quinze minutos para avistar a entrada. - Diz o guarda.\n");
  2078. getchar();
  2079. system("ClS");
  2080. printf("Você se espreguiça, estrala alguns ossos e arruma sua roupa.\nHoje será um dia importante, não é sempre que se encontra com o rei.\n");
  2081. printf("\n\nPrincipalmente... O Rei.\n");
  2082. getchar();
  2083. system("ClS");
  2084. printf("Alguns minutos depois, você consegue avistar os portões da cidade.\n");
  2085. printf("Ah... A grande capital do reino de Zork'in...\nVocê sorri, lembrando-se dos velhos tempos naquela maravilhosa cidade.\n");
  2086. printf("\nO clima está ótimo, nem muito frio e nem muito quente e com ventos aprazíveis.\n");
  2087. getchar();
  2088. system("ClS");
  2089. printf("A comitiva passa sem nenhum problema pelos portões, afinal de conta, você estavasendo escoltado pela guarda real.\n");
  2090. printf("O chão, antes de terra batida, se transforma em pedra, paralelepípedos tomam\nconta de todo o do solo. O fluxo de pessoas aumenta drasticamente.\n");
  2091. printf("\n\n-- Olá, viajante! Venha, venha, nós temos os melhores produtos! - Berra um\ncomerciante.\n");
  2092. printf("\n-- Venham ver, temos todos os produtos, sim, temos tudo e por ótimos preços.\nVenham! - Berra outro vendedor.\n");
  2093. getchar();
  2094. system("ClS");
  2095. printf("Nada chama muito a sua atenção, na verdade, você pouco presta atenção nas coisas.\nSeu coração palpita de angustia e saudades.\nSendo assim, você continua seu caminho com a comitiva.\n");
  2096. getchar();
  2097.  
  2098. return 0;
  2099. system("pause");
  2100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement