animate third argument cannot be boolean false since 1.68 update
New, NormalPublic

Description

Hello,

in the Unsung mod we use useractions with functions to realize functionality such as lowering and raising wings. Since the 1.68 this is broken as the 'this' variable seems to point to the user instead of the object.

From config.cpp:

			class wingsdown 
			{
				shortcut = "";
				displayName = "<t color='#199bf0'>~ Lower Wings</t>";
				position = "pilotcontrol";
				onlyforplayer = 0;
				radius = 5;
				condition = "( ( (player == driver this) && this animationphase 'wingfold_left' > 0.9) or ( (speed this > 5) and this animationphase 'wingfold_left' > 0.9) )";
				statement = "[this] spawn uns_a6_fnc_wingsdown";
				priority = -1;
				showWindow = 0;
			};

fn_wingsdown.sqf:

if (isDedicated) exitWith {};
params [["_plane", ObjNull]];
systemChat str _plane;

[_plane, "lower", false] call uns_a6_fnc_wings;

_plane

fn_wings.sqf:

if (isDedicated) exitWith {};

params [ ["_plane", ObjNull], ["_mode", "lower"], ["_instant", false] ];

systemChat str _plane;

if (_mode == "raise") then {
	_plane animate ["wingfold_left",1, _instant];
	_plane animate ["wingfold_right",1, _instant];
	_plane animate ["wing_knob",1, _instant];
	_plane animate ["wing_knob_ind",0, _instant];
} else {
	_plane animate ["wingfold_left",0, _instant];
	_plane animate ["wingfold_right",0, _instant];
	_plane animate ["wing_knob",0, _instant];
	_plane animate ["wing_knob_ind",1, _instant];
};

_plane

Details

Severity
Minor
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Category
Config
Steps To Reproduce
  1. load Arma with unsung delta mod
  2. place A-6 intruder or other naval plane in Editor
  3. play mission
  4. try to raise/lower wings from useraction

samples object for testing 'this': ttt_vehicle.pbo

Thanks to Commy2 the test was found to be invalid. A 'systemChat str this' will show the commander, not the object. A 'systemChat typeOf this' shows the vehicle class. Still looking for the core reason for the fold wing problem.

The error in the fold wings function is

14:42:21  Mission id: d1a3f1642a5521ed462ff9df325ae570b58dda04
14:42:28 Error in expression <knob_ind",0, _instant];
} else {
_plane animate ["wingfold_left",0, _instant];
_>
14:42:28   Error position: <animate ["wingfold_left",0, _instant];
_>
14:42:28   Error Type Bool, expected Number,Bool
14:42:28 File uns_A6_c\functions\fn_wings.sqf [uns_a6_fnc_wings], line 18

The animate function does no longer work with the third argument being false. This seems to be the core reason for the breakage. Will that be fixed or do we need to change the false to number 1 to stay compatible?

TeTeT.nimitz changed the title from "useraction this points to player instead of object after 1.68 update" to "animate third argument cannot be boolean false since 1.68 update".Thu, Apr 20, 8:27 PM

From arma 3 discord:

commy2 - Today at 8:27 AM
@TeTeT
re:animate broken

Killzone Kid: Thanks for reporting it, queued for a fix

Add Comment