top of page

MAKE HALO JUMP SYSTEM

Thanks to Babast from FOXCOM TEAM for this script

To make HALO jump system, follow this procedure :

​

​

​

STEP 1 : Open editor and on your mission place your unit and somewhere, another unit. We will take a Civilian

​

Call this civilian "haloNPC" and in his INIT box, past :

​

​

​

0 = this spawn {if (isServer) then {removeAllWeapons _this; sleep 3; _this enableSimulationGlobal false;};};

​

​

​

STEP 2 : Create init.sqf file in your mission folder and past inside :

​

​

​

/* Compile functions linked to revive functionnalities */
call compileFinal preprocessFile "BAS_haloJump\BAS_haloJump_functions.sqf";

/* Initialize player on client only */
if (!isDedicated) then
{
    [] spawn
    {
        waitUntil { !isNil {BAS_haloJump_fnc_playerInit} };
        [] call BAS_haloJump_fnc_playerInit;
    };
};

 

​

​

STEP 3 : create gui_base_defines.hpp file (you make it like SQF) and you past inside :

​

​

​

​

/******************************************************************************************
 * This work is licensed under the APL-SA. Copyright © 2016 basstard @ BI Forums          *
 ******************************************************************************************
    Author :         basstard
    Date :             08/09/2016 (jj/mm/aaaa)
    Version :         0.1
    
    Description :    Contains all defines and all base classes to make custom dialogs

    Usage :            N/A
    
    Syntax :        N/A
    
    Parameters :    N/A
*/

#ifndef __GUI_BASE_DEFINES_HPP    // Avoid multiples inclusions
#define __GUI_BASE_DEFINES_HPP


/* Control types */
#define CT_STATIC           0
#define CT_BUTTON           1
#define CT_EDIT             2
#define CT_SLIDER           3
#define CT_COMBO            4
#define CT_LISTBOX          5
#define CT_TOOLBOX          6
#define CT_CHECKBOXES       7
#define CT_PROGRESS         8
#define CT_HTML             9
#define CT_STATIC_SKEW      10
#define CT_ACTIVETEXT       11
#define CT_TREE             12
#define CT_STRUCTURED_TEXT  13
#define CT_CONTEXT_MENU     14
#define CT_CONTROLS_GROUP   15
#define CT_SHORTCUTBUTTON   16
#define CT_HITZONES         17
#define CT_XKEYDESC         40
#define CT_XBUTTON          41
#define CT_XLISTBOX         42
#define CT_XSLIDER          43
#define CT_XCOMBO           44
#define CT_ANIMATED_TEXTURE 45
#define CT_MENU                46    // Arma 3 (EDEN)
#define CT_MENU_STRIP        47    // Arma 3 (EDEN)
#define CT_CHECKBOX         77    // Arma 3
#define CT_OBJECT           80
#define CT_OBJECT_ZOOM      81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
#define CT_LINEBREAK        98
#define CT_USER             99
#define CT_MAP              100
#define CT_MAP_MAIN         101
#define CT_LISTNBOX         102
#define CT_ITEMSLOT         103

/* Static styles */
#define ST_POS            0x0F
#define ST_HPOS           0x03
#define ST_VPOS           0x0C
#define ST_LEFT           0x00
#define ST_RIGHT          0x01
#define ST_CENTER         0x02
#define ST_DOWN           0x04
#define ST_UP             0x08
#define ST_VCENTER        0x0C

#define ST_TYPE           0xF0
#define ST_SINGLE         0x00
#define ST_MULTI          0x10
#define ST_TITLE_BAR      0x20
#define ST_PICTURE        0x30
#define ST_FRAME          0x40
#define ST_BACKGROUND     0x50
#define ST_GROUP_BOX      0x60
#define ST_GROUP_BOX2     0x70
#define ST_HUD_BACKGROUND 0x80
#define ST_TILE_PICTURE   0x90
#define ST_WITH_RECT      0xA0
#define ST_LINE           0xB0
#define ST_UPPERCASE      0xC0
#define ST_LOWERCASE      0xD0

#define ST_SHADOW         0x100
#define ST_NO_RECT        0x200
#define ST_KEEP_ASPECT_RATIO  0x800

#define ST_TITLE          ST_TITLE_BAR + ST_CENTER

/* Slider styles */
#define SL_DIR            0x400
#define SL_VERT           0
#define SL_HORZ           0x400

#define SL_TEXTURES       0x10

/* Progress bar styles */
#define ST_VERTICAL       0x01
#define ST_HORIZONTAL     0

/* Listbox styles */
#define LB_TEXTURES       0x10
#define LB_MULTI          0x20

/* Tree styles */
#define TR_SHOWROOT       1
#define TR_AUTOCOLLAPSE   2

/* MessageBox styles */
#define MB_BUTTON_OK      1
#define MB_BUTTON_CANCEL  2
#define MB_BUTTON_USER    4
#define MB_ERROR_DIALOG   8

/* Xbox buttons */
#define KEY_XINPUT                0x00050000
#define KEY_XBOX_A                KEY_XINPUT + 0
#define KEY_XBOX_B                KEY_XINPUT + 1
#define KEY_XBOX_X                KEY_XINPUT + 2
#define KEY_XBOX_Y                KEY_XINPUT + 3
#define KEY_XBOX_Up               KEY_XINPUT + 4
#define KEY_XBOX_Down             KEY_XINPUT + 5
#define KEY_XBOX_Left             KEY_XINPUT + 6
#define KEY_XBOX_Right            KEY_XINPUT + 7
#define KEY_XBOX_Start            KEY_XINPUT + 8
#define KEY_XBOX_Back             KEY_XINPUT + 9
#define KEY_XBOX_LeftBumper       KEY_XINPUT + 10
#define KEY_XBOX_RightBumper      KEY_XINPUT + 11
#define KEY_XBOX_LeftTrigger      KEY_XINPUT + 12
#define KEY_XBOX_RightTrigger     KEY_XINPUT + 13
#define KEY_XBOX_LeftThumb        KEY_XINPUT + 14
#define KEY_XBOX_RightThumb       KEY_XINPUT + 15
#define KEY_XBOX_LeftThumbXRight  KEY_XINPUT + 16
#define KEY_XBOX_LeftThumbYUp     KEY_XINPUT + 17
#define KEY_XBOX_RightThumbXRight KEY_XINPUT + 18
#define KEY_XBOX_RightThumbYUp    KEY_XINPUT + 19
#define KEY_XBOX_LeftThumbXLeft   KEY_XINPUT + 20
#define KEY_XBOX_LeftThumbYDown   KEY_XINPUT + 21
#define KEY_XBOX_RightThumbXLeft  KEY_XINPUT + 22
#define KEY_XBOX_RightThumbYDown  KEY_XINPUT + 23

/* Fonts */
#define GUI_FONT_NORMAL            PuristaMedium
#define GUI_FONT_BOLD            PuristaSemibold
#define GUI_FONT_THIN            PuristaLight
#define GUI_FONT_MONO            EtelkaMonospacePro
#define GUI_FONT_NARROW            EtelkaNarrowMediumPro
#define GUI_FONT_CODE            LucidaConsoleB
#define GUI_FONT_SYSTEM            TahomaB

/* Grids */
#define GUI_GRID_CENTER_WAbs    ((safezoneW / safezoneH) min 1.2)
#define GUI_GRID_CENTER_HAbs    (GUI_GRID_CENTER_WAbs / 1.2)
#define GUI_GRID_CENTER_W        (GUI_GRID_CENTER_WAbs / 40)
#define GUI_GRID_CENTER_H        (GUI_GRID_CENTER_HAbs / 25)
#define GUI_GRID_CENTER_X        (safezoneX + (safezoneW - GUI_GRID_CENTER_WAbs)/2)
#define GUI_GRID_CENTER_Y        (safezoneY + (safezoneH - GUI_GRID_CENTER_HAbs)/2)



/****************************************************************/
/*                      Generic classes                         */
/****************************************************************/

/* Dialog background */
class IGUIBack
{
    idc = -1;
    type = CT_STATIC;
    style = ST_HUD_BACKGROUND;

    x = GUI_GRID_CENTER_X;
    y = GUI_GRID_CENTER_Y;
    w = GUI_GRID_CENTER_WAbs;
    h = GUI_GRID_CENTER_HAbs;

    colorBackground[] = {0.5,0.5,0.5,1};
    colorText[] = {0,0,0,0};

    font = GUI_FONT_NORMAL;
    sizeEx = GUI_GRID_CENTER_H;
    text = "";
};

/* Standard button */
class RscButton
{
    access = 0;            // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;            // Control identification (without it, the control won't be displayed)
    type = CT_BUTTON;    // Type
    style = ST_CENTER;    // Style
    default = 0;        // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;    // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 0.061875 * safezoneW;    // Width
    h = 0.044 * safezoneH;        // Height

    colorBackground[] = {0.29,0.255,0.275,0.7};            // Fill color
    colorBackgroundDisabled[] = {0.95,0.95,0.95,0.5};    // Disabled fill color
    colorBackgroundActive[] = {0.29,0.255,0.275,1};        // Mouse hover fill color
    colorFocused[] = {0.29,0.255,0.275,1};                // Selected fill color (oscillates between this and colorBackground)

    text = "Default";                // Displayed text
    sizeEx = GUI_GRID_CENTER_H;        // Text size
    font = GUI_FONT_NORMAL;            // Font from CfgFontFamilies
    shadow = 0;                        // Shadow (0 - none, 1 - N/A, 2 - black outline)
    colorText[] = {1,1,1,1};        // Text color
    colorDisabled[] = {1,1,1,0.5};    // Disabled text color

    borderSize = 0;                    // Left color width (border is a stripe of the control height on the left side)
    colorBorder[] = {0,0,0,1};        // Left border color

    colorShadow[] = {0,0,0,1};        // Background frame color
    offsetX = 0.003;                // Horizontal background frame offset
    offsetY = 0.003;                // Vertical background frame offset
    offsetPressedX = 0.002;            // Horizontal background offset when pressed
    offsetPressedY = 0.002;            // Horizontal background offset when pressed

    soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1};        // Sound played after control is activated in format {file, volume, pitch}
    soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1};        // Sound played when mouse cursor enters the control
    soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1};        // Sound played when the control is pushed down
    soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1};    // Sound played when the control is released after pushing down
};

/* Progress bar */
class RscProgress
{
    access = 0;                // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                // Control identification (without it, the control won't be displayed)
    type = CT_PROGRESS;        // Type
    style = ST_HORIZONTAL;    // Style
    default = 0;            // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;        // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 10 * GUI_GRID_CENTER_W;    // Width
    h = 1 * GUI_GRID_CENTER_H;    // Height

    texture = "#(argb,8,8,3)color(1,1,1,1)";    // Bar texture
    colorBar[] = {1,1,1,1};                        // Bar color
    colorFrame[] = {0,0,0,1};                    // Frame color
};

/* Static text */
class RscText
{
    access = 0;                    // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                    // Control identification (without it, the control won't be displayed)
    type = CT_STATIC;            // Type
    style = ST_LEFT;            // Style
    default = 0;                // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;            // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 0.0515625 * safezoneW;    // Width
    h = 0.022 * safezoneH;        // Height

    colorText[] = {0,0,0,1};        // Text color
    colorBackground[] = {0,0,0,0};    // Fill color

    text = "Default static text";    // Displayed text
    sizeEx = GUI_GRID_CENTER_H;        // Text size
    font = GUI_FONT_NORMAL;            // Font from CfgFontFamilies
    shadow = 0;                        // Shadow style: 0 = none (default), 1 = drop shadow, 2 = outline
};

/* Structured text */
class RscStructuredText
{
    access = 0;                    // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                    // Control identification (without it, the control won't be displayed)
    type = CT_STRUCTURED_TEXT;    // Type
    style = ST_SINGLE;            // Style
    default = 0;                // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;            // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 0.0515625 * safezoneW;    // Width
    h = 0.022 * safezoneH;        // Height

    colorBackground[] = {0,0,0,0};    // Fill color

    text = "Default structured text";    // Displayed text
    size = GUI_GRID_CENTER_H;            // Text size
    shadow = 0;                            // Shadow style: 0 = none (default), 1 = drop shadow, 2 = outline

    class Attributes
    {
        align = "left";            // Text align
        color = "#ffffff";        // Text color
        size = 1;                // Text size
        font = GUI_FONT_NORMAL;    // Font from CfgFontFamilies
    };
};

/* Frame */
class RscFrame
{
    access = 0;                    // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                    // Control identification (without it, the control won't be displayed)
    type = CT_STATIC;            // Type
    style = ST_FRAME;            // Style
    default = 0;                // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;            // Time in which control will fade out and back in. Use 0 to disable the effect.

    colorText[] = {1,1,1,1};        // Text color
    colorBackground[] = {0,0,0,0};    // Fill color

    text = "Default frame";            // Displayed text
    sizeEx = GUI_GRID_CENTER_H;        // Text size
    font = GUI_FONT_NORMAL;            // Font from CfgFontFamilies
    shadow = 2;                        // Shadow style: 0 = none (default), 1 = drop shadow, 2 = outline
};

/* Picture */
class RscPicture
{
    access = 0;                    // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                    // Control identification (without it, the control won't be displayed)
    type = CT_STATIC;            // Type
    style = ST_PICTURE;            // Style
    default = 0;                // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;            // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;
    y = GUI_GRID_CENTER_Y;
    w = GUI_GRID_CENTER_WAbs;
    h = GUI_GRID_CENTER_HAbs;

    colorText[] = {1,1,1,1};        // Text color
    colorBackground[] = {0,0,0,0};    // Fill color

    text = "";                // Displayed text
    sizeEx = 0;                // Text size
    font = GUI_FONT_NORMAL;    // Font from CfgFontFamilies
    shadow = 0;                // Shadow style: 0 = none (default), 1 = drop shadow, 2 = outline
    lineSpacing = 0;
};

/* Edit box */
class RscEdit
{
    access = 0;            // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;            // Control identification (without it, the control won't be displayed)
    type = CT_EDIT;        // Type
    style = ST_LEFT;    // Style
    default = 0;        // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;    // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 10 * GUI_GRID_CENTER_W;    // Width
    h = 1 * GUI_GRID_CENTER_H;    // Height

    text = "Default";                // Displayed text
    sizeEx = GUI_GRID_CENTER_H;        // Text size
    font = GUI_FONT_NORMAL;            // Font from CfgFontFamilies
    shadow = 0;                        // Shadow (0 - none, 1 - N/A, 2 - black outline)
    colorText[] = {0,0,0,1};        // Text and frame color
    colorDisabled[] = {1,1,1,0.5};    // Disabled text and frame color
    colorSelection[] = {1,0.5,0,1};    // Text selection color

    canModify = 1;                // True (1) to allow text editing, 0 to disable it
    autocomplete = "scripting";    // Text autocomplete, can be "scripting" (scripting commands) or "general" (previously typed text)
};

/* List box */
class RscListBox
{
    access = 0;                        // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                        // Control identification (without it, the control won't be displayed)
    type = CT_LISTBOX;                // Type
    style = ST_LEFT + LB_TEXTURES;    // Style
    default = 0;                    // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;                // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 10 * GUI_GRID_CENTER_W;    // Width
    h = 3 * GUI_GRID_CENTER_H;    // Height

    colorBackground[] = {0.2,0.2,0.2,1};    // Fill color
    colorSelectBackground[] = {1,0.5,0,1};    // Selected item fill color
    colorSelectBackground2[] = {0,0,0,1};    // Selected item fill color (oscillates between this and colorSelectBackground)

    sizeEx = GUI_GRID_CENTER_H;        // Text size
    font = GUI_FONT_NORMAL;            // Font from CfgFontFamilies
    shadow = 0;                        // Shadow (0 - none, 1 - directional, color affected by colorShadow, 2 - black outline)
    colorText[] = {1,1,1,1};        // Text and frame color
    colorDisabled[] = {1,1,1,0.5};    // Disabled text color
    colorSelect[] = {1,1,1,1};        // Text selection color
    colorSelect2[] = {1,1,1,1};        // Text selection color (oscillates between this and colorSelect)
    colorShadow[] = {0,0,0,0.5};    // Text shadow color (used only when shadow is 1)

    pictureColor[] = {1,0.5,0,1};            // Picture color
    pictureColorSelect[] = {1,1,1,1};        // Selected picture color
    pictureColorDisabled[] = {1,1,1,0.5};    // Disabled picture color

    period = 1; // Oscillation time between colorSelect/colorSelectBackground2 and colorSelect2/colorSelectBackground when selected

    rowHeight = 1.5 * GUI_GRID_CENTER_H;    // Row height
    itemSpacing = 0;                        // Height of empty space between items
    maxHistoryDelay = 1;                    // Time since last keyboard type search to reset it
    canDrag = 1;                            // 1 (true) to allow item dragging

    soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1};    // Sound played when an item is selected

    // Scrollbar configuration (applied only when LB_TEXTURES style is used)
    class ListScrollBar
    {
        width = 0;            // Unknown?
        height = 0;            // Unknown?
        scrollSpeed = 0.01;    // Unknown?

        arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";    // Arrow
        arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";        // Arrow when clicked on
        border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";            // Slider background (stretched vertically)
        thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";                // Dragging element (stretched vertically)

        color[] = {1,1,1,1}; // Scrollbar color
    };
};

/* Combo box */
class RscCombo
{
    access = 0;                        // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                        // Control identification (without it, the control won't be displayed)
    type = CT_COMBO;                // Type
    style = ST_LEFT + LB_TEXTURES;    // Style
    default = 0;                    // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;                // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 10 * GUI_GRID_CENTER_W;    // Width
    h = 1 * GUI_GRID_CENTER_H;    // Height

    colorBackground[] = {0.2,0.2,0.2,1};    // Fill color
    colorSelectBackground[] = {1,0.5,0,1};    // Selected item fill color

    sizeEx = GUI_GRID_CENTER_H;        // Text size
    font = GUI_FONT_NORMAL;            // Font from CfgFontFamilies
    shadow = 0;                        // Shadow (0 - none, 1 - N/A, 2 - black outline)
    colorText[] = {1,1,1,1};        // Text and frame color
    colorDisabled[] = {1,1,1,0.5};    // Disabled text color
    colorSelect[] = {1,1,1,1};        // Text selection color

    pictureColor[] = {1,0.5,0,1};            // Picture color
    pictureColorSelect[] = {1,1,1,1};        // Selected picture color
    pictureColorDisabled[] = {1,1,1,0.5};    // Disabled picture color

    arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa";            // Expand arrow
    arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa";    // Collapse arrow

    wholeHeight = 5 * GUI_GRID_CENTER_H;    // Maximum height of expanded box (including the control height)
    maxHistoryDelay = 1;                    // Time since last keyboard type search to reset it

    soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1};        // Sound played when the list is expanded
    soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1};    // Sound played when the list is collapsed
    soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1};        // Sound played when an item is selected

    // Scrollbar configuration (applied only when LB_TEXTURES style is used)
    class ComboScrollBar
    {
        width = 0;            // Unknown?
        height = 0;            // Unknown?
        scrollSpeed = 0.01;    // Unknown?

        arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";    // Arrow
        arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";        // Arrow when clicked on
        border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";            // Slider background (stretched vertically)
        thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";                // Dragging element (stretched vertically)

        color[] = {1,1,1,1}; // Scrollbar color
    };
};

/* Checkbox */
class RscCheckbox
{
    access = 0;                    // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;                    // Control identification (without it, the control won't be displayed)
    type = CT_CHECKBOX;            // Type
    style = ST_LEFT + ST_MULTI;    // Style
    default = 0;                // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0;            // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = 1 * GUI_GRID_CENTER_W;    // Width
    h = 1 * GUI_GRID_CENTER_H;    // Height

    //Colors
    color[] = {1,1,1,0.7};            // Texture color
    colorFocused[] = {1,1,1,1};        // Focused texture color
    colorHover[] = {1,1,1,1};        // Mouse over texture color
    colorPressed[] = {1,1,1,1};        // Mouse pressed texture color
    colorDisabled[] = {1,1,1,0.2};    // Disabled texture color

    //Background colors
    colorBackground[] = {0,0,0,0};            // Fill color
    colorBackgroundFocused[] = {0,0,0,0};    // Focused fill color
    colorBackgroundHover[] = {0,0,0,0};        // Mouse hover fill color
    colorBackgroundPressed[] = {0,0,0,0};    // Mouse pressed fill color
    colorBackgroundDisabled[] = {0,0,0,0};    // Disabled fill color

    //Textures
    textureChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa";                //Texture of checked CheckBox.
    textureUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa";            //Texture of unchecked CheckBox.
    textureFocusedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa";        //Texture of checked focused CheckBox (Could be used for showing different texture when focused).
    textureFocusedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa";    //Texture of unchecked focused CheckBox.
    textureHoverChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa";
    textureHoverUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa";
    texturePressedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa";
    texturePressedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa";
    textureDisabledChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa";
    textureDisabledUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa";

    //Sounds
    soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1};        // Sound played after control is activated in format {file, volume, pitch}
    soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1};        // Sound played when mouse cursor enters the control
    soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1};        // Sound played when the control is pushed down
    soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1};    // Sound played when the control is released after pushing down
};

/* Map */
class RscMap
{
    access = 0;            // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;            // Control identification (without it, the control won't be displayed)
    type = CT_MAP_MAIN;    // Type
    style = ST_PICTURE;    // Style
    default = 0;        // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = GUI_GRID_CENTER_WAbs;    // Width
    h = GUI_GRID_CENTER_HAbs;    // Height

    sizeEx = GUI_GRID_CENTER_H;    // Text size
    font = GUI_FONT_NORMAL;        // Font from CfgFontFamilies
    colorText[] = {0,0,0,1};    // Text color

    // Rendering density coefficients
    ptsPerSquareSea =    5;    // seas
    ptsPerSquareTxt =    20;    // textures
    ptsPerSquareCLn =    10;    // count-lines
    ptsPerSquareExp =    10;    // exposure
    ptsPerSquareCost =    10;    // cost

    // Rendering thresholds
    ptsPerSquareFor =    9;        // forests
    ptsPerSquareForEdge =    9;    // forest edges
    ptsPerSquareRoad =    6;        // roads
    ptsPerSquareObj =    9;        // other objects

    scaleMin = 0.001;        // Min map scale (i.e., max zoom)
    scaleMax = 1.0;            // Max map scale (i.e., min zoom)
    scaleDefault = 0.16;    // Default scale

    alphaFadeStartScale = 0.1;    // Scale at which satellite map starts appearing
    alphaFadeEndScale = 0.01;    // Scale at which satellite map is fully rendered
    maxSatelliteAlpha = 0.85;    // Maximum alpha of satellite map

    text = "#(argb,8,8,3)color(1,1,1,1)";    // Fill texture
    colorBackground[] = {1,1,1,1};            // Fill color

    colorOutside[] = {0,0,0,1};                        // Color outside of the terrain area (not sued when procedural terrain is enabled)
    colorSea[] = {0.4,0.6,0.8,0.5};                    // Sea color
    colorForest[] = {0.6,0.8,0.4,0.5};                // Forest color
    colorForestBorder[] = {0.6,0.8,0.4,1};            // Forest border color
    colorRocks[] = {0,0,0,0.3};                        // Rocks color
    colorRocksBorder[] = {0,0,0,1};                    // Rocks border color
    colorLevels[] = {0.3,0.2,0.1,0.5};                // Elevation number color
    colorMainCountlines[] = {0.6,0.4,0.2,0.5};        // Main countline color (every 5th)
    colorCountlines[] = {0.6,0.4,0.2,0.3};            // Countline color
    colorMainCountlinesWater[] = {0.5,0.6,0.7,0.6};    // Main water countline color (every 5th)
    colorCountlinesWater[] = {0.5,0.6,0.7,0.3};        // Water countline color
    colorPowerLines[] = {0.1,0.1,0.1,1};            // Power lines color
    colorRailWay[] = {0.8,0.2,0,1};                    // Railway color
    colorNames[] = {1.1,0.1,1.1,0.9};                // Unknown?
    colorInactive[] = {1,1,0,0.5};                    // Unknown?
    colorTracks[] = {0.8,0.8,0.7,0.2};                // Small road border color
    colorTracksFill[] = {0.8,0.7,0.7,1};            // Small road color
    colorRoads[] = {0.7,0.7,0.7,1};                    // Medium road border color
    colorRoadsFill[] = {1,1,1,1};                    // Medium road color
    colorMainRoads[] = {0.9,0.5,0.3,1};                // Large road border color
    colorMainRoadsFill[] = {1,0.6,0.4,1};            // Large road color
    colorGrid[] = {0.1,0.1,0.1,0.6};                // Grid coordinate color
    colorGridMap[] = {0.1,0.1,0.1,0.6};                // Grid line color

    fontLabel = GUI_FONT_NORMAL;            // Tooltip font from CfgFontFamilies
    sizeExLabel = GUI_GRID_CENTER_H * 0.5;    // Tooltip font size

    fontGrid = GUI_FONT_SYSTEM;                // Grid coordinate font from CfgFontFamilies
    sizeExGrid = GUI_GRID_CENTER_H * 0.5;    // Grid coordinate font size

    fontUnits = GUI_FONT_SYSTEM;            // Selected group member font from CfgFontFamilies
    sizeExUnits = GUI_GRID_CENTER_H * 0.5;    // Selected group member font size

    fontNames = GUI_FONT_NARROW;            // Marker font from CfgFontFamilies
    sizeExNames = GUI_GRID_CENTER_H * 0.5;    // Marker font size

    fontInfo = GUI_FONT_NORMAL;                // Unknown?
    sizeExInfo = GUI_GRID_CENTER_H * 0.5;    // Unknown?

    fontLevel = GUI_FONT_SYSTEM;            // Elevation number font
    sizeExLevel = GUI_GRID_CENTER_H * 0.5;    // Elevation number font size

    showCountourInterval = 1;    // Show Legend

    class Task
    {
        icon = "#(argb,8,8,3)color(1,1,1,1)";
        color[] = {1,1,0,1};

        iconCreated = "#(argb,8,8,3)color(1,1,1,1)";
        colorCreated[] = {0,0,0,1};

        iconCanceled = "#(argb,8,8,3)color(1,1,1,1)";
        colorCanceled[] = {0,0,0,0.5};

        iconDone = "#(argb,8,8,3)color(1,1,1,1)";
        colorDone[] = {0,1,0,1};

        iconFailed = "#(argb,8,8,3)color(1,1,1,1)";
        colorFailed[] = {1,0,0,1};

        size = 8;
        importance = 1;    // Required, but not used
        coefMin = 1;    // Required, but not used
        coefMax = 1;    // Required, but not used
    };
    class ActiveMarker
    {
        color[] = {0,0,0,1};    // Icon color
        size = 2;                // Size in pixels
    };
    class Waypoint
    {
        coefMax = 1;                            // Minimum size coefficient
        coefMin = 4;                            // Maximum size coefficient
        color[] = {0,0,0,1};                    // Icon color
        icon = "#(argb,8,8,3)color(0,0,0,1)";    // Icon texture
        importance = 1;                            // Drawing importance (when multiple icons are close together, the one with larger importance is prioritized)
        size = 2;                                // Size in pixels
    };
    class WaypointCompleted: Waypoint{};
    class CustomMark: Waypoint{};
    class Command: Waypoint{};
    class Bush: Waypoint{};
    class Rock: Waypoint{};
    class SmallTree: Waypoint{};
    class Tree: Waypoint{};
    class BusStop: Waypoint{};
    class FuelStation: Waypoint{};
    class Hospital: Waypoint{};
    class Church: Waypoint{};
    class Lighthouse: Waypoint{};
    class Power: Waypoint{};
    class PowerSolar: Waypoint{};
    class PowerWave: Waypoint{};
    class PowerWind: Waypoint{};
    class Quay: Waypoint{};
    class Transmitter: Waypoint{};
    class Watertower: Waypoint{};
    class Cross: Waypoint{};
    class Chapel: Waypoint{};
    class Shipwreck: Waypoint{};
    class Bunker: Waypoint{};
    class Fortress: Waypoint{};
    class Fountain: Waypoint{};
    class Ruin: Waypoint{};
    class Stack: Waypoint{};
    class Tourism: Waypoint{};
    class ViewTower: Waypoint{};
};

/* Map main */
class RscMapMain
{
    access = 0;            // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
    idc = -1;            // Control identification (without it, the control won't be displayed)
    type = CT_MAP_MAIN;    // Type
    style = ST_PICTURE;    // Style
    default = 0;        // Control selected by default (only one within a display can be used)
    blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.

    x = GUI_GRID_CENTER_X;        // Horizontal coordinates
    y = GUI_GRID_CENTER_Y;        // Vertical coordinates
    w = GUI_GRID_CENTER_WAbs;    // Width
    h = GUI_GRID_CENTER_HAbs;    // Height

    sizeEx = GUI_GRID_CENTER_H;    // Text size
    font = GUI_FONT_NORMAL;        // Font from CfgFontFamilies
    colorText[] = {0,0,0,0};    // Text color

    text = "";
    colorBackground[] = {0, 0, 0, 0};

    colorSea[] = {0.1, 0.3, 0.5, 0.25};
    colorForest[] = {0.10, 0.50, 0.10, 0.50};
    colorRocks[] = {0.50, 0.50, 0.50, 1};
    colorCountlines[] = {0.65, 0.45, 0.27, 0.50};
    colorMainCountlines[] = {0.65, 0.45, 0.27, 1.00};
    colorCountlinesWater[] = {0.00, 0.53, 1.00, 0.3};
    colorMainCountlinesWater[] = {0.00, 0.53, 1.00, 0.6};
    colorForestBorder[] = {0.40, 0.80, 0.00, 1.00};
    colorRocksBorder[] = {0.50, 0.50, 0.50, 1.00};
    colorPowerLines[] = {0.00, 0.00, 0.00, 1.00};
    colorNames[] = {0.00, 0.00, 0.00, 1.00};
    colorInactive[] = {1, 0.3, 0.5, 1};
    colorLevels[] = {0.00, 0.00, 0.00, 1.00};
    colorOutside[] = {0.1, 0.3, 0.5, 0.5};
    colorRailWay[] = {1, 0, 0.5, 1};
    colorTracks[] = {0.8, 0.6, 0.6, 1};
    colorTracksFill[] = {0.7, 0.5, 0.5, 1};
    colorRoads[] = {0.8, 0.8, 0.8, 1};
    colorRoadsFill[] = {0.7, 0.7, 0.7, 1};
    colorMainRoads[] = {1, 1, 1, 1};
    colorMainRoadsFill[] = {0.9, 0.9, 0.9, 1};
    colorGrid[] = {0, 0, 0, 0.5};
    colorGridMap[] = {0, 0, 0, 0.5};

    alphaFadeStartScale = 5;
    alphaFadeEndScale = 5;
    maxSatelliteAlpha = 0.9;

    fontLabel = GUI_FONT_NORMAL;            // Tooltip font from CfgFontFamilies
    sizeExLabel = GUI_GRID_CENTER_H * 0.5;    // Tooltip font size

    fontGrid = GUI_FONT_SYSTEM;                // Grid coordinate font from CfgFontFamilies
    sizeExGrid = GUI_GRID_CENTER_H * 0.5;    // Grid coordinate font size

    fontUnits = GUI_FONT_SYSTEM;            // Selected group member font from CfgFontFamilies
    sizeExUnits = GUI_GRID_CENTER_H * 0.5;    // Selected group member font size

    fontNames = GUI_FONT_NARROW;            // Marker font from CfgFontFamilies
    sizeExNames = GUI_GRID_CENTER_H * 0.5;    // Marker font size

    fontInfo = GUI_FONT_NORMAL;                // Unknown?
    sizeExInfo = GUI_GRID_CENTER_H * 0.5;    // Unknown?

    fontLevel = GUI_FONT_SYSTEM;            // Elevation number font
    sizeExLevel = GUI_GRID_CENTER_H * 0.5;    // Elevation number font size

    stickX[] = {0.20, {"Gamma", 1.00, 1.50} };
    stickY[] = {0.20, {"Gamma", 1.00, 1.50} };

    ptsPerSquareSea = 6;
    ptsPerSquareTxt = 8;
    ptsPerSquareCLn = 8;
    ptsPerSquareExp = 8;
    ptsPerSquareCost = 8;
    ptsPerSquareFor = "4.0f";
    ptsPerSquareForEdge = "10.0f";
    ptsPerSquareRoad = 2;
    ptsPerSquareObj = 10;

    showCountourInterval=2;
    onMouseButtonClick = "";
    onMouseButtonDblClick = "";

    scaleMin = 0.05;
    scaleMax = 3;
    scaleDefault = 0.1;

    class ActiveMarker {
        color[] = {0.30, 0.10, 0.90, 1.00};
        size = 50;
    };
    class Bunker {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 14;
        importance = "1.5 * 14 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class Bush {
        icon = "";
        color[] = {0.55, 0.64, 0.43, 1.00};
        size = 14;
        importance = "0.2 * 14 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class BusStop {
        icon = "";
        color[] = {0.00, 0.00, 1.00, 1.00};
        size = 10;
        importance = "1 * 10 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class Command {
        icon = "#(argb,8,8,3)color(1,1,1,1)";
        color[] = {0.00, 0.00, 0.00, 1.00};
        size = 18;
        importance = 1.00;
        coefMin = 1.00;
        coefMax = 1.00;
    };
    class Cross {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 16;
        importance = "0.7 * 16 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class Chapel {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 16;
        importance = "1 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class Church {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 16;
        importance = "2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class CustomMark {
        icon = "";
        color[] = {0.55, 0.64, 0.43, 1};
        size = 16;
        importance = 0.7 * 16 * 0.05;
        coefMin = 0.25;
        coefMax = 4;
    };
    class Fortress {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 16;
        importance = "2 * 16 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class Fuelstation {
        icon = "";
        color[] = {1.00, 0.35, 0.35, 1.00};
        size = 16;
        importance = "2 * 16 * 0.05";
        coefMin = 0.75;
        coefMax = 4.00;
    };
    class Fountain {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 12;
        importance = "1 * 12 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class Hospital {
        icon = "";
        color[] = {0.78, 0.00, 0.05, 1.00};
        size = 16;
        importance = "2 * 16 * 0.05";
        coefMin = 0.50;
        coefMax = 4;
    };
    class Lighthouse {
        icon = "";
        color[] = {0.78, 0.00, 0.05, 1.00};
        size = 20;
        importance = "3 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class Quay {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 16;
        importance = "2 * 16 * 0.05";
        coefMin = 0.50;
        coefMax = 4.00;
    };
    class Rock {
        icon = "";
        color[] = {0.55, 0.64, 0.43, 1};
        size = 12;
        importance = 0.5 * 12 * 0.05;
        coefMin = 0.25;
        coefMax = 4;
    };
    class Ruin {
        icon = "";
        color[] = {0.78, 0, 0.05, 1};
        size = 16;
        importance = 1.2 * 16 * 0.05;
        coefMin = 1;
        coefMax = 4;
    };
    class Stack {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 20;
        importance = "2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class Tree {
        icon = "";
        color[] = {0.55, 0.64, 0.43, 1.00};
        size = 12;
        importance = "0.9 * 16 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class SmallTree {
        icon = "";
        color[] = {0.55, 0.64, 0.43, 1.00};
        size = 12;
        importance = "0.6 * 12 * 0.05";
        coefMin = 0.25;
        coefMax = 4.00;
    };
    class Task {
        icon = "";
        color[] = {0.55, 0.64, 0.43, 1};
        size = 16;
        importance = 0.7 * 16 * 0.05;
        coefMin = 0.25;
        coefMax = 4;
        iconCreated = "#(argb,8,8,3)color(1,1,1,1)";
        iconCanceled = "#(argb,8,8,3)color(0,0,1,1)";
        iconDone = "#(argb,8,8,3)color(0,0,0,1)";
        iconFailed = "#(argb,8,8,3)color(1,0,0,1)";
        colorCreated[] = {1,1,1,1};
        colorCanceled[] = {1,1,1,1};
        colorDone[] = {1,1,1,1};
        colorFailed[] = {1,1,1,1};
    };
    class Tourism {
        icon = "";
        color[] = {0.78, 0.00, 0.05, 1.00};
        size = 16; importance = "1 * 16 * 0.05";
        coefMin = 0.70;
        coefMax = 4.00;
    };
    class ShipWreck {
        icon = "";
        color[] = {0.78, 0.00, 0.05, 1.00};
        size = 16; importance = "1 * 16 * 0.05";
        coefMin = 0.70;
        coefMax = 4.00;
    };
    class Transmitter {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 20;
        importance = "2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class PowerSolar {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 20;
        importance = "2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class PowerWave {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 20;
        importance = "2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class PowerWind {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 20;
        importance = "2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class ViewTower {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 16;
        importance = "2.5 * 16 * 0.05";
        coefMin = 0.50;
        coefMax = 4.00;
    };
    class Watertower {
        icon = "";
        color[] = {0.00, 0.35, 0.70, 1.00};
        size = 32;
        importance = "1.2 * 16 * 0.05";
        coefMin = 0.90;
        coefMax = 4.00;
    };
    class Waypoint {
        icon = "";
        color[] = {0.00, 0.00, 0.00, 1.00};
        size = 24;
        importance = 1.00;
        coefMin = 1.00;
        coefMax = 1.00;
    };
    class WaypointCompleted {
        icon = "";
        color[] = {0.00, 0.00, 0.00, 1.00};
        size = 24;
        importance = 1.00;
        coefMin = 1.00;
        coefMax = 1.00;
    };
    class LineMarker {
        lineDistanceMin = 3e-005;
        lineLengthMin = 5;
        lineWidthThick = 0.014;
        lineWidthThin = 0.008;
        textureComboBoxColor = "#(argb,8,8,3)color(1,1,1,1)";
    };    
};


#endif    // __GUI_BASE_DEFINES_HPP

​

​

​

STEP 4 : in your description.ext, past this on the top

​

​

​

#include "gui_base_defines.hpp"
#include "BAS_haloJump\BAS_haloJump_gui.hpp"

​

​

​

STEP 5 : in your mission folder, create folder BAS_halojump

​

​

​

In your folder "BAS_halojump", make "SFX" folder

​

In this foldier, place sound name "heli" and converted in .ogg (exemple : heli.ogg)

​

Its the copter sound when you are dropped in HALO

​

​

​

STEP 6 : in BAS_Halojump folder, make BAS_haloJump_functions.sqf file and past this :

​

​

​

/******************************************************************************************
 * This work is licensed under the APL-SA. Copyright © 2016 basstard @ BI Forums          *
 ******************************************************************************************
    Author :         basstard
    Date :             26/08/2016 (jj/mm/aaaa)
    Version :         0.1
    
    Description :    Functions collection for basstard's HALO jump functionnalities

    Usage :            N/A
    
    Syntax :        N/A
    
    Parameters :    None
*/



/******************************************************************************************
    Description :    Function to initialize player
    Syntax :        [] call BAS_haloJump_fnc_playerInit;
    Parameters :    None
    Return :        None
*******************************************************************************************/
BAS_haloJump_fnc_playerInit =
{
    /* Wait if player is JIP */
    waitUntil { !isNull player };
    
    /* Add action for HALO jump */
    haloNPC addAction ["<t color='#F4E73E'>HALO Jump</t>", "call BAS_haloJump_fnc_createHaloDialog", nil, 10, true, true, "", "true", 5, false];
};


/******************************************************************************************
    Description :    Function to perform initiate a parachute insertion aka HALO jump
    Syntax :        [] call BAS_fnc_haloJump;
    Parameters :    None
    Return :        None
*******************************************************************************************/
BAS_haloJump_fnc_createHaloDialog =
{
    /* Create local marker on player position */
    createMarkerLocal ["BAS_haloJump_haloPosMarker", position player];
    "BAS_haloJump_haloPosMarker" setMarkerShapeLocal "ICON";
    "BAS_haloJump_haloPosMarker" setMarkerTypeLocal "hd_objective";
    "BAS_haloJump_haloPosMarker" setMarkerColorLocal "ColorRed";
    
    /* Add map EH to get HALO position */
    ["BAS_haloJump_mapEH", "onMapSingleClick", { "BAS_haloJump_haloPosMarker" setMarkerPosLocal _pos; } ] call BIS_fnc_addStackedEventHandler;
    
    /* Create HALO dialog */
    createDialog "haloDialog";
    
    /* Add display event handler to catch ESC press */
    waitUntil { sleep 0.5; !isNull (findDisplay 33043) };
    (findDisplay 33043) displayAddEventHandler ["KeyDown", { if (_this select 1 == 1) then { (_this select 0) call BAS_haloJump_fnc_terminateHaloRequest; false }; }];
};


    
/******************************************************************************************
    Description :    Function to perform a parachute insertion aka HALO jump
    Syntax :        [] spawn BAS_haloJump_fnc_handleHaloRequest;
    Parameters :    None
    Return :        None
*******************************************************************************************/
BAS_haloJump_fnc_handleHaloRequest =
{
    disableSerialization;
    
    private ["_player", "_haloPos"];
    
    _player = player;
    
    /* Store HALO destination */
    _haloPos = getMarkerPos "BAS_haloJump_haloPosMarker";

    /* Clean HALO request context */
    (findDisplay 33043) call BAS_haloJump_fnc_terminateHaloRequest;

    /* Close dialog */
    if (dialog) then
    {
        closeDialog 0;
    };
    
    /* Ensure player is ready to HALO */
    if (alive _player && !(_player getVariable ["BAS_isIncapacitated", false])) then
    {
        titleText ["", "BLACK FADED", 999];
        playSound "heliSFX";
        
        /* Make player invisible and invincible until he get parachuted */
        disableUserInput true;
        _player allowDamage false;
        [_player, true] remoteExec ["hideObjectGlobal", 2, false];
        
        /* Save player inventory and give him a parachute */
        [_player, [_player, "BAS_haloJump_playerInventory"]] call BIS_fnc_saveInventory;
        removeBackpack _player;
        _player addBackpack "B_Parachute";        

        /* Add randomness to final position */
        _haloPos = [_haloPos, random 250, random 360] call BIS_fnc_relPos;
        _haloPos set [2, 1000];    // set altitude to 1000m

        /* Preload camera on new position */
        waitUntil {sleep 0.1; preloadCamera _haloPos};
        waitUntil {!isNil "bis_fnc_init" && {bis_fnc_init}};
        _player setPos _haloPos;
        
        /* Enable damages, unfreeze unit and make it visible */
        [_player, false] remoteExec ["hideObjectGlobal", 2, false];
        waitUntil { sleep 0.1 ; !isObjectHidden _player };
        titleText ["", "BLACK FADED", 1];
        titleFadeOut 5;
        disableUserInput false;
        disableUserInput true;
        disableUserInput false;
        _player allowDamage true;

        /* Wait player landing to restore inventory */
        waitUntil { sleep 0.5; (position _player select 2) < 1 };
        [_player, [_player, "BAS_haloJump_playerInventory"]] call BIS_fnc_loadInventory;
        _player setVariable ["BAS_haloJump_playerInventory", nil];
    };
};


/******************************************************************************************
    Description :    Function to clean HALO jump context
    Syntax :        [] call BAS_haloJump_fnc_terminateHaloRequest;
    Parameters :    None
    Return :        None
*******************************************************************************************/
BAS_haloJump_fnc_terminateHaloRequest =
{
    /* Delete HALO marker */
    deleteMarkerLocal "BAS_haloJump_haloPosMarker";

    /* Remove map EH  */
    ["BAS_haloJump_mapEH", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler;
    
    /* Remove display EH */
    _this displayRemoveAllEventHandlers "KeyDown";
};

​

​

​

STEP 7 : in BAS_Halojump folder, make BAS_haloJump_gui.hpp file and past this :

​

​

​

class haloDialog
{
    idd = 33043; // Display identification
    enableSimulation = 1; // 1 (true) to allow world simulation to be running in the background, 0 to freeze it
    movingEnabled = false;
    
    class Controls
    {
        class background: IGUIBack
        {
            idc = 2200;
            
            x = 0.29375 * safezoneW + safezoneX;
            y = 0.225 * safezoneH + safezoneY;
            w = 0.4125 * safezoneW;
            h = 0.55 * safezoneH;
            
            colorBackground[] = {0.051,0.024,0.059,1};
        };

        class titleText: RscStructuredText
        {
            idc = 1000;
            style = ST_VCENTER;
            
            text = "HALO Jump"; //--- ToDo: Localize;
            
            x = 0.29375 * safezoneW + safezoneX;
            y = 0.225 * safezoneH + safezoneY;
            w = 0.061875 * safezoneW;
            h = 0.022 * safezoneH;
        };

        class btnClose: RscButton
        {
            idc = 1600;
            
            text = "X"; //--- ToDo: Localize;
            
            x = 0.675313 * safezoneW + safezoneX;
            y = 0.225 * safezoneH + safezoneY;
            w = 0.0309375 * safezoneW;
            h = 0.022 * safezoneH;

            colorBackground[] = {0.051,0.024,0.059,1};            // Fill color
            colorBackgroundActive[] = {0.761,0.184,0.188,1};    // Mouse hover fill color
            colorFocused[] = {0.239,0.216,0.243,1};                // Selected fill color (oscillates between this and colorBackground)

            colorShadow[] = {0,0,0,0};    // Background frame color
            offsetPressedX = 0;            // Horizontal background offset when pressed
            offsetPressedY = 0;            // Horizontal background offset when pressed

            colorText[] = {1,1,1,1};        // Text color

            action = "(findDisplay 33043) call BAS_haloJump_fnc_terminateHaloRequest; closeDialog 0;";
        };

        class map: RscMapMain
        {
            idc = 1200;

            x = 0.29375 * safezoneW + safezoneX;
            y = 0.247 * safezoneH + safezoneY;
            w = 0.4125 * safezoneW;
            h = 0.462 * safezoneH;
            
            colorOutside[] = {0.051,0.024,0.059,1};
        };

        class btnJump: RscButton
        {
            idc = 1601;
            
            text = "Jump"; //--- ToDo: Localize;
            
            x = 0.469062 * safezoneW + safezoneX;
            y = 0.72 * safezoneH + safezoneY;

            colorBackground[] = {0.145,0.118,0.149,1};            // Fill color
            colorBackgroundActive[] = {0.239,0.216,0.243,1};    // Mouse hover fill color
            colorFocused[] = {0.145,0.118,0.149,1};                // Selected fill color (oscillates between this and colorBackground)

            action = "[] spawn BAS_haloJump_fnc_handleHaloRequest;";
        };
    };
};


 

​

​

​

You will be able to click on the civilian and see menu appear to engage HALO drop and choose your drop location

​

© 2016 by Alphive and Babast, by FOXCOM TEAM.  Proudly created with Wix.com

bottom of page