0

我做了一个库存系统(其他是drop),这是提货代码

    // pickup

    found_in_inv = false;

    for(var i = 0; i < ds_list_size(global.inv); i++){
        if(global.inv[| i][| 0] == other.object_index){ // error line
            global.inv[| i][| 1]++;
            found_in_inv = true;
            break;
        }
    }

    if(found_in_inv){
        instance_destroy(other);
    }else{
        for(var i = 0; i < ds_list_size(global.inv); i++){
            if(global.inv[| i][| 0] == noone){
                global.inv[| i][| 0] = other.object_index;
                global.inv[| i][| 1] = 1;
                break;
                instance_destroy(other);
            }
        }
    }

我收到一个语法错误,其中“[|” 发现,“)”预期。我不知道如何解决这个问题,请帮助。

4

1 回答 1

2

仅在 >= 2.3 版本中支持链式访问器(a[i][k] 或 a[|i][|k])(在撰写本文时,它处于 beta 状态)。

将第一个检索到的项目分配给一个变量以绕过这个事实。
也许也可以借此机会不要做比您需要的更多的阅读。

    for(var i = 0; i < ds_list_size(global.inv); i++){
        var item = global.inv[| i];
        if(item[| 0] == other.object_index){ // error line
            item[| 1]++;
            found_in_inv = true;
            break;
        }
    }
于 2020-05-19T11:47:30.350 回答