HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Chinook Innenbeleuchtung (https://hx3.de/editing-scripting-167/chinook-innenbeleuchtung-21129/)

CptMike 14.11.2011 22:40

Chinook Innenbeleuchtung
 
Hallo Kameraden!
Ich würde bitte eure Hilfe benötigen und zwar möchte ich bei einem Chinook die Innenraumbeleuchtung rot haben.
Wie muß ich diese Zeilen in einem script verarbeiten?
Sollte auf einem Dediserver gehen.

_cabinLight = "#lightpoint" createVehicle position NameHueyHeli;
_cabinLight setLightBrightness 0.00075;
_cabinLight setLightAmbient [1, 0, 0];
_cabinLight setLightColor [1, 0, 0];
_cabinLight lightAttachObject [NameHueyHeli, [0, -3.25, -0.25]];

setLightBrightness = Die Lichtstärke, wie hell die Lichtquelle leuchten soll. (0-1)
setLightAmbient = Das Licht Ambiente (am besten die selben Werte wie für setLightColor)
setLightColor = Die Lichtfarbe von weiss über blau und grün zu rot (setLightColor [rot, grün, blau]
weiss = [1, 1, 1] grün = [0, 1, 1] rot = [1, 0, 0] blau = [0, 0, 1]
lightAttachObject = Hier wird das Licht an ein Objekt/Fahrzeug geheftet. (wie attachTo Befehl)

CptMike 15.11.2011 11:32

Ich muß mich an dich wenden Vienna und zwar habe ich das mit der Innebeleuchtung in einem Chinook schon hinbekommen aber wie füge ich das in dein Heliscript ein?
http://hx3.de/editing-scripting-167/.../3/#post385848
Am besten wäre es wenn er landet das er das rote Licht einschaltet.
Vielleicht hast mal Zeit Vienna bitte.
Mike

Vienna 15.11.2011 19:06

Das Skript wie im Beispiel in der Initzeile des Obj aufrufen.

Dem Skript werden 4 Parameter übergeben:

1. Objekt an die das Licht gebunden wird
2. Höhe bis zu der das Licht leuchtet (von 0 - _bisMeter)
3. Helligkeit des Lichts
4. Array für Position des Lichts am Objekt

Die Helligkeit ist im Beispiel 0.01 damit im Test besser ersichtlich.

Die Farbe ist rot. Eine andere Farbe müsste direkt im Skript geändert werden.

Skript "Kabinenlicht.sqf"
Code:

//Licht für ein Objekt

//Aufruf: [Objekt, Licht unter x Meter an, Helligkeit, [Position des Lichts am Objekt]] execVM "Kabinenlicht.sqf";

//Aufrufbeispiel für Initzeile des Helis: temp = [Heli1,50,0.01,[0, -3.25, -0.25]] execVM "Kabinenlicht.sqf";

if (!isServer) exitWith {}; //exit wenn nicht Server

private ["_Objekt","_bisMeter","_Helligkeit","_LichtPos","_Licht","_Ein"];

_Objekt    = _this select 0; // Objekt an die das Licht gebunden wird
_bisMeter  = _this select 1; // Höhe bis zu der das Licht leuchtet (von 0 - _bisMeter)
_Helligkeit = _this select 2; // Helligkeit des Lichts
_LichtPos  = _this select 3; // Array für Position des Lichts am Objekt

_Licht = "#lightpoint" createVehicle [0,0];
_Licht setLightAmbient    [1, 0, 0];
_Licht setLightColor      [1, 0, 0];
_Licht lightAttachObject  [_Objekt, _LichtPos];

while {damage _Objekt < 0.8} do  //Schleife solange Objekt nicht zerstört
  {
    if (position _Objekt select 2 > _bisMeter) then // Licht aus
      {
        _Licht setLightBrightness 0;
        //warten bis Objekt unter der Höhe
        waitUntil {damage _Objekt > 0.8 or position _Objekt select 2 < _bisMeter}
      }
    else                                            // Licht ein
      {
        _Licht setLightBrightness _Helligkeit;
        //warten bis Objekt über der Höhe
        waitUntil {damage _Objekt > 0.8 or position _Objekt select 2 > _bisMeter}
      }
  };

deleteVehicle _Licht  //Lichtobjekt löschen


/*
setLightBrightness = Die Lichtstärke, wie hell die Lichtquelle leuchten soll. (0-1)
setLightAmbient    = Das Licht Ambiente (am besten die selben Werte wie für setLightColor)
setLightColor      = Die Lichtfarbe von weiss über blau und grün zu rot (setLightColor [rot, grün, blau]
                    weiss = [1, 1, 1]  grün = [0, 1, 1]  rot = [1, 0, 0]  blau = [0, 0, 1]
lightAttachObject  = Hier wird das Licht an ein Objekt/Fahrzeug geheftet. (wie attachTo Befehl)
*/


CptMike 15.11.2011 22:02

Werde ich sofort testen Vienna.
Ja Vienna funktioniert schon mal super, aber ich habe ja keinen Heli im Editor plaziert sondern der Heli kommt ja per Aufruf in deinem Script geflogen.
Ich weiß aber nicht wie ich diesen Text verbauen soll in deinem script.

Erstmal Danke!

Vienna 15.11.2011 23:37

Wenn du das im Skript myHeli.sqf beim Helitransport verwendest, dann erstellst du dieses Skript im Ordner myHeli:

Kabinenlicht.sqf
Code:

//Rotes Heli-Kabinenlicht.  Lokaler aufruf.          [Vienna  15.11.2011]
//
//Aufruf: [Objekt, Licht unter x Meter an, Helligkeit, [Position des Lichts am Objekt]] execVM "Kabinenlicht.sqf";
//
//Beispiel: [_h,30,0.01,[0, -3.25, -0.25]] execVM "myHeli\Kabinenlicht.sqf";

private ["_Objekt","_bisMeter","_Helligkeit","_LichtPos","_Licht"];

_Objekt    = _this select 0; // Objekt an die das Licht gebunden wird
_bisMeter  = _this select 1; // Höhe bis zu der das Licht leuchtet (von 0 - _bisMeter)
_Helligkeit = _this select 2; // Helligkeit des Lichts
_LichtPos  = _this select 3; // Array für Position des Lichts am Objekt
//Licht erstellen
_Licht = "#lightpoint" createVehicle [0,0];
_Licht setLightAmbient    [1, 0, 0];
_Licht setLightColor      [1, 0, 0];
_Licht lightAttachObject  [_Objekt, _LichtPos];
//Schleife solange Objekt vorhanden
while {alive _Objekt} do 
  {
    if (position _Objekt select 2 > _bisMeter) then // Licht aus
      {
        _Licht setLightBrightness 0;
        //warten bis Objekt unter der Höhe
        waitUntil {!alive _Objekt or position _Objekt select 2 < _bisMeter}
      }
    else                                            // Licht ein
      {
        _Licht setLightBrightness _Helligkeit;
        //warten bis Objekt über der Höhe
        waitUntil {!alive _Objekt or position _Objekt select 2 > _bisMeter}
      }
  };
deleteVehicle _Licht  //Lichtobjekt löschen


Ins Helitransport-Skript myHeli.sqf bindest du das so an dieser Stelle ein:
Code:

...

// _h: Heli
  _h = createVehicle ["Mi17_Civilian", myHeliZielPosition, [], _dErst, "FLY"];

//Kabinenlicht aufrufen
  [_h,30,0.01,[0, -3.25, -0.25]] execVM "myHeli\Kabinenlicht.sqf";


...

Als Höhengrenze wären hier 30m. Die Lichtstärke ist wieder zum Testen auf 0.01 angeführt.

CptMike 16.11.2011 10:08

Kurz und bündig funktioniert perfekt auch auf einem Dediserver.

Danke Vienna


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119