Module: Sector – Arma 3

From Bohemia Interactive Community
m (Text replacement - "\[ *((ftp|http)s?:\/\/[^ ]+)([^{])=([^}])([^ ]+)" to "[$1$3{{=}}$4$5")
m (Some wiki formatting)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:A3_moduleSector.jpg|400px|thumb|]]
[[File:A3_moduleSector.jpg|400px|thumb]]
== Introduction ==
{{Name|bi}}'s sector module allows you to easily create sector control missions.
Bohemia Interactive's sector module allows you to easily create sector control missions. The side with the strongest force within the area (calculated by number and type of the units) will be capturing it.
The side with the strongest force within the area (calculated by number and type of the units) will be capturing it.


[[deleteVehicle|Delete]] or [[enableSimulation|disable]] the sector module to 'finalize' the sector. Once done, capturing will be disabled and the last owner will retain the control forever.
[[deleteVehicle|Delete]] or [[enableSimulation|disable]] the sector module to "finalise" the sector.
Once done, capturing will be disabled and the last owner will retain the control forever.




== Properties ==
== Properties ==


You can modify your sector and it is behaviour by changing the following attributes. Those names do not represent the module's internal variables. If you want to modify a sector after it has been created you have to take a look at [[BIS_fnc_moduleSector]].
The sector and its behavior can be modified by changing the properties either in the module editor or by using [[setVariable]] on the sector.
Use [[BIS_fnc_moduleSector]] to edit the sector after it has been created.
{| class="wikitable sortable"
! Property (Module Attributes)
! Variable Name
! Variable Type
! Description
! Default Value
|-
| Name
| "Name"
| [[String]]
| Sector name visibile on a map, in a task and in a notification.
| Next NATO Phonetic Alphabet Letter (see [[BIS_fnc_phoneticalWord]])
|-
| Designation
| "Designation"
| [[String]]
| Single letter visible in the sector icon (when empty, first letter of the name will be used).
| First letter of "Name"
|-
| Ownership Limit
| "OwnerLimit"
| [[Number]]
| How much a side needs to be dominant in order to capture a sector. Value is in range <0,1>, where 1 is full dominance.
| {{hl|"0"}}
|-
| Expression
| "OnOwnerChange"
| [[Code]]
| Code executed when the ownership changes. Passed arguments are: <sqf>params ["_sector", "_owner", "_ownerOld"];</sqf>
| {{hl|"true"}}
|-
|
| "CaptureCoef"
| [[Number]]
| Speed at which any unit captures the zone.
| {{hl|"0.05"}}
|-
| Infantry cost
| "CostInfantry"
| [[Number]]
| Ratio of how fast infantry units will capture the sector.
| {{hl|"1"}}
|-
| Wheeled vehicle cost
| "CostWheeled"
| [[Number]]
| Ratio of how fast wheeled vehicles will capture the sector.
| {{hl|"1"}}
|-
| Tracked vehicle cost
| "CostTracked"
| [[Number]]
| Ratio of how fast tracked vehicles will capture the sector.
| {{hl|"1"}}
|-
| Naval cost
| "CostWater"
| [[Number]]
| Ratio of how fast naval vehicles will capture the sector.
| {{hl|"1"}}
|-
| Aircraft cost
| "CostAir"
| [[Number]]
| Ratio of how fast aircraft will capture the sector.
| {{hl|"1"}}
|-
| Players cost
| "CostPlayers"
| [[Code]]
| Ratio of how fast players will capture the sector, combined with other costs.
| {{hl|"1"}}
|-
| Default Owner
| "DefaultOwner"
| [[Number]]
| Default sector owner, even if he has no units in the sector (see [[BIS_fnc_sideID]]).
| {{hl|"-1"}}
|-
| Task Owners
| "TaskOwner"
| [[Number]]
| Sides which will receive the tasks. Values from 0 to 3 are accepted.
* 0: No one
* 1: Everyone
* 2: Only default sector owner
* 3: Everyone except the default sector owner
| {{hl|0}}
|-
| Task title
| "TaskTitle"
| [[String]]
| Title of the automatically added task. Use %1 to add the sector name. When empty, no task will be added.
| {{hl|"%1"}}
|-
| Task description
| "TaskDescription"
| [[String]]
| Description of automatically added task. Use %1 to insert the sector name, %2 to enter sector rewards (e.g. unlocked vehicles or respawn points), %3 to insert description of capturing costs.
| {{hl|"%1%2%3"}}
|-
| Seize Reward
| "ScoreReward"
| [[Number]]
| Score awarded to the side which captured the sector.
| {{hl|0}}
|}


* '''name''' - The name of the sector that will be shown on the map or in the task description. (Default: ''Alpha'')
* '''designation''' - A single letter that represents the sector. (Default: ''First letter of the sector's name'')
* '''repuation''' - The amount of points the team gets if it holds the sector. (Default: ''0'')
* '''statement''' - Code that will be executed when the ownerside of the sector changes. The following arguments will be passed: [''module'', ''ownerSide'', ''previousOwnerSide'']. (Default: ''Nothing'')
* '''ownerLimit''' - The relation of players which are needed to capture the sector. This value has to be between 0 and 1. For example 0.5 means one team needs at least twice the amount of players than the other team to control the sector. (Default: ''1'')
* '''owner''' - The fraction that owns the sector first. (Default: ''Nobody'')
* '''taskOwner''' - The fraction that can see the created task for the sector. (Default: ''Nobody'')
* '''taskTitle''' - The title of the task that will be created. If this value is empty, no task will be created. ''%1'' contains the name. For example "''Catpure the sector with the name %1''". (Default: ''Empty'')
* '''taskDescription''' - The description of the task. ''%1'' contains the name of the sector (like for ''taskTitle'', see above). (Default: ''Empty'')
* '''costInfantery''' - The amount of one infantry unit within the sector while capturing it. (Default: ''1'')
* '''costVehicle''' - The amount of one wheeled vehicle unit within the sector while capturing it. (Default: ''2'')
* '''costTracked''' - The amount of one heavy vehicle unit within the sector while capturing it. (Default: ''4'')
* '''costWater''' - The amount of one water vehicle unit within the sector while capturing it. (Default: ''0'')
* '''costAir''' - The amount of one air vehicle unit within the sector while capturing it. (Default: ''2'')
* '''costPlayer''' - The amount of one unit controlled by a player within the sector while capturing it. (Default: ''2'')


== How To ==
# Open the editor and create the module '''ModuleSector_F'''.
# Add a name to the sector and set the properties as you want them to be.
# Create a '''location''' game logic next to the module.
# Create a new '''trigger''' and set the activation mode to ''everyone''. The trigger's size and position represents the area of the sector.
# Synchronise the trigger with the ''location object''.
# Synchronise the ''location object'' with the sector module.
# Create the ''bluefor'' and ''opfor'' game logics and synchronise them with the sector module as well.
Now you have created a sector that can be captured by Blufor and Opfor at the trigger position. Test your mission!
== Scripted Sector Module Creation ==
[[SQF Syntax|SQF]] can be used to create a sector by creating a logic group, by creating a unit of class "ModuleSector_F" then using [[BIS_fnc_moduleSector]] to initialise it:
<sqf>
// [[createGroup]] and [[createUnit]] are needed to create modules
// creating them with [[createVehicle]] will not work
private _group = createGroup sideLogic;
private _sector = _group createUnit ["ModuleSector_F", _position, [], 0, "CAN_COLLIDE"]; // _position is [x, y, z]
// it is possible to change the sector's parameters using [[setVariable]]
_sector setVariable ["Name", "My Sector", true];
_sector setVariable ["Designation", "S", true];
_sector setVariable ["sides", [west, east], true];
_sector setVariable ["DefaultOwner", 0, true];


== How To ==
[_sector] call BIS_fnc_moduleSector; // initialises the sector
 
// after initialisation, sync an area trigger to the module, it will be the capture area
private _area = createTrigger ["EmptyDetector", _position];
_area setTriggerArea [10, 10, 0, false]; // change values depending on the size you want
_area setTriggerActivation ["ANY", "PRESENT", false];
_sector setVariable ["areas", [_area], true];
</sqf>


Open the editor (2D or Eden)  and create the module '''ModuleSector_F'''. Add a name to the sector and set the properties as you want them to be. Create a '''location''' game logic next to the module. Create a new '''trigger''' and set the activation mode to ''everyone''. The trigger's size and position represents the area of the sector. Synchronize the trigger with the ''location object''. Synchronize the ''location object'' with the sector module. Create the game logic ''bluefor'' and ''opfor'' and synchronize them with the sector module as well. Now you have created a sector that can be captured by Blufor and Opfor at the trigger position. Test your mission!


== Useful Resources ==


== Useful Ressources ==
* {{Link|https://www.youtube.com/watch?v{{=}}p0AGI49H9Qg|Video Tutorial by pickinthatbanjo}}
* {{Link|http://steamcommunity.com/sharedfiles/filedetails/?id{{=}}179946163|Steam guide by MuD}}


* [https://www.youtube.com/watch?v{{=}}p0AGI49H9Qg Video Tutorial by pickinthatbanjo]
* {{Link|link= http://steamcommunity.com/sharedfiles/filedetails/?id=179946163|text= Steam guide by MuD}}


== See Also ==
== See Also ==
* [[BIS_fnc_moduleSector]]
* [[BIS_fnc_moduleSector]]
* [[BIS_fnc_bleedTickets]] for creating a sector mission based on a ticket system
* [[BIS_fnc_bleedTickets]] for creating a sector mission based on a ticket system


{{GameCategory|arma3|Editor Modules}}
{{GameCategory|arma3|Editor Modules}}

Latest revision as of 20:38, 11 September 2025

A3 moduleSector.jpg

Bohemia Interactive's sector module allows you to easily create sector control missions. The side with the strongest force within the area (calculated by number and type of the units) will be capturing it.

Delete or disable the sector module to "finalise" the sector. Once done, capturing will be disabled and the last owner will retain the control forever.


Properties

The sector and its behavior can be modified by changing the properties either in the module editor or by using setVariable on the sector. Use BIS_fnc_moduleSector to edit the sector after it has been created.

Property (Module Attributes) Variable Name Variable Type Description Default Value
Name "Name" String Sector name visibile on a map, in a task and in a notification. Next NATO Phonetic Alphabet Letter (see BIS_fnc_phoneticalWord)
Designation "Designation" String Single letter visible in the sector icon (when empty, first letter of the name will be used). First letter of "Name"
Ownership Limit "OwnerLimit" Number How much a side needs to be dominant in order to capture a sector. Value is in range <0,1>, where 1 is full dominance. "0"
Expression "OnOwnerChange" Code Code executed when the ownership changes. Passed arguments are:
params ["_sector", "_owner", "_ownerOld"];
"true"
"CaptureCoef" Number Speed at which any unit captures the zone. "0.05"
Infantry cost "CostInfantry" Number Ratio of how fast infantry units will capture the sector. "1"
Wheeled vehicle cost "CostWheeled" Number Ratio of how fast wheeled vehicles will capture the sector. "1"
Tracked vehicle cost "CostTracked" Number Ratio of how fast tracked vehicles will capture the sector. "1"
Naval cost "CostWater" Number Ratio of how fast naval vehicles will capture the sector. "1"
Aircraft cost "CostAir" Number Ratio of how fast aircraft will capture the sector. "1"
Players cost "CostPlayers" Code Ratio of how fast players will capture the sector, combined with other costs. "1"
Default Owner "DefaultOwner" Number Default sector owner, even if he has no units in the sector (see BIS_fnc_sideID). "-1"
Task Owners "TaskOwner" Number Sides which will receive the tasks. Values from 0 to 3 are accepted.
  • 0: No one
  • 1: Everyone
  • 2: Only default sector owner
  • 3: Everyone except the default sector owner
0
Task title "TaskTitle" String Title of the automatically added task. Use %1 to add the sector name. When empty, no task will be added. "%1"
Task description "TaskDescription" String Description of automatically added task. Use %1 to insert the sector name, %2 to enter sector rewards (e.g. unlocked vehicles or respawn points), %3 to insert description of capturing costs. "%1%2%3"
Seize Reward "ScoreReward" Number Score awarded to the side which captured the sector. 0


How To

  1. Open the editor and create the module ModuleSector_F.
  2. Add a name to the sector and set the properties as you want them to be.
  3. Create a location game logic next to the module.
  4. Create a new trigger and set the activation mode to everyone. The trigger's size and position represents the area of the sector.
  5. Synchronise the trigger with the location object.
  6. Synchronise the location object with the sector module.
  7. Create the bluefor and opfor game logics and synchronise them with the sector module as well.

Now you have created a sector that can be captured by Blufor and Opfor at the trigger position. Test your mission!


Scripted Sector Module Creation

SQF can be used to create a sector by creating a logic group, by creating a unit of class "ModuleSector_F" then using BIS_fnc_moduleSector to initialise it:

// createGroup and createUnit are needed to create modules // creating them with createVehicle will not work private _group = createGroup sideLogic; private _sector = _group createUnit ["ModuleSector_F", _position, [], 0, "CAN_COLLIDE"]; // _position is [x, y, z] // it is possible to change the sector's parameters using setVariable _sector setVariable ["Name", "My Sector", true]; _sector setVariable ["Designation", "S", true]; _sector setVariable ["sides", [west, east], true]; _sector setVariable ["DefaultOwner", 0, true]; [_sector] call BIS_fnc_moduleSector; // initialises the sector // after initialisation, sync an area trigger to the module, it will be the capture area private _area = createTrigger ["EmptyDetector", _position]; _area setTriggerArea [10, 10, 0, false]; // change values depending on the size you want _area setTriggerActivation ["ANY", "PRESENT", false]; _sector setVariable ["areas", [_area], true];


Useful Resources


See Also