Ich suche stetig nach weiteren Aufgaben für die Pios. Darunter stört mich ein bisl @Enhanced Movement, das man so ziemlich über alles rüberkommt.
So auch Stacheldrahtzäune. Wenn ich könnte würde ich den Stacheldrahtbereich symbolisch unter Strom setzen oder vielleicht doch den ganzen Zaun?
Zu einem späteren Zeitpunkt vielleicht .
Erstmal geht es mir darum, das die Pios den Zaun bzw. einen Zaun zerstören können mit dem Besitz des Drahtschneiders. Zunächst bestimme ich den Zauntyp für das Skript.
Wie findet man den Classname der Zaunobjekts auf der Map heraus?
- Stelle eine Einheit so dicht wie möglich an den gewünschten Zaun.
- Starte das Szenario.
- Öffne die Console und füge folgenden Code-Schnipsel ein und führe diesen Lokal aus (damit kopierst Du alle Objekte in der Nähe der Einheit in deinen Zwischenspeicher)
In einer beliebigen Textdatei Strg + V drücken. Damit fügst Du den Inhalt des Zwischenspeichers als String in Deine Datei. Da findest Du das Objekt für den Zaun
In meinem Fall war es: Land_New_WiredFence_10m_F
Mit einem Rechtsklick im Editor holst Du Dir die Position von deinem Einsatzgebiet. in meinen Fall [3922.69,10318.4,0]
Du öffnest bzw. erstellst Deine initServer.sqf und fügst dann folgen Schnipsel da ein und speicherst die Datei ab
(Hier musst Du natürlich Dein Objekt bzw Postion dann eintragen )
Die 1500 ist der Umkreis um die gewünschte Position, da es kein Sinn macht alle Zäune auf der Karte mit dem Addaction - Befehl zu belegen!
Mit dem Addaction Befehl weise ich eine Datei zu, genannt GT_wirecut.sqf
Was enthält die Datei?
Grob:
Eine Zuweisung des Spieler zu einer Variable
Dann kommt eine Abfrage, die sicherstellt, das die folgende Aktion nur von einem Pionier ausgeführt werden kann
Dann flogt die Prüfung, ob der Pionier mitgedacht hat und sich auch so ausgerüstet hat. Vorrausetzung um den Zaun zu zerstören ist der Ace Drahschneider
Neben einer Animation folgt auch das Abspielen eines Sounds. Hier habe ich das Durchschneiden eines Maschendrahtes hinterlegt.
Die GT_wirecut.sqf dazu ist wie folgt aufgebaut:
- private ["_grabber"];
- _grabber = player;
- if ( (typeOf player == "gm_ge_army_demolition_g3a4_80_ols") )then{
- if("ACE_wirecutter" in (items _grabber + assignedItems _grabber))then{
- _anim = "AinvPknlMstpSnonWnonDnon_medic0";
- _grabber playMove _anim;
- waituntil {animationState _grabber == "AinvPknlMstpSnonWnonDnon_medic0"};
- {
- if ((str _x) find "fence_03_m_9m_f.p3d" > -1) then {
- [_x , "wirecut",10] call CBA_fnc_globalSay3d;
- sleep 2;
- [_x , "wirecut",10] call CBA_fnc_globalSay3d;
- sleep 2;
- [_x , "wirecut",10] call CBA_fnc_globalSay3d;
- sleep 2;
- [_x , "wirecut",10] call CBA_fnc_globalSay3d;
- sleep 1;
- hideobject _x;
- };
- } forEach nearestObjects [_grabber, [], 3];
- }else{
- hint "Drahtschneider fehlt ...";
- };
- }else{
- hint "Pionier erforderlich...";
- };