//----------------------------------------------------------------------------- /* Ragnarok Online Sakray仕様カード交換自動販売機script 作成日:2006/10/15 作った犯人:いるか 不要になったカードを交換するNPCです。 カードは便宜上、落とすMOBのLvでA〜Eまで分けられています。 MVP-BOSSのカードはSランクになっています。 5枚一組でランダムに同じLvのカード1枚との交換です。 カードは10枚まで設定出来ます。 5枚から増えるごとにもう1ランク上のカードがランダムで当たる確率が増加。 最大、10枚で50%の確率で1ランク上のカードをランダムで取得出来ます。 ※・・・一番下にduplicateしています。 使用上の注意 : このscriptのデフォ仕様はathena-2227でのsakray仕様になっています。 本鯖仕様 or それ以前のバージョンでは予期せぬ不具合が発生する可能性があります。 ご利用は計画的に。 //----------------------------------------------------------------------------- *以下は追加コメント <注意> *本スクリプトは いるかさんの作品を勝手に改造したものです。 *アイテムIDをちゃんとリストに入れればオリジナルカードも対応。 *テストは不十分かもしれません。 //----------------------------------------------------------------------------- 変更点: @ 設定可能な項目追加 A セリフ整形、メニュー配置変更 B 操作の途中キャンセルによるのカード損失の問題解消。 交換用カードの削除が行われた同時に、取得カードのIDを キャラ永続変数として保存することで、万が一のことが 起こっても、NPCにもう一度声をかければ取得カードを 取り戻せます。 C 構造変更によって、対応可能なカード種類をより簡単な手順で 増減できます。対応カードの最大IDを'@maxcountに入れなおして、 そして追加分のカードのIDを最下部にある配列群に入れれば設定完了です。 ランクごとの種類数は自動的に算出されますが、 カードランクの分類は自力でがんばってください。 D ランクアップ確率の算式変更 追加カード一枚につき何%加算します。 従来の算式は全ランク固定ですが 10%,10%,10%,10%,10%(E〜A、) 新算式はラングが高いほど上昇率が低くなります。(ボスc量産対策?) 10%,8%,6%,4%,2%(E〜A) # ----- Ver3 -----# # ----- Ver4 -----# E 前回操作のカードリストを初期化するように修正。 F スクリプトの構造変更。(callsub → callfunc) G 設定可能な項目を修正、追加。 H '@netcardの設定が算式に反映されるように修正。 */ //----------------------------------------------------------------------------- - script Card_Changer -1,{ // --------設定--------- // 交換のために必要なカード数 set '@netcard, 5 ; // 選択可能なカード数('@netcardより小さな値にしないでください) set '@netcardmax, 10 ; // 交換可能なランク制限(1〜6)、デフォルトは5(ボスc交換不可) set '@rankmax, 5 ; // ランクアップ制限(0〜5)、0でランクアップ発生しない // デフォルトを'@rankmax-1にしてます。'@rankmax 以上の数値にしないでください set '@rankup, '@rankmax-1 ; // 追加カード一枚につきのランクアップ確率の上昇値 // 従来の算式は 10,10,10,10,10; // 左からE〜Aランク setarray '@c[1], 10,8,6,4,2; // --------終了--------- //前回のカードリストを削除 //このために'@listcountをキャラ一時変数に変えました。 if (@id[1] != 0) deletearray @id[1],@listcount; set @listcount,0; //キャラ永続変数を使用したため //他のNPCと被っているかを確認してください。 //4000以下のIDだと認識しないので注意してください if (Card_Changer_ID > 4000) { mes "[カードちゃん]"; mes "いらっしゃいませ!"; mes "よかった〜、やっと会えた、"; mes "この前にカードを忘れてた"; mes strcharinfo(0) + "様ですね。"; next; getitem Card_Changer_ID,1; set Card_Changer_ID,0; mes "[カードちゃん]"; mes "はい、これを。"; mes "この前に交換できたカードです。"; close; } // mes "[カードちゃん]"; mes "いらっしゃいませ!"; mes "カードの交換ですか?"; next; menu "そうです",Lcard,"違いますよ",Lno; Lcard: mes "[カードちゃん]"; mes "カードの交換は初めてでしょうか?"; next; menu "いいえ、何度かやっています",Lsec,"初めてです",Lcard2; Lno: mes "[カードちゃん]"; mes "そうですか・・・"; mes "不要なカードがありましたら"; mes "またお声をお掛け下さい!"; mes "その時は是非、交換させて頂きます!"; close2; deletearray @id[1],@listcount; //カードリスト削除 set @listcount,0; end; Lcard2: mes "[カードちゃん]"; mes "初めての方ですね。"; mes "まずはご挨拶から・・・"; mes "初めまして!私がカード交換を"; mes "担当させて頂いています、"; mes "^4A4AFFカードちゃん^000000と言います。"; mes "宜しくお願いします!"; next; goto Lsetumei; //(2度目以降の台詞ここから) Lsec: mes "[カードちゃん]"; mes "" + strcharinfo(0) + "様ですね。"; mes "お久しぶりで御座います!"; mes "もうお分かりかも知れませんが"; mes "忘れる事もあるかと思いますので・・・"; next; //(ここまで) Lsetumei: mes "[カードちゃん]"; mes "カード交換についての説明を"; mes "聞きますか?"; next; menu "聞かない",Lcard4,"聞く^4A4AFF(推奨)^000000",Lcard3; Lcard3: mes "[カードちゃん]"; mes "では、カード交換の説明を"; mes "させて頂きます。"; next; mes "[カードちゃん]"; mes "カードは便宜上、^4A4AFFEランク^000000から"; mes "^4A4AFFSランク^000000まで分けています。"; next; mes "[カードちゃん]"; mes "^4A4AFFEランク^000000:"; mes "Lv1-19までのモンスターのカード"; mes "^4A4AFFDランク^000000:"; mes "Lv20-39までのモンスターのカード"; mes "^4A4AFFCランク^000000:"; mes "Lv40-59までのモンスターのカード"; mes "^4A4AFFBランク^000000:"; mes "Lv60-79までのモンスターのカード"; mes "^4A4AFFAランク^000000:"; mes "Lv80-99までのモンスターと"; mes "BOSS属性モンスターのカード"; mes "^4A4AFFSランク^000000:"; mes "MVPモンスターのカード"; next; mes "[カードちゃん]"; mes "カードの交換は^4A4AFF基本的に"; mes '@netcard+"枚の同ランクのカードと"; mes "1枚の交換^000000になります。"; mes "交換するカードは選べません。"; mes "同ランクのカードの中から"; mes "^4A4AFFランダムで1枚^000000を差し上げます。"; next; /* 不要になったのでコメントアウト mes "[カードちゃん]"; mes "尚、途中でやめる場合は"; mes "^4A4AFF現在選択中のカードを見る or カードを交換する^000000"; mes "の項目を参照下さい。"; next; */ mes "[カードちゃん]"; mes "これで仕様についての説明を"; mes "終わります。"; mes "追加での説明もありますので、"; mes "初めての方は読む事を推奨致します。"; next; Lcard4: mes "[カードちゃん]"; mes "それではメニューを選んで下さい。"; next; menu "カードを交換する",L_change,"^4A4AFFちょっとお得な話^000000",Ltoku; Ltoku: mes "[カードちゃん]"; mes "^019CFFちょっとお得な話!^000000"; next; if ('@rankup <= 0) { mes "[カードちゃん]"; mes "残念ながら、^019CFFちょっとお得な話!^000000は"; mes "今封印されております。"; next; } else { mes "[カードちゃん]"; mes "通常では"+'@netcard+"枚で1枚と交換と"; mes "なっておりますが"; mes "実は、交換するカードは"; mes "^019CFF"+'@netcardmax+"枚^000000まで指定出来ます。"; mes "その場合、"+'@netcard+"枚一組と貰える"; mes "カードが違うかも知れません。"; next; mes "[カードちゃん]"; mes '@netcard+"枚から1枚増えるごとに、"; mes "もう1ランク上のカードが"; mes "当る確立が増えて行きます。"; mes "不要カードを交換して、"; mes "お目当てのカードを当てましょう!"; next; mes "[カードちゃん]"; mes "以上、ちょっとお得な話でした"; next; } menu "カードを交換する",L_change,"やっぱりやめる",Lno; L_change: setarray '@rank$[1],"E","D","C","B","A","S"; mes "[カードちゃん]"; mes "交換するカードのランクを"; mes "選んでください。"; mes "^019CFF"+'@rank$['@rankmax]+"ランクまで交換可能^000000です。"; if ('@rankup <= 0) { mes "^C00000交換枚数によるのランクアップは"; mes "発生しない^000000ので注意してください。"; } next; switch(select( ('@rankmax > 0)? "Eランク":"", ('@rankmax > 1)? "Dランク":"", ('@rankmax > 2)? "Cランク":"", ('@rankmax > 3)? "Bランク":"", ('@rankmax > 4)? "Aランク":"", ('@rankmax > 5)? "Sランク":"", "やっぱやめる")) { case 1: set '@rank,1; break; case 2: set '@rank,2; break; case 3: set '@rank,3; break; case 4: set '@rank,4; break; case 5: set '@rank,5; break; case 6: set '@rank,6; break; default: goto Lno; break; } callfunc "Card_Changer_List",'@rank; //ここからカード交換用メインscript //選択可能なカードリストの生成ループ //長すぎるメニューは好みではないので //10個までに制限します set @listcount,0; //カードリストのカウント set '@count,0; //メニュー項目のカウント(一時的) while(@id[@listcount+1] > 0) { //カードリストの最後まで繰り返す set @listcount,@listcount+1; if ('@count < 10) { //メニュの項目が10個になるまで実行 if (countitem(@id[@listcount]) > 0) { set '@count,'@count+1; set '@cardID['@count],@id[@listcount]; set '@cards['@count],countitem('@cardID['@count]); } } } //ループ終了 //これで選択したランクのカード種類数を得ました = @listcount //同じランクのカードを持ってない場合 if ('@count == 0) { mes "[カードちゃん]"; mes " 交換可能なカードがありません。"; next; goto L_change; } //カウント終了、リスト作成開始 mes "[カードちゃん]"; mes "カード10種類以上を所持してる場合、"; mes "リストに表示されないことがあります。"; mes "交換に使わないカードを倉庫に"; mes "入れてください。"; next; //カード選択用ループ set '@count,0; while(('@rank < '@rankup && '@count < '@netcardmax) || ('@rank >= '@rankup && '@count < '@netcard)) { set '@count,'@count+1; switch(select( ('@cards[1] > 0)? getitemname('@cardID[1])+" ^0000FFあと"+'@cards[1]+"枚^000000":"", ('@cards[2] > 0)? getitemname('@cardID[2])+" ^0000FFあと"+'@cards[2]+"枚^000000":"", ('@cards[3] > 0)? getitemname('@cardID[3])+" ^0000FFあと"+'@cards[3]+"枚^000000":"", ('@cards[4] > 0)? getitemname('@cardID[4])+" ^0000FFあと"+'@cards[4]+"枚^000000":"", ('@cards[5] > 0)? getitemname('@cardID[5])+" ^0000FFあと"+'@cards[5]+"枚^000000":"", ('@cards[6] > 0)? getitemname('@cardID[6])+" ^0000FFあと"+'@cards[6]+"枚^000000":"", ('@cards[7] > 0)? getitemname('@cardID[7])+" ^0000FFあと"+'@cards[7]+"枚^000000":"", ('@cards[8] > 0)? getitemname('@cardID[8])+" ^0000FFあと"+'@cards[8]+"枚^000000":"", ('@cards[9] > 0)? getitemname('@cardID[9])+" ^0000FFあと"+'@cards[9]+"枚^000000":"", ('@cards[10] > 0)? getitemname('@cardID[10])+" ^0000FFあと"+'@cards[10]+"枚^000000":"", ('@count >= '@netcard)? "選択終了":"", //必要以上のカードを選択したら "キャンセル")) { case 1: set '@cards[1],'@cards[1]-1; set '@delcard['@count],'@cardID[1]; break; case 2: set '@cards[2],'@cards[2]-1; set '@delcard['@count],'@cardID[2]; break; case 3: set '@cards[3],'@cards[3]-1; set '@delcard['@count],'@cardID[3]; break; case 4: set '@cards[4],'@cards[4]-1; set '@delcard['@count],'@cardID[4]; break; case 5: set '@cards[5],'@cards[5]-1; set '@delcard['@count],'@cardID[5]; break; case 6: set '@cards[6],'@cards[6]-1; set '@delcard['@count],'@cardID[6]; break; case 7: set '@cards[7],'@cards[7]-1; set '@delcard['@count],'@cardID[7]; break; case 8: set '@cards[8],'@cards[8]-1; set '@delcard['@count],'@cardID[8]; break; case 9: set '@cards[9],'@cards[9]-1; set '@delcard['@count],'@cardID[9]; break; case 10: set '@cards[10],'@cards[10]-1; set '@delcard['@count],'@cardID[10]; break; case 11: set '@count,'@count-1; //選択やめたためカウントを1減らす goto L_SELECTEND; break; default: goto Lno; break; } mes "[カードちゃん]"; mes "あなたはカード^0000FF"+'@count+"枚を選択しました^000000。"; if ('@count < '@netcard) { mes "後" + ('@netcard - ('@count)) + "枚追加する必要があります。"; } else if ('@count >= '@netcardmax) { mes "現在、追加枚数が最大です。"; } else if ('@rank > '@rankup && '@count >= '@netcard) { mes '@rank$['@rank]+"ランク以上のランクアップは"; mes "発生しませんので、交換枚数を"; mes "これ以上増やす必要がありません。"; } else { mes "現在交換可能ですが、"; mes "後" + ('@netcardmax - '@count) + "枚追加する事が出来ます。"; } mes " "; //選択されたカードを表示 set '@count2,0; mes "<選択中カード>^C00000"; while('@count2 < '@count) { set '@count2,'@count2+1; mes getitemname('@delcard['@count2]); } mes "^000000<合計 ^0000FF"+'@count2+"枚^000000>"; next; }//ループ終了 L_SELECTEND: mes "[カードちゃん]"; mes "以上のカードを廃棄して"; mes "本当によろしいですか?"; next; switch(select("やっぱりやめる","もう一度確認","カード交換")) { case 1: goto Lno; break; case 2: set '@count2,0; mes "<選択中カード>^C00000"; while('@count2 < '@count) { set '@count2,'@count2+1; mes getitemname('@delcard['@count2]); } mes "^000000<合計 ^0000FF"+'@count2+"枚^000000>"; next; goto L_SELECTEND; break; case 3:break; } set '@maisu,'@count; //選択した枚数をセットアップ /* ---------------------------------------------------------------------------- ここから渡すカードのルーレットscriptです。 カードが5枚の場合のみ、同Lvからの引き当て。 1枚追加の度に1ランク上のカードを引く確率が10%増加。 MVPカードに関しては、それ以上がないので除外。 ----------------------------------------------------------------------------- */ //条件に応じてランクアップ(カードリスト更新) if ('@rank <= '@rankup && '@maisu > '@netcard) { //大当たり条件 //ランクアップ確率の算式 set '@change,'@c['@rank]*('@maisu - '@netcard); if (rand(100) < '@change) { //大当たりでしたら deletearray @id[1],@listcount; //カードリスト削除 callfunc "Card_Changer_List",'@rank+1; //カードリスト更新 //カードリストの最大カウントを更新、ループです set @listcount,0; while(@id[@listcount+1] > 0) { set @listcount,@listcount+1; } //更新ループ終了 set '@atari,1; //セリフフラグ; } //大当たり確定終了 } //大当たり条件終了 //選択したカードを削除 set '@count,0; while('@count < '@maisu) { //削除用ループ set '@count,'@count+1; delitem '@delcard['@count],1; } //削除用ループ終了 //カードが操作キャンセルによって //消滅してしまう問題を解消するため、 //取得カードのIDをキャラ永続変数にセットアップ //@listcount はカードリストを生成した時にのカウントでした set Card_Changer_ID,@id[rand(1,@listcount)]; deletearray @id[1],@listcount; //カードリスト削除 set @listcount,0; //大当たりではなかった場合、ハズレのチェックに入る if ('@atari == 0) { //ハズレチェック set '@count2,0; //ハズレチェックのループ while('@delcard['@count2+1] > 0) { set '@count2,'@count2+1; //取得カードが廃棄カードのどれと同じ物である場合、 //ハズレのフラグを入れて、ループから退出 if ('@delcard['@count2] == Card_Changer_ID) { set '@atari,2; break; } } //ループ終了 } //ハズレチェック終了 switch('@atari) { //セリフ分岐 case 0://通常終了 mes "[カードちゃん]"; mes "・・・・・・・・・・・・・・・"; next; mes "[" +strcharinfo(0)+ "]"; mes "・・・・・もしもし?"; next; mes "[カードちゃん]"; mes "発表します!"; next; mes "[カードちゃん]"; mes "あなたの今回のカード交換は・・・"; mes "(ダラララララララララララ・・・・)"; next; mes "[" +strcharinfo(0)+ "]"; mes "(どきどき)"; next; mes "[カードちゃん]"; mes "(ダンッ)"; mes "あなたの今回は・・・"; next; gmcommand "@misceffect 83"; mes "[カードちゃん]"; mes getitemname(Card_Changer_ID) +"です! "; mes "おめでとうございます!"; getitem Card_Changer_ID,1; set Card_Changer_ID,0; next; //ランクアップ不可能だった場合には不要なので隔離 if ('@rank < '@rankup) { mes "[カードちゃん]"; mes "普通当たりですね。"; next; mes "[" +strcharinfo(0)+ "]"; mes "そうですか。"; next; mes "[カードちゃん]"; mes "カードを追加すればする程"; mes "Lvの高いカードが出る確率が"; mes "高くなりますよ。"; next; } mes "[カードちゃん]"; mes "また不要なカードがありましたら"; mes "お声を掛けて下さい。"; mes "ありがとうございました。"; close; break; case 1://大当たり mes "[カードちゃん]"; mes "・・・・・・・・・・・・・・・"; next; mes "[" +strcharinfo(0)+ "]"; mes "・・・・・もしもし?"; next; mes "[カードちゃん]"; mes "発表します!"; next; mes "[カードちゃん]"; mes "あなたの今回のカード交換は・・・"; mes "(ダラララララララララララ・・・・)"; next; mes "[" +strcharinfo(0)+ "]"; mes "(どきどき)"; next; mes "[カードちゃん]"; mes "(ダンッ)"; mes "あなたの今回は・・・"; next; if('@rank == 5){ //最初のランクがA、つまりMVP-cardを当てた時 gmcommand "@misceffect 68"; mes "[カードちゃん]"; mes "大当たり〜!!"; mes "何と"+ getitemname(Card_Changer_ID) +"です! "; mes "おめでとうございます!"; getitem Card_Changer_ID,1; set Card_Changer_ID,0; next; mes "[" +strcharinfo(0)+ "]"; mes "やったー!!"; next; } else { //そうではない場合 gmcommand "@misceffect 371"; gmcommand "@misceffect 568"; mes "[カードちゃん]"; mes "大当たり〜!!"; mes getitemname(Card_Changer_ID) +"です! "; mes "おめでとうございます!"; getitem Card_Changer_ID,1; set Card_Changer_ID,0; next; mes "[" +strcharinfo(0)+ "]"; mes "ありがとー!"; next; } mes "[カードちゃん]"; mes "大当たり、おめでとうございます!"; mes strcharinfo(0) + "さんが渡されたカードよりも"; mes "もう1ランク上のカードです!"; mes "これでちょっと得した気分に。"; mes "でも、実際に今のカードが"; mes "使えるかは人それぞれ"; mes "なんですけど・・・(ボソ"; next; gmcommand "@emotion 4"; mes "[" +strcharinfo(0)+ "]"; mes "・・・・・"; next; mes "[カードちゃん]"; mes "カードの交換はまだまだ"; mes "受け付けておりますよ?"; mes "交換したいカードが出来ましたら"; mes "どしどし声を掛けて下さいね。"; mes "次も喜んで交換させて頂きます!"; close; break; case 2: //ハズレ //渡したカードと同じ物が当たった時 mes "[カードちゃん]"; mes "・・・・・・・・・・・・・・・"; next; mes "[" +strcharinfo(0)+ "]"; mes "・・・・・もしもし?"; next; mes "[カードちゃん]"; mes "発表します!"; next; mes "[カードちゃん]"; mes "あなたの今回のカード交換は・・・"; mes "(ダラララララララララララ・・・・)"; next; mes "[" +strcharinfo(0)+ "]"; mes "(どきどき)"; next; mes "[カードちゃん]"; mes "(ダンッ)"; mes "あなたの今回は・・・"; next; gmcommand "@misceffect 183"; mes "[カードちゃん]"; mes getitemname(Card_Changer_ID) +"です! "; mes "おめでとうござ・・・あれ?"; getitem Card_Changer_ID,1; set Card_Changer_ID,0; next; gmcommand "@emotion 9"; mes "[" +strcharinfo(0)+ "]"; mes "・・・・・"; next; gmcommand "@emotion 19"; mes "[" +strcharinfo(0)+ "]"; mes "こ、これって・・・"; mes "さっき渡したカードですよね・・・?"; next; emotion 20; mes "[カードちゃん]"; mes "えーと・・・"; mes "ま、まぁ・・・"; mes "そんな事もあるって事で!"; next; gmcommand "@emotion 23"; emotion 23; mes "[カードちゃん]"; mes "残念賞!"; next; gmcommand "@emotion 28"; mes "[" +strcharinfo(0)+ "]"; mes "ひ、酷い・・・"; close; break; } } //================================================== function script Card_Changer_List { switch(getarg(0)) { case 1: //id1(E_rank)57枚 Lv1~19 setarray @id[1],4001,4002,4003,4004,4005,4006,4007,4008,4009,4010,4011,4012,4013,4014,4015,4016,4017,4018,4019; setarray @id[20],4020,4021,4022,4023,4024,4025,4026,4027,4028,4029,4030,4031,4032,4033,4034,4035,4036,4037,4038,4039; setarray @id[40],4040,4041,4042,4043,4044,4045,4046,4048,4049,4050,4051,4083,4196,4211,4243,4247,4273,4306; break; case 2: //id2(D_rank)86枚 Lv20~39 setarray @id[1],4052,4053,4055,4056,4057,4058,4059,4060,4061,4062,4063,4064,4066,4067,4068,4069,4070,4071,4072; setarray @id[20],4073,4074,4075,4076,4077,4078,4079,4080,4081,4082,4084,4085,4086,4087,4088,4089,4090,4091,4092,4093; setarray @id[40],4094,4095,4096,4097,4098,4100,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4153,4154,4156,4157; setarray @id[60],4186,4192,4193,4195,4206,4208,4212,4216,4233,4235,4255,4257,4260,4281,4286,4292,4293,4297,4303,4307; setarray @id[80],4308,4334,4337,4341,4343,4344,4375; break; case 3: //id3(C_rank)103枚 Lv40~59 setarray @id[1],4111,4112,4113,4114,4115,4116,4117,4118,4119,4120,4122,4125,4126,4127,4129,4130,4133,4139,4141; setarray @id[20],4149,4159,4160,4161,4167,4170,4171,4172,4173,4175,4177,4180,4181,4185,4187,4188,4190,4199,4200,4205; setarray @id[40],4213,4215,4217,4219,4222,4224,4225,4227,4231,4232,4239,4240,4244,4252,4256,4259,4261,4262,4264,4265; setarray @id[60],4267,4268,4270,4271,4272,4275,4278,4280,4283,4285,4287,4288,4294,4295,4296,4301,4304,4309,4310,4313; setarray @id[80],4314,4315,4321,4322,4326,4327,4328,4333,4335,4338,4339,4345,4346,4349,4353,4355,4356,4373,4377,4382; setarray @id[100],4383,4385,4389,4390; break; case 4: //id4(B_rank)83枚 Lv60~79 setarray @id[1],4065,4099,4124,4136,4140,4150,4151,4152,4158,4162,4164,4165,4166,4169,4176,4178,4182,4184,4189; setarray @id[20],4191,4194,4201,4202,4203,4204,4209,4210,4214,4220,4221,4223,4226,4228,4229,4230,4234,4237,4238,4242; setarray @id[40],4245,4246,4248,4249,4251,4253,4258,4269,4274,4279,4282,4289,4298,4299,4300,4311,4312,4316,4319,4323; setarray @id[60],4329,4331,4332,4336,4340,4347,4348,4350,4351,4369,4370,4371,4379,4380,4381,4387,4388,4391,4394,4400; setarray @id[80],4401,4402,4404,4405; break; case 5: //id5(A_rank)38枚 Lv80~99 or ボス属性 setarray @id[1],4047,4054,4155,4163,4174,4179,4183,4197,4198,4207,4218,4241,4250,4254,4266,4277,4284,4290,4291; setarray @id[20],4317,4320,4325,4354,4358,4360,4362,4364,4366,4368,4378,4384,4392,4393,4395,4396,4397,4398,4406; break; case 6: //id6(S_rank)40枚 ボスc setarray @id[1],4121,4123,4128,4131,4132,4134,4135,4137,4138,4142,4143,4144,4145,4146,4147,4148,4168,4236,4263; setarray @id[20],4276,4302,4305,4318,4324,4330,4342,4352,4357,4359,4361,4363,4365,4367,4372,4374,4376,4386,4399,4403; setarray @id[40],4407; break; } return; } //----------------------------------------------------------------------------- //duplicate prontera.gat,229,83,6 duplicate(Card_Changer) カードちゃん#1 719 pay_arche.gat,100,132,3 duplicate(Card_Changer) カードちゃん#2 719 moc_ruins.gat,148,159,3 duplicate(Card_Changer) カードちゃん#3 719