BlindJusticeええ感じ改造 | 一覧 | 検索 | 更新履歴(RSS) | 編集(管理者用) | 差分

図鑑未登録アイテム変色(倉庫)

編集(管理者用)

そのアイテムは図鑑に登録されているのかいないのか。

一目で分かるようにアイテムの文字色を変える改造です。

参考にする場合は利用規約に一度目を通してください。

改造法

編集(管理者用)

depot.cgiの445行目から

#=================================================
# <input type="radio" 付の預かり所の物
#=================================================
sub radio_my_depot {

##---------------------ここに壱を書く----------------------##

	my $count = 0;
	my $sub_mes = qq|<form method="$method" action="$script"><input type="radio" name="cmd" value="0" checked>やめる <br>|;
	open my $fh, "< $this_file" or &error("$this_file が読み込めません");
	while (my $line = <$fh>) {
		++$count;
		my($kind, $item_no, $item_c, $item_lv) = split /<>/, $line;
		$sub_mes .= qq|<input type="radio" name="cmd" value="$count">|;

##---------------------ここに弍を書く-----------------------##

		$sub_mes .= $kind eq '1' ? qq|[$weas[$item_no][2]]$weas[$item_no][1]★$item_lv($item_c/$weas[$item_no][4])<br>|
				  : $kind eq '2' ? qq|[卵]$eggs[$item_no][1]($item_c/$eggs[$item_no][2])<br>|
				  :			       qq|[ぺ]$pets[$item_no][1]<br>|
				  ;

##---------------------ここに参を書く-----------------------##

	}
	close $fh;
	
	$m{is_full} = $count >= $max_depot ? 1 : 0;
	
	return $count, $sub_mes;
}
# 壱
	# コレクションdata読出し
	my @lines_c = ("undef"); # collectionの"c"
	open my $fh, "< $userdir/$id/collection.cgi" or &error("コレクションファイルが開けません");
	while (my $line_c = <$fh>) {
		$line_c =~ tr/\x0D\x0A//d; # \n改行削除
		push @lines_c, "$line_c\n";
	}
	close $fh;
# 弍
		$sub_mes .= '<font color="#AAAAAA">' if ($lines_c[$kind] !~ /,$item_no,/); # 色付け
# 参
		$sub_mes .= '</font>' if ($lines_c[$kind] !~ /,$item_no,/); # 色付け

補足

# 壱
my @lines_c = ("undef"); # collectionの"c"

の "undef"を入れる理由。

$kindを配列番号(データファイルでいうと行番号)に対応させるため、配列の0番目を消費させている。

ファイルを@lines_cに読み出しを終えると@lines_cの中身は

@lines_c = ("undef","図鑑武器番号たち","図鑑タマゴ番号たち","図鑑ペット番号たち");

となり、$kind eq '1'のときは$lines_c[$kind]で図鑑武器番号を読み出す仕組みになっている。

では$lines_c[0] = undefがないとどうなるか。

push作業で@lines_cを形成しているので、

@lines_c = ("図鑑武器番号たち","図鑑タマゴ番号たち","図鑑ペット番号たち");

となり、$kind eq '1'のときは$lines_c[$kind]で図鑑タマゴ番号を読み出してしまい、

実際には登録されている武器を変色してしまうことになりかねない。

別に、

my @lines_c = ("ああああ"); # collectionの"c"

とかでも良いのですが、配列番号を消費したいときはundefを使うのが常識のようです。