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

たま様専用:好感度によってメッセージを変えつつ、そのメッセージがランダムになるように

好感度によってキャラの反応を変える改造をすると、下記のようになっていると思います。

    elsif ($FORM{'good'} =~ /$fa/) {
        if ($love < 0) {
            &petnow($good_imgb{$fa},$good_msgb{$fa});
        }
        elsif ($love < 7) {
            &petnow($good_imga{$fa},$good_msga{$fa});
        }
        else {
        &petnow($good_img{$fa},$good_msg{$fa});
        }
        $love++;$good++;
        if ($fa eq "feed") { $lastfeed = time; }
    }

これを、
『つまり、好感度0〜9で「珈琲」を選んだら
A,B,Cのうちどれかのメッセージを、
「紅茶」なら
1,2,3のうちのどれかを、

好感度9〜19で「珈琲」を選んだら
D,E,Fのうちからどれかのメッセージを、
「紅茶」なら
4,5,6のうちのどれかを、』

のように改造すると、下記のようになります。

    elsif ($FORM{'good'} =~ /$fa/) {
#        if ($love < 0) {
#            &petnow($good_imgb{$fa},$good_msgb{$fa});
#        }
#        elsif ($love < 7) {
#            &petnow($good_imga{$fa},$good_msga{$fa});
#        }
#        else {
#        &petnow($good_img{$fa},$good_msg{$fa});
#        }
        if ($love >= 0 && $love < 9) {    # 好感度が0〜9の場合
            if ($fa eq "珈琲") {    # コマンドが珈琲なら
                if ($rnd <= 4) {    # $rndにより、3つに分岐
                    &petnow(Aの画像配列,Aのメッセージ配列);
                }
                elsif ($rnd <= 7) {
                    &petnow(Bの画像配列,Bのメッセージ配列);
                }
                else {
                    &petnow(Cの画像配列,Cのメッセージ配列);
                }
            }
            elsif ($fa eq "紅茶") {    # コマンドが紅茶なら
                if ($rnd <= 4) {
                    &petnow(1の画像配列,1のメッセージ配列);
                }
                elsif ($rnd <= 7) {
                    &petnow(2の画像配列,2のメッセージ配列);
                }
                else {
                    &petnow(3の画像配列,3のメッセージ配列);
                }
            }
            elsif ($fa eq "〜") {    # コマンドが〜なら
                (中略)
            }
            (中略)
            else {    # 上記のどのコマンドにも当てはまらなかったら
                (中略)
            }
        }
        elsif ($love >= 9 && $love < 19) {    # 好感度が9〜19の場合
            if ($fa eq "珈琲") {
                if ($rnd <= 4) {
                    &petnow(Dの画像配列,Dのメッセージ配列);
                }
                elsif ($rnd <= 7) {
                    &petnow(Eの画像配列,Eのメッセージ配列);
                }
                else {
                    &petnow(Fの画像配列,Fのメッセージ配列);
                }
            }
            elsif ($fa eq "紅茶") {
                if ($rnd <= 4) {
                    &petnow(4の画像配列,4のメッセージ配列);
                }
                elsif ($rnd <= 7) {
                    &petnow(5の画像配列,5のメッセージ配列);
                }
                else {
                    &petnow(6の画像配列,6のメッセージ配列);
                }
            }
            elsif ($fa eq "〜") {
                (中略)
            }
            (中略)
            else {
                (中略)
            }
        }
        elsif (〜) {    # 好感度が〜の場合
            (中略)
        }
        (中略)
        else {    # 上記のどの好感度にも当てはまらなかった場合
            (中略)
        }
        $love++;$good++;
        if ($fa eq "feed") { $lastfeed = time; }
    }

この場合、好感度が0未満だと、一番最後のelseの処理へ入りますので、ご注意下さい。
(中略)が多くて、ちょっと分かりづらいですかねぇ・・・(^^;
また、分岐に使われているランダム数$rndですが、
$rnd_borderの値により、微妙に調整が必要です。
$rnd_borderが3の場合、$rndが1、2、3の時はランダムの処理へ入ってしまい、
こちらの処理へは来ないので、実際に使えるのは4〜10と言うことになります。