サブルーチン

SOS2のトップページを表示するためのサブルーチン。

ソースコードの解説

sub saga {
	&opensosdat;
	&list_order;

sub opensosdatsub list_order をそれぞれ実行する。

	print qq|<tr><td valign=top width=50%><div align=center><img src=$imgdir$ttlimg></div><br>\n|;
	print qq|この物語は$hernam$heroと$ricnam$rich、\n|;
	print qq|その他多くの勇者、商人達の幾千年にもわたる壮大な歴史の叙事詩である。<br>\n|;

イントロダクションのHTML出力部分。
$hero と $rich は sub find_best 実行時にプレイヤーの中から決定される。
なお、このサブルーチンは sub list_order 内で実行されている。

	# 英雄、大富豪の紹介
	if ($hero || $rich) {
		print qq|<table border=0 cellspacing=0 cellpadding=5 align=center>\n|;
		print qq|<tr><td align=center>\n|;
		print qq|<img src=$imgdir$himg width=$ig_wd height=$ig_ht><br>\n| if $himg;
		print qq|$hernam$hero| if $hero;
		print qq|</td>\n<td align=center>\n|;
		print qq|<img src=$imgdir$rimg width=$ig_wd height=$ig_ht><br>\n| if $rimg;
		print qq|$ricnam$rich| if $rich;
		print qq|</td></tr></table>\n|;
	}

$hero または $rich のどちらかに該当者があった場合、このブロックを実行する。
キャラクターの名前、画像を紹介する部分。
なお、sub find_best ではスコアも取得しているが、ここでの表示はしていない。

  • print qq|$hernam$hero| if $hero;
  • if ($hero) { print qq|$hernam$hero| }

上記2つの式は全く同じ意味として解釈される。

	# 吟遊詩人の詩
	if ($poem) { print qq|<br>$poem<div align=right>$poenam:$poet</div>\n| }

$poem が真であればHTMLとして出力する。

	# 探検日誌
	if ($note) { print qq|<br>$note<div align=right>$avenam$avenの日誌より</div>\n| }

$note が真であればHTMLとして出力する。

上記2つの変数は sub opensosdat 実行時に代入される。

	print qq|</td>\n|;
	$info =~ s/(https?|ftp|gopher|telnet|whois|news)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]*)/<a href=\"$1\:$2\" target=\"_blank\">CLICK<\/a>/ig;
	print qq|<td valign=top><b>$intl</b><br><br>\n$info<br><br>\n|;

$info の真、偽にかかわらず、これをHTMLとして出力する。
また $info にURIが含まれていた場合、アンカータグを作成し「CLICK」というハイパーリンクに置き換える。

	$totalplayer = @odrlines;

$totalplayer に @odrlines の総数を代入する。
@odrlines は sub list_order 実行時に取得する配列。

	if (!$totalplayer) { $totalplayer = 0 } if (!$playernow) { $playernow = 0 }
	print qq|<div align=right><b>プレイヤー総数:$totalplayer<br>\n|;
	print qq|現在のプレイ人数:$playernow</b></div></td></tr>\n|;
}

$totalplayer、$playernow のそれぞれが偽なら 0 を代入する。
それらの結果をプレイヤー総数、現在のプレイ人数としてHTMLに出力し、サブルーチン終了。

関連項目

コメント

コメントはありません。 Comments/リファレンスマニュアル/サブルーチン/saga?

お名前:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-30 (火) 00:57:40 (48d)