Zone Restriction Module – Arma 2

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (Text replacement - "ArmA( |_)2" to "Arma 2")
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:ArmA_2:_Editor_Modules]]
[[Category:Arma 2:_Editor_Modules]]


'''Zone Restriction (Zora)''' module defines a kill zone around the playable one to avoid player(s) to flee from the battlefield.
'''Zone Restriction (Zora)''' module defines a kill zone around the playable one to avoid player(s) to flee from the battlefield.
This only works for player unit.<br />
This only works for player unit.<br>
A border is created where enemy patrols can be spawned, hunting the player while in this danger zone.
A border is created where enemy patrols can be spawned, hunting the player while in this danger zone.


Line 16: Line 16:
The sensors are used to define the combat area.
The sensors are used to define the combat area.


=== Optional parameters ===
=== Optional parameters for module init ===
Set variables to Zone Restriction mudule with desired values:
Set variables in init of Zone Restriction module with desired values:


*'''bordersize = <number>;''' - set the border size, between the "normal" area and the immediate death area
*'''bordersize = <number>;''' - set the border size, between the "normal" area and the immediate death area
::Example: ''Zora_Module setvariable ["bordersize", 250];''
::Example: ''this setvariable ["bordersize", 250];''
::Default value: 1000m
::Default value: 1000m


*'''factionlist = <array>;''' - list of factions that can patrol in the border
*'''factionlist = <array>;''' - list of factions that can patrol in the border
::Example: ''Zora_Module setvariable ["factionlist", ["USMC", "CDF", "GUE"]];''
::Example: ''this setvariable ["factionlist", ["USMC", "CDF", "GUE"]];''
::Default value: ["GUE"]
::Default value: ["GUE"]


*'''maxgroups = <number>;''' - maximum number of groups at once chasing players in the border
*'''maxgroups = <number>;''' - maximum number of groups at once chasing players in the border
::Example: ''Zora_Module setvariable ["maxgroups", 8];''
::Example: ''this setvariable ["maxgroups", 8];''
::Default value: 3 ; minimum 1, else, will be reset to default
::Default value: 3 ; minimum 1, else, will be reset to default


*'''debug = <bool>;''' - show restricted zone by markers on map, and patrols going after players in the border
*'''debug = <bool>;''' - show restricted zone by markers on map, and patrols going after players in the border
::Example: ''Zora_Module setvariable ["debug", true];''
::Example: ''this setvariable ["debug", true];''
::Default value: false
::Default value: false


Line 53: Line 53:
*Disembarking from a vehicle you embarked in the border will make you killed as if you left the combat area (even if disembarking in safe zone)
*Disembarking from a vehicle you embarked in the border will make you killed as if you left the combat area (even if disembarking in safe zone)
*Disembarking from a vehicle you started in will make you killed as if you left the combat area
*Disembarking from a vehicle you started in will make you killed as if you left the combat area
A quick fix-up (you will be able to travel everywhere in a vehicle, but will get shot if you disembark / will get hunted down if in border) :
<code> // anti Zora bug
while {true} do
{
if ({vehicle _x != _x} count units group player == 0) then {BIS_Zora_Pause = false};
waitUntil { {vehicle _x != _x} count units group player > 0 };
BIS_Zora_Pause = true;
waitUntil { {vehicle _x != _x} count units group player == 0 };
sleep 1;
};
</code>

Revision as of 13:12, 2 May 2020


Zone Restriction (Zora) module defines a kill zone around the playable one to avoid player(s) to flee from the battlefield. This only works for player unit.
A border is created where enemy patrols can be spawned, hunting the player while in this danger zone.

Initialization

Paths

Editor:

Modules (F7) > Zone Restriction

Data:

ca\modules\zora

Editor setup

  1. Insert sensor(s) named BIS_Zora_x - x as a number, starting from 0, numbers must follow, e.g BIS_Zora_0, BIS_Zora_1, etc.

The sensors are used to define the combat area.

Optional parameters for module init

Set variables in init of Zone Restriction module with desired values:

  • bordersize = <number>; - set the border size, between the "normal" area and the immediate death area
Example: this setvariable ["bordersize", 250];
Default value: 1000m
  • factionlist = <array>; - list of factions that can patrol in the border
Example: this setvariable ["factionlist", ["USMC", "CDF", "GUE"]];
Default value: ["GUE"]
  • maxgroups = <number>; - maximum number of groups at once chasing players in the border
Example: this setvariable ["maxgroups", 8];
Default value: 3 ; minimum 1, else, will be reset to default
  • debug = <bool>; - show restricted zone by markers on map, and patrols going after players in the border
Example: this setvariable ["debug", true];
Default value: false

Set global variables with desired values:

  • BIS_Zora_Pause = <bool>; - pause the detection
Example: BIS_Zora_Pause = true;
Default value: false

Behaviour

  • Patrols will hunt down players in border given the formula [posx -50 +(random 100), posy -50 +(random 100), 0]
  • Patrols will retreat after some time if the player left the border (either killed or gone back in safe zone)
  • Patrols will disappear (instantly) once defeated / retreated
  • You'll have to place on the map at least one unit of the faction you will create with this module, or setFriend their side, so the created patrols attack their enemies

Known bugs

  • Disembarking from a vehicle you embarked in the border will make you killed as if you left the combat area (even if disembarking in safe zone)
  • Disembarking from a vehicle you started in will make you killed as if you left the combat area

A quick fix-up (you will be able to travel everywhere in a vehicle, but will get shot if you disembark / will get hunted down if in border) : // anti Zora bug while {true} do { if ({vehicle _x != _x} count units group player == 0) then {BIS_Zora_Pause = false}; waitUntil { {vehicle _x != _x} count units group player > 0 }; BIS_Zora_Pause = true; waitUntil { {vehicle _x != _x} count units group player == 0 }; sleep 1; };