Arma 3 Scripting

Command in GUI Control

buttonSetAction

Also available as Markdown and JSON, or read the original wiki page.

Warning

This command is deprecated. Use ctrlAddEventHandler instead.

Description

Caution

This information is obsolete. Use ctrlAddEventHandler instead.

Set the action of a control of the currently active user dialog. The script statement is executed on button release and _this is available, but contains ""; See Arma: GUI Configuration for more information about user dialogs. Works with:

Syntax

Syntax 1

buttonSetAction [idc, action]

Parameters:

Returns: Nothing

Syntax 2

control buttonSetAction action

Parameters:

Returns: Nothing

Examples

Example 1

buttonSetAction [100, "player exec ""reply.sqs"""];

Example 2

_ctrl buttonSetAction "if (alive bob) then {hint 'alive'} else {hint 'dead'}"; // SQF but SQS compatible, see SQS

Example 3

Script is SQS:

_control buttonSetAction "hint format ['Is SQS: %1', !isNil '_time']"

See also

buttonAction

Community notes

Kungtotte

When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.

/* This will print 'any bar' in the hint box,
 since _foo has no value according to buttonSetAction */

_foo = "foo";
buttonSetAction [100, "hint format [""%1 bar"", _foo];"];
Molaron

This command does not overwrite the button's action that was set via "action" in the .hpp of the dialog.

Nomisum

To use variables local to the defining script, a syntax like the one below needs to be used:

_foo = "foo";
buttonSetAction [100, format ["hint '%1 bar'", _foo]];

works! thanks to Kronzky for commenting this workaround in the VBS wiki