CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Unzerstörbarer NPC

Nach unten 
+2
Limeox
Dark
6 verfasser
AutorNachricht
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Unzerstörbarer NPC Empty
BeitragThema: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyDo Jul 08, 2010 10:31 pm

Wie setzt man am esten um, dass ein NPC nicht verbrennt, oder stirbt?
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyDo Jul 08, 2010 10:48 pm

Ganz neu beim Programmieren und schon wilst du dich an Effekte wagen Very Happy?

Ihn nicht anbrennen zu lassen geht noch relativ leicht. Wenn ein Objekt entzündet wird, wird darin die Funktion Incineration() von der Engine aufgerufen. In diesem Aufruf kannst du das Objekt ganz einfach wieder löschen.
Code:
protected func Incineration() {
  Extinguish();
}
Damit es keinen Schaden erhält, müssen aber schon schwerere Geschütze aufgefahren werden.
Zuerst sollte es von Objekten nicht getroffen werden. Sobald man zB einen Stein auf einen Clonk wirft, wird im Clonk QueryCatchBlow() aufgerufen. Wenn diese Funktion einen Wert != 0 zurückgibt, wird er nicht getroffen.
Code:
protected func QueryCatchBlow() {
  return true;
}
Weiterhin sollte er nicht von Explosionen verschleudert werden. Wird ein Objekt von einer Explosion getroffen, wird OnShockwaveHit() aufgerufen. Gibt diese Funktion einen Wert != 0 zurück, bleibt es von der Explosion unbehelligt.
Code:
public func OnShockwaveHit() {
  return true;
}


Alternativ gehts auch über Effekte. Siehe dazu den Bild-Link in meiner Signatur.
Du kannst dem NPC einen Unverwundbarkeitseffekt anhängen und alles abblocken (Schaden, Feuer, wegschleudern), wenn es diesen Effekt hat.
Ich poste dir hier einfach mal den Script. Um ihn vollkommen zu verstehen, musst du dich wohl durchs Tutorial wühlen. x)
Code:
protected func Initialize() {
  AddEffect("Unverwundbarkeit", this, 300, 0, this);
  return _inherited(...);
}

protected func FxUnverwundbarkeitDamage() {
  return;
}

protected func FxUnverwundbarkeitEffect() {
  return -1;
}

protected func QueryCatchBlow() {
  return GetEffect("Unverwundbarkeit", this);
}

protected func OnShockwaveHit() {
  return GetEffect("Unverwundbarkeit", this);
}
Optimal wäre es noch ein paar globale Funktionen auszuhebeln, aber das sollte man bestenfalls unterlassen Very Happy
Nach oben Nach unten
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyDo Jul 08, 2010 11:01 pm

ich machs erstmal ohne effekte und setz mich ans tut Very Happy
Nach oben Nach unten
Dark
Oberst
Oberst
Dark


Männlich Alter : 29
Ort : Deutschland/Frankfurt Main
Anmeldedatum : 07.07.10

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyDo Jul 08, 2010 11:11 pm

das

Code:
protected func Incineration() {
  Extinguish();
}

geht bei mir nicht. Ich habe den Code in die Script.c vom Szerario kopiert. dann hab ich einfach mal den Spieler per Brandbombe angezünded, aus dem Feuer gelaufen und er ist weiter gebrannt. Sad was mache ich falsch?
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyDo Jul 08, 2010 11:16 pm

Die Funktion muss im anbrennenden Objekt sein.
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyFr Jul 09, 2010 2:27 pm

Bla blub, die beste möglichkeit nen NPC unzerstörbar zu machen ist die Category auf C4D_Object zu setzen oder eine andere.
Nach oben Nach unten
http://www.gamer95.npage.de/
Wipfmagus
Konteradmiral
Konteradmiral
Wipfmagus


Weiblich Alter : 28
Anmeldedatum : 06.03.10

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyFr Jul 09, 2010 2:58 pm

Diese Methode ist aber nicht kompatibel mit vielen Dingen... manches funktioniert dann nicht korrekt. Das Lebewesenradar zum Beispiel wird dann wimni nicht mehr auf den unverwundbaren Clonk reagieren, und andere Dinge, die auf nahe Lebewesen ansprechen sollen, auch nicht.
Deshalb sind imo die Methoden mit Effekt und die mit CatchBlow in den meisten Fällen doch besser.
Nach oben Nach unten
Gurkenglas
Oberst
Oberst



Anmeldedatum : 04.01.09

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyFr Jul 09, 2010 3:39 pm

Es gibt auch eine andere Methode, die nicht dokumentiert ist und genau auf diesen Fall passt:
Jedes Objekt hat einen "Layer", in welchem es mit anderen Objekten interagieren kann. Standardmäßig sind alle Objekte im Standardlayer "0". Aus unerfindlichen Gründen sind die Namen aller Layer Verweise auf Objektexemplare, oder 0. Wenn du also willst, dass ein Objekt nicht von Feuer angesteckt wird, nicht von Objekten getroffen und nicht einem von Explosionen betroffen, setze es mit obj->SetObjectLayer(obj) in den Layer, dessen Bezeichnung das Objekt selber ist. mit Materialien würde der NPC genauso interagieren wie sonst, also zB in Lava durchaus auch verbrennen. Vorsicht, viele Schadenzufüger wie Hazard (da bin ich mir nicht ganz sicher) und Eke ignorieren das Layersystem, aber wenn du solche Packs nicht benutzt, werden die die Layer sicher zufriedenstellen.
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC EmptyFr Jul 09, 2010 9:10 pm

Das gehört eigentlich eher in Anfragen anstelle von Skripthilfe. Ich verschiebs mal
Nach oben Nach unten
Gesponserte Inhalte





Unzerstörbarer NPC Empty
BeitragThema: Re: Unzerstörbarer NPC   Unzerstörbarer NPC Empty

Nach oben Nach unten
 
Unzerstörbarer NPC
Nach oben 
Seite 1 von 1

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Anfragen-
Gehe zu: