//============================================================================== // RagnarokOnline Original AttackEvent Script Ver2.1 by Blaze //============================================================================== sec_pri.gat,43,46,4 script 世界の支配者 735,-1,-1,{ if(getgmlevel() < 1) { //GMじゃなかったら mes "[世界の支配者]"; mes "…………"; mes "何だ、君は?"; mes "君のような力のない者に"; mes "興味はない……"; close; } if('flag) { //イベント発動中 mes "[世界の支配者]"; mes "今、モンスターが街を襲撃中だ。"; mes "この力は同時に使える程、"; mes "簡単なものじゃないんだ。"; mes "もう少し待ってくれ。"; close; } mes "[世界の支配者]"; mes "ようこそ。"; mes "私は世界を操る力を持つ者。"; mes "街をモンスターの集団に"; mes "襲わせることだってできる。"; if('conf_interval) mes "次に力を解放するのは^FF0000" +'time+ "分後^000000だな。"; mes "少しだけ力を見せてやろうか?"; next; switch(select("襲撃イベント手動発動","設定を見る","設定を変える","やめる")) { case 1: mes "[世界の支配者]"; mes "まずは襲撃する街を選んでくれ。"; next; set '@num,select('conf_name$[0],'conf_name$[1],'conf_name$[2],'conf_name$[3],'conf_name$[4],'conf_name$[5],'conf_name$[6],'conf_name$[7],'conf_name$[8],'conf_name$[9], 'conf_name$[10],'conf_name$[11],'conf_name$[12],'conf_name$[13],'conf_name$[14],'conf_name$[15],'conf_name$[16],'conf_name$[17],'conf_name$[18],'conf_name$[19], 'conf_name$[20],'conf_name$[21],'conf_name$[22],'conf_name$[23],'conf_name$[24],'conf_name$[25],'conf_name$[26],'conf_name$[27],'conf_name$[28],'conf_name$[29])-1; mes "[世界の支配者]"; mes "襲撃する街:" +'conf_name$['@num]; mes "モンスター数:" +'conf_mob+ "匹"; mes "襲撃時間:" +'conf_time+ "分"; mes "ボスモンスター:" +('conf_boss? 'conf_boss+"匹": "なし"); mes " "; mes "この設定で襲撃するか?"; next; if(select("はい","いいえ")==2) break; if('flag) { mes "[世界の支配者]"; mes "……ん?"; mes "うまく力が使えなかったみたいだ。"; mes "すまないな。"; close; } set 'town,'@num; mes "[世界の支配者]"; mes 'conf_name$['town]+ "に"; mes "モンスターの集団を向かわせたぞ。"; mes "ククク……"; set 'flag,1; set 'mob,'conf_mob; set 'time,'conf_time; set 'boss,'conf_boss; donpcevent "世界の支配者::OnStart"; close; case 2: mes "<<現在の設定>>"; set '@max,getarraysize('conf_permit); for(set '@i,0; '@i < '@max; set '@i,'@i+1) { if('conf_permit['@i]) set '@count,'@count+1; } mes "襲撃先の街の合計数:" +'@count+ "箇所"; mes "モンスター数:" +'conf_mob+ "匹"; mes "襲撃時間:" +'conf_time+ "分"; mes "ボスモンスター:" +('conf_boss? 'conf_boss+"匹": "なし"); mes "イベント間隔:" +('conf_interval? 'conf_interval+"分": "自動開始なし"); mes "発生確率:" +('conf_random > 1? "1 / "+'conf_random: "100%"); close; case 3: mes "[世界の支配者]"; mes "力の加減を変えてやろう。"; mes "どの設定を変えるんだ?"; next; switch(select("襲撃先の街","モンスターの数","襲撃中の時間","ボスモンスター","開始時間の間隔","ランダム設定","やめる")) { case 1: set '@max,getarraysize('conf_permit); for(set '@i,0; '@i < '@max; set '@i,'@i+1) { if('conf_permit['@i]) set '@count,'@count+1; } mes "<<現在の設定>>"; mes "襲撃先の街の合計数:" +'@count+ "箇所"; mes " "; mes "襲撃する街を指定します。"; mes "(複数指定でランダム決定)"; mes "各街の襲撃設定を変更しますか?"; next; if(select("変更する","やめる")==2) { mes "取り消しました。"; close; } while(1) { mes "^3333FF設定したい街の番号を入力"; mes "(0で設定終了)^000000"; for(set '@i,0; '@i < '@max; set '@i,'@i+1) mes ('@i+1)+ "." +'conf_name$['@i]+ " : "+ ('conf_permit['@i]? "^0000FF許可^000000": "^FF0000不許可^000000"); next; input '@num; if('@num <= 0) { mes "取り消しました。"; close; } set '@num,'@num-1; if('@num >= '@max) { mes "数値の入力エラーです。"; close; } mes "<<現在の設定>>"; mes ('@num+1)+ "." +'conf_name$['@num]+ " : "+ ('conf_permit['@num]? "^0000FF許可^000000": "^FF0000不許可^000000"); next; set 'conf_permit['@num],select("^FF0000不許可^000000にする","^0000FF許可^000000する")-1; } case 2: mes "<<現在の設定>>"; mes "モンスター数:" +'conf_mob+ "匹"; mes " "; mes "この数だけモンスターが出現します。"; mes "何匹に変更しますか?"; next; input '@num; if('@num <= 0) { mes "取り消しました。"; close; } set 'conf_mob,'@num; mes "[世界の支配者]"; mes "襲わせるモンスターの数を"; mes '@num+ "匹に変更したぞ。"; close; case 3: mes "<<現在の設定>>"; mes "襲撃時間:" +'conf_time+ "分"; mes " "; mes "この時間を超えるとイベント終了です。"; mes "何分に変更しますか?(分単位)"; next; input '@num; if('@num <= 0) { mes "取り消しました。"; close; } set 'conf_time,'@num; mes "[世界の支配者]"; mes "モンスターが襲撃する時間を"; mes '@num+ "分に変更したぞ。"; close; case 4: mes "<<現在の設定>>"; mes "ボスモンスター:" +('conf_boss? 'conf_boss+"匹": "なし"); mes " "; mes "モンスターを全て倒すと出現する"; mes "ボスモンスターの数です。"; mes "何匹に変更しますか?"; mes "(0にするとボスが出現しません)"; next; input '@num; if('@num < 0) { mes "取り消しました。"; close; } set 'conf_boss,'@num; mes "[世界の支配者]"; if('@num == 0) { mes "ボスモンスターを"; mes "出現しないようにしたぞ。"; close; } mes "ボスモンスターの数を"; mes '@num+ "匹に変更したぞ。"; close; case 5: mes "<<現在の設定>>"; mes "イベント間隔:" +('conf_interval? 'conf_interval+"分": "自動開始なし"); mes " "; mes "イベントを自動開始させる間隔です。"; mes "何分に変更しますか?(分単位)"; mes "(0にすると自動開始されません)"; next; input '@num; if('@num < 0) { mes "取り消しました。"; close; } set 'conf_interval,'@num; if('@num == 0 && 'flag == 0) stopnpctimer; if('@num && 'flag == 0 && getnpctimer(1) == 0) initnpctimer; if('time > 'conf_interval && 'flag == 0) set 'time,'conf_interval; mes "[世界の支配者]"; if('@num == 0) { mes "自動開始しないようにしたぞ。"; close; } mes "襲撃させる間隔を"; mes '@num+ "分に変更したぞ。"; close; case 6: mes "<<現在の設定>>"; mes "発生確率:" +('conf_random > 1? "1 / "+'conf_random: "100%"); mes " "; mes "イベントの自動開始時間の際に"; mes "襲撃を起こす確率です。"; mes "何分の一の確率にしますか?"; mes "(0や1にすると100%になります)"; next; input '@num; if('@num < 0) { mes "取り消しました。"; close; } set 'conf_random,'@num; mes "[世界の支配者]"; mes "襲撃させる確率を"; if('@num <= 1) { mes "100%にしたぞ。"; close; } mes "1 / " +'@num+ "の確率に変更したぞ。"; close; case 7: break; } break; case 4: break; } mes "[世界の支配者]"; mes "私の力を見たかったら"; mes "また来るがいい。"; close; OnInit: // **********↓ 初期設定 ↓********** // 襲撃先のマップ('conf_gat$と'conf_name$で合わせる) setarray 'conf_gat$,"prontera.gat","morocc.gat","geffen.gat","payon.gat","alberta.gat","izlude.gat","aldebaran.gat","xmas.gat","comodo.gat","yuno.gat", "amatsu.gat","gonryun.gat","umbala.gat","niflheim.gat","louyang.gat","jawaii.gat","ayothaya.gat","einbroch.gat","einbech.gat","lighthalzen.gat", "hugel.gat","rachel.gat","veins.gat"; setarray 'conf_name$,"プロンテラ","モロク","ゲフェン","フェイヨン","アルベルタ","イズルード","アルデバラン","ルティエ","コモド","ジュノー", "アマツ","コンロン","ウンバラ","ニブルヘイム","龍之城","ジャワイ","アユタヤ","アインブロック","アインベフ","リヒタルゼン", "フィゲル","ラヘル","ベインス"; // 襲撃先する街の許可・不許可(1で許可、0で不許可、↑のマップ順に合わせる) setarray 'conf_permit,1,1,1,1,1,1,1,1,1,1, 1,1,1,0,1,0,1,1,1,1, 1,1,1; // 召喚するモンスターの数(初期値: 50匹) set 'conf_mob,50; // イベントの時間(分単位、初期値: 10分) set 'conf_time,10; // ボスモンスターの数(0にするとボスイベントなし、初期値: 1) set 'conf_boss,1; // イベント開始の時間間隔(分単位、0にすると自動開始しない、初期値: 60分) set 'conf_interval,60; // イベントのランダム開始確率(0,1でランダム判定なし、2で1/2、3で1/3…、初期値: 10) set 'conf_random,10; // **********↑ ここまで ↑********** // ※ゲーム中でも設定を変更できます(要:毎回設定) if('conf_interval) { //自動開始設定 set 'time,'conf_interval; initnpctimer; } end; OnStart: announce "ミッドガルド放送局 : 大変です! 現在" +'conf_name$['town]+ "にモンスターの集団が向かっています!",8; sleep 5000; announce "ミッドガルド放送局 : " +'conf_name$['town]+ "にいる方は避難をしてください! 繰り返します、避難してください!",8; sleep 30000; mapannounce 'conf_gat$['town],"-ギイギイーッ……グルルゥーッ、ギイギイギィーッ、グアァーッ!!-",0,0xFF0000; areamonster 'conf_gat$['town],0,0,500,500,"--ja--",-1,'mob,"世界の支配者::OnKilled"; initnpctimer; sleep 5000; mapannounce 'conf_gat$['town],"ミッドガルド放送局 : モンスターが襲撃してきました! " +'conf_name$['town]+ "住民の皆さん気をつけてください!",0; end; OnKilled: set 'mob,'mob-1; if('mob == 0 && 'boss != 0) { mapannounce 'conf_gat$['town],"-ギイギイーッ……グルルゥーッ、ギイギイギィーッ、グアァーッ!!-",0,0xFF0000; areamonster 'conf_gat$['town],0,0,500,500,"--ja--",-3,'boss,"世界の支配者::OnKilled"; set 'mob,'boss; set 'boss,0; sleep 5000; mapannounce 'conf_gat$['town],"ミッドガルド放送局 : ボスモンスターが出現しました! 気をつけてください!",0; } else if('mob == 0) donpcevent "世界の支配者::OnEnd"; end; OnEnd: stopnpctimer; killmonster 'conf_gat$['town],"世界の支配者::OnKilled"; mapannounce 'conf_gat$['town],"ミッドガルド放送局 : モンスターは全滅したようです! " +'conf_name$['town]+ "住民の皆さんご安心ください。",0; set 'mob,0; set 'time,0; set 'boss,0; set 'town,0; set 'flag,0; if('conf_interval) { set 'time,'conf_interval; initnpctimer; } end; OnTimer60000: set 'time,'time-1; if('time == 0) { if('flag) { stopnpctimer; killmonster 'conf_gat$['town],"世界の支配者::OnKilled"; mapannounce 'conf_gat$['town],"ミッドガルド放送局 : モンスターは去っていきました。 " +'conf_name$['town]+ "住民の皆さんご安心ください。",0; set 'mob,0; set 'boss,0; set 'town,0; set 'flag,0; if('conf_interval) { set 'time,'conf_interval; initnpctimer; } end; } //自動開始 if('conf_random) { if(rand('conf_random)) { set 'time,'conf_interval; initnpctimer; end; } } set '@max,getarraysize('conf_permit); for(set '@i,0; '@i < '@max; set '@i,'@i+1) { if('conf_permit['@i]) { set '@temp['@j],'@i; set '@j,'@j+1; } } set 'town,'@temp[rand('@j)]; if('conf_gat$['town] == "" || 'conf_name$['town] == "" || 'conf_permit['town] == 0) { //エラー set 'town,0; set 'time,'conf_interval; initnpctimer; end; } set 'flag,1; set 'mob,'conf_mob; set 'time,'conf_time; set 'boss,'conf_boss; set '@max,getarraysize('conf_permit); donpcevent "世界の支配者::OnStart"; end; } initnpctimer; end; }