2014-11-21 14 views
12

Durante la riproduzione di screeps Non riesco a capire come attaccare un nemico. Ecco cosa ho provato.Come attacco un nemico in Screeps

ho creato il mio attaccante scorrimento:

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

Poi, quando il primo nemico è venuto sullo schermo ho provato a fare funzionare questo comando e viene a mancare.

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

Qual è la sintassi corretta per i nemici?

Modifica: Aggiunta del collegamento per la documentazione per l'accesso agli oggetti nel gioco. http://screeps.com/docs/Creep.php

"Player 3" è il nome dei nemici. Ho bisogno di qualcuno come bersagliare il nemico e combatterlo.

+6

Se non conosci il gioco non odi sulla domanda! Questo è perfettamente chiaro! Vuole sapere come attaccare cose nel gioco. Ho avuto la stessa domanda e mi ci è voluto un sacco di ricerche sulla documentazione per capirlo. Sono molto confuso sul motivo per cui la gente pensa che questo sia confuso, poco chiaro o comunque una cattiva domanda. Ha fornito un codice di esempio di ciò che ha provato e ha posto una domanda. Non sono sicuro di cos'altro potrebbe fare per renderlo più chiaro. – dlkulp

+0

@dlkulp "Ho provato a eseguire questo comando e fallisce." è una descrizione di errore piuttosto zoppo e MOLTO inutile per essere "aiutanti" ... non sei d'accordo? –

+2

@PaulZahra No! Non quando c'è una descrizione chiara del comportamento previsto e del codice di esempio. Sono stato abbastanza in fretta in grado di vedere che stava usando una stringa quando avrebbe dovuto essere un riferimento a un oggetto! – dlkulp

risposta

10

Non sono sicuro del motivo per cui stai votando così tanto, hai messo un sacco di informazioni qui! Sembra che tu sia vicino a prenderlo! Se leggi i documenti che hai collegato vedrai che è attack(target) e che la destinazione è un oggetto. Attualmente stai passando attack() una stringa, "Player 3". Affinchè la funzione di attacco possa effettivamente bersagliare qualcosa devi dargli un oggetto. Provare qualcosa di simile:

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]); 

Questo codice:

  1. Crea un creep nome Attacker1 e assegna l'oggetto in una var chiamato attaccante
  2. utilizza la funzione dell'attaccante find() per trovare tutti i nemici e li assegna a un array chiamato nemici
  3. Sposta l'attaccante al primo nemico dell'array (.attack() funziona solo vicino)
  4. Attacca il primo nemico nella schiera di nemici
+0

Questo ha funzionato. Come sapevi usare HOSTILE_CREEPS? Non lo vedo nella documentazione. Grazie. – parkour86

+0

[qui] (http://screeps.com/docs/Room.php) sotto 'find (type, [opts])'. Ha preso un po 'di ricerca, non proprio sicuro del motivo per cui è nella pagina della stanza. – dlkulp