[英]Syntax Error: unexpected token: '{' Where is the issue
I have been playing Screeps and whilst adding code to my main module, I got the above error.我一直在玩 Screeps,在向主模块添加代码时,出现上述错误。 Unfortunately, Screeps doesn't tell you the location of an error like this, and I can't find anything.不幸的是,Screeps 不会告诉你这样的错误的位置,我找不到任何东西。 From my knowledge, the issue is that there is a bracket that is either missing or not supposed to be there.据我所知,问题是有一个括号丢失或不应该在那里。 But as I said I can't see anything.但正如我所说,我什么也看不到。 Below is the code in question.下面是有问题的代码。
var roleHarvester = require('role.harvester');
var roleUpgrader = require('role.upgrader');
var roleBuilder = require('role.builder');
var roleAttaver = require('role.attacker');
var roleRepairer = require('role.repairer');
module.exports.loop = function () {
var canspawnSmall = Game.spawns['Spawn1'].spawnCreep([WORK, CARRY, CARRY, MOVE, MOVE],
'Worker1', { dryRun: true });
var canspawnBig = Game.spawns['Spawn1'].spawnCreep([WORK, WORK, CARRY, CARRY, MOVE, MOVE],
'Worker1', { dryRun: true });
var harvesters = _.filter(Game.creeps, (creep) => creep.memory.role == 'harvester');
console.log('Harvesters: ' + harvesters.length);
var builders = _.filter(Game.creeps, (creep) => creep.memory.role == 'builder');
console.log('Builders: ' + builders.length);
var upgraders = _.filter(Game.creeps, (creep) => creep.memory.role == 'upgrader');
console.log('Upgraders: ' + upgraders.length);
var repairers = _.filter(Game.creeps, (creep) => creep.memory.role == 'repairer');
console.log('Repairers: ' + repairers.length);
var attackers = _.filter(Game.creeps, (creep) => creep.memory.role == 'attacker');
console.log('Attackers: ' + attackers.length);
if (harvesters.length < 2) {
if (harvesters.length < 2 && canspawnBig == 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, WORK, CARRY, CARRY, MOVE, MOVE], 'Harvester' + Game.time, {memory: {role: 'harvester'} });
} elif (harvesters.length < 2 && canspawnSmall == 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, CARRY, CARRY, MOVE, MOVE], 'Harvester' + Game.time, {memory: {role: 'harvester'} });
}
} elif (harvesters.length >= 2 && upgraders.length < 2) {
if (upgraders.length < 2 && canspawnBig == 0 ) {
Game.spawns['Spawn1'].spawnCreep([WORK, WORK, CARRY, CARRY, MOVE, MOVE], 'Upgrader' + Game.time, {memory: {role: 'upgrader'} });
} elif (upgraders.length < 2 && canspawnSmall == 0 && canspawBig != 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, CARRY, CARRY, MOVE, MOVE], 'Upgrader' + Game.time, {memory: {role: 'upgrader'} });
}
} elif (harvesters.length >= 2 && upgraders.length >= 2 && builders.length < 2) {
if (builders.length < 2 && canspawnBig == 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, WORK, CARRY, CARRY, MOVE, MOVE], 'Builder' + Game.time, {memory: {role: 'builder'} });
} elif (builders.length < 2 && canspawnSmall == 0 && canspawnBig != 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, CARRY, CARRY, MOVE, MOVE], 'Builder' + Game.time, {memory: {role: 'builder'} });
}
} elif (harvesters.length >= 2 && upgraders.length >= 2 && builders.length >= 2 && repairers.length < 2) {
if (repairers.length < 2 && canspawnBig == 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, WORK, CARRY, CARRY, MOVE, MOVE], 'Repairer' + Game.time, {memory: {role: 'repairer'} });
} elif (repairers.length < 2 && canspawnSmall == 0 && canspawnBig != 0) {
Game.spawns['Spawn1'].spawnCreep([WORK, CARRY, CARRY, MOVE, MOVE], 'Repairer' + Game.time, {memory: {role: 'repairer'} });
}
} else {
console.log('All Set Chief')
}
I believe the issue is somewhere above here but I am not sure.我相信问题出在这里的某个地方,但我不确定。
console.log('Can Big:' + canspawnBig)
console.log('Can Small:' + canspawnSmall)
const tower = Game.spawns['Spawn1'].room.find(FIND_MY_STRUCTURES, {
filter: { structureType: STRUCTURE_TOWER }
});
if(tower.length > 0) {
const closestDamagedStructure = tower.pos.findClosestByRange(FIND_STRUCTURES, {filter: (structure) => structure.hits < structure.hitsMax});
if(closestDamagedStructure) {
tower.repair(closestDamagedStructure);
}
const closestDamagedCreep = tower.pos.findClosestByRange(FIND_MY_CREEPS, {filter: (creep) => creep.hits < creep.hitsMax});
if (closestDamagedCreep) {tower.heal(closestDamagedCreep);}
const closestHostile = tower.pos.findClosestByRange(FIND_HOSTILE_CREEPS);
if(closestHostile) {
tower.attack(closestHostile);
}
}
for(var name in Game.creeps) {
var creep = Game.creeps[name];
if(creep.memory.role == 'harvester') {
roleHarvester.run(creep);
}
if(creep.memory.role == 'upgrader') {
roleUpgrader.run(creep);
}
if(creep.memory.role == 'builder') {
roleBuilder.run(creep);
}
if(creep.memory.role == 'attacker') {
roleAttacker.run(creep);
}
if(creep.memory.role == 'repairer') {
roleRepairer.run(creep);
}
}
}
Because elif
do not apply to Javascript.因为elif
不适用于 Javascript。 You need to change elif
to else if
您需要将elif
更改为else if
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.