Advertisement
akbare

[3CeAM] jobchange support 3rd class

Jan 23rd, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.96 KB | None | 0 0
  1. //////////////////////////////////////////////////////////////////////////////////
  2. // Jobchanger eA-Jobsystem + 3rd Classes //
  3. /////////////////////////////////////////////////////////////////////////////////
  4. //1.0 - Creators Job Master eAthena [Ori:LunatikBunnie] [Cur:Lance])
  5. //1.1 - Added 3rd Classes [Viktus]
  6. //1.2 - Added 2nd Platinum Skills [Viktus]
  7. ///////////////////////////////////////////////////////////////////////////////
  8.  
  9. ayothaya,213,276,4 script Job Changer 430,{
  10. mes "^ff0000[Job Master]^000000";
  11. if(Class >= 4054 && Class <= 4085) goto L_max;
  12. if(SkillPoint != 0) goto L_stats;
  13. if(Upper == 1 && Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_Third;
  14. if(JobLevel < 10) goto L_LvError;
  15. switch(Class){
  16. case Job_Novice_High:
  17. case Job_Baby:
  18. case Job_Novice:
  19. skill 142,1,0;
  20. skill 143,1,0;
  21. mes "Welcome, please select the job you wish to change into";
  22. if(lastJob != 0 && Class == Job_Novice_High){
  23. switch(lastJob){
  24. case Job_Knight:
  25. case Job_Crusader:
  26. set @target_job, Job_Swordman_High;
  27. break;
  28. case Job_Monk:
  29. case Job_Priest:
  30. set @target_job, Job_Acolyte_High;
  31. break;
  32. case Job_Alchemist:
  33. case Job_Blacksmith:
  34. set @target_job, Job_Merchant_High;
  35. break;
  36. case Job_Rogue:
  37. case Job_Assassin:
  38. set @target_job, Job_Thief_High;
  39. break;
  40. case Job_Wizard:
  41. case Job_Sage:
  42. set @target_job, Job_Mage_High;
  43. break;
  44. case Job_Hunter:
  45. case Job_Bard:
  46. case Job_Dancer:
  47. set @target_job, Job_Archer_High;
  48. break;
  49. }
  50. } else {
  51. switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
  52. "Super Novice","Taekwon","Gunslinger","Ninja")){
  53. case 7:
  54. if(Class == Job_Novice_High) goto L_noReq;
  55. if($@JC_SupNovM > BaseLevel) goto L_BvError;
  56. if(Upper == 2)
  57. set @target_job, Job_Super_Baby;
  58. else
  59. set @target_job, Job_SuperNovice;
  60. break;
  61. case 8:
  62. if(Class == Job_Novice_High) goto L_noReq;
  63. if(Upper == 2) goto L_noReq;
  64. set @target_job, Job_Taekwon;
  65. break;
  66. case 9:
  67. case 10:
  68. if(Class == Job_Novice_High || Upper == 2) goto L_noReq;
  69. set @target_job, @menu + 15;
  70. break;
  71. default:
  72. set @target_job, @menu;
  73. if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
  74. break;
  75. }
  76. }
  77. mes "Are you sure you want to change to " + JobName(@target_job) + "?";
  78. if(select("No","Yes") == 2){
  79. callfunc "Job_Change", @target_job;
  80. if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
  81. callfunc "F_ClearJobVar";
  82. } else {
  83. if($@JC_Plat) goto L_GivePlat;
  84. }
  85. }
  86. close;
  87. break;
  88. default:
  89. if(JobLevel < $@JC_MinimumJB) goto L_LvError;
  90. deletearray @job_opt, getarraysize(@job_opt);
  91. if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
  92. if(lastJob != 0){
  93. set @target_job, lastJob + 4001;
  94. } else {
  95. switch(Class){
  96. case Job_Swordman_High:
  97. case Job_Baby_Swordman:
  98. case Job_Swordman:
  99. set @job_opt[0], Job_Knight;
  100. set @job_opt[1], Job_Crusader;
  101. break;
  102. case Job_Mage_High:
  103. case Job_Baby_Mage:
  104. case Job_Mage:
  105. set @job_opt[0], Job_Wizard;
  106. set @job_opt[1], Job_Sage;
  107. break;
  108. case Job_Archer_High:
  109. case Job_Baby_Archer:
  110. case Job_Archer:
  111. set @job_opt[0], Job_Hunter;
  112. if(Sex == 0)
  113. set @job_opt[1], Job_Dancer;
  114. else
  115. set @job_opt[1], Job_Bard;
  116. break;
  117. case Job_Acolyte_High:
  118. case Job_Baby_Acolyte:
  119. case Job_Acolyte:
  120. set @job_opt[0], Job_Priest;
  121. set @job_opt[1], Job_Monk;
  122. break;
  123. case Job_Merchant_High:
  124. case Job_Baby_Merchant:
  125. case Job_Merchant:
  126. set @job_opt[0], Job_Blacksmith;
  127. set @job_opt[1], Job_Alchemist;
  128. break;
  129. case Job_Thief_High:
  130. case Job_Baby_Thief:
  131. case Job_Thief:
  132. set @job_opt[0], Job_Assassin;
  133. set @job_opt[1], Job_Rogue;
  134. break;
  135. default:
  136. set @job_opt[0], Job_Star_Gladiator;
  137. set @job_opt[1], Job_Soul_Linker;
  138. break;
  139. }
  140. mes "Welcome, please select the job you wish to change into";
  141. set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
  142. if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
  143. }
  144. mes "Are you sure you want to change to " + JobName(@target_job) + "?";
  145. if(select("No","Yes")==2){
  146. callfunc "Job_Change", @target_job;
  147. if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
  148. callfunc "F_ClearJobVar";
  149. } else {
  150. if($@JC_Plat) goto L_GivePlat;
  151. }
  152. }
  153. close;
  154. }
  155. if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
  156. if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
  157. mes "Choose your next step";
  158. if(select("Reborn","Become a 3rd Class")==1){
  159. if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
  160. set lastJob, Class;
  161. if(Class == Job_Knight2){
  162. set lastJob, Job_Knight;
  163. } else {
  164. if(Class == Job_Crusader2){
  165. set lastJob, Job_Crusader;
  166. }
  167. }
  168. jobchange Job_Novice_High;
  169. resetlvl(1);
  170. skill 142,1,0;
  171. skill 143,1,0;
  172. close;
  173. }
  174. switch(Class){
  175. case Job_Knight:
  176. set @target_job, 4054;
  177. break;
  178. case Job_Crusader:
  179. set @target_job, 4066;
  180. break;
  181. case Job_Monk:
  182. set @target_job, 4070;
  183. break;
  184. case Job_Priest:
  185. set @target_job, 4057;
  186. break;
  187. case Job_Alchemist:
  188. set @target_job, 4071;
  189. break;
  190. case Job_Blacksmith:
  191. set @target_job, 4058;
  192. break;
  193. case Job_Rogue:
  194. set @target_job, 4072;
  195. break;
  196. case Job_Assassin:
  197. set @target_job, 4059;
  198. break;
  199. case Job_Wizard:
  200. set @target_job, 4055;
  201. break;
  202. case Job_Sage:
  203. set @target_job, 4067;
  204. break;
  205. case Job_Hunter:
  206. set @target_job, 4056;
  207. break;
  208. case Job_Bard:
  209. set @target_job, 4068;
  210. break;
  211. case Job_Dancer:
  212. set @target_job, 4069;
  213. break;
  214. }
  215. mes "Are you sure you want to change to " + JobName(@target_job) + "?";
  216. if(select("No","Yes")==2){
  217. if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
  218. callfunc "Job_Change", @target_job;
  219. specialeffect2 514;
  220. specialeffect2 381;
  221. setlook 7,0;
  222. }
  223. close;
  224. }
  225. mes "I'm sorry, there are no further classes for your job.";
  226. close;
  227. }
  228.  
  229. L_Third:
  230. if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
  231. mes "Are you sure you want to change to 3rd Class?";
  232. if(select("Yes","No")==1){
  233. if(BaseLevel < 99 || JobLevel < 70) goto L_cantCh;
  234. switch(Class){
  235. case Job_Lord_Knight:
  236. set @target_job, 4060;
  237. break;
  238. case Job_Paladin:
  239. set @target_job, 4073;
  240. break;
  241. case Job_Champion:
  242. set @target_job, 4077;
  243. break;
  244. case Job_High_Priest:
  245. set @target_job, 4063;
  246. break;
  247. case Job_Creator:
  248. set @target_job, 4078;
  249. break;
  250. case Job_Whitesmith:
  251. set @target_job, 4064;
  252. break;
  253. case Job_Stalker:
  254. set @target_job, 4079;
  255. break;
  256. case Job_Assassin_Cross:
  257. set @target_job, 4065;
  258. break;
  259. case Job_High_Wizard:
  260. set @target_job, 4061;
  261. break;
  262. case Job_Professor:
  263. set @target_job, 4074;
  264. break;
  265. case Job_Sniper:
  266. set @target_job, 4062;
  267. break;
  268. case Job_Clown:
  269. set @target_job, 4075;
  270. break;
  271. case Job_Gypsy:
  272. set @target_job, 4076;
  273. break;
  274. }
  275. mes "Are you sure you want to change to " + JobName(@target_job) + "?";
  276. if(select("No","Yes") == 2){
  277. callfunc "Job_Change", @target_job;
  278. specialeffect2 514;
  279. specialeffect2 381;
  280. setlook 7,0;
  281. close;
  282. }
  283. }
  284. close;
  285.  
  286.  
  287. L_GivePlat:
  288. if (BaseClass==Job_SuperNovice) goto L_sSuperN;
  289. if (BaseClass==Job_Swordman) goto L_sSword;
  290. if (BaseClass==Job_Mage) goto L_sMage;
  291. if (BaseClass==Job_Archer) goto L_sArcher;
  292. if (BaseClass==Job_Acolyte) goto L_sAcolyte;
  293. if (BaseClass==Job_Merchant) goto L_sMerchant;
  294. if (BaseClass==Job_Thief) goto L_sThief;
  295. if (BaseClass==Job_Knight) goto L_sKnigh;
  296. if (BaseClass==Job_Crusader) goto L_sCrusader;
  297. if (BaseClass==Job_Assassin) goto L_sAssassin;
  298. if (BaseClass==Job_Rogue) goto L_sRogue;
  299. if (BaseClass==Job_Wizard) goto L_sWizard;
  300. if (BaseClass==Job_Sage) goto L_sSage;
  301. if (BaseClass==Job_Hunter) goto L_sHunter;
  302. if (BaseClass==Job_Bard) goto L_sBard;
  303. if (BaseClass==Job_Dancer) goto L_sDancer;
  304. if (BaseClass==Job_BlackSmith) goto L_sBlackSmith;
  305. if (BaseClass==Job_Priest) goto L_sPriest;
  306. if (BaseClass==Job_Monk) goto L_sMonk;
  307. close;
  308. L_sSuperN:
  309. skill 142,1,0;
  310. close;
  311. L_sSword:
  312. skill 142,1,0;
  313. skill 144,1,0;
  314. skill 145,1,0;
  315. skill 146,1,0;
  316. close;
  317. L_sMage:
  318. skill 142,1,0;
  319. skill 157,1,0;
  320. close;
  321. L_sArcher:
  322. skill 142,1,0;
  323. skill 147,1,0;
  324. skill 148,1,0;
  325. close;
  326. L_sAcolyte:
  327. skill 142,1,0;
  328. skill 156,1,0;
  329. close;
  330. L_sMerchant:
  331. skill 142,1,0;
  332. skill 153,1,0;
  333. skill 154,1,0;
  334. skill 155,1,0;
  335. close;
  336. L_sThief:
  337. skill 142,1,0;
  338. skill 149,1,0;
  339. skill 150,1,0;
  340. skill 151,1,0;
  341. skill 152,1,0;
  342. close;
  343. L_sKnight:
  344. skill 1001,1,0;
  345. close;
  346. L_sCrusader:
  347. skill 1002,1,0;
  348. close;
  349. L_sAssassin:
  350. skill 1003,1,0;
  351. skill 1004,1,0;
  352. close;
  353. L_sRogue:
  354. skill 1005,1,0;
  355. close;
  356. L_sWizard:
  357. skill 1006,1,0;
  358. close;
  359. L_sSage:
  360. skill 1007,1,0;
  361. close;
  362. L_sHunter:
  363. skill 1009,1,0;
  364. close;
  365. L_sBard:
  366. skill 1010,1,0;
  367. close;
  368. L_sDancer:
  369. skill 1011,1,0;
  370. close;
  371. L_sBlackSmith:
  372. skill 1012,1,0;
  373. skill 1013,1,0;
  374. close;
  375. L_sPriest:
  376. skill 1014,1,0;
  377. close;
  378. L_sMonk:
  379. skill 1015,1,0;
  380. skill 1016,1,0;
  381. close;
  382. L_cantCh:
  383. mes "I'm sorry, you do not meet the requirements to change";
  384. mes "Please come again soon!";
  385. close;
  386.  
  387. L_LvError:
  388. mes "I'm sorry, you do not seem to have enough Job Levels";
  389. mes "Please come again soon!";
  390. close;
  391.  
  392. L_BvError:
  393. mes "I'm sorry, you do not seem to have enough Base Levels";
  394. mes "Please come again soon!";
  395. close;
  396.  
  397. L_noReq:
  398. mes "I'm sorry, you do not meet the requirements to change";
  399. mes "Please come again soon!";
  400. close;
  401.  
  402. L_max:
  403. mes "I'm sorry, there are no further classes for your job.";
  404. close;
  405.  
  406. L_stats:
  407. mes "I'm sorry, please use up all your skill points before changing jobs";
  408. mes "Please come again soon!";
  409. close;
  410.  
  411. L_remove:
  412. mes "Please remove your cart,falcon or peco";
  413. mes "Please come again soon!";
  414. close;
  415.  
  416.  
  417.  
  418.  
  419. OnInit:
  420. // Variable Setup
  421. set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
  422. set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
  423. set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
  424. end;
  425. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement