//--------------------------------------------------------------------------------------- poring_w01.gat,89,112,3 script PKポイントショップ 739,{ function Pkp_Select_Func; //関数の読込 //--------------------------------------------------------------------------------------- //鯖起動時初回のみ読込 if ('pk_npc_once == 0){ //☆↓各自設定しる //キャラクター入手限界Zeny //初期設定990M set 'pc_max_zeny,9900000000; //景品 - 初期設定 //必要P アイテム BaseExp JobEXP Zeny //10P ⇒[青箱 3個] [100k] [90k] [50k] //20P ⇒[紫箱 2個] [300k] [270k] [100k] //30P ⇒[カード帳 2個] [500k] [450k] [150k] //50P ⇒[イグドラシルの実 10個] [1M] [900k] [250k] //100P ⇒[カーネーションの花束 1個] [3M] [2.7M] [500k] //500P ⇒[ブリーシンガメン 1個] [5M] [4.5M] [2.5M] //1000P ⇒[スレイプニール 1個] [10M] [9M] [5M] setarray 'pkp_item_id[0],7539,0,0,0,0,0,0,0,0,0; //アイテムID setarray 'pkp_item_id[10],0,0,0,0,0,0,0,0,0,0; //アイテムID setarray 'pkp_item_id[20],0,0,0,0,0,0,0,0,0,0; //アイテムID setarray 'pkp_item_num[0],1,1,1,1,1,1,1,1,1,1; //アイテムの数 setarray 'pkp_item_num[10],0,0,0,0,0,0,0,0,0,0; //アイテムの数 setarray 'pkp_item_num[20],0,0,0,0,0,0,0,0,0,0; //アイテムの数 // setarray 'pkp_exp_base[0],100000,300000,500000,1000000,3000000,5000000,10000000,0,0,0; //取得BASE経験値 setarray 'pkp_exp_base[10],0,0,0,0,0,0,0,0,0,0; //取得BASE経験値 setarray 'pkp_exp_base[20],0,0,0,0,0,0,0,0,0,0; //取得BASE経験値 // setarray 'pkp_exp_job[0],90000,270000,450000,900000,2700000,4500000,9000000,0,0,0; //取得JOB経験値 setarray 'pkp_exp_job[10],0,0,0,0,0,0,0,0,0,0; //取得JOB経験値 setarray 'pkp_exp_job[20],0,0,0,0,0,0,0,0,0,0; //取得JOB経験値 // setarray 'pkp_zeny[0],50000,100000,150000,250000,5000000,2500000,5000000,0,0,0; //取得Zeny setarray 'pkp_zeny[10],0,0,0,0,0,0,0,0,0,0; //取得Zeny setarray 'pkp_zeny[20],0,0,0,0,0,0,0,0,0,0; //取得Zeny setarray 'use_pk_point[0],10,0,0,0,0,0,0,0,0,0; //必要PKポイント setarray 'use_pk_point[10],0,0,0,0,0,0,0,0,0,0; //必要PKポイント setarray 'use_pk_point[20],0,0,0,0,0,0,0,0,0,0; //必要PKポイント //☆↓は弄らないでOK //景品の種類数 while(('pkp_item_id['pk_item_kind] >0) || ('pkp_exp_base['pk_item_kind] >0) || ('pkp_exp_job['pk_item_kind] >0) || ('pkp_zeny['pk_item_kind] >0)){ set 'pk_item_kind,'pk_item_kind +1; } //最低必要ポイントを検索 set 'pk_min_point , 'use_pk_point[0]; for(set @i,1; @i < 'pk_item_kind ;set @i,@i + 1){ if ('use_pk_point[@i] < 'pk_min_point) set 'pk_min_point,'use_pk_point[@i]; } //最大ページ set 'pk_max_page, 'pk_item_kind /10 - (('pk_item_kind > 9) && (('pk_item_kind %10) == 0)); set 'pk_npc_once,1; //次から読込しないように。 } //--------------------------------------------------------------------------------------- mes "[Killer]"; mes "私はPKを好む。"; mes "もしお前がPKを好むのであれば"; mes "その功績に応じて報酬をやろう。"; mes "お前はPKを好むか?"; next; if (select("はい","いいえ") ==2){ mes "[Killer]"; mes "失せろチキンめっ!!"; close; // close2; // warp "SavePoint",0,0; //ログアウトされたら意味なさそう・・・ // end; } //最低必要ポイントすら無い場合は終了。 if( PC_PK_POINT < 'pk_min_point ){ mes "[Killer]"; mes "はっはっは!"; mes 'pk_min_point + "Pもないやつが何を言ってんだ!"; close; } mes "[Killer]"; mes "お前のPKポイント(" + PC_PK_POINT + "P)と"; mes "交換で褒美をやろう。"; mes "何と交換したい?"; mes "嘘は身の為にならんからな。"; next; //ここらに選択肢を入れて //アイテム、経験値と褒美を分けるのもいいかも。 //--------------------------------------------------------------------------------------- set @pkp_now_page,0; //初期ページ設定 //褒美選択肢 do { do { set @pkp_choose,(select( ((@pkp_now_page > 0)? "前へ":""), Pkp_Select_Func(@pkp_now_page *10 + 0),Pkp_Select_Func(@pkp_now_page *10 + 1), Pkp_Select_Func(@pkp_now_page *10 + 2),Pkp_Select_Func(@pkp_now_page *10 + 3), Pkp_Select_Func(@pkp_now_page *10 + 4),Pkp_Select_Func(@pkp_now_page *10 + 5), Pkp_Select_Func(@pkp_now_page *10 + 6),Pkp_Select_Func(@pkp_now_page *10 + 7), Pkp_Select_Func(@pkp_now_page *10 + 8),Pkp_Select_Func(@pkp_now_page *10 + 9), (@pkp_now_page < 'pk_max_page)? "次へ" : "")); //『前へ』を選択の場合 if (@pkp_choose == 1){ set @pkp_now_page,@pkp_now_page -1; } //『次へ』 else if (@pkp_choose == 12){ set @pkp_now_page,@pkp_now_page +1; } } while((@pkp_choose ==1) || (@pkp_choose ==12)); set @pkp_select_item,@pkp_now_page *10 + @pkp_choose -2; //交換番号 //ここで交換するか再度確認。 mes "[Killer]"; if('pkp_item_id[@pkp_select_item] >0) mes getitemname('pkp_item_id[@pkp_select_item]) + "を" + 'pkp_item_num[@pkp_select_item] + "個、"; if('pkp_exp_base[@pkp_select_item] >0) mes "BaseExp " + 'pkp_exp_base[@pkp_select_item] + "、"; if('pkp_exp_job[@pkp_select_item] >0) mes "JobExp " + 'pkp_exp_job[@pkp_select_item] + "、"; if('pkp_zeny[@pkp_select_item] >0) mes 'pkp_zeny[@pkp_select_item] + "Zeny、"; mes "は" + 'use_pk_point[@pkp_select_item] + "P必要だがどうする?"; next; if(select("はい","いいえ") ==2){ mes "[Killer]"; mes "何と交換したい?"; next; } } while(@menu ==2); //--------------------------------------------------------------------------------------- //交換処理 //PKポイントチェック if (PC_PK_POINT < 'use_pk_point[@pkp_select_item]){ mes "[Killer]"; mes "私を騙せると思ったか!"; percentheal -100,0; close; } //重量チェック if ((checkweight('pkp_item_id[@pkp_select_item] , 'pkp_item_num[@pkp_select_item])) ==0){ mes "[Killer]"; mes "おいおい・・・"; mes "荷物が持てない様だぞ、"; mes "出直して来い。"; close; } //所持金チェック // if ((Zeny + 'pkp_zeny[@pkp_select_item]) > 'pc_max_zeny){ // mes "[Killer]"; // mes "おいおい・・・"; // mes "所持金が多すぎるようだぞ、"; // mes "出直して来い。"; // close; // } //受け渡し set PC_PK_POINT,PC_PK_POINT - 'use_pk_point[@pkp_select_item]; //ポイント支払い //アイテムげとー if('pkp_item_id[@pkp_select_item] >0) getitem 'pkp_item_id[@pkp_select_item],'pkp_item_num[@pkp_select_item]; //BaseExpげとー if('pkp_exp_base[@pkp_select_item] >0) set BaseExp,BaseExp + 'pkp_exp_base[@pkp_select_item]; //JobExpげとー if('pkp_exp_job[@pkp_select_item] >0) set JobExp,JobExp + 'pkp_exp_job[@pkp_select_item]; //Zenyげとー if('pkp_zeny[@pkp_select_item] >0) set Zeny,Zeny + 'pkp_zeny[@pkp_select_item]; mes "[Killer]"; mes "ほらよ、またポイントを貯めたら来な。"; close; //--------------------------------------------------------------------------------------- //関数 //長いので改行してますが、やってることは単純です。 //例えば景品が7種類しかなかったら、 //8種類目以上は項目に出ないようになってるだけです。 //11種類以上なら10種類ずつ景品を表示。 function Pkp_Select_Func { if((('pkp_item_id[getarg(0)] >0) + ('pkp_exp_base[getarg(0)] >0) + ('pkp_exp_job[getarg(0)] >0) + ('pkp_zeny[getarg(0)] >0)) ==1){ //アイテム if('pkp_item_id[getarg(0)] >0) return (('pkp_item_id[getarg(0)] >0)? ('use_pk_point[getarg(0)] + "P→" + getitemname('pkp_item_id[getarg(0)]) + " " +'pkp_item_num[getarg(0)]+ "個") : ""); //BaseExp else if('pkp_exp_base[getarg(0)] >0) return (('pkp_exp_base[getarg(0)] >0)? ('use_pk_point[getarg(0)] + "P→" + "BaseExp " + 'pkp_exp_base[getarg(0)]) : ""); //JobExp else if('pkp_exp_job[getarg(0)] >0) return (('pkp_exp_job[getarg(0)] >0)? ('use_pk_point[getarg(0)] + "P→" + "JobExp " + 'pkp_exp_job[getarg(0)]) : ""); //Zeny else if('pkp_zeny[getarg(0)] >0) return (('pkp_item_id[getarg(0)] >0)? ('use_pk_point[getarg(0)] + "P→" + 'pkp_zeny[getarg(0)] + "Zeny") : ""); } //複数(アイテム、経験値、Zeny) else return (((('pkp_item_id[getarg(0)] >0) + ('pkp_exp_base[getarg(0)] >0) + ('pkp_exp_job[getarg(0)] >0) + ('pkp_zeny[getarg(0)] >0)) >1)? ('use_pk_point[getarg(0)] + "P→" + "複数と交換") : ""); } //--------------------------------------------------------------------------------------- } //---------------------------------------------------------------------------------------