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

Бой внезапно закончился. #13

Open
FakelsHub opened this issue Jul 1, 2019 · 20 comments
Open

Бой внезапно закончился. #13

FakelsHub opened this issue Jul 1, 2019 · 20 comments

Comments

@FakelsHub
Copy link
Collaborator

FakelsHub commented Jul 1, 2019

С этим исправлением 997ee71 у меня один раз было странное поведение, когда остался один враг в нокауте/лежал на полу, автоматически закончился бой, после того как бой закончился враг встал и начал снова атаковать.
Пытаюсь воспроизвести туже ситуацию в том-же бое, не получается вызвать такое же поведение.
Возможно, что тот баг и не связанно с этим исправлением.
Нужно продолжить тестирование.

@NovaRain
Copy link

NovaRain commented Jul 1, 2019

Sounds like the knockout effect of the enemy goes away very quickly after the combat ends? Or you're saying the combat shouldn't end automatically just because the sole enemy got knocked out?

@FakelsHub
Copy link
Collaborator Author

Should not end. I will do some research.

@FakelsHub
Copy link
Collaborator Author

FakelsHub commented Jul 1, 2019

Протестировал поведение, обнаружилось, что существует баг связанный с DAM_KNOCKED_OUT.
После завершения боя криттер мгновенно встает в нокауте, и/или после сохранения загрузки очередь событий выводящая криттера из нокаута теряет указатель на этого криттера, после чего криттер остается в вечном "стоячем" нокауте. :)

Автоматическое завершение боя не является багом при нокаутах т.к. такое же поведение свойственно и без этого исправления.

@NovaRain
Copy link

NovaRain commented Jul 1, 2019

It sounds similar to the "walking container" bug for party members.

@FakelsHub
Copy link
Collaborator Author

Thanks for the hint, I'll see what was fixed there.

I can not find what causes the critter to immediately get up after the end of the combat.

@NovaRain
Copy link

NovaRain commented Jul 1, 2019

Thanks for the hint, I'll see what was fixed there.

I can not find what causes the critter to immediately get up after the end of the combat.

The cause of the bug is different (PM got DAM_LOSE_TURN and player leaves the map before it recovers), but the syndrome are similar (becoming unresponsive).

@FakelsHub
Copy link
Collaborator Author

And who made the fix "walking container"?
It looks like they brought in an additional bug for knockout.

Can you describe in more detail the manifestation of this (walking container) bug?

@NovaRain
Copy link

NovaRain commented Jul 4, 2019

And who made the fix "walking container"?
It looks like they brought in an additional bug for knockout.

Can you describe in more detail the manifestation of this (walking container) bug?

It was from Crafty. Here's the post from NMA thread:
http://www.nma-fallout.com/threads/fo2-engine-tweaks-sfall.178390/page-123#post-4065716
I force party member attacks to critical fail with "lose next turn", and leave the map during combat before they get up. In next map they become walking containers.

@FakelsHub
Copy link
Collaborator Author

FakelsHub commented Jul 4, 2019

You have the opportunity to check this bug again?, it seems to me that this is again broken. :P

@NovaRain
Copy link

NovaRain commented Jul 4, 2019

The fix seems still working. I tested with a hook script:

#include ".\HEADERS\DEFINE.H"
#include ".\HEADERS\sfall.h"

procedure start;
procedure hook_test;

procedure hook_test begin
   variable
      willHit := get_sfall_arg,
      attacker := get_sfall_arg;

   if (attacker != dude_obj) then set_sfall_return(0);
end

procedure start begin
   if game_loaded then begin
      register_hook_proc(HOOK_AFTERHITROLL, hook_test);
   end
end

I removed the comment in bugfixes.cpp and set NPCTurnsIntoContainerFix=0.
I leave the map after Sulik got "lost next turn" critical failure, and he became a walking container in next map. With NPCTurnsIntoContainerFix=1 I can talk to him normally.

@FakelsHub
Copy link
Collaborator Author

This fix concerns not only PM, but other NPCs, for other NPCs it seems that it broken after commit b25d2f8

@NovaRain
Copy link

NovaRain commented Jul 4, 2019

Oh, I thought the bug only effects PM so I only focus testing with them. I didn't test other NPCs on a map.
Is it due to the change of map_save_in_game_hook?

@FakelsHub
Copy link
Collaborator Author

Yes.
But I'm not sure that it broke, And there is no suitable card for testing.
By the way, this fix is not only for DAM_LOSE_TURN, but also for knockout and knockdown, a complex fix.

I have already made some corrections for this.

By the way, I use the debug editor and right there I set the flags.
It became very convenient to test.

@NovaRain
Copy link

NovaRain commented Jul 4, 2019

By the way, I use the debug editor and right there I set the flags.
It became very convenient to test.

Thanks for the tip. But will setting the flags outside of combat still get the critter to be put in the clearing queue, or it's needed to be set in combat? Like entering the combat -> set flags (0x44?) on a NPC -> leave the map during my turn -> bug triggered.

@NovaRain
Copy link

NovaRain commented Jul 5, 2019

I tried testing the bug on NPCs (Klint) with current build. Even if he lost his next turn or got himself knocked down, and I leave the map (enter the temple) in my turn. When I return he acts normally. How to trigger the bug with non-party member NPCs on a map that don't follow you?

@FakelsHub
Copy link
Collaborator Author

I tested two versions xx.7 and 8, everything is fine. the only difference in 8 is the knock_down flag is not reset when PM was knocked out.

@NovaRain
Copy link

I think this issue is solved in 4.1.9?

@FakelsHub
Copy link
Collaborator Author

FakelsHub commented Jul 12, 2019

Not)
I again saw the enemy lonely fall to the ground, the battle was over.
I thought he was dead, I wanted to search him, and after 3 seconds he got up and began to beat my face)
(it all came about with controllable PM, like last time)

@FakelsHub
Copy link
Collaborator Author

FakelsHub commented Jul 12, 2019

If the enemy has the DAM_KNOCKED_DOWN flag set, then the battle does not end.
Automatically ends if the DAM_KNOCKED_OUT flag was set, it is possible that this was my case.
it would also be necessary to check the end of the battle with the flags DAM_LOSE_TURN & DAM_KNOCKED_DOWN

@FakelsHub
Copy link
Collaborator Author

FakelsHub commented Feb 17, 2020

Заметил баг с DAM_KNOCKED_DOWN при атаке по NPC он почему-то без анимации встал :)
Нужно сделать тесты.

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

No branches or pull requests

2 participants