Schönen guten Tag, ich habe da so mehrere Fragen. Bezüglich der Fahrzeuge: Ich habe auf dem Server ACE3 installiert, so ich möchte nun folgendes ändern: Die Farbe vom Text bei ACE soll komplett weiß sein, derzeit ist sie so grün... warum auch immer, dann wie setzt man denn Blaulichter auf Fahrzeuge? Bin gerade dabei einige neue 3D Modelle zu kreieren, nur ich hänge an den Blaulichtern fest. Dann zur Schluss frage: Wie kann ich es machen das ich mit ACE eigene Interaktionen setzen kann? Wie zum Beispiel: Reparieren, anstatt das Menü das ACE System. Das Fahrzeug Umdrehen wenn es auf dem Kopf liegt, ich finde diesbezüglich nichts und hoffe ihr könnt mir helfen, vielen Dank!
Neueinsteiger in die Life Modifikation.
-
1NickZ1 -
1. Februar 2017 um 10:20 -
Geschlossen -
Erledigt
-
-
Moin,
so mit dem ACE3 kenne ich mich nicht aus, da wir das nicht verwenden, aber zum Blaulicht kann ich dir einen Hinweis geben ;-). Ich habe jetzt mal die [lexicon]Tanoa[/lexicon] Version hier aus dem Forum genommen, aber das ist in allen Versionen identisch.
Die Blaulichter verstecken sich in 4 Dateien.
MPMission
1. musst Du die Lichter auf den Fahrzeugen definieren bzw. dran hängen. Je nachdem für welche Fraktion Du die definieren möchtest musst Du das anpassen.
C: core/cop/fn_copLights.sqf
Alles anzeigen/* File: fn_copLights.sqf Author: mindstorm, modified by Adanteh Link: http://forums.bistudio.com/showthread.php?157474-Offroad-Police-sirens-lights-and-underglow Description: Adds the light effect to cop vehicles, specifically the offroad. */ Private ["_vehicle","_lightRed","_lightBlue","_lightleft","_lightright","_leftRed"]; _vehicle = _this select 0; if (isNil "_vehicle" || isNull _vehicle || !(_vehicle getVariable "lights")) exitWith {}; _lightRed = [20, 0.1, 0.1]; _lightBlue = [0.1, 0.1, 20]; _lightleft = "#lightpoint" createVehicle getPos _vehicle; sleep 0.2; _lightleft setLightColor _lightRed; _lightleft setLightBrightness 0.2; _lightleft setLightAmbient [0.1,0.1,1]; switch (typeOf _vehicle) do { case "C_Offroad_01_F": { _lightleft lightAttachObject [_vehicle, [-0.37, 0.0, 0.56]]; }; case "B_MRAP_01_F": { _lightleft lightAttachObject [_vehicle, [-0.37, -1.9, 0.7]]; }; case "C_SUV_01_F": { _lightleft lightAttachObject [_vehicle, [-0.37,-1.2,0.42]]; }; case "C_Hatchback_01_sport_F": { _lightleft lightAttachObject [_vehicle, [-0.35,-0.2,0.25]]; }; case "B_Heli_Light_01_F": { _lightleft lightAttachObject [_vehicle,[-0.37, 0.0, -0.80]]; }; case "B_Heli_Transport_01_F": { _lightleft lightAttachObject [_vehicle, [-0.5, 0.0, 0.81]]; }; }; _lightleft setLightAttenuation [0.181, 0, 1000, 130]; _lightleft setLightIntensity 10; _lightleft setLightFlareSize 0.38; _lightleft setLightFlareMaxDistance 150; _lightleft setLightUseFlare true; _lightright = "#lightpoint" createVehicle getPos _vehicle; sleep 0.2; _lightright setLightColor _lightBlue; _lightright setLightBrightness 0.2; _lightright setLightAmbient [0.1,0.1,1]; switch (typeOf _vehicle) do { case "C_Offroad_01_F": { _lightright lightAttachObject [_vehicle, [0.37, 0.0, 0.56]]; }; case "B_MRAP_01_F": { _lightright lightAttachObject [_vehicle, [0.37, -1.9, 0.7]]; }; case "C_SUV_01_F": { _lightright lightAttachObject [_vehicle, [0.37,-1.2,0.42]]; }; case "C_Hatchback_01_sport_F": { _lightright lightAttachObject [_vehicle, [0.35,-0.2,0.25]]; }; case "B_Heli_Light_01_F": { _lightright lightAttachObject [_vehicle,[0.37, 0.0, -0.80]]; }; case "B_Heli_Transport_01_F": { _lightright lightAttachObject [_vehicle, [0.5, 0.0, 0.81]]; }; }; _lightright setLightAttenuation [0.181, 0, 1000, 130]; _lightright setLightIntensity 10; _lightright setLightFlareSize 0.38; _lightright setLightFlareMaxDistance 150; _lightright setLightUseFlare true; //ARE YOU ALL HAPPY?!?!?!?!?!?!?!?!?%#?@WGD?TGD?BN?ZDHBFD?GA _lightleft setLightDayLight true; _lightright setLightDayLight true; _leftRed = true; while{ (alive _vehicle)} do { if (!(_vehicle getVariable "lights")) exitWith {}; if (_leftRed) then { _leftRed = false; _lightright setLightBrightness 0.0; sleep 0.05; _lightleft setLightBrightness 6; } else { _leftRed = true; _lightleft setLightBrightness 0.0; sleep 0.05; _lightright setLightBrightness 6; }; sleep (_this select 1); }; deleteVehicle _lightleft; deleteVehicle _lightright;
2. musst Du die Fahrzeuge in der folgenden Datei konfigurieren
Code: core/cop/fn_sirenLights.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_sirenLights.sqf Author: Bryan "Tonic" Boardwine Description: Lets play a game! Can you guess what it does? I have faith in you, if you can't then you have failed me and therefor I lose all faith in humanity.. No pressure. */ private ["_vehicle"]; _vehicle = param [0,objNull,[objNull]]; if (isNull _vehicle) exitWith {}; //Bad entry! if (!(typeOf _vehicle 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"])) exitWith {}; //Last chance check to prevent something from defying humanity and creating a monster. _trueorfalse = _vehicle getVariable ["lights",false]; if (_trueorfalse) then { _vehicle setVariable ["lights",false,true]; } else { _vehicle setVariable ["lights",true,true]; [_vehicle,0.22] remoteExec ["life_fnc_copLights",RCLIENT];
3. den Keyhandler anpassen. Hier nur mal der Schnipsel, da das sonst zuviel wäre
C: core/functions/fn_keyHandler.sqf
Alles anzeigencase 38: { //If cop run checks for turning lights on. if (_shift && playerSide in [west,independent]) then { if (!(isNull objectParent player) && (typeOf vehicle player) 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 {vehicle player getVariable "lights"}) then { if (playerSide isEqualTo west) then { [vehicle player] call life_fnc_sirenLights; } else { [vehicle player] call life_fnc_medicSirenLights; }; _handled = true; }; }; }; if (!_alt && !_ctrlKey) then { [] call life_fnc_radar; }; };
so damit hätten wird das dann in der Missiondatei geklärt. Fehlt eigentlich nur noch der life_server.
life_server
1. so eine letzte Anpassung muss hier gemacht werden. Achtung ist auch nur ein Codeschnipsel
C: Functions/systems/fn_spawnVehicle.sqfif ((_vInfo select 1) isEqualTo "cop" && ((_vInfo select 2)) 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 { [_vehicle,"cop_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit]; };
Die Positionen und Classnames musst Du dann selber herausfinden ;-). Das Ganze gibt es auch nochmal für die Medics bzw. den ADAC falls Du den einfügst. Ich habe das bei uns so gelöst, dass ich dem Offroader Rastätte ein gelbes Licht verpasst habe. Eine Sammlung von Koords gibt es hier.Gruß,
moeck -
Wie kann ich es machen das ich mit ACE eigene Interaktionen setzen kann?
Dafür würde ich sagen guck mal ins ACE WIKI
Das ganze Setzt eine Gewisse Menge Grundwissen im Bereich Arma Scripting voraus
hier der Ensprechenede Part
Im Grunde gibt es 2 Möglichkeiten
1. Die Interaction auf ein Object setzen
2. Die Interaction auf Classnames setzenBeide Möglichkeiten sind nur Local und nicht Global
Bei Möglichkeit 1 würde das ganze z.b. in einer init auf der map gehn oder halt anders
Bei Möglichkeit 2 gibt es den vorteil das man auch Base Classes Angeben kann z.b. für Vehicles Landvehicle oder CAR_FIm wiki ist zu sehn das man das auch über eine config machen kann und dan über Mods habe ich nicht zum Laufen bekommen
Ich habe meine Eigene Config geschrieben und mir ein klein code gemacht der die Ausliest und endprechen auf den Fahrzeugen/Objecten/Playern Setztet
Dadruch das das Mission seitig ablauft hat es auch Jeder Spieler.Und hier noch ein Bild wie das ganze am Ende Aussehn kann
ps noch ein kleiner Tipp da cursorTarget damit nicht geht kann man beim übergeben der Targets einfach mit _target oder für den eigenen spieler mit _player arbeiten
als Beispiel aus der VInteraction
aus
[life_vInact_curTarget] spawn life_fnc_deviceMinewird über ACE
[_target] spawn life_fnc_deviceMinehoffe man Versteht was ich Meine