prontera,153,182,6 script Job Warper 2_F_MAGICMASTER,{
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,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;
}
Hi all....can someone share to me npc like a warper but it for send player to making job quest...
i got some npc from rathena but not work on my server...
Share this post
Link to post
Share on other sites