Mission Parameters – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 22: Line 22:
  values[] = {6,12,18,0};
  values[] = {6,12,18,0};
  default = 12;
  default = 12;
  function = "BIS_fnc_paramDaytime"; {{codecomment|// (Optional) [[Functions_Library_(Arma_3)|Function]] [[call]]ed upon mission start, selected value is passed as an argument}}
  function = "BIS_fnc_paramDaytime"; {{codecomment|// (Optional) [[Functions_Library_(Arma_3)|Function]] [[call]]ed when player joins, selected value is passed as an argument}}
  };
  };
  class ViewDistance
  class ViewDistance
Line 30: Line 30:
  {{codecomment|// When 'texts' are missing, values will be displayed directly instead}}
  {{codecomment|// When 'texts' are missing, values will be displayed directly instead}}
  default = 1000;
  default = 1000;
  file = "setViewDistance.sqf"; {{codecomment|// (Optional) Script [[call]]ed upon mission start, selected value is passed as an argument}}
  file = "setViewDistance.sqf"; {{codecomment|// (Optional) Script [[call]]ed when player joins, selected value is passed as an argument}}
  };
  };
  };
  };

Revision as of 21:43, 25 March 2014


Server admin / host can customize multiplayer missions in ROLE ASSIGNMENT menu using parameters prepared by the mission designer.

Manual Params

Config

Mission Parameters selection

Params are defined in description.ext.

class Params
{
	class AISkill
	{
		title = "AI Skill"; // Param name visible in the list
		values[] = {0.2,0.6,1}; // Description of each selectable item
		texts[] = {"Recruit","Regular","Veteran"}; // Values; must be integers; has to have the same number of elements as 'texts'
		default = 0.6; // Default value; must be listed in 'values' array, otherwise 0 is used
	};
	class Daytime
	{
		title = "Time";
		texts[] = {"Morning","Day","Evening","Night"};
		values[] = {6,12,18,0};
		default = 12;
		function = "BIS_fnc_paramDaytime"; // (Optional) Function called when player joins, selected value is passed as an argument
	};
	class ViewDistance
	{
		title = "View distance (in metres)";
		values[] = {500,1000,2000,5000};
		// When 'texts' are missing, values will be displayed directly instead
		default = 1000;
		file = "setViewDistance.sqf"; // (Optional) Script called when player joins, selected value is passed as an argument
	};
};

Mission

Selected values are stored in paramsArray array, accessible anytime during the mission on any connected computer. Their order is the same as is in description.cfg (for example, params above would result in [12,1] if default values were kept).

Example (can be used in init.sqf):

if (isServer) then {
	_skill = paramsArray select 0;
	{
		_x setSkill _skill;
	} forEach allUnits;
};

setViewDistance.sqf:

setViewDistance (_this select 0);

Functions

When you're not sure about order of paramsArray items (e.g., in a module which can be used in any mission), you can use BIS_fnc_getParamValue to get value of a param with given classname.

_viewDistance = "ViewDistance" call BIS_fnc_getParamValue;


Predefined Params

Arma 3 introduces a framework for defining commonly used params (e.g., time of the day or mission duration), which can be shared across multiple missions. Once included to description.ext, they will initialize automatically. Some of them can be further customized using specific macros.

class Params
{
	#include "\a3\functions_f\Params\paramWeather.hpp"

	#define TICKETS_DEFAULT 600
	#include "\a3\functions_f\Params\paramRespawnTickets.hpp"
};

Available Templates

File Description Optional variables
\a3\functions_f\Params\paramCountdown.hpp Set mission countdown (in seconds)
#define COUNTDOWN_MIN		600
#define COUNTDOWN_MAX		3600
#define COUNTDOWN_DEFAULT	-1
\a3\functions_f\Params\paramDaytimeHour.hpp Set starting hour, options are represented by whole hours
 //Can be any integer between 0 and 23
#define DAYTIMEHOUR_DEFAULT	19
\a3\functions_f\Params\paramDaytimePeriod.hpp Set starting hour, options are described by words
 //Can be 0, 6, 12 or 18
#define DAYTIMEPERIOD_DEFAULT	12
\a3\functions_f\Params\paramGuerFriendly.hpp Set to whom will independent side be friendly
 //Can be any -1 (Nobody}, 0 (OPFOR), 1 (BLUFOR) or 2 (Everybody)
#define GUERFRIENDLY_DEFAULT	-1
\a3\functions_f\Params\paramRespawnTickets.hpp Set respawn tickets for all sides
#define TICKETS_MIN		100
#define TICKETS_MAX		1100
#define TICKETS_DEFAULT		-1
\a3\functions_f\Params\paramWeather.hpp Set default weather
 //Can be 0 (sunny), 25, 50, 75 or 100 (storm))
#define WEATHER_DEFAULT		40