戦国掲示板ではときおりランダムで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);