0

基本的に、次の内容のテキスト ドキュメントがあります。

136 998831511
137 1109901576
138 1233322632
139 1370468109
140 1522864163
141 1692206658
142 1880380039
143 2089478300
144 2321828287
145 2580015593
146 2866913327
147 3185714089
148 3539965496

最初の列 (#136-148) はプレイヤーのレベルで、2 番目の列はプレイヤーが次のレベルに進む前に必要な経験値です。

私がやろうとしているのは、たとえばレベル「140」を選択し、プレーヤーがレベル136 998831511のプレーヤーの経験を持っている場合、テキストファイルのプレーヤーレベルと経験値をチェックする関数を作成することですは1522864163であると想定されており、プレーヤーの経験値を更新して、レベル 140 の経験値とレベル 141 の経験値の間にあるようにします。

これは私が作成した関数です

function ExpIsBugged($CurrentLv,$CurrentExp)
{
    $File = @file('charlv.txt');


    foreach($File as $key => $FileLine)
    {
        $Lvs = explode("\t", $FileLine);


        $NewLv = $key + 1;

            if($Lvs[0] == $NewLv)
                $NewExp = $Lvs[1];

            if($Lvs[0] == $CurrentLv)
            {
                if($CurrentExp > $Lvs[1] && $CurrentExp < $NewExp )
                {

                    return "Your Exp Is Bugged";
                }
                else
                    return "Your Exp Is Not Bugged";
            }

    }
}

しかし、「The variable $NewExp is undefined」というエラーが表示され、次のレベルの exp を取得できません。

ヘルプはありますか?

4

1 に答える 1

1

解決策を見つけました!コード内のこの行を変更してください。それはうまくいきます

$Lvs = explode(0x09, $FileLine);

3つまたは2つの配列が得られます(ファイルに依存します)。

$Lvs[0]= 136 //(lvl);
$Lvs[1]= " "
$Lvs[2] =998831511// (exp)

2つの配列が得られる場合:

$Lvs[0]= 136 //(lvl);
$Lvs[1] =998831511// (exp)
于 2013-07-27T22:35:59.227 に答える