Arma-3-Survival icon indicating copy to clipboard operation
Arma-3-Survival copied to clipboard

Make primary wave logic more unscheduled

Open Ansible2 opened this issue 1 year ago • 2 comments

Lots of functions during the course of a wave could be run in unscheduled but are just called from inside the wave logic functions which are primarily scheduled.

Can at least make use of CBAP_fnc_direrctCall when something big does not need to be scheduled during these functions.

Ansible2 avatar Jul 04 '23 22:07 Ansible2

This refactor and testing has revealed that the group limit can be hit quite easily and likely has been during play when users have caused a number of AI groups to spawn rapidly (support calls and killing large numbers of AI at once for example).

It can take several seconds for these groups to actually be deleted by the engine. Manually calling deleteGroup on the group of a unit that has been killed will not alleviate the actual number of groups in the session (count allGroups). Units may have to be removed from the group in order to actually delete them.

One solution might be to create 50 (the current max queued enemies to be active) groups or so at the start of the session and use these in a recycling fashion. This maybe difficult to manage with the AI handler but not impossible. It also may lead to strange behavior of AI because of leader stuff (speculation).

Another solution may be having units join a cleanup group when they die and then deleting the old group they were a part of or reusing that group potentially.

It may also be worth investigating having units spawn in actual groups instead of by themselves, not that this will necessarily fix the issue, but it may be worth implementing if changes need to be made to minimize group numbers anyway. Might be far easier to handle with the group eventhandlers that now exist.

In any case, the stalker system should probably (and likely will need to) be rewritten to accommodate the further refactor.

Ansible2 avatar Jul 15 '23 05:07 Ansible2

Tests

  • [x] vehicle waves work
  • [x] defector vehicle waves work
  • [x] suicide wave works
  • [x] civilian wave works
  • [x] drone wave works
    • [x] FIX: arsenal drop during drone wave causes drop aircraft to go crazy and miss DZ
    • [x] FIX: player gets hit points from bombs dropped by drones
  • [x] overrun wave works
  • [x] mortar wave works
  • [x] helicopter wave works
    • [x] Helicopters will be properly cleaned up if your remove all their fuel and they just land
  • [x] extraction works
  • [x] Enable AI Collision system
  • [x] multiplayer stalking works
  • [x] Vehicles spawning during extraction wave
  • [x] arsenal drop did not have an arsenal on it when it landed
  • [ ] enemies are walking through walls too common (Fix added, needs to be TESTED)
  • [ ] enemy paratrooper helicopters tend to not leave extraction area (again)
  • [ ] helicopter gunner did not have volume readjusted after going in to zeus and coming back
  • [ ] a remote player was downed (with ACE), got back up, but was still invincible. May have also respawned.
  • [ ] extraction Heli landed, but then left players. (Players were directly underneath the helicopter's backside, could just be the normal error with that)
  • [ ] an enemy helicopter gunner crashed, all of the crew dismounted, but the heli was not deleted
  • [ ] restricted number of paratroopers
    • [ ] Paratroopers get added to delete wave

Ansible2 avatar Jul 18 '23 22:07 Ansible2