POLPOX – User
Template:User ja | |
Template:User en-2 |
Where I live | ||
---|---|---|
Steam | Twitter(JA/EN) | Forums |
Also cursed biography on my blog |
My very own sandbox (aka Idea for contribute to the wiki)
April Fool things by Bohemia Interactive
2014 | Arma 3 Karts (It eventually became true) |
---|---|
2015 | Nothing? |
2016 | “Arma” Eau De Combat |
2017 | Nothing due to it being a Saturday. |
2018 | Nothing due to it being a Sunday. |
2019 | Bohemia Sandbox Theme Park |
2020 | More to come... Soon™ |
... | ... |
Missing events in Armaverse Timeline
- Red Tiger Coup
Kavala CoupJerusalem Ceasefire- First Contact events (Which aren't canon though)
- June 15 2039, Electron-39 starts
- Olom Meteor Strike in 2020 (Coverup news)
- July 7 2039, Electron-39 supposed to be ended
Maybe there's more
Easter eggs in BI games
Is DLC Restricted?
->Arma_3_DLC_Restrictions¯\_(ツ)_/¯
Obsolete → Outdated template
Missile Components
Kind of personal memo. Useful when you're trying to do setMissileTarget and setMissileTargetPos?
Looks like SACLOS one (manualControl = 1) is the only component to do setMissileTargetPos.
See Also: Component Types, Munition guidance list
classname | Cone (degrees) | Components | Air Target Range (m) | Ground Target Range (m) | Max lock speed (km/h) | Used in |
---|---|---|---|---|---|---|
MissileCore | 50 | SACLOS | N/A | N/A | 0 | N/A |
ammo_Missile_CruiseBase | 360 | Data Link | 0?-32000 | 0?-32000 | 1 | N/A |
ammo_Missile_CannonLaunchedBase | 50 | AI Manual | 500-8000 | 500-8000 | 0 | N/A |
SACLOS | N/A | N/A | ||||
ammo_Bomb_LaserGuidedBase | 120 | NV | 500-5000 | 500-5000 | 30 | N/A |
Laser | 0?-5000 | 0?-5000 | ||||
Laserbeam | 0 | SACLOS | N/A | N/A | 0 | Designator Batteries |
M_PG_AT | 30 | IR | 500-4000 | 500-4000 | 35 | DAGR DAGR DAGR |
Laser | 0?-4000 | 0?-4000 | ||||
SACLOS | N/A | N/A | ||||
M_AT | 30 | IR | 500-4000 | 500-4000 | 35 | DAR DAR DAR |
Laser | 0?-4000 | 0?-4000 | ||||
M_NLAW_AT_F | 5 | Visual | 500-800 | 500-800 | 35 | PCML Missile |
M_Scalpel_AT | 30 | IR | 500-6000 | 500-6000 | 55 | Scalpel E2 Scalpel E2 Scalpel E2 Scalpel Scalpel Scalpel 3x Scalpel 4x |
Laser | 0?-6000 | 0?-6000 | ||||
SACLOS | N/A | N/A | ||||
M_Scalpel_AT_hidden | 30 | IR | 500-6000 | 500-6000 | 55 | Scalpel E2 |
Laser | 0?-6000 | 0?-6000 | ||||
SACLOS | N/A | N/A | ||||
Bo_Air_LGB | 30 | IR | 500-6000 | 500-6000 | 55 | N/A |
Laser | 0?-6000 | 0?-6000 | ||||
SACLOS | N/A | N/A | ||||
Bo_Air_LGB_hidden | 30 | IR | 500-6000 | 500-6000 | 55 | N/A |
Laser | 0?-6000 | 0?-6000 | ||||
SACLOS | N/A | N/A | ||||
Bo_GBU12_LGB | 120 | NV | 500-5000 | 500-5000 | 30 | GBU-12 |
Laser | 0?-5000 | 0?-5000 | ||||
Bo_GBU12_LGB_MI10 | 120 | NV | 500-5000 | 500-5000 | 30 | GBU-12 |
Laser | 0?-5000 | 0?-5000 | ||||
Bomb_03_F | 120 | NV | 500-5000 | 500-5000 | 30 | LOM-250G KAB 250 LGB x1 KAB 250 LGB x1 |
Laser | 0?-5000 | 0?-5000 | ||||
Bomb_04_F | 120 | NV | 500-5000 | 500-5000 | 30 | GBU-12 GBU 12 LGB x1 GBU 12 LGB x1 GBU 12 LGB x2 |
Laser | 0?-5000 | 0?-5000 | ||||
M_Titan_AA | 4 | IR | 500-3500 | 500-2500 | 250 | Titan AA Missile |
M_Titan_AA_static | 4 | IR | 500-3500 | 500-2500 | 250 | Zephyr |
M_Titan_AA_long | 30 | IR | 500-4500 | 500-3500 | 500 | Titan Missile Titan Missile |
M_Zephyr | 40 | Radar | 0?-10000 | 0?-5000 | 835 | Zephyr Zephyr Zephyr |
M_Zephyr_Mi06 | 40 | Radar | 0?-10000 | 0?-5000 | 835 | N/A |
M_Zephyr_air | 40 | Radar | 0?-10000 | 0?-5000 | 835 | N/A |
M_Air_AA | 90 | IR | 500-6000 | 500-5000 | 600 | ASRAAM ASRAAM ASRAAM ASRAAM |
M_Air_AA_MI02 | 90 | IR | 500-6000 | 500-5000 | 600 | ASRAAM ASRAAM |
M_Air_AA_MI06 | 90 | IR | 500-6000 | 500-5000 | 600 | ASRAAM |
M_Titan_AT | 4.5 | IR | 500-2000 | 500-2000 | 35 | Titan AT Missile |
SACLOS | N/A | N/A | ||||
M_Titan_AP | 4.5 | SACLOS | N/A | N/A | 35 | Titan AP Missile |
M_Titan_AT_static | 4.5 | IR | 500-2000 | 500-2000 | 35 | Titan Missile |
SACLOS | N/A | N/A | ||||
M_Titan_AT_long | 12 | IR | 500-5000 | 500-5000 | 35 | Titan Missile Titan Missile Titan Missile |
SACLOS | N/A | N/A | ||||
M_Air_AT | 4.5 | IR | 500-2000 | 500-2000 | 35 | AG Missiles AG Missiles |
SACLOS | N/A | N/A | ||||
Missile_AA_04_F | 30 | IR | 500-5000 | 500-4000 | 445 | Falchion-22 Falchion-22 |
Missile_AGM_02_F | 50 | IR | 500-8000 | 500-8000 | 55 | Macer Macer 3x Macer II AGM x1 Macer II AGM x1 Macer II AGM x2 Macer II AGM x1 Macer II AGM x2 |
M_Mo_82mm_AT | 40 | IR | 500-800 | 500-800 | 0 | N/A |
M_Mo_82mm_AT_LG | 40 | Laser | 0?-800 | 0?-800 | 0 | N/A |
M_Mo_120mm_AT | 40 | IR | 500-800 | 500-800 | 0 | N/A |
M_Mo_120mm_AT_LG | 40 | Laser | 0?-800 | 0?-800 | 0 | N/A |
M_Mo_155mm_AT | 40 | IR | 500-800 | 500-800 | 0 | N/A |
M_Mo_155mm_AT_LG | 40 | Laser | 0?-800 | 0?-800 | 0 | N/A |
M_Mo_230mm_AT_LG | 40 | Laser | 0?-800 | 0?-800 | 0 | N/A |
M_Mo_230mm_AT | 40 | IR | 500-800 | 500-800 | 0 | N/A |
Missile_AA_03_F | 45 | IR | 500-6000 | 500-4000 | 700 | Sahr-3 Sahr-3 |
Missile_AGM_01_F | 20 | IR | 500-8000 | 500-8000 | 40 | Sharur KH25 AGM x1 KH25 AGM x1 KH25 AGM x1 |
M_Jian_AT | 30 | IR | 500-6000 | 500-6000 | 35 | Jian |
Laser | 0?-6000 | 0?-6000 | ||||
SACLOS | N/A | N/A | ||||
ammo_Missile_MediumRangeAABase | 70 | Active Radar | 0?-12000 | 0?-8000 | 777.778 | N/A |
Data Link | 0?-12000 | 0?-8000 | ||||
ammo_Missile_ShortRangeAABase | 180 | IR | 500-5000 | 500-4000 | 600 | N/A |
ammo_Missile_rim116 | 180 | IR | 500-5000 | 500-4000 | 600 | Spartan AA |
ammo_Missile_rim162 | 170 | Active Radar | 0?-12000 | 0?-8000 | 888.889 | Centurion AA |
Data Link | 0?-12000 | 0?-8000 | ||||
ammo_Missile_AMRAAM_C | 70 | Active Radar | 0?-12000 | 0?-8000 | 777.778 | AMRAAM C AA x1 AMRAAM C AA x1 AMRAAM C AA x1 AMRAAM C AA x2 |
Data Link | 0?-12000 | 0?-8000 | ||||
ammo_Missile_AMRAAM_D | 140 | Active Radar | 0?-13000 | 0?-9000 | 777.778 | AMRAAM D AA x1 AMRAAM D AA x1 AMRAAM D AA x1 AMRAAM D AA x1 AMRAAM D AA x2 |
Data Link | 0?-13000 | 0?-9000 | ||||
ammo_Missile_BIM9X | 180 | IR | 500-5000 | 500-4000 | 600 | BIM 9X AA x1 BIM 9X AA x1 BIM 9X AA x1 BIM 9X AA x2 |
ammo_Missile_AA_R77 | 90 | Active Radar | 0?-12000 | 0?-8000 | 777.778 | R77 MR AA x1 R77 MR AA x1 R77 MR AA x1 |
Data Link | 0?-12000 | 0?-8000 | ||||
ammo_Missile_AA_R73 | 150 | IR | 500-6000 | 500-4000 | 600 | R73 SR AA x1 R73 SR AA x1 |
BombCluster_01_Ammo_F | 120 | NV | 500-5000 | 500-5000 | 30 | CBU-85 CBU-85 Cluster x1 CBU-85 Cluster x2 |
Laser | 0?-5000 | 0?-5000 | ||||
BombCluster_02_Ammo_F | 120 | NV | 500-5000 | 500-5000 | 30 | RBK-500F RBK-500F Cluster x1 |
Laser | 0?-5000 | 0?-5000 | ||||
BombCluster_02_Cap_Ammo_F | 120 | NV | 500-5000 | 500-5000 | 30 | RBK-500F Cluster x1 |
Laser | 0?-5000 | 0?-5000 | ||||
BombCluster_03_Ammo_F | 120 | NV | 500-5000 | 500-5000 | 30 | BL778 BL778 Cluster x1 BL778 Cluster x2 |
Laser | 0?-5000 | 0?-5000 | ||||
M_125mm_cannon_ATGM | 50 | AI Manual | 500-8000 | 500-8000 | 0 | 125mm ATGM |
SACLOS | N/A | N/A | ||||
M_120mm_cannon_ATGM | 50 | AI Manual | 500-8000 | 500-8000 | 0 | 120mm ATGM |
SACLOS | N/A | N/A | ||||
M_120mm_cannon_ATGM_LG | 180 | Laser | 0?-8000 | 0?-8000 | 35 | 120mm ATGM LG |
M_Vorona_HEAT | 50 | SACLOS | N/A | N/A | 0 | 9M135 HEAT Missile |
M_Vorona_HE | 50 | SACLOS | N/A | N/A | 0 | 9M135 HE Missile |
M_127mm_Firefist_AT | 4 | IR | 500-4500 | 500-4500 | 41.6667 | FireFIST ATGM Missile |
ammo_Missile_Cruise_01 | 360 | Data Link | 0?-32000 | 0?-32000 | 1 | Cruise Missile HE |
ammo_Missile_Cruise_01_Cluster | 360 | Data Link | 0?-32000 | 0?-32000 | 1 | Cruise Missile Cluster |
ammo_Missile_LongRangeAABase | 70 | Active Radar | 0?-16000 | 0?-8000 | 777.778 | N/A |
Data Link | 0?-16000 | 0?-8000 | ||||
ammo_Missile_AntiRadiationBase | 120 | Anti Radiation | 0?-16000 | 0?-16000 | 55 | N/A |
ammo_Bomb_SmallDiameterBase | 120 | NV | 0?-8000 | 0?-8000 | 30 | N/A |
Laser | 0?-8000 | 0?-8000 | ||||
IR | 500-8000 | 500-8000 | ||||
ammo_Missile_mim145 | 120 | Active Radar | 0?-16000 | 0?-8000 | 777.778 | Defender AA |
ammo_Missile_s750 | 120 | Active Radar | 0?-16000 | 0?-8000 | 777.778 | Rhea AA |
ammo_Missile_HARM | 120 | Anti Radiation | 0?-16000 | 0?-16000 | 55 | AGM-88C HARM x1 AGM-88C HARM x1 AGM-88C HARM x1 AGM-88C HARM x1 |
ammo_Bomb_SDB | 120 | NV | 0?-8000 | 0?-8000 | 30 | GBU SDB x1 GBU SDB x4 |
Laser | 0?-8000 | 0?-8000 | ||||
IR | 500-8000 | 500-8000 | ||||
ammo_Missile_KH58 | 120 | Anti Radiation | 0?-16000 | 0?-16000 | 55 | KH58 ARM x1 KH58 ARM x1 KH58 ARM x1 |
_data = ("isClass (_x >> 'Components' >> 'SensorsManagerComponent' >> 'Components') or (getNumber (_x >> 'manualControl') == 1)" configClasses (configFile >> "CfgAmmo") apply {
_cfg = _x ;
_mags = "getText (_x >> 'ammo') == configName _cfg" configClasses (configFile >> "CfgMagazines") ;
_launchers = ("(getNumber (_x >> 'scope') >= 1) and
{
(configName _x) isKindOf ['LauncherCore',(configFile >> 'CfgWeapons')]
}" configClasses (configFile >> "CfgWeapons")) ;
[
configName _cfg,
"true" configClasses (_cfg >> "components" >> "SensorsManagerComponent" >> "Components"),
_mags//_launchers select {(toLower (_mags#0)) in (([configName _x,true] call BIS_fnc_compatibleMagazines) apply {toLower _x})}
]
}) ;
#define PB _return pushBack
_return = [
'{| class="wikitable sortable"',
'|+Missile Components list',
'|-',
'!classname',
'!Cone (degrees)',
'!Components',
'!Air Target Range (m)',
'!Ground Target Range (m)',
'!Max lock speed (km/h)',
'!Used in'
] ;
_lastSpan = 0 ;
_addComponent = {
if !(_this isEqualTo "SACLOS") then {
PB "|" + (configName _this call _componentToString) ;
{
_minRange = getNumber (_this >> _x >> "minRange") ;
_maxRange = getNumber (_this >> _x >> "maxRange") ;
if (_minRange == _maxRange) then {
PB "|" + "0?-" + (str _maxRange) ;
} else {
PB "|" + (str _minRange) + "-" + (str _maxRange) ;
} ;
} forEach ["AirTarget","GroundTarget"] ;
} else {
PB "|" + "SACLOS" ;
PB "|" + "N/A" ;
PB "|" + "N/A" ;
} ;
} ;
_componentToString = {
if (_this == "IRSensorComponent") exitWith {"IR"} ;
if (_this == "NVSensorComponent") exitWith {"NV"} ;
if (_this == "LaserSensorComponent") exitWith {"Laser"} ;
if (_this == "VisualSensorComponent") exitWith {"Visual"} ;
if (_this == "RadarSensorComponent") exitWith {"Radar"} ;
if (_this == "DataLinkSensorComponent") exitWith {"Data Link"} ;
if (_this == "ActiveRadarSensorComponent") exitWith {"Active Radar"} ;
if (_this == "AntiRadiationSensorComponent") exitWith {"Anti Radiation"} ;
if (_this == "AIManualSensorComponent") exitWith {"AI Manual"} ;
_this
} ;
{
_x params ["_name","_sensors","_wpn"] ;
_cfg = (configFile >> "CfgAmmo" >> _name) ;
if (getNumber (_cfg >> "manualControl") == 1) then {
_sensors pushBack "SACLOS" ;
} ;
PB "|-" ;
_rowspan = (if (count _sensors >= 2) then {format ['rowspan="%1"|',count _sensors]} else {""}) ;
PB "|" + _rowspan + _name ;
PB "|" + _rowspan + str getNumber (_cfg >> "missileLockCone") ;
_sensors#0 call _addComponent ;
PB "|" + _rowspan + str getNumber (_cfg >> "missileLockMaxSpeed") ;
if (count _wpn != 0) then {
PB "|" + _rowspan + ((_wpn apply {getText (_x >> "displayName")}) - [""] joinString "<BR>") ;
} else {
PB "|" + _rowspan + "N/A" ;
} ;
{
if (_forEachIndex != 0) then {
PB "|-" ;
_x call _addComponent ;
} ;
} forEach _sensors ;
} forEach _data ;
PB "|}" ;
copyToClipboard (_return joinString endl) ;
Particle effects
Useful particle effects.
See also: ParticleArray
Type | Note |
---|---|
["a3\data_f\particleeffects\universal\universal.p3d",16,10,32,1],"","billboard"
|
Fire |
["a3\data_f\particleeffects\universal\universal.p3d",16,12,8,0],"","billboard"
|
White smoke |
["a3\data_f\particleeffects\universal\universal.p3d",16,13,2,0],"","billboard"
|
Fire spark |
["a3\data_f\particleeffects\universal\universal.p3d",16,14,5,1],"","billboard"
|
Chaff |
["a3\data_f\particleeffects\universal\universal.p3d",16,7,48,1],"","billboard"
|
Smoke 1 |
["a3\data_f\particleeffects\universal\universal_02.p3d",8,0,40,1],"","billboard"
|
Smoke 2 |
["a3\data_f\particleeffects\universal\universal.p3d",16,12,13,0],"","billboard"
|
Dusty smoke |
["a3\data_f\particleeffects\universal\universal.p3d",16,2,80,0],"","billboard"
|
Explosion 1 |
["a3\data_f\particleeffects\universal\universal.p3d",16,0,32,0],"","billboard"
|
Explosion 2 |
["a3\data_f\particleeffects\universal\universal.p3d",16,13,10,0],"","billboard"
|
Water splash |
["a3\data_f\particleeffects\universal\universalonsurface.p3d",16,12,8,0],"","billboard"
|
Water splash (surface) |
["a3\data_f\particleeffects\universal\stonesmall.p3d",1,0,1,1],"","spaceobject"
|
Stone (grey) |
["a3\data_f\particleeffects\pstone\pstone.p3d",1,0,1,1],"","spaceobject"
|
Stone (khaki) |
["a3\data_f\particleeffects\wallpart\wallpart.p3d",1,0,1,1],"","spaceobject"
|
Building shard |
["a3\data_f\particleeffects\universal\universal.p3d",16,12,9,0],"","billboard"
|
Dirt |
["a3\data_f\particleeffects\shard\shard.p3d",1,0,1,0],"","spaceobject"
|
Metal shard 1 |
["a3\data_f\particleeffects\shard\shard2.p3d",1,0,1,0],"","spaceobject"
|
Metal shard 2 |
["a3\data_f\particleeffects\shard\shard3.p3d",1,0,1,0],"","spaceobject"
|
Metal shard 3 |
["a3\data_f\particleeffects\shard\shard4.p3d",1,0,1,0],"","spaceobject"
|
Metal shard 4 |
["a3\data_f\particleeffects\universal\refract.p3d",1,0,1,0],"","billboard"
|
Refract/haze |
["a3\data_f\particleeffects\universal\underwatersmoke.p3d",4,0,16,1],"","billboard"
|
Bubbles |
["a3\data_f\particleeffects\universal\universal.p3d",16,13,1,0],"","billboard"
|
Blood |
["a3\data_f\particleeffects\universal\meat_ca.p3d",1,0,1,0],"","spaceobject"
|
Body meat |
["a3\data_f\particleeffects\universal\universalonsurface.p3d",16,13,3,0],"","billboard"
|
Water splash 2 (surface) |
["a3\data_f\particleeffects\universal\universal.p3d",16,12,16,0],"","billboard"
|
White orb |
["a3\data_f\particleeffects\universal\sparksball.p3d",1,0,1,0],"","spaceobject"
|
Spark |
["a3\data_f\particleeffects\wallpart\wallpart2.p3d",1,0,1,1],"","spaceobject"
|
Concrete debri |
["a3\data_f\particleeffects\universal\universal.p3d",16,15,15,1],"","billboard"
|
Single bubble |
ctrlCreate controls
- RscText
- RscTextSmall
- RscTitle
- RscProgress
- RscProgressNotFreeze
- RscPicture
- RscLadderPicture
- RscPictureKeepAspect
- RscHTML
- RscButton
- RscShortcutButton
- RscButtonSmall
- RscEdit
- RscCombo
- RscListBox
- RscListNBox
- RscXListBox
- RscTree
- RscSlider
- RscSliderH
- RscXSliderH
- RscActiveText
- RscStructuredText
- RscBackgroundStripeTop
- RscBackgroundStripeBottom
- RscToolbox
- RscHitZones
- RscXKeyShadow
- RscXKey
- RscMapControl
- RscObject
- RscLineBreak
- RscCompass
- RscWatch
- RscCheckBox
- RscDisplayUavTerminalWaypointMenu
- RscIGText
- RscIGProgress
- RscListBoxKeys
- RscBackground
- RscLine
- RscActivePicture
- RscButtonTextOnly
- RscShortcutButtonMain
- RscButtonEditor
- RscIGUIShortcutButton
- RscGearShortcutButton
- RscButtonMenu
- RscButtonMenuOK
- RscButtonMenuCancel
- RscButtonMenuSteam
- RscLoadingText
- RscIGUIListBox
- RscIGUIListNBox
- RscFrame
- RscBackgroundGUI
- RscBackgroundGUILeft
- RscBackgroundGUIRight
- RscBackgroundGUIBottom
- RscBackgroundGUITop
- RscBackgroundGUIDark
- RscBackgroundLogo
- RscMapControlEmpty
- IGUIBack
- RscVignette
- CA_Mainback
- CA_Back
- CA_Title_Back
- CA_Black_Back
- CA_Title
- CA_Logo
- CA_Logo_Small
- CA_RscButton
- CA_RscButton_dialog
- CA_Ok
- CA_Ok_image
- CA_Ok_image2
- CA_Ok_text
- ctrlCheckbox
- ctrlCheckboxBaseline
- ctrlActivePicture
- ctrlStatic
- ctrlControlsGroupNoScrollbars
- ctrlStructuredText
- RscTextMulti
- RscTreeSearch
- RscPictureAllowPixelSplit
- RscPictureKeepAspectAllowPixelSplit
- RscVideo
- RscVideoKeepAspect
- RscActivePictureKeepAspect
- RscButtonMenuBIKI
- RscTextCheckBox
- RscEditMulti
- RscEditReadOnly
- RscEditMultiReadOnly
- RscMapSignalBackground
- RscMapSignalPicture
- RscMapSignalText
- RscInterlacingScreen
- RscFeedback
- RscVehicleToggles
- RscTrafficLight
- RscButtonSearch
- RscControlsTable
- RscIGUIText
- RscOpticsText
- RscOpticsValue
- RscIGUIValue
- RscButtonMenuMain
- RscButtonTestCentered
- RscDisplayDebriefing_RscTextMultiline
- RscButtonArsenal
- RscTextNoShadow
- RscButtonNoColor
- RscToolboxButton
- ctrlStaticPicture
- ctrlStaticPictureKeepAspect
- ctrlStaticPictureTile
- ctrlStaticFrame
- ctrlStaticLine
- ctrlStaticMulti
- ctrlStaticBackground
- ctrlStaticOverlay
- ctrlStaticTitle
- ctrlStaticFooter
- ctrlStaticBackgroundDisable
- ctrlStaticBackgroundDisableTiles
- ctrlButton
- ctrlButtonPicture
- ctrlButtonPictureKeepAspect
- ctrlButtonOK
- ctrlButtonCancel
- ctrlButtonClose
- ctrlButtonToolbar
- ctrlButtonSearch
- ctrlButtonExpandAll
- ctrlButtonCollapseAll
- ctrlButtonFilter
- ctrlEdit
- ctrlEditMulti
- ctrlSliderV
- ctrlSliderH
- ctrlCombo
- ctrlComboToolbar
- ctrlListbox
- ctrlToolbox
- ctrlToolboxPicture
- ctrlToolboxPictureKeepAspect
- ctrlCheckboxes
- ctrlCheckboxesCheckbox
- ctrlProgress
- ctrlHTML
- ctrlActiveText
- ctrlActivePictureKeepAspect
- ctrlTree
- ctrlControlsGroup
- ctrlControlsGroupNoHScrollbars
- ctrlControlsGroupNoVScrollbars
- ctrlShortcutButton
- ctrlShortcutButtonOK
- ctrlShortcutButtonCancel
- ctrlShortcutButtonSteam
- ctrlXListbox
- ctrlXSliderV
- ctrlXSliderH
- ctrlMenu
- ctrlMenuStrip
- ctrlMap
- ctrlMapEmpty
- ctrlMapMain
- ctrlListNBox
- ctrlCheckboxToolbar
Not even tested - I'd like to add it to ctrlCreate article after confirm
"(isNumber (_x >> 'type') isEqualTo true) and !isClass (_x >> 'controls')" configClasses (configFile) apply {"* " + configName _x} joinString endl
ParticleArray
Todo and note:
-Add the section for the array from setParticleRandom, setParticleCircle, setParticleFire?
-Planning remove and merge to format section, suggestions?
-Make A3-compatible copy-and-paste examples
Particle is a lightweight for performance effect system that is to be used for emulate dusts, fires, explosions, and/or anything. Every explosions, dusts, fires and most of in-game 3D effects are made in this system.
Particles can be generated by script commands like drop, so you can also do emulate them easily.
Format
[
shapeName,
animationName,
type,
timerPeriod,
lifeTime,
position,
moveVelocity,
rotationVelocity,
weight,
volume,
rubbing,
size,
color,
animationPhase,
randomDirectionPeriod,
randomDirectionIntensity,
onTimer,
beforeDestroy,
object,
angle, // Template:since
onSurface, // Template:since
bounceOnSurface, // Template:since
emissiveColor, // Template:since
vectorDir // Template:since
]
# | parameter name | Type | Description |
---|---|---|---|
0 | shapeName | Render |
String or Array format [p3dPath, nth, index, count, loop]:
For example, to use the fire texture that shown in the picture, put this:
|
1 | animationName | N/A | String - Obsolete parameter that was meant to play .rtm animations, will throw "Skeletal animation not supported for particles" rpt error if not empty |
2 | type | Render | String - "Billboard" that the particle will always face to the camera, or "SpaceObject" that that particle is similar with regular objects. |
3 | timerPeriod | Script | Number - The script that defined in onTimer parameter will be executed in this time after a particle is generated, in seconds. |
4 | lifetime | Physical | Number - The life time of each particles in seconds. |
5 | position | Physical | Array format Position, the center is the position of the source. |
6 | moveVelocity | Physical | Array format velocity. |
7 | rotationVelocity | Physical | Number - particle rotations per second. |
8 | weight | Physical | Number - weight of the particle (kg). |
9 | volume | Physical | Number - volume of the particle in m3. |
10 | rubbing | Physical | Number - Determines how particles blown by winds (include downwash by helicopters). |
11 | size | Render | Array of Numbers - particle size along its lifetime, in meter.
Example: this will generate particles that 1m sized, then will increase its size to 2m and 4m when its end of life, smoothly.
|
12 | color | Render | Array of Arrays format Color
Example: this will generate half-transparent grey particle, then will change its color to transparent white.
|
13 | animationPhase | Render | Array of Numbers - phase of the animation in time. In other words, the play speed of the selected frames for the Number of Frames to Play above. The higher the number, the faster it plays through the animation frames. Note that if the Number of Frames to Play above is set to 1, this will have no visible effect.
Example:
|
14 | randomDirectionPeriod | Random | Number - In seconds. |
15 | randomDirectionIntensity | Random | Number - How particles change its velocity every once in randomDirectionPeriod seconds, in meters? |
16 | onTimer | Script | String - code executed on timer. private _particlePosition = this;
|
17 | beforeDestroy | Script | String - code executed right before particle's destruction. private _particlePosition = this;
|
18 | object | Physical | Object - If this parameter isn't objNull, the particle source will be attached to the object. The source will stop to generate its particles when the distahce between the object and the source is further than Object View Distance. |
19 | angle | Physical | Number - (Optional, default 0) determines the particle's starting angle in radian. pi = 180°. Template:since |
20 | onSurface | Physical | Boolean - (Optional, default false) Bounce the particles when hit the surface if true. If circleRadius > 0, placing of particle on (water) surface on start of its existence. Circle radius is defined by command setParticleCircle. Template:since |
21 | bounceOnSurface | Physical | Number - (Optional, default -1) coef of bounce in collision with ground, 0..1 for collisions, -1 to disable collision. Should be used soberly as it has a significant impact on performance. Template:since |
22 | emissiveColor | Render | Array of Arrays format Color - (Optional, default [ ] ?) Sets emissivity of the particle (RGB0). Works as lighting of particles, so must be combined with correctly set particle color. Last parameter has no meaning for now. Template:since
|
23 | vectorDir | Physical | Array format vectorDir? - (Optional) Sets the default direction for SpaceObject particles. Template:since |
Parameters
Global parameters
ShapeName - Name of the shape associated with the particle.
- In ArmA, the ShapeName is defined as an array. This should be the particle shape name, followed by three integers.
- Example: ["\Ca\Data\ParticleEffects\FireAndSmokeAnim\SmokeAnim.p3d", 8, 5, 0]
- 1. Anim Divisor (1 for a 1x1, 8 for a 8x8, etc)
- 2. Anim Starting Row
- 3. Number of Frames to Play (speed controlled by animation phase below)
- In this shot of "\Ca\Data\ParticleEffects\FireAndSmokeAnim\SmokeAnim.p3d", note the following:
- The image used for this particle effect is 8X8 effect frames. This means you need to use 8 as your Anim Divisor. Overwise, the game will either draw too much of the image used, or too little. This is highly visible in most situations.
- The Anim Starting Row picks the coresponding superimposed number in the image above. 0 picks the first smoke effect, 1 picks the second smoke effect, 2 picks the first fire effect, etc.
- The setting for the Number of Number of Frames to Play should, in most cases, be the number of effects available to the animation. If you go over this (for example, selecting 9 in this 8X8 tile), it will start playing the animation frames of the next effect down. If there is nothing below to grab, it will draw a blank for that frame. If 1 is used, it will only play the first frame of the selected row.
- If you want to find out of how many rows a datasource consists use ["...", 1, 0, 1] to see the full picture as a particle.
In ArmA 2 (and OA), the method for determining how many frames to play has changed.
Example 1:
- ["\Ca\Data\ParticleEffects\Universal\Universal", 16, 10, 32, 1]
- 1. Anim Divisor (for the new Universal particle model it is 16 since the texture file is 16x16)
- 2. Anim Starting Row (starting a 0)
- 3. Number of Frames to play (Starting with 1 and not 0)
- 4. Animation Loop (0 = no loop, 1 = loop (default if left blank is 1))
- Example 1 above (a fire burning) will start the animation in row 10, will play from frames 1 to 32, and will loop.
Also in ArmA 2 and OA, To achieve a single frame of animation that is not the first column of a row, use the third numerical value as a column selection instead of indicating how many frames to play.
Example 2:
- ["\Ca\Data\ParticleEffects\Universal\Universal", 16, 12, 9, 0]
- 1. Anim Divisor (for the new Universal particle model it is 16 since the texture file is 16x16)
- 2. Anim Starting Row (starting at 0)
- 3. Column Selection (Starting with 1 and not 0)
- 4. Animation Loop (0 = no loop, 1 = loop (default if left blank is 1))
- Additional Step: You must also set the AnimationPhase value (described in render parameters) to a large number (such as 1000) if you only want to play a single frame. The reason for this is that the game engine does not only play a single frame, it actually begins at the first frame in the row and cycles to the desired frame. If a small AnimationPhase number is used then you can actualy see the animation cycle through the all the frames (1-9). A large number makes this imperceptible and only the desired frame appears to be displayed.
- Example 2 above (exploding rock dust) will start the animation in row 12, will only play frame 9, and will not loop.
AnimationName - Has to be a String, but it is obsolete. Used to play .rtm anims, if not empty, it will throw "Skeletal animation not supported for particles" rpt error
Type - Type of particle (either "Billboard" or "SpaceObject").
TimerPeriod - The period of calling the "OnTimer" event (in sec).
LifeTime - Life time of the particle (in sec).
Physical parameters
Position -' Either 3D coordinate (x, y, z) or name of the selection - in this case the Object property must be set.
MoveVelocity - 3D vector (x, y, z) which describes the velocity vector of the particle direction and speed in m/s.
RotationVelocity - Float number which determines number of rotations in one second.
Weight - Weight of the particle (kg).
Volume - Volume of the particle (m^3).
Rubbing - Float number without dimension which determines the impact of the density of the environment on this particle. 0 - no impact (vacuum).
Angle - Float number which determines starting angle of the particle.
OnSurface - Boolean. Placing of particle on (water) surface on start of it's existence, default value is true, works only if circleRadius > 0. Circle radius is defined by command setParticleCircle. Works since Arma 3 v. 0.74.
BounceOnSurface - Coef of speed's loosing in collision with ground, 0-1 for collisions, -1 disable collision. Default value -1. Should be used soberly, it has significant impact on performance. Works since Arma 3 v. 0.74.
Render parameters
Note: All these values are set as arrays to show their development in time.
If you set the array [1, 2] as a size, then at the beginning the size of the particle will be 1 and at the end of the life time of the particle its size will be 2.
The rest of the values during the life time will be linearly interpolated.
Size - Size of the particle in time to render (m).
Color - Colour of the particle in time to render (RGBA).
EmissiveColor - Sets emissivity of the particle (RGB0). Works as lighting of particles, so must be combined with correctly set particle color. Last parameter has no meaning for now.
AnimationPhase - Phase of the animation in time. In other words, the play speed of the selected frames for the Number of Frames to Play above. The higher the number, the faster it plays through the animation frames. Note that if the Number of Frames to Play above is set to 1, this will have no visible effect.
Random parameters
RandomDirectionPeriod - Period of change of the velocity vector (s).
RandomDirectionIntensity - Each MoveVelocity component will be changed with random value from interval <0, RandomDirectionIntensity>.
OnTimer - Name of the script to run every period determined by TimerPeriod property.
Position of the particle is stored in "this" variable.
BeforeDestroy - Name of the script to run right before destroying the particle.
Position of the particle is stored in "this" variable.
Object - Object to bind this particle to.
Example
For several examples of the kind of effects that can be accomplished via particles, see ParticleTemplates.
Thunderbolt
Create thunderbolt on logic named logic1:
private _pos = [position logic1 select 0,position logic1 select 1, 10]; drop ["blesk1", "", "Billboard", 0.01, 0.2, _pos, [0,0,0], 0, 1, 1, 0, [20 + random 20], [[1,1,1,1], [1,1,1,0.7]], [1,0], 0, 0, "", "", ""];
Mass grave Flies
// SCRIPT FOR GENERATING FLIES AROUND MASS GRAVE // FIXED PARAMS private _source = "#particlesource" createVehicleLocal getPos (_this select 0); _source setParticleParams [ /* Sprite */ ["\ca\characters2\OTHER\FLY.p3d",1,0,1,0], // File,Ntieth,Index,Count,Loop /* Animation */ "", /* Type */ "spaceObject", /* TimerPer */ 1, /* Lifetime */ 4, /* Position */ [0,0,0], /* MoveVelocity */ [0,0,0.5], /* Simulation */ 1,1.30,1,0, // rotationVel, weight, volume, rubbing /* Scale */ [0.03,0.03,0.03,0], /* Color */ [[1,1,1,1],[1,1,1,1]], /* AnimSpeed */ [1.5,0.5], /* randDirPeriod */ 0.01, /* randDirIntensity */ 0.08, /* onTimerScript */ "", /* DestroyScript */ "", /* object */ _this, /* Angle */ 0, /* onSurface */ true, /* bounceOnSurface */ 0.5, /* emissiveColor */ [[0,0,0,0]]]; // RANDOM / TOLERANCE PARAMS _source setParticleRandom [ /* LifeTime */ 2, /* Position */ [2,2,0.25], /* MoveVelocity */ [0,0,0], /* rotationVel */ 1, /* Scale */ 0.02, /* Color */ [0,0,0,0.1], /* randDirPeriod */ 0.01, /* randDirIntensity */ 0.03, /* Angle */ 10]; _source setDropInterval 0.003; private _soundSource = createSoundSource ["Sound_Flies", getPos (_this select 0), [], 0];