//ジャックポット http://test-ro.net84.net/ //説明をコメントアウトで書いてますので、適当に消してください。 //設定NPC new_1-2.gat,90,111,5 script 妖精さん 72,{ if(getgmlevel() == 0) { //何かいいメッセージを考えてやってください。 mes "妖精さんですよー"; } else { while (1){ mes "蓄積金:^ff0000"+ $Jackpot_Zeny +"^000000 Zeny"; mes "確 率:1/^ff0000" + $Jackpot_Par; mes "^000000還元率:1/^ff0000" + $Jackpot_Return; mes "^000000 "; mes "どうする?"; next; switch(select("蓄積金の変更","確率の変更","還元率の変更","終了")) { case 1: mes "蓄積金:^ff0000"+ $Jackpot_Zeny +"^000000 Zeny"; mes " "; mes "いくらにする?"; mes "マイナスはキャンセルだよ。"; next; input '@input_num; if ('@input_num >= 0){ mes "還元率:1/^ff0000" + '@input_num; mes "^000000 "; mes "これでいいかな?"; next; if(select("はい","いいえ") == 1){ set $Jackpot_Zeny,'@input_num; mes "変更したよ♪"; next; break; } } mes "キャンセルしたよ。"; next; break; case 2: mes "確 率:1/^ff0000" + $Jackpot_Par; mes "^000000 "; mes "いくつにする?"; mes "マイナスはキャンセルだよ。"; mes "ゼロは還元しない設定だよ。"; mes "1/○ ←○の部分を決めてね。"; next; input '@input_num; if ('@input_num >= 0){ mes "確 率:1/^ff0000" + $Jackpot_Par; mes "^000000 "; mes "これでいいかな?"; next; if(select("はい","いいえ") == 1){ set $Jackpot_Par,'@input_num; mes "変更したよ♪"; next; break; } } mes "キャンセルしたよ。"; next; break; case 3: mes "還元率:1/^ff0000" + $Jackpot_Return; mes "^000000 "; mes "いくつにする?"; mes "ゼロ以下はキャンセルだよ。"; mes "1/○ ←○の部分を決めてね。"; next; input '@input_num; if ('@input_num > 0){ mes "還元率:1/^ff0000" + '@input_num; mes "^000000 "; mes "これでいいかな?"; next; if(select("はい","いいえ") == 1){ set $Jackpot_Return,'@input_num; mes "変更したよ♪"; next; break; } } mes "キャンセルしたよ。"; next; break; case 4: mes "終了するね。"; close2; } } } close2; } //ジャックポット ファンクション callfunc "Zeny_Jackpot",; //他のスクリプトで // set zeny,zeny - '@hoge; を callfunc "Zeny_Jackpot",'@hoge; // set zeny,zeny - 100000; を callfunc "Zeny_Jackpot",100000; //とかすると、蓄積・放出します。 function script Zeny_Jackpot { //初期設定はここです。 if($Jackpot_Return == 0){ set $Jackpot_Zeny,0; //初期蓄積Zeny set $Jackpot_Par,5; //放出確率(1/$Jackpot_Par) set $Jackpot_Return,1; //放出割合(蓄積Zenyの1/$Jackpot_Return) } set '@Zeny,getarg(0); set zeny,zeny - '@Zeny; set $Jackpot_Zeny,$Jackpot_Zeny + '@Zeny; //if($Jackpot_Par || getarg(0) > 1000){ とかすると1kz以下の支払いでは放出しなくなります。 if($Jackpot_Par){ if(rand($Jackpot_Par) == 0){ //set '@Zeny,getarg(0); とかすると蓄積とか関係なく使った代金が返却になります。 set '@Zeny,$Jackpot_Zeny / $Jackpot_Return; set zeny,zeny + '@Zeny; set $Jackpot_Zeny,$Jackpot_Zeny - '@Zeny; announce strcharinfo(0) + "さんがジャックポットを引きました!",0x00,0xffccff; dispbottom "ジャックポット "+ '@Zeny +" Zeny獲得"; } } return; }