Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 04.10.2014, 08:31   #1 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard [How To]Ampel

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.



Mit Wechsel



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));
};
Angehängte Dateien
Dateityp: zip fn_ampel.zip (696 Bytes, 162x aufgerufen)
Nokman ist offline   Mit Zitat antworten
Alt 04.10.2014, 08:31   #2 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard

Platzhalter für How To Ampel erweitern
Nokman ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[How To] Savezone Nokman Rollenspiel & Zombie Ecke 0 04.10.2014 07:25


Kontakt - HX3.de - Archiv - Nach oben

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