//------------------------------------------------------------------------------- // 転職管理官(GMカスタマイズ可能) //------------------------------------------------------------------------------- alberta.gat,110,228,4 script 転生管理官 811,{ if (UPPER_cnt == 0) set UPPER_cnt,1; if ($using ==0){ set $using,1; //▼---------------設定ここから---------------▼ //ゲーム内で変更可能にするかどうか(するなら1しないなら0) set $option, 0 ; //GMメニューを利用できるGMレベル(0にすると一般PCも利用可) set $GMLv, 1 ; //最大転生可能回数 set $kaisuu, 1 ; //初回転生で必要なBaseLevel set $f_needB, 99 ; //初回転生で必要なJobLevel set $f_needJ, 50 ; //2回目以降で必要なBaseLevel set $needB, 99 ; //2回目以降で必要なJobLevel set $needJ, 70 ; //転生に必要なzeny set $zeny, 100 ; //獲得できるボーナスステータスポイント量 set $point, 100 ; //転生した時にアナウンスするかどうか(0でしない/1で全マップに/2で同じマップに/3で同画面内にアナウンス) set $anou, 1 ; //転生後にクエストスキルを覚えさせるかどうか(0で覚えさせない/1で転生ノビのみ2で転職の時のみ3で両方) set $qsk, 1 ; //会話終了後にセーブポイントに送るかどうか(0でしない/1で転生後のみ/2で転職後も/3でNPCをクリックした者全員) set $tsv, 0 ; }//このカッコは削除しないで下さい。 //転生2回目以降、必要なzenyを増やしたいならコメントアウトを解除 //*こちらを解除したからといって上のをコメントアウトしないで下さい* //(デフォルトの計算式 : 必要zeny量×転生回数) // set @u_zeny, $zeny * UPPER_cnt; //転生2回目以降、ボーナス量を増やしたいならコメントアウトを解除 //*こちらを解除したからといって上のをコメントアウトしないで下さい* //(デフォルトの計算式 : ボーナスステP量×転生回数) set @u_point, $point * UPPER_cnt; //▲---------------設定ここまで---------------▲ if($GMLv==0)goto L_GM; if(getgmlevel(0) < $GMLv) goto L_start; L_GM: menu "ゲームマスターモード",L_GMS,"通常利用",L_start; L_GMS: mes "ゲームマスターモード起動中"; addtimer 2000,"転生管理官::Onstart"; end; L_GME: mes "ゲームマスターモード終了中"; addtimer 1000,"転生管理官::Onend"; end; Onstart: next; mes "ゲームマスターモード"; mes "設定できる内容は順次増やす予定です"; next; switch( select("変数一覧","GMモード終了") ) { case 1: mes "変数の内容はスクリプトで確認して下さい。"; switch( select("設定の変更と確認","GMモード終了") ) { case 1: mes "変えたい設定の最初の数字を選ぶと変更画面に移ります。"; mes "基本は0でOFF、1でON"; next; L_menu: mes "[変更可能設定リスト]"; mes "@:GMメニューを利用できるGMのLv 現在→" + $GMLv + "←"; mes "A:最大転生可能回数 現在→" + $kaisuu + "←"; mes "B:初回転生で必要なBaseLv 現在→" + $f_needB + "←"; mes "C:初回転生で必要なJobLv 現在→" + $f_needJ + "←"; next; menu "入力画面",L_input,"次へ",L_menu2,"GMモード終了",L_GME; L_menu2: mes "[変更可能設定リスト]"; mes "D:2回目以降の転生で必要なBaseLv 現在→" + $needB + "←"; mes "E:2回目以降の転生で必要なJobLv 現在→" + $needJ + "←"; mes "F:転生に必要なzeny 現在→" + $zeny + "←"; mes "G:獲得できるステポイント 現在→" + $point + "←"; next; menu "入力画面",L_input,"前へ",L_menu,"次へ",L_menu3,"GMモード終了",L_GME; L_menu3: mes "[変更可能設定リスト]"; mes "H:転生後アナウンス 現在→" + $anou + "←"; mes "I:クエストスキルを覚えさせるか 現在→" + $qsk + "←"; mes "J:会話終了後のワープ 現在→" + $tsv + "←"; next; menu "入力画面",L_input,"トップへ",L_menu,"前へ",L_menu2,"GMモード終了",L_GME; case 2: goto L_GME; } case 2: goto L_GME; } Onend: next; mes "ゲームマスターモードを終了しました。"; next; goto L_GM; L_input: if ($option == 0){ mes "ゲーム内での設定の変更は現在できません。"; goto L_GM; } mes "0を入力すると終了します。"; input @m_number; if (@m_number == 0) close; if (@m_number > 11) { mes "実行範囲エラー"; goto L_input; } next; switch(@m_number) { case 1: mes "GMメニューを利用できるGMのLv"; input @GMLv; set $GMLv,@GMLv; next; goto L_menu; case 2: mes "最大転生可能回数"; input @kaisuu; set $kaisuu,@kaisuu; next; goto L_menu; case 3: mes "初回転生で必要なBaseLv"; input @f_needB; set $f_needB,@f_needB; next; goto L_menu; case 4: mes "初回転生で必要なJobLv"; input @f_needJ; set $f_needJ,@f_needJ; next; goto L_menu; case 5: mes "2回目以降の転生で必要なBaseLv"; input @needB; set $needB,@needB; next; goto L_menu; case 6: mes "2回目以降の転生で必要なJobLv"; input @needJ; set $needJ,@needJ; next; goto L_menu; case 7: mes "転生に必要なzeny"; input @zeny; set $zeny,@zeny; next; goto L_menu; case 8: mes "獲得できるステポイント"; input @point; set $point,@point; next; goto L_menu; case 9: mes "転生後アナウンス"; mes "1…全マップ"; mes "2…同マップ"; mes "3…画面内"; input @anou; if(@anou > 3) { mes "実行可能範囲は0〜3です"; next; goto L_menu; } set $anou,@anou; next; goto L_menu; case 10: mes "クエストスキルを覚えさせるか"; mes "1…転生後ノビのみ"; mes "2…転職後1次職のみ"; mes "3…両方"; input @qsk; if(@qsk > 3) { mes "実行可能範囲は0〜3です"; goto L_menu; } set $qsk,@qsk; next; goto L_menu; case 11: mes "会話終了後にワープするか"; mes "1…転生後のみ"; mes "2…転生後+転職後"; mes "3…全員会話終了後に転送"; input @tsv; if(@tsv > 3) { mes "実行可能範囲は0〜3です"; next; goto L_menu; } set $tsv,@tsv; next; goto L_menu; } L_start: emotion 0; mes "[転生管理官]"; mes "転生と転生後の転職ができます。"; if (Upper == 2)goto L_cant; next; menu "転生したいです",-,"転職したいです",L_Jch,"今はいいです",L_CANCEL; emotion 21; if( UPPER_cnt > $kaisuu) { emotion 25; mes "[転生管理官]"; mes strcharinfo(0) + "さんは転生可能最大数を超えています"; mes "転生可能最大数は ^3355FF" + $kaisuu + "^000000 回です。"; goto L_EXIT; } mes "[転生管理官]"; if(UPPER_cnt == 1){ mes strcharinfo(0) + "さんは初めて転生する方ですね。"; } if(UPPER_cnt >= 2){ mes strcharinfo(0) + "さんは" + UPPER_cnt + "回目の転生ですね。"; } next; mes "^0099FF転生条件^000000"; if( Class >= 24)goto L_tkjouken; if(UPPER_cnt == 1)mes "ベースレベル ^3355FF" + $f_needB + "^000000以上"; if(UPPER_cnt == 1)mes "ジョブレベル ^3355FF" + $f_needJ + "^000000以上"; if(UPPER_cnt >= 2)mes "ベースレベル ^3355FF" + $needB + "^000000以上"; if(UPPER_cnt >= 2)mes "ジョブレベル ^3355FF" + $needJ + "^000000以上"; if ((@u_zeny == 0) && ($zeny > 0))mes "転生手数料 ^3355FF" + $zeny + "^000000zeny"; if (@u_zeny != 0)mes "転生手数料 ^3355FF" + @u_zeny + "^000000zeny"; goto L_kakunin; L_tkjouken: //テコン・ガンス・忍者の判定 mes "ベースレベル ^3355FF" + $needB + "^000000以上"; mes "ジョブレベル ^3355FF" + $needJ + "^000000以上"; if ((@u_zeny == 0) && ($zeny > 0))mes "転生手数料 ^3355FF" + $zeny + "^000000zeny"; if (@u_zeny != 0)mes "転生手数料 ^3355FF" + @u_zeny + "^000000zeny"; L_kakunin: mes "^3355FFスパノビ・忍者・ガンスリンガー以外は2次職であること^000000"; mes "^3355FFアイテムや装備等を所持していない^000000"; next; mes "[転生管理官]"; mes "以上の条件をクリアしていないと転生できません"; mes "カート/鷹/ペコペコは自動で外れます"; next; mes "[転生管理官]"; mes "――本当に転生しますか?"; next; menu "やっぱりやめておきます",L_CANCEL,"転生します",-; //2次職であるか判別 if (Class <= 6) { emotion 25; mes "[転生管理官]"; mes "転生は2次職でなければできません"; goto L_EXIT; } //2次職であるか判別テコン if (Class == 24) { emotion 25; mes "[転生管理官]"; mes "転生は2次職でなければできません"; goto L_EXIT; } //ベースレベルとジョブレベルが条件を満たしているか。見やすいので3つに分けておきます。 if ( (Class>=25) && (BaseLevel >= $needB) && (JobLevel >= $needJ) ) goto L_LVOK; if ( (UPPER_cnt == 1) && (BaseLevel >= $f_needB) && (JobLevel >= $f_needJ) ) goto L_LVOK; if ( (BaseLevel >= $needB) && (JobLevel >= $needJ) ) goto L_LVOK; emotion 25; mes "[転生管理官]"; mes "レベルが足りていませんよ?"; next; mes "^0099FF" + strcharinfo(0) + "さんの現在のステータス^000000"; if (UPPER_cnt == 1){ mes "ベースレベル ^3355FF" + BaseLevel + "^000000   あと^3355FF" + ($f_needB - BaseLevel) + "^000000必要です"; }else if (UPPER_cnt >= 2){ mes "ベースレベル ^3355FF" + BaseLevel + "^000000   あと^3355FF" + ($needB - BaseLevel) + "^000000必要です"; } if (class >= 25){ mes "ジョブレベル ^3355FF" + JobLevel + "^000000   あと^3355FF" + ($needJ - JOBLevel) + "^000000必要です"; }else if (UPPER_cnt == 1){ mes "ジョブレベル ^3355FF" + JobLevel + "^000000   あと^3355FF" + ($f_needJ - JobLevel) + "^000000必要です"; }else if (UPPER_cnt >= 2){ mes "ジョブレベル ^3355FF" + JobLevel + "^000000   あと^3355FF" + ($needJ - JobLevel) + "^000000必要です"; } goto L_cant; L_LVOK: //所持金が条件を満たしているか if ((@u_zeny == 0) && (Zeny < $zeny)) goto L_zERROR; if ((@u_zeny != 0) && (Zeny < @u_zeny)) goto L_zERROR; emotion 24; mes "[転生管理官]"; mes "全ての条件を満たしているので転生を行います"; goto L_jobset; L_jobset: setoption 0x0000; unequip; if (@u_zeny == 0) set Zeny,Zeny-$zeny; if (@u_zeny != 0) set Zeny,Zeny-@u_zeny; next; set upper_job,Class; goto L_set; //初回かそれ以外かの判定 L_set: set UPPER_cnt,UPPER_cnt + 1; //転生回数カウンタ+1 resetskill; //スキルリセット jobchange 0,1; //ノビに変更 set BaseLevel,1; //ベースレベルリセット set SkillPoint,UPPER_cnt; //スキルポイントリセット setlook 7,0; //服の色をリセット resetstatus; //ステータスリセット if (@u_point == 0) set StatusPoint,$point; //ボーナスポイント追加(回数ボーナスなし) if (@u_point > 0) set StatusPoint,@u_point; //ボーナスポイント追加(回数ボーナスあり) if( ($qsk == 1) || ($qsk == 3) ){ skill 142,1,0; //応急手当追加 skill 143,1,0; //死んだふり追加 } goto L_FIN; L_Jch: if (Upper == 0) { emotion 25; mes "[転生管理官]"; mes "私は転生後の転職のみを扱っております"; goto L_EXIT; } if (Class >= 7) && (Class <=23) { //既に2次職かどうかの判断 mes "[転生管理官]"; mes "もうあなたは2次職です"; goto L_EXIT; } if (Class >= 28) && (Class <=29) { //忍者・ガンスリンガー判断 mes "[転生管理官]"; mes "忍者・ガンスリンガーは2次職がありません。"; goto L_EXIT; } if (upper_job == 23) goto L_spn; //ノビかどうかの判別+転生前スパノビ if (upper_job >= 7) && (upper_job <=20) goto L_Jch1; //ノビかどうかの判別+転生前のジョブ判別 if (upper_job >= 25) && (upper_job <=29) goto L_Jch1; //テコン系・忍者・ガンスリンガー用 if (upper_job >= 71) && (upper_job <=201) goto L_Jch2; //1次職かどうかの判別+転生前のジョブ判別 if (upper_job >= 251) && (upper_job <=271)goto L_Jch2; //テコン系用 L_Jch1: mes "[転生管理官]"; mes "1次転職ですね?"; next; mes "^0099FF転職条件^000000"; mes "基本スキル ^3355FF9^000000 習得"; next; mes "[転生管理官]"; mes "以上の条件をクリアしていれば転生できます。"; next; if ( select("転職する","やっぱりやめます") == 2 ) goto L_CANCEL; if(getskilllv(1) < 9) goto L_cant; //基本スキルが9あるか判別 mes "[転生管理官]"; mes "全ての条件を満たしているので転職を行います"; set @job,upper_job; switch(@job) { case 7: setlook 7,0; jobchange 1,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 144,1,0; skill 145,1,0; skill 146,1,0; } set upper_job,71; break; case 8: setlook 7,0; jobchange 4,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 156,1,0; } set upper_job,81; break; case 9: setlook 7,0; jobchange 2,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 157,1,0; } set upper_job,91; break; case 10: setlook 7,0; jobchange 5,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 153,1,0; skill 154,1,0; skill 155,1,0; } set upper_job,101; break; case 11: setlook 7,0; jobchange 3,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 147,1,0; skill 148,1,0; } set upper_job,111; break; case 12: setlook 7,0; jobchange 6,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; } set upper_job,121; break; case 14: setlook 7,0; jobchange 1,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 144,1,0; skill 145,1,0; skill 146,1,0; } set upper_job,141; emotion 46; break; case 15: setlook 7,0; jobchange 4,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 156,1,0; } set upper_job,151; break; case 16: setlook 7,0; jobchange 2,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 157,1,0; } set upper_job,161; break; case 17: setlook 7,0; jobchange 6,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; } set upper_job,171; break; case 18: setlook 7,0; jobchange 5,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 153,1,0; skill 154,1,0; skill 155,1,0; } set upper_job,181; break; case 19: setlook 7,0; jobchange 3,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 147,1,0; skill 148,1,0; } set upper_job,191; break; case 20: setlook 7,0; jobchange 3,1; if( ($qsk >= 2) && ($qsk <= 3) ){ skill 147,1,0; skill 148,1,0; } set upper_job,201; break; case 25: setlook 7,0; jobchange 24,1; set upper_job,251; break; case 27: setlook 7,0; jobchange 24,1; set upper_job,271; break; case 28: setlook 7,0; jobchange 28,1; set upper_job,0; break; case 29: setlook 7,0; jobchange 29,1; set upper_job,0; break; } emotion 46; set @tsv,2; goto L_EXIT; L_spn: mes "[転生管理官]"; mes "スーパーノービスですね?"; next; mes "^0099FF転職条件^000000"; mes "ベースレベル ^3355FF45^000000 以上"; next; mes "[転生管理官]"; mes "以上の条件をクリアしていれば転生できます。"; next; menu "転職する",-,"やっぱりやめます",L_CANCEL; if(BaseLevel < 45) goto L_cant; //ベースレベルが45以上が判別 mes "[転生管理官]"; mes "全ての条件を満たしているので転職を行います"; setlook 7,0; jobchange 23,0; set upper_job,0; goto L_EXIT; L_Jch2: mes "[転生管理官]"; mes "2次転職ですね?"; next; mes "^0099FF転職条件^000000"; mes "ジョブレベル ^3355FF40^000000 以上"; next; mes "[転生管理官]"; mes "以上の条件をクリアしていれば転生できます。"; next; menu "転職する",-,"やっぱりやめます",L_CANCEL; if(JobLevel < 40) goto L_cant; //ジョブレベルが40以上か判別 mes "[転生管理官]"; mes "全ての条件を満たしているので転職を行います"; set @job,upper_job; switch(@job) { case 71: setlook 7,0; jobchange 7,1; set upper_job,0; break; case 81: setlook 7,0; jobchange 8,1; set upper_job,0; break; case 91: setlook 7,0; jobchange 9,1; set upper_job,0; break; case 101: setlook 7,0; jobchange 10,1; set upper_job,0; break; case 111: setlook 7,0; jobchange 11,1; set upper_job,0; break; case 121: setlook 7,0; jobchange 12,1; set upper_job,0; break; case 141: setlook 7,0; jobchange 14,1; set upper_job,0; break; case 151: setlook 7,0; jobchange 15,1; set upper_job,0; break; case 161: setlook 7,0; jobchange 16,1; set upper_job,0; break; case 171: setlook 7,0; jobchange 17,1; set upper_job,0; break; case 181: setlook 7,0; jobchange 18,1; set upper_job,0; break; case 191: setlook 7,0; jobchange 19,1; set upper_job,0; break; case 201: setlook 7,0; jobchange 20,1; set upper_job,0; break; case 251: setlook 7,0; jobchange 25,1; set upper_job,0; break; case 271: setlook 7,0; jobchange 27,1; set upper_job,0; break; } emotion 46; set @tsv,2; goto L_EXIT; L_CANCEL: emotion 25; mes "[転生管理官]"; mes "また来て下さいね。"; goto L_EXIT; L_cant: emotion 25; next; mes "[転生管理官]"; mes "条件を満たしたらまた来て下さいね"; goto L_EXIT; L_zERROR: emotion 25; mes "[転生管理官]"; mes "手数料が足りませんよ"; goto L_EXIT; L_FIN: emotion 46; set @tsv,1; switch($anou) { default: break; case 0: break; case 1: announce strcharinfo(0) + "さんが" + (UPPER_cnt-1) + "回目の転生をしました。",0x10; break; case 2: announce strcharinfo(0) + "さんが" + (UPPER_cnt-1) + "回目の転生をしました。",0x11; break; case 3: announce strcharinfo(0) + "さんが" + (UPPER_cnt-1) + "回目の転生をしました。",0x12; break; } goto L_EXIT; L_EXIT: switch($tsv) { default: break; case 0: break; case 1: if(@tsv == 1) { warp "SavePoint",0,0; end; } break; case 2: if((@tsv == 1) || (@tsv == 2)) { warp "SavePoint",0,0; end; } break; case 3: next; warp "SavePoint",0,0; end; } emotion 12; close2; goto L_END; L_END: end; }