BIS fnc setUnitInsignia: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*) *<\/code>" to "<code>$1$2$3</code>") |
Lou Montana (talk | contribs) m (Text replacement - "(\|[pr][0-9]+ *= *[^- ]*) *- *R([a-z ])" to "$1 - r$2") |
||
(8 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
|p2= class: [[String]] - CfgUnitInsignia class name to use. Use an empty string to remove the current insignia. | |p2= class: [[String]] - CfgUnitInsignia class name to use. Use an empty string to remove the current insignia. | ||
|r1= [[Boolean]] - | |r1= [[Boolean]] - returns [[true]] if successful. | ||
|x1= Place insignia: | |x1= Place insignia: | ||
< | <sqf>[player, "111thID"] call BIS_fnc_setUnitInsignia;</sqf> | ||
|x2= Remove insignia: | |x2= Remove insignia: | ||
< | <sqf>[player, ""] call BIS_fnc_setUnitInsignia;</sqf> | ||
|seealso= [[BIS_fnc_getUnitInsignia]] | |seealso= [[BIS_fnc_getUnitInsignia]] | ||
Line 43: | Line 43: | ||
|timestamp= 20210621215100 | |timestamp= 20210621215100 | ||
|text= To set the insignia after respawn, add this code to [[Event Scripts#initPlayerLocal.sqf|initPlayerLocal.sqf]] | |text= To set the insignia after respawn, add this code to [[Event Scripts#initPlayerLocal.sqf|initPlayerLocal.sqf]] | ||
< | <sqf> | ||
params ["_player"]; | |||
_player addMPEventHandler ["MPRespawn", { | _player addMPEventHandler ["MPRespawn", { | ||
params ["_unit", "_corpse"]; | params ["_unit", "_corpse"]; | ||
private _insignia | private _insignia = [_corpse] call BIS_fnc_getUnitInsignia; | ||
[_unit, _insignia] spawn { | [_unit, _insignia] spawn { | ||
params ["_unit", "_insignia"]; | params ["_unit", "_insignia"]; | ||
sleep 1; | sleep 1; | ||
isNil { | |||
_unit | _unit setVariable ["BIS_fnc_setUnitInsignia_class", nil]; // you can also do [_unit, ""] call BIS_fnc_setUnitInsignia, but this way is faster (plus no network traffic) | ||
[_unit, _insignia] | [_unit, _insignia] call BIS_fnc_setUnitInsignia; | ||
}; | }; | ||
}; | }; | ||
}];</ | }]; | ||
</sqf> | |||
Notice that the previous insignia has been '''cleared''' first to make the change happen (possibly a bug as of {{arma3}} v2.05) | Notice that the previous insignia has been '''cleared''' first to make the change happen (possibly a bug as of {{arma3}} v2.05) | ||
}} | }} |
Latest revision as of 15:47, 8 November 2023
Description
- Description:
- Sets unit insignia (e.g., shoulder insignia on soldiers). See Arma 3: Unit Insignia for more details and a list of official insignias.
- Execution:
- call
- Groups:
- Object Manipulation
Syntax
- Syntax:
- [target, className] call BIS_fnc_setUnitInsignia
- Parameters:
- target: Object - unit to which the insignia is going to be attached
- class: String - CfgUnitInsignia class name to use. Use an empty string to remove the current insignia.
- Return Value:
- Boolean - returns true if successful.
Examples
- Example 1:
- Place insignia:
- Example 2:
- Remove insignia:
Additional Information
- See also:
- BIS_fnc_getUnitInsignia
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 Aug 09, 2016 - 05:26 (UTC)
-
In Arma 3: Unit Insignia, you can read:
If it is possible to add a cfgUnitInsignia class in a description.ext, please note that the path of the texture differs for server and client in MP environment. Config.cpp (addon) is more reliable. Description.ext, in this case, should be used for SP mission only.
This function calls setObjectTextureGlobal, which is a broken command in MP (see feedback tracker) August 2016.
- Posted on Jun 21, 2021 - 21:51 (UTC)
-
To set the insignia after respawn, add this code to initPlayerLocal.sqf
Notice that the previous insignia has been cleared first to make the change happen (possibly a bug as of Arma 3 v2.05)params ["_player"]; _player addMPEventHandler ["MPRespawn", { params ["_unit", "_corpse"]; private _insignia = [_corpse] call BIS_fnc_getUnitInsignia; [_unit, _insignia] spawn { params ["_unit", "_insignia"]; sleep 1; isNil { _unit setVariable ["BIS_fnc_setUnitInsignia_class", nil]; // you can also do [_unit, ""] call BIS_fnc_setUnitInsignia, but this way is faster (plus no network traffic) [_unit, _insignia] call BIS_fnc_setUnitInsignia; }; }; }];