//============================================================================== // RagnarokOnline Original AttackEvent Script VerX.X by Pneuma // (Original ver by Blaze) // 変更点: // 日付指定、曜日指定、時間指定、繰り返し指定、MOBの種類指定などに対応。 //============================================================================== - script 世界の支配者 -1,{ function config { // **********↓ 初期設定 ↓********** // 襲撃先のマップ('conf_gat$と'conf_mapname$で合わせる) setarray 'conf_gat$,"prt_fild08.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_mapname$,"プロンテラ南フィールド","モロク","ゲフェン","フェイヨン","アルベルタ","イズルード","アルデバラン","ルティエ","コモド","ジュノー", "アマツ","コンロン","ウンバラ","ニブルヘイム","龍之城","ジャワイ","アユタヤ","アインブロック","アインベフ","リヒタルゼン", "フィゲル","ラヘル","ベインス"; //---------- サンプル設定 ----------- // イベントの数 set 'event_count,1; // モンスターの団体名 set 'eventname$[0],"ポリン団"; // イベントのON/OFF 0:OFF 1:ON set 'event_switch[0],0; // イベントの種類(0:日時 1:曜日 2:時刻) set 'event_type[0],0; // 繰り返し ON/OFF set 'event_repeat[0],0; // イベント開始日付 set 'conf_date$[0],"1225"; // イベント開始時間 set 'conf_time$[0],"2200"; // イベント開始曜日 (-1:OFF 0:日曜〜6:土曜) set 'conf_week[0],-1; // イベントのランダム開始確率(Max100%) set 'conf_random[0],100; // 襲撃マップ set 'conf_map[0],0; // ボスモンスターの表示名 set 'conf_bossname$[0],"ポポリン軍曹"; // ボスモンスターのID set 'conf_bossid[0],1031; // 召喚するモンスターの表示名 set 'mobname$[0], "ポリン兵"; // 召喚するモンスターID set 'mobid[0], 1003; // 召喚するモンスターの数 set 'mobcount[0], 50; // **********↑ ここまで ↑********** // ※ゲーム中でも設定を変更できます(要:毎回設定) return; } function chkmapname; function supp; function nosup; function inputmap; function inputtype; function inputdate; function inputweek; function inputtime; function inputrepeat; function inputrandom; function inputboss; function inputmob; function inputeventname; function inputonoff; function showplan; function delevent; if(getgmlevel() < 1) { //GMじゃなかったら mes "[お姉さん]"; mes "あらこんにちは冒険者さん。"; mes "ごきげんはいかがかしら。"; close; } setarray 'type$,"日時指定","曜日指定","時刻指定"; setarray 'week$,"なし","日","月","火","水","木","金","土"; mes "[世界の支配者]"; mes "ようこそ。"; mes "私は世界を操る力を持つ者。"; mes "街をモンスターの集団に"; mes "襲わせることだってできる。"; if('conf_interval) mes "次に力を解放するのは^FF0000" +'time+ "分後^000000だな。"; mes "少しだけ力を見せてやろうか?"; next; switch(select("今すぐ襲撃","襲撃プランを見る","襲撃プランを練る","やめる")) { case 1: if('flag) { //イベント発動中 mes "[世界の支配者]"; mes "今、モンスターが街を襲撃中だ。"; mes "この力は同時に使える程、"; mes "簡単なものじゃないんだ。"; mes "もう少し待ってくれ。"; close; } mes "[世界の支配者]"; mes "そんなに私の力が見たいか?!"; mes "いいだろう。"; mes "お前の望むように"; mes "私の業を振るおう!"; next; set '@map,inputmap(); set '@type,2; set '@date,""; set '@week,-1; set '@repeat,0; set '@random,100; inputboss '@bossname$, '@bossid; inputmob '@mobname$,'@mobid,'@mobcount; set '@eventname$,inputeventname(); set '@onnoff,1; set '@time$,supp(gettime(3))+supp(gettime(2)); //////確定///// set 'eventname$['event_count],'@eventname$; set 'event_switch['event_count],'@onnoff; set 'event_type['event_count],'@type; set 'event_repeat['event_count],'@repeat; set 'conf_date$['event_count],'@date$; set 'conf_week['event_count],'@week; set 'conf_time$['event_count],'@time$; set 'conf_random['event_count],'@random; set 'conf_map['event_count],'@map; set 'conf_bossname$['event_count],'@bossname$; set 'conf_bossid['event_count],'@bossid; copyarray 'mobname$['event_count*8], '@mobname$, 8; copyarray 'mobid['event_count*8], '@mobid, 8; copyarray 'mobcount['event_count*8], '@mobcount, 8; set '@i,'event_count; set 'event_count,'event_count+1; if('flag) { mes "[世界の支配者]"; mes "……ん?"; mes "うまく力が使えなかったみたいだ。"; mes "すまないな。"; close; } set 'eventidx,'@i; set 'flag,1; donpcevent strnpcinfo(0)+"::OnStart"; mes "[世界の支配者]"; mes 'conf_mapname$['@map]+ "に"; mes "モンスターの集団を向かわせたぞ。"; mes "ククク……"; close; case 2: L_VIEW: mes "[世界の支配者]"; mes "どの襲撃プランを知りたいんだ?"; next; for(set '@i,0; '@i < 'event_count; set '@i,'@i+1) { set '@select$,'@select$ + ('@i>0 ? ":" : "") + ('event_type['@i]==0 ? substr('conf_date$['@i],0,2) + "月" + substr('conf_date$['@i],2,2) + "日 " : "") + ('event_type['@i]==1 ? 'week$['conf_week['@i]+1] + "曜日 " : "") + substr('conf_time$['@i],0,2) + "時" + substr('conf_time$['@i],2,2) + "分 " + 'eventname$['@i]; } set '@sel,select('@select$)-1; showplan '@sel; menu "他の計画を見る",L_VIEW,"計画を変更",L_EDIT_NUM,"計画を破棄",L_DELETE,"終了",-; break; L_DELETE: mes "[世界の支配者]"; mes "このすばらしい計画を"; mes "破棄するだと?"; mes "なんとわがままな奴だ。"; mes "本当に破棄したいのか?"; next; if(select("はい:いいえ")==2){ mes "[世界の支配者]"; mes "私に対して冗談を言うとは"; mes "君は早死にしたいのかね?"; mes "ククク……"; close; } delevent '@sel; mes "[世界の支配者]"; mes "ふむ……"; mes "少々つめが甘かった計画"; mes "だったからな……。"; close; case 3: mes "[世界の支配者]"; mes "私の力を試したいのかね?"; mes "フフフ……いいだろう。"; mes "お前の考えたとおりの計画で"; mes "世界を恐怖の渦に陥れてやろう。"; next; menu "新しい計画",L_NEW,"計画を変更",L_EDIT,"やめる",L_CANCEL; L_NEW: set '@map,inputmap(); set '@type,inputtype(); set '@week,-1; set '@date$,""; switch('@type){ case 0: set '@date$,inputdate(); goto L_TIME; case 1: set '@week,inputweek(); case 2: L_TIME: set '@time$,inputtime(); } if('@type!=0) set '@repeat,inputrepeat(); else set '@repeat,0; if('@repeat) set '@random,inputrandom(); else set '@random,100; inputboss '@bossname$, '@bossid; inputmob '@mobname$,'@mobid,'@mobcount; set '@eventname$,inputeventname(); set '@onnoff,inputonoff(); //////確定///// set 'eventname$['event_count],'@eventname$; set 'event_switch['event_count],'@onnoff; set 'event_type['event_count],'@type; set 'event_repeat['event_count],'@repeat; set 'conf_date$['event_count],'@date$; set 'conf_week['event_count],'@week; set 'conf_time$['event_count],'@time$; set 'conf_random['event_count],'@random; set 'conf_map['event_count],'@map; set 'conf_bossname$['event_count],'@bossname$; set 'conf_bossid['event_count],'@bossid; copyarray 'mobname$['event_count*8], '@mobname$, 8; copyarray 'mobid['event_count*8], '@mobid, 8; copyarray 'mobcount['event_count*8], '@mobcount, 8; set 'event_count,'event_count+1; donpcevent strnpcinfo(0)+"::OnClock2300"; showplan 'event_count-1; mes "[世界の支配者]"; mes "すばらしい……"; mes "なんとも恐ろしい計画だな。"; mes "ククク……"; next; break; L_EDIT: mes "[世界の支配者]"; mes "力の加減を変えてやろう。"; mes "どの計画を変えるんだ?"; next; for(set '@i,0; '@i < 'event_count; set '@i,'@i+1) { set '@select$,'@select$ + ('@i>0 ? ":" : "") + ('event_type['@i]==0 ? substr('conf_date$['@i],0,2) + "月" + substr('conf_date$['@i],2,2) + "日 " : "") + ('event_type['@i]==1 ? 'week$['conf_week['@i]+1] + "曜日 " : "") + substr('conf_time$['@i],0,2) + "時" + substr('conf_time$['@i],2,2) + "分 " + 'eventname$['@i]; } set '@sel,select('@select$)-1; showplan '@sel; mes "[世界の支配者]"; mes "この計画でいいんだな?"; next; menu "他の計画",L_EDIT,"これでいい",-,"やめる",L_CANCEL; L_EDIT_NUM: if('flag && 'eventidx=='@sel && 'timercnt==0) { mes "[世界の支配者]"; mes "この計画は現在実行中だ。"; mes "既に変更できる段階ではない。"; close; } mes "[世界の支配者]"; mes "いいだろう。"; mes "この計画の何を変更するんだ?"; next; switch(select("軍団名:実行/保留:タイプ:日付:曜日:時間:繰り返し:襲撃先の街:発生確率:ボスモンスター:配下モンスター")){ case 1: set 'eventname$['@sel],inputeventname(); break; case 2: set 'event_switch['@sel],inputonoff(); break; case 3: set '@type,inputtype(); switch('@type){ case 0: set '@date$,inputdate(); set '@random,100; set '@week,-1; goto L_TIME_ED; case 1: set '@date$,""; set '@week,inputweek(); case 2: L_TIME_ED: set '@time$,inputtime(); } set 'event_type['@sel],'@type; set 'conf_date$['@sel],'@date$; set 'conf_week['@sel],'@week; set 'conf_time$['@sel],'@time$; set 'conf_random['@sel],'@random; break; case 4: if('event_type['@sel]!=0){ mes "[世界の支配者]"; mes "この計画のタイプは" + 'type$['event_type['@sel]] + "だ。"; mes "まずはタイプを変更することだ。"; next; goto L_EDIT_NUM; } set 'conf_date$['@sel],inputdate(); break; case 5: if('event_type['@sel]!=1){ mes "[世界の支配者]"; mes "この計画のタイプは" + 'type$['event_type['@sel]] + "だ。"; mes "まずはタイプを変更することだ。"; next; goto L_EDIT_NUM; } set 'conf_week['@sel],inputweek(); break; case 6: set 'conf_time$['@sel],inputtime(); break; case 7: if('event_type['@sel]==0){ mes "[世界の支配者]"; mes "この計画のタイプは日付指定だ。"; mes "繰り返すことは出来ない。"; next; goto L_EDIT_NUM; } set 'event_repeat['@sel],inputrepeat(); break; case 8: set 'conf_map['@sel],inputmap(); break; case 9: if('event_type['@sel]==0){ mes "[世界の支配者]"; mes "日付を指定しているのに襲撃しない"; mes "場合があるのはおかしいだろう?"; next; goto L_EDIT_NUM; } set 'conf_random['@sel],inputrandom(); break; case 10: inputboss 'conf_bossname$['@sel], 'conf_bossid['@sel]; break; case 11: inputmob 'mobname$['@sel*8],'mobid['@sel*8],'mobcount['@sel*8]; } if('flag && 'eventidx=='@sel && 'timercnt>=0) { set 'flag,0; stopnpctimer; } donpcevent strnpcinfo(0)+"::OnClock2300"; L_CANCEL: break; } mes "[世界の支配者]"; mes "私の力を見たかったら"; mes "また来るがいい。"; close; OnInit: set '@dummy,getmapxy('@map$,'@dummy,'@dummy,1); if('@map$=="-") end; config; end; OnStart: //セリフは本鯖のログからコピー announce "こちらは、ミッドガルド放送局です!",8; sleep 3000; announce "緊急のニュースをお伝えいたします!!",8; sleep 3000; announce "ただいま入りました情報によりますと、",8; sleep 3000; announce "各地でモンスター達が不穏な動きを見せているとのことです!",8; sleep 3000; announce "各街の冒険者の皆さん、何があっても良いように、",8; sleep 3000; announce "戦闘の準備をお願いいたします!!",8; sleep 10000; announce "こちらは、ミッドガルド放送局です!",8; sleep 3000; announce "緊急のニュースをお伝えいたします!!",8; sleep 3000; announce "たった今、モンスター達が" + 'conf_mapname$['conf_map['eventidx]] + "に集結しているとの情報が入って来ました!!",8; sleep 3000; announce "住民の皆様は至急、避難されるようお願いします!!",8; sleep 3000; announce "放送局 : た、大変です!!", 0x8, 0xFFFF00, FW_EXTRABOLD, 20; sleep 3000; announce "放送局 : ああっ、モンスター達が……!!", 0x8, 0xFFFF00, FW_EXTRABOLD, 20; sleep 3000; announce "放送局 : ガガー……ガガー……", 0x8, 0xFFFF00, FW_EXTRABOLD, 20; sleep 3000; mapannounce 'conf_gat$['conf_map['eventidx]], 'eventname$['eventidx] + " : フハハハハハハハ!! 愚かな人間どもよ、我らの力を思い知るがいい!!",0x9,0xFF0000; set 'mob,0; for(set '@i,0;'@i<8 && 'mobname$['eventidx*8+'@i]!="";set '@i,'@i+1){ set 'mob,'mob+'mobcount['eventidx*8+'@i]; areamonster 'conf_gat$['conf_map['eventidx]],0,0,500,500,'mobname$['eventidx*8+'@i],'mobid['eventidx*8+'@i],'mobcount['eventidx*8+'@i],strnpcinfo(0)+"::OnKilled"; } end; OnKilled: set 'mob,'mob-1; if('mob == 0 && 'conf_bossid['eventidx]!=0 != 0) { mapannounce 'conf_gat$['conf_map['eventidx]],'conf_bossname$['eventidx] + " : ギイギイーッ……!! 私のかわいい配下達が……人間どもめ!許さん!!",0,0xFF0000; areamonster 'conf_gat$['conf_map['eventidx]],0,0,500,500,'conf_bossname$['eventidx],'conf_bossid['eventidx],1,strnpcinfo(0)+"::OnKilled"; set 'mob,1; set 'boss,0; } else if('mob == 0) donpcevent strnpcinfo(0)+"::OnEnd"; end; OnEnd: announce "こちらは、ミッドガルド放送局です!",8; sleep 3000; announce "緊急のニュースをお伝えいたします!!",8; sleep 3000; announce "先ほど" + 'conf_mapname$['conf_map['eventidx]] + "に現れたモンスター達は、無事討伐されたようです!!",8; sleep 3000; announce "討伐に参加された皆さん、ありがとうございました!",8; set 'mob,0; set 'boss,0; delevent 'eventidx; set 'flag,0; end; OnClock0000: OnClock0100: OnClock0200: OnClock0300: OnClock0400: OnClock0500: OnClock0600: OnClock0700: OnClock0800: OnClock0900: OnClock1000: OnClock1100: OnClock1200: OnClock1300: OnClock1400: OnClock1500: OnClock1600: OnClock1700: OnClock1800: OnClock1900: OnClock2000: OnClock2100: OnClock2200: OnClock2300: if('flag) end; set '@Month,gettime(6); set '@MonthDay,gettime(5); set '@WeekDay,gettime(4); set '@Hour,gettime(3); for(set '@i,0; '@i < 'event_count; set '@i,'@i+1) { if( 'event_switch['@i] == 0) continue; if( 'conf_random['@i] < rand(100) ) continue; if( 'event_type['@i] == 0 && (nosup(substr('conf_date$['@i],0,2)) != '@Month || nosup(substr('conf_date$['@i],2,2)) != '@MonthDay )) continue; if( 'event_type['@i] == 1 && 'conf_week['@i] != '@WeekDay ) continue; if( nosup(substr('conf_time$['@i],0,2)) != '@Hour ) continue; if( nosup(substr('conf_time$['@i],2,2)) < gettime(2) ) continue; set 'flag,1; set 'timercnt, nosup(substr('conf_time$['@i],2,2))-gettime(2)+1; set 'eventidx,'@i; donpcevent strnpcinfo(0)+"::OnTimer60000"; end; } end; OnTimer60000: set 'timercnt,'timercnt-1; if('timercnt == 0){ stopnpctimer; donpcevent strnpcinfo(0)+"::OnStart"; debugmes "襲撃開始!!"; end; } initnpctimer; end; //----------------------------------------------------------------------------------------------- function chkmapname { if(getmapusers('conf_gat$[getarg(0)])==-1){ return "^AAAAAA" + 'conf_mapname$[getarg(0)] + "^000000"; } else { return 'conf_mapname$[getarg(0)]; } } function supp { set '@tmp$,"0000"+getarg(0); return substr('@tmp$,getstrlen('@tmp$)-4,4); } function nosup { set '@src$,getarg(0); if('@src$=="") return 0; set '@len,getstrlen('@src$); for(set '@i,0;'@i<'@len;set '@i,'@i+1){ if(substr('@src$,'@i,1)!="0"){ set '@ret$,substr('@src$,'@i,getstrlen('@src$)-'@i); break; } } set '@len,getstrlen('@ret$); if('@len){ setarray '@rui,0,1,10,100,1000,10000,100000; set '@val,0; for(set '@i,'@len-1;'@i>=0;set '@i,'@i-1){ if(substr('@ret$,'@i,1)=="1") set '@val,'@val+'@rui['@len-'@i]; if(substr('@ret$,'@i,1)=="2") set '@val,'@val+'@rui['@len-'@i]*2; if(substr('@ret$,'@i,1)=="3") set '@val,'@val+'@rui['@len-'@i]*3; if(substr('@ret$,'@i,1)=="4") set '@val,'@val+'@rui['@len-'@i]*4; if(substr('@ret$,'@i,1)=="5") set '@val,'@val+'@rui['@len-'@i]*5; if(substr('@ret$,'@i,1)=="6") set '@val,'@val+'@rui['@len-'@i]*6; if(substr('@ret$,'@i,1)=="7") set '@val,'@val+'@rui['@len-'@i]*7; if(substr('@ret$,'@i,1)=="8") set '@val,'@val+'@rui['@len-'@i]*8; if(substr('@ret$,'@i,1)=="9") set '@val,'@val+'@rui['@len-'@i]*9; } return '@val; } return 0; } function inputmap { L_REP_IMAP: mes "[世界の支配者]"; mes "襲撃する街を選んでくれ。"; mes "グレーで表示されているマップは"; mes "私の管轄外だ。"; next; set '@len,getarraysize('conf_gat$); for(set '@i,0;'@i<'@len;set '@i,'@i+1) set '@select$,'@select$ + ('@i>0 ? ":" : "" ) + chkmapname('@i); set '@num,select('@select$)-1; mes "[世界の支配者]"; mes "襲撃する街は" +'conf_mapname$['@num]; mes "だな?"; next; if(select("はい:いいえ")==2){ mes "[世界の支配者]"; mes "なんだ?はっきりしない奴だな"; mes "ではもう一度聞こう。"; goto L_REP_IMAP; } return '@num; } function inputtype { L_REP_ITYPE: mes "[世界の支配者]"; mes "では襲撃のタイプを選んでくれ。"; next; set '@num,select("日時指定:曜日指定:時刻指定")-1; mes "[世界の支配者]"; mes "襲撃タイプは " + 'type$['@num]; mes "だな?"; next; if(select("はい:いいえ")==2){ mes "[世界の支配者]"; mes "なんだ?はっきりしない奴だな"; mes "ではもう一度聞こう。"; goto L_REP_ITYPE; } return '@num; } function inputdate { mes "[世界の支配者]"; mes "襲撃する日付を書いてくれ。"; mes "12月25日ならば 1225"; mes "と言う風に書いてくれ。"; next; input '@inp; if('@inp<0 || '@inp>1231){ mes "[世界の支配者]"; mes "なんだ?!やめるのか?"; mes "意気地無しめ!"; close; } return supp('@inp); } function inputweek { mes "[世界の支配者]"; mes "襲撃する曜日を選んでくれ。"; next; return select("日曜:月曜:火曜:水曜:木曜:金曜:土曜")-1; } function inputtime { mes "[世界の支配者]"; mes "襲撃する時間を書いてくれ。"; mes "23時30分ならば 2330"; mes "と言う風に書いてくれ。"; next; input '@inp; if('@inp<0 || '@inp>2359){ mes "[世界の支配者]"; mes "なんだ?!やめるのか?"; mes "意気地無しめ!"; close; } return supp('@inp); } function inputrepeat { mes "[世界の支配者]"; mes "繰り返し襲撃するか?"; next; return select("はい:いいえ")-1; } function inputrandom { mes "[世界の支配者]"; mes "襲撃の発生確率を決めてくれ。"; mes "1-100 で%指定だ。"; next; input '@inp; if('@inp<0 || '@inp>100){ mes "[世界の支配者]"; mes "なんだ?!やめるのか?"; mes "意気地無しめ!"; close; } return '@inp; } function inputboss { mes "[世界の支配者]"; mes "ボスモンスターを出陣させるか?"; next; if(select("いいえ:はい")==1) { set getarg(0),""; set getarg(1),0; return; } mes "[世界の支配者]"; mes "ボスモンスターの名前を"; mes "決めてくれ。"; mes "そのままでいいなら半角空白を"; mes "書いてくれ。"; next; input '@mobname$; if('@mobname$==" ") { set '@mobname$,"--ja--"; } mes "[世界の支配者]"; mes "ボスモンスターのMobIDを"; mes "決めてくれ。"; next; input '@mobid; if('@mobid<1002) goto L_END_IBOSS; if('@mobname$ == "--ja--") set '@mobname$,getmobname('@mobid); set getarg(0),'@mobname$; set getarg(1),'@mobid; return; L_END_IBOSS: mes "[世界の支配者]"; mes "なんだ?!やめるのか?"; next; set getarg(0),""; set getarg(1),0; return; } function inputmob { mes "[世界の支配者]"; mes "配下モンスターどもの"; mes "種類と数を決めようか。"; mes "出撃できる部隊は全部で"; mes "8部隊だ。"; next; L_NEXT_IMOB: mes "[世界の支配者]"; mes "モンスターの名前を決めてくれ。"; mes "そのままでいいなら半角空白を"; mes "書いてくれ。"; next; input '@mobname$; if('@mobname$==" ") { set '@mobname$,"--ja--"; } mes "[世界の支配者]"; mes "モンスターの種類を"; mes "MobIDで入力してくれ。"; next; input '@mobid; if('@mobid<1002) goto L_END_IMOB; mes "[世界の支配者]"; mes "出現数を決めてくれ。"; mes "そうだな、せいぜい100体"; mes "までならいいだろう。"; next; input '@mobcount; if('@mobcount<1 || '@mobcount>100) goto L_END_IMOB; if('@mobname$ == "--ja--") set '@mobname$,getmobname('@mobid); mes "[世界の支配者]"; mes "表示名: " + '@mobname$; mes "MobID: " + '@mobid; mes "出現数: " + '@mobcount; mes " "; mes "これでいいな?"; next; if(select("はい:いいえ")==2) goto L_END_IMOB; set '@num,getarraysize('@name$); set '@name$['@num],'@mobname$; set '@id['@num],'@mobid; set '@count['@num],'@mobcount; if('@num == 8){ mes "[世界の支配者]"; mes "このくらいでいいだろう。"; next; } else { mes "[世界の支配者]"; mes "他にも出陣させるか?"; next; if(select("いいえ:はい")==2) goto L_NEXT_IMOB; } copyarray getarg(0),'@name$,8; copyarray getarg(1),'@id,8; copyarray getarg(2),'@count,8; return; L_END_IMOB: mes "[世界の支配者]"; mes "なんだ?!やめるのか?"; if(getarraysize('@name$)>0){ copyarray getarg(0),'@name$,8; copyarray getarg(1),'@id,8; copyarray getarg(2),'@count,8; next; return; } mes "意気地無しめ!"; close; } function inputonoff { mes "[世界の支配者]"; mes "このプランを実行するかどうかを"; mes "決定しようか。"; next; set '@onoff,select("実行する:実行しない"); mes "[世界の支配者]"; mes "わかった。"; if('@onoff){ mes "では実行の準備に取り掛かる"; mes "よう取り伝えよう。"; } else { mes "では計画案として保留しよう。"; } next; return '@onoff; } function inputeventname { L_INPNAME: mes "[世界の支配者]"; mes "このすばらしき軍の名前を"; mes "決めてやろう。"; mes "もし決めることが出来ないなら"; mes "半角空白を1文字書くといい。"; next; input '@eventname$; if('@eventname$==" ") { mes "[世界の支配者]"; mes "名前を決めることができないのか?"; mes "では私が勝手に決めてやろう。"; next; L_REPRNDNAME: mes "[世界の支配者]"; mes "ククク……"; mes " "; setarray '@rndname$,"真","危険な","恐怖の","過激な","残忍な","怪しげな","凶悪な","荒れ狂う","凶暴な","怒号の","狂気の","超","必殺","やばい","劣悪な","未曾有の"; set '@eventname$,'@rndname$[rand(16)] + "世界征服軍"; mes "「" + '@eventname$ + "」"; mes " "; mes "でどうだ?"; next; menu "はい",-,"いいえ",L_REPRNDNAME,"もう一度自分で決める",L_INPNAME; } return '@eventname$; } function showplan { set '@sel,getarg(0); mes "軍団名 : " + 'eventname$['@sel]; mes "実行/保留: " + ('event_switch['@sel] ? "実行" : "保留"); mes "タイプ: " + 'type$['event_type['@sel]]; mes "繰り返し: " + ('event_repeat['@sel] ? "はい" : "いいえ"); mes "日付: " + ('event_type['@sel]==0 ? substr('conf_date$['@sel],0,2) + "月" + substr('conf_date$['@sel],2,2) + "日" : "なし"); mes "曜日: " + ('event_type['@sel]==1 ? 'week$['conf_week['@sel]+1]+"曜日" : "なし"); mes "時間: " + substr('conf_time$['@sel],0,2) + "時" + substr('conf_time$['@sel],2,2) + "分"; mes "襲撃先の街: " + 'conf_mapname$['conf_map['@sel]]; mes "発生確率: " + 'conf_random['@sel] + "\%"; mes " "; mes "ボス名: " + ('conf_bossname$['@sel]!="" ? 'conf_bossname$['@sel] : "なし"); mes "ボスID: " + ('conf_bossid['@sel]!=0 ? 'conf_bossid['@sel] : "なし"); for(set '@i,0;'@i<'@<8 && 'mobid['@sel*8+'@i]>0;set '@i,'@i+1){ mes " "; mes "表示名: " + 'mobname$['@sel*8+'@i]; mes "MobID: " + 'mobid['@sel*8+'@i]; mes "出現数: " + 'mobcount['@sel*8+'@i]; } next; return; } function delevent { set '@sel,getarg(0); deletearray 'eventname$['@sel],1; deletearray 'event_switch['@sel],1; deletearray 'event_type['@sel],1; deletearray 'event_repeat['@sel],1; deletearray 'conf_date$['@sel],1; deletearray 'conf_week['@sel],1; deletearray 'conf_time$['@sel],1; deletearray 'conf_random['@sel],1; deletearray 'conf_map['@sel],1; deletearray 'conf_bossname$['@sel],1; deletearray 'conf_bossid['@sel],1; deletearray 'mobname$['@sel*8],8; deletearray 'mobid['@sel*8],8; deletearray 'mobcount['@sel*8],8; set 'event_count,'event_count-1; return; } } prontera.gat,93,62,3 duplicate(世界の支配者) お姉さん#0 53,-1,-1 //evt_coke.gat,36,31,3 duplicate(世界の支配者) お姉さん#1 80,-1,-1 //alberta.gat,104,50,3 duplicate(世界の支配者) お姉さん#2 803,-1,-1