[GERMAN SECTION]
[DEUTSCHER TEIL]
Hey ich dachte ich zeige mal wie man Zauntore "verriegeln" kann.
Author : YouDi
Dann Fangen wir mal an
Als erstes machen wir den Functions.h Eintrag:
In meinem Fall ist das in der Cop class
class Cop
{
file = "core\cop";
.....
class copMarkers {};
class copLights {};
class <--- *hier Dateinamen einfügen* {};
.....
class seizePlayerWeaponAction {};
};
Als erstes Platzieren wir einen Laptop.
In den kommt dann als Init:
Spoiler anzeigen
this allowDamage false;
this enableSimulation false;
this addAction["<t color='#ADFF2F'>Tore
öffnen</t>",life_fnc_*Functioneintrag einfügen*,"1",0,FALSE,FALSE,"",' playerside
== west && player distance _target < 8 '];
this addAction["<t color='#ADFF2F'>Tore
schließen</t>",life_fnc_*Functioneintrag einfügen*,"2",0,FALSE,FALSE,"",'
playerside == west && player distance _target < 8 '];
In die *hier scriptnamen einfügen*.sqf muss folgendes rein:
Spoiler anzeigen
_mode = _this select 3;
if(_mode) then {
{
life_open = true;
publicVariable "life_open";
if(_x getvariable["YouDi",false]) then {
_x animate ["Door_1_rot", 1];
_x animate ["Door_2_rot", 1];
};
} forEach (nearestObjects [player, ["Land_Net_Fence_Gate_F"], 20]);
} else {
life_open = false;
publicVariable "life_open";
{
if(_x getvariable["YouDi",false]) then {
_x animate ["Door_1_rot", 0];
_x animate ["Door_2_rot", 0];
};
} forEach (nearestObjects [player, ["Land_Net_Fence_Gate_F"], 20]);
};
//Man kann das YouDi mit was anderem ersetzen
Darauf hin platziert man in einen Auslöser,welcher die Zauntore "beinhaltet".
Typ: Wegpunkt überspringen
Aktivierung: Jeder
Aktivierungstyp: Vorhanden
Wiederhohlbar: Ja
Bei Bedingung kommt dann das:
Spoiler anzeigen
this && (local player) && (vehicle player in thisList)
In den kommt dann bei Aktivierung folgendes:
Spoiler anzeigen
[] spawn {
_objects = nearestObjects [player, ["Land_Net_Fence_Gate_F"], 50];
life_trigger = true;
while{life_trigger} do {
if(isnil "life_open") then {
{
_phase = _x animationPhase "Door_1_rot" ;
_phase1 = _x animationPhase "Door_2_rot" ;
if((_phase isEqualTo 1 && _x getvariable["YouDi",false]) || (_phase1 isEqualTo 1 && _x getvariable["YouDi",false])) then {
_x animate ["Door_1_rot", 0];
_x animate ["Door_2_rot", 0];
};
} foreach _objects;
} else {
{
_phase = _x animationPhase "Door_1_rot" ;
_phase1 = _x animationPhase "Door_2_rot" ;
if((_phase isEqualTo 1 && !life_open && _x getvariable["YouDi",false]) || (_phase1 isEqualTo 1 && !life_open && _x getvariable["YouDi",false])) then {
_x animate ["Door_1_rot", 0];
_x animate ["Door_2_rot", 0];
};
} foreach _objects;
};
sleep 0.125;
};
};
Alles anzeigen
!!! BEI AKTIVIERUNG SOLL KEIN TIRED SMILEY SEIN !!!
//Man kann das YouDi mit was anderem ersetzen
Bei Deaktivierung:
Spoiler anzeigen
life_trigger = false;
Dann sollte es in etwa so aussehen:
Man kann die Action mit dem Tor öffnen zwar nicht entfernen aber der Trigger überprüft, ob das Tor per Addaction (Dem Monitor) oder per Hand geöffnet wird.
Durch den Auslöser wird alle 0.125 Sekunden überprüft, ob das Tor per Hand geöffnet wurde. Wenn dieß der Fall ist schließt sich das Tor wieder automatisch.
Vielen Dank nochmal an @Barney der mir dabei geholfen hat dieses Script so zu machen =)
[ENGLISH SECTION]
[ENGLISCHER TEIL]
Hey I thought,that I show you, how you can "lock" Netfences.
Author : YouDi
So,let's begin.
First we make the Functions.h entry:
In my case it's the cop class.
class Cop
{
file = "core\cop";
.....
class copMarkers {};
class copLights {};
class <--- *hier Dateinamen einfügen* {};
.....
class seizePlayerWeaponAction {};
};
First we place a Laptop.
Put this in the init from the laptop:
Spoiler anzeigen
//Man kann das YouDi mit was anderem ersetzen
this allowDamage false;
this enableSimulation false;
this addAction["<t color='#ADFF2F'>Tore
öffnen</t>",life_fnc_*Functioneintrag einfügen*,"1",0,FALSE,FALSE,"",' playerside
== west && player distance _target < 8 '];
this addAction["<t color='#ADFF2F'>Tore
schließen</t>",life_fnc_*Functioneintrag einfügen*,"2",0,FALSE,FALSE,"",'
playerside == west && player distance _target < 8 '];
Now you need to place a trigger that's in the range of the fences.
Typ: Skip waypoint
Activation: Everybody
Activation type: Vorhanden
Repeatable: Yes
If condition occurs,then:
Spoiler anzeigen
this && (local player) && (vehicle player in thisList)
At the activation you need to place this:
Spoiler anzeigen
[] spawn {
_objects = nearestObjects [player, ["Land_Net_Fence_Gate_F"], 50];
life_trigger = true;
while{life_trigger} do {
if(isnil "life_open") then {
{
_phase = _x animationPhase "Door_1_rot" ;
_phase1 = _x animationPhase "Door_2_rot" ;
if((_phase isEqualTo 1 && _x getvariable["YouDi",false]) || (_phase1 isEqualTo 1 && _x getvariable["YouDi",false])) then {
_x animate ["Door_1_rot", 0];
_x animate ["Door_2_rot", 0];
};
} foreach _objects;
} else {
{
_phase = _x animationPhase "Door_1_rot" ;
_phase1 = _x animationPhase "Door_2_rot" ;
if((_phase isEqualTo 1 && !life_open && _x getvariable["YouDi",false]) || (_phase1 isEqualTo 1 && !life_open && _x getvariable["YouDi",false])) then {
_x animate ["Door_1_rot", 0];
_x animate ["Door_2_rot", 0];
};
} foreach _objects;
};
sleep 0.125;
};
};
Alles anzeigen
//You can replace the "YouDi" with some other variable.
When deactivated:
Spoiler anzeigen
life_trigger = false;
It should look like this now:
You can't remove the addaction to open the fence itself. I made it,that the trigger checks if somebody open the fence with the hand or with the laptop.
The trigger checks every 0.125 seconds if somebody opened the door with the hand or with the Laptop. If somebody tries to open the fence with the hand,it's going to close automatically again.
Sorry for my english and special thanks to Barney. He helped me we very much with the script. =)