Advertisement
Guest User

Mestra das classes

a guest
Feb 23rd, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.90 KB | None | 0 0
  1. prontera,151,193,6 script Mestra das Classes 1_F_03,{
  2. function Job_Menu; function A_An;
  3.  
  4. mes "[ ^800080Valquíria^000000 ]";
  5. if (Class > Job_Soul_Linker) {
  6. mes "Não há mais classes disponíveis ^003366"+strcharinfo(0)+"^000000.";
  7. close;
  8. }
  9. if (checkfalcon() || checkcart() || checkmount() || hascashmount()) {
  10. mes "Por favor remova "+((checkfalcon())?"o seu falcão":"")+((checkcart())?"o seu carrinho":"")+((checkmount() || hascashmount())?"a sua montaria":"")
  11. +" antes de continuar.";
  12. close;
  13. }
  14. if (.skill_point_check && SkillPoint > 0) {
  15. mes "Por favor use todos os seus pontos de habilidade antes de continuar.";
  16. close;
  17. }
  18.  
  19. .@eac = eaclass();
  20. .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class;
  21. if (.@base >= Job_Knight && .@base <= Job_Crusader2) {
  22. if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) {
  23. .@blvl = .rebirth_blevel - BaseLevel;
  24. .@jlvl = .rebirth_jlevel - JobLevel;
  25. mes "Você precisa de mais "
  26. + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" níveis de base "+ (JobLevel < .rebirth_jlevel ? "e " : "")) : "")
  27. + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" níveis de classe " : "")
  28. + "para continuar.";
  29. close;
  30. }
  31. if (Class > Job_Crusader2) {
  32. mes "Trocar para terceira classe?";
  33. next;
  34. Job_Menu(roclass(.@eac|EAJL_THIRD));
  35. close;
  36. }
  37. while (true) {
  38. mes "Selecione uma opção.";
  39. next;
  40. .@choice = select(" - ^0055FFRenascer^000000:"+(.third_classes ? " - ^FF0000Terceira Classe^000000" : "")+": - ^777777Cancelar^000000");
  41. if (.@choice == 3)
  42. close;
  43. mes "[ ^800080Valquíria^000000 ]";
  44. mes "Você tem certeza ?";
  45. next;
  46. if (.@choice == 1)
  47. Job_Menu(Job_Novice_High);
  48. else
  49. Job_Menu(roclass(.@eac|EAJL_THIRD));
  50. mes "[ ^800080Valquíria^000000 ]";
  51. }
  52. }
  53. .@job1 = roclass(.@eac|EAJL_2_1);
  54. .@job2 = roclass(.@eac|EAJL_2_2);
  55. if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) {
  56. .@newclass = roclass(.@eac|EAJL_THIRD);
  57. .@required_jlevel = 99;
  58. } else if (Class == Job_Ninja || Class == Job_Gunslinger) {
  59. .@newclass = .@job1;
  60. .@required_jlevel = 70;
  61. }
  62. if (.@newclass && .third_classes) {
  63. if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) {
  64. mes "Você precisa de mais "
  65. + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" níveis de base "+ (JobLevel < .@required_jlevel ? "e " : "")) : "")
  66. + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" níveis de classe " : "")
  67. + "para continuar.";
  68. close;
  69. }
  70. mes "Trocar para "+jobname(.@newclass)+"?";
  71. next;
  72. Job_Menu(.@newclass);
  73. close;
  74. }
  75. if (.@eac&EAJL_2)
  76. if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {
  77. mes "Não há mais classes disponíveis ^003366"+strcharinfo(0)+"^000000.";
  78. close;
  79. }
  80. if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
  81. if (JobLevel < .jobchange_first) {
  82. mes "É necessário ter um nível de classe igual ou maior que "+.jobchange_first+" para mudar para a 1a Classe.";
  83. } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) {
  84. mes "Trocar de classe agora?";
  85. next;
  86. Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
  87. } else if (Class == Job_Novice) {
  88. Job_Menu(Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief,
  89. Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby);
  90. } else if (Class == Job_Novice_High) {
  91. Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
  92. } else if (Class == Job_Baby) {
  93. Job_Menu(Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief,
  94. Job_Super_Baby);
  95. } else {
  96. mes "Um erro aconteceu.";
  97. }
  98. close;
  99. }
  100. if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) {
  101. mes "Não há mais classes disponíveis ^003366"+strcharinfo(0)+"^000000.";
  102. } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) {
  103. mes "É necessário ter um nível de classe igual ou maior que "+.jobchange_second+" para mudar para a 2a Classe.";
  104. } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) {
  105. mes "Trocar de classe agora?";
  106. next;
  107. Job_Menu(lastJob+Job_Novice_High);
  108. } else {
  109. Job_Menu(.@job1, .@job2);
  110. }
  111. close;
  112.  
  113. function Job_Menu {
  114. while (true) {
  115. if (getargcount() > 1) {
  116. mes "Bem-vind"+(Sex?"o":"a")+" ^003366"+strcharinfo(0)+"^000000.";
  117. mes "Selecione uma classe para prosseguir sua jornada.";
  118. .@menu$ = "";
  119. for (.@i = 0; .@i < getargcount(); ++.@i)
  120. .@menu$ += " - "+jobname(getarg(.@i))+".:";
  121. .@menu$ += " - ^777777Cancel^000000.";
  122. next;
  123. .@newjob = getarg(select(.@menu$)-1, 0);
  124. if (!.@newjob) close;
  125. if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) {
  126. mes "[ ^800080Valquíria^000000 ]";
  127. mes "É necessário ter um nível de base igual ou maior que "+.supernovice_level+" para virar um "+jobname(.@newjob)+".";
  128. close;
  129. }
  130. mes "[ ^800080Valquíria^000000 ]";
  131. mes "Você tem certeza ?";
  132. next;
  133. } else {
  134. .@newjob = getarg(0);
  135. }
  136. if (select(" - Mudar para a classe ^0055FF"+jobname(.@newjob)+"^000000.: - ^777777"+(getargcount() > 1 ? "Voltar" : "Cancelar")+"^000000.") == 1) {
  137. mes "[ ^800080Valquíria^000000 ]";
  138. mes "Você agora é um "+A_An(jobname(.@newjob))+"!";
  139. if (.@newjob == Job_Novice_High && .linear_jobchange)
  140. lastJob = Class; // Nota: Isso é incompatível com o script de renascimento da Valquíria
  141. jobchange .@newjob;
  142. if (.@newjob == Job_Novice_High)
  143. resetlvl(1);
  144. if (.@newjob == Job_Baby) {
  145. resetlvl(4);
  146. SkillPoint = 0;
  147. }
  148. specialeffect2 EF_ANGEL2;
  149. specialeffect2 EF_ELECTRIC;
  150. if (.platinum)
  151. callsub Get_Platinum;
  152. close;
  153. }
  154. if (getargcount() == 1)
  155. return;
  156. mes "[ ^800080Valquíria^000000 ]";
  157. }
  158. end;
  159. }
  160.  
  161. function A_An {
  162. setarray .@vowels$, "a", "e", "i", "o", "u";
  163. .@firstletter$ = strtolower(charat(getarg(0), 0));
  164. for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) {
  165. if (.@vowels$[.@i] == .@firstletter$)
  166. return "an "+getarg(0);
  167. }
  168. return "a "+getarg(0);
  169. }
  170.  
  171. Get_Platinum:
  172. skill NV_FIRSTAID, 1, 0;
  173. if (BaseClass == Job_Novice) {
  174. if (Class != Job_SuperNovice)
  175. skill NV_TRICKDEAD, 1, 0;
  176. } else if (BaseClass == Job_Swordman) {
  177. skill SM_MOVINGRECOVERY, 1, 0;
  178. skill SM_FATALBLOW, 1, 0;
  179. skill SM_AUTOBERSERK, 1, 0;
  180. } else if (BaseClass == Job_Mage) {
  181. skill MG_ENERGYCOAT, 1, 0;
  182. } else if (BaseClass == Job_Archer) {
  183. skill AC_MAKINGARROW, 1, 0;
  184. skill AC_CHARGEARROW, 1, 0;
  185. } else if (BaseClass == Job_Acolyte) {
  186. skill AL_HOLYLIGHT, 1, 0;
  187. } else if (BaseClass == Job_Merchant) {
  188. skill MC_CARTREVOLUTION, 1, 0;
  189. skill MC_CHANGECART, 1, 0;
  190. skill MC_LOUD, 1, 0;
  191. } else if (BaseClass == Job_Thief) {
  192. skill TF_SPRINKLESAND, 1, 0;
  193. skill TF_BACKSLIDING, 1, 0;
  194. skill TF_PICKSTONE, 1, 0;
  195. skill TF_THROWSTONE, 1, 0;
  196. }
  197.  
  198. if (BaseJob == Job_Knight) {
  199. skill KN_CHARGEATK, 1, 0;
  200. } else if (BaseJob == Job_Priest) {
  201. skill PR_REDEMPTIO, 1, 0;
  202. } else if (BaseJob == Job_Wizard) {
  203. skill WZ_SIGHTBLASTER, 1, 0;
  204. } else if (BaseJob == Job_Blacksmith) {
  205. skill BS_UNFAIRLYTRICK, 1, 0;
  206. skill BS_GREED, 1, 0;
  207. } else if (BaseJob == Job_Hunter) {
  208. skill HT_PHANTASMIC, 1, 0;
  209. } else if (BaseJob == Job_Assassin) {
  210. skill AS_SONICACCEL, 1, 0;
  211. skill AS_VENOMKNIFE, 1, 0;
  212. } else if (BaseJob == Job_Crusader) {
  213. skill CR_SHRINK, 1, 0;
  214. } else if (BaseJob == Job_Monk) {
  215. skill MO_KITRANSLATION, 1, 0;
  216. skill MO_BALKYOUNG, 1, 0;
  217. } else if (BaseJob == Job_Sage) {
  218. skill SA_CREATECON, 1, 0;
  219. skill SA_ELEMENTWATER, 1, 0;
  220. skill SA_ELEMENTGROUND, 1, 0;
  221. skill SA_ELEMENTFIRE, 1, 0;
  222. skill SA_ELEMENTWIND, 1, 0;
  223. } else if (BaseJob == Job_Rogue) {
  224. skill RG_CLOSECONFINE, 1, 0;
  225. } else if (BaseJob == Job_Alchemist) {
  226. skill AM_BIOETHICS, 1, 0;
  227. } else if (BaseJob == Job_Bard) {
  228. skill BA_PANGVOICE, 1, 0;
  229. } else if (BaseJob == Job_Dancer) {
  230. skill DC_WINKCHARM, 1, 0;
  231. }
  232. return;
  233.  
  234. OnInit:
  235. .rebirth_blevel = 99; // nível de base mínimo para renascer OU mudar para terceira classe
  236. .rebirth_jlevel = 50; // nível de classe mínimo para renascer OU mudar para terceira classe
  237. .jobchange_first = 10; // nível de classe mínimo para mudar para 1a classe
  238. .jobchange_second = 40; // nível de classe mínimo para mudar para 2a classe
  239. .third_classes = 0; // Permitir terceiras classes/classes expandidas? (1: sim / 0: não)
  240. .supernovice_level = 45; // nível de base mínimo para virar um Super Aprendiz
  241. .linear_jobchange = 1; // Forçar a troca linear de classes? (1: sim / 0: não)
  242. .skill_point_check = 1; // Forçar o jogador usar todos os pontos de habilidade? (1: sim / 0: não)
  243. .platinum = 1; // Obter habilidades de platina automaticamente? (1: sim / 0: não)
  244. end;
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement