2014-11-21 3 views
12

screeps을 재생하는 동안 적을 공격하는 방법을 알 수 없습니다. 여기 내가 시도한 것이있다. 첫 번째 적 내가이 명령을 실행 시도하고 실패 화면에 왔을 때 그런Scright에서 적을 공격하는 방법

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

:

나는 나의 공격자 크리프를 만들었습니다.

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

적의 올바른 구문은 무엇입니까?

편집 : 게임에서 개체에 액세스하기위한 설명서 링크 추가. http://screeps.com/docs/Creep.php

"플레이어 3"은 적 이름입니다. 나는 적을 목표로 삼아 그들을 싸우는 방법을 필요로한다.

+6

게임에 대한 질문이 싫어지면 알려주세요. 이것은 완벽하게 명확합니다! 그는 게임에서 물건을 공격하는 법을 알고 싶어합니다. 나는 똑같은 질문을했고 그것을 알아 내기 위해 문서를 파고 들었다. 나는 사람들이 이것이 왜 혼란스럽고 불확실하다고 생각하는지, 그렇지 않으면 나쁜 질문이라고 생각하는지에 대해 매우 혼란 스럽다. 그는 그가 시도하고 질문 한 것에 대한 예제 코드를 제공했습니다. 이 사실을 더 명확히하기 위해 그가 할 수있는 일이 무엇인지 모르겠습니다. – dlkulp

+0

@dlkulp "이 명령을 실행하려고 시도했지만 실패합니다." 꽤 절름발이 오류 설명이며 매우 도움이되지 않을 것입니다 '도우미'... 당신은 동의하지 않니? –

+2

@PaulZahra 아니요! 예상되는 동작 및 예제 코드에 대한 명확한 설명이있는 경우가 아닙니다. 객체 참조가되어야 할 때 문자열을 사용하고 있다는 사실을 꽤 빨리 알 수있었습니다! – dlkulp

답변

10

내가 왜 그렇게 많은 표를 얻었는지 확신 할 수 없지만 여기에 많은 정보를 올려 놓았습니다! 당신이 그것을 얻는 것 가까이에있는 것처럼 보입니다! 링크 된 문서를 읽으면 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]); 

이 코드 : 이런 식으로 뭔가를 시도

  1. Attacker1라는 이름의 크리프를 작성해
  2. 공격자라는 VAR에 개체를 할당 모든 원수를 찾기 위해 공격자의 find() 기능을 사용하고에 할당합니다 적군 배열
  3. 공격자를 배열의 첫 번째 적에게 이동시킵니다. (.attack()은 가까운 범위에서만 작동합니다)
  4. 적의 배열에서 첫 번째 적을 공격하십시오.
+0

이것은 효과가 있습니다. HOSTILE_CREEPS의 사용법을 어떻게 알았습니까? 나는 그 문서에서 그것을 보지 못했다. 감사. – parkour86

+0

[여기] (http://screeps.com/docs/Room.php)에서 find (type, [opts]). 약간의 검색을했는데 왜 방 페이지에 있는지 잘 모르겠습니다. – dlkulp

관련 문제