Take On Helicopters CfgBase: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "wasn't" to "was not")
m (Text replacement - "\{\{ *codecomment *\| *\/\/ *([^ ]+) *\}\} " to "{{cc|$1}}")
Line 6: Line 6:
<code>class CfgBase
<code>class CfgBase
{
{
{{codecomment|//--- World name (matches CfgWorlds class)}}
{{cc|--- World name (matches CfgWorlds class)}} class United_States_H
class United_States_H
{
{
{{codecomment|//--- Heliport name (visible in menus)}}
{{cc|--- Heliport name (visible in menus)}} displayName = $STR_HSIM_CfgBase_United_States_H;
displayName = $STR_HSIM_CfgBase_United_States_H;
{{cc|--- Script executed every time heliport is loaded}} init = "\hsim\Modules_H\base\United_States_H\init.sqf";
{{codecomment|//--- Script executed every time heliport is loaded}}
{{cc|--- Starting date of heliport. Every completed mission adds one day}} initDate[] = {2013,8,5,10,0};
init = "\hsim\Modules_H\base\United_States_H\init.sqf";
{{cc|--- Starting money}} initMoney = 1985;
{{codecomment|//--- Starting date of heliport. Every completed mission adds one day}}
initDate[] = {2013,8,5,10,0};
{{codecomment|//--- Starting money}}
initMoney = 1985;
<br>
<br>
{{codecomment|//--- Subclasses (see below)}}
{{cc|--- Subclasses (see below)}} class Mission
class Mission
{
{
{{codecomment|...}}
{{codecomment|...}}
Line 57: Line 51:
class Visit
class Visit
{
{
{{codecomment|//--- Name visible in mission list on heliport}}
{{cc|--- Name visible in mission list on heliport}} displayName = $STR_HSIM_CfgBase_United_States_H_Missions_Visit;
displayName = $STR_HSIM_CfgBase_United_States_H_Missions_Visit;
{{cc|--- List of helicopter classes used as default. One of them is selected randomly.}} helicoptersDefault[] = {MISSION_HELICOPTERS_LM};
{{codecomment|//--- List of helicopter classes used as default. One of them is selected randomly.}}
{{cc|--- When 1, replaying the mission will still earn player money}} repeat = 1;
helicoptersDefault[] = {MISSION_HELICOPTERS_LM};
{{cc|--- [[#Factions|faction]] ID}} faction = 2;
{{codecomment|//--- When 1, replaying the mission will still earn player money}}
{{cc|--- Mission reward}} price = 15000;
repeat = 1;
{{cc|--- Classes of missions required before mission is displayed in menu}} requiredMissions[] = {
{{codecomment|//--- [[#Factions|faction]] ID}}
faction = 2;
{{codecomment|//--- Mission reward}}
price = 15000;
{{codecomment|//--- Classes of missions required before mission is displayed in menu}}
requiredMissions[] = {
US_C_01
US_C_01
};
};
{{codecomment|//--- Helicopter tags required for mission to be enabled in menu}}
{{cc|--- Helicopter tags required for mission to be enabled in menu}} requiredHelicopters[] = {
requiredHelicopters[] = {
{light,medium}
{light,medium}
};
};
{{codecomment|//--- Helicopter component required for mission to be enabled in menu}}
{{cc|--- Helicopter component required for mission to be enabled in menu}} requiredHelicopterUpgrades[] = {
requiredHelicopterUpgrades[] = {
doors
doors
};
};
{{codecomment|//--- Company logo displayed in heliport menu}}
{{cc|--- Company logo displayed in heliport menu}} overviewLogo = "hsim\ui_h\data\logos\logo_larkin_ca.paa";
overviewLogo = "hsim\ui_h\data\logos\logo_larkin_ca.paa";
};
};
};</code>
};</code>
Line 87: Line 72:
  class HeliLight
  class HeliLight
  {
  {
  {{codecomment|//--- Helicopter vehicle class (from CfgVehicles)}}
  {{cc|--- Helicopter vehicle class (from CfgVehicles)}} vehicle = "Heli_Light01_H";
vehicle = "Heli_Light01_H";
  {{cc|--- Name displayed in heliportmenu}} displayName = $STR_HSIM_CFGVEHICLES_HELI_LIGHT01_BASE_H0;
  {{codecomment|//--- Name displayed in heliportmenu}}
  {{cc|--- Description displayed in heliport menu}} libTextDesc = $STR_HSIM_CFGVEHICLES_HELI_LIGHT01_BASE_ARMORY;
displayName = $STR_HSIM_CFGVEHICLES_HELI_LIGHT01_BASE_H0;
  {{cc|--- Purchase price (negative value means amount is removed)}} price = -320000;
  {{codecomment|//--- Description displayed in heliport menu}}
  {{cc|--- Condition for showing the helicopter in menu (default is "true")}} show = "[[random]] 1 > 0.5";
libTextDesc = $STR_HSIM_CFGVEHICLES_HELI_LIGHT01_BASE_ARMORY;
  {{cc|--- Condition for enabling the helicopter in menu (it can be visible, but not purchasable) (default is "true")}} enable = "[[daytime]] > 12";
  {{codecomment|//--- Purchase price (negative value means amount is removed)}}
  {{cc|--- Text displayed in case enable returns false}} enableText = "Helicopters before noon are so ungentlemanlike.";
price = -320000;
  {{cc|--- When 1, helicopter is added automatically once show and enable conditions are met}} forced = 1;
  {{codecomment|//--- Condition for showing the helicopter in menu (default is "true")}}
  {{cc|--- Tags}} types[] = {"light"};
show = "[[random]] 1 > 0.5";
  {{codecomment|//--- Condition for enabling the helicopter in menu (it can be visible, but not purchasable) (default is "true")}}
enable = "[[daytime]] > 12";
  {{codecomment|//--- Text displayed in case enable returns false}}
enableText = "Helicopters before noon are so ungentlemanlike.";
  {{codecomment|//--- When 1, helicopter is added automatically once show and enable conditions are met}}
forced = 1;
  {{codecomment|//--- Tags}}
types[] = {"light"};
   
   
  {{codecomment|//--- Component category class}}
  {{cc|--- Component category class}} class Exterior
class Exterior
  {
  {
  {{codecomment|//--- Category name displayed in menu}}
  {{cc|--- Category name displayed in menu}} displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior;
displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior;
  {{cc|--- Component class}} class Doors
  {{codecomment|//--- Component class}}
class Doors
  {
  {
  {{codecomment|//--- Component name displayed in menu}}
  {{cc|--- Component name displayed in menu}} displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior_Doors;
displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior_Doors;
  {{cc|--- Component description displayed in menu}} libTextDesc = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior_Doors_desc;
  {{codecomment|//--- Component description displayed in menu}}
  {{cc|--- Model selections which component enables}} components[] = {"AddDoors"};
libTextDesc = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior_Doors_desc;
  {{cc|--- Component purchase price}} price = -1000;
  {{codecomment|//--- Model selections which component enables}}
  {{cc|--- Tags which component enables}} types[] = {"doors"};
components[] = {"AddDoors"};
  {{cc|--- Weight added to total helicopter weight}} weight = 10;
  {{codecomment|//--- Component purchase price}}
price = -1000;
  {{codecomment|//--- Tags which component enables}}
types[] = {"doors"};
  {{codecomment|//--- Weight added to total helicopter weight}}
weight = 10;
  };
  };
  };
  };
Line 132: Line 99:
  {
  {
  displayName = "Init";
  displayName = "Init";
  {{codecomment|//--- Private scope - category is not displayed in menu}}
  {{cc|--- Private scope - category is not displayed in menu}} scope = 1;
scope = 1;
 
 
  class CargoHook
  class CargoHook
Line 140: Line 106:
  libTextDesc = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliHeavy_Exterior_CargoHook;
  libTextDesc = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliHeavy_Exterior_CargoHook;
  components[] = {};
  components[] = {};
  {{codecomment|//--- Component is added automatically}}
  {{cc|--- Component is added automatically}} forced = 1;
forced = 1;
  {{cc|--- Condition for removing the component from owned ones}} hide = "myCounter > 42";
  {{codecomment|//--- Condition for removing the component from owned ones}}
hide = "myCounter > 42";
  types[] = {"cargoHook"};
  types[] = {"cargoHook"};
  };
  };
Line 169: Line 133:
class Light
class Light
{
{
{{codecomment|//--- Name visible in 'Show Requirements' message box}}
{{cc|--- Name visible in 'Show Requirements' message box}} displayName = $STR_HSIM_CfgBase_United_States_H_tags_Light;
displayName = $STR_HSIM_CfgBase_United_States_H_tags_Light;
};
};
};</code>
};</code>
Line 181: Line 144:
class CORE
class CORE
{
{
{{codecomment|//--- Name visible in Contracts menu}}
{{cc|--- Name visible in Contracts menu}} displayName = $STR_HSIM_CfgBase_United_States_H_Factions_CORE;
displayName = $STR_HSIM_CfgBase_United_States_H_Factions_CORE;
{{cc|--- Unique faction id, used for mission categoriting (see [[#Missions|Missions]])}} id = 0;
{{codecomment|//--- Unique faction id, used for mission categoriting (see [[#Missions|Missions]])}}
{{cc|--- Listbox icon}} image = "hsim\ui_h\data\igui_sidebriefing_civil_ca.paa";
id = 0;
{{codecomment|//--- Listbox icon}}
image = "hsim\ui_h\data\igui_sidebriefing_civil_ca.paa";
};
};
};</code>
};</code>
Line 204: Line 164:
  displayName = "Default Hangar";
  displayName = "Default Hangar";
  libTextDesc = "Larkin Aviation offices";
  libTextDesc = "Larkin Aviation offices";
  {{codecomment|//--- Composition class from CfgObjectCompositions}}
  {{cc|--- Composition class from CfgObjectCompositions}} composition = "heliport_hangarDefault";
composition = "heliport_hangarDefault";
  {{cc|--- Composition position}} positions[] = {"hangar00"};
  {{codecomment|//--- Composition position}}
positions[] = {"hangar00"};
  forced = 1;
  forced = 1;
  };
  };
Line 218: Line 176:
class P51
class P51
{
{
{{codecomment|//--- Zone position}}
{{cc|--- Zone position}} position[] = {2018.7,45494.7,0};
position[] = {2018.7,45494.7,0};
{{cc|--- Zone area (matches [[triggerArea]] format))}} area[] = {4500,3000,90,1};
{{codecomment|//--- Zone area (matches [[triggerArea]] format))}}
{{cc|--- Zone type (see below)}} type = 2;
area[] = {4500,3000,90,1};
{{codecomment|//--- Zone type (see below)}}
type = 2;
};
};
};</code>
};</code>

Revision as of 17:34, 29 January 2021


World

Every world is allowed to have one heliport. All settings are placed in CfgBase under classname matching those of CfgWorlds class (and returned value worldName).

class CfgBase { // --- World name (matches CfgWorlds class) class United_States_H { // --- Heliport name (visible in menus) displayName = $STR_HSIM_CfgBase_United_States_H; // --- Script executed every time heliport is loaded init = "\hsim\Modules_H\base\United_States_H\init.sqf"; // --- Starting date of heliport. Every completed mission adds one day initDate[] = {2013,8,5,10,0}; // --- Starting money initMoney = 1985;
// --- Subclasses (see below) class Mission { ... }; class Helicopters { ... }; ...etc... }; };

Following params are shared for Missions, Helicopters (including components), Staff and Upgrades.

  • scope
  • show
  • hide
  • enable
  • enableText
  • displayName
  • libTextDesc
  • price
  • forced


Mission

Includes mission.sqm of heliport mission. Used mainly dor debugging object positions in case the mission was not loaded previously.

class Mission
{
	#include "\hsim\Missions_H\campaign\missions\United_States_H.United_States_H\mission.sqm"
};

Missions

Procedural missions (Contracts).

class Missions { class Visit { // --- Name visible in mission list on heliport displayName = $STR_HSIM_CfgBase_United_States_H_Missions_Visit; // --- List of helicopter classes used as default. One of them is selected randomly. helicoptersDefault[] = {MISSION_HELICOPTERS_LM}; // --- When 1, replaying the mission will still earn player money repeat = 1; // --- faction ID faction = 2; // --- Mission reward price = 15000; // --- Classes of missions required before mission is displayed in menu requiredMissions[] = { US_C_01 }; // --- Helicopter tags required for mission to be enabled in menu requiredHelicopters[] = { {light,medium} }; // --- Helicopter component required for mission to be enabled in menu requiredHelicopterUpgrades[] = { doors }; // --- Company logo displayed in heliport menu overviewLogo = "hsim\ui_h\data\logos\logo_larkin_ca.paa"; }; };

Helicopters

class HeliLight
{
	// --- Helicopter vehicle class (from CfgVehicles) 	vehicle = "Heli_Light01_H";
	// --- Name displayed in heliportmenu 	displayName = $STR_HSIM_CFGVEHICLES_HELI_LIGHT01_BASE_H0;
	// --- Description displayed in heliport menu 	libTextDesc = $STR_HSIM_CFGVEHICLES_HELI_LIGHT01_BASE_ARMORY;
	// --- Purchase price (negative value means amount is removed) 	price = -320000;
	// --- Condition for showing the helicopter in menu (default is "true") 	show = "random 1 > 0.5";
	// --- Condition for enabling the helicopter in menu (it can be visible, but not purchasable) (default is "true") 	enable = "daytime > 12";
	// --- Text displayed in case enable returns false 	enableText = "Helicopters before noon are so ungentlemanlike.";
	// --- When 1, helicopter is added automatically once show and enable conditions are met 	forced = 1;
	// --- Tags 	types[] = {"light"};

	// --- Component category class 	class Exterior
	{
		// --- Category name displayed in menu 		displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior;
		// --- Component class 		class Doors
		{
			// --- Component name displayed in menu 			displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior_Doors;
			// --- Component description displayed in menu 			libTextDesc = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliLight_Exterior_Doors_desc;
			// --- Model selections which component enables 			components[] = {"AddDoors"};
			// --- Component purchase price 			price = -1000;
			// --- Tags which component enables 			types[] = {"doors"};
			// --- Weight added to total helicopter weight 			weight = 10;
		};
	};

	class Init 
	{
		displayName = "Init";
		// --- Private scope - category is not displayed in menu 		scope = 1;
				
		class CargoHook
		{
			displayName = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliHeavy_Exterior_CargoHook;
			libTextDesc = $STR_HSIM_CfgBase_United_States_H_Helicopters_HeliHeavy_Exterior_CargoHook;
			components[] = {};
			// --- Component is added automatically 			forced = 1;
			// --- Condition for removing the component from owned ones 			hide = "myCounter > 42";
			types[] = {"cargoHook"};
		};
	};
};

Component tags are unique, only on of the can be enabled at the same time. That means that if two component has for example tag "camera", enabling one of them will disable the other one. Only tags defined in class Tags are displayed in requirements, which mean you can use virtual tags to handle correct technical exclusion

Example: class Benches { types[] = {"benches","posSide"}; }; class Camera { types[] = {"camera","posSide","posFrame"}; }; benches and camera are defined in class Tags and are displayed in mission requirements. However, posSide is virtual tag and makes sure that camera cannot be enabled at the same time as benches (as both occupy similar position).


Tags

Every helicopter or component is marked with tags, and missions can require helicopters or components with such tags to be owned by player before they can be played. Otherwise "Show Requirements" button is active instead of "Play" in heliport mission selection. Clicking on the button will display tag descriptions defined in this class.

class Tags { class Light { // --- Name visible in 'Show Requirements' message box displayName = $STR_HSIM_CfgBase_United_States_H_tags_Light; }; };


Factions

Factions serves as mission categories (e.g. Story, Government, Tutorials, ...). class Factions { class CORE { // --- Name visible in Contracts menu displayName = $STR_HSIM_CfgBase_United_States_H_Factions_CORE; // --- Unique faction id, used for mission categoriting (see Missions) id = 0; // --- Listbox icon image = "hsim\ui_h\data\igui_sidebriefing_civil_ca.paa"; }; };


Staff

TBA

Upgrades

Heliport upgrades are compositions placed on heliport itself, like hangar, tools, tables etc. However, it can also include environment objects further away from heliport, like cargo ship wreck.

class Hangars
{
	displayName = "Hangars";
	class Hangar_default
 	{
		displayName = "Default Hangar";
		libTextDesc = "Larkin Aviation offices";
		// --- Composition class from CfgObjectCompositions 		composition = "heliport_hangarDefault";
		// --- Composition position 		positions[] = {"hangar00"};
		forced = 1;
	};
};

NoFlyZones

No-fly zones created automatically by BIS_fnc_noFlyZonesCreate. class Factions { class P51 { // --- Zone position position[] = {2018.7,45494.7,0}; // --- Zone area (matches triggerArea format)) area[] = {4500,3000,90,1}; // --- Zone type (see below) type = 2; }; };

Zone types (simplified representation of airspace classes):

  • 0 - Airport (Class D Airspace)
  • 1 - International Airport (Class B Airspace)
  • 2 - Restricted zone