Ссылка на игру: https://screeps.com/ , я щас прохожу туториал
Ссылка на хабр: http://habrahabr.ru/post/264781/ , тут можно прочитать подробнее
Суть игры: вы пишите код, который управляет вашими юнитами
Это денег стоит копейки, я заплатил 18 баксов, при лимитах в 20 цпу, это 299 дней игры. А при лимитах в 30 цпу, если верить другим юзерам, можно контролировать 10-15 комнат.
Добавлено:
Сообщение автоматически объединено:
Я кстати без знания джавы, тупо на ифах накатал колонию, которая автономно работает . Знаний AutoIt'а хватает чтобы делать рабочие колонии
Добавлено:
Сообщение автоматически объединено:
Код:
/*
* Module code goes here. Use 'module.exports' to export things:
* module.exports = 'a thing';
*
* You can import it from another modules like this:
* var mod = require('builder'); // -> 'a thing'
*/
module.exports = function (creep) {
//console.log(Game.creeps.ControlUpgrader1.pos);
if(creep.carry.energy == 0) {
console.log("Заправляюсь");
var sources = creep.pos.findInRange(FIND_DROPPED_ENERGY, 5);
//if (sources.length) {
//if (sources[0].energy > 200) {
// creep.moveTo(sources[0]);
// creep.pickup(sources[0]);
//}
//else{
creep.moveTo(Game.spawns.Spawn1);
Game.spawns.Spawn1.transferEnergy(creep);
//}
//}
//else{
// creep.moveTo(Game.spawns.Spawn1);
// Game.spawns.Spawn1.transferEnergy(creep);
//}
}
else {
var targets = creep.room.find(FIND_CONSTRUCTION_SITES);
if(targets.length) {
console.log("Строю");
creep.moveTo(targets[0]);
creep.build(targets[0]);
}
else {
//////
// var roadToRepair = creep.pos.findClosest(FIND_STRUCTURES, {
var road = Game.spawns.Spawn1.room.find(FIND_STRUCTURES, {
filter: { structureType: STRUCTURE_ROAD }
});
if (road.length > 0) {
for (var i = 0; i<road.length; i++) {
if (road[i].hits < road[i].hitsMax-200){
creep.moveTo(road[i]);
creep.repair(road[i]);
console.log("Ремонтирую дорогу"+road[i].pos);
return 0;
}
}
}
else{
//console.log("ищу стены");
var wall = Game.spawns.Spawn1.room.find(FIND_STRUCTURES, {
filter: { structureType: STRUCTURE_WALL }
});
if (wall.length > 0) {
for (var i = 0; i<wall.length; i++) {
if (wall[i].hits < wall[i].hitsMax/2){
creep.moveTo(wall[i]);
creep.repair(wall[i]);
console.log("Ремонтирую стену"+wall[i].pos);
return 0;
}
}
}
else{
//следующее действие
}
}
////////
//else{
//console.log("Заправляю контроллер");
//creep.moveTo(Game.creeps.ControlUpgrader1.pos);
//creep.transferEnergy(Game.creeps.ControlUpgrader1);
//}
}
}
}
Вот так выглядит основная часть кода. Тупо по справке нацарапал
Та как бы... Мне войнушки порядком надоели. А кооперативные проекты в игре есть? Можно создать клан и всем вместе построить что-нибудь эдакое? :robot:
Ну хотя бы договориться с соседями, охранять общий периметр, а соседей считать друзьями.
:gathering: :wall_brake:
Я тоже долго не понимал пытаясь апгрейднуться из консоли. Апгрейдиться надо из основного скрипта.
Game.creeps.ControlUpgrader1 - Это ссылка на объект крипа с именем ControlUpgrader1, в этом объекте есть ввся инфа о нем, имя, позиция, доступ к его области памяти и прочее. в pos хранятся его текущие x,y координаты на карте. Игра сама записывает их туда каждый цикл.
А эта команда:
Код:
creep.moveTo(Game.creeps.ControlUpgrader1.pos);
Отправляет текущего крипа записанного в creep к крипу ControlUpgrader1
Добавлено:
Сообщение автоматически объединено:
Вот кусок кода, который управляет крипом с ролью ControlUpgrader
Какие-то вы вещи такие обсуждаете...
Мысль вводить команды из консоли не возникала вообще. Вот только сижу думаю как же ж планировать постройку новых зданий и выбирать место для постройки.
А контроллер я ещё ни разу не апгрейднул. 18$ жалко (да и 10$ тоже жалко). Поэтому гоняю симулятор. Какой на апгрейд контроллера?! Вы воевать научились??? :shooting1:
Какие-то вы вещи такие обсуждаете...
Мысль вводить команды из консоли не возникала вообще. Вот только сижу думаю как же ж планировать постройку новых зданий и выбирать место для постройки.
А контроллер я ещё ни разу не апгрейднул. 18$ жалко (да и 10$ тоже жалко). Поэтому гоняю симулятор. Какой на апгрейд контроллера?! Вы воевать научились??? :shooting1:
В игре, без апгрейда контроллера, ты не сможешь строить нормальных крипов. Базовая максимальная стоимость крипов 300. С крипами 300 все что надо делать - это поскорее апнуть контроллер, и апать его надо все время ибо это расширяет максимальную стоимость крипа которого ты можешь построить. Я например щас строю таких крипов
То для каждого крипа эта команда выполнится по разу. Тоесть одну и ту же команду, вы выполните 3 раза, при этом каждый из 3-х крипов, кинется атаковать одногу и туже цель.
У меня пока у самого так, но лучше считывать ситуацию на карте, распределять команды в памяти, и каждым крипом обращаться в память в поиске своей команды. Вы если документацию посмотрите, в игре есть такой ресурс как "процессорное время", и каждая команда имеет свою ресурсоемкость. Если писать скрипт абыкак, не стесняясь каждый раз использовать ресурсоемкие команды, то в платной игре вы получите предупреждение что вы превышаете лимит своего CPU. Вот CPU то уже и стоит денег, я играю на минимальном лимите 20CPU (при покупке за 18 баксов это 300 дней игры), и уже столкнулся с тем что надо менять логику на другую структуру, иначе скрипт будет жрать все больше и больше цпу
Добавлено:
Сообщение автоматически объединено:
Меня вынесли тут же как упала 3-х дневная защитная стена, добавил модуль для гвардов, жду результата :D