Mein Problem ist folgendes... Ich will ein Objekt machen das:
-man mit Doppel-Graben Aktivieren kann -es einen heilt wenn man 20% Gesundheit oder weniger hat -und es einen dann 5 sec (165 frames) lang Unverwundbar macht.
Mit dem Heilen Funktioniert es schon, aber ich weis nicht wie ich das mit der Unverwundbarkeit hin bekomme.
Hoffe jemand kann mir helfen
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Unverwundbarkeit? Mi Jun 23, 2010 11:36 pm
Ein Effekt. Jeder Effekt kann sich zu Wort melden, wenn der betroffene Clonk (oder das Lebewesen, oder der Stein, wo der Effekt eben dranhängt) Schaden bekommt. Der Rückgabewert bestimmt dann, wieviel Schaden der Effekt durchlässt. So kann man entweder den Schaden halbieren, enorm steigern oder auch komplett abblocken (return 0;).
Also vor (!) RemoveObject(): AddEffect("Invincibility", pClonk, 500, 165, 0, GetID(this)); Dafür musst du aber Activate(pClonk) als Funktion haben. Darüber hinaus solltest du GetCursor() durch pClonk ersetzen, damit es immer der richtige Clonk bekommt, sonst bekommt es immer der ausgewählte des 1. Spielers.
Im Einzelnen heißt die Zeile: Füge pClonk den Effekt "Invincibility" hinzu. Setze Prorität 500 und den Timer auf 165. Alle benötigten Funktionen findest du in dieser Definition (GetID(this)). Der Clonk hat nun also einen Effekt. Prorität 500 heißt einfach, dass es so ziemlich über allen anderen Effekten steht und somit jeglichen Schaden abblocken kann. GetID(this) verweist auf die Definition, wo die Callbacks drinstehen. Ein Objekt ist ja nicht möglich (daher hier 0), da es sich löscht. Der Timer steht auf 165, also würde alle 165 Frames FxInvincibilityTimer() aufgerufen. Wenn man die Funktion aber gar nicht definiert, wird der Effekt dann einfach entfernt.
Nun zum Schaden: protected func FxInvincibilityDamage(object pTarget, int iEffectNumber, int iDmgEngy) { if (iDmgEngy < 0) return; return iDmgEngy; }
iDmgEngy ist der erhaltene Schaden. Ist er < 0, wird 0 zurückgegeben - es kommt nichts durch. Höhere kommen hingegen durch, damit zB Heileffekte noch funktionieren.
protected func FxInvincibilityDamage(object pTarget, int iEffectNumber, int iDmgEngy) { if (iDmgEngy < 0) return; return iDmgEngy; }
Thoros Generalmajor
Anmeldedatum : 22.09.09
Thema: Re: Unverwundbarkeit? Do Jun 24, 2010 12:27 am
Erstmal Danke für die Hilfe! Aber: -Das Object geht nicht weg nach benutzung. -Der Clonk bekommt immer noch schaden.
Und noch wegen dem Schaden: Wird jeder Schaden verhindert? Weil ich habs mit dem Chaosgewehr (aus dem alten Hazard Pack) und mit abwerfen getestet. Bei beidem bekam der Schaden.
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Unverwundbarkeit? Do Jun 24, 2010 12:38 am
Oh, da ist eine Klammer zu viel. Nach dem if (...) einfach die öffnende geschweifte Klammer rausnehmen, und es klappt. Sollte die Engine aber eig auch als Fehler ausspucken^^
Edit: Ja, jeder Schaden wird verhindert.
awed Kadett
Ort : berlin Anmeldedatum : 24.02.10
Thema: Re: Unverwundbarkeit? Do Jun 24, 2010 8:33 pm
Ich würd empfehlen bei RemoveObject() this() in die klammer zu schreiben
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Unverwundbarkeit? Do Jun 24, 2010 9:40 pm
this hat denselben Effekt wie 0. Hier zumindest. Siehe Doku:
Zitat :
0 bei lokalem Aufruf.
Und 0 kann man weglassen, also reicht auch RemoveObject(). Und die Klammern bei this sind veraltet.
Thoros Generalmajor
Anmeldedatum : 22.09.09
Thema: Re: Unverwundbarkeit? Fr Jun 25, 2010 3:40 pm
Es geht jetzt. Der fehler war das bei "this" von...
C4AulExec (SDHG:SDHG)::Activate[1] execution break: parser error at this position
Aber er tut was er machen soll. Was heißt aber diese Meldung?
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Unverwundbarkeit? Fr Jun 25, 2010 3:44 pm
Hm. Angesichts der Fehlermeldung und der Tatsache, dass this nicht tut, sondern nur this(), nehme ich mal an, du nutzt nicht CR? Jedenfalls hat er nen Parserfehler. Dürfte wohl an return 1; liegen, das bei CE/CP return(1); heißen muss.
Thoros Generalmajor
Anmeldedatum : 22.09.09
Thema: Re: Unverwundbarkeit? Sa Jun 26, 2010 8:19 pm
Naja. Es tut was es soll. Das zählt doch^^ Thx für alle die geholfen haben!
Pitri Feldmarschall
Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Re: Unverwundbarkeit? Sa Jun 26, 2010 10:08 pm