Nö weils ne clientseitige Funktion ist
Beiträge von blackfisch
-
-
Erst abmachen, klar fehlt der Cleanup
war ursprünglich auch nicht für Altis Life geschrieben -
Mhm komisch
Welche ist eigentlich egal
@Roo1 aber versuchs mal benjin -
Vor den Dialogs? Wut? Zeig bitte mal die Datei
-
.... Wies dort steht. Datei öffnen und einfügen
-
Alles anzeigen
Funktioniert für 4.4r4 auch wunderbar danke dafür das einzige wann du das blaulicht drauf läst und das fahrzeug in die garage packst steht es am boden

einen error habe ich aber im log
17:34:40 Error in expression < _veh) exitWith {};
if !(typeOf _veh in emergLight_vehicles) exitWith {};
if (i>
17:34:40 Error position: <emergLight_vehicles) exitWith {};
if (i>
17:34:40 Error Undefined variable in expression: emerglight_vehicles
17:34:40 File mpmissions\__cur_mp.Altis\core\scripts\fn_lightsOn.sqf, line 10
Das nimms ab :p Dafür ist es nicht konzipiert
Schritt 1 beachtet? -
da hab ich nichmal dran gedacht xD Kann man ja aber ohne Probleme anpassen
-
Video ist angehängt

Ich frage mich nur was das für eine Position ist am Fahrzeug? Wie kann ich die herausfinden? Per AttachTo im Editor?
Ja genau oder das hier ist da auch ganz nützlich: http://www.armaholic.com/page.php?id=31072
-
...Da hab ich sogar ein Video gemacht, lad ich dann mal hoch und füg es ein

-
Angekündigt schon vor Ewigkeiten, nie Bock gehabt das mal in Textform zu fassen xD
-
Nö und Ja. Wenns drauf bliebe wär's bisschen arg sinnlos und es ist ne Abfrage drin ob Aufsteckblaulicht oder nicht -> demnach wird das oder das normale angemacht
-
-
Da in letzter Zeit vermehrt Anfragen kamen, klatsch ich das hier einfach mal in den Raum :p Das ganze gibt's auch nochmal im Github: https://github.com/BlackFisch/AttachableLightbar
Script: Aufsteckblaulicht für die Polizei
Version: Altis Life 4.4 und aktueller
Schiwerigkeitsgrad: Fortgeschrittener (mittel)
Funktionen:
~ Blaulicht zum Aufstecken (STRG+L)~ Anpassbare Koordinaten für jedes Fahrzeug (Config_EmergLights.hpp - Erklärung enthalten)
~ Manuell ein- und ausschaltbar (SHIFT+L)
Rechtliche Hinweise (Copyright):
Lizensiert unter CC BY-NC-SA 3.0 (https://native-network.net/dereferer/?ref…y4wL2RlLw%3D%3D)
unter Beachtung der APL-SA Lizenz (https://www.bistudio.com/community/lice…nse-share-alike)Dieses Script ist veröffentlicht unter der Creative Commons BY-NC-SA Lizenz unter Beachtung der Bohemia Interactive Arma Public License Share Alike (APL-SA). Jede Bearbeitung des Materials ist damit erlaubt, darf jedoch nicht zu kommerziellen Zwecken genutzt oder verkauft werden. Weiterhin ist Namensnennung Pflicht und die bearbeiteten Daten müssen zur Weiterverwendung der Arma 3-Community frei zur Verfügung stehen.
Das heißt im Klartext: Die Header in den Dateien sind beizubehalten und nicht abzuändern ("Edited by:" darf eingefügt werden, der Ursprüngliche Autor, ich, muss weiterhin erkenntlich sein!) und jeder ist automatisch berechtigt, eure bearbeiteten Dateien weiterzuverarbeiten oder selbst zu verwenden.
Da mich dieses Script einiges an Arbeit und vor Allem Zeit gekostet hat bitte ich darum euch daran zu halten, da ich kein Interesse darin habe, rechtliche Schritte gegen irgendjemanden einzuleiten. Viel Spaß NN-Community

Nun zum eigentlichen Teil dieses Posts...
Anleitung:1. Öffnet eure init.sqf und fügt folgendes am Ende ein:
CemergLight_vehicles = []; { emergLight_vehicles pushBack (configName _x); } forEach ("true" configClasses (missionConfigFile >> "emergLightVehicles"));2. Fügt in eurer description.ext unter #include "config\Config_Master.hpp" folgendes ein:
3. Erstellt im Hauptverzeichnis eine neue Datei Config_EmergLights.hpp mit folgendem Inhalt:
C
Alles anzeigenclass emergLightVehicles { class C_SUV_01_F { pos[] = { 0.4, -0.05, 0.32 }; }; /* +++ Config Example +++ New Vehicles: class Vehicle_Class_Name { pos[] = { x, y, z }; // coordinates relative to vehicle }; vehicles with same coordinates (e.g. same vehicle, different skin & class): class Vehicle_Class_2: Vehicle_Class_Name {}; // "Vehicle_Class_2" gets the same attributes as "Vehicle_Class_Name" */ };4. Öffnet eure CfgRemoteExec.hpp und tragt bei den Functions for everyone folgendes ein:
5. Öffnet eure Functions.hpp und fügt über der class Life_Client_Core folgendes ein:
Codeclass blackfisch_Functions { tag = "bf"; class Scripts { file = "core\scripts"; class lights {}; class lightsOn {}; }; };6. Erstellt einen neuen Ordner scripts im core Ordner
7. Erstellt eine neue Datei fn_lights.sqf im Ordner scripts mit folgendem Inhalt:
C
Alles anzeigen/* File: fn_lights.sqf Author: blackfisch Based on code by: nflug Description: Aufsteckblaulicht */ private _vehicle = vehicle player; private _vehType = typeOf _vehicle; if (isNull objectParent player) exitWith {}; //not in a vehicle if (!alive player) exitWith {}; //not alive if !(driver _vehicle isEqualTo player) exitWith {}; //not the driver if !(_vehType in emergLight_vehicles) exitWith {}; //not defined vehicle private _attachPoint = getArray(missionConfigFile >> "emergLightVehicles" >> _vehType >> "pos"); //get coordinates of attachment point private _class = "Land_Camping_Light_off_F"; //classname of the object if !(_vehicle getVariable ["light",false]) then { _vehicle setVariable ["light",true,true]; _blaulicht = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _vehicle setVariable ["lightObj",_blaulicht,true]; _blaulicht attachTo [_vehicle, _attachPoint]; } else { _vehicle setVariable ["light",false,true]; _vehicle setVariable ["lightObj",objNull,true]; { if ((typeOf _x) isEqualTo _class) then { _vehicle setVariable ["lights",false,true]; //detach _x; deleteVehicle _x; }; } forEach (attachedObjects _vehicle); };8. Erstellt eine neue Datei fn_lightsOn.sqf im Ordner scripts mit folgendem Inhalt:
C
Alles anzeigen/* File: fn_lightsOn.sqf Author: blackfisch Description: Main functions for lights */ if !(params [["_veh", objNull, [objNull]]]) exitWith {}; //why no parameter cyka? private _lightObj = _veh getVariable ["lightObj",objNull]; if (isNull _veh) exitWith {}; if !(typeOf _veh in emergLight_vehicles) exitWith {}; //not defined vehicle if (isNull _lightObj) exitWith {}; private _color = [0.1, 0.1, 10]; //setup the color //create the light _light = "#lightpoint" createVehicle (getPos _lightObj); _light setLightDayLight true; _light setLightColor _color; _light setLightAmbient [0.1,0.1,1]; _light lightAttachObject [_lightObj, [0, 0, 0.07]]; _light setLightAttenuation [0.181, 0, 1000, 130]; _light setLightBrightness 0.05; _light setLightIntensity 10; _light setLightDayLight true; for "_i" from 0 to 1 step 0 do { if !(_veh getVariable ["lights",false]) exitWith {}; _light setLightBrightness 6; uisleep 0.05; _light setLightBrightness 0.05; uisleep 0.05; _light setLightBrightness 6; uisleep 0.05; _light setLightBrightness 0.05; uisleep 0.15; }; waitUntil {!(_veh getVariable ["lights",false])}; deleteVehicle _light;9. Öffnet eure fn_keyHandler.sqf (zu finden in core\functions) und ersetzt eure case 38 durch folgende:
C
Alles anzeigencase 38: { private _veh = vehicle player; if (_ctrlKey && {!_shift} && {!isNull objectParent player} && {(driver _veh) isEqualTo player} && {playerSide isEqualTo west}) then { call bf_fnc_lights; _handled = true; }; if (_shift && {!_ctrlKey} && {!isNull objectParent player} && {(driver _veh) isEqualTo player} && {playerSide isEqualTo west}) then { if (!isNull (_veh getVariable ["lightObj",objNull])) then { if (_veh getVariable ["lights",false]) then { _veh setVariable ["lights",false,true]; } else { _veh setVariable ["lights",true,true]; [_veh] remoteExec ["bf_fnc_lightsOn",0]; }; } else { if ((typeOf _veh) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then { if (!isNil {_veh getVariable "lights"}) then { if (playerSide isEqualTo west) then { [_veh] call life_fnc_sirenLights; } else { [_veh] call life_fnc_medicSirenLights; }; _handled = true; }; }; }; _handled = true; }; };Fertig!
Das war's schon!Hier noch eine kleine Vorschau:
Externer Inhalt youtu.beInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Ich wünsche euch Viel Spaß mit dem Script

-
Der Unterschied liegt im Multiplayer:
SetObjectTexture -> nur lokal bei dem es ausgeführt wird
SetObjectTextureGlobal -> global bei jedem Spieler sichtbar
-
Ich verstehe nur dein Problem grade nicht?
Er hat doch oben explizit die Äquivalente geschrieben, die kannst du an sich so direkt übernehmen 
-
wenn du es im editor lokal machst reicht völlig this setObjectTexture[0,"skin1.paa"]; this setObjectTexture[1,"skin2.paa"];
Das mit den Selections steht da aber übrigens auch erklärt
-
Nutzt du Google tust du finden: https://community.bistudio.com/wiki/setObjectTextureGlobal
-
while {true} do; Den Fehler seh ich sogar schon auf dem Bild ohne die Datei oder Logs gesehen zu haben (Logs anhängen beim nächsten Mal!) -> Semikolon nach einem do vor einer Klammer - du beendest die Anweisung bevor sie zu Ende ist
-
Er hat die Lösung doch gepostet? Das geht jetzt direkt über Macros bzw. wird aus der missionConfigFile gelesen
-
Model != Skin.... lernt das bitte.... und du solltest dich wirklich mal ein wenig einarbeiten wenn du nicht mal weißt wie du Skins einfügst. Kleiner Tipp, da hilft Google https://board.nitrado.net/support-de-german-only/support-gameserver/arma/arma-3-altis-life/109209/altislife-4-3-skins-einf-gen/?#post707061
Dritte Frage core\init.sqf
Und wie gesagt, arbeite dich mal ein bisschen in den Framework ein... Config_Vehicles war eigentlich schon naheliegend