findest du im Addon "A3_Soft_F_EPC_Truck_03"
https://community.bistudio.com/wiki/Arma_3:_CfgVehicles_EAST
findest du im Addon "A3_Soft_F_EPC_Truck_03"
https://community.bistudio.com/wiki/Arma_3:_CfgVehicles_EAST
Gut ich hab das vor 4 Jahren gemacht auf der 4.5 und habe seitdem nicht mehr wirklich mit dem Life Framework gearbeitet. Vielleicht weiß ja jemand anderes mehr darüber
Hast du den Eventhandler auch auf dem Spieler / Person geladen?
Hallo,
mich hat noch der Vorschlag erreicht, eine oder mehrere Flugverbotszonen einzurichten. Hierzu habe ich im Eden Editor 3 Marker platziert, welche ich dann in einem Array hinterlegt habe. Um den "Zonenverstoß sichtbar zu machen, habe ich die Markerfarbe auf Lila gesetzt". Die Größe der Zone kann man der Variable _noFlyDist angegeben werden. Das war eine sehr coole Idee und deshalb hier die überarbeiteten Dateien. kurzes Demo Video Hier
params [
["_ind", true]
];
_detRange = 4000;
_activeAir = nearestObjects [Radar1, ["Helicopter","Plane"], 4000, false];
_display = findDisplay 7500;
_map = _display displayCtrl 7502;
_noFlys = ["nofly1","nofly2","nofly3"];
_noFlyDist = 200 ;
{
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
} forEach _activeAir;
if (_ind) then {
{
if (_x isKindOf "Helicopter" || _x isKindOf "Plane") then {
if ((Radar1 distance _x > _detRange) || ((getPosATL _x) select 2 < 25)) then {
_activeAir deleteAt _forEachIndex;
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
};
_markerH = createMarkerLocal [Format["Radarmarker_%1", _forEachIndex] , _x ];
_markerH setMarkerTypeLocal "b_air";
_height = Round((getPosATL _x) select 2);
switch (true) do {
case (_height < 75): {
_markerH setMarkerColorLocal "ColorRed";
};
case (_height > 75 && _height < 150): {
_markerH setMarkerColorLocal "ColorOrange";
};
case (_height > 150 && _height < 300 ): {
_markerH setMarkerColorLocal "ColorBlue";
};
case (_height > 300 && _height < 500 ): {
_markerH setMarkerColorLocal "ColorGreen";
};
case (_height > 500): {
_markerH setMarkerColorLocal "ColorWhite";
};
};
if (_x isKindOf "Plane") then {
_markerH setMarkerTypeLocal "b_plane";
};
_indexAir = _forEachIndex;
{
if (getMarkerPos _x distance ( getPosATL (_activeAir select _indexAir )) < _noFlyDist) then {
_markerH setMarkerColorLocal "ColorPink";
};
} forEach _noFlys;
_markerH setMarkerDirLocal ((direction _x) -90);
_markerH setMarkerBrushLocal "solid";
_markerH setMarkerTextLocal format [" %1 || HDG: %2 || H: %3 || V: %4 || D: %5", str (_x) , Round (direction _x), Round((getPosATL _x) select 2), Round (speed _x), Round ( Radar1 distance _x)];
};
if ((Radar1 distance _x > _detRange) || ((getPosATL _x) select 2 < 25)) then {
_activeAir deleteAt _forEachIndex;
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
};
};
} forEach _activeAir;
if !(_ind) then {
{
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
} forEach _activeAir;
};
Alles anzeigen
params [
["_ind", true]
];
if (_ind) then {
_index = lbCurSel 7504;
_display = findDisplay 7500;
_map = _display displayCtrl 7502;
_marker = Format["Radarmarker_%1", _index];
_map ctrlMapAnimAdd [1, 0.05, getMarkerPos _marker];
ctrlMapAnimCommit _map;
};
if !(_ind) then {
_index = lbCurSel 7504;
ctrlShow [7509, true];
ctrlShow [7510, true];
ctrlShow [7511, true];
ctrlShow [7512, true];
_detRange = 4000;
_activeAir = nearestObjects [Radar1, ["Helicopter","Plane"], _detRange, false];
_target = _activeAir select _index;
// Infos
_passengers = fullCrew [_target,"",false];
_count = Count _passengers;
_fuel = Round((fuel _target) * 100);
_hp = Round(100 -(getDammage _target) * 100);
_dir = Round (direction _target);
_grid = mapGridPosition _target;
_v = Round (speed _target);
_dist = Round (Radar1 distance _target);
_dname = [configFile >> "CfgVehicles" >> typeOf _target] call BIS_fnc_displayName;
ctrlSetText [7509, (format[" Callsign: %1 \n Flugobjekt: %2 \n Treibstoff: %3 % \n Passagiere: %4 \n HP: %5 % \n Flugrichtung: %6 Grad \n Gridposition: %7 \n Geschwindigkeit: %8 Km/H \n Distanz: %9 Meter \n Marker Rot = Höhe < 75 Meter \n Marker Orange = Höhe 75 Meter bis 150 Meter \n Marker Blau = Höhe 150 Meter bis 300 Meter \n Marker Grün = Höhe 300 Meter bis 500 Meter \n Marker Weiß = Höhe > 500 Meter \n Marker Rosa = Verstoß Flugverbotszone",_target,_dname,_fuel,_count,_hp,_dir,_grid,_v,_dist])];
};
Alles anzeigen
HeyHo,
kleines Update. Ich habe meine Ideen soweit umgesetzt. Siehehier.
Mein Debakel gibts hier zum runterladen. Viel Spaß damit
#include "CustomControlClasses.h"
class Radar_Scanner
{
idd = 7500;
class ControlsBackground
{
class Background
{
type = 0;
idc = 7501;
x = safeZoneX + safeZoneW * 0.02539063;
y = safeZoneY + safeZoneH * 0.03125;
w = safeZoneW * 0.94921875;
h = safeZoneH * 0.9375;
style = 0;
text = "";
colorBackground[] = {0.102,0.102,0.102,0.4};
colorText[] = {0,0,0,1};
font = "PuristaMedium";
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
};
};
class Controls
{
class Radar_Map : RscMapControl
{
type = CT_MAP_MAIN;
idc = 7502;
x = safeZoneX + safeZoneW * 0.04980469;
y = safeZoneY + safeZoneH * 0.07986112;
w = safeZoneW * 0.68066407;
h = safeZoneH * 0.84027778;
style = ST_MULTI + ST_TITLE_BAR;
colorBackground[] = {0.102,0.102,0.102,1};
colorText[] = {0.6902,0.9373,0.298,1};
font = "PuristaMedium";
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
};
class ListBoxHeader
{
type = 0;
idc = 7503;
x = safeZoneX + safeZoneW * 0.7578125;
y = safeZoneY + safeZoneH * 0.07986112;
w = safeZoneW * 0.19238282;
h = safeZoneH * 0.0625;
style = 0+2;
text = "Aktive Flugobjekte";
colorBackground[] = {0.102,0.102,0.102,0};
colorText[] = {0.702,0.302,0.102,1};
font = "PuristaBold";
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2);
access = 2;
moving = false;
tooltip = "Derzeit aktive Flugobjekte in Reichweite";
};
class ListBox_ATC
{
type = 5;
idc = 7504;
x = safeZoneX + safeZoneW * 0.7578125;
y = safeZoneY + safeZoneH * 0.15277778;
w = safeZoneW * 0.19238282;
h = safeZoneH * 0.37152778;
style = 16;
colorBackground[] = {0.102,0.102,0.102,0.4};
colorDisabled[] = {0,0,0,0};
colorSelect[] = {0.6,0.302,0,1};
colorText[] = {0.6,0.302,0,1};
colorSelectBackground[] = {0.6,0.302,0,0.1};
font = "PuristaMedium";
maxHistoryDelay = 0;
rowHeight = 0;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1.0};
onLBDblClick = [false] call RAD_fnc_ATCinfofill;
onLBSelChanged = [true] call RAD_fnc_ATCinfofill;
onLoad = [] spawn RAD_fnc_listBox_Radar;
onDestroy = [false] call RAD_fnc_RadarMarker;
class ListScrollBar
{
color[] = {1,1,1,1};
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
};
};
class Button
{
type = 1;
idc = 7508;
x = safeZoneX + safeZoneW * 0.78222657;
y = safeZoneY + safeZoneH * 0.86631945;
w = safeZoneW * 0.13769532;
h = safeZoneH * 0.05381945;
style = 0+2;
text = "Schließen";
borderSize = 0;
colorBackground[] = {0.702,0.4,0.102,1};
colorBackgroundActive[] = {0.702,0.4,0.102,1};
colorBackgroundDisabled[] = {0.702,0.4,0.102,1};
colorBorder[] = {0.702,0.4,0.102,1};
colorDisabled[] = {0.702,0.4,0.102,1};
colorFocused[] = {0.702,0.4,0.102,1};
colorShadow[] = {0.702,0.4,0.102,1};
colorText[] = {0,0,0,1};
font = "PuristaBold";
offsetPressedX = 0.0;
offsetPressedY = 0.0;
offsetX = 0.0;
offsetY = 0.0;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2.5);
soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1.0};
soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1.0};
soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1.0};
soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1.0};
action = "closeDialog 2";
};
class Background_Info
{
type = 0;
idc = 7512;
x = safeZoneX + safeZoneW * 0.49375;
y = safeZoneY + safeZoneH * 0.07444445;
w = safeZoneW * 0.2375;
h = safeZoneH * 0.55;
style = 0;
text = "";
colorBackground[] = {0.102,0.102,0.102,0.4};
colorText[] = {1,1,1,1};
font = "PuristaMedium";
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
};
class ATC_Info_Header
{
type = 0;
idc = 7510;
x = safeZoneX + safeZoneW * 0.51875;
y = safeZoneY + safeZoneH * 0.10222223;
w = safeZoneW * 0.1875;
h = safeZoneH * 0.06111112;
style = 0+2;
text = "ATC - Info";
colorBackground[] = {0.549,0.4078,0.7608,0};
colorText[] = {0.702,0.4,0.102,1};
font = "PuristaBold";
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2.5);
};
class ATC_Info_Button_Close
{
type = 1;
idc = 7511;
x = safeZoneX + safeZoneW * 0.54375;
y = safeZoneY + safeZoneH * 0.54222223;
w = safeZoneW * 0.1375;
h = safeZoneH * 0.06111112;
style = 0+2;
text = "Schließen";
borderSize = 0;
colorBackground[] = {0.702,0.4,0.102,1};
colorBackgroundActive[] = {0.702,0.4,0.102,1};
colorBackgroundDisabled[] = {0.2,0.2,0.2,1};
colorBorder[] = {0,0,0,0};
colorDisabled[] = {0.702,0.4,0.102,1};
colorFocused[] = {0.702,0.4,0.102,1};
colorShadow[] = {0,0,0,1};
colorText[] = {0,0,0,1};
font = "PuristaBold";
offsetPressedX = 0.0;
offsetPressedY = 0.0;
offsetX = 0.0;
offsetY = 0.0;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2);
soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1.0};
soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1.0};
soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1.0};
soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1.0};
onButtonClick = [] spawn RAD_fnc_ATCinfotoggle;
};
class ATC_Info_Card
{
type = 13;
idc = 7509;
x = safeZoneX + safeZoneW * 0.506875;
y = safeZoneY + safeZoneH * 0.17333334;
w = safeZoneW * 0.2125;
h = safeZoneH * 0.33;
style = 0;
text = "TEST";
size = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
colorBackground[] = {0.102,0.102,0.102,0.25};
};
};
};
Alles anzeigen
disableSerialization;
if (isNull (findDisplay 7500)) exitWith {
systemChat "Error";
};
ctrlShow [7509, false];
ctrlShow [7510, false];
ctrlShow [7511, false];
ctrlShow [7512, false];
_display = findDisplay 7500;
_ListBox = _display displayCtrl 7504;
_detRange = 4000;
_activeAir = nearestObjects [Radar1, ["Helicopter","Plane"], _detRange, false];
lbClear 7504;
while {true} do {
{
if ((getPosATL _x) select 2 < 25) then {
_activeAir deleteAt _forEachIndex;
} else {
_myDisplayName = [configFile >> "CfgVehicles" >> typeOf _x] call BIS_fnc_displayName;
_index = _ListBox lbadd Format[" %1 || %2 ", str (_x) , _myDisplayName];
};
} forEach _activeAir;
uiSleep (2);
[true] call RAD_fnc_RadarMarker;
if isNull (findDisplay 7500) exitWith {
[false] call RAD_fnc_RadarMarker;
};
_activeAir = nearestObjects [Radar1, ["Helicopter","Plane"], _detRange, false];
lbClear 7504;
};
Alles anzeigen
params [
["_ind", true]
];
_detRange = 4000;
_activeAir = nearestObjects [Radar1, ["Helicopter","Plane"], 10000, false];
_display = findDisplay 7500;
_map = _display displayCtrl 7502;
{
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
} forEach _activeAir;
if (_ind) then {
{
if (_x isKindOf "Helicopter" || _x isKindOf "Plane") then {
if ((Radar1 distance _x > _detRange) || ((getPosATL _x) select 2 < 25)) then {
_activeAir deleteAt _forEachIndex;
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
};
_markerH = createMarkerLocal [Format["Radarmarker_%1", _forEachIndex] , _x ];
_markerH setMarkerTypeLocal "b_air";
_height = Round((getPosATL _x) select 2);
switch (true) do {
case (_height < 75): {
_markerH setMarkerColorLocal "ColorRed";
};
case (_height > 75 && _height < 150): {
_markerH setMarkerColorLocal "ColorOrange";
};
case (_height > 150 && _height < 300 ): {
_markerH setMarkerColorLocal "ColorBlue";
};
case (_height > 300 && _height < 500 ): {
_markerH setMarkerColorLocal "ColorGreen";
};
case (_height > 500): {
_markerH setMarkerColorLocal "ColorWhite";
};
};
if (_x isKindOf "Plane") then {
_markerH setMarkerTypeLocal "b_plane";
};
_markerH setMarkerDirLocal ((direction _x) -90);
_markerH setMarkerBrushLocal "solid";
_markerH setMarkerTextLocal format [" %1 || HDG: %2 || H: %3 || V: %4 || D: %5", str (_x) , Round (direction _x), Round((getPosATL _x) select 2), Round (speed _x), Round ( Radar1 distance _x)];
if ((Radar1 distance _x > _detRange) || ((getPosATL _x) select 2 < 25)) then {
_activeAir deleteAt _forEachIndex;
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
};
};
} forEach _activeAir;
};
if !(_ind) then {
{
deleteMarkerLocal Format["Radarmarker_%1", _forEachIndex];
} forEach _activeAir;
};
Alles anzeigen
params [
["_ind", true]
];
if (_ind) then {
_index = lbCurSel 7504;
_display = findDisplay 7500;
_map = _display displayCtrl 7502;
_marker = Format["Radarmarker_%1", _index];
_map ctrlMapAnimAdd [1, 0.05, getMarkerPos _marker];
ctrlMapAnimCommit _map;
};
if !(_ind) then {
_index = lbCurSel 7504;
ctrlShow [7509, true];
ctrlShow [7510, true];
ctrlShow [7511, true];
ctrlShow [7512, true];
_detRange = 4000;
_activeAir = nearestObjects [Radar1, ["Helicopter","Plane"], _detRange, false];
_target = _activeAir select _index;
// Infos
_passengers = fullCrew [_target,"",false];
_count = Count _passengers;
_fuel = Round((fuel _target) * 100);
_hp = Round(100 -(getDammage _target) * 100);
_dir = Round (direction _target);
_grid = mapGridPosition _target;
_v = Round (speed _target);
_dist = Round (Radar1 distance _target);
_dname = [configFile >> "CfgVehicles" >> typeOf _target] call BIS_fnc_displayName;
ctrlSetText [7509, (format[" Callsign: %1 \n Flugobjekt: %2 \n Treibstoff: %3 % \n Passagiere: %4 \n HP: %5 % \n Flugrichtung: %6 Grad \n Gridposition: %7 \n Geschwindigkeit: %8 Km/H \n Distanz: %9 Meter \n \n Marker Rot = Höhe < 75 Meter \n Marker Orange = Höhe 75 Meter bis 150 Meter \n Marker Blau = Höhe 150 Meter bis 300 Meter \n Marker Grün = Höhe 300 Meter bis 500 Meter \n Marker Weiß = Höhe > 500 Meter",_target,_dname,_fuel,_count,_hp,_dir,_grid,_v,_dist])];
};
Alles anzeigen
HeyHo NN-Community,
Es ist wieder soweit... Ich habe die Tage mal wieder Zeit und Lust gehabt und mich ein bisschen an einem Air Traffic Control - System versucht. Nach derzeitigem Stand ist folgendes möglich
Derzeit verfügbare Daten
- Typ des Flugobjekts
- Flugrichtung
- Geschwindigkeit
- Distanz zum Radar
- Erkennung Flugzeug oder Heli
Geplant ist über die Listbox sich erweitere Flugdaten anzeigen zu lassen wie z.B
- Anzahl Passagiere an Bord
- Treibstoffmenge
- evtl. Beschädigungen am Flugobjekt
- Marker hervorheben, wenn man das Flugobjekt in der Liste auswählt
- Benachrichtigung in einer Verlaufsdokumentation wenn ein Flugobjekt den Bereich betritt & verlässt, sowie eine Mindestflughöhe unterschreitet
Eine weitere Sache die ich mir überlegt habe wäre die Markerfarben oder die Markergamma anhand der Höhe festzumachen, damit man besser erkennen kann, falls sich Objekte zu Nahe kommen. Was denkt ihr darüber? Oder habt ihr vielleicht noch ein paar coole Ideen?
LG
Hallo Allesamt,
fast ein Jahr ist es her, ein Jubiläum sozusagen. Die Tage hatte ich nochmal Zeit, Lust und etwas Hilfe um den Rumms endlich fertig zu machen. Hier die dementsprechend geänderten Dateien
disableSerialization;
_display = findDisplay 1333;
_ListBox = _display displayCtrl 1310;
{
_index = _ListBox lbadd Format["Graffiti: %1 || Distanz: %2 m",_forEachIndex + 1,floor (player distance _x)];
_pos = _x getVariable "TagPos";
lbSetData [1310,_index,_pos];
} forEach Life_Active_Graffitis;
_selected = lbCurSel 1310;
_pos = getPosATL (Life_Active_Graffitis select _selected);
if (player getVariable "hasCleaner" isEqualTo false)then{
[player, Format["GraffitiTask_%1",_selected], ["Entferne das Graffiti um den Job abzuschließen", "Graffiti", "cookiemarker"], _pos ,1, 2, true] call BIS_fnc_taskCreate;
player setVariable ["hasCleaner", true];
} else {
Hint "Du hast bereits einen Auftrag angenommen";
};
_index = _this select 0;
_task = "GraffitiTask_"+ format["%1",_index];
systemChat (Format["%1",_task]);
[_task,"SUCCEEDED"] call BIS_fnc_taskSetState;
_tag = nearestObject [player, "UserTexture1m_F"]; //Graffiti
private _duration = 8;
private _hasFailed = false;
if (_tag distance player < 5) then {
_sprayPos = getPosATL player;
cutText ["Bleib in einem Radius von 4 Metern, da du ansonsten das Graffiti nicht entfernen kannst ", "PLAIN DOWN", 1];
player playAction "medicOther";
//_tag say3D ["sprayClean",30,1,false,0];
while {_duration > 0 } do {
if ((_sprayPos distance (getPosATL Player)) > 4 || (inputAction "compass" > 0)) then {
_duration = -1;
_hasFailed = true;
player switchmove "";
Hint "Die Reinigung wurde abgebrochen";
BreakWith 1;
};
_duration = _duration - 1;
uiSleep 1;
};
if (!(_hasFailed)) then {
deleteVehicle _tag;
_index = Life_Active_Graffitis find _tag;
Life_Active_Graffitis deleteAt _index;
[_index] call graf_fnc_taskDone;
player setVariable ["hasCleaner", false];
};
};
Alles anzeigen
Viel Spaß damit
Hallo Allesamt,
nach längerer Karenz melde ich mich mal wieder zu Worte. Da mir in letzter Zeit einfach die Zeit fehlte und mich ein paar Anfragen bezüglich des Projektes erreicht haben, werde ich meinen Fortschrott (Badtums) einfach mit euch teilen. Im Anhang findet ihr alle Dateien (mit Ausnahme der Bilder) die ihr braucht um das ganze zum Laufen zu bringen. Ich hätte nur 2 Bedingungen:
1. verkauft das Ganze nicht als euer Werk weiter oder verkauft es generell nicht weiter
2. Wenn ihr daran weiterentwickelt wäre es cool wenn ihr hier auch eure Fortschritte für die anderen teilt.
Ich stehe natürlich weiterhin für Fragen zur Verfügung und freue mich über jedes Feedback
Lg
https://community.bistudio.com/wiki/Arma_3:_E…ndlers#Reloaded
https://community.bistudio.com/wiki/setAmmo
Eventhandler setzen und über SetAmmo die gewünscht Magazingröße angeben. Mit einer If Abfrage die Waffe erfragen und damit solltest du an dein Ziel kommen.
Heyho,
hier ein kleiner Changelog:
+ Animation eingefügt ("MedicOther")
+ Man kann nun die Aktionen "Graffiti Anbringen" und "Graffiti entfernen" mittels Tastendurck ("Kompass öffnen") abbrechen
+ Sounds überarbeitet
+ Positionsüberprüfung zum Abbruch der Aktion wurde optimiert
+ Konzeptionierung des "Graffiti Entfernen" - Job
Zum Thema DB Sichern. Es hat mich von mehreren Seiten das Feedback erreicht, dass dies nicht sinnvoll sei aufgrund der Performance. Von daher gibt´s das vorher nicht.
Generell möchte ich mich für das Feedback und die Ideen bedanken und bin natürlich weiter für jede Idee dankbar
Lg
Hallo Kleinkiko,
vielen Dank für das Feedback. Zum Thema Animation:
Primär spiele ich mit ACE 3 und da sind sehr viele Gesten dabei, ich habe mich deshalb primär dagegen entschieden, da man damit genügend Möglichkeiten hat seine Finger und Arme durch die Gegend zu schwingen.
Aber ich habe die "Vanilla" Seite nicht so betrachtet. Es sieht in der Tat hinter diesem Hintergrund etwas befremdlich aus. Ich werde eine optionale Animation einfügen.
Zum Thema über Restart speichern :
Ich denke das würde dazu führen, dass auf Dauer irgendwo am A*sch der Welt Graffitis hängen, welche nicht weg gemacht werden weil keiner sie sieht und dadurch weniger "Gesamtgraffitis" verfügbar sind. Vielleicht könnte man das durch einen Job ähnlich wie DP mission o.Ä umgehen oder man lässt die Graffitis nach 24 h verschwinden. Muss ich mir mal Gedanken zu machen.
Heyho liebe NN-Gemeinde,
ich habe kürzlich wieder mal Lust gehabt ein Projekt in Arma 3 anzugehen. Hierzu habe ich ein Graffiti System gebaut und möchte euch das Ganze hier einmal vorstellen. Momentan habe ich keine Ideen wie ich das ganze weiterentwickeln kann. Und genau da hoffe ich auf euren kreativen Input Was denkt Ihr könnte da noch gut reinpassen.
Ein paar Dinge vorweg. Ich nutze ein Skript aus dem DE100 Repo als Grundlage, welches damals Lucian und ich entwickelt haben. Dazu habe ich ein paar Dialoge und weitergehende Funktionen geschrieben. Ich plane das Ganze natürlich auch hier zu veröffentlichen, sobald die Entwicklung abgeschlossen ist. Das Ganze sieht momentan wie folgt aus:
- Funktion um sein Graffiti zu markieren (Tagging) um anonymisiert das Graffiti einem "Künstler" zuzuordnen
- Funktion um das Tag abzufragen
- Funktion um Graffitis zu entfernen
- Dazugehörige Dialoge
- 2 Sounds
- Das ganze ist momentan so reglementiert, dass man nur 5 Graffitis pro Person oder maximal 100 gleichzeitig im laufenden Serverbetrieb. Was denkt ihr? zu wenig / zu viel? Hat jemand damit Erfahrung?
Ich würde mich über Feedback und weitere Ideen wie man das Ganze sinnvoll erweitern kann freuen.
Liebe Grüße
Alles anzeigenIch glaube die Orange DLC templates sind noch nicht zugänglich gemacht worden.
Falls doch folge den Anweisungen darunter (das funktioniert mit jedem Objekt in Arma)
suche dir dazu den Class name heraus (das Objekt von dem du das Template möchtest).
Anschließend gehst du in den Editor (egal welche mission)
Sobald du im Editor drinne bist setzt du dir eine Einheit und startest die Mission.
Anschließend drückst du ESC und gehst auf Config
Dort wählst du die richtige CFG File aus (musst schauen ob es z.b in der cfgvehicles etc ist. (findest du aber alles hier (https://community.bistudio.com/wiki/Arma_3_CfgVehicles_Equipment)
Anschließend suchst du diese Class name in dieser schier endlosen Liste (keine Angst sie ist alphabetisch geordnet) und klickst sie an. Dort öffnet sich dann auf der rechten seite deines Bildschirmes die CFG-File deines Objekts. Jetzt scrollst du soweit runter bis du HiddenselectionTextures siehst
Dort ist der Pfad im Arma Addons ordner angegeben wo dein Template zu finden ist.
einfach den Pfad folgen und du findest deine Datei
LG
2.teres sollte dir bei deiner Suche helfen
Schau mal hier im Forum, da sollte es Ausführungen zu Redgull undso geben. Du musst im Keyhandler dazu einen key erstellen und dann ähnlich wie beim Redgull Hotkey einfach dein Schmerzmittel einsetzen
Das Problem dabei ist, dass das einfach nicht überall geht.
Ich habe auch schon von Menschen aus meinem Umfeld mitbekommen, dass diese "Zwangsurlaub" machen müssen. Klingt erstmal toll, ist aber nicht unbedingt auch bezahlt. Und ohne Einkommen ist das alles gleich ne Nummer weniger schön.
Homeoffice klappt leider nur in einem Bruchteil der Berufsgruppen überhaupt
Gerade menschen die Selbstständig sind haben die A-Karte gezogen.
Hallo NN-Community,
anbei ein älteres Script, welches eine Rangefinder Funktion an den IR Laser der Primärwaffe bindet. Falls jemand verwendung dafür findet kann er es gerne nutzen. Das Skript nutzt die Berechnung von Pierre MGI.
/*
Author: Henrik "XFireFighter" Wagner
Date: 11.03.2019
Content: Rangefinder extension for IR Laser on Primary Weapon
Usage only with permission
*/
if ("acc_pointer_IR" in primaryWeaponItems Player) then {
_ins = lineIntersectsSurfaces [AGLToASL positionCameraToWorld [0,0,0],AGLToASL positionCameraToWorld [0,0,5000],vehicle player,objNull,true,1,"FIRE","NONE"];
_cursor_distance = if (count _ins > 0) then [{(_ins select 0 select 0) vectorDistance (eyepos player)},{5000}];
_distance = if (count _ins > 0) then [{str(round _cursor_distance)},{"---"}];
hint format ["Berechnung läuft"];
uiSleep (3);
hint format ["Distanz: %1 Meter", _distance];
} else {
Hint "Du hast nicht die richtige Waffe oder keinen Laser auf deiner Waffe";
};
Alles anzeigen
Wichtige Information für alle!
Rechtfertigung zu kusierenden Anschuldigungen / Fremdwerbung gegenüber dem Projekt Sunrise Gaming
Den Beitrag kann man nicht lesen, wurder er von der Administrative gesperrt?
Also in unserer letzen Live Version von DE100 hat das funktioniert; wobei in der Repo ein paar serverseitige dinge fehlen könnten