全ての $dummy01 を $lastlove に書き換える(6ヶ所or4ヶ所) 全ての $newdummy01 を $newlastlove に書き換える(2ヶ所) |
# ------------------------- #
# Sub Action
# アクション
# ------------------------- #
sub action {
$playmsg = "$playtime時間" if $playtime != 0;
$playmsg = "$playminute分" if $playtime == 0;
&checkname;
&error("まだ$playmsg経過していません") if $enter == 1;
&header;
&title;
&bodytop("ペットデータ($num代目)");
&petdata;
srand(time);
$rnd = int(rand(100) + 1); # Amend Ver 2.2
$fa = $FORM{'mode'};
$lastlove = $love;
if ($fa eq 'play') { $lastplay = time; $playname = $name; }
# if ($fa eq 'out') { $out = 1; $outdate = time; $outname = $name; } # コメントにします。
|
# ------------------------- #
# Sub Owner List
# 飼い主ランキング
# ------------------------- #
sub ownerlist {
&header;
&title;
$bestlove = $lovenum = $lovenum_k = $hatenum = $othernum = 0;
&openinuserdata('ownerlist');
&bodytop('飼い主ランキング');
&tabletop;
print "$font2$petnameが一番なついている人は</font><br>";
if ($bestlove < $loved) { print "いません<br>\n" }
else { print "$bestownerさんです<br>\n" }
print "<br>\n";
print "$font2$petnameがなついている人は</font><br>";
if ($lovenum == 0) { print "いません<br>" }
# else { foreach $owner (@lovelist) { print "$ownerさん<br>\n" } }
else {
foreach $owner (@lovelist) {
($love,$name,$lastlove) = split(/<>/,$owner); # ←プレイヤーの明示をしている人はここ注意!
&lastlovecheck;
print "$displove$nameさん…$loveポイント<br>\n";
}
}
print "<br>\n";
print "$font2$petnameが気になる人は</font><br>";
if ($lovenum_k == 0) { print "いません<br>";}
# else { foreach $owner (@lovelist_k) { print "$ownerさん<br>\n"; } }
else {
foreach $owner (@lovelist_k) {
($love,$name,$lastlove) = split(/<>/,$owner); # ←プレイヤーの明示をしている人はここ注意!
&lastlovecheck;
print "$displove$nameさん…$loveポイント<br>\n";
}
}
print "<br>\n";
print "$font2それ以外の人</font><br>";
if ($othernum == 0) { print "いません<br>" }
# else { foreach $owner (@otherlist) { print "$ownerさん<br>\n" } }
else {
foreach $owner (@otherlist) {
($love,$name,$lastlove) = split(/<>/,$owner); # ←プレイヤーの明示をしている人はここ注意!
&lastlovecheck;
print "$displove$nameさん…$loveポイント<br>\n";
}
}
print "<br>\n";
print "$font2$petnameが嫌いな人は</font><br>";
if ($hatenum == 0) { print "いません<br>";}
# else { foreach $owner (@hatelist) { print "$ownerさん<br>\n" } }
else {
foreach $owner (@hatelist) {
($love,$name,$lastlove) = split(/<>/,$owner); # ←プレイヤーの明示をしている人はここ注意!
&lastlovecheck;
print "$displove$nameさん…$loveポイント<br>\n";
}
}
&tablebottom;
&bodybottom;
&footer;
}
# ------------------------- #
# Sub Last Love Check
# 前回の好感度と比較
# ------------------------- #
sub lastlovecheck {
if ($love > $lastlove) {
$displove = "<FONT color=pink><SMALL><B>↑</B></SMALL></FONT>";
}
elsif ($love < $lastlove) {
$displove = "<FONT color=black><SMALL><B>↓</B></SMALL></FONT>";
}
else {
$displove = "<FONT color=AQUA><SMALL><B>→</B></SMALL></FONT>";
}
}
|
# ------------------------- #
# Sub Open In User Data
# ユーザーデータの読みこみ
# ------------------------- #
sub openinuserdata {
if ($lockkey == 1) { &lock }
open(IN,"$userdata") || &error("Can't open $userdata");
@lines = <IN>;
close(IN);
&unlock;
foreach $line (@lines) {
($name,$pass,$gdate,$love,〜ユーザーデータの改造で増えています) = split(/<>/,$line);
if ($_[0] eq 'checkname') {
if ($FORM{'name'} eq $name) {
$flag = 1; # データの中にユーザーを確認
if ($FORM{'pass'} ne $pass) { &error("パスワードが間違っています") }
last;
}
}
if ($_[0] eq 'action') {
if ($FORM{'name'} eq $name) {
$gdate = time;
push(@new,"$FORM{'name'}<>$FORM{'pass'}<>$gdate<>$newlove<>〜ユーザーデータの改造で増えています\n");
} else {
if ($gdate >= $goodbye) { push(@new,$line) }
}
}
if ($_[0] eq 'ownerlist') {
if ($love >= $loved) {
@lovelist[$lovenum] = "$love<>$name<>$lastlove";
$lovenum++;
if ($bestlove < $love)
{ $bestowner = "$name"; $bestlove = $love }
} elsif ($love >= $loved_k) {
@lovelist_k[$lovenum_k] = "$love<>$name<>$lastlove";
$lovenum_k++;
} elsif ($love >= $disliked) {
@otherlist[$othernum] = "$love<>$name<>$lastlove";
$othernum++;
} else {
@hatelist[$hatenum] = "$love<>$name<>$lastlove";
$hatenum++;
}
}
}
if ($_[0] eq 'checkname') {
$toppoint = 0;
foreach $line (@lines) {
($topname,$toppass,$topgdate,$toplove,$topother) = split(/<>/,$line);
if ($toppoint < $toplove) { $toppoint = $toplove; }
}
if ($flag == 0) { $love = 0; }
$toplove = $toppoint - $love;
$loveup = int($toplove / 4) + 1; # トップとの差の半分をアップする
if ($toplove > 10) { $lovedown = 1; } # 差が10より大きい場合はマイナス1
elsif ($toplove > 3) { $lovedown = 2; } # 差が3より大きい場合はマイナス2
else { $lovedown = 3; } # 差が3以内の場合は、マイナス3
}
}
|