あろはわーくす Tips

戦国掲示板ではときおりランダムでNPC大名のレスが発生しますが、 その発言にその大名のアイコンが表示されます。

これと同じように、ユーザの発言にもキャラクターアイコンを表示できるようにするには、 以下のように変更します。

lib/gameprg.pl変更前

sub ProceedUser
{
	# 引数の取得
	my $uname = $_[0];
	# 返値の初期化
	my $ret = '<div><span class="sm">お知らせ:<br>';
	# 変数の初期化
	my @newdat = ('') x 15;
	my @clsbar = (0,9,24,44,69,99);

	my @chrdat = ();
	if($uname =~ /^NPC\t/){
		# IDの取得
		my @npc = split("\t", $uname);
		# NPC武将の場合
		@chrdat = &ReadRecord('dat/chr.cgi', '0', $npc[1]);
	}else{
		# ユーザ武将の場合
		# ユーザデータの取得
		my @usrdat = &ReadRecord('dat/users.cgi', '1', $uname);
		# 未登録ユーザは除外
		if($#usrdat < 0){ return ''; }
		# 武将データの取得
		@chrdat = &ReadRecord('dat/chr.cgi', '0', $usrdat[3]);
	}
	# 更新データに元の武将データをコピー
	@newdat = @chrdat;

	・・・(略)・・・

	# 身分別分岐
	if($chrdat[2] == 6){
		# 大名
		# 戦力増強
		@newdat = &IncreaseForce(\@newdat);
		# 武将レコード更新
		&RenewRecord('dat/chr.cgi', '0', $newdat[0], '', \@newdat);
		# 実力加算・出世チェックはスキップ
		return '';
	}elsif($chrdat[2] > 3){
		# 部将〜重臣
		# 戦力増強
		@newdat = &IncreaseForce(\@newdat);
	}

lib/gameprg.pl変更後

sub ProceedUser
{
	# 引数の取得
	my $uname = $_[0];
	# 返値の初期化
	my $ret = '';
	# 変数の初期化
	my @newdat = ('') x 15;
	my @clsbar = (0,9,24,44,69,99);

	my @chrdat = ();
	my $icon = '';
	if($uname =~ /^NPC\t/){
		# IDの取得
		my @npc = split("\t", $uname);
		# NPC武将の場合
		@chrdat = &ReadRecord('dat/chr.cgi', '0', $npc[1]);
	}else{
		# ユーザ武将の場合
		# ユーザデータの取得
		my @usrdat = &ReadRecord('dat/users.cgi', '1', $uname);
		# 未登録ユーザは除外
		if($#usrdat < 0){ return '##MESSAGE##'; }
		# 武将データの取得
		@chrdat = &ReadRecord('dat/chr.cgi', '0', $usrdat[3]);
		# アイコン
		my $icon = ($chrdat[6] =~ /^http:\/\//)?$chrdat[6]:
			sprintf("images\/prt_%02d\.gif", $chrdat[6]);
		$ret .= '<img src="' . $icon .
			'" style="float:left;">##MESSAGE##' . 
			'<div style="clear:both;" >';
	}
	# 更新データに元の武将データをコピー
	@newdat = @chrdat;

	・・・(略)・・・
	# 身分別分岐
	if($chrdat[2] == 6){
		# 大名
		# 戦力増強
		@newdat = &IncreaseForce(\@newdat);
		# 武将レコード更新
		&RenewRecord('dat/chr.cgi', '0', $newdat[0], '', \@newdat);
		# 実力加算・出世チェックはスキップ
		return $ret;
	}elsif($chrdat[2] > 3){
		# 部将〜重臣
		# 戦力増強
		@newdat = &IncreaseForce(\@newdat);
	}

	$ret .= '<span class="sm">お知らせ:<br>';

index.cgi変更前

	# ログ書き込み
	if( $inpt{'repto'} ne '' ){
		# 返信の場合
		@logdat = ($inpt{'repto'},'','0',$inpt{'un'},time(),
			$inpt{'em'},$inpt{'hp'},
			&EditContent($inpt{'title'}),$inpt{'clr'},
			&EditContent($inpt{'cont'}) . $usrmsg);
		# NPC武将レスチェック
		$npctalk = (int(rand(10)) + 1 == 7);
	}else{
		# 新規レスの場合
		@logdat = ('','0','0',$inpt{'un'},time(),$inpt{'em'},
			$inpt{'hp'},&EditContent($inpt{'title'}),
			$inpt{'clr'},
			&EditContent($inpt{'cont'}) . $usrmsg);
	}
	if( $inpt{'clr'} eq 'default' ){ $logdat[8] = ''; }
	&WriteLog(\@logdat);

index.cgi変更後

	# ログ書き込み
	$incnt = &EditContent($inpt{'cont'});
	($wrcnt = $usrmsg) =~ s/##MESSAGE##/$incnt/;
	if( $inpt{'repto'} ne '' ){
		# 返信の場合
		@logdat = ($inpt{'repto'},'','0',$inpt{'un'},
			time(),$inpt{'em'},$inpt{'hp'},
			&EditContent($inpt{'title'}),$inpt{'clr'},$wrcnt);
		# NPC武将レスチェック
		$npctalk = (int(rand(10)) + 1 == 7);
	}else{
		# 新規レスの場合
		@logdat = ('','0','0',$inpt{'un'},time(),
			$inpt{'em'},$inpt{'hp'},
			&EditContent($inpt{'title'}),$inpt{'clr'},$wrcnt);
	}
	if( $inpt{'clr'} eq 'default' ){ $logdat[8] = ''; }
	&WriteLog(\@logdat);

©Kats Sakuma, 2001-, All Rights Reserved. バナー