PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Safezone via Trigger


Dunkelmesser
14.06.2015, 18:01
Hallo Liebe Community...

Ich habe ein Kleines Problem bei dem Versuch einen Safezone via Trigger zu erstellen.

Trigger:

On Act:
{_x allowDamage false} Foreach thislist;

On Dea:
{_x allowDamage true} Foreach thislist;


Mein Problem:

Der Godmode geht an aber nicht wieder aus wenn ich die Zone verlasse.
Kann mir jemand helfen ?

Buliwyf
14.06.2015, 19:13
Nur zu Erklärung warum es nicht funktioniert:

Wenn Du bei der Deaktivierung mit "thisList" arbeitest, dann verbietet allein die Logik, das es nicht funktioniert. Ein Spieler, der den Auslöser verlässt, schlägt zwar bei Deiner Deaktivierungszeile an, führt auch Deinen Code aus, aber weil er nunmal nicht mehr in dem Auslöser drin ist, ist "thisList" leer. Das kommt gegen den Wind pinkeln gleich... :D

Man könnte das auf vielerlei Arten lösen. Hilfreich wäre aber eine genauere Lageinfo. Betrifft das nur Spieler oder auch KI? Ist nur Infanterie betroffen oder auch Fahr-/Flugzeuge? Was soll passieren, wenn da ein Heli drüberschwebt?

Fragen über Fragen... nichts desto trotz bin ich mir sicher, dass das gute Internet voll mit Safezone-Scripten ist. Alleinschon wegen DayZ, Altis Life etc.

Dunkelmesser
14.06.2015, 19:22
Ich habe lange gesucht aber außer arma2 scripts nichts gefunden...

Es soll nur Spieler und Fahrzeuge betreffen!
es wäre gut wenn mir jemand sagen könnte was ich verändern muss ?

Buliwyf
14.06.2015, 19:30
Naja, wenn das so anspruchlos ist dann zB so:

(vehicle player) allowDamage true;

Dunkelmesser
14.06.2015, 19:34
Aber wenn ich jetzt z.b. sage:

player1 allowdamage true;

Dann gilt das auch nur für diese einheit und nicht für alle spieler oder ??

Drunken Officer
14.06.2015, 19:43
ist es ein kreisrunder Trigger?

Wenn ja, LOKAL laufen lassen

[] spawn {
while {true} do
{
waitUntil {sleep 1; player distance getMarkerPos "MA_SZ" < 150};
(vehicle player) allowdammage false;
waitUntil {sleep 1; player distance getMarkerPos "MA_SZ" > 150};
(vehicle player) allowdammage true;
};}


Trigger feuert 2x in der Sekunde, hier nur einmal. Es sei denn, du brauchst die Schleife wirklich richtig hart, dann mußt du runter gehen mit der Zeit

Buliwyf
14.06.2015, 20:06
Aber wenn ich jetzt z.b. sage:

player1 allowdamage true;

Dann gilt das auch nur für diese einheit und nicht für alle spieler oder ??

Das ist richtig. War ja auch keine Anforderung, dass sobald ein Spieler im Auslöser ist, auch gleichzeitig alle anderen Spieler "geschützt" sein sollen.

{_x allowDamage true} forEach [allUnits, vehicles];

Damit erwischst Du sämtliche Soldaten und Flug-/Fahrzeuge.

Dunkelmesser
14.06.2015, 20:30
ist es ein kreisrunder Trigger?

Wenn ja, LOKAL laufen lassen

[] spawn {
while {true} do
{
waitUntil {sleep 1; player distance getMarkerPos "MA_SZ" < 150};
(vehicle player) allowdammage false;
waitUntil {sleep 1; player distance getMarkerPos "MA_SZ" > 150};
(vehicle player) allowdammage true;
};}


Trigger feuert 2x in der Sekunde, hier nur einmal. Es sei denn, du brauchst die Schleife wirklich richtig hart, dann mußt du runter gehen mit der Zeit

Gilt das jetzt für alle spieler (die sich in der zone um denn marker befinden) oder nur für eine einzelne einheit ??

Drunken Officer
15.06.2015, 08:04
Da es lokal läuft, jede einzelnen Spieler.
Sollen auch leer Fahrzeuge geschützt werden? Oder nur das Fahrzeug in dem ein Spieler sitzt.

Könntest du dir echt mal angewöhnen, dein Problem so genau wie möglich zu beschreiben?

Dunkelmesser
15.06.2015, 18:31
Ja auch leere fahrzeuge sollen geschützt werden...

Ja mache ich :rolleyes: