目前有一种方法可以在游戏中自动化施工吗?如果没有办法,我们是否允许在多人版本中使用外部脚本为我们做这些事情?有什么办法可以自动化施工吗?
回答
尽管我已经决定为此分享我的解决方案,但问题仍然存在负面影响。
我定义模块包含: - 脚本在给定的顺序创建它们并重新创建摧毁毛骨悚然 - 我想每一个重生点存在(姓名和体), 毛骨悚然的名单。
我用这样的:
var spawn = require('spawn_main');
spawn();
spawn_main的代码(在代码中的注释说明):
module.exports = function() {
var preDef = { //predefined creep classes (body and memory)
harvester:{body: [Game.WORK, Game.CARRY, Game.MOVE], memory: {role: 'harvester'}},
collector:{body: [Game.WORK, Game.CARRY, Game.MOVE, Game.MOVE], memory: {role: 'collector'}},
guard:{body: [Game.TOUGH, Game.ATTACK, Game.MOVE, Game.MOVE], memory:{role: 'guard'}},
healer:{body: [Game.HEAL, Game.HEAL, Game.MOVE, Game.MOVE], memory:{role: 'healer'}},
tower:{body: [Game.RANGED_ATTACK, Game.RANGED_ATTACK, Game.MOVE], memory:{role: 'tower'}},
builder:{body: [Game.WORK, Game.WORK, Game.WORK, Game.CARRY, Game.MOVE], memory:{role: 'builder'}},
hunter: {body: [Game.MOVE, Game.RANGED_ATTACK, Game.MOVE, Game.ATTACK], memory:{role: 'hunter'}}
};
var creeps = { //list of creeps I want to exist
Harvester1: preDef.collector,
Harvester2: preDef.harvester,
Tower1: preDef.tower,
Healer1: {body: [Game.HEAL, Game.HEAL, Game.MOVE, Game.MOVE], memory:{follow_role: 'tower',role: 'healer'}},
Hunter1: preDef.hunter,
Harvester3: preDef.harvester,
Tower2: preDef.tower,
Hunter2: preDef.hunter,
Hunter3: preDef.hunter,
Hunter4: preDef.hunter,
Hunter5: preDef.hunter
};
for (var i in Game.spawns){ //for each spawn point
var spawn = Game.spawns[i];
// crowder pointed out bug in "if (null !== spawn.spawning) continue;"
// changed from 'break;' to 'continue;'
if (null !== spawn.spawning) continue; //spawn point can't be busy
for (var name in creeps){ //for each 'to-be-created' creep
// final name of the creep is [spawn_name]+[to_be_created_creep_name]
if (undefined === Game.creeps[i+name]){ //if creep does not exist
var mem = {};
for (var attr in creeps[name].memory) {mem[attr] = creeps[name].memory[attr]; } //copy memory field
mem.home_name = i; // assign name of spawn point to which creep will be returning
spawn.createCreep(creeps[name].body, i+name, mem); //create new creep with defined body, name and memory
break; //ignore rest of 'to-be-created' creeps (spawn point should be busy). This also prevents creating creeps out of order
}
}
}
};
希望这有助于
你可能想要“继续;”在你的for ..中,在产卵条件下产卵循环,而不是休息 - 否则,如果你的第一个产卵器正在工作,你将永远不会评估其他产卵者。 – crowder 2015-08-07 18:48:59
我很积极,我想让'休息'。 “休息”只影响蠕变循环。孵化循环将不受影响。 测试代码: var a = [0,1,2,3]; (var i中的{var i中的{ { } – mish 2015-08-09 18:19:19
“if(null!== spawn.spawning)break; //生成点不能繁忙”如何影响蠕变循环?它甚至不在这个循环中。 – crowder 2015-08-10 02:07:34
- 1. 有什么办法可以自动化Windows窗体测试吗?
- 2. 有什么办法可以自动化Visual Studio 2013吗?
- 3. 有什么办法可以使文件导出操作自动化吗?
- 4. 有什么办法可以这样吗?
- 5. 有什么办法可以简化这个查询吗?
- 6. 有什么办法可以简化这条线吗?
- 7. 有什么办法可以让wpf + wcf更快的工作吗?
- 8. 有什么办法可以自动触发自定义事件吗?
- 9. 有什么办法可以在HTML中自定义alertbox吗?
- 10. 有什么办法可以从PyQt或PySide自动完成方法和类吗?
- 11. 有没有什么办法可以自动生成har文件?
- 12. 有什么办法可以在Actionscript/Air上自动执行registerClassAlias?
- 13. 有什么办法可以在Laravel 4中配置自动路由吗?
- 14. 有什么办法可以自动缩进vimscript中的一段文字吗?
- 15. 有什么办法可以从父类调用子方法吗?
- 16. 有没有什么办法可以优化这段代码?
- 17. 有没有什么办法可以自动为WPF桌面应用中的WPF控件生成自动化ID?
- 18. 有什么办法可以缓存ASIFormDataRequest?
- 19. 有什么办法可以chroot linux filemanager?
- 20. 有没有什么办法可以让我的C#XMLManager工作?
- 21. 有什么办法半自动提交?
- 22. 有没有什么办法可以自定义NuGet包更新?
- 23. 有什么办法可以关闭Scala编译器的尾递归优化吗?
- 24. 有什么办法可以在MySQL中优化复杂的数学查询吗?
- 25. 有什么办法可以循环变量名吗?
- 26. 有什么办法可以关闭邮件smtp会话吗?
- 27. 有什么办法可以禁用任务内的windows.form.timer吗?
- 28. 有什么办法可以从超类中省略变量吗?
- 29. 有什么办法可以结合使用CreateView和UpdateView吗?
- 30. 有什么办法可以用kqueue/kevent模拟epoll_wait吗?
在这里看到更多的信息。 [https://stackoverflow.com/questions/27051872/how-do-i-create-a-new-structure-in-screeps/27054679#27054679][1] [1 ]:https://stackoverflow.com/questions/27051872/how-do-i-create-a-new-structure-in-screeps/27054679#27054679 – Malleus 2014-11-22 06:26:48
请通过[问] – 2014-11-22 06:42:04