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) 是玩家等级,第二列是玩家进入下一关所需的经验值

我要做的是创建一个函数,例如,如果我选择级别“140”并且玩家具有级别 136 998831511的玩家的经验,那么它将检查文本文件中的玩家级别和 exp应该有1522864163并将玩家的 exp 更新到 140 级的 exp 和 141 级的 exp 之间。

这是我创建的功能

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";
            }

    }
}

但我收到错误“变量 $NewExp 未定义”,它不会得到下一级的 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 回答