Arma 3 Scripting

buttonSetAction

  • Deprecated
  • Local argument
  • Local effect
  • Arma 3 v0.50
  • First in Operation Flashpoint v1.75

Command · Markdown · JSON · original wiki page

Warning

This command is deprecated. Use ctrlAddEventHandler instead.

Description

Caution

This information is obsolete. Reason: 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