曜日ごとにイベント発生

時間取得を利用したシステムです。
まず/index.cgiに下記を導入。

$times = time(); 
($sec,$min,$hour,$mday,$month,$year,$wday,$stime) = localtime($times);   #日0 月1 火2 水3 木4 金5 土6
$year += 1900;
$mon++;

if($wday = 0){ $dayeve = $com='イベント内容'; }
	elsif($wday = 1){ $dayeve = $com='同じ'; }
elsif($wday = 2){ $dayeve = $com='同じ'; }
	elsif($wday = 3){ $dayeve = $com='同じ'; }
	elsif($wday = 4){ $dayeve = $com='同じ'; }
	elsif($wday = 5){ $dayeve = $com='同じ'; }
	else{ $dayeve = $com='同じ'; };

を $contents .= qq|</td></tr></table>|;のすぐ下くらいにでも入れてください。
イベント内容ってところには自分で考えたイベント内容を入れてください。

そして<a href="screen_shot.cgi">最近のスクリーンショット</a><br /><div>$line</div>のすぐ上にでも

<br>
今日は$dayeveです!
<br>

を入れてください。これでTOPにてイベント情報が記載されるようになりました。
曜日まで記載したい場合は$wdayが0なら日曜日みたいな感じのをif文ででも作るといいです。

次は曜日ごとに起きるイベントです。

たとえば経験値2倍なら・・

# 倒した処理 のすぐ上にでも

$times = time();
($sec,$min,$hour,$mday,$month,$year,$wday,$stime) = localtime($times);
$year += 1900;
$mon++;
$bonus = 1;$bonus = 2 if $wday == 0 or $wday == 1; # 1つの曜日だけだったらorをはぶく

を導入。

次に、

$com .= qq|<br /><span class="get">$mたちはそれぞれ $ms{$y}{get_exp} の$e2j{exp}と $ms{$y}{get_money} Gを手に入れた!</span>|;

for my $name (@partys) {
next if $ms{$name}{hp} <= 0;
if ($name eq $m) { # 倒した人
	$m{exp}   += $ms{$y}{get_exp};
	$m{money} += $ms{$y}{get_money};


$com .= qq|<br /><span class="get">$mたちはそれぞれ $ms{$y}{get_exp}*$bonus の$e2j{exp}と $ms{$y}{get_money} Gを手に入れた!</span>|;

for my $name (@partys) {
next if $ms{$name}{hp} <= 0;
if ($name eq $m) { # 倒した人
	$m{exp}   += $ms{$y}{get_exp}*$bonus;
	$m{money} += $ms{$y}{get_money};

に書き換え。

こんな感じで。
曜日を取得してその曜日だったら「こうなる」っていうのを導入すれば完成です。
お疲れ様でした。
最終更新:2013年02月10日 12:24