- script ジョブチェンジャー -1,{ //getbaseclass( ,[]); //入力値 : 職業値(Class)を入力 //入力値 : 取得する前職業の種別を指定(省略可) //出力値 : 前職業のClass値 //関数定義 //function GetJobName; if(28 < job) { mes "あなたは3次職ですので"; mes "これ以上の転職はできません。"; close; } if(Job < 7 || Job==21) { switch(upper){ case 0://未転成 switch(job) { //一次職への転職 case Job_Novice: if(JobLevel < 10) { //転職不可能、終了 mes "[ジョブチェンジャー]"; mes "転職条件に達していません。"; mes "^0000FF「JobLv 10以上」"; mes "一次職に転職するためには"; mes "以上の条件を満たす必要があります。"; close; } set upper_cnt,0;//転生回数初期 mes "[ジョブチェンジャー]"; mes "一次職への転職ですね。"; mes "どの職業に転職しますか?"; next; if(upper == 1) { setarray '@jobname$,"^0000FF(剣)^000000ハイソードマン", "^0000FF(魔)^000000ハイマジシャン","^0000FF(弓)^000000ハイアーチャー", "^0000FF(聖)^000000ハイアコライト","^0000FF(商)^000000ハイマーチャント", "^0000FF(盗)^000000ハイシーフ","^AA0000(初)^000000スーパーノービス", "^AA0000(闘)^000000テコンキッド","^AA0000(銃)^000000ガンスリンガー", "^AA0000(忍)^000000忍者","やめる"; } else if(upper == 0) { setarray '@jobname$,"^0000FF(剣)^000000ソードマン", "^0000FF(魔)^000000マジシャン","^0000FF(弓)^000000アーチャー", "^0000FF(聖)^000000アコライト","^0000FF(商)^000000マーチャント", "^0000FF(盗)^000000シーフ","^AA0000(初)^000000スーパーノービス", "^AA0000(闘)^000000テコンキッド","^AA0000(銃)^000000ガンスリンガー", "^AA0000(忍)^000000忍者","やめる"; } if(Upper == 2) //養子 cleararray '@jobname$[7],"",3; //スパノビ以降は転職不可能 set @menu,select(printarray('@jobname$)); switch(@menu) { case 1: //剣士 set '@changejob,Job_Swordman; break; case 2: //マジシャン set '@changejob,Job_Magician; break; case 3: //アーチャー set '@changejob,Job_Archer; break; case 4: //アコライト set '@changejob,Job_Acolyte; break; case 5: //商人 set '@changejob,Job_Merchant; break; case 6: //シーフ set '@changejob,Job_Thief; break; case 7: //スーパーノービス if(BaseLevel < 45) { mes "[ジョブチェンジャー]"; mes "スーパーノービスに転職するには"; mes "ベースレベル45以上が必要です。"; mes "またのご利用を、お待ちしております。"; close; } set '@changejob,Job_SuperNovice; break; case 8: //テコンキッド set '@changejob,Job_TaeKwon; break; case 9: //ガンスリンガー set '@changejob,Job_Gunslinger; break; case 10://忍者 set '@changejob,Job_Ninja; break; } callfunc "GetJobName",'@jobname$,'@changejob,0; mes "[ジョブチェンジャー]"; mes "^0000FF" +'@jobname$+ "^000000に転職しますか?"; next; if(select("転職する","やめる")==2) close; unequip; jobchange '@changejob,0; emotion 21; close; case Job_Swordman: setarray '@jobid,Job_Knight,Job_Crusader; break; case Job_Acolyte: setarray '@jobid,Job_Priest,Job_Monk; break; case Job_Magician: setarray '@jobid,Job_Wizard,Job_Sage; break; case Job_Merchant: setarray '@jobid,Job_Blacksmith,Job_Alchemist; break; case Job_Archer: if(Sex) setarray '@jobid,Job_Hunter,Job_Bard; else setarray '@jobid,Job_Hunter,Job_Dancer; break; case Job_Thief: setarray '@jobid,Job_Assassin,Job_Rogue; break; case 21://テコン setarray '@jobid,Job_StarGladiator,Job_SoulLinker; break; } if(JobLevel < 40) { //転職不可能、終了 mes "[ジョブチェンジャー]"; mes "転職条件に達していません。"; mes "^0000FF「JobLv 40以上」"; mes "二次職に転職するためには"; mes "以上の条件を満たす必要があります。"; close; } mes "[ジョブチェンジャー]"; mes "二次職への転職ですね。"; mes "どの職業に転職しますか?"; next; //転職可能な職業を選択肢にセット callfunc "GetJobName",'@jobname$[0],'@jobid[0],0; callfunc "GetJobName",'@jobname$[1],'@jobid[1],0; set '@menu,select('@jobname$[0],'@jobname$[1],"やめる"); if('@menu==3) return 2; //やめる mes "[ジョブチェンジャー]"; mes "^0000FF" +'@jobname$['@menu-1]+ "^000000に転職しますか?"; next; if(select("転職する","やめる")==2) return 3; unequip;//装備をはずす //キャラクターの転職 jobchange '@jobid[('@menu-1)],0; emotion 21; close; case 1: if(job == 0 && upper == 1){ mes "ハイノービスですね。"; mes "転職したい職業を選んでください。"; next; if(JobLevel < 10){ mes "あれ?JOBLvが足りないみたい。"; mes "JOBLv10まであげてきてね。"; close; } switch(OLD_CLASS){ case CLASS_SNV: //スーパーノービス if(BaseLevel < 45) { mes "[ジョブチェンジャー]"; mes "スーパーノービスに転職するには"; mes "ベースレベル45以上が必要です。"; mes "またのご利用を、お待ちしております。"; close; } set '@tensei1,Job_SuperNovice; break; case CLASS_NJ: set '@tensei1,Job_Ninja;break; case CLASS_SG2: case CLASS_SG: case CLASS_SL: set '@tensei1,Job_Taekwon;break; case CLASS_GS: set '@tensei1,Job_Gunslinger;break; case CLASS_CR: case CLASS_KN: set '@tensei1,Job_Swordman;break; case CLASS_WZ: case CLASS_SA: set '@tensei1,Job_Magician;break; case CLASS_DC: case CLASS_BA: case CLASS_HT: set '@tensei1,Job_Archer;break; case CLASS_MO: case CLASS_PR: set '@tensei1,Job_Acolyte;break; case CLASS_AM: case CLASS_BS: set '@tensei1,Job_Merchant;break; case CLASS_RG: case CLASS_AS: set '@tensei1,Job_Thief;break; } callfunc "GetJobName",'@jobname1$,'@tensei1,1; mes "[ジョブチェンジャー]"; mes "^0000FF" +'@jobname1$+ "^000000に転職しますか?"; next; if(select("転職する","やめる")==2) close; jobchange '@tensei1,1; emotion 21; close; } if((job < 7 || job == 21) && upper == 1){ mes "転生2次職へ転職ですね。"; next; if(JobLevel < 40){ mes "あれ?JOBLvが足りないみたい。"; mes "最低でも40は必要よ。"; close; } switch(OLD_CLASS){ case CLASS_SG2: case CLASS_SG: set '@tensei2,Job_StarGladiator;break; case CLASS_SL: set '@tensei2,Job_SoulLinker;break; case CLASS_KN2: case CLASS_KN: set '@tensei2,Job_Knight;break; case CLASS_PR: set '@tensei2,Job_Priest;break; case CLASS_WZ: set '@tensei2,Job_Wizard;break; case CLASS_BS: set '@tensei2,Job_Blacksmith;break; case CLASS_HT: set '@tensei2,Job_Hunter;break; case CLASS_AS: set '@tensei2,Job_Assassin;break; case CLASS_CR2: case CLASS_CR: set '@tensei2,Job_Crusader;break; case CLASS_MO: set '@tensei2,Job_Monk;break; case CLASS_SA: set '@tensei2,Job_Sage;break; case CLASS_RG: set '@tensei2,Job_Rogue;break; case CLASS_AM: set '@tensei2,Job_Alchemist;break; case CLASS_BA: set '@tensei2,Job_Bard;break; case CLASS_DC: set '@tensei2,Job_Dancer;break; } callfunc "GetJobName",'@jobname2$,'@tensei2,1; mes "[ジョブチェンジャー]"; mes "^0000FF" +'@jobname2$+ "^000000に転職しますか?"; next; if(select("転職する","やめる")==2) close; jobchange '@tensei2,1; emotion 21; close; } break; } }else{ switch(upper){ case 0: if(upper == 2) { mes "[ジョブチェンジャー]"; mes "養子からの転生はできません。"; close; }else if(upper == 1) { mes "[ジョブチェンジャー]"; mes "あなたは限界まで転生を"; mes "行いましたので、"; mes "これ以上転生することはできません。"; mes "何事も限度というものがありますよね…"; close; } mes "[ジョブチェンジャー]"; mes "あなたが転生を行うためには"; mes "次の条件を満たす必要があります。"; next; mes "[ジョブチェンジャー]"; mes "BaseLv ^0000FF99^000000 以上"; mes "JobLv ^0000FF50^000000 以上"; mes "^0000FF120000^000000 Zeny以上所持"; mes " カート・ペコペコ・ファルコン"; mes " を利用していない"; next; mes "[ジョブチェンジャー]"; mes "^0000FF必要Zenyは転生費用となり、"; mes "消費されますので注意してください。^000000"; mes "転生を行いますか?"; next; if(select("転生する","やめる")==2) { close; //転生条件のチェック } else if(BaseLevel < 99 || JobLevel < 50) { mes "[ジョブチェンジャー]"; mes "転生条件に達していません。"; close; } else if(checkcart() || checkfalcon() || checkriding()) { mes "[ジョブチェンジャー]"; mes "カート、ファルコン、ペコペコを"; mes "外してから"; mes "いらしてください。"; close; } else if(gethomuninfo(5)) { //ホムンクルスを連れている mes "[ジョブチェンジャー]"; mes "ホムンクルスと別れてから"; mes "いらしてください。"; close; } else if(Zeny < 120000) { mes "転生費用が足りませんよ"; mes "120000z必要です。"; close; } set upper_cnt,upper_cnt+1; set OLD_CLASS,Class; set Zeny,Zeny-120000; jobchange 0,1; //ステータス・スキル・Lvのリセット set BaseLevel,1; resetstatus; resetskill; //ボーナスポイントを獲得 set StatusPoint,130*upper_cnt; set SkillPoint,upper_cnt; emotion 46; mes "[ジョブチェンジャー]"; mes "転生完了しました。"; mes "またのご利用を、お待ちしております。"; close; case 1: if((BaseLevel > 98) && JobLevel > 69 && upper == 1 && job >6 && job < 20){ mes "3次職へ転職ですね。"; next; if(JobLevel < 70){ mes "あれ?JOBLvが足りないみたい。"; mes "最低でも70は必要よ。"; close; } switch(Class){ case CLASS_KN: case CLASS_KN2: case CLASS_KN_H: case CLASS_KN2_H: set '@tensei3,Job_RuneKnight;break; case CLASS_PR: case CLASS_PR_H: set '@tensei3,Job_ArchBishop;break; case CLASS_WZ: case CLASS_WZ_H: set '@tensei3,Job_Warlock;break; case CLASS_BS: case CLASS_BS_H: set '@tensei3,Job_Mechanic;break; case CLASS_HT: case CLASS_HT_H: set '@tensei3,Job_Ranger;break; case CLASS_AS: case CLASS_AS_H: set '@tensei3,Job_Guillotine;break; case CLASS_CR: case CLASS_CR2: case CLASS_CR_H: case CLASS_CR2_H: set '@tensei3,Job_RoyalGuard;break; case CLASS_MO: case CLASS_MO_H: set '@tensei3,Job_Shura;break; case CLASS_SA: case CLASS_SA_H: set '@tensei3,Job_Sorcerer;break; case CLASS_RG: case CLASS_RG_H: set '@tensei3,Job_ShadowChaser;break; case CLASS_AM: case CLASS_AM_H: set '@tensei3,Job_Genetic;break; case CLASS_BA: case CLASS_BA_H: set '@tensei3,Job_Minstrel;break; case CLASS_DC: case CLASS_DC_H: set '@tensei3,Job_Wanderer;break; } callfunc "GetJobName",'@jobname3$,'@tensei3,0; mes "[ジョブチェンジャー]"; mes "^0000FF" +'@jobname3$+ "^000000に転職しますか?"; next; mes "[ジョブチェンジャー]"; mes "なお、^0000FF" + '@jobname3$ + "へ転職すると"; mes "ステータスとスキルが全て"; mes "リセットされます。"; if(select("転職する","やめる")==2) close; resetstatus; resetskill; setoption 0x0000; jobchange '@tensei3,1; //未熟なリンゴ配布 getitem 2795,1; //専用アイテム配布 switch('@tensei3){ case Job_RuneKnight: set '@item,5746;break; //ルーンサークレット[1] case Job_Warlock: set '@item,5753;break; //魔力石の帽子[1] case Job_Ranger: {set '@item,5748; //スナイパーゴーグル[1] set '@item2,6124;break;} //狼の笛 case Job_ArchBishop: set '@item,5747;break; //ミトラ[1] case Job_Mechanic: set '@item,5749;break; //ドライバーバンド[1] case Job_Guillotine: set '@item,5755;break; //沈黙の執行者 case Job_RoyalGuard: set '@item,5757;break; //シュミッツのヘルム[1] case Job_Sorcerer: set '@item,5756;break; //風のささやき[1] case Job_Minstrel: set '@item,5751;break; //ミンストレルソングの帽子[1] case Job_Wanderer: set '@item,5758;break; //バレリーナの髪飾り[1] case Job_Shura: set '@item,5754;break; //ブレイジングソウル[1] case Job_Genetic: set '@item,5752;break; //ミダスのささやき[1] case Job_ShadowChaser: {set '@item,5750; //シャドウクラウン[1] set '@item2,6122;//ブラシ set '@item3,6121;break;} } getitem '@item,1; if('@tensei3 == Job_ShadowChaser || Job_Ranger)getitem '@item2,1; if('@tensei3 == Job_ShadowChaser)getitem '@item3,1; emotion 21; close; }else if(job > 19 && job < 26 && upper==1){ if(upper == 2) { mes "[ジョブチェンジャー]"; mes "養子からの転生はできません。"; close; } mes "[ジョブチェンジャー]"; mes "あなたが転生を行うためには"; mes "次の条件を満たす必要があります。"; next; mes "[ジョブチェンジャー]"; mes "BaseLv ^0000FF99^000000 以上"; mes "JobLv ^0000FF50^000000 以上"; mes "^0000FF120000^000000 Zeny以上所持"; mes " カート・ペコペコ・ファルコン"; mes " を利用していない"; next; mes "[ジョブチェンジャー]"; mes "^0000FF必要Zenyは転生費用となり、"; mes "消費されますので注意してください。^000000"; mes "転生を行いますか?"; next; if(select("転生する","やめる")==2) { close; //転生条件のチェック } else if(BaseLevel < 99 || JobLevel < 50) { mes "[ジョブチェンジャー]"; mes "転生条件に達していません。"; close; } else if(checkcart() || checkfalcon() || checkriding()) { mes "[ジョブチェンジャー]"; mes "カート、ファルコン、ペコペコを"; mes "外してから"; mes "いらしてください。"; close; } else if(gethomuninfo(5)) { //ホムンクルスを連れている mes "[ジョブチェンジャー]"; mes "ホムンクルスと別れてから"; mes "いらしてください。"; close; } else if(Zeny < 120000) { mes "転生費用が足りませんよ"; mes "120000z必要です。"; close; } set upper_cnt,upper_cnt+1; set OLD_CLASS,Class; set Zeny,Zeny-120000; jobchange 0,1; //ステータス・スキル・Lvのリセット set BaseLevel,1; resetstatus; resetskill; //ボーナスポイントを獲得 set StatusPoint,130*upper_cnt; set SkillPoint,1*upper_cnt; emotion 46; mes "[ジョブチェンジャー]"; mes "転生完了しました。"; mes "またのご利用を、お待ちしております。"; close; }else{ mes "[ジョブチェンジャー]"; mes "3次職の転職条件を"; mes "満たしていないみたいね。"; mes "Lv99以上 JobLv70必要よ。"; close; } return; } } } // GetJobName(,,) : CLASSに対応する職業名をVALにセット function script GetJobName { switch(getarg(1)) { case Job_Novice: if(getarg(2)==1) set getarg(0),"ハイノービス"; else set getarg(0),"ノービス"; break; case Job_Swordman: if(getarg(2)==1) set getarg(0),"ハイソードマン"; else set getarg(0),"ソードマン"; break; case Job_Magician: if(getarg(2)==1) set getarg(0),"ハイマジシャン"; else set getarg(0),"マジシャン"; break; case Job_Archer: if(getarg(2)==1) set getarg(0),"ハイアーチャー"; else set getarg(0),"アーチャー"; break; case Job_Acolyte: if(getarg(2)==1) set getarg(0),"ハイアコライト"; else set getarg(0),"アコライト"; break; case Job_Merchant: if(getarg(2)==1) set getarg(0),"ハイマーチャント"; else set getarg(0),"マーチャント"; break; case Job_Thief: if(getarg(2)==1) set getarg(0),"ハイシーフ"; else set getarg(0),"シーフ"; break; case Job_Knight: if(getarg(2)==1) set getarg(0),"ロードナイト"; else set getarg(0),"ナイト"; break; case Job_Priest: if(getarg(2)==1) set getarg(0),"ハイプリースト"; else set getarg(0),"プリースト"; break; case Job_Wizard: if(getarg(2)==1) set getarg(0),"ハイウィザード"; else set getarg(0),"ウィザード"; break; case Job_Blacksmith: if(getarg(2)==1) set getarg(0),"ホワイトスミス"; else set getarg(0),"ブラックスミス"; break; case Job_Hunter: if(getarg(2)==1) set getarg(0),"スナイパー"; else set getarg(0),"ハンター"; break; case Job_Assassin: if(getarg(2)==1) set getarg(0),"アサシンクロス"; else set getarg(0),"アサシン"; break; case Job_Crusader: if(getarg(2)==1) set getarg(0),"パラディン"; else set getarg(0),"クルセイダー"; break; case Job_Monk: if(getarg(2)==1) set getarg(0),"チャンピオン"; else set getarg(0),"モンク"; break; case Job_Sage: if(getarg(2)==1) set getarg(0),"プロフェッサー"; else set getarg(0),"セージ"; break; case Job_Rogue: if(getarg(2)==1) set getarg(0),"チェイサー"; else set getarg(0),"ローグ"; break; case Job_Alchemist: if(getarg(2)==1) set getarg(0),"クリエイター"; else set getarg(0),"アルケミスト"; break; case Job_Bard: if(getarg(2)==1) set getarg(0),"クラウン"; else set getarg(0),"バード"; break; case Job_Dancer: if(getarg(2)==1) set getarg(0),"ジプシー"; else set getarg(0),"ダンサー"; break; case Job_SuperNovice: set getarg(0),"スーパーノービス"; break; case Job_TaeKwon: set getarg(0),"テコンキッド"; break; case Job_StarGladiator: set getarg(0),"拳聖"; break; case Job_SoulLinker: set getarg(0),"ソウルリンカー"; break; case Job_Gunslinger: set getarg(0),"ガンスリンガー"; break; case Job_Ninja: set getarg(0),"忍者"; break; case Job_RuneKnight: set getarg(0),"ルーンナイト"; break; case Job_ArchBishop: set getarg(0),"アークビショップ"; break; case Job_Warlock: set getarg(0),"ウォーロック"; break; case Job_Mechanic: set getarg(0),"メカニック"; break; case Job_Ranger: set getarg(0),"レンジャー"; break; case Job_Guillotine: set getarg(0),"ギロチンクロス"; break; case Job_RoyalGuard: set getarg(0),"ロイヤルガード"; break; case Job_Shura: set getarg(0),"修羅"; break; case Job_Sorcerer: set getarg(0),"ソーサラー"; break; case Job_ShadowChaser: set getarg(0),"シャドウチェイサー"; break; case Job_Genetic: set getarg(0),"ジェネティック"; break; case Job_Minstrel: set getarg(0),"ミンストレル"; break; case Job_Wanderer: set getarg(0),"ワンダラー"; break; } return; } prontera.gat,154,193,5 duplicate(ジョブチェンジャー) ジョブチェンジャー 811 b_payon.gat,96,137,4 duplicate(ジョブチェンジャー) ジョブチェンジャー 811