Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - Don't remove fallen comrades #122

Open
BrettMayson opened this issue Jan 4, 2020 · 8 comments
Open

Feature - Don't remove fallen comrades #122

BrettMayson opened this issue Jan 4, 2020 · 8 comments

Comments

@BrettMayson
Copy link
Contributor

BrettMayson commented Jan 4, 2020

The biggest grip I have with DUI is that you can tell instantly if someone in your group has died. It would be nice to come up with some solution to this, but I am not yet sure how.

One solution would be to remove the alive _x check. Then add an interaction on dead players to remove them from the radar. This way they remain on the radar until interacted with. A setting could be used to toggle this, and a setting could be used to decide if removing is global or local.

@PiZZAD0X
Copy link

PiZZAD0X commented Jan 4, 2020

Absolutely agree, but that would require changing of the group sync if death/spectator/respawn scripts remove the player from the group right?

// sync groups if the units array in them changed

Perhaps in conjunction with an option to disable the group sync if it != units _group and just handle everything via the variable

@diwako
Copy link
Owner

diwako commented Jan 4, 2020

Just for clarification, how do you handle death and respawn in your missions? The way my unit handles death an respawn is "2s respawn timer, but then you are in Spectator on respawn, waiting for 'respawn' ". With that you get the behavior you are describing, so I wonder if you do respawn the same way.

Right now, DUI just uses what Arma provides in this regard. If the group does not contain the unit anymore, for any reason, then that unit is not shown anymore.

Changing the group sync will also not help in that regard. It does not matter if you use the servers sync or use client side sorting, the effect will be the same. The alive check in the Sync itself is only used to get groups players are in, after that it iterates over found groups. The second alive check in DUI is only used to update the cache for color, name, rank, etc of a unit.

I get why you want to hold dead people in the squad, so it is not easy to see who just died, yet it brings a bit of a challenge with it. How do you determine when to remove the dead unit. One is as mentioned an ace interaction, but what if that unit is in a river, or simply cannot be found or reached?

@BrettMayson
Copy link
Contributor Author

We do death in a similar way. When you die you respawn instantly, but a script moves you to ace spectator and puts the camera at your corpse. The only way we do respawn is via a Zeus module.

@diwako
Copy link
Owner

diwako commented Jan 6, 2020

In this case, the corpse gets removed by the player respawning and then the player gets removed from group due to ace spectator (I assume that one is being used and not EGSpectator)

https://github.com/acemod/ACE3/blob/master/addons/spectator/functions/fnc_setSpectator.sqf#L110

It would be possible to readd the player to the group. So far in my tests players/corpses only get removed from hud if they respawned or confirmed as dead.

@BrettMayson
Copy link
Contributor Author

The corpse does not get removed for us

@BrightCandle
Copy link

One way to logically implement this is if the unit remains !alive and no one in the groups is less than 0.5m away then they remain on the radar even if no longer in the group. If anyone gets close enough then they are removed from the radar. If they come alive again for whatever reason then you can modify their placement or readd them to the radar. It is dead and stays dead that needs special handling.

Ideally what we would want is if ACE is available then we wait until a unit has checked the blood pressure and determined the unit is dead. That perhaps is not possible depending on what events ACE can expose but is the best possible way to look at it.

@diwako
Copy link
Owner

diwako commented Jan 16, 2020

The main issue is, DUI checks the group members by doing units _group. Arma just removes a unit if they died and respawned.
So the issue begins that the unit you want to keep in is already gone without any reference to it anymore. You need to cache all units in a group then, so you can compare it after each caching loop.

Me or someone else needs to work first on a concept to retain the dead units inside the "group" before we can start thinking how to remove them. It also highly depends on how you handle death and respawn in missions. So all of this needs to be configurable so it can fit to every units playstyle.

@G3rrus
Copy link
Contributor

G3rrus commented May 10, 2020

Honestly I feel like ACE's choice to remove people from the group if they are being forced into the spectator while being alive or any other custom respawn's system choice to remove people from the group is an issue on their end and should be requested to be optional on their end. DUI tracks the members of your group and managing who and what is in your group doesn't really feel like it's within the scope of what it should be responsible for (at least in my opinion).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants