Hamster2k/Sandbox – User
< Hamster2k
Categories:
No edit summary |
|||
Line 113: | Line 113: | ||
|0 | |0 | ||
|} | |} | ||
== Creating a sector module from sqf == | |||
You can also use code to create a sector by creating a logic group, creating a unit of class "ModuleSector_F", syncing an area trigger to it and then using [[BIS_fnc_moduleSector]] to initialize it: | |||
<sqf> | |||
//You need to use createGroup and createUnit to | |||
private _group = createGroup sideLogic; | |||
private _sector = _group createUnit ["ModuleSector_F", _position, [], 0, "CAN_COLLIDE"]; //_position is [x, y, z] | |||
//You can change the parameters of your sector by 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; //Initializes your sector | |||
//After initialization, 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> |
Revision as of 20:05, 11 September 2025
Properties
You can modify your sector and its behavior by changing the properties either in the module editor or by using setVariable on your sector variable. Use BIS_fnc_moduleSector to modify your 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: |
"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 |
Creating a sector module from sqf
You can also use code to create a sector by creating a logic group, creating a unit of class "ModuleSector_F", syncing an area trigger to it and then using BIS_fnc_moduleSector to initialize it:
//You need to use createGroup and createUnit to
private _group = createGroup sideLogic;
private _sector = _group createUnit ["ModuleSector_F", _position, [], 0, "CAN_COLLIDE"]; //_position is [x, y, z]
//You can change the parameters of your sector by 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; //Initializes your sector
//After initialization, 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];