Take On Helicopters CfgBase: Difference between revisions
m (R3vo moved page CfgBase to Take On Helicopters CfgBase: added TAG) |
|
(No difference)
|
Revision as of 09:38, 15 December 2018
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 wasn't 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