PETROOM大改造
【萌え萌えキャラクターズと遊ぼー。】

ランゾウさま専用:「あかり」ベースの殿堂入り追加

ゲームクリアと同時に、「遊ぼー。」で追加されている「殿堂入り」も果たす改造です。
なお、改造のベースが「あかりと一緒」ですので、オリジナルからの流用はちょっと難しいです。
ランゾウさん以外の方は、ご注意下さい。

ここでは「遊ぼー。」とまったく同じ「殿堂入り」を追加いたします。
「遊ぼー。」の殿堂入りは、

▼お名前と好感度を表示。
▼表示される順番は、クリアしたときの好感度順。
▼同じ名前とパスワードでは遊べなくなる。
▼事故がない限り、消えずにいつまでも残る。

です、何か追加したいときに分からない箇所がありましたら、またご連絡下さいませ。



では、さっそくいきましょう!
「あかり」ベースですので、クリアしたときのフラグが既に追加されていますので、
それを流用します。

まず、殿堂入りしたら、遊べなくなる改造は、
ペットのコンディション(sub condition)の下記の部分に下記のように追記してください。

# ------------------------- #
# Sub Condition
# ペットのコンディション
# ------------------------- #
sub condition {
    print "</td>\n";
    print "</tr>\n";

    if ($asbcl != 0) {
        $disp_img  = '殿堂入りした人専用画像ファイル名';
        $disp_msg  = "その時のメッセージ";
        &petnowwaku($disp_img,$disp_msg);
        $noaction = 1;
        return;
    }

    # 食後の経過時間を$timeafterに代入(30分で更新)
    $timeafter = int((time - $lastfeed)/1800);
    srand(time);
    $rnd = int(rand(10) + 1);
    $fdflg = 0;

クリアすると$asbclには順位が入りますので、「0」でなくなります。
ということで、これが「0」でない人は、殿堂入りした人、ということで、
専用の画像とメッセージを表示し、
$noactionを「1」にして、選択肢が出ないようにします。
つまり、遊べなくなるわけです。
引き続き遊べるようにするときは、この部分を追加しないで下さい。



次に、クリアした人&殿堂入りした人は、
期間が過ぎてもランキングから消えないようにする改造と、
クリアした人&殿堂入りした人のリスト作成と、
その人を通常のランキングから除外する改造です。
ユーザーデータの読み込み(sub openinuserdata)の下記の部分を下記のように変更して下さい。

        if ($_[0] eq 'action') {
            if ($FORM{'name'} eq $name) {
                $gdate = time;
                push(@new,"$FORM{'name'}<>$FORM{'pass'}<>$gdate<>$newlove<>$newasbcl<>$newlastcom<>$kind<>$newcombo1<>$newkamigata<>$newevent01<>$newlastlove<>$newclrtime<>$newlastcombo<>$newde_cnt<>$newfstvisit<>$newvisitcnt<>$newshihocnt<>$newmasashicnt<>$newkioku<>$newmessage<>$newdummy12<>$newdummy13<>$newdummy14<>$newdummy15<>$newdummy16<>$newdummy17<>$newdummy18<>$newdummy19<>$newdummy20<>\n");
            }
            else {
                if ($gdate >= $goodbye || $asbcl != 0) { push(@new,$line); }
            }
        }
        if ($_[0] eq 'ownerlist') {
            if ($asbcl != 0) {
                @clrlist[$clrnum] ="$asbcl<>$name<>$clrtime";
                @dendoulist[$clrnum] ="$love<>$name";
                $clrnum++;
                if ($FORM{'name'} eq $name) {
                    $ownername = $name;
                    $ownerrank = "個人情報でのメッセージ";
                    $ownerlove = $love;
                    $ownerimage = '個人情報での画像';
                    $ownersince = &checkday($fstvisit);
                    $ownerasbcl = $asbcl;
                }
            }
            elsif ($love < $lpkirai) {
                @kirailist[$kirainum] = "$love<>$name<>$lastcom<>$lastlove";
                $kirainum++;
                if ($FORM{'name'} eq $name) {
                    $ownername = $name;
                    $ownerrank = "<FONT color=black><B>嫌いな人です。</B></FONT>";
                    $ownerlove = $love;
                    $ownerimage = 'ak006.gif';
                    $ownersince = &checkday($fstvisit);
                    $ownerasbcl = $asbcl;
                }
            }


ずっと下へいって…、


    if ($_[0] eq 'ownerlist') {
        &user_sort(@clrlist);
        @clrlist = @newtxt;

        &user_sort_r(@dendoulist);
        @dendoulist = @newtxt;

        &user_sort_r(@kirailist);
        @kirailist = @newtxt;


さらにその下へいって…、

        $ownercnt = 1;
        $chkflg = 0;
        foreach $allcnt (@alllist) {
            ($love,$name,$lastcom,$lastlove) = split(/<>/,$allcnt);
            if ($FORM{'name'} eq $name) {
                $chkflg = 1;
                last;
            }
            $ownercnt++;
        }
        if ($chkflg == 0) { $ownercnt = 0;}
    }
}

# ------------------------- #
# Sub User Sort
# ユーザーソート
# ------------------------- #

クリアした人のリストを作るのと同時に、殿堂入り専用のリストも作ります。
含める情報は、$love$nameのみです。
そして、個人情報画面用のデータを設定します。
さらに、ランキングから除外するために、
その次にある「if」文を「elsif」文に変更します。

そして、殿堂入り専用のリストを、$loveの大きい順に並べ直します。
ちなみに好感度が同じ場合は、お名前順になります。

さらに、個人情報で順位が表示されないように、ちょっと小細工します(^^;



次に、ランキング表示の改造です。
とりあえず、「遊ぼー。」と同じ位置に表示しますね。
飼い主ランキング(sub ownerlist)の下記の部分に下記のように追記します。

# ------------------------- #
# Sub Owner List
# 飼い主ランキング
# ------------------------- #
sub ownerlist {
    &checkname;
    &header;
    $bestlove = $clrnum = $sukinum = $kininarunum = $nakayoinum = $tomodatinum = $siriainum = $siranainum = $kirainum = $itibannum = 0;
    &openinuserdata('ownerlist');

    &bodytop('あかりの中であなたは…。');
    &tabletop;

    if ($clrnum != 0) {
        print "$font2<B>殿堂入り</B></font><br>";
        print "<DIV align=right><TABLE border=0 cellpadding=0 cellspacing=0 width=280>\n";
        foreach $owner (@dendoulist) {
            ($love,$name) = split(/<>/,$owner);
            if ($name eq $ownername) {
                print "<TR><TD><FONT color=orangered><B>$nameちゃん</B></FONT></TD><TD align=right><FONT color=red>$love</FONT>ポイント</TD></TR>\n";
            }
            else {
                print "<TR><TD>$nameちゃん</TD><TD align=right>$loveポイント</TD></TR>\n";
            }
        }
        print "</TABLE></DIV>\n";
        print "<br><br>\n";
    }

    print "$font2<B>一番好きな人</B></font><br>";
    print "<DIV align=right><TABLE border=0 cellpadding=0 cellspacing=0 width=280>\n";
    if ($itibannum == 0) { print "<TR><TD>いません</TD></TR>"; }
    else {
        foreach $owner (@itibanlist) {
            ($love,$name,$lastcom,$lastlove) = split(/<>/,$owner);
            if ($name eq $ownername) {
                print "<TR><TD><FONT color=orangered><B>$nameちゃん</B></FONT>だよっ<FONT color=pink face=symbol>ゥ</FONT></TD></TR>\n";
            }
            else {
                print "<TR><TD>$nameちゃんだよっ<FONT color=pink face=symbol>ゥ</FONT></TD></TR>\n";
            }
        }
    }
    print "</TABLE></DIV>\n";
    print "<br>\n";

ここはただ単に、殿堂入り専用のリストを、一番好きな人と同じように表示するだけです。
場所を変更する場合は、丸ごと移動すればOKだと思います。



最後に個人情報の改造ですが、
「あかり」のスクリプトですと、こちらも飼い主ランキングになっています、すみません(^^;
飼い主ランキング(sub ownerdisp)の下記の部分に下記のように追記してください。

# ------------------------- #
# Sub Owner Disp
# 飼い主ランキング
# ------------------------- #
sub ownerdisp {
#    &lockuser;
    &checkname;
#    &unlockpet;
    &header;
    $bestlove = $clrnum = $sukinum = $kininarunum = $nakayoinum = $tomodatinum = $siriainum = $siranainum = $kirainum = $itibannum = 0;
    &openinuserdata('ownerlist');

    &bodytop('あかりにとってあなたは…。');
    &tabletop;

    if ($bestlove != 0 && $ownerlove >= $bestlove && $ownercnt != 0) {
        $ownercnt = 1;
        $ownerrank = "<FONT color=pink><B>一番好きな人だよ<FONT face=symbol>ゥ</FONT></B></FONT>";
        $ownerimage = 'ak005.gif';
    }
    print "<DIV align=center><BR>\n";
    print "$ownernameちゃんは、<BR><BR>\n";
    print "$ownerrank<BR><BR>\n";
    print "好感度=<FONT color=red><B>$ownerlove</B></FONT>ポイント<BR><BR>\n";
    if ($ownercnt != 0) {
    $allnum = $sukinum + $kininarunum + $nakayoinum + $tomodatinum + $siriainum + $siranainum + $kirainum;
    print "<B>$allnum</B>人中 第<FONT color=red><B>$ownercnt</B></FONT>位<BR><BR>\n";
    print "<FONT color=teal>初めて訪れてから <FONT color=red><B>$ownersince</B></FONT>日経過<BR><BR>\n";
    }
#    if ($ownerasbcl != 0) {
    else {
        print "クリアした人用メッセージ";
    }
    print "</DIV></TD><TD align=center><img src=$img$ownerimage>\n";

    &tablebottom;
    &bodybottom;
    &footer;
    exit;
}

一番好きな人が複数いたときに、全員1位になるようにする改造は必要ないので、
飛ばすように設定します。
そして、順位および初訪問からの日数は、もう遊べなくなっているので表示から外し、
その代わり、クリアした人用のメッセージを表示します。



以上の変更で、クリアと同時に殿堂入りとなります。
また、現在のユーザーデータをそのまま使えます。
既にクリアしている人がいれば、自動的に殿堂入りとなります。