Reworked Body Health System with better code, compatibility, bugfixes, customization and improvements of old mechanics.
Functionally same Body Health System from moddb, but now:
- Proper damage calculation for mutant/fall damage/anomalies:
- In original BHS mutants were mostly damaging legs (even if they jump right into your face), now they damage closest limb to them.
- Fall damage didn't damage anything, now it damages legs.
- Anomalies were randomly damaging any limb, now it's still random except "head" and toxic anomalies damage legs only.
- Only hits reduce limb health now (passive damage, food and medicine don't reduce it anymore)
- Changed to proper HUD class (now it has to be on top of masks and other HUDs)
- Scripted item description, no need to change or add vanilla item description xml
- All timers now based on game time instead of system's time_global
- Bugs like UI not displaying correct health after reloading must be fixed now
- More MCM options (for HUD type, HUD textures, HUD colors, HUD position and penalties)
- Reworked some of my penalties a bit
- Overall better optimization and more readable code
- Addon does not use any vanilla files, better compatibility with other addons
Removed:
Quick slots and ammo counter. If you want quickslots back try this Raven's addon >>link<<
Original BHS didn't have those and I don't see how these things are related to Health System. Also you can't move them via MCM (controlled by engine). I want a customizable Health System, not a UI Overhaul ;]
Tested as much as I could, but maybe missed something. Help testing please ;]
Changelog:
- 0.4:
- Added ability (MCM options) to recolor HUD bars xD
- Native Headgear animations addon patch.
- 0.33:
- 0.32:
- Removed dependency on vanilla file "maingame.xml" (vanilla bars), thanks to RavenAscendant.
- Added MCM option to enable/disable vanilla bars (for compatibility with other UI addons).
- Removed and patched last vanilla file "itms_manager.script" (to use weaker medicine without cooldown).
- Addon is now free of any vanilla files and must be compatible with almost everything ;]
- 0.31:
- Added EFT HUD to MCM.
- Made UI smaller.
- UI now hides whenever vanilla UI is hidden (except inventory). Removed "Hide UI" option from MCM, not needed anymore.
- Now any textures for old BHS should definitely work (if it's just texture replacers) ;p
- 0.21:
- Crash fix for "zzz_player_injuries.script(461)", sorry, my bad.
- 0.2:
- Added alternative HUD mode (more like text mode from previous BHS) and MCM option to change modes.
- MCM option to disable HUD for screenshots.
- 0.12: Sorry, forgot to change one small thing ;p
I can add more HUD textures to MCM if you have any preferences. If texture coordinates match it should be easy.
Need original BHS?
Nope.
Can't imagine playing BHS without text mode.
Would be nice if you make it. Thanks
I thought nobody play with it ;[
Okey, will add.
Thanks!
Great job btw
Nice, I finally won't get random parts of my body damaged from using meds for some reason. Solid work.
Btw, does your rework eliminate the need for patches that were included with the original, for instance for FDDA and Ammo Checker?
The only patches required for addons that change "maingame.xml".
Checked, yeah it's not needed for FDDA or any HUD masks anymore, but Ammo Checker seems to change maingame.xml therefore patch is needed.
I suppose this is all patch:
in maingame.xml (for 4:3) or maingame_16.xml (for 16:9)
<static_cur_ammo x="988" y="698" width="24" height="37">
change to:
<static_cur_ammo x="9999" y="9999" width="24" height="37">
Hi there bvcx, thanks for this rework, I waited for an update or improvement for a very long time, and this is exactly what we needed. But I would like to ask if this rework works properly with "gotta go fast" and "gotta go fast extended"? Thanks in advance.
Don't see why it wouldn't. If you think of conflicts with "speed.script" - this script is same everywhere, you can safely override it by any other addon that has it.
Does this work with 1.5.2?
It is made for 1.5.2, so it should work!
Amazing, I figure this is not compatible with Realistic Overhaul?
BHS Realistic Overhaul? They have many changes based on old BHS. Script from this one was rewritten completely, so I don't think it's compatible.
is the EFT Hud still in it?
No, but any textures for old BHS must be compatible, so you can just install it on top.
Sorry, how exactly do I have to "install it on top"?
Install after this addon, let them override textures.
ok, so first grok's bhs and next your bhs, right?
No, just this addon and only textures from other addons. You can delete all the files from another addon except the textures (dds) and keep the folders path to it same, then load them after this addon.
Supports GAMMA?
Safe to install/uninstall mid game?
Yes, I asked Grok and he said that GAMMA uses old BHS from moddb with almost no changes, so this one should work too there (but I didn't test and nobody from GAMMA replied yet). And yeah, safe to install/uninstall.
This and your Moddb.com mod conflict. Imgur.com
Edit: nevermind, I could just turn off BHS description for this in MCM, pls ignore <3
Yeah, this is the addon I had in mind while making this MCM option ;p
I get the following crash error when loading this in a GAMMA install. Same error if Grok's BHS 2.0.2 is active or only your revised mod is active.
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_pcall_failed
[error]File : D:\a\xray-monolith\xray-monolith\src\xrServerEntities\script_engine.cpp
[error]Line : 262
[error]Description : fatal error
[error]Arguments :
1 : [Lua] ...in/..\gamedata\scripts\grok_actor_damage_balancer.script(543) : shit_booster
LUA error: ...in/..\gamedata\scripts\grok_actor_damage_balancer.script:543: attempt to call field 'actor_on_hit_callback' (a nil value)
Check log for details
stack trace:
! [LUA] 0 : [C ] actor_on_hit_callback
! [LUA] 1 : [Lua] ...in/..\gamedata\scripts\grok_actor_damage_balancer.script(543) : shit_booster
! [LUA] 2 : [Lua] ...in/..\gamedata\scripts\grok_actor_damage_balancer.script(786) : gbo_adb
! [LUA] 3 : [Lua] e:/anomaly/bin/..\gamedata\scripts\momo_multihit_fix.script(65) : func_or_userdata
! [LUA] 4 : [Lua] e:/anomaly/bin/..\gamedata\scripts\axr_main.script(271) : make_callback
! [LUA] 5 : [Lua] e:/anomaly/bin/..\gamedata\scripts\_g.script(118) : SendScriptCallback
! [LUA] 6 : [Lua] e:/anomaly/bin/..\gamedata\scripts\_g.script(1218) :
SymInit: Symbol-SearchPath: '.;E:\Anomaly\bin;E:\Anomaly\bin;C:\WINDOWS;C:\WINDOWS\system32;', symOptions: 530,
OS-Version: 6.2.9200 () 0x100-0x1
E:\Anomaly\bin\AnomalyDX11AVX.exe:AnomalyDX11AVX.exe (0000000140000000), size: 18100224 (result: 0), SymType: '-exported-', PDB: 'E:\Anomaly\bin\AnomalyDX11AVX.exe'
None of the functions in stack point to any of BHS files.
Can't see code, but I guess you crashing because "momo_multihit_fix.script" tries to monkeypatch function from "grok_actor_damage_balancer.script" which tries to patch "function actor_on_hit_callback" from old BHS maybe... don't know.
Better ask on gamma server, I created a thread there you can ask me and give me all mentioned files ;]
Cheers, thanks bvcx I'll post it up over there
Автор, нужны ли мне какие то сторонние аддоны к этому?
Вроде как нет, по крайней мере к версии 0.1
Еслиб были нужны я бы написал.
Works ok in EFP but you have to the old one and a couple of other mods as per instruction in EFP Discord. Need to manually edit some coordinate placements for other UI elements
Got this error when applying some meds
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_pcall_failed
[error]File : D:\a\xray-monolith\xray-monolith\src\xrServerEntities\script_engine.cpp
[error]Line : 262
[error]Description : fatal error
[error]Arguments :
1 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(310) : func_or_userdata
LUA error: ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script:310: attempt to perform arithmetic on a nil value
Check log for details
stack trace:
! [LUA] 0 : [C ] __add
! [LUA] 1 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(310) : func_or_userdata
! [LUA] 2 : [Lua] c:/anomaly/bin/..\gamedata\scripts\axr_main.script(271) : base_make_callback
! [LUA] 3 : [Lua] c:/anomaly/bin/..\gamedata\scripts\a_rax_wd.script(50) : make_callback
! [LUA] 4 : [Lua] c:/anomaly/bin/..\gamedata\scripts\_g.script(118) : SendScriptCallback
! [LUA] 5 : [Lua] c:/anomaly/bin/..\gamedata\scripts\bind_stalker_ext.script(179) :
! [LUA] 6 : [C ] eat
! [LUA] 7 : [Lua] ...omaly/bin/..\gamedata\scripts\enhanced_animations.script(305) : f
! [LUA] 8 : [Lua] ...aly/bin/..\gamedata\scripts\optimized_time_events.script(248) : functor_a
! [LUA] 9 : [Lua] c:/anomaly/bin/..\gamedata\scripts\_g.script(461) :
What did you change in script?
Line 310 does not have any arithmetic operations, not on this version or older one.
Expression : <no expression>
Function : CScriptEngine::lua_pcall_failed
File : D:\a\xray-monolith\xray-monolith\src\xrServerEntities\script_engine.cpp
Line : 262
Description : fatal error
Arguments :
1 : [Lua] ...nomaly-1.5.2\gamedata\scripts\zzz_player_injuries.script(461) : heal_random_limb
LUA error: ...nomaly-1.5.2\gamedata\scripts\zzz_player_injuries.script:461: attempt to compare number with nil
Check log for details
stack trace:
Словил вылет когда применил армейскую аптечку, играю с FDDA раньше не пользовался BHS
Will fix, sorry ;[
! [LUA] 0 : [C ] __lt
! [LUA] 1 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(461) : heal_random_limb
! [LUA] 2 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(440) : heal_on_update
! [LUA] 3 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(673) : func_or_userdata
! [LUA] 4 : [Lua] .../anomaly/anomaly/bin/..\gamedata\scripts\axr_main.script(271) : make_callback
! [LUA] 5 : [Lua] ...nloads/anomaly/anomaly/bin/..\gamedata\scripts\_g.script(118) : SendScriptCallback
! [LUA] 6 : [Lua] .../anomaly/bin/..\gamedata\scripts\bind_stalker_ext.script(104) : actor_on_update
! [LUA] 7 : [Lua] ...maly/anomaly/bin/..\gamedata\scripts\bind_stalker.script(310) :
! [SCRIPT ERROR]: ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script:461: attempt to compare number with nil
Time continual is:330060
Artefact props: hide_flesh35354: saved condition 1
Artefact props: hide_flesh35354: saved additional_inventory_weight 0.34299999475479
Artefact props: hide_flesh35354: saved satiety_restore_speed 0
Artefact props: hide_flesh35354: saved health_restore_speed 0
Artefact props: hide_flesh35354: saved power_restore_speed 0
Artefact props: hide_flesh35354: saved radiation_restore_speed 0
Artefact props: hide_flesh35354: saved bleeding_restore_speed 0
Artefact props: hide_flesh35354: saved immunity Telepatic 0
Artefact props: hide_flesh35354: saved immunity LightBurn 0.00031999999191612
Artefact props: hide_flesh35354: saved immunity Radiation 0.00023999999393709
Artefact props: hide_flesh35354: saved immunity FireWound 0.0027999999001622
Artefact props: hide_flesh35354: saved immunity Strike 0
Artefact props: hide_flesh35354: saved immunity Wound_2 1
Artefact props: hide_flesh35354: saved immunity Explosion 0.0024999999441206
Artefact props: hide_flesh35354: saved immunity Shock 0.032600000500679
Artefact props: hide_flesh35354: saved immunity Wound 0.0031999999191612
Artefact props: hide_flesh35354: saved immunity ChemicalBurn 0.0001300000003539
Artefact props: hide_flesh35354: saved immunity Burn 0.00031999999191612
Artefact props: hide_flesh35354: saved config value additional_inventory_weight 0.343
Artefact props: hide_flesh35354: saved config value satiety_restore_speed 0
Artefact props: hide_flesh35354: saved config value additional_inventory_weight2 0.343
Artefact props: hide_flesh35354: saved config value health_restore_speed 0
Artefact props: hide_flesh35354: saved config value power_restore_speed 0
Artefact props: hide_flesh35354: saved config value radiation_restore_speed 0
Artefact props: hide_flesh35354: saved config value bleeding_restore_speed 0
Artefact props: hide_flesh35354: saved config value shock_immunity 0.0326
Artefact props: hide_flesh35354: saved config value wound_immunity 0.0032
Artefact props: hide_flesh35354: saved config value fire_wound_immunity 0.0028
Artefact props: hide_flesh35354: saved config value chemical_burn_immunity 0.00013
Artefact props: hide_flesh35354: saved config value burn_immunity 0.00032
Artefact props: hide_flesh35354: saved config value strike_immunity 0
Artefact props: hide_flesh35354: saved config value radiation_immunity 0.00024
Artefact props: hide_flesh35354: saved config value telepatic_immunity 0
Artefact props: hide_flesh35354: saved config value explosion_immunity 0.0025
.....
FATAL ERROR
[error]Expression : <no expression>
[error]Function : CScriptEngine::lua_pcall_failed
[error]File : D:\a\xray-monolith\xray-monolith\src\xrServerEntities\script_engine.cpp
[error]Line : 262
[error]Description : fatal error
[error]Arguments :
1 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(461) : heal_random_limb
LUA error: ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script:461: attempt to compare number with nil
Check log for details
stack trace:
! [LUA] 0 : [C ] __lt
! [LUA] 1 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(461) : heal_random_limb
! [LUA] 2 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(440) : heal_on_update
! [LUA] 3 : [Lua] ...omaly/bin/..\gamedata\scripts\zzz_player_injuries.script(673) : func_or_userdata
! [LUA] 4 : [Lua] .../anomaly/anomaly/bin/..\gamedata\scripts\axr_main.script(271) : make_callback
! [LUA] 5 : [Lua] ...nloads/anomaly/anomaly/bin/..\gamedata\scripts\_g.script(118) : SendScriptCallback
! [LUA] 6 : [Lua] .../anomaly/bin/..\gamedata\scripts\bind_stalker_ext.script(104) : actor_on_update
! [LUA] 7 : [Lua] ...maly/anomaly/bin/..\gamedata\scripts\bind_stalker.script(310) :
Missed couple of things as always ;[
сделайте визуал как в bhs redux!!
Ладно, сделал. Ну кроме патронов.
After a few hours of playtime on EFP it is working flawlessly for now and completely compatible with dynahud.
Moddb.com
That's good to hear. What mods did you disable for it to work flawlessly?
Only disable EFP's BHS and make this one the same priority as that. Keep the BHS MCM keybind and ui rework mod, and the other patches enabled.
Как насчёт Moddb.com
Что насчет этого? ;]
Совместим ли Ваш новый BHS_reworked с Cold_System_0.6
Не вижу причин для несовместимостей, "speed.script" везде одинаковый, перезаписывай смело.
Автор, подскажите как мне опустить худ чуть ниже, чтобы он не перекрывал динамические новости от сталкеров? Спасибо вам за аддон и исправление, еще один отличный аддон от вас!
В МСМ опцию же специально такую добавил ;[
hello, I only see this -----> Yeoldecurmudgeon.eu(l08_yantar).jpg
I cannot see the silhouette.
I have disabled the grok's bhs but no matter how I set this mod in MCM, I cannot make the silhouette come on screen.
not using gamma or efp. Can you help me out here, please?
Some files are overwriting either configs or textures.