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

トップ独走を防ぐ好感度アップダウン値の調整

PETROOMは、その仕様上、よりたくさん遊びに来る方が有利になります。
したがって、トップの方が独走する、といったことがよく起こりますが、
そうなって欲しくない場合も、なきにしもあらず。

これを回避する手段として、訪問回数を制限する、という方法があります。
この方法をご希望の方は、すっくんさんのサンプルスクリプトを参考になさってみてください。

訪問回数に制限を付けたくないけど、トップ独走は防ぎたい…。
そんなご要望にお応えするのが、今回の改造の狙いっぷり。
自分の好感度と、トップの人の好感度の差を元に、
好感度が上がったり下がったりするときの値を調整しよう、というモノです。
つまり、差が大きい人は、大アップ、小ダウン。
差が小さい人は、小アップ、大ダウンするように改造します。

ではでは、早速改造に取りかかりましょう。
好感度がトップの方を検索して、その好感度を控えておき、
自分の好感度を比較して、アップダウンの値を確定します。
ユーザーデータの読みこみ(sub openinuserdata)に下記のように追記してください。

        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] = "$name";
                $lovenum++;
                if ($bestlove < $love)
                    { $bestowner = "$name"; $bestlove = $love }
            } elsif ($love <= $disliked) {
                @hatelist[$hatenum] = "$name";
                $hatenum++;
            } else {
                @otherlist[$othernum] = "$name";
                $othernum++;
            }
        }
    }

    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 / 2) + 1;        # トップとの差の半分をアップする
        if ($toplove > 10)   { $lovedown = 1; } # 差が10より大きい場合はマイナス1
        elsif ($toplove > 3) { $lovedown = 2; } # 差が3より大きい場合はマイナス2
        else                 { $lovedown = 3; } # 差が3以内の場合は、マイナス3
    }

}

これで、$loveupにプラスする値、$lovedownにマイナスする値が入ります。
アップダウンの値は、あくまで参考ですので、ご自分で計算式を作ってもらってOKです。

最後に、アクション(sub action)の中にある、

$love++;
や
$love = $love + ○;(改造している人のみ)

を、

$love = $love + $loveup;

に置き換えます。


$love--;
や
$love = $love - ○;(改造している人のみ)

を、

$love = $love - $lovedown;

に置き換えます。


通常よりも、もっと増やしたいときなどは、

$love = $love + $loveup + ○;

などとすると良いでしょう。

(○には、適当な数字が入ります)