Clonk-Center Titelbild

Inserate / Zap, der nicht wegfliegt




Schreibermo_sc
Datum25.10.2008 21:00:40
KategorieClonkscript:Künstliche Intelligenz
StatusAbgeschlossen
InteressierteFaby


Ich würde demjenigen 10 Clunker bieten, der mir das script für einen Zap geben kann, der einen bestimmten Bereich um ein Objekt nicht verlässt und nicht stirbt und sticht. Der bereich sollte 50 Pixel lang und 40 Pixel hoch sein.


11 Kommentare


27.10.2008 13:28 von mo_sc:
Wo sollte ich das deiner Meinung reinschreiben :wired:

27.10.2008 6:54 von Feuermonster:
Uhm. Ich halte FindObject(ZPSK) fuer aeusserst gewagt, vorallem wenn mehrere Objekte mit dieser ID existieren.
Was spricht gegen
for(var pZapStock in FindObjects(Find_ID(ZPSK),Find_Distance(70),Sort_Distance())) {
  vobj = pZapStock; break
}

oder aehnlich?

26.10.2008 17:01 von Faby:
danke!

26.10.2008 17:00 von mo_sc:
Thx es geht :D
Ich geb dir 10 Clunker.

26.10.2008 16:36 von Faby:
setz das vobj=FindObject(ZPSK); in die initialize funktion des zaps

26.10.2008 16:31 von mo_sc:
Ich habs getested und es funktioniert nicht ganz. :/
Wenn ich meinen Zapstock platziere, werden zwar einige Zaps geschaffen, die immer drumrumfliegen, wenn ich jedoch einen zweiten baue, verlassen sie ihren alten und fliegen zum neuen. :(

26.10.2008 16:05 von mo_sc:
Also das alles wär für ein Gebäude. Es Heist Zapstock und hat die ID ZPSK. Es sollen eben Zaps immer rundrumfliegen, die bei Initialize erschaffen werden. Ich kopier das mal ins Zapscript und schau ob sie um den ZPSK fliegen. ;)

26.10.2008 14:56 von Faby:
sorry dass findobject(clnk) war nur zum testen
ich wollts eig. rauslöschen

26.10.2008 12:45 von Enrique:
Der unten stehende Script lässt den Zap aber immer einen Clonk, nicht ein beliebiges Objekt suchen. Also mo_sc du musst nur das was du finden willst in FindObject() schreiben.

26.10.2008 12:21 von Faby:
So ich habs:
/*-- Zap --*/

#strict

local vobj;

private func Flying() { // wird alle 3 Frames aufgerufen
  var xdir,ydir;

  // nichts tun
  if(Random(3)) return(1);
  // Geschwindigkeit zufällig bestimmen
  vobj=FindObject(CLNK);
  xdir=Random(13)-6;
  ydir=Random(9)-4;
  xdir+=BoundBy((GetX(vobj)-GetX()),-50,50);
ydir+=BoundBy((GetY(vobj)-GetY())/3,-40,40);
  if(GBackLiquid(xdir,ydir)) return(SetSpeed());
  SetSpeed(xdir,ydir);
  
}

protected func Check() { // wird alle 18Frames aufgerufen
  var obj;

  if(!Random(50)) Sound("Bsss");

}

protected func Initialize() {
  SetAction("Fly");
  SetPhase(Random(6));
}


//zap sticht  nicht mehr und stirbt nicht mehr und verfolgt immer vobj

26.10.2008 11:37 von Faby:
mal sehen was sich machen lässt