2017-08-18 52 views
1

我是Screeps的新手,我一直在努力構建自己的基本AI系統。不過,我在最初的測試中碰到了一個麻煩。我有一個腳本確定要做的工作,然後小兵請求可用的工作。我已經能夠將Job對象存儲到蠕變的內存中,但以後我不記得它。Screeps - 無法訪問蠕變內存

我可以在Memory選項卡中確認所有信息都存在,並且存儲正確,但是當我嘗試訪問它時,我只能得到undefined

This is what the memory looks like once it's set

我使用這個範本功能我的工作:

jobFactory: function() 
    { 
     // Generates a blank JOB template 
     var job = { 
      'id': null,  // id of job will double as id of the target 
            (ie. a energy source id) 
      'type': null, // used to classify job tickets to some extent 
      'spots': 0,  // total # of creeps that can be assigned to this 
      'workers': [] // current # and IDs of creeps assigned 
     }; 
     return job; 
    }, 

那麼我就能夠存儲它只是罰款: creep.memory.job = job;

如何我試圖訪問它是: console.log("Creep job: " + creep.memory.job);

我已經比較了它與ga我的教程,併爲我的生活,我似乎無法弄清楚爲什麼我不能從內存中訪問對象。

+2

嘗試在控制檯中寫下如下內容: JSON.stringify(Game.creeps.Liam.memory.job) –

回答

0

我將這兩行的我的角色模塊之一的開頭:

creep.memory.job = { foo: "hello", bar: 42}; 
console.log("Foo: " + creep.memory.job); 

輸出是:Foo: [object Object]

如果我改用console.log("Foo: " + creep.memory.job.foo);,然後輸出Foo: hello

我知道這並不能解釋undefined,但我想澄清一下您應該看到的內容。

可以肯定的另一件事是變量creep是你認爲它是。在console.log("Creep job: " + creep.memory.job);之前立即與console.log(creep.name);聯繫。

如果這些都沒有幫助,更多的代碼和更多的上下文將是有用的。 (我不確定你正在試圖執行哪些代碼段。)另外,確切的輸出是什麼?你得到Creep job: undefined還是undefined