2017-08-18 7 views
1

Ich bin relativ neu bei Screeps und arbeite seit einiger Zeit an der Entwicklung meines eigenen grundlegenden KI-Systems. Allerdings habe ich bei meinen ersten Tests einen Haken gefunden. Ich habe ein Skript, das Jobs bestimmt, und dann werden die verfügbaren Jobs angefordert. Ich konnte das Job-Objekt im Speicher des Kriechers speichern, aber ich kann mich später nicht mehr daran erinnern.Screeps - Zugriff auf Creep Memory nicht möglich

Ich kann auf der Registerkarte Speicher bestätigen, dass alle Informationen vorhanden sind, und richtig gespeichert, aber wenn ich versuche, darauf zuzugreifen, bekomme ich nur .

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

Ich schaffe meine Jobs mit dieser Vorlage Funktion:

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

Dann mit Ich bin in der Lage, es zu speichern, einfach gut: creep.memory.job = job;

Wie ich bin versucht, Zugang es ist: console.log("Creep job: " + creep.memory.job);

Ich habe es mit dem GA verglichen Ich Tutorial, und für das Leben von mir kann ich nicht herausfinden, warum ich nicht auf das Objekt aus dem Speicher zugreifen kann.

+2

Versuchen Sie, etwas in der Konsole zu schreiben: JSON.stringify (Game.creeps.Liam.memory.job) –

Antwort

0

Ich habe diese beiden Zeilen an den Anfang eines meiner Rolle Module:

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

Die Ausgabe lautet: Foo: [object Object]

Wenn ich stattdessen console.log("Foo: " + creep.memory.job.foo); verwenden, dann ist der Ausgang Foo: hello.

Ich weiß, dass das undefined nicht erklärt, aber ich wollte klären, was Sie erwarten sollten zu sehen.

Eine andere Sache, sicher zu sein, ist, dass die Variable creep ist, was Sie denken, dass es ist. Doppelprüfung mit console.log(creep.name); sofort vor console.log("Creep job: " + creep.memory.job);.

Wenn nichts davon hilft, wird mehr Code und mehr Kontext nützlich sein. (Ich bin mir nicht sicher, wo genau Sie versuchen, welche Code-Teile auszuführen.) Was genau ist die Ausgabe? Erhalten Sie Creep job: undefined oder nur undefined?

Verwandte Themen