HX3 Foren

HX3 Foren (https://hx3.de/)
-   Rollenspiel & Zombie Ecke (https://hx3.de/rollenspiel-zombie-ecke-191/)
-   -   [How To]Ampel (https://hx3.de/rollenspiel-zombie-ecke-191/how-ampel-24308/)

Nokman 04.10.2014 08:31

[How To]Ampel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Je nach Änderungen die Ihr bereits Durchgeführt habt können Variablen Doppelt belegt sein oder die Dateien Anders aufgebaut.
Ich beziehe mich auf die Orginal Mission. Fertigt daher bitte vorher eine Koppie der Datein an.
Die Ampel wird per Script erstellt und ist Beliebig erweiterbar. Dabei wird der Pfosten vom Server Erstellt und die Lichter rein beim User. Der server sagt nur wann das licht sich ändert.

http://cloud-4.steampowered.com/ugc/...C8094DC037215/

Mit Wechsel

http://cloud-4.steampowered.com/ugc/...BFD9307641770/

Altis.life.Altis\core\functions Die datei (fn_ampel.sqf) aus denn anhang entpacken Oder erstellen in denn ordner functions
Code:

private ["_mode","_nok1","_nok2","_nok3","_nok4","_sun"];
_mode = _this select 0;
_nok1 = _this select 1;
_nok2 = _this select 2;
_nok3 = _this select 3;
_nok4 = _this select 4;
_sun = sunormoon;
if (isNil {_nok1 getvariable "rot"}) then {
        {
                _light = "#lightpoint" createVehiclelocal getPos _x;
                _light setLightColor [20, 0.1, 0.1];
                _light lightAttachObject [_x, [0, 0.3, 1.8]];
                _light setLightBrightness 0;
                _light setLightAttenuation [0.181, 0, 2000, 10000000];
                _light setLightDayLight true;
                _x setvariable ["rot",_light];
               
                _light = "#lightpoint" createVehiclelocal getPos _x;
                _light setLightColor [40, 40, 0];
                _light lightAttachObject [_x, [0, 0.3, 1.5]];
                _light setLightBrightness 0;
                _light setLightAttenuation [0.181, 0, 2000, 10000000];
                _light setLightDayLight true;
                _x setvariable ["gelb",_light];
               
                _light = "#lightpoint" createVehiclelocal getPos _x;
                _light setLightColor [0.1, 20, 0.1];
                _light lightAttachObject [_x, [0, 0.3, 1.2]];
                _light setLightBrightness 0;
                _light setLightAttenuation [0.181, 0, 2000, 10000000];
                _light setLightDayLight true;
                _x setvariable ["gruen",_light];
               
        }foreach [_nok1,_nok2,_nok3,_nok4];
};
switch (_mode) do {
 case 1 : {
        {
                _light = _x getvariable "gruen";
                _light setLightBrightness 0;
               
                _light = _x getvariable "gelb";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];
                };
                sleep 3;
                _light = _x getvariable "gelb";
                _light setLightBrightness 0;
               
                _light = _x getvariable "rot";
                if (_sun > 0) then {
                _light setLightBrightness (_sun * 100);
                _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                _light setLightBrightness 10;
                _light setLightAttenuation [0.2, 0, 50000, 0];
                };       
                }foreach [_nok3,_nok4];
               
                {
               
                _light = _x getvariable "gelb";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];
                };
                sleep 3;
                _light = _x getvariable "gelb";
                _light setLightBrightness 0;
                _light = _x getvariable "rot";
                _light setLightBrightness 0;
               
                _light = _x getvariable "gruen";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];;
                };       
                }foreach [_nok1,_nok2];
        };
case 2 : {
        {
                _light = _x getvariable "gruen";
                _light setLightBrightness 0;
               
                _light = _x getvariable "gelb";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];
                };
                sleep 3;
                _light = _x getvariable "gelb";
                _light setLightBrightness 0;
               
                _light = _x getvariable "rot";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];
                };       
                }foreach [_nok1,_nok2];
                {
               
                _light = _x getvariable "gelb";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];
                };
                sleep 3;
                _light = _x getvariable "gelb";
                _light setLightBrightness 0;
                _light = _x getvariable "rot";
                _light setLightBrightness 0;
               
                _light = _x getvariable "gruen";
                if (_sun > 0) then {
                        _light setLightBrightness (_sun * 100);
                        _light setLightAttenuation [0.181, 0, 2000, 10000000];
                } else {
                        _light setLightBrightness 10;
                        _light setLightAttenuation [0.2, 0, 50000, 0];
                };       
                }foreach [_nok3,_nok4];
        };
};

Dateien Bearbeiten:

Altis_life.Altis\functions.h :
unter
class Functions
{

einfügen

class ampel {};

das es dann so Aussieht die class ampel ist neu.
Code:

class Functions
        {
                file = "core\functions";
                class ampel {};
                class calWeightDiff {};
                class fetchCfgDetails {};
                class equipGear {};
                .....


Nun zum Serverseitigen einfügen dafür arbeiten wir in der Life_server

Bearbeiten
life_server\init.sqf
am ende der Datei fügen wir hinzu
Code:

[] spawn extra_fnc_ampel;
Bearbeiten
life_server\config.cpp
Fügen wir hinzu die class extra
Code:

class CfgFunctions
{
        class BIS_Overwrite
        {
                tag = "BIS";
                class MP
                {
                        file = "\life_server\Functions\MP";
                        class initMultiplayer{};
                        class call{};
                        class spawn{};
                        class execFSM{};
                        class execVM{};
                        class execRemote{};
                        class addScore{};
                        class setRespawnDelay{};
                        class onPlayerConnected{};
                        class initPlayable{};
                        class missionTimeLeft{};
                };
        };

        class extra
        {
                tag = "extra";     
                class extra
                {
                        file = "\life_server\extra";
                        class ampel {};
                        class ampelon {};
                };
        };

        class MySQL_Database
        {
                tag = "DB";
                class MySQL

Ich habe es dort zwischen class BIS und Class MySQL_Database gemacht.

Nun erstellen wir noch die fn_ampel auf denn Server.

dazu erstellen wir erst mal denn Ordner extra unter life_server
life_server\extra\

danach die Datei
life_server\extra\fn_ampel.sqf
und füllen die datei mit denn Code

Code:

Diag_log "Überprüfen ob Ampel bereits erstellt sind";
if (!isNil {bank_obj getvariable "ampel"}) exitwith {diag_log "Ampeln bereits Erstellt"; [] spawn extra_fnc_ampelon;};
_tickTime = diag_tickTime;
private ["_nok1","_nok2","_nok3","_nok4"];
_nok1 = createVehicle ["Land_City_Pillar_F",[3610.56,13129.5,0],[],0, "CAN_COLLIDE"];
_nok1 setdir 278.201;
_nok1 allowdamage false;
_nok2 = createVehicle ["Land_City_Pillar_F",[3628.9,13141.1,0],[],0, "CAN_COLLIDE"];
_nok2 setdir 97.347;
_nok2 allowdamage false;
_nok3 = createVehicle ["Land_City_Pillar_F",[3625.81,13130.2,0],[],0, "CAN_COLLIDE"];
_nok3 setdir 187.017;
_nok3 allowdamage false;
_nok4 = createVehicle ["Land_City_Pillar_F",[3614.59,13145.6,0],[],0, "CAN_COLLIDE"];
_nok4 setdir 11.1387;
_nok4 allowdamage false;

diag_log format["Zeit zum Ampeln Erstellen: %1 (in seconds)",(diag_tickTime - _tickTime)];
bank_obj setvariable ["ampel",true,true];
[] spawn extra_fnc_ampelon;

und nun erstellen wir noch unter
life_server\extra\fn_ampelon.sqf
mit denn code

Code:

private ["_nok1","_nok2","_nok3","_nok4"];
_nok1 = [3610.56,13129.5,0] nearestObject "Land_City_Pillar_F";
_nok2 = [3628.9,13141.1,0] nearestObject "Land_City_Pillar_F";
_nok3 = [3625.81,13130.2,0] nearestObject "Land_City_Pillar_F";
_nok4 = [3614.59,13145.6,0] nearestObject "Land_City_Pillar_F";
while {true} do {
[[1,_nok1,_nok2,_nok3,_nok4],"life_fnc_ampel",true,false] spawn life_fnc_MP;
sleep (15 + random (25));
[[2,_nok1,_nok2,_nok3,_nok4],"life_fnc_ampel",true,false] spawn life_fnc_MP;
sleep (15 + random (25));
};


Nokman 04.10.2014 08:31

Platzhalter für How To Ampel erweitern


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119