- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图编写一个代码来防止 2 个 creep(收割机)前往同一目的地并将它们绑定(bind)到该目的地,直到它满为止。
在第 55 行我得到一个可以理解的错误
55: creep.memory.targetID = targets[checkTarget].id;由于我没有看到 targets[checkTarget] 为空的原因
谁能告诉我我做错了什么?
var roleHarvester = {
/** @param {Creep} creep **/
run: function(creep) {
if (!creep.memory.targetID) creep.memory.targetID = "not given";
console.log(creep.memory.targetID);
if (creep.carry.energy < creep.carryCapacity) {
var nearestSource = creep.pos.findClosestByPath(FIND_SOURCES_ACTIVE);
if (creep.harvest(nearestSource) == ERR_NOT_IN_RANGE) {
creep.moveTo(nearestSource, {
visualizePathStyle: {
stroke: '#ffaa00'
}
});
}
} else {
if (creep.memory.targetID != "not given") {
console.log("should not be not given");
if (Game.getObjectById(creep.memory.targetID).hits == Game.getObjectById(creep.memory.targetID).hitsMax) {
creep.memory.targetID = "not given";
var targets = creep.room.find(FIND_STRUCTURES, {
filter: (structure) => {
return (structure.structureType == STRUCTURE_SPAWN ||
structure.structureType == STRUCTURE_EXTENSION ||
structure.structureType == STRUCTURE_TOWER) && structure.energy < structure.energyCapacity;
}
});
} else {
if (creep.transfer(Game.getObjectById(creep.memory.targetID), RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(Game.getObjectById(creep.memory.targetID), {
visualizePathStyle: {
stroke: '#ffffff'
}
});
}
}
} else {
var targets = creep.room.find(FIND_STRUCTURES, {
filter: (structure) => {
return (structure.structureType == STRUCTURE_SPAWN ||
structure.structureType == STRUCTURE_EXTENSION ||
structure.structureType == STRUCTURE_TOWER) && structure.energy < structure.energyCapacity;
}
});
console.log(targets);
for (var checkTarget in targets) {
console.log(checkTarget);
console.log(targets[checkTarget]);
for (var name in Game.creeps) {
if (targets[checkTarget] = Game.getObjectById(Game.creeps[name].memory.targetID)) {
var fail = true;
break;
}
var fail = false;
}
if (fail == true) continue;
console.log(Game.getObjectById(targets[checkTarget]));
creep.memory.targetID = targets[checkTarget].id;
break;
}
}
}
}
};
module.exports = roleHarvester;
最佳答案
以下 if
条件有问题:
for(var name in Game.creeps) {
if(targets[checkTarget] = Game.getObjectById(Game.creeps[name].memory.targetID)){
可能你的意思是 ==
?
关于javascript - Screeps:获取对象的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48349879/
当我使用 Creep.build() build 新墙时,它会创建具有 1 点生命值的墙。现在我正在尝试创建一个修复这些新 build 的墙壁的爬虫。但是我无法找到一种列出和迭代这些墙对象的好方法。
所以我可以攻击其他小兵而不是结构,我想知道你是怎么做到的,我到处寻找答案,但我发现的一切都是关于如何攻击另一个小兵。 最佳答案 这和攻击小兵一样。 creep.attack(structure); 文
我正在玩 Screeps ( http://screeps.com ),并且我正在尝试使用 lodash 模块来过滤我的收割机和其他 Creeps。下面的代码应该可以工作,但是当我运行它时,我得到 R
假设我在内存中保存了房间的名称 - “1-1”。我如何在无法访问该房间中的任何蠕变/结构的情况下访问该房间对象?像这样的东西: function(roomName){ var room = Gam
有什么方法可以从控制台调用模块或函数吗?例如,创建 worker 小兵的模块,从控制台使用 my_module.add_creep 调用? 最佳答案 对于给定的示例,请使用 require('my_m
我有一个用于创建房间布局的原型(prototype)。我正在尝试计算放置容器的位置: the closest point between the spawn and the controller th
我有脚本部分必须获取源ID并将它们存储到内存中,但仍然不起作用,请帮助我。 for(var name in Game.spawns) { var source1 = G
首先,我是这个游戏的新手,但我以前就知道 js。我遇到的问题是我在模拟器中玩耍的结果。 我试图生成一个 creep,我首先修改了 example in the tutorial : Game.spaw
我的内存有问题。它应该存储我的所有数据(而不是对象),但它会不时重置。这是示例: Memory.creeps_idx = 0; module.exports.loop = function ()
我是 Screeps 的新手(喜欢它),我很难为房间中的所有源创建一个变量。我试图确保只有 3 个 creep 在同一个源上工作,所以我有以下代码片段用于我的收割机和我的主模块 主要 var sour
我对 Screeps 还比较陌生,我一直在努力构建自己的基本 AI 系统。然而,我在最初的测试中遇到了障碍。我有一个脚本来确定要做的工作,然后小兵请求可用的工作。我已经能够将 Job 对象存储到 Cr
游戏中Screeps ,我对某些内置函数的返回类型有一些问题。采取以下代码: var creeps1 = Game.creeps var room = Game.rooms[myRoomName];
我在哪里可以找到 Game 对象的常量列表,例如 Game.HOSTILE_CREEPS、Game.MOVE 和 Game .攻击? 我在 http://screeps.com/docs/ 上找不到它
有没有办法让 screeps 代码将字符串打印到控制台(或任何地方)以进行简单调试? 最佳答案 您可以为此使用标准的 console.log 方法。 关于javascript - Screeps:将调
// Creep has Energy packed creep.say('E: ' + creep.carry.energy); if (creep.carry.en
在 Screeps 中,是否有可能不仅在控制台输出中看到错误,而且还能看到模块、行,也许还有堆栈跟踪? 更新:这是我得到的错误的样子。我没有看到行号或堆栈跟踪,或者可能没有看到启用它们的按钮? htt
在 Screeps 中,这段代码不起作用: var sources = creep.room.find(Game.FIND_SOURCES_ACTIVE); 它是这样说的: Cannot read p
我试图编写一个代码来防止 2 个 creep(收割机)前往同一目的地并将它们绑定(bind)到该目的地,直到它满为止。 在第 55 行我得到一个可以理解的错误 55: creep.memory.tar
我有点想用 SO 来指出一些事情。 首先,在这个游戏中使用“脚本”有点奇怪,因为与“普通”Javascript 脚本不同,执行方式不同。我们都知道在脚本中,第一件事首先被执行。所以如果我有: Game
不知道“Screeps”吗?访问 screeps.com 主脚本中的第11行 错误: main:11 if (creep.transfer(Game.spawns.Spawn1, RESO
我是一名优秀的程序员,十分优秀!