joelolopez Posted August 10, 2014 Group: Members Topic Count: 154 Topics Per Day: 0.03 Content Count: 493 Reputation: 46 Joined: 01/24/12 Last Seen: August 25, 2022 Share Posted August 10, 2014 (edited) i would like to request a script that will warp you to the guild that you desire to take a job change quest, instead of instant job change npc (all job change quest warp locations) for low rate or classic style server purpose job change quest warp will warp you from ex: -swordsman guild -and etc -kagero quest included -rebellion quest if we already have rebellion quest Edited August 10, 2014 by joelolopez Quote Link to comment Share on other sites More sharing options...
0 ichikun1 Posted June 1, 2017 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 29 Reputation: 0 Joined: 05/11/17 Last Seen: April 3 Share Posted June 1, 2017 oh! thank guys for this gift.............................................. please make a full third class job quest........ this is my first time to make my own server & it feels like whoa!!!!!! its not easy but thanks you guys for keephelping us also for being a kind........... sorry about my english Quote Link to comment Share on other sites More sharing options...
greyman15 Posted August 10, 2014 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 26 Reputation: 2 Joined: 06/28/14 Last Seen: December 9, 2021 Share Posted August 10, 2014 (edited) if you said classic style RO then you'll have to stick to the classic quest the way it is.. //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1 //Caution: don't touch in it you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov; next; snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_hunter" ,99,104; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; } here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code.. jobquester.txt jobquester - Revised.txt Edited August 15, 2014 by greyman15 1 Quote Link to comment Share on other sites More sharing options...
Normynator Posted August 10, 2014 Group: Developer Topic Count: 7 Topics Per Day: 0.00 Content Count: 292 Reputation: 199 Joined: 05/03/13 Last Seen: May 26, 2023 Share Posted August 10, 2014 //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon 1 Quote Link to comment Share on other sites More sharing options...
joelolopez Posted August 13, 2014 Group: Members Topic Count: 154 Topics Per Day: 0.03 Content Count: 493 Reputation: 46 Joined: 01/24/12 Last Seen: August 25, 2022 Author Share Posted August 13, 2014 if you said classic style RO then you'll have to stick to the classic quest the way it is.. //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov; next; snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_hunter" ,99,104; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; } //Duplicates Here-----------------------------------------// prontera,162,98,3 duplicate(Job Quester) Job Quester#1-1 733 alberta,24,241,3 duplicate(Job Quester) Job Quester#2-1 733 geffen,115,65,3 duplicate(Job Quester) Job Quester#3-1 733 izlude,132,116,3 duplicate(Job Quester) Job Quester#4-1 733 morocc,156,83,3 duplicate(Job Quester) Job Quester#5-1 733 payon,144,231,3 duplicate(Job Quester) Job Quester#6-1 733 morocc,169,257,3 duplicate(Job Quester) Job Quester#7-1 733 here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code.. this is what im looking for but its not complete //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon does kagero quest warp included in this script? Quote Link to comment Share on other sites More sharing options...
greyman15 Posted August 15, 2014 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 26 Reputation: 2 Joined: 06/28/14 Last Seen: December 9, 2021 Share Posted August 15, 2014 if you said classic style RO then you'll have to stick to the classic quest the way it is.. //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov; next; snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_hunter" ,99,104; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; } //Duplicates Here-----------------------------------------// prontera,162,98,3 duplicate(Job Quester) Job Quester#1-1 733 alberta,24,241,3 duplicate(Job Quester) Job Quester#2-1 733 geffen,115,65,3 duplicate(Job Quester) Job Quester#3-1 733 izlude,132,116,3 duplicate(Job Quester) Job Quester#4-1 733 morocc,156,83,3 duplicate(Job Quester) Job Quester#5-1 733 payon,144,231,3 duplicate(Job Quester) Job Quester#6-1 733 morocc,169,257,3 duplicate(Job Quester) Job Quester#7-1 733 here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code.. this is what im looking for but its not complete //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon does kagero quest warp included in this script? ok here it is: included the alternate 2nd jobs //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1.0 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov; next; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "hu_in01" ,382,373; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; //Alternate Job Quest-------------------------------------------- ajob: mes "[Job Quester]"; mes "Please select what class"; mes "will I warp you."; menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag; next; alche: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alde_alche" ,27,180; close; bard: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,226,120; close; crus: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_castle" ,45,164; close; dance: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,180,150; close; mon: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_monk" ,59,244; close; rog: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_ruins" ,89,103; close; sag: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "yuno_in02" ,41,61; close; //Super Novice-------------------------------------------- snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; } Quote Link to comment Share on other sites More sharing options...
joelolopez Posted August 15, 2014 Group: Members Topic Count: 154 Topics Per Day: 0.03 Content Count: 493 Reputation: 46 Joined: 01/24/12 Last Seen: August 25, 2022 Author Share Posted August 15, 2014 if you said classic style RO then you'll have to stick to the classic quest the way it is.. //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov; next; snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_hunter" ,99,104; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; } //Duplicates Here-----------------------------------------// prontera,162,98,3 duplicate(Job Quester) Job Quester#1-1 733 alberta,24,241,3 duplicate(Job Quester) Job Quester#2-1 733 geffen,115,65,3 duplicate(Job Quester) Job Quester#3-1 733 izlude,132,116,3 duplicate(Job Quester) Job Quester#4-1 733 morocc,156,83,3 duplicate(Job Quester) Job Quester#5-1 733 payon,144,231,3 duplicate(Job Quester) Job Quester#6-1 733 morocc,169,257,3 duplicate(Job Quester) Job Quester#7-1 733 here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code.. this is what im looking for but its not complete //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon does kagero quest warp included in this script? ok here it is: included the alternate 2nd jobs //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1.0 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov; next; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "hu_in01" ,382,373; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; //Alternate Job Quest-------------------------------------------- ajob: mes "[Job Quester]"; mes "Please select what class"; mes "will I warp you."; menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag; next; alche: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alde_alche" ,27,180; close; bard: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,226,120; close; crus: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_castle" ,45,164; close; dance: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,180,150; close; mon: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_monk" ,59,244; close; rog: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_ruins" ,89,103; close; sag: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "yuno_in02" ,41,61; close; //Super Novice-------------------------------------------- snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; } does it have a rebirth warper and 3rd job quests warps? kagerou too? Quote Link to comment Share on other sites More sharing options...
greyman15 Posted August 15, 2014 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 26 Reputation: 2 Joined: 06/28/14 Last Seen: December 9, 2021 Share Posted August 15, 2014 lol.. it's just the classic jobs from 1st job to 2nd job and alternate 2nd job only because you stated that you want a classic server type Quote Link to comment Share on other sites More sharing options...
Normynator Posted August 15, 2014 Group: Developer Topic Count: 7 Topics Per Day: 0.00 Content Count: 292 Reputation: 199 Joined: 05/03/13 Last Seen: May 26, 2023 Share Posted August 15, 2014 if you said classic style RO then you'll have to stick to the classic quest the way it is.. //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov; next; snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_hunter" ,99,104; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; } //Duplicates Here-----------------------------------------// prontera,162,98,3 duplicate(Job Quester) Job Quester#1-1 733 alberta,24,241,3 duplicate(Job Quester) Job Quester#2-1 733 geffen,115,65,3 duplicate(Job Quester) Job Quester#3-1 733 izlude,132,116,3 duplicate(Job Quester) Job Quester#4-1 733 morocc,156,83,3 duplicate(Job Quester) Job Quester#5-1 733 payon,144,231,3 duplicate(Job Quester) Job Quester#6-1 733 morocc,169,257,3 duplicate(Job Quester) Job Quester#7-1 733 here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code.. this is what im looking for but its not complete //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon does kagero quest warp included in this script? ok here it is: included the alternate 2nd jobs //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1.0 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov; next; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "hu_in01" ,382,373; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; //Alternate Job Quest-------------------------------------------- ajob: mes "[Job Quester]"; mes "Please select what class"; mes "will I warp you."; menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag; next; alche: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alde_alche" ,27,180; close; bard: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,226,120; close; crus: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_castle" ,45,164; close; dance: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,180,150; close; mon: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_monk" ,59,244; close; rog: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_ruins" ,89,103; close; sag: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "yuno_in02" ,41,61; close; //Super Novice-------------------------------------------- snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; } does it have a rebirth warper and 3rd job quests warps? kagerou too? Orginal by Euhpy, edit by Normynator, ever class is included. //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A functional job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000 && .@i < 4030 && !4046 && !4047 && !4049){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; case 23: warp "aldebaran", 116, 63; break; case 24: warp "Einbroch Tower", 134,199; break; case 25: warp "alberta", 30,63; break; case 4046: warp "payon", 158, 140; break; case 4047: warp "payon", 215, 102; break; case 4049: warp "morocc", 55,259; break; //==============3rd============================================ case 4054: case 4060: warp "prt_in", 164, 23; break; case 4055: case 4061: warp "morroc", 102, 143; break; case 4056: case 4062: warp "tur_dun01", 157, 54; break; case 4057: case 4063: warp "prt_church", 103, 88; break; case 4058: case 4064: warp "yuno", 129, 156; break; case 4059: case 4065: warp "morroc", 45, 107; break; case 4066: case 4073: warp "prt_castle", 48, 161; break; case 4067: case 4074: warp "gef_tower", 102, 34; break; case 4068: case 4075: warp "alberta", 196, 133; break; case 4069: case 4076: warp "xmas", 161, 209; break; case 4070: case 4077: warp "ve_in", 241, 128; break; case 4071: case 4078: warp "alde_alche", 35, 185; break; case 4072: case 4079: warp "morroc", 156, 70; break; case 4211: case 4212: warp "amatsu", 21, 76; break; case 4215: warp "Hugel", 70,137; break; } } end; 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 set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } Quote Link to comment Share on other sites More sharing options...
greyman15 Posted August 16, 2014 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 26 Reputation: 2 Joined: 06/28/14 Last Seen: December 9, 2021 Share Posted August 16, 2014 (edited) i made the script because he wants it in the first place a classic type of server i' didn't noticed that he want's a renewal class though.. Edited August 16, 2014 by greyman15 1 Quote Link to comment Share on other sites More sharing options...
joelolopez Posted August 16, 2014 Group: Members Topic Count: 154 Topics Per Day: 0.03 Content Count: 493 Reputation: 46 Joined: 01/24/12 Last Seen: August 25, 2022 Author Share Posted August 16, 2014 if you said classic style RO then you'll have to stick to the classic quest the way it is.. //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Super Novice",snov; next; snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_hunter" ,99,104; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; } //Duplicates Here-----------------------------------------// prontera,162,98,3 duplicate(Job Quester) Job Quester#1-1 733 alberta,24,241,3 duplicate(Job Quester) Job Quester#2-1 733 geffen,115,65,3 duplicate(Job Quester) Job Quester#3-1 733 izlude,132,116,3 duplicate(Job Quester) Job Quester#4-1 733 morocc,156,83,3 duplicate(Job Quester) Job Quester#5-1 733 payon,144,231,3 duplicate(Job Quester) Job Quester#6-1 733 morocc,169,257,3 duplicate(Job Quester) Job Quester#7-1 733 here I tried my best to do it hope it works.... if something gone wrong in the script text file in the attached file just use this code.. this is what im looking for but its not complete //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon does kagero quest warp included in this script? ok here it is: included the alternate 2nd jobs //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1.0 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov; next; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "hu_in01" ,382,373; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; //Alternate Job Quest-------------------------------------------- ajob: mes "[Job Quester]"; mes "Please select what class"; mes "will I warp you."; menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag; next; alche: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alde_alche" ,27,180; close; bard: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,226,120; close; crus: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_castle" ,45,164; close; dance: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,180,150; close; mon: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_monk" ,59,244; close; rog: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_ruins" ,89,103; close; sag: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "yuno_in02" ,41,61; close; //Super Novice-------------------------------------------- snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; } does it have a rebirth warper and 3rd job quests warps? kagerou too? Orginal by Euhpy, edit by Normynator, ever class is included. //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A functional job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000 && .@i < 4030 && !4046 && !4047 && !4049){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; case 23: warp "aldebaran", 116, 63; break; case 24: warp "Einbroch Tower", 134,199; break; case 25: warp "alberta", 30,63; break; case 4046: warp "payon", 158, 140; break; case 4047: warp "payon", 215, 102; break; case 4049: warp "morocc", 55,259; break; //==============3rd============================================ case 4054: case 4060: warp "prt_in", 164, 23; break; case 4055: case 4061: warp "morroc", 102, 143; break; case 4056: case 4062: warp "tur_dun01", 157, 54; break; case 4057: case 4063: warp "prt_church", 103, 88; break; case 4058: case 4064: warp "yuno", 129, 156; break; case 4059: case 4065: warp "morroc", 45, 107; break; case 4066: case 4073: warp "prt_castle", 48, 161; break; case 4067: case 4074: warp "gef_tower", 102, 34; break; case 4068: case 4075: warp "alberta", 196, 133; break; case 4069: case 4076: warp "xmas", 161, 209; break; case 4070: case 4077: warp "ve_in", 241, 128; break; case 4071: case 4078: warp "alde_alche", 35, 185; break; case 4072: case 4079: warp "morroc", 156, 70; break; case 4211: case 4212: warp "amatsu", 21, 76; break; case 4215: warp "Hugel", 70,137; break; } } end; 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 set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } im going to try this , Quote Link to comment Share on other sites More sharing options...
Question
joelolopez
i would like to request a script that will warp you to the guild that you desire to take a job change quest, instead of instant job change npc
(all job change quest warp locations)
for low rate or classic style server purpose
job change quest warp
will warp you from
ex:
-swordsman guild
-and etc
-kagero quest included
-rebellion quest if we already have rebellion quest
Edited by joelolopezLink to comment
Share on other sites
10 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.