mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
50 lines
1.4 KiB
Plaintext
50 lines
1.4 KiB
Plaintext
/*
|
|
* Author: commy2
|
|
*
|
|
* Display a message.
|
|
*
|
|
* Argument:
|
|
* 0: Message (String)
|
|
* 1: Play a clicking sound (Bool, optional default: false)
|
|
* 2: How long before hiding the message in seconds (Number, optional default: 2 sec)
|
|
* 3: Priority, higher priority messages will override lesser important ones (Number, optional default: 0)
|
|
*
|
|
* Return value:
|
|
* Nothing
|
|
*/
|
|
#include "script_component.hpp"
|
|
|
|
#define DEFAULT_PLAY_SOUND false
|
|
#define DEFAULT_DELAY 2
|
|
#define DEFAULT_PRIORITY 0
|
|
|
|
_this resize 4;
|
|
|
|
private ["_text", "_sound", "_delay", "_priority", "_lastHintTime", "_lastHintPriority", "_time"];
|
|
_text = _this select 0;
|
|
_sound = _this select 1;
|
|
_delay = _this select 2;
|
|
_priority = _this select 3;
|
|
|
|
if (isNil QGVAR(lastHint)) then {
|
|
GVAR(lastHint) = [0, 0];
|
|
};
|
|
|
|
_lastHintTime = GVAR(lastHint) select 0;
|
|
_lastHintPriority = GVAR(lastHint) select 1;
|
|
|
|
if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text};
|
|
if (isNil "_sound") then {_sound = DEFAULT_PLAY_SOUND};
|
|
if (isNil "_delay") then {_delay = DEFAULT_DELAY};
|
|
if (isNil "_priority") then {_priority = DEFAULT_PRIORITY};
|
|
|
|
_time = time;
|
|
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
|
|
hintSilent _text;
|
|
if (_sound) then {playSound "ACE_Sound_Click"};
|
|
GVAR(lastHint) set [0, _time];
|
|
GVAR(lastHint) set [1, _priority];
|
|
|
|
[{if ((_this select 0) == GVAR(lastHint) select 0) then {hintSilent ""};}, [_time], _delay, 0] call FUNC(waitAndExecute);
|
|
};
|