Page MenuHomeFeedback Tracker

Stackable JIP queue for entities with remoteExec
Closed, ResolvedPublic

Description

Supplying vehicle as JIP parameter into remoteExec command seems like a very useful feature to auto remove the JIP remote exec on vehicle deletion, but it has a huge flaw of only supporting a single remote execution per entity. Looks like JIP handlers are stored as strings internally and providing a vehicle simply turns it into netid. This can be observed with following test:

  1. Have a game with server player and client player:
  2. Run this as server player:
{diag_log str 111} remoteExecCall ["call", 0, player];
{diag_log str 222} remoteExecCall ["call", 0, player];
{diag_log str 333} remoteExecCall ["call", 0, netid player];
  1. Observe both server and client seeing all 3 numbers in the RPT
  2. Have client rejoin
  3. Observe client only seeing "333" in the RPT

Unfortunately such behaviour makes using entity or its netid as handle borderline useless, because any mod can overwrite mission or other mod JIP behaviour on same entity.

I'm not sure about exact internal implementation, but I suggest removing\ignoring JIP queue execs by matching netid at the start of string rather than full string match. This way you will be able to stack several JIP queue remote executions like this

{diag_log str 111} remoteExecCall ["call", 0, format ["%1 queue 1", netid player]];
{diag_log str 222} remoteExecCall ["call", 0, format ["%1 queue 2", netid player]];
{diag_log str 333} remoteExecCall ["call", 0, format ["%1 queue 3", netid player]];

And have them removed\ignored once entity is deleted.

Maybe even let us supply array with entity and queue unique handle as a substitute for format:

{diag_log str 111} remoteExecCall ["call", 0, [player, "queue 1"]];
{diag_log str 222} remoteExecCall ["call", 0, [player, "queue 2"]];
{diag_log str 333} remoteExecCall ["call", 0, [player, "queue 3"]];

Details

Severity
Feature
Resolution
Won't Fix
Reproducibility
N/A
Operating System
Windows 10 x64
Category
Scripting

Event Timeline

SaMatra created this task.Apr 1 2023, 4:05 PM
This comment was removed by BIS_fnc_KK.

Thought that having a getter to return JIP queue attached to an entity will be useful too:
ARRAY = getRemoteExecutedJIP ENTITY which will return array of JIP handles that match this vehicle

This will require whole new JIP system, current system cannot do what is proposed in this ticket. So for now is won't fix

BIS_fnc_KK closed this task as Resolved.Feb 21 2024, 10:01 PM
BIS_fnc_KK removed a project: Arma 3.
BIS_fnc_KK changed Resolution from Open to Won't Fix.
BIS_fnc_KK removed BIS_fnc_KK as the assignee of this task.
BIS_fnc_KK added a subscriber: BIS_fnc_KK.