目前有一種方法可以在遊戲中自動化施工嗎?如果沒有辦法,我們是否允許在多人版本中使用外部腳本爲我們做這些事情?有什麼辦法可以自動化施工嗎?
回答
儘管我已經決定爲此分享我的解決方案,但問題仍然存在負面影響。
我定義模塊包含: - 腳本在給定的順序創建它們並重新創建摧毀毛骨悚然 - 我想每一個重生點存在(姓名和體), 毛骨悚然的名單。
我用這樣的:
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