How to setup Multiplayer options using new class Params:
description.ext
Spoiler:
Code:class Params { class TimeofDay { title = "Time of Day"; values[] = {0, 1, 2, 3, 4, 5, 6, 7}; texts[] = {"Early Morning", "Morning", "Noon", "Afternoon", "Evening", "Dusk", "Night", "Midnight"}; default = 3; code = "TimeofDay = %1"; }; class Weather { title = "Weather Conditions"; values[] = {0,1,2,3,4}; texts[] = {"Clear", "Overcast", "Light Fog", "Heavy Fog", "Storm"}; default = 0; code = "Weather = %1"; }; class Environment { title = "Enable Environment"; values[] = {0, 1}; texts[] = {"False", "True"}; default = 1; code = "Environment = %1"; }; class Visibility { title = "Visibility Range"; values[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; texts[] = {"2000m", "2500m", "3000m", "3500m", "4000m", "4500m", "5000m", "5500m", "6000m", "6500m", "7000m", "7500m", "8000m","8500m","9000m","9500m","10000m"}; default = 2; code = "Visibility = %1"; }; class Grass { title = "Grass Resolution"; values[] = {0, 1, 2, 3, 4}; texts[] = {"No Grass", "Small Grass", "Medium Grass", "Large Grass", "Max Grass"}; default = 2; code = "Grass = %1"; }; };
init.sqf
Spoiler:
Code:// for MP server parameters. processParamsArray = [] execVM "ParamsArray.sqf"; [] execVM "setMissionConditions.sqf";
ParamsArray.sqf
Spoiler:
Code:for [ { _i = 0 }, { _i < count(paramsArray) }, { _i = _i + 1 } ] do { _paramName =(configName ((missionConfigFile >> "Params") select _i)); _paramValue = (paramsArray select _i); _paramCode = ( getText (missionConfigFile >> "Params" >> _paramName >> "code")); _code = format[_paramCode, _paramValue]; call compile _code; };
setMissionConditions.sqf
Spoiler:
Code:// DECLARE VARIABLES AND FUNCTIONS private ["_timeOfDay","_weather","_environment","_visibility","_grass","_MissionOvercast","_MissionFog","_MissionRain"]; // WAIT FOR PARAMSARRAY TO BE PROCESSED waitUntil {scriptDone processParamsArray}; // Conditions are set in the parameters screen (during mission set-up). _timeOfDay = TimeOfDay; _weather = weather; _environment = Environment; _visibility = Visibility; _grass = Grass; // SETS THE TIME OF DAY switch (_timeOfDay) do { case 0: {setDate [2014, 5, 11, 4, 50]}; // Early Morning case 1: {setDate [2014, 5, 11, 5, 50]}; // Morning case 2: {setDate [2014, 5, 11, 9, 00]}; // Noon case 3: {setDate [2014, 5, 11, 12, 0]}; // Afternoon case 4: {setDate [2014, 5, 11, 15, 00]}; // Evening case 5: {setDate [2014, 5, 11, 17, 50]}; // Dusk case 6: {setDate [2014, 5, 11, 18, 50]}; // Night case 7: {setDate [2014, 5, 11, 0, 0]}; // Midnight }; // SETS THE WEATHER CONDITIONS switch (_weather) do { case 0: {_MissionOvercast = 00.00; _MissionFog = 00.00; _MissionRain = 00.00}; // Clear case 1: {_MissionOvercast = 00.60; _MissionFog = 00.10; _MissionRain = 00.30}; // Overcast case 2: {_MissionOvercast = 00.60; _MissionFog = 00.8125; _MissionRain = 00.10}; // Light Fog case 3: {_MissionOvercast = 00.60; _MissionFog = 00.96; _MissionRain = 00.20}; // Heavy Fog case 4: {_MissionOvercast = 01.00; _MissionFog = 00.50; _MissionRain = 01.00}; // Storm }; 0 setOvercast _MissionOvercast; 0 setFog _MissionFog; 0 setRain _MissionRain; // SETS WHETHER OR NOT THE AMBIENT LIFE AND SOUND IS ACTIVE switch (_environment) do { case 0: {enableEnvironment false}; // ambient life and sounds off case 1: {enableEnvironment true}; // ambient life and sounds on }; // SETS THE IN-GAME VIEW DISTANCE switch (_visibility) do { case 0: {setViewDistance 2000}; case 1: {setViewDistance 2500}; case 2: {setViewDistance 3000}; case 3: {setViewDistance 3500}; case 4: {setViewDistance 4000}; case 5: {setViewDistance 4500}; case 6: {setViewDistance 5000}; case 7: {setViewDistance 5500}; case 8: {setViewDistance 6000}; case 9: {setViewDistance 6500}; case 10: {setViewDistance 7000}; case 11: {setViewDistance 7500}; case 12: {setViewDistance 8000}; case 13: {setViewDistance 8500}; case 14: {setViewDistance 9000}; case 15: {setViewDistance 9500}; case 16: {setViewDistance 10000}; }; // SETS THE RESOLUTION OF THE GRASS switch (_grass) do { case 0: {setTerrainGrid 50}; // no grass case 1: {setTerrainGrid 25}; // little grass case 2: {setTerrainGrid 12.5}; // medium grass case 3: {setTerrainGrid 6.25}; // large grass case 4: {setTerrainGrid 3.125}; // maximum grass };
HOME 

Reply With Quote