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

かわむら様専用:2人のキャラのラブポイントを分ける

改造ページの中では、おそらく今までで一番すごい(?)改造です。
「遊ぼー。」お散歩システムの次くらいに、画期的(謎)
おいらの知識の限界を見ることになりますね(爆)

それではまず、

今までの$loveは、さくらちゃん用としまして、
かえでくん用のラブポイントを新設します。

$dummy02$kloveに(6ヶ所)、
$newdummy02$newkloveに(2ヶ所)書き換えましょう。

次に$loveの値を変更しているところに注目し、
とりあえず、すでに「さくらちゃん用」と「かえでくん用」に別れているところだけ、
先に直してしまいましょう。
かなり部分的に行きますので、ちょっと見づらいです・・・すみません(^^;
一応上から攻めて行ってます。
あと、極力、前のプログラムを残すようにしていますが、
特にそうする必要もありませんので、その辺りは適当にお願いします。

    # ゲストが何日ぶりの来訪かをチェックし、ラブ数を減らす
    $love-- if &checkday($gdate) > 1;
    $klove-- if &checkday($gdate) > 1;
#   $love = $love - &checkday($gdate);






    elsif ($fa eq 'sagasu02') {    # かえで用
        if ($rnd <= 5) {    # 見つからないときは、
            $disp_img = 'mitukaranai.jpg';    # 見つからないときの画像
            $disp_msg = 'かえでを見つけることは出来ませんでした';    # 見つからないときのメッセージ
            &petnowwaku($disp_img,$disp_msg);
#            $love--;    # 見つからなかったら好感度マイナス1
            $klove--;    # 見つからなかったら好感度マイナス1
        }
        else {    # 見つかったときは、
            $disp_img = 'mitukaru_k.jpg';    # 見つかったときの画像
            $disp_msg = "<font color=4682b4><B>かえで</B> 『$name君じゃないか。私を探していたのかい?<BR>じゃあ一緒に店に帰ろうか</font>",    # 見つかったときのメッセージ
            &petnowwaku($disp_img,$disp_msg);
            $out = 0;    # お散歩から帰ってこさせる(お散歩中は$outが1)
#            $love++;    # 好感度プラス1
            $klove++;    # 好感度プラス1
        }
    }






    elsif ($rnd <= $rnd_border) {
    
        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
            $timeafter == 26) {

            &petnowwaku($rnd_img2,$rnd_msg2);
            $klove--;
        }
        else {
        &petnowwaku($rnd_img,$rnd_msg);
            $love--;
        }
#        $love--;
    }
    elsif ($FORM{'good'} =~ /$fa/) {
    
        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
            $timeafter == 26) {

            if ($love >= $loved) {
            &petnowwaku($good_img2{$fa},$good_msg2{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($good_imgc{$fa},$good_msgc{$fa});    # かえで好感度中
            }
            else {
                &petnowwaku($good_imgd{$fa},$good_msgd{$fa});    # かえで好感度小
            }
            $klove++;
        }
        else {
            if ($love >= $loved) {
        &petnowwaku($good_img{$fa},$good_msg{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($good_imga{$fa},$good_msga{$fa});    # さくら好感度中
            }
            else {
                &petnowwaku($good_imgb{$fa},$good_msgb{$fa});    # さくら好感度小
            }
            $love++;
        }
#        $love++;$good++;
        $good++;
        if ($fa eq "feed") { $lastfeed = time; $feedname = $name; }
    }
    elsif ($FORM{'bad'} =~ /$fa/) {
    
        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
            $timeafter == 26) {

            if ($love >= $loved) {
            &petnowwaku($bad_img2{$fa},$bad_msg2{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($bad_imgc{$fa},$bad_msgc{$fa});    # かえで好感度中
            }
            else {
                &petnowwaku($bad_imgd{$fa},$bad_msgd{$fa});    # かえで好感度小
            }
            $klove--;
        }
        else {
            if ($love >= $loved) {
        &petnowwaku($bad_img{$fa},$bad_msg{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($bad_imga{$fa},$bad_msga{$fa});    # さくら好感度中
            }
            else {
                &petnowwaku($bad_imgb{$fa},$bad_msgb{$fa});    # さくら好感度小
            }
            $love--;
        }
#        $love--;$bad++;
        $bad++;
    }

$loveの値を変更しているところは、以上で終わりです。
ふふふ、こっからですよ、本番は(爆)

次に$loveの値で、分岐しているところを変更します。
そっくり書き換え、というところも出てきますが、気にしないで下さい(笑)

    # ラブポイントがある基準以下の場合、威嚇画像を表示
#    if ($bad - $good - $love > 5) {
#    
#        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
#            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
#            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
#            $timeafter == 26) {
#
#            &petnowwaku($angry_img2,"$petname$enemy_msg2");
#        }
#        else {
#        
#        &petnowwaku($angry_img,"$petname$enemy_msg");
#        }
#        $swfurl = $img . 'catvoicerage.swf';
#        if ($voice == 1) { &flash($swfurl); }
#        return;
#    }
    if ($bad - $good - $love > 5 &&    # さくら威嚇画像
        ($timeafter !=  0 && $timeafter !=  2 && $timeafter !=  5 &&
        $timeafter !=  8 && $timeafter != 12 && $timeafter != 15 &&
        $timeafter != 17 && $timeafter != 21 && $timeafter != 24 &&
        $timeafter != 26)) {
        &petnowwaku($angry_img,"$petname$enemy_msg");
        $swfurl = $img . 'catvoicerage.swf';
        if ($voice == 1) { &flash($swfurl); }
        return;
    }
    if ($bad - $good - $klove > 5 &&    # かえで威嚇画像
        ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
        $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
        $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
        $timeafter == 26)) {
        &petnowwaku($angry_img2,"$petname$enemy_msg2");
        $swfurl = $img . 'catvoicerage.swf';
        if ($voice == 1) { &flash($swfurl); }
        return;
    }

スペシャル画像まわりは、ちょっとややこしいので、後ほどじっくり(にやり)。

    # ラブポイントが一定以上でノーマル画像
#    if ( $love >= $bad - $good ) {
#        &petnowwaku($scheduleimg[$timeafter],$schedulemsg[$timeafter]);
#        return;
#    }
#
#
#    # どれにも当てはまらない場合、警戒画像を表示
#
#        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
#            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
#            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
#            $timeafter == 26) {
#
#        &petnowwaku($caution_img2,"$petname$caution_msg2");
#    }
#    else {
#&petnowwaku($caution_img,"$petname$caution_msg");
#}
    if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
        $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
        $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
        $timeafter == 26) {
        if ($klove >= $bad - $good) {
            &petnowwaku($scheduleimg[$timeafter],$schedulemsg[$timeafter]);
        }
        else {
            &petnowwaku($caution_img2,"$petname$caution_msg2");
        }
    }
    else {
        if ($love >= $bad - $good) {
            &petnowwaku($scheduleimg[$timeafter],$schedulemsg[$timeafter]);
        }
        else {
            &petnowwaku($caution_img,"$petname$caution_msg");
        }
    }
}
# ------------------------- #
# Sub Pet Form
# ペットフォーム
# ------------------------- #

#さくら用 play = 遊ぶ,pat = なでる,feed = 餌をやる,hit = しかる,out = 外に出す。話す=tark 手を握る=nigi 結婚!=pro  家に誘う=home 告る=kokuhaku
#かえで用 茶=feed 散歩=out 遊ぶ=play  戦隊トーク=tark  さくら呼ぶ=call  さくらの事訊く=ask  不意打ち=attack  肩叩き=tataki 結婚!=pro  告る=kokuhaku

            
#            if ($love < 5) {    # キャラがかえでで、好感度が5未満の場合
            if ($klove < 5) {    # キャラがかえでで、好感度が5未満の場合
(中略)
#            elsif ($love < 15) {    # キャラがかえでで、好感度が15未満の場合
            elsif ($klove < 15) {    # キャラがかえでで、好感度が15未満の場合
(中略)
#            elsif ($love < 25) {    # キャラがかえでで、好感度が25未満の場合
            elsif ($klove < 25) {    # キャラがかえでで、好感度が25未満の場合
(中略)

緑は、上の方で改造したところです。

    elsif ($FORM{'good'} =~ /$fa/) {
    
        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
            $timeafter == 26) {

#            if ($love >= $loved) {
            if ($klove >= $loved) {
            &petnowwaku($good_img2{$fa},$good_msg2{$fa});
            }
#            elsif ($love >= $loved_k) {
            elsif ($klove >= $loved_k) {
                &petnowwaku($good_imgc{$fa},$good_msgc{$fa});    # かえで好感度中
            }
            else {
                &petnowwaku($good_imgd{$fa},$good_msgd{$fa});    # かえで好感度小
            }
            $klove++;
        }
        else {
            if ($love >= $loved) {
        &petnowwaku($good_img{$fa},$good_msg{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($good_imga{$fa},$good_msga{$fa});    # さくら好感度中
            }
            else {
                &petnowwaku($good_imgb{$fa},$good_msgb{$fa});    # さくら好感度小
            }
            $love++;
        }
#        $love++;$good++;
        $good++;
        if ($fa eq "feed") { $lastfeed = time; $feedname = $name; }
    }
    elsif ($FORM{'bad'} =~ /$fa/) {
    
        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
            $timeafter == 26) {

#            if ($love >= $loved) {
            if ($klove >= $loved) {
            &petnowwaku($bad_img2{$fa},$bad_msg2{$fa});
            }
#            elsif ($love >= $loved_k) {
            elsif ($klove >= $loved_k) {
                &petnowwaku($bad_imgc{$fa},$bad_msgc{$fa});    # かえで好感度中
            }
            else {
                &petnowwaku($bad_imgd{$fa},$bad_msgd{$fa});    # かえで好感度小
            }
            $klove--;
        }
        else {
            if ($love >= $loved) {
        &petnowwaku($bad_img{$fa},$bad_msg{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($bad_imga{$fa},$bad_msga{$fa});    # さくら好感度中
            }
            else {
                &petnowwaku($bad_imgb{$fa},$bad_msgb{$fa});    # さくら好感度小
            }
            $love--;
        }
#        $love--;$bad++;
        $bad++;
    }
    else {
    
        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
            $timeafter == 26) {

#            if ($love >= $loved) {
            if ($klove >= $loved) {
            &petnowwaku($else_img2{$fa},$else_msg2{$fa});
            }
#            elsif ($love >= $loved_k) {
            elsif ($klove >= $loved_k) {
                &petnowwaku($else_imgc{$fa},$else_msgc{$fa});    # かえで好感度中
            }
            else {
                &petnowwaku($else_imgd{$fa},$else_msgd{$fa});    # かえで好感度小
            }
        }
        else {
            if ($love >= $loved) {
        &petnowwaku($else_img{$fa},$else_msg{$fa});
            }
            elsif ($love >= $loved_k) {
                &petnowwaku($else_imga{$fa},$else_msga{$fa});    # さくら好感度中
            }
            else {
                &petnowwaku($else_imgb{$fa},$else_msgb{$fa});    # さくら好感度小
            }
        }
    }

$loveによる分岐は、スペシャル画像まわりを除いて、これで終わりです。

で、スペシャル画像なんですが、上手く説明できないかったら、ごめんなさい(^^;

スペシャル画像は、設定された好感度以上で、設定された時間(食後何時間)に訪れると発生します。
スペシャル画像が発生する時間(食後何時間)を、こちらで設定できるということは、
どちらのキャラが登場する時間か、分かると言うことです。
ですので、
の方をさくらちゃんが現れる時間、の方をかえでくんが現れる時間、にして頂けないでしょうか?
つまり、こんな感じです。

$special1      = 25;  # ラブポイントが何点以上だとスペシャル画像1を表示するか。
$specialtime1a = さくらちゃんが現れる時間(数字で);  # 食後何時間でその画像を表示させるか。
$specialtime1b = かえでくんが現れる時間(数字で);  # 二つまで設定可能。一つでいい場合は上と同じにする。
$special2      = 30;  # ラブポイントが何点以上だとスペシャル画像2を表示するか。
$specialtime2a = さくらちゃんが現れる時間(数字で); # 食後何時間でその画像を表示させるか。
$specialtime2b = かえでくんが現れる時間(数字で); # 二つまで設定可能。一つでいい場合は上と同じにする。
$special3      = 40;
$specialtime3a = さくらちゃんが現れる時間(数字で);
$specialtime3b = かえでくんが現れる時間(数字で);

で、スペシャル画像3のかえでくん用の画像とメッセージがないので、追加して下さい。

### スペシャル画像&メッセージ ###かえで用
# スペシャル画像1
$delight_img2 = 'kaede2.jpg';   # 来訪者を喜んでいる画像
$delight_msg2 = "<font color=4682b4><B>かえで</B> 『$name君、こんにちは。来てくれると思っていたよ』";    # その時のメッセージ
# スペシャル画像2
$friend_img2  = 'kaede2.jpg'; # 友達と遊んでいる画像
$friend_msg2  = "<font color=4682b4><B>かえで</B> 『$name君か。丁度話がしたいと思っていた所だ』"; # その時のメッセージ
$friend_img2_2  = 'かえでくんのスペシャル画像3用の画像ファイル';
$friend_msg2_2  = "<font color=4682b4><B>かえで</B> 『かえでくんスペシャル画像3用のメッセージ』";

最後にスペシャル画像を表示するところを改造します。

    # 新しい3つ目の画像
    if ($love >= $special3) {
#        if ($timeafter == $specialtime3a || $timeafter == $specialtime3b) {
#            &petnowwaku($friend_img_2,$friend_msg_2);
#            return;
#        }
        if ($timeafter == $specialtime3a) {
            &petnowwaku($friend_img_2,$friend_msg_2);
            return;
        }
        if ($timeafter == $specialtime3b) {
            &petnowwaku($friend_img2_2,$friend_msg2_2);
            return;
        }
    }
    # スペシャル画像2
    if ($love >= $special2) {
#        if ($timeafter == $specialtime2a || $timeafter == $specialtime2b) {
#        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
#            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
#            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
#            $timeafter == 26) {
#
#                &petnowwaku($friend_img2,$friend_msg2);
#            }
#            else {
#            &petnowwaku($friend_img,$friend_msg);
#            }
#            return;
#        }
        if ($timeafter == $specialtime2a) {
            &petnowwaku($friend_img,$friend_msg);
            return;
        }
        if ($timeafter == $specialtime2b) {
            &petnowwaku($friend_img2,$friend_msg2);
            return;
        }
    }
    # スペシャル画像1
    if ($love >= $special1) {
#        if ($timeafter == $specialtime1a || $timeafter == $specialtime1b) {
#        if ($timeafter ==  0 || $timeafter ==  2 || $timeafter ==  5 ||
#            $timeafter ==  8 || $timeafter == 12 || $timeafter == 15 ||
#            $timeafter == 17 || $timeafter == 21 || $timeafter == 24 ||
#            $timeafter == 26) {
#
#                &petnowwaku($delight_img2,$delight_msg2);
#            }
#            else {
#            &petnowwaku($delight_img,$delight_msg);
#            }
#            return;
#        }
        if ($timeafter == $specialtime1a) {
            &petnowwaku($delight_img,$delight_msg);
            return;
        }
        if ($timeafter == $specialtime1b) {
            &petnowwaku($delight_img2,$delight_msg2);
            return;
        }
    }

ふぃ〜、なかなかに激しかったですが、さらにまだありましたね、そういえば(笑)
で、その、ランキング表示をキャラ別にする方法ですが、
どんな感じにしたらよいのでしょうか?
今現在、画面の下の方に「▼全体情報▼ ▼個人情報▼ ■終了■」とありますが、
ここを「▼全体情報「さくら」「かえで」▼ ▼個人情報「さくら」「かえで」▼ ■終了■」、こんな感じにすればよいでしょうか?
それとも、それぞれの画面へジャンプしてから、選ぶようにした方がよいですか?(←こっちはちょっと難しそうですが(^^;)