Подтвердить что ты не робот

Как атаковать врага в Screeps

Во время игры screeps я не могу понять, как атаковать врага. Вот что я пробовал.

Я создал атакующего злоумышленника:

Game.spawns.Spawn1.createCreep(['attack','move'],'Attacker1');

Затем, когда первый враг вышел на экран, я попробовал запустить эту команду, и он не работает.

Game.creeps.Attacker1.attack("Player 3");

Каков правильный синтаксис для врагов?

Изменить: Добавление ссылки для документации для доступа к объектам в игре. http://screeps.com/docs/Creep.php

"Игрок 3" - это имя врагов. Мне нужно, чтобы кто-то нацелил врага и сразился с ними.

4b9b3361

Ответ 1

Я не уверен, почему вы так сильно проголосовали, вы здесь много информации! Похоже, вы близко к этому! Если вы прочтете документы, с которыми вы связались, вы увидите, что он говорит attack(target), и цель - это объект. В настоящее время вы передаете attack() строку, "Player 3". Чтобы функция атаки действительно нацелилась на что-то, вам нужно дать ему объект. Попробуйте что-то вроде этого:

Game.spawns.Spawn1.createCreep([Game.ATTACK, Game.MOVE],'Attacker1');
var attacker = Game.creeps.Attacker1;
var enemies= attacker.room.find(Game.HOSTILE_CREEPS);
attacker.moveTo(enemies[0]);
attacker.attack(enemies[0]);

Этот код:

  • Создает ползучесть с именем Attacker1 и назначает объект переменному имени атакующего
  • Использует функцию злоумышленника find(), чтобы найти всех врагов и назначает их массиву с именем враги.
  • Перемещает вашего атакующего к первому врагу в массиве (.attack() работает только близко)
  • Атакует первого врага в массиве врагов