// ---------------------------------------------------------------- // 変数一覧 // minigame -> minigame_entrance用のスイッチ // '@entryrand -> 登録準備用カウント // '@mobid[] -> ランダムで選出されたMOBIDの格納用変数 // 'accid -> アカウントID // 'charname$ -> キャラネーム // 'target_num -> 倒すターゲットの数 // #minigamepoint -> ミニゲームのポイント数 // ---------------------------------------------------------------- // ミニゲーム by 陽麗 // -------------------- mapflag ---------------------- quiz_00.gat mapflag nomemo dummy quiz_00.gat mapflag noteleport dummy quiz_00.gat mapflag nosave SavePoint quiz_00.gat mapflag noreturn SavePoint quiz_00.gat mapflag monster_noteleport dummy quiz_01.gat mapflag nomemo dummy quiz_01.gat mapflag noteleport dummy quiz_01.gat mapflag nosave SavePoint quiz_01.gat mapflag noreturn SavePoint quiz_01.gat mapflag monster_noteleport dummy // ---------------------------------------------------- ayothaya.gat,161,148,3 script ヘンリエッタ#minigame_entrance 68,{ if(0){//getgmlevel(0)== mes "[ヘンリエッタ]"; mes "こんにちは!"; mes "突然ですがこの度ミニゲームを"; mes "担当させて頂く"; mes "ヘンリエッタと申します。"; next; mes "[ヘンリエッタ]"; mes "ただいま、動作チェック中です。"; mes "もうちょっとお待ちくださいね☆"; close; } switch(minigame) { case 0: mes "[ヘンリエッタ]"; mes "こんにちは!"; mes "突然ですがこの度ミニゲームを"; mes "担当させて頂く"; mes "ヘンリエッタと申します。"; mes "お客様のお名前を教えて頂きたいのですが…?"; next; if(select("教える","教えない")==2) { mes "[ヘンリエッタ]"; mes "^777777まあ…"; mes "感じの悪いお客様ですね…"; mes "メモメモ…^000000"; close; } mes "[ヘンリエッタ]"; mes "なるほどなるほど!"; mes "^00FF00"+ strcharinfo(0) +"^000000様ですね。"; mes "少々お待ちを…"; next; mes "[ヘンリエッタ]"; mes "…"; next; mes "[ヘンリエッタ]"; mes "…"; next; mes "[ヘンリエッタ]"; mes "…"; next; mes "[ヘンリエッタ]"; mes "はい、お待たせ致しました!"; mes "こちら、お客様の会員証と成ります。"; mes "お失くしになられた場合…"; mes "再発行には300kZenyほど頂きますので"; mes "大切に保管してくださいね。"; getitem2 8051,1,1,0,0,254,0,getcharid(0),2; next; mes "[ヘンリエッタ]"; mes "それでは私は準備に取り掛かります。"; mes "しばらくしたらまた話かけて下さいね。"; set minigame,1; close; case 1: set '@entryrand,rand(5); if('@entryrand > 0 && '@entryrand <= 2) { mes "[ヘンリエッタ]"; mes "…まだ準備に時間が掛かります"; mes "もう少しお待ち下さいね。"; close; } if('@entryrand >= 3 && '@entryrand < 5) { set minigame,2; mes "[ヘンリエッタ]"; mes "はい、準備が出来ました!"; mes "会場へ向かいますか?"; next; set '@menu,select("はい!","会員証を無くしてしまいました…","いいえ"); if('@menu==2) set '@menu,3; else if('@menu==3) set '@menu,2; break; } case 2: mes "[ヘンリエッタ]"; mes "またお越しいただいて有難う御座います"; mes "さあ…ミニゲーム会場へ向かいますか?"; mes "代金は一回10,000zと成っております。"; next; set '@menu,select("行きます!","行かない","会員証を無くしてしまいました…"); break; } switch('@menu) { case 1: if(countitem(8051) < 1) { mes "[ヘンリエッタ]"; mes "会員証をお持ちでないようですよ?"; mes "再発行手続きをするか会員証をお持ち下さい。"; close; } if(minigame==2 && Zeny < 10000) break; else set Zeny,Zeny-10000; mes "[ヘンリエッタ]"; mes "それでは…"; mes "どちらの会場になさいますか?"; next; set '@menu,select("ミニゲーム会場1","ミニゲーム会場2"); mes "[ヘンリエッタ]"; mes "それでは^00FF00ミニゲーム会場"+ '@menu +"^000000楽しみください!"; close2; if('@menu==1) warp "quiz_00.gat",6,122; else warp "quiz_01.gat",52,285; end; case 2: close; case 3: mes "[ヘンリエッタ]"; mes "先刻申し上げたとおり"; mes "再発行に必要な代金は^00FF00300,000z^000000です。"; next; if(select("発行する","発行しない")==2) close; if(Zeny<300000) break; mes "[ヘンリエッタ]"; mes "了解しましたー。"; mes "これが新しい会員証になります。"; set Zeny,Zeny-300000; getitem2 8051,1,1,0,0,254,0,getcharid(0),2; close; } mes "[ヘンリエッタ]"; mes "お金が足りませんー…"; close; } //------------------------------------------------------------------------------------------- - script ヘンリエッタ -1,{ mes "[ヘンリエッタ]"; mes "ミニゲーム会場へようこそ!"; next; mes "[ヘンリエッタ]"; mes "私のそばにある控え室に入れば"; mes "すぐに一人ずつお呼びがかかります!"; next; mes "[ヘンリエッタ]"; mes "開始位置から移動しつつ、"; mes "「ターゲット」という名前の"; mes "標的を5つ以上倒せば、MAPどこかに"; mes "あるスイッチが押せるようになります。"; next; mes "[ヘンリエッタ]"; mes "スイッチを押せば、MAPのどこかの"; mes "出口より脱出することができます。"; mes "制限時間内に目的を完遂し脱出"; mes "するのがこのゲームの趣旨です。"; next; mes "[ヘンリエッタ]"; mes "戦闘不能に陥ったり、"; mes "制限時間を超過した場合は"; mes "失格となりますので"; mes "再度ご挑戦下さい!"; next; mes "[ヘンリエッタ]"; mes "クリアの暁には"; mes "^00FF00ミニゲームポイント^000000が入ります。"; mes "このポイントは私の側近である"; mes "^FF44FFアンジェリカ^000000が景品と交換してくれるので"; mes "気張って参加して頂ければ幸いです。"; close; } quiz_00.gat,17,115,3 duplicate(ヘンリエッタ) ヘンリエッタ#1 68,5,2 quiz_01.gat,30,285,3 duplicate(ヘンリエッタ) ヘンリエッタ#2 68,5,2 //------------------------------------------------------------------------------ //ミニゲーム会場1 //------------------------------------------------------------------------------ quiz_00.gat,17,115,3 script ヘンリエッタ#Wroom1 111,{ end; OnInit: waitingroom "ミニゲーム控室",10,"ヘンリエッタ#Wroom1::OnStart",1; end; OnStart: disablewaitingroomevent; getwaitingpcid '@accid; if(attachrid('@accid)) { set 'charname$,strcharinfo(0); set 'accid,getcharid(3); donpcevent "MinigameBattle1::OnStart"; warp "quiz_00.gat",65,6; } end; } quiz_00.gat,0,0,0 script MinigameBattle1 -1,{ end; OnStart: set 'target_num,5; set 'charname$,getvariableofnpc('charname$,"ヘンリエッタ#Wroom1"); set 'accid,getvariableofnpc('accid,"ヘンリエッタ#Wroom1"); disablenpc "switch#1"; disablenpc "ゲート#1"; setarray '@mobid,1229+rand(21),1253+rand(6),1391+rand(8),1694+rand(4),1377+rand(11); //当たり monster "quiz_00.gat",77,32,"ターゲット",'@mobid[0],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",53,34,"ターゲット",'@mobid[1],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",52,10,"ターゲット",'@mobid[2],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",52,10,"ターゲット",'@mobid[3],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",79,9,"ターゲット",'@mobid[0],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",79,9,"ターゲット",'@mobid[4],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",78,22,"ターゲット",'@mobid[0],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",53,23,"ターゲット",'@mobid[1],1,"MinigameBattle1::OnKillOK"; monster "quiz_00.gat",54,73,"ターゲット",'@mobid[0],1,"MinigameBattle1::OnKillOK"; //ダミー monster "quiz_00.gat",77,32,""+ 'charname$ +"",'@mobid[3],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",53,34,"れい",'@mobid[2],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",53,34,"エクス",'@mobid[1],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",53,23,"ベジータ",'@mobid[0],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",53,23,"こぎつね",'@mobid[3],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",53,23,"こりす",'@mobid[3],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",53,23,"Discount",'@mobid[4],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",52,10,"GMふげこ",'@mobid[4],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",52,10,"衝撃の核弾頭",'@mobid[0],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",79,9,"バーチャルネットアイドル枝豆14歳",'@mobid[1],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",79,9,"夜神 月",'@mobid[2],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",79,9,"しょーたろ",'@mobid[2],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",78,22,"筑紫",'@mobid[1],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",78,22,"ターケット",'@mobid[4],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",78,22,"目標",'@mobid[0],1,"MinigameBattle1::OnKillNG"; monster "quiz_00.gat",77,32,"はるむ",'@mobid[3],1,"MinigameBattle1::OnKillNG"; donpcevent "MinigameAnnounce1"; initnpctimer; end; OnTimer1000: if(attachrid('accid)) { if(readparam(5,'charname$)==0) { donpcevent "MinigameBattle1::OnReset"; mapannounce "quiz_00.gat","ヘンリエッタ : "+ 'charname$ +"さん、死亡しました! また挑戦してくださいね",8; sleep 1000; donpcevent "MinigameBattle1::OnReset2"; end; } detachrid; } if(getareausers("quiz_00.gat",48,4,85,43)==0) { donpcevent "MinigameBattle1::OnReset"; mapannounce "quiz_00.gat","ヘンリエッタ : "+ 'charname$ +"さん、退場しました! また挑戦してくださいね",8; sleep 1000; donpcevent "MinigameBattle1::OnReset2"; end; } initnpctimer; end; OnReset: stopnpctimer "MinigameAnnounce1"; killmonster "quiz_00.gat","MinigameBattle1::OnKillOK"; killmonster "quiz_00.gat","MinigameBattle1::OnKillNG"; end; OnReset2: areawarp "quiz_00.gat",45,3,100,50,"ayothaya.gat",148,156; stopnpctimer; enablewaitingroomevent "ヘンリエッタ#Wroom1"; end; OnKillOK: set 'target_num,'target_num-1; if('target_num>0) { mapannounce "quiz_00.gat","ヘンリエッタ : 頑張ってください!標的はまだ存在しています。",8; end; } donpcevent "MinigameBattle1::OnReset"; enablenpc "switch#1"; mapannounce "quiz_00.gat","ヘンリエッタ : お疲れ様でした。後はスイッチを探し、ゲートから脱出してください。",8; end; OnKillNG: donpcevent "MinigameBattle1::OnReset"; mapannounce "quiz_00.gat","ヘンリエッタ : "+ 'charname$ +"さん、間違えました! また挑戦してくださいね",8; sleep 1000; donpcevent "MinigameBattle1::OnReset2"; end; } quiz_00.gat,0,0,0 script MinigameAnnounce1 -1,{ initnpctimer; end; OnTimer1000: mapannounce "quiz_00.gat","ヘンリエッタ : ボンジョルノ!それではミニゲームを開始致します!",8; end; OnTimer3000: mapannounce "quiz_00.gat","ヘンリエッタ : 「ターゲット」だけを選んで倒してくださいね?",8; end; OnTimer5000: mapannounce "quiz_00.gat","ヘンリエッタ : 脱出用スイッチを操作すれば、出口が出現致します!",8; end; OnTimer7000: mapannounce "quiz_00.gat","ヘンリエッタ : 脱出までの制限時間は【3分】です",8; end; OnTimer9000: mapannounce "quiz_00.gat","ヘンリエッタ : 1分経過ごとにお知らせします。それでは…スタート!",8; end; OnTimer11000: mapannounce "quiz_00.gat","ヘンリエッタ : ******残り 3 分 ******",8; end; OnTimer71000: mapannounce "quiz_00.gat","ヘンリエッタ : ******残り 2 分 ******",8; end; OnTimer131000: mapannounce "quiz_00.gat","ヘンリエッタ : ******残り 1 分 ******",8; end; OnTimer161000: mapannounce "quiz_00.gat","ヘンリエッタ : ******残り 30 秒 ******",8; end; OnTimer186000: mapannounce "quiz_00.gat","ヘンリエッタ : ミニゲーム終了 5 秒前. . . . .",8; end; OnTimer187000: mapannounce "quiz_00.gat","ヘンリエッタ : ミニゲーム終了 4 秒前. . . .",8; end; OnTimer188000: mapannounce "quiz_00.gat","ヘンリエッタ : ミニゲーム終了 3 秒前. . .",8; end; OnTimer189000: mapannounce "quiz_00.gat","ヘンリエッタ : ミニゲーム終了 2 秒前. .",8; end; OnTimer190000: mapannounce "quiz_00.gat","ヘンリエッタ : ミニゲーム終了 1 秒前.",8; end; OnTimer191000: mapannounce "quiz_00.gat","ヘンリエッタ : 0",8; end; OnTimer192000: donpcevent "MinigameBattle1::OnReset"; mapannounce "quiz_00.gat","ヘンリエッタ : 制限時間を過ぎてしまいました。それではまた次回!再見!",8; sleep 1000; donpcevent "MinigameBattle1::OnReset2"; end; } //------------------------------------------------------------------------------ //ミニゲーム会場2 //------------------------------------------------------------------------------ quiz_01.gat,30,285,3 script ヘンリエッタ#Wroom2 111,{ end; OnInit: waitingroom "ミニゲーム控室",10,"ヘンリエッタ#Wroom2::OnStart",1; end; OnStart: disablewaitingroomevent; getwaitingpcid '@accid; if(attachrid('@accid)) { set 'charname$,strcharinfo(0); set 'accid,getcharid(3); donpcevent "MinigameBattle2::OnStart"; warp "quiz_01.gat",336,92; } end; } quiz_01.gat,0,0,0 script MinigameBattle2 -1,{ OnStart: set 'target_num,5; set 'charname$,getvariableofnpc('charname$,"ヘンリエッタ#Wroom2"); set 'accid,getvariableofnpc('accid,"ヘンリエッタ#Wroom2"); disablenpc "switch#2"; disablenpc "ゲート#2"; setarray '@mobid,1229+rand(21),1253+rand(6),1391+rand(8),1694+rand(4),1377+rand(11); //当たり monster "quiz_01.gat",317,67,"ターゲット",'@mobid[0],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",328,63,"ターゲット",'@mobid[1],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",340,64,"ターゲット",'@mobid[2],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",328,63,"ターゲット",'@mobid[3],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",317,67,"ターゲット",'@mobid[4],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",328,63,"ターゲット",'@mobid[2],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",352,62,"ターゲット",'@mobid[0],1,"MinigameBattle2::OnKillOK"; monster "quiz_01.gat",340,64,"ターゲット",'@mobid[1],1,"MinigameBattle2::OnKillOK"; //ダミー monster "quiz_01.gat",317,67,"ターケット",'@mobid[4],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",317,67,""+ 'charname$ +"",'@mobid[2],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",317,67,"れい",'@mobid[1],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",317,67,"エクス",'@mobid[3],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",328,63,"ベジータ",'@mobid[2],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",328,63,"こぎつね",'@mobid[0],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",328,63,"Discount",'@mobid[3],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",340,64,"GMふげこ",'@mobid[2],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",340,64,"衝撃の核弾頭",'@mobid[1],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",340,64,"バーチャルネットアイドル枝豆14歳",'@mobid[1],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",352,62,"夜神 月",'@mobid[2],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",352,62,"しょーたろ",'@mobid[3],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",352,62,"筑紫",'@mobid[4],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",352,62,"ゲットゲット",'@mobid[1],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",352,62,"ナゲット",'@mobid[4],1,"MinigameBattle2::OnKillNG"; monster "quiz_01.gat",317,67,"はるむ",'@mobid[4],1,"MinigameBattle2::OnKillNG"; donpcevent "MinigameAnnounce2"; initnpctimer; end; OnTimer1000: if(attachrid('accid)) { if(readparam(5,'charname$)==0) { donpcevent "MinigameBattle2::OnReset"; mapannounce "quiz_01.gat","ヘンリエッタ : "+ 'charname$ +"さん、死亡しました! また挑戦してくださいね",8; sleep 1000; donpcevent "MinigameBattle2::OnReset2"; end; } detachrid; } if(getareausers("quiz_01.gat",309,59,361,92)==0) { donpcevent "MinigameBattle2::OnReset"; mapannounce "quiz_01.gat","ヘンリエッタ : "+ 'charname$ +"さん、退場しました! また挑戦してくださいね",8; sleep 1000; donpcevent "MinigameBattle2::OnReset2"; end; } initnpctimer; end; OnReset: stopnpctimer "MinigameAnnounce2"; killmonster "quiz_01.gat","MinigameBattle2::OnKillOK"; killmonster "quiz_01.gat","MinigameBattle2::OnKillNG"; end; OnReset2: areawarp "quiz_01.gat",309,40,361,100,"ayothaya.gat",148,156; stopnpctimer; enablewaitingroomevent "ヘンリエッタ#Wroom2"; end; OnKillOK: set 'target_num,'target_num-1; if('target_num>0) { mapannounce "quiz_01.gat","ヘンリエッタ : 頑張ってください!標的はまだ存在しています。",8; end; } donpcevent "MinigameBattle2::OnReset"; enablenpc "switch#2"; mapannounce "quiz_01.gat","ヘンリエッタ : お疲れ様でした。後はスイッチを探し、ゲートから脱出してください。",8; end; OnKillNG: donpcevent "MinigameBattle2::OnReset"; mapannounce "quiz_01.gat","ヘンリエッタ : "+ 'charname$ +"さん、間違えました! また挑戦してくださいね",8; sleep 1000; donpcevent "MinigameBattle2::OnReset2"; end; } quiz_01.gat,0,0,0 script MinigameAnnounce2 -1,{ initnpctimer; end; OnTimer1000: mapannounce "quiz_01.gat","ヘンリエッタ : ボンジョルノ!それではミニゲームを開始致します!",8; end; OnTimer3000: mapannounce "quiz_01.gat","ヘンリエッタ : 「ターゲット」だけを選んで倒してくださいね?",8; end; OnTimer5000: mapannounce "quiz_01.gat","ヘンリエッタ : 脱出用スイッチを操作すれば、出口が出現致します!",8; end; OnTimer7000: mapannounce "quiz_01.gat","ヘンリエッタ : 脱出までの制限時間は【3分】です",8; end; OnTimer9000: mapannounce "quiz_01.gat","ヘンリエッタ : 1分経過ごとにお知らせします。それでは…スタート!",8; end; OnTimer11000: mapannounce "quiz_01.gat","ヘンリエッタ : ******残り 3 分 ******",8; end; OnTimer71000: mapannounce "quiz_01.gat","ヘンリエッタ : ******残り 2 分 ******",8; end; OnTimer131000: mapannounce "quiz_01.gat","ヘンリエッタ : ******残り 1 分 ******",8; end; OnTimer161000: mapannounce "quiz_01.gat","ヘンリエッタ : ******残り 30 秒 ******",8; end; OnTimer186000: mapannounce "quiz_01.gat","ヘンリエッタ : ミニゲーム終了 5 秒前. . . . .",8; end; OnTimer187000: mapannounce "quiz_01.gat","ヘンリエッタ : ミニゲーム終了 4 秒前. . . .",8; end; OnTimer188000: mapannounce "quiz_01.gat","ヘンリエッタ : ミニゲーム終了 3 秒前. . .",8; end; OnTimer189000: mapannounce "quiz_01.gat","ヘンリエッタ : ミニゲーム終了 2 秒前. .",8; end; OnTimer190000: mapannounce "quiz_01.gat","ヘンリエッタ : ミニゲーム終了 1 秒前.",8; end; OnTimer191000: mapannounce "quiz_01.gat","ヘンリエッタ : 0",8; end; OnTimer192000: donpcevent "MinigameBattle2::OnReset"; mapannounce "quiz_01.gat","ヘンリエッタ : 制限時間を過ぎてしまいました。それではまた次回!再見!",8; sleep 1000; donpcevent "MinigameBattle2::OnReset2"; end; } - script switch -1,{ if(strnpcinfo(0)=="switch#1") setarray '@num,0,1; if(strnpcinfo(0)=="switch#2") setarray '@num,1,2; mes "スイッチがあり、"; mes "ボタンが三つ見える。"; next; switch(select("脱出","取り消し","再挑戦")) { case 1: mes "ゲートが開きました"; mapannounce "quiz_0"+ '@num[0] +".gat","switch : # ゲートが開きました #",8; enablenpc "ゲート#"+ '@num[1]; close; case 2: mes "操作が取り消されました"; mapannounce "quiz_0"+ '@num[0] +".gat","switch : # 操作が取り消されました #",8; close; case 3: mes "首都に転送されます"; mapannounce "quiz_0"+ '@num[0] +".gat","switch : # ミニゲームが中断されます. . . . #",8; close2; donpcevent "MinigameBattle"+ '@num[1] +"::OnReset"; warp "ayothaya.gat",148,156; donpcevent "MinigameBattle"+ '@num[1] +"::OnReset2"; end; } } quiz_00.gat,56,28,0 duplicate(switch) switch#1 723,1,1 quiz_01.gat,352,61,0 duplicate(switch) switch#2 723,1,1 - script gate -1,{ if(strnpcinfo(0)=="ゲート#1") set '@num,1; if(strnpcinfo(0)=="ゲート#2") set '@num,2; donpcevent "MinigameBattle"+ '@num +"::OnReset"; donpcevent "MinigameBattle"+ '@num +"::OnReset2"; set #minigamepoint,#minigamepoint+1; switch(rand(2)) { case 0: warp "ayothaya.gat",155,158; end; case 1: warp "ayothaya.gat",155,161; end; } } quiz_00.gat,75,28,0 duplicate(gate) ゲート#1 45,1,1 quiz_01.gat,317,62,0 duplicate(gate) ゲート#2 45,1,1 ayothaya.gat,161,145,3 script アンジェリカ#minigame 877,{ mes "[アンジェリカ]"; mes "現在のミニゲームポイントは"; mes "【^00FF00"+ #minigamepoint +"^000000】です。"; mes "3ポイント毎に"; mes "溜まったポイントと景品を取り替えてあげるね"; next; set '@menu,select("短剣類","片手剣類","両手剣類","斧類","槍類","本類","カタール類","弓類","拳類","鈍器類","杖類","楽器類","鞭類","盾類","鎧類","肩にかける物類","アクセサリ類","靴類","銃器類","忍具類","遠慮しておきます"); // set '@menu,select("短剣類","片手剣類","両手剣類","斧類","槍類","本類","カタール類","弓類","拳類","鈍器類","杖類","楽器類","鞭類","盾類","鎧類","肩にかける物類","アクセサリ類","靴類","銃器類","忍具類","遠慮しておきます","頭装備類"); if('@menu==21) { mes "[アンジェリカ]"; mes "それでは、また今度〜"; close; } if(#minigamepoint < 3) { mes "[アンジェリカ]"; mes "あれれ…?"; mes "あなたのミニゲームポイントは…"; next; mes "[アンジェリカ]"; mes "【^00FF00"+ #minigamepoint +"^000000】です。"; mes "3ポイント集めてからまた来てね。"; close; } set #minigamepoint,#minigamepoint-3; set '@rand,rand(101); switch('@menu) { case 1: // 短剣類 ほぼゴミ70% 少しだけレア25% レア4% if('@rand <= 70) { getitem 1201+rand(19),1; // ナイフからスティレットまでをランダムに1個 close; } if('@rand <= 95) { getitem 1219+rand(5),1; // グラディウスからダマスカスまでランダムに1個 close; } getitem 1223+rand(28),1; // フォーチュンソードから漁師の短剣までをランダムに1個 close; case 2: // 片手剣類 ほぼゴミ70% 少しだけレア25% レア4% if('@rand <= 70) { getitem 1101+rand(22),1; // ソードからツルギまでをランダムに1個 close; } if('@rand <= 95) { getitem 1122+rand(9),1; // 環頭太刀からフランベルジェまでランダムに1個 close; } getitem 1130+rand(20),1; // ネイガンからスターダストブレイドまでをランダムに1個 close; case 3: // 両手剣類 if('@rand <= 70) { getitem 1151+rand(7),1; // スレイヤーからバスタードソードまでをランダムに1個 close; } if('@rand <= 95) { set '@sword2rand,rand(100); if('@sword2rand < 100) { getitem 1157+rand(5),1; // ツーハンドソードからブロードソードまでをランダム1個 close; } // if('@sword2rand == 100) { // getitem 1161,1; // 0.003%の確率のバルムン(不味かったら上のL_sword2_2_2をL_sword2_2_1にお願いしますー。) // close; // } } getitem 1162+rand(10),1; // ブロードソードからカッツバイゲルまでをランダムに1個 close; case 4: // 斧類 if('@rand <= 70) { getitem 1301+rand(7),1; // アックスからウィンドホークまでをランダムに1個 close; } if('@rand <= 95) { getitem 1351+rand(14),1; // バトルアックスからブラッドアックスまでランダムに1個 close; } getitem 1364+rand(7),1; // グレイトアックスからギロチンまでをランダムに1個 close; case 5: // 槍類 if('@rand <= 70) { getitem 1401+rand(18),1; // ジャベリンからポールアクスまでをランダムに1個 close; } if('@rand <= 95) { getitem 1451+rand(6),1; // ギザルムからクレセントサイダーまでランダムに1個 close; } getitem 1467+rand(9),1; // ビルギザルムからゲイボルグまでをランダムに1個 close; case 6: // 本類 if('@rand <= 70) { getitem 1550+rand(4),1; // ブック・バイブル・タブレットからランダムに1個 close; } if('@rand <= 95) { getitem 1553+rand(7),1; // 荒れ狂う波の書から少女の日記までランダムに1個 close; } getitem 1559+rand(5),1; // ドラゴンの遺産から戦場の書までをランダムに1個 close; case 7: // カタール類 if('@rand <= 70) { getitem 1250+rand(7),1; // ジュルからジャマダハルまでをランダムに1個 close; } if('@rand <= 95) { getitem 1256+rand(7),1; // 冷たい氷柱のカタールから裏切り者までランダムに1個 close; } getitem 1262+rand(5),1; // ロキの爪からブラッディロアまでをランダムに1個 close; case 8: // 弓類 if('@rand <= 70) { getitem 1701+rand(13),1; // ボウからクロスボウまでをランダムに1個 close; } if('@rand <= 95) { getitem 1713+rand(7),1; // アーバレストからハンターボウまでランダムに1個 close; } getitem 1719+rand(8),1; // 盗賊の弓から吟遊詩人の弓までをランダムに1個 close; case 9: // 拳類 if('@rand <= 70) { getitem 1801+rand(9),1; // バグナウからフィストまでをランダムに1個 close; } if('@rand <= 95) { getitem 1809+rand(5),1; // クローからフィンガーまでランダムに1個 close; } getitem 1813+rand(3),1; // getitem 1813+rand(4),1; // カイザーナックルからガルムの爪までをランダムに1個 close; case 10: // 鈍器類 if('@rand <= 70) { getitem 1501+rand(16),1; // クラブからモーニングスターまでをランダムに1個 close; } if('@rand <= 95) { getitem 1516+rand(8),1; // ソードメイスからスタナーまでをランダムに1個 close; } set '@rand,rand(1000); // [ミョルニールを設定する場合]--------------------------- if('@rand <= 998) { getitem 1524+rand(7),1; // ゴールデンメイスからアイアンドライバーまでをランダムに1個 close; } getitem 1530,1; // ミョルニール獲得(確立0.04×0.001=0.00004)0.004% close; case 11: // 杖類 if('@rand <= 70) { getitem 1601+rand(10),1; // ロッドからスタッフまでをランダムに1個 close; } if('@rand <= 95) { getitem 1610+rand(7),1; // アークワンドから骸骨の杖までランダムに1個 close; } getitem 1616+rand(8),1; // スタッフオブウィングから催眠術師の杖までをランダムに1個 close; case 12: // 楽器類 if('@rand <= 70) { getitem 1901+rand(7),1; // バイオリンからリュートまでをランダムに1個 close; } if('@rand <= 95) { getitem 1907+rand(7),1; // ギターからゴムンゴまでランダムに1個 close; } getitem 1913+rand(7),1; // エレキギターから琵琶までをランダムに1個 close; case 13: // 鞭類 if('@rand <= 70) { getitem 1950+rand(7),1; // ロープからワイヤーまでをランダムに1個 close; } if('@rand <= 95) { // 70以上95以下はL_dance_2へ getitem 1956+rand(8),1; // ランテからラリエットまでランダムに1個 close; } getitem 1963+rand(10),1; // ラプチャーローズから電気線までをランダムに1個 close; case 14: // 盾類 if('@rand <= 70) { getitem 2101+rand(7),1; // ガードからシールドまでをランダムに1個 close; } if('@rand <= 95) { // 70以上95以下はL_guard_2へ getitem 2107+rand(8),1; // ミラーシールドからノービスシールドまでランダムに1個 close; } getitem 2114+rand(4),1; // ストーンバックラーから天使の守護までをランダムに1個 close; case 15: // 鎧類 if('@rand <= 70) { getitem 2301+rand(11),1; // コットンシャツからロングコートまでをランダムに1個 close; } if('@rand <= 95) { getitem 2311+rand(33),1; // ミンクのコートからSフルプレートまでランダムに1個 close; } getitem 2343+rand(16),1; // キャスティングローブからヴァルキリーの鎧までをランダムに1個 close; case 16: // 肩にかけるもの類 if('@rand <= 70) { getitem 2501+rand(3),1; // フードからSフードまでをランダムに1個 close; } if('@rand <= 95) { getitem 2503+rand(13),1; // マフラーからポールドロンまでランダムに1個 close; } getitem 2515+rand(11),1; // ウィングオブイーグルからヴァルキリーのマントまでをランダムに1個 close; case 17: // S無しゴミ系85% 少しレア(ゴミ含む)10% なかなかのレア5% if('@rand <= 85) { // 俗に言うゴミ系(アクセは格差が激しい・・・) set '@rand,rand(101); if('@rand <= 50) { // S無しもしくはゴミ系アクセサリ getitem 2608+rand(7),1; // S無しロザリからダイヤの指輪まで close; } if('@rand <= 75) { // S無しアクセサリ各種 getitem 2601+rand(6),1; // S無しリングからS無しブローチまでをランダムに1個 close; } // 特殊な消耗品(死んだとき一度だけ生き返って消滅) getitem 2653,1; // サクリファイスリング獲得 close; } if('@rand <= 95) { // 効果低めな物を。(種類が多いので小刻みです。) set '@rand,rand(101); if('@rand <= 20) { getitem 2617,1; // 神官の手袋獲得 close; } if('@rand <= 35) { getitem 2616,1; // クリティカルリング獲得 close; } if('@rand <= 50) { getitem 2620,1; // 盗賊の指輪獲得 close; } if('@rand <= 75) { getitem 2621+rand(7),1; // SリングからSロザリオからランダムで1個獲得 close; } if('@rand <= 90) { getitem 2640,1; // カプラリング獲得 close; } getitem 2645,1; // 月明かりの指輪獲得 close; } set '@rand,rand(101); if('@rand <= 50) { getitem 2646+rand(12),1; // カーネーションの花束からハイパーモードチェンジャーまでをランダムに1個 close; } getitem 2658+rand(13),1; // ナイルローズからRJCネックレスまでをランダムに1個 close; case 18: // ゴミ系75% ちょいレア15% レア5% if('@rand <= 75) { getitem 2401+rand(5),1; // サンダルからシューズまでをランダムに1個 close; } if('@rand <= 90) { getitem 2405+rand(6),1; // ブーツからハイヒールまでをランダムに1個 close; } getitem 2411+rand(12),1; // グリーブからヴァルキリーのシューズまでをランダムに1個 close; case 19: // 銃器類 IDばらばらなため少々複雑かも… if('@rand <= 90) { // 低レベル各部類銃器をランダムで1個…かな set '@rand,rand(101); if('@rand <= 20) { // リボルバー getitem 13100+rand(5),1; // シックスシューターからクリムゾンボルトまでをランダムに1個 close; } if('@rand <= 40) { // ライフル getitem 13150+rand(3),1; // ブランチからサイクロンまでをランダムに1個 close; } if('@rand <= 60) { // ショットガン getitem 13154+rand(3),1; // ローリングストーンからブラックローズまでをランダムに1個 close; } if('@rand <= 80) { // ガトリング getitem 13157+rand(3),1; // ドリフターからブッチャーまでをランダムに1個 close; } // グレネードランチャー getitem 13160+rand(3),1; // デストロイヤーからデストロイヤーまでをランダムに1個 close; } set '@rand,rand(101); if('@rand <= 20) { // リボルバー getitem 13104+rand(3),1; // ガリソンからゴールドルックスまでをランダムに1個 close; } if('@rand <= 40) { // ライフル getitem 13153,1; // ダスク獲得 close; } if('@rand <= 60) { // ショットガン getitem 13156,1; // ゲートキーパー獲得 close; } if('@rand <= 80) { // ガトリング getitem 13159,1; // Sブッチャー獲得 close; } // グレネードランチャー getitem 13162,1; // インフェルノ獲得 close; case 20: // 忍具類 85%ゴミ 15%ちょいレア if('@rand <= 85) { // 銃器と同じく少し複雑? set '@rand,rand(101); if('@rand <= 33) { // 短剣系 getitem 13006+rand(5),1; // ゴクリンからカマイタチまでをランダムに1個 close; } if('@rand <= 66) { // 風魔手裏剣系 getitem 13301+rand(3),1; // 風魔手裏剣・大車輪からS風魔手裏剣・大車輪までをランダムに1個 close; } // 忍者用盾系 getitem 2117+rand(3),1; // 篭手からS篭手までをランダムに1個 close; } set '@rand,rand(101); if('@rand <= 33) { // 短剣系 getitem 13010+rand(7),1; // アシュラからハクジンまでをランダムに1個 close; } if('@rand <= 66) { // 風魔手裏剣系 set '@rand,rand(3); if('@rand <= 1) { getitem 13303,1; // 風魔手裏剣・烈火獲得 close; } getitem 13300,1; // 風魔手裏剣・便益獲得 close; } // 忍者用盾系 getitem 2119+rand(3),1; // 改良型篭手からS改良型篭手までをランダムに1個 close; case 21: // 頭装備類 if('@rand <= 70) { getitem 2201+rand(100),1; // サングラスからオーク族のヘルムまでをランダムに1個 close; } if('@rand <= 95) { getitem 5001+rand(92),1; // ヘッドフォンから大きな金の鈴までランダムに1個 close; } getitem 5092+rand(57),1; // 修道女のヴェールから野球帽までをランダムに1個 // getitem 5092+rand(59),1; // 修道女のヴェールからイベント帽子までをランダムに1個 close; } } // 修正内容 // ・minigame_announce、minigame_checkを2つずつに分割 // ・アタッチによる死亡チェックを追加 // ・一部のMAP一時変数をスクリプト一時変数に変更 // ・ミニゲーム更新修正追加版4/30を反映 // ・itemidがオリジナルアイテム追加の為ズレていると見なして元々のitemidを反映 // ・鎧と外套の追加とswitchがズレていたのを修正 // ・バグレポート報告分を修正 // Thanks 投稿者様 // ・死亡判定がおかしかったのでエリア判定と分割 // ・分ける意味もないのでminigame_battleとminigame_checkを結合 // ・残存していたMAP一時変数を全てスクリプト一時変数に変更 // ・微修正 // // 改修者の一言 // ・2PCにて両方のミニゲームをほぼ同時にプレイしてみましたがどちらかが止まったり、片方で倒した敵の数値がもう片方に適用されると言う事はありませんでした。 // ・バグの原因はMinigameAnnounce、minigame_checkを1つにした事と処理を同じMAP一時変数で行っていたから起こりました。 // ・スクリプトを見直したり重ねて動作チェックをしてみましたがバグはなさそうです。 // ・バグレポートのお陰で気付かなかった穴も修正出来ました。