//========================================================================= // 濃縮エルニウム精錬NPC - by Cocoa // // 濃縮エルニウム(ID:7619)を使った精錬NPC // +3以下と+9は通常エルと変わらないので精錬不可能に。 // 成功率は多分本家通り(+4:90%、+5:60%、+6:60%、+7:30%、+8:30%) // 武器研究は乗らない仕様(乗せると+9が余裕でできてしまう) // 'flagを1にする事と3%の確立で精錬値が1つ下がります。 // 一部台詞にネタ入ってるんで嫌であれば好きな台詞に変えてください。 //========================================================================= oldpayon.gat,55,121,3 script 精錬師匠 85,{ mes "[精錬師匠]"; mes "俺は濃縮エルニウムを使って"; mes "防具を精錬する鍛冶屋だ。"; mes "君が装備しているアイテムの中で"; mes "好きなものを精錬してやる。"; mes "どの装備アイテムを"; mes "精錬したいんだ?"; next; set @part,select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); //装備していない if ( getequipisequiped(@part)==0 ) { mes "[精錬師匠]"; mes "何を精錬しろと言うんだ?"; mes "他のアイテムの事か?"; close; } //精錬不可能 if ( getequipisenableref(@part)==0 ) { mes "[精錬師匠]"; mes "このアイテムは精錬不可能だ。"; close; } //未鑑定 if ( getequipisidentify(@part)==0 ) { mes "[精錬師匠]"; mes "これは未鑑定だから精錬できない。"; close; } //安全圏 if ( getequiprefinerycnt(@part)<4 ) { mes "[精錬師匠]"; mes "安全圏なら弟子にやらせろ。"; close; } //精錬値+9 if ( getequiprefinerycnt(@part)>=9 ) { mes "[精錬師匠]"; mes "これ以上は濃縮エルニウムでは"; mes "精錬できないぞ。"; close; } //武器 if ( getequipweaponlv(@part) ) { mes "[精錬師匠]"; mes "武器なら弟子に任せてある。"; close; } mes "[精錬師匠]"; mes "君が選んだ装備を精錬するには"; mes "^ff9999濃縮エルニウム^000000と"; mes "手数料20000Zenyが必要だな。"; mes "続けるかい?"; next; if ( select("はい","いいえ")==2 ) goto L_CANCEL_3; if ( countitem(7619)<1 || Zeny<20000 ) goto L_CANCEL_2; mes "[精錬師匠]"; mes "カン! カン! カン!!"; delitem 7619,1; set Zeny,Zeny-20000; switch(getequiprefinerycnt(@part)){ case 0: //一応 case 1: case 2: case 3: set @successpercent,100; break; case 4: set @successpercent,90; break; case 5: case 6: set @successpercent,60; break; case 7: case 8: set @successpercent,30; break; case 9: //一応 set @successpercent,10; break; } if ( @successpercent <= rand(100) ) { failedrefitem @part; next; emotion 53; mes "[精錬師匠]"; mes "おっと…"; next; mes "[精錬師匠]"; mes "すまん!"; mes "精錬中に武具が壊れてしまったな…"; mes "アフリカではよくあることだ。"; close; } if('flag){ if ( rand(100)<3 ) { switch(@part){ case 1: gmcommand "@refine 256 -1"; break; case 2: gmcommand "@refine 16 -1"; break; case 3: gmcommand "@refine 32 -1"; break; case 4: gmcommand "@refine 2 -1"; break; case 5: gmcommand "@refine 4 -1"; break; case 6: gmcommand "@refine 64 -1"; break; case 7: gmcommand "@refine 8 -1"; break; case 8: gmcommand "@refine 128 -1"; break; case 9: gmcommand "@refine 512 -1"; break; case 10: gmcommand "@refine 1 -1"; break; } next; emotion 53; mes "[精錬師匠]"; mes "おっと…"; next; mes "[精錬師匠]"; mes "すまん!"; mes "手違いで精錬値が下がってしまった…"; close; } } successrefitem @part; next; emotion 52; mes "[精錬師匠]"; mes "さあ、出来上ったよ!"; mes "武具が強くなって君も嬉しいだろ?"; close; L_CANCEL_1: mes "[精錬師匠]"; mes "良い選択だな。"; mes "俺も無理して他人の武器を壊したら"; mes "気分が悪くなるからさ…"; close; L_CANCEL_2: mes "[精錬師匠]"; mes "それが君が持ってる全部かい?"; mes "残念だが、材料が足りないんじゃ"; mes "仕方がないな。"; mes "俺はただでやってやるほど"; mes "心が広くないからな。"; close; L_CANCEL_3: mes "[精錬師匠]"; mes "君が嫌なら仕方がないだろう…"; close; OnInit: //精錬値低下フラグ(0:下がらない 1:下がる) set 'flag,0; }