PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einheit unverwundbar machen?


SnakeWFW
15.02.2009, 22:32
Hallo,

ist es möglich eine Einheit ab einer bestimmten Stelle in der Mission unverwundbar zu machen??
Also praktisch GodMode...

Geht das und geht überhaupt GodMode?

Cyborg11
15.02.2009, 22:43
Möglich ist alles :)

Probier mal das aus. Ist aber nur auf die Schnelle geschrieben und auch nicht getestet (ist ein .sqf Skript!):
//Aufrufbar mit:
// X = [Einheitenname] execVM "deinskriptname.sqf"

_unit = _this select 0;
//Hier bitte den max. Schadenswert angeben:
_schaden = 0.4;

While {damage _unit >= _schaden} do {
_unit setdamage 0;
sleep 0.2;
};

Vienna
16.02.2009, 03:25
Gib in die Einheit bei "Initialisierung:" folgendes ein:

temp=this spawn{while{alive _this}do{_this setDamage 0;sleep 0.01}}

Dadurch wirst du laufen geheilt. Wenn du allerdings mit einem Ereignis 100% zerstört wirst, dann hilft das auch nicht.

In einer Einzel-Mission erstelle dich als Führer einer größeren Gruppe, dann kannst du nach dem Tod als anderes Gruppenmitglied weiter spielen. Dazu musst du bei allen Soldaten in Kontrolle: "Spielbar" einstellen. Mit der Taste [T] kannst du zwischen den Soldaten wechseln.

@Cyborg11, mit "spawn" ist es möglich ein Skript in SQF-Syntax direkt in eine Initialisierungs- oder Auslöserzeile zu schreiben.

burns
16.02.2009, 09:37
Geht das...?

Es sind aussagekräftige Thementitel zu wählen!
Ganz einfach aus Gründen der Ordnung, und nicht zuletzt Höflichkeit! Unter "Gibt es sowas" kann sich doch kein Mensch was vorstellen. Wenn man um Hilfe bittet, sollte man sich auch die Mühe machen das Gesuch ordentlich zu verpacken damit die Leute von denen man Hilfe erhofft, nicht dazu genötigt werden herumzuraten.

Nur mal sone Anmerkung für die Zukunft ;)

*titel änder*

Mr-Murray
16.02.2009, 10:02
Servus
Er möchte dies doch nur an einer bestimmten Stelle der Mission.
Wieso nicht einen Prüf-Trigger erstellen und folgendes reinschreiben?
Muss doch nicht immer gleich ein Skript oder eine Funktion sein ;)

Condition: GodMode AND getdammage Player > 0.1
onActivation: Player setdammage 0
Axis a/b: 0/0
Repeatedly

GodMode ist eine frei ausgedachte Variable und müsste vorher auf True
gesetzt werden. Wenn er wieder verwundbar sein soll, setzt du sie wieder auf False.

GodMode=true und später GodMode=false


Viele Grüße

Mr-Murray

MarcusErgalla
16.02.2009, 10:48
So hab ichs in Red Letter gelöst, funktioniert wunderbar für Einheiten, Fahrzeuge, Objekte usw...
SQF-Code

RedLetter_All4_InvulnerabilityUnits = [Name_Der_Einheiten];
{If(_X In RedLetter_All4_InvulnerabilityUnits) Then {_X AddEventHandler ["Hit", {_This Select 0 SetDamage 0.00}]; _X AddEventHandler ["Dammaged", {_This Select 0 SetDamage 0.00}]; _X AddEventHandler ["Killed", {_This Select 0 SetDamage 0.00}]}} ForEach List RedLetter_Initer;


:)

Vienna
16.02.2009, 11:32
Marcus, ich sollte mir die Liste der EventHandler wieder einmal durchsehen. Das wird ja immer besser. Die Kombination von "Hit" und "Dammaged" EventHandler bringts.

Von deiner Ausführung habe ich nur diese zwei EventHandler in "Initialisierung:" bei den Soldaten eingetragen, und in der Tat ist man dann unsterblich:

this AddEventHandler ["Hit", {_This Select 0 SetDamage 0}]; this AddEventHandler ["Dammaged", {_This Select 0 SetDamage 0}]

SnakeWFW
16.02.2009, 13:45
@ burns

Sry, wird nicht mehr vorkommen ;)

@ Mr. murray

Geht das auch ohne die GodMode Variable?
Ich wollte folgendes machen
Am Ende einer Mission bin ich am Flugplatz, dort stehen 10 LKWs und ein Offizier, sobald ich in einem Auslöserbereich bin(Bei Aktivierung setfuel 1.0 für 4 helis, das klappt schon) kommen diese Helis und bombardieren die LKWs, was ebenfalls klappt.
Ich bin während dem Bombardieren bei dem oben genannten Offizier und möchte, dass der Offizier, also sein TOd, als Bedingung fürs Ende der MIssion da ist, was ebenfalls klappt.

Das Problem ist nur, dass ich meistens sterbe, bevor der Offizier stirbt, sprich: Mission verloren.
Also soll ich ab nem bestimmten Wegpunkt unverwundbar sein.



Geht das denn???
Danke schonmal für Hilfe

mfg
SnakeWFW

Ps: Ach ja, Mr Murray, du hast geschrieben, wie ich unverwundbar werde. Könnte ich, falls es klappt, mit nem Wegpunkt synchronisieren, sodass das erst ab diesem Wegpunkt gilt???

Mr-Murray
16.02.2009, 13:59
Servus
Wenn du den Trigger so wie oben erstellst und bei dem Wegpunkt in die onActivation-Zeile
GodMode=true schreibst, wirst du ab genau da unverwundbar sein!

Die Bedingung beinhaltet ja den Schaden des Spielers und um zu vermeiden, dass du
schon vorher unverwundbar wirst, zusätzlich die Variable GodMode.

Setzt du die Variable später wieder auf False, wirst du wieder verwundbar werden.


Viele Grüße

Mr-Murray

SnakeWFW
16.02.2009, 14:34
Heyhey,

cool, hat geklappt, sogar perfekt.
Danke dir nochmal.

Mr-Murray
16.02.2009, 14:39
Sag ich doch ;)

Cyborg11
16.02.2009, 14:46
@Cyborg11, mit "spawn" ist es möglich ein Skript in SQF-Syntax direkt in eine Initialisierungs- oder Auslöserzeile zu schreiben.
Ah cool danke. Wieder was dazu gelernt :daumen:


@T: Schon cool wie viele Möglichkeiten es für ein und das selbe gibt :naughty:

Vienna
16.02.2009, 15:05
Ein- und Ausschalten geht auch einfach nur mit Auslöser.

Erstelle einen Mehrfachauslöser und verbinde ihn über Gruppen (F2) mit dem Spieler.

Dann schreibst du folgend in Bei Akt:

Player AddEventHandler ["Hit", {_This Select 0 SetDamage 0}]; Player AddEventHandler ["Dammaged", {_This Select 0 SetDamage 0}]

und Bei Deakt:

Player removeAllEventHandlers "hit"; Player removeAllEventHandlers "Dammaged"

So bist du im Auslöserbereich unsterblich.


PS: wenn du das nur so machst:

Bedingung: getdammage Player > 0.1
BeiAkt.: Player setdammage 0

dann überlebst du einen 100% Treffer nicht.