Nullifier Posted July 10, 2015 Group: Members Topic Count: 45 Topics Per Day: 0.01 Content Count: 140 Reputation: 11 Joined: 09/28/14 Last Seen: November 7, 2024 Share Posted July 10, 2015 Hi! i just wanna request a job changer with rewards like when you go to acolyte you got rod[3] and when you go priest you got arc wand[1] like this one ? is there anyone can help ? thanks alot ! (y) Quote Link to comment Share on other sites More sharing options...
Balfear Posted July 11, 2015 Group: Members Topic Count: 13 Topics Per Day: 0.00 Content Count: 256 Reputation: 245 Joined: 07/24/13 Last Seen: March 24 Share Posted July 11, 2015 (edited) I modified the standard script. Change Items ID as you need. And added the issuance of headgears for third class. https://www.dropbox.com/s/yfy5kwmwt2uphlu/jobmaster.txt?dl=0 //===== rAthena Script ======================================= //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Fixed reset on Baby job change. //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. //= 1.3 Kagerou/Oboro added. //= 1.4 Rebellion added. //============================================================ prontera,153,193,6 script Job Master 123,{ function Job_Menu; mes "[Job Master]"; if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your " + ((checkfalcon()) ? "falcon" : "") + ((checkcart()) ? "cart" : "") + ((checkriding()) ? "Peco" : "") + ((ismounting()) ? "mount" : "") + " before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } .@eac = eaclass(); .@i = ((.ThirdClass) ? roclass(.@eac&EAJ_UPPERMASK) : Class); if (.@i >= Job_Knight && .@i <= Job_Crusader2) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { .@blvl = .Rebirth[0] - BaseLevel; .@jlvl = .Rebirth[1] - JobLevel; mes "You need " + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while(1) { mes "Select an option."; next; .@i = select(" ~ ^0055FFRebirth^000000:" + ((.ThirdClass) ? " ~ ^FF0000Third Class^000000" : "") + ": ~ ^777777Cancel^000000"); if (.@i == 3) close; mes "[Job Master]"; mes "Are you sure?"; next; Job_Menu(((.@i == 1) ? Job_Novice_High : roclass(.@eac|EAJL_THIRD))); mes "[Job Master]"; } } .@j1 = roclass(.@eac|EAJL_2_1); .@j2 = roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0], roclass(.@eac|EAJL_THIRD), 99; if (Class == Job_Ninja || Class == Job_Gunslinger) setarray .@exp[0], .@j1, 70; if (.@exp[0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { .@blvl = .Rebirth[0] - BaseLevel; .@jlvl = .@exp[1] - JobLevel; mes "You need " + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } mes "Switch to " + jobname(.@exp[0]) + "?"; next; Job_Menu(.@exp[0]); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) mes "A job level of " + .JobReq[0] + " is required to change into the 1st Class."; else if (Class == Job_Novice_High && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else { switch(Class) { case Job_Novice: Job_Menu( Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby ); break; case Job_Novice_High: Job_Menu( Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High ); break; case Job_Baby: Job_Menu( Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby ); break; default: mes "An error has occurred."; break; } } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of " + .JobReq[1] + " is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob + Job_Novice_High); } else Job_Menu(.@j1, .@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < getargcount(); .@i++) .@menu$ = .@menu$ + " ~ " + jobname(getarg(.@i)) + ":"; .@menu$ = .@menu$+" ~ ^777777Cancel^000000"; next; .@i = getarg(select(.@menu$) - 1, 0); if (!.@i) close; if ((.@i == Job_SuperNovice || .@i == Job_Super_Baby) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of " + .SNovice + " is required to turn into a " + jobname(.@i) + "."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else .@i = getarg(0); if (select(" ~ Change into ^0055FF" + jobname(.@i) + "^000000 class: ~ ^777777" + ((getargcount() > 1) ? "Go back" : "Cancel") + "^000000") == 1) { mes "[Job Master]"; mes "You are now " + callfunc("F_InsertArticle", jobname(.@i)) + "!"; if (.@i == Job_Novice_High && .LastJob) lastJob = Class; jobchange .@i; if (.@i == Job_Novice_High) resetlvl(1); else if (.@i == Job_Baby) { resetstatus; resetskill; set SkillPoint,0; } specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.Platinum) callsub Get_Platinum; if (.JobWeapon) callsub Get_JobWeapon; if (.JobHeadGear) callsub Get_JobHeadGear; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } Get_Platinum: skill "NV_FIRSTAID",1,SKILL_PERM; switch (BaseClass) { case Job_Novice: if (Class != Job_SuperNovice) skill "NV_TRICKDEAD",1,SKILL_PERM; break; case Job_Swordman: skill "SM_MOVINGRECOVERY",1,SKILL_PERM; skill "SM_FATALBLOW",1,SKILL_PERM; skill "SM_AUTOBERSERK",1,SKILL_PERM; break; case Job_Mage: skill "MG_ENERGYCOAT",1,SKILL_PERM; break; case Job_Archer: skill "AC_MAKINGARROW",1,SKILL_PERM; skill "AC_CHARGEARROW",1,SKILL_PERM; break; case Job_Acolyte: skill "AL_HOLYLIGHT",1,SKILL_PERM; break; case Job_Merchant: skill "MC_CARTREVOLUTION",1,SKILL_PERM; skill "MC_CHANGECART",1,SKILL_PERM; skill "MC_LOUD",1,SKILL_PERM; break; case Job_Thief: skill "TF_SPRINKLESAND",1,SKILL_PERM; skill "TF_BACKSLIDING",1,SKILL_PERM; skill "TF_PICKSTONE",1,SKILL_PERM; skill "TF_THROWSTONE",1,SKILL_PERM; break; default: break; } switch (BaseJob) { case Job_Knight: skill "KN_CHARGEATK",1,SKILL_PERM; break; case Job_Priest: skill "PR_REDEMPTIO",1,SKILL_PERM; break; case Job_Wizard: skill "WZ_SIGHTBLASTER",1,SKILL_PERM; break; case Job_Blacksmith: skill "BS_UNFAIRLYTRICK",1,SKILL_PERM; skill "BS_GREED",1,SKILL_PERM; break; case Job_Hunter: skill "HT_PHANTASMIC",1,SKILL_PERM; break; case Job_Assassin: skill "AS_SONICACCEL",1,SKILL_PERM; skill "AS_VENOMKNIFE",1,SKILL_PERM; break; case Job_Crusader: skill "CR_SHRINK",1,SKILL_PERM; break; case Job_Monk: skill "MO_KITRANSLATION",1,SKILL_PERM; skill "MO_BALKYOUNG",1,SKILL_PERM; break; case Job_Sage: skill "SA_CREATECON",1,SKILL_PERM; skill "SA_ELEMENTWATER",1,SKILL_PERM; skill "SA_ELEMENTGROUND",1,SKILL_PERM; skill "SA_ELEMENTFIRE",1,SKILL_PERM; skill "SA_ELEMENTWIND",1,SKILL_PERM; break; case Job_Rogue: skill "RG_CLOSECONFINE",1,SKILL_PERM; break; case Job_Alchemist: skill "AM_BIOETHICS",1,SKILL_PERM; break; case Job_Bard: skill "BA_PANGVOICE",1,SKILL_PERM; break; case Job_Dancer: skill "DC_WINKCHARM",1,SKILL_PERM; break; default: break; } return; Get_JobWeapon: if (Class == Job_Novice_High || Class == Job_Baby) {getitem 501,1; return;} if (Class == Job_Swordman || Class == Job_Baby_Swordman) {getitem 501,1; return;} if (Class == Job_Mage || Class == Job_Baby_Mage) {getitem 501,1; return;} if (Class == Job_Archer || Class == Job_Baby_Archer) {getitem 501,1; return;} if (Class == Job_Acolyte || Class == Job_Baby_Acolyte) {getitem 501,1; return;} if (Class == Job_Merchant || Class == Job_Baby_Merchant) {getitem 501,1; return;} if (Class == Job_Thief || Class == Job_Baby_Thief) {getitem 501,1; return;} if (Class == Job_Knight || Class == Job_Knight2 || Class == Job_Baby_Knight || Class == Job_Baby_Knight2) {getitem 501,1; return;} if (Class == Job_Priest || Class == Job_Baby_Priest) {getitem 501,1; return;} if (Class == Job_Wizard || Class == Job_Baby_Wizard) {getitem 501,1; return;} if (Class == Job_Blacksmith || Class == Job_Baby_Blacksmith) {getitem 501,1; return;} if (Class == Job_Hunter || Class == Job_Baby_Hunter) {getitem 501,1; return;} if (Class == Job_Assassin || Class == Job_Baby_Assassin) {getitem 501,1; return;} if (Class == Job_Crusader || Class == Job_Crusader2 || Class == Job_Baby_Crusader || Class == Job_Baby_Crusader2) {getitem 501,1; return;} if (Class == Job_Monk || Class == Job_Baby_Monk) {getitem 501,1; return;} if (Class == Job_Sage || Class == Job_Baby_Sage) {getitem 501,1; return;} if (Class == Job_Rogue || Class == Job_Baby_Rogue) {getitem 501,1; return;} if (Class == Job_Alchem || Class == Job_Baby_Alchem) {getitem 501,1; return;} if (Class == Job_Bard || Class == Job_Baby_Bard) {getitem 501,1; return;} if (Class == Job_Dancer || Class == Job_Baby_Dancer) {getitem 501,1; return;} if (Class == Job_Lord_Knight || Class == Job_Lord_Knight2) {getitem 501,1; return;} if (Class == Job_High_Priest) {getitem 501,1; return;} if (Class == Job_High_Wizard) {getitem 501,1; return;} if (Class == Job_Whitesmith) {getitem 501,1; return;} if (Class == Job_Sniper) {getitem 501,1; return;} if (Class == Job_Assassin_Cross) {getitem 501,1; return;} if (Class == Job_Paladin || Job_Paladin2) {getitem 501,1; return;} if (Class == Job_Champion) {getitem 501,1; return;} if (Class == Job_Professor) {getitem 501,1; return;} if (Class == Job_Stalker) {getitem 501,1; return;} if (Class == Job_Creator) {getitem 501,1; return;} if (Class == Job_Clown) {getitem 501,1; return;} if (Class == Job_Gypsy) {getitem 501,1; return;} if (Class == Job_Taekwon) {getitem 501,1; return;} if (Class == Job_Star_Gladiator || Class == Job_Star_Gladiator2) {getitem 501,1; return;} if (Class == Job_Soul_Linker) {getitem 501,1; return;} if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Rune_Knight2 || Class == Job_Rune_Knight_T2 || Class == Job_Baby_Rune || Class == Job_Baby_Rune2) {getitem 508,1; return;} if (Class == Job_Warlock || Class == Job_Warlock_T || Class == Job_Baby_Warlock) {getitem 501,1; return;} if (Class == Job_Ranger || Class == Job_Ranger_T || Class == Job_Ranger2 || Class == Job_Ranger_T2 || Class == Job_Baby_Ranger || Class == Job_Baby_Ranger2) {getitem 501,1; return;} if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T || Class == Job_Baby_Bishop) {getitem 501,1; return;} if (Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Mechanic2 || Class == Job_Mechanic_T2 || Class == Job_Baby_Mechanic || Class == Job_Baby_Mechanic2) {getitem 501,1; return;} if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T || Class == Job_Baby_Cross) {getitem 501,1; return;} if (Class == Job_Royal_Guard || Class == Job_Royal_Guard_T || Class == Job_Royal_Guard2 || Class == Job_Royal_Guard_T2 || Class == Job_Baby_Guard || Class == Job_Baby_Guard2) {getitem 501,1; return;} if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer) {getitem 501,1; return;} if (Class == Job_Minstrel || Class == Job_Minstrel_T || Class == Job_Baby_Minstrel) {getitem 501,1; return;} if (Class == Job_Wanderer || Class == Job_Wanderer_T || Class == Job_Baby_Wanderer) {getitem 501,1; return;} if (Class == Job_Sura || Class == Job_Sura_T || Class == Job_Baby_Sura) {getitem 501,1; return;} if (Class == Job_Genetic || Class == Job_Genetic_T || Class == Job_Baby_Genetic) {getitem 501,1; return;} if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T || Class == Job_Baby_Chaser) {getitem 501,1; return;} if (Class == Job_SuperNovice || Class == Job_Super_Baby) {getitem 501,1; return;} if (Class == Job_Gunslinger) {getitem 501,1; return;} if (Class == Job_Ninja) {getitem 501,1; return;} if (Class == Job_Super_Novice_E || Class == Job_Super_Baby_E) {getitem 501,1; return;} if (Class == Job_Kagerou) {getitem 501,1; return;} if (Class == Job_Oboro) {getitem 501,1; return;} if (Class == Job_Rebellion) {getitem 501,1; return;} return; Get_JobHeadGear: if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T) {getitem 5746,1; getitem 2795,1; return;} else if (Class == Job_Royal_Guard || Class == Job_Royal_Guard_T) {getitem 5757,1; getitem 2795,1; return;} else if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T) {getitem 5747,1; getitem 2795,1; return;} else if (Class == Job_Sura || Class == Job_Sura_T) {getitem 5754,1; getitem 2795,1; return;} else if (Class == Job_Warlock || Class == Job_Warlock_T) {getitem 5753,1; getitem 2795,1; return;} else if (Class == Job_Sorcerer || Class == Job_Sorcerer_T) {getitem 5756,1; getitem 2795,1; return;} else if (Class == Job_Mechanic || Class == Job_Mechanic_T) { if (Sex) getitem 5749,1; else getitem 5760,1; getitem 2795,1; return;} else if (Class == Job_Genetic || Class == Job_Genetic_T) {getitem 5752,1; getitem 2795,1; return;} else if (Class == Job_Ranger || Class == Job_Ranger_T) {getitem 5748,1; getitem 2795,1; return;} else if (Class == Job_Minstrel || Class == Job_Minstrel_T) {getitem 5751,1; getitem 2795,1; return;} else if (Class == Job_Wanderer || Class == Job_Wanderer_T) {getitem 5758,1; getitem 2795,1; return;} else if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T) {getitem 5755,1; getitem 2795,1; return;} else if (Class == Job_Shadow_Chaser || Class == Job_Shadow_Chaser_T) {getitem 5750,1; getitem 2795,1; return;} return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class .ThirdClass = 1; // Enable third classes? (1: yes / 0: no) .SecondExpanded = 1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) .SNovice = 45; // Minimum base level to turn into Super Novice .LastJob = 1; // Enforce linear class changes? (1: yes / 0: no) .SkillPointCheck = 1; // Force player to use up all skill points? (1: yes / 0: no) .Platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) .JobWeapon = 1; // Get weapon for each job? (1: yes / 0: no) .JobHeadGear = 1; // Get headgear for third class? (1: yes / 0: no) end; } Edited July 11, 2015 by balfear Quote Link to comment Share on other sites More sharing options...
Nullifier Posted July 12, 2015 Group: Members Topic Count: 45 Topics Per Day: 0.01 Content Count: 140 Reputation: 11 Joined: 09/28/14 Last Seen: November 7, 2024 Author Share Posted July 12, 2015 thanks alot for the reply much appreciated ! Quote Link to comment Share on other sites More sharing options...
Question
Nullifier
Hi! i just wanna request a job changer with rewards like when you go to acolyte you got rod[3] and when you go priest you got arc wand[1] like this one ? is there anyone can help ? thanks alot ! (y)
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.