prontera.gat,164,172,4 script 交換用GM 864,{ //============================================================================== // RagnarokOnline Item Exchanger Event Script Ver1.4 by 死神 // //このスクリプトはアイテム交換のNPC作りたいんだけど何度も何度も同じこと繰り返すのが //面倒って方に少しでも弄る場所が少なくなるようになるNPCを作ってみました。 //設定だけするとあとは勝手にやってくれるのでとても楽ですよ。 //一応一通りテストはしましたが不具合などあれば知らせて下さい // //まぁ自分がいろいろ追加していくのがだるかったのでとにかく変更箇所を少なくしようと思って作ってみました。 //まだまだ簡単に出来るぞ!って思う方は自分でカスタマイズしてみてください。 // //============================================================================== //======================設定====================== // [X]のXには何番目のアイテムかを入れてください(0から始めてください) // setarray $@itemchange[0][X][0],;//交換後のアイテム(setarrayですが一種類だけにしてください。個数は一個に固定です) // setarray $@itemchange[1][X][0],;//材料となるアイテム // setarray $@itemchange[2][X][0],;//材料となるアイテムの個数 // //例 setarray $@itemchange[0][0][0],2629;//メギンギョルド setarray $@itemchange[1][0][0],7058,7080,7081,7082,7084,7085,969,726,984,2627; setarray $@itemchange[2][0][0], 1, 4, 5, 4, 3, 3, 20, 10, 10, 1; //グレイプニール 1個、猫の足音 4個、女人のひげ 5個、石の根 4個、鳥の唾 3個、熊の筋 3個、 //黄金 20個、サファイア 10個、オリデオコン 10個、ベルト1個 setarray $@itemchange[0][1][0],2629;//メギンギョルド setarray $@itemchange[1][1][0],7058,7080,7081,7082,7084,7085,969,726,984,2627; setarray $@itemchange[2][1][0], 1, 4, 5, 4, 3, 3, 20, 10, 10, 1; //====================設定終了==================== mes"["+strnpcinfo(0)+"]"; mes"こんにちわ。"; mes"こちらではオリジナルアイテムの"; mes"交換を行なっております。"; mes"交換しますか?"; next; if(select("交換したいです","やめておきます") == 2){ mes"["+strnpcinfo(0)+"]"; mes"そうですか・・・"; mes"それではまたのご利用をお待ちしております。"; close; } mes"["+strnpcinfo(0)+"]"; mes"それでは次の中から欲しいものを選んでください"; for(set @i,0; $@itemchange[@i][0] != 0 ; set @i,@i+1) { setarray $@itemchangename$[@i],getitemname($@itemchange[@i][0]); } setarray $@itemchangename$[@i],"やめる"; next; if(arrayselect($@itemchangename$) == @i ){ mes"["+strnpcinfo(0)+"]"; mes"そうですか・・・"; mes"それではまたのご利用をお待ちしております。"; close; } set @num,@menu; mes"["+strnpcinfo(0)+"]"; mes getitemname($@itemchange[@num][0])+"ですね"; mes"それでは以下のものを持ってきて下さい"; next; mes"["+strnpcinfo(0)+"]"; mes"--材料--"; for(set @i,0; $@itemchange[1][@num][@i] != 0 ; set @i,@i+1) { if($@itemchange[1][@num][@i] == 0) break; mes getitemname($@itemchange[1][@num][@i]) + " x" + $@itemchange[2][@num][@i]; } next; mes"["+strnpcinfo(0)+"]"; mes"それでは交換しますか?"; next; if(select("交換したいです","やめておきます") == 2){ mes"["+strnpcinfo(0)+"]"; mes"そうですか・・・"; mes"それではまたのご利用をお待ちしております。"; close; } for(set @i,0; $@itemchange[1][@num][@i] != 0 ; set @i,@i+1) { if(countitem($@itemchange[1][@num][@i])<$@itemchange[2][@num][@i]){ mes"["+strnpcinfo(0)+"]"; mes"材料が足りませんよ"; mes"材料を集めてからまたご利用下さい。"; close; } } if!(checkweight($@itemchange[@num][0],1)){ mes"["+strnpcinfo(0)+"]"; mes"アイテムを持つことが出来ません"; mes"重量を減らしてからまたお越し下さい。"; close; } mes"["+strnpcinfo(0)+"]"; mes"これが品となります"; mes"ご利用ありがとうございました"; getitem $@itemchange[@num][0],1; for(set @i,0; $@itemchange[1][@num][@i] != 0 ; set @i,@i+1) { if($@itemchange[1][@num][@i] == 0) break; delitem $@itemchange[1][@num][@i],$@itemchange[2][@num][@i]; } close; }