//名前入力型モンスター召喚NPC /*----- モンスター召喚NPC本体 -----*/ pvp_n_1-2.gat,97,130,4 script モンスター召喚屋#A 738,{ //モンスター照合のためにmob_db読み込み set @Mobs_file$, "db/mob_db.txt"; //出現可能モンスター照合用 //なお、これと33〜39行目を消すとMVPを含む全てのモンスター出現可能 set @TrueMob_file$, "db/truemob_db.txt"; //モンスターをすでに出していて、全部処理してない場合 if($@Mob_countA > 0) goto L_MobAlive; mes "[モンスター召喚屋]"; mes "ん?俺に何かようか?"; next; //"同じものを出してくれ"は前回"モンスターを召喚してくれ"で入力した値をそのまま反映 menu "モンスターを召喚してくれ",-,"同じものを出してくれ",L_Reload,"ようはない",L_Exit; //召喚するモンスターの名前を入力する部分 while(1) { mes "[モンスター召喚屋]"; mes "ふむ・・・。"; mes "何を召喚するか名前言ってくれ"; mes "やめるなら、^ff0000半角^000000スペースか"; mes "^ff0000スペース^000000を入力してくれ"; mes "あと、^ff0000フィールド^000000にいるのしか"; mes "出せないからな!!"; next; input 'sMob_name$; if('sMob_name$ == " " || 'sMob_name$ == " ") goto L_Exit; //mob_dbとプレイヤーが入力したモンスターの名前を照合 //プレイヤーが入力したモンスターがいない場合whileの頭に戻る if(csvfind(@Mobs_file$,2,'sMob_name$) == -1) { mes "[モンスター召喚屋]"; mes "そんなモンスターいねぇよ"; next; continue; } //truemob_dbとプレイヤーが入力したモンスターの名前を照合 //プレイヤーが入力したモンスターが出現可能な場合ループを抜ける //出現不可の場合は頭に戻る if(csvfind(@TrueMob_file$,0,'sMob_name$) != -1) break; mes "[モンスター召喚屋]"; mes "出せるのは、"; mes "^ff0000フィールド^000000のだけだと"; mes "言っただろ!!"; next; } //最初の選択肢"同じものを出してくれ"用の数値保存 set @Mob_name$,'sMob_name$; //プレイヤーが入力したモンスターの数を入力する部分 while(1) { mes "[モンスター召喚屋]"; mes "どのくらい出す?"; mes "出せるのは20体までだ"; mes "あと、やめるときは0を入力してくれ"; next; input $@Mob_countA; if($@Mob_countA == 0) goto L_Exit; //プレイヤーが入力した数値が−値または20体より多い場合ループの頭に戻る //1〜20体の場合ループを抜ける if($@Mob_countA > 0 && $@Mob_countA <= 20) break; mes "[モンスター召喚屋]"; mes "そんなに出せるわけないだろバカ野郎!"; next; } //最初の選択肢"同じものを出してくれ"用の数値保存 set @Mob_count,$@Mob_countA; //確認 mes "[モンスター召喚屋]"; mes @Mob_name$ + "を" + $@Mob_countA + "体出すが本当にいいか?"; next; menu "はい",-,"いいえ",Exit; areamonster "pvp_n_1-2.gat",90,90,110,110,"--ja--",@Mob_name$,$@Mob_countA,"SummonMob#A"; close; //最初の選択肢"同じものを出してくれ"を選んだ場合 L_Reload: //map鯖起動後一度もモンスターを召喚してない場合elseへ if(@Mob_count > 0) { //モンスター管理カウントに前回"モンスターを召喚してくれ"で入力した数値を代入 set $@Mob_countA,@Mob_count; areamonster "pvp_n_1-2.gat",90,90,110,110,"--ja--",@Mob_name$,@Mob_count,"SummonMob#A"; close; } else { mes "[モンスター召喚屋]"; mes "まだモンスター出してないだろうが!"; close; } //"ようはない"またはモンスター入力時に" "か" "を入力、モンスターの数入力時に0を入力した場合 L_Exit: set $@Mob_countA,0; mes "[モンスター召喚屋]"; mes "またようがあったら"; mes "ここにきな"; close; //モンスターが全部処理されていない場合 //モンスターリセット部分 L_MobAlive: mes "[モンスター召喚屋]"; mes "なんだ?もう降参するのか?"; next; menu "もう無理",-,"まだいける",L_Retry; mes "[モンスター召喚屋]"; mes "仕方がないなぁ・・・。"; killmonsterall "this"; //モンスター管理カウントを初期化 set $@Mob_countA,0; announce strcharinfo(0) + "によりモンスターがリセットされました。",0x04; next; mes "[モンスター召喚屋]"; mes "まったく・・・"; mes "倒せねぇなら最初から出すなよな"; mes "こちとら忙しいんだよ!"; close; //"まだいける"を入力した場合 L_Retry: mes "[モンスター召喚屋]"; mes "じゃぁ、死なない程度に"; mes "がんばれよ。"; close; } /*----- モンスター管理カウント -----*/ pvp_n_1-2.gat,1,1,4 script SummonMob#A -1,{ set $@Mob_countA,$@Mob_countA-1; end; }