▼スレッド
│
└◇545:Re[2]:質問 [akira] 05/04 14:05
> > 少し気になった箇所がありましたので質問です。スレッド一覧
> > カジノ景品交換のチェックをやっていたら
> > 所持数マックスを超えて景品をもらえるのですが
> > これは仕様なのでしょうか?
> > できれば所持数マックスを超えるようならば景品交換をできないようにしたいのですが。
>
> これは仕様です。
> どうせアイテム数が最大所持数を超えたとしてもメイン(であると思う)の探索が出来ないので問題ないと考えて・・・。
>
> 変更箇所の説明が難しいので、手抜きでそのあたりのソースをそのまま載せます。
> foreach(0..$#itemlist){
> my ($itemname,$itemstatus,$itemrate) = split(/<>/,$itemlist[$_]);
> print qq|<tr><td>|;
> &input('checkbox',"$_",'on','',"$itemname");
> print qq|</td><td>$itemrate</td></tr>\n|;
> if($Fm{"$_"}){
> if($coin>=$itemrate){
> if($bg ne ''){$bg .= ",$itemname△$itemstatus";}
> else{$bg = "$itemname△$itemstatus";}
> $coin -= $itemrate;
> if($get ne ''){$get .= "、$itemname";}
> else{$get = "$itemname";}
> push(@message,"「$itemname」を手に入れました<br>");
> }
> else{push(@message,"「$itemname」の交換には${itemrate}コインが必要です");}
> }
> }
> を、
> &splititem('i'); # 追加
> foreach(0..$#itemlist){
> my ($itemname,$itemstatus,$itemrate) = split(/<>/,$itemlist[$_]);
> print qq|<tr><td>|;
> &input('checkbox',"$_",'on','',"$itemname");
> print qq|</td><td>$itemrate</td></tr>\n|;
> if($Fm{"$_"}){
> if($coin>=$itemrate){
> if(@items < $xi){ # 追加
> push(@items, "$itemname△$itemstatus"); # 変更
> $coin -= $itemrate;
> if($get ne ''){$get .= "、$itemname";}
> else{$get = "$itemname";}
> push(@message,"「$itemname」を手に入れました<br>");
> }
> else{push(@message, "所持品が一杯のため「$itemname」が交換できません<br>");} # 追加
> }
> else{push(@message,"「$itemname」の交換には${itemrate}コインが必要です");}
> }
> }
> &joinitem('i') if($get ne ''); # ここかこの下にあるif($get ne '')内に追加
あ、そうですね、マックス超えても探索できないですもんね。 いや、そこに気づかなかったです…。
変更方法ありがとうございます。
こちらはゆっくりと改良に手をつけていこうと思います。
重ね重ねありがとうございます。