BGforgeNet / FO2tweaks

Fallout 2 tweaks
https://forums.bgforge.net/viewforum.php?f=26
119 stars 10 forks source link

Dogmeat still checks for party limit #41

Closed Taberone closed 4 years ago

Taberone commented 5 years ago

Describe the bug Dogmeat still checks for party size before joining.

To Reproduce Steps to reproduce the behavior:

  1. Go over the party limit with "unlimited companions" enabled.
  2. Try to recruit Dogmeat. Either when you first meet him, or after you tell him to stay and come back while over the party limit.
  3. You can't.

Expected behavior Recruit Dogmeat regardless of party size.

Screenshots image

FO2tweaks version 9.5

Sfall version Unknown. FO2Tweaks doesn't come with it's own ddraw.ini so I don't know what SFall I'm using. At the very least, I think it's 4.1.2+. Might be 4.1.2.8.

Other mods and patches F2WR (+ additional weapon changes made in F2Wedit) and Restoration Project

Debug.log Enable debug.log as described here, reproduce the issue and attach the resulting log.

sfall-log.txt

burner1024 commented 5 years ago

Can you attach a savegame? You can look up sfall version checking file properties of ddraw.dll. Also, are all other companions fine?

burner1024 commented 5 years ago

also, you attached sfall-log.txt, while debug log is actually called debug.log.

Taberone commented 5 years ago

Don't have the savegame anymore (Quicksaved in the middle of combat at the Hubologist base, and ending combat immediately crashes the game), all other companions are fine though (It's only happened with Dogmeat so far.)

I don't see a debug.log. I can attach a savegame if I run into it again on a new game (Although because it's an Evil playthrough as a slaver, can't have that many companions anyways other than Vic and Myron)

burner1024 commented 5 years ago

Strange that you don't see the log. RP crashes can be reported here, but until you have debug.log, there's no point.

burner1024 commented 5 years ago

Closing until have a reproducible use case.

Taberone commented 5 years ago

image

Happening with Skynet, too. can I attach a savegame for that instead? And here's my debug log debug.log

Savegame: SLOT01.zip

Note that I'm using the following mods:

Restoration Project, Updated (the one on your Github) F2WR (But personally modified. I don't think it should affect anything, though. I only modified the weapon stats). FO2Tweaks

burner1024 commented 5 years ago

I found the bug with Robobrain, but see no issue with Dogmeat. Until the new version is released, you can work around by adding 16777295 to the pid list in unlimited party section of the ini.

Taberone commented 4 years ago

What is the pid for dogmeat? Ran into the bug again. debug.log SLOT04.zip

burner1024 commented 4 years ago

Is this for version 10? It isn't a pid problem. The tweak is applied correctly as shown in the log. I can't load your save, might have to do with other mods. Could you zip and attach whe whole datadirectory, and also ddraw.ddl, ddraw.ini? For some reason you get line 108, which isn't even referenced in Dogmeat's script.

Taberone commented 4 years ago

can't attach the exact data directory from when I ran into this (was using the PC at my mom's, and I'm only over there on the weekend). Gonna have to wait until next weekend, and then I'll be able to.

I did personally modify some parts of FO2, but they're only things like NPC/weapon stat changes for personal usage.

Taberone commented 4 years ago

Attached data, mods folder (Mods used: FO2Tweaks, Party Orders, Unofficial Patch Updated from you, a personal mod for UPU that changes NPC/Weapon/Chem stats)

https://www.dropbox.com/s/918nvy593rxdgzz/Fallout%202.7z?dl=0

burner1024 commented 4 years ago

OK I got it. The reason is that in other scripts checks are being performed after the dialog system starts (which is what triggers the hook), but in Dogmeat's script checks go first, then dialog starts, so the tweak intervenes too late. I'll have to think what to do about it. Meanwhile, I guess you could use some Mentats.

burner1024 commented 4 years ago

Currently I see no way to fix this without modifying vanilla code, which I would very much like to avoid. Please ~pester our sfall overlords~ vote on the linked sfall issue...

FakelsHub commented 4 years ago

В каком месте у собаки происходит проверка?

FakelsHub commented 4 years ago

В скрипте у собаки (выше по сылке) проверка происходит в нодах диалога, за пределами диалога проверки я не нашел. Ткни носом ссылкой.

FakelsHub commented 4 years ago

Я понял. Надо сделать крюк для диалога тогда проблемы не будет.

burner1024 commented 4 years ago

крюк и есть для диалога

FakelsHub commented 4 years ago

Где? Я имею ввиду HOOK_DIALOG

burner1024 commented 4 years ago

@FakelsHub

В скрипте у собаки (выше по сылке) проверка происходит в нодах диалога, за пределами диалога проверки я не нашел. Ткни носом ссылкой.

Честно говоря, я в замешательстве. Четко помню что видел проверку снаружи, а теперь смотрю и не вижу.

Где? Я имею ввиду HOOK_DIALOG

А чем это отличается от HOOK_GAMEMODE?

FakelsHub commented 4 years ago

Нет смысла делать снаружи проверку, да и вменяемого места для такой проверки нет.

А чем это отличается от HOOK_GAMEMODE?

Многим)

burner1024 commented 4 years ago

Чем многим? Мне непонятно, почему хук срабатывает позже в текущей ситуации. Это баг или что?

FakelsHub commented 4 years ago

Нет не баг, срабатывает когда игра переходит в режим ожидания от игрока ответа в диалоговом режиме. Т.е когда процедура talk_p_proc и связанные вызовы из нее завершат свое выполнение.

burner1024 commented 4 years ago

Ну так и у остальных все так же, или нет?

FakelsHub commented 4 years ago

Покажи мне скрипт с которым работает и я покажу тебе различие.

burner1024 commented 4 years ago

Vic

FakelsHub commented 4 years ago

Vic

начинаем разговор, выполняется тело talk_proc и все call вызовы из нее
игра преходит врежим диалога, здесь срабатывает HOOK
игрок выбирает варианты ответов, выбираем присоединить NPC 
выполняется Node995 -> Node010 << здесь уже происходит проверка

У собаки так:

начинаем разговор, выполняется тело talk_proc и call вызовы из нее Node001/Node002 (взависимости от условия, в которых происходит проверка)
игра преходит врежим диалога, здесь срабатывает HOOK
игрок выбирает варианты ответов, выбираем присоединить NPC 
burner1024 commented 4 years ago

Ну то есть я все правильно вначале сказал?

FakelsHub commented 4 years ago

Ну в принцепи да, потому как ноок срабатывает не в точке вызова talk_proc

burner1024 commented 4 years ago

И в итоге ты хочешь добавить HOOK_DIALOG? Или на все стандартные процедуры хук?

burner1024 commented 4 years ago

@FakelsHub Что-то я подумал, там же надо еще обратно сбрасывать значение харизмы. Предлагается другой хук для этого использовать?

FakelsHub commented 4 years ago

Сбрасывай по выходу из диалога, как у тебя в текущем варианте. Будет два вариата входа по новому крючку и по старому, только переменую сделай чтобы два раза действия не выполнялись.

burner1024 commented 4 years ago

ok

burner1024 commented 4 years ago

@FakelsHub хотя я все же думаю было бы полезно сделать в 3х вариантах хук, если это не сложно: а) до процедуры б) после в) вместо

burner1024 commented 4 years ago

@Taberone can you test with the attached script (put into data/scripts) and sfall 4.2? gl_g_unlimited_party.int.zip

FakelsHub commented 4 years ago

Вместо

Это как?

burner1024 commented 4 years ago

Это как?

Оригинальная процедура не выполняется вообще, только наша новая.

FakelsHub commented 4 years ago

Так это уже есть. Или что ты имеешь ваиду под ваша. Доступа к переменным того скрипта все равно не получишь.

burner1024 commented 4 years ago

Под что? Насколько я понял, в текущем варианте оригинальная процедура все равно исполняется, разве нет?

FakelsHub commented 4 years ago

нет, там отменить можно.

burner1024 commented 4 years ago

а ну тогда это есть получается, да

Taberone commented 4 years ago

@Taberone can you test with the attached script (put into data/scripts) and sfall 4.2? gl_g_unlimited_party.int.zip

Yeah, I can. Do I have to find Dogmeat again and see if it works?

burner1024 commented 4 years ago

Yes. Well, a save is attached, so it shouldn't be a problem?

Taberone commented 4 years ago

image still not working? using SFALL 4.2 and the gl_g_unlimited_party.int put into data/scripts, too.

image Only other things in my "scripts" are "Gl_highlighting," (FO2Tweaks, I think?) "Gl_partycontrol" (For manual control of party members) and a "ENCFITE.int" (Because there was a bug with FO2 where the game immediately returned to the menu after escaping the Oil Rig, as if I had died. Installing this supposedly fixes the bug.)

Debug log: debug.log

burner1024 commented 4 years ago

Which RP version are you using?

Taberone commented 4 years ago

Using your Unofficial Patch, Updated (UPU?) rather than Restoration Project, latest version. Should I use a save editor to raise my character's INT above >4 and then see if I can recruit Dogmeat that way?

burner1024 commented 4 years ago

Can you zip the entire data directory then? I can't load your saves, probably because of the custom changes you have.

Taberone commented 4 years ago

CAn do. I probably won't be able to respond in the next couple of days (at best) because there's apparently going to be a big power outage due to high winds and high wildfire risk (Where I live is... particularly prone to wildfires), so keep that in mind.

https://www.dropbox.com/s/omesmdtzx6nkgvh/data.7z?dl=0

burner1024 commented 4 years ago

Still can't load for some reason. But I'm looking into this.

burner1024 commented 4 years ago

@Taberone all right, third time's the charm. Try this. gl_g_unlimited_party.int.zip

Taberone commented 4 years ago

Still not working. My Fallout 2 installation is kinda a mess (especially with my own personal mod I did), and I suspect that's partially why.