06.10.2014, 17:19 | #1 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Soldat soll mehr Schaden aushalten
Hallo zusammen,
ich weiß, dass ich einen Soldaten heilen kann, wenn "das Leben" unter einen gewissen Wert sinkt (mir fiel grade kein passenderer Name ein). Generell ist es ja zwischen 1 und 0.1... 0 = Tod, soweit ich weiß. So, nun würde ich gerne einen Soldaten haben der nichts besonderes ist, außer dass er mehr Kugeln abhält... z.B. 5 mal geheilt wird und danach stirbt (z. B. als Endgegner). Nun was passiert, wenn dieser Soldat einen Headshot kassiert? Ist er dann tod oder wird er sofort geheilt? Natürlich ist mir klar, dass das etwas auf die Umsetzung ankommt... Aber kann mir hier jemand helfen? Wäre ein Ansatz mit einem Eventhandler hierfür geeignet oder lieber der gute alte Auslöser? Grüße und Danke Martyn
__________________
Achtung! Betrachtung des Quellcodes auf eigene Gefahr. Für Übelkeit, Erbrechen oder Kopfschmerzen übernehme ich keine Haftung ------ https://www.sol-diers.com |
06.10.2014, 20:34 | #3 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Nun ich dachte überhaupt nicht an die Verwendung eines Respawns... Es handelt sich hierbei auch um KI! :-)
__________________
Achtung! Betrachtung des Quellcodes auf eigene Gefahr. Für Übelkeit, Erbrechen oder Kopfschmerzen übernehme ich keine Haftung ------ https://www.sol-diers.com |
07.10.2014, 09:02 | #4 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Durch Eintrag von this allowDamage false in die Initialisierungszeile des Soldaten wird er unverwundbar.
Über einen Auslöser, mit SoldatName allowDamage true, schaltest du die Verwundbarkeit wieder ein. Leider Funktioniert im unverwundbaren Zustand die "Hit"-Abfrage nicht, um festzustellen wie oft der Soldat getroffen wurde. Vielleicht kennt wer eine andere Möglichkeit. |
07.10.2014, 09:59 | #5 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Danke Vienna. Diese Basics kenne ich schon :-)
Natürlich gehts mir darum eher rauszufinden, wie oft der Soldat getroffen wurde und Ihn nicht für 30 Sekunden unbesiegbar sein zu lassen. Das soll jetzt keine Kritik an deinem Post sein, sondern einfach nur klarstellen, dass der Soldat einfach nur mehr Leben haben soll. Sonst keinen großen Hokuspokus... Aber ich bin für jede Hilfe dankbar :-)
__________________
Achtung! Betrachtung des Quellcodes auf eigene Gefahr. Für Übelkeit, Erbrechen oder Kopfschmerzen übernehme ich keine Haftung ------ https://www.sol-diers.com |
07.10.2014, 10:45 | #6 (permalink) |
Registriert seit: 17.01.2008
Beiträge: 267
|
Es geht auch einfach:
PHP-Code:
__________________
Geändert von Tajin (07.10.2014 um 10:47 Uhr). |
07.10.2014, 13:01 | #7 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Sehr gut! Aber bei 0.2 ist der Soldat mit Schusswaffen nicht mehr verwundbar und bei 0.3 hält er keinen Kopfschuss aus. Das muss mit Zwischenwerten fein eingestellt werden.
Der Vorteil ist aber, dass man jetzt die Treffer zählen und darauf reagieren kann. Zum Testen der Treffer, das in die die Initzeile des Soldaten kopieren: Code:
this addEventHandler ["HandleDamage", {(_this select 2) * 0.2}]; treffer = 0; this addEventHandler ["hit", {treffer = treffer + 1;hint str treffer}] |
07.10.2014, 17:02 | #8 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Ok, probier ich nachher gerne mal aus. Nun müsste mir nur noch jemand erklären wofür in diesem fall _this select 2 und die 0.2 stehen... Und was Vienna dann mit 0.3 meint sollte sich mir ja dann erschließen.
__________________
Achtung! Betrachtung des Quellcodes auf eigene Gefahr. Für Übelkeit, Erbrechen oder Kopfschmerzen übernehme ich keine Haftung ------ https://www.sol-diers.com |
07.10.2014, 17:32 | #9 (permalink) |
Registriert seit: 17.01.2008
Beiträge: 267
|
Der "HandleDamage" Eventhandler ist in der Lage, den Schaden zu verändern, noch bevor bzw. wärend er ankommt.
Der EH gibt mehrere Werte zurück (mehr dazu hier: https://community.bistudio.com/wiki/...s#HandleDamage), _this select 2 ist dabei der tatsächliche Schadenswert. Den teile ich (in meinem Beispiel) durch 5 (x0.2 ist ja das Selbe). Der Wert der am Ende bei der Funktion rauskommt wird von dem Eventhandler dann als ankommender Schaden ans Spiel weitergegeben. In dem Fall also ein Fünftel vom eingehenden Schaden. Was den Wert angeht: Probier einfach n bissl rum was für dich gut funktioniert.
__________________
|
07.10.2014, 21:50 | #10 (permalink) |
Registriert seit: 05.11.2011
Beiträge: 235
|
Also ein normaler Zivi ohne Weste und allem hat grade von mir 2 Magazine und 1 Handgranate geschluckt...
__________________
Achtung! Betrachtung des Quellcodes auf eigene Gefahr. Für Übelkeit, Erbrechen oder Kopfschmerzen übernehme ich keine Haftung ------ https://www.sol-diers.com |
Stichworte |
boss, endboss, endgegner, schaden, soldat |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Soldat anschließen | -Max- | Editing & Scripting | 4 | 27.02.2014 14:51 |
Soldat salutiert nicht im Multiplayer... | Sol.LrMartyn | Editing & Scripting | 5 | 07.05.2013 20:06 |
Auslöser und Soldat im Auto | St3ve | Editing & Scripting | 4 | 05.04.2012 14:37 |