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

Austausch | 
 

 Unzerstörbarer NPC

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Dark
Oberst
Oberst
avatar

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

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

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

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Unzerstörbarer NPC   Do 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
Benutzerprofil anzeigen
Dark
Oberst
Oberst
avatar

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

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

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

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

BeitragThema: Re: Unzerstörbarer NPC   Do 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
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

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

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

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

BeitragThema: Re: Unzerstörbarer NPC   Fr 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.

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Wipfmagus
Konteradmiral
Konteradmiral
avatar

Weiblich Alter : 22
Anmeldedatum : 06.03.10

BeitragThema: Re: Unzerstörbarer NPC   Fr 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
Benutzerprofil anzeigen
Gurkenglas
Oberst
Oberst


Anmeldedatum : 04.01.09

BeitragThema: Re: Unzerstörbarer NPC   Fr 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
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 24
Anmeldedatum : 21.12.08

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

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




BeitragThema: Re: Unzerstörbarer NPC   

Nach oben Nach unten
 
Unzerstörbarer NPC
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1

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