-2

到目前为止,我正在尝试为游戏制作一个简单的战斗脚本,但是这段处理战斗的代码总是返回以下错误:

注意:使用未定义的常量 ime - 在第 17 行的 C:\Program Files (x86)\wamp\www\php\gozd.php 中假定为“ime”

注意:使用未定义的常量 napad - 在第 18 行的 C:\Program Files (x86)\wamp\www\php\gozd.php 中假定为“napad”

等等...我希望有人能发现问题?

if($_POST['action'] == 'Napadi') {
    
    $igralec_ime = $_SESSION['username'];
    $igralec = array (
                      ime           => $igralec_ime,
                      napad     => prikazi_stat('ofe',$igralec_ime),
                      obramba   => prikazi_stat('def',$igralec_ime),
                      curhp         => prikazi_stat('curhp',$igralec_ime)
                     );
    
    $monster_ime = $_POST['monster'];
    $monster = array (
                      ime           => $monster_ime,
                      napad     => prikazi_monster_stat('atk',$monster_ime),
                      obramba   => prikazi_monster_stat('def',$monster_ime),
                      curhp         => prikazi_monster_stat('maxhp',$monster_ime)
                     );       
     
    $combat = array();
    $turns = 0;     
    while($igralec['curhp'] > 0 && $monster['curhp'] > 0) {
        
        if($turns % 2 != 0) {
            $napadalec = &$monster;
            $branilec = &$igralec; } 
        else {
            $napadalec = &$igralec;
            $branilec = &$monster; }
         
        $damage = 0;    
        if($napadalec['napad'] > $branilec['obramba']) {
            $damage = $napadalec['napad'] - $branilec['obramba']; }
           
        $branilec['curhp'] -= $damage;
        $combat[$turns] = array(
            napadalec   =>  $napadalec['ime'],
            branilec    =>  $branilec['ime'],
            damage      =>  $damage
                               );
         $turns++; }
     
    update_stat('curhp',$igralec_ime,$igralec['curhp']);
    if($igralec['curhp'] > 0) {
        update_stat('cek',$igralec_ime,prikazi_stat('cek',$igralec_ime)+ prikazi_monster_stat('cek',$monster_ime)); 
        $zmaga = 1;
        $cekini = prikazi_monster_stat('cek',$monster_ime); }
    else {
        $zguba = 1; } }
4

1 回答 1

3

您的数组键没有被引用。代码应为:

"ime"       => $igralec_ime,
"napad"     => prikazi_stat('ofe',$igralec_ime),
"obramba"   => prikazi_stat('def',$igralec_ime),
"curhp"     => prikazi_stat('curhp',$igralec_ime)

但是,PHP 通过说“哎呀,我不知道是什么ime——程序员可能是指"ime"(带引号),所以让我们假装这就是我刚刚看到的”来“帮助”您。

非常不幸的是,PHP 今天的行为是这样的(原因是历史的,最好不要说出来),但至少它有礼貌地通知可能有问题。

于 2013-07-30T17:00:00.970 回答