switchLight: Difference between revisions

From Bohemia Interactive Community
m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*)<\/code>" to "<code>$1$2$3</code>")
m (Text replacement - ">Posted on September ([0-9]{2})[ a-zA-Z]*, ([0-9]{4})" to ">Posted on $2-09-$1")
(12 intermediate revisions by 4 users not shown)
Line 28: Line 28:
|descr= Controls whether a lamp is lit or not.
|descr= Controls whether a lamp is lit or not.
{{Feature|arma3|This command was originally designed to only work with {{hl|CfgNonAIVehicles}} class {{hl|"StreetLamp"}} only.
{{Feature|arma3|This command was originally designed to only work with {{hl|CfgNonAIVehicles}} class {{hl|"StreetLamp"}} only.
Since {{arma3}} v1.92 this command was extended to work with street lights.}}
Since {{arma3}} v1.92 this command was extended to work with street lights and some prop lights, like portable construction light.}}


|s1= lamp [[switchLight]] mode
|s1= lamp [[switchLight]] mode
Line 40: Line 40:
|x1= <sqf>(object 12345) switchLight "OFF";</sqf>
|x1= <sqf>(object 12345) switchLight "OFF";</sqf>


|x2= <code>nearestObject [player, "Streetlamp"] switchLight "OFF";</code>
|x2= <sqf>nearestObject [player, "Streetlamp"] switchLight "OFF";</sqf>


|x3= <sqf>cursorObject switchLight "ON";</sqf>
|x3= <sqf>cursorObject switchLight "ON";</sqf>
Line 49: Line 49:


<dt><dt>
<dt><dt>
<dd class="notedate">Posted on September 16, 2013</dd>
<dd class="notedate">Posted on 2013-09-16</dd>
<dt class="note">[[User:Killzone_Kid|Killzone_Kid]]</dt>
<dt class="note">[[User:Killzone_Kid|Killzone_Kid]]</dt>
<dd class="note">
<dd class="note">
''Before {{arma3}} v1.92'' use [[setHit]] instead:
''Before {{arma3}} v1.92'' use [[setHit]] instead:
<code>_lamp = nearestObject [player, "Lamps_base_F"];
<sqf>_lamp = nearestObject [player, "Lamps_base_F"];
_lamp setHit ["light_1_hitpoint", 0.97]; // off
_lamp setHit ["light_1_hitpoint", 0.97]; // off
_lamp setHit ["light_1_hitpoint", 0]; // on</code>
_lamp setHit ["light_1_hitpoint", 0]; // on</sqf>


Switch all lights off in the 500 radius of player:
Switch all lights off in the 500 radius of player:
<code>private _lamps = nearestObjects [[[player]], ["Lamps_base_F", "PowerLines_base_F", "PowerLines_Small_base_F"], 500];
<sqf>private _lamps = nearestObjects [player, ["Lamps_base_F", "PowerLines_base_F", "PowerLines_Small_base_F"], 500];


{
{
[[for]] "_i" [[from]] 0 [[to]] [[count]] [[getAllHitPointsDamage]] _x -1 [[do]]
for "_i" from 0 to (count getAllHitPointsDamage _x -1) do
{
{
_x [[setHitIndex]] [_i, 0.97];
_x setHitIndex [_i, 0.97];
};
};
} forEach _lamps;</code>
} forEach _lamps;</sqf>
</dl>
</dl>
{{Note
|user= Samatra
|timestamp= 20230301141231
|text= How to disable all lamps using latest Arma 3 commands, a modern method. Disable all lights that are pre-placed on the map, on the entire map:
<sqf>{
    _x switchLight "OFF";
} forEach (1 allObjects 0);
</sqf>
Disable all script-spawned and editor-placed lamps:
<sqf>{
    _x switchLight "OFF";
} forEach (8 allObjects 0);
</sqf>
These snippets iterate through all buildings and run [[switchLight]] on them. If they're lamps, they'll be turned off.
}}

Revision as of 00:10, 14 May 2023

Hover & click on the images for description

Description

Description:
Controls whether a lamp is lit or not.
Arma 3
This command was originally designed to only work with CfgNonAIVehicles class "StreetLamp" only. Since Arma 3 v1.92 this command was extended to work with street lights and some prop lights, like portable construction light.
Groups:
Lights

Syntax

Syntax:
lamp switchLight mode
Parameters:
lamp: Object
mode: String - Mode can be: "ON", "OFF" or "AUTO" (lamp is on only during nighttime, default)
Return Value:
Nothing

Examples

Example 1:
(object 12345) switchLight "OFF";
Example 2:
nearestObject [player, "Streetlamp"] switchLight "OFF";
Example 3:
cursorObject switchLight "ON";

Additional Information

See also:
lightIsOn BIS_fnc_switchLamp

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on 2013-09-16
Killzone_Kid
Before Arma 3 v1.92 use setHit instead:
_lamp = nearestObject [player, "Lamps_base_F"]; _lamp setHit ["light_1_hitpoint", 0.97]; // off _lamp setHit ["light_1_hitpoint", 0]; // on
Switch all lights off in the 500 radius of player:
private _lamps = nearestObjects [player, ["Lamps_base_F", "PowerLines_base_F", "PowerLines_Small_base_F"], 500]; { for "_i" from 0 to (count getAllHitPointsDamage _x -1) do { _x setHitIndex [_i, 0.97]; }; } forEach _lamps;
Samatra - c
Posted on Mar 01, 2023 - 14:12 (UTC)
How to disable all lamps using latest Arma 3 commands, a modern method. Disable all lights that are pre-placed on the map, on the entire map:
{ _x switchLight "OFF"; } forEach (1 allObjects 0);
Disable all script-spawned and editor-placed lamps:
{ _x switchLight "OFF"; } forEach (8 allObjects 0);
These snippets iterate through all buildings and run switchLight on them. If they're lamps, they'll be turned off.