罪と罰++二律背反


*防具にレベルをつける [#te13d806]

-ページ: [[罪罰改造板2]]
-投稿者: [[小麦粉]]
-優先順位: 重要
-状態: 完了
-カテゴリー: エラーが出ます
-投稿日: 2007-02-03 (土) 17:35:57
-バージョン: 

**内容 [#jd5a562f]
何度も申し訳ございません。

防具にレベルを付けようと思い、武具レベルのを参考に色々といじってみたのですが、問題が発生しました。

まず、防具を買った後に「その他はどうしますか?」と出るが、選択するヤツが出てこないのでそのまま動けない。
それから、防具を持っているのにかかわらず、修理が出来ない。
(防具の修理なのに「武具を持っていない」と出る)

大きな問題はこの2つですが他にもあるかと思われます。
自分としては$tmの値が関係してるのではと思いますが仕組みがイマイチ分かりません。

下記がショップの一部です。$bg_lvは防具のレベルの変数です。

	}elsif($tm==32){#売-2
		if($cmd<=0){#消
			$log .= "その他はどうしますか?<br>\n";
		}else{
			foreach(11 .. $#df_data){
				if($cmd eq $_ && $gold >= $df_data[$_][2]){
					$log .= "$df_data[$_][2]Gを支払い、$df_data[$_][1] を購入しました。<br>\n";
					$gold -= $df_data[$_][2];
					$df_a = $_;
					$df_cnt = $df_data[$_][3];
				}elsif($cmd eq $_ && $gold<$df_data[$_][2]){
					$log .= "お金が足りません。<br>\n";
				}
			}
}
	}elsif($cmd==3){
	if($df_a>0 && $df_cnt<10){
	my $v = int($df_data[$df_a][2]*(1+$bg_lv*$bg_lv*1/10));
	$log .= qq|使い込まれた $df_data[$df_a][1] だな。これなら、$v\G で修理できるぞ<br>\n |;
	$log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
	$log2 .=qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
	$log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
	$log2 .=qq|<select name=cmd size=1>\n|;
	$log2 .=qq|<option value=0>やめる</option>\n|;
	$log2 .=qq|<option value=1>修理する</option>\n|;
	$log2 .=qq|</select><br>\n|;
	$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
	$tm=45;
	}elsif($df_a>0){
	$log .= qq|あんたの防具はまだまだ使えるぞ。使えなくなったら持って来てくれ。新品同様にしてやるよ|;
	$tm = $cmd = 0;
	&shop_menu;
	}else{
	$log .= qq|防具を装備していないな。<br>\n|;
	$tm = $cmd = 0;
	&shop_menu;
	}
	}elsif($tm==32){
	my $v = int($df_data[$df_a][2]*(1+$bg_lv*$bg_lv*1/10));
	if($cmd<=0){
    	  }elsif($gold<$v){
	$log .= qq|残念だが、お金が足りないぞ。<br>\n|;
	}elsif($cmd==1){
	$log .= qq|待たせたな。これでかなり手に馴染んだはずだ。|;
	$df_lv++;
	$df_cnt = $df_data[$df_a][3];
	$gold -= $v;
  }
  $tm = $cmd = 0;
  &shop_menu;

	}elsif($tm==45){#買-2
		if($cmd<=0){#消
			$log .= "他にどうしますか?<br>\n";
		}elsif($cmd==1){
			my $v = int(($df_data[$df_a][2]-$df_data[$df_a][2]/$df_cnt)/2);
			$log .= "$df_data[$df_a][1] を $v G で売却しました。<br>\n";
			$gold += $v;
			$df_a = $df_cnt = 0;
		}
		$tm = $cmd = 0;
		&shop_menu;

----
-見苦しい文章申し訳ございません。よろしくお願い致します。 -- [[小麦粉]] &new{2007-02-03 (土) 17:37:28};
-自己解決しました。ありがとうございました。 -- [[小麦粉]] &new{2007-02-03 (土) 22:46:23};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS