Moin zusammen,
ich habe mir auf Grund der verschiedenen Fragen rund um das Thema Blaulicht bei Cops und Medics mal ein paar Gedanken gemacht wie man das Ganze mal vereinfachen kann. Statt bei jedem Fahrzeug jedes Mal 4 Dateien zu editieren, müsst ihr nach dem Tutorial lediglich das Fahrzeuge noch an 2 Stellen eintragen. Des Weiteren sind die beiden Dateien dann auch verständlich und nicht so umständlich wie bisher.
Wie immer gilt, das Tutorial darf ohne meine Zustimmung nicht weitergegeben werden.
Na dann fangen wir mal an. Es sind Änderungen sowohl im life_server als auch in der Missiondatei notwendig.
1. Missiondatei
1.1. fn_copLights.sqf
Diese Datei befindet sich noch im Orginalzustand, ich habe dort lediglich die Fahrzeuge der Cops mit den entsprechenden Punkten hinzugefügt.
/*
File: fn_copLights.sqf
@Author: Tonic
Description:
Adds the light effect to cop vehicles, specifically the offroad.
*/
// LHM START
private ["_vehicle","_lightRed","_lightBlue","_lightleft","_lightright","_leftRed","_brightness","_attach"];
_vehicle = _this select 0;
if (isNil "_vehicle" || isNull _vehicle || !(_vehicle getVariable "lights")) exitWith {};
switch (typeOf _vehicle) do {
case "C_Hatchback_01_F": { _attach = [[-0.6, 2, -0.95], [0.6, 2, -0.95]]; };
case "C_Hatchback_01_sport_F": { _attach = [[-0.6, 2, -0.95], [0.6, 2, -0.95]]; };
case "C_Offroad_01_F": { _attach = [[-0.45, 0.0, 0.56], [0.37, 0.0, 0.56]]; };
case "C_SUV_01_F": { _attach = [[-0.4, 2.3, -0.55], [0.4, 2.3, -0.52]]; };
case "B_Heli_Light_01_F": { _attach = [[-0.37, 0.0, 0.56], [0.37, 0.0, 0.56]]; };
case "B_Heli_Transport_01_F": { _attach = [[-0.5, 0.0, 0.96], [0.5, 0.0, 0.96]]; };
case "I_MRAP_03_hmg_F": { _attach = [[-0.37, 0.0, 0.56], [0.37, 0.0, 0.56]]; };
case "I_MRAP_03_F": { _attach = [[-0.37, 0.0, 0.50], [0.37, 0.0, 0.50]]; };
case "B_APC_Wheeled_01_cannon_F": { _attach = [[-1, -2.8, 0.55], [1, -2.8, 0.55]]; };
case "B_MRAP_01_hmg_F": { _attach = [[-1, -2.8, 0.55], [1, -2.8, 0.55]]; };
case "B_MRAP_01_F": { _attach = [[-1, -2.8, 0.55], [1, -2.8, 0.55]]; };
case "O_MRAP_02_hmg_F": { _attach = [[-1, -2.8, 0.50], [1, -2.8, 0.50]]; };
case "O_MRAP_02_F": { _attach = [[-1, -2.8, 0.55], [1, -2.8, 0.55]]; };
case "B_Truck_01_covered_F": { _attach = [[-1.2, 4.85, -0.45], [1.25, 4.85, -0.45]];};
case "B_Heli_Transport_03_unarmed_F": { _attach = [[-0.37, 0.0, 0.56], [0.37, 0.0, 0.56]]; };
case "B_T_VTOL_01_infantry_F": { _attach = [[-7.6,3.3,-1.2],[7.65,3.35,-1.1]];};
case "B_T_VTOL_01_vehicle_F": { _attach = [[-7.6,3.3,-1.2],[7.65,3.35,-1.1]];};
case "I_Heli_light_03_unarmed_F": { _attach = [[-1.23,4.7,-1.42],[1.23,4.7,-1.42]];};
case "O_Heli_Transport_04_bench_F": { _attach = [[-0.37, 0.0, 0.56], [0.37, 0.0, 0.56]];};
};
_lightRed = [20, 0.1, 0.1];
_lightBlue = [0.1, 0.1, 20];
_lightleft = createVehicle ["#lightpoint", getPos _vehicle, [], 0, "CAN_COLLIDE"];
sleep 0.2;
_lightleft setLightColor _lightRed;
_lightleft setLightBrightness 0;
_lightleft lightAttachObject [_vehicle, _attach select 0];
_lightleft setLightAttenuation [0.181, 0, 1000, 130];
_lightleft setLightIntensity 20;
_lightleft setLightFlareSize 0.38;
_lightleft setLightFlareMaxDistance 150;
_lightleft setLightUseFlare true;
_lightleft setLightDayLight true;
_lightright = createVehicle ["#lightpoint", getPos _vehicle, [], 0, "CAN_COLLIDE"];
sleep 0.2;
_lightright setLightColor _lightBlue;
_lightright setLightBrightness 0;
_lightright lightAttachObject [_vehicle, _attach select 1];
_lightright setLightAttenuation [0.181, 0, 1000, 130];
_lightright setLightIntensity 20;
_lightright setLightFlareSize 0.38;
_lightright setLightFlareMaxDistance 150;
_lightright setLightUseFlare true;
_lightright setLightDayLight true;
if (sunOrMoon < 1) then {
_brightness = 15;
} else {
_brightness = 60;
};
_leftRed = true;
while {(alive _vehicle)} do {
// hint format ["DEBUG: lights: %1 \n Vehicle Player: %2",!(_vehicle getVariable "lights"),!(vehicle player !=player)];
if (!(_vehicle getVariable "lights")) exitWith {};
if (_leftRed) then {
_leftRed = false;
_lightright setLightBrightness 0;
sleep 0.05;
_lightleft setLightBrightness _brightness;
} else {
_leftRed = true;
_lightleft setLightBrightness 0;
sleep 0.05;
_lightright setLightBrightness _brightness;
};
sleep 0.22;
};
deleteVehicle _lightleft;
deleteVehicle _lightright;
// LHM END
Alles anzeigen
Falls ihr andere oder weitere Fahrzeuge eintragen wollt einfach einen Eintrag kopieren und entsprechend des Fahrzeuges modifizieren. (Classname, Lichtpunkte)
1.2. fn_sirenLigths.sqf
So hier wird nochmalerweise ebenfalls der Classname der Fahrzeuge eingetragen. Das habe ich nun entsprechend modifiziert, heißt wenn ihr das Tutorial nutz müsst ihr die Datei nicht mehr anfassen. In Zeile 13 findet ihr diesen Eintrag.
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.
Bitte ersetzt den Eintrag durch den folgende
if(!(typeOf _vehicle in life_cop_veh)) exitWith {}; //Last chance check to prevent something from defying humanity and creating a monster.
Ich poste hier nicht die gesamte Datei, da es Unterschiede zwischen den Versionen gibt und ich nicht beide Versionen hier dokumentieren möchte.