00:34:51 27 August 2017 |
|
nabsltd
(Novice) On forum: 08/26/2017
 Message edited by: nabsltd 08/27/2017 0:36:47
Messages: 5
|
Damage and skill levels
Let me prefix this by saying I have SoC version 1.0006 from Good Old Games, so if that acts radically different from other versions, then let me know, and ignore the rest of this post.
After doing some investigation into how damage is determined (especially from bullet-like objects), the X-Ray source code led me to a discovery that damage doesn't seem to work like I have read on countless web pages.
First, the "hit_power" value is read backwards from what most people think it is. This means "hit_power = 0.10, 0.20, 0.30, 0.40" gives 0.10 on "Master", 0.20 on "Veteran", 0.30 on "Stalker" and 0.40 on "Novice". But, this only seems to apply to The Marked One (the actor). It appears that the damage done by bullets from NPCs is always the first (i.e., the "Master" ) value from the list.
A quick mod of completely vanilla SoC shows this. Apply the following to the appropriate weapon files:
[wpn_ak74u]
hit_power = 0.01, 1.40, 1.60, 1.80
[wpn_pm]
hit_power = 0.30, 0.80, 1.30, 1.80
Then, start a new game, grab your PM pistol from Wolf, and go slaughter the army post south of the rookie village. It's harder on "Master" than on "Novice", because you're doing less damage, but they are doing almost nothing to you, so it doesn't matter. After that, grab a dropped AK-74U, change the skill level to "Master" (if it isn't already) and go try to take out the army post at the bridge. It's the definition of "bullet sponge". Switch back to any other skill level and one-shot the bad guys while they still can't damage you.
And, before anybody brings up "disappearing bullets", I also tried with the following lines.
[actor]
hit_probability_gd_novice = 1
hit_probability_gd_stalker = 1
hit_probability_gd_veteran = 1
hit_probability_gd_master = 1
[bullet_manager]
hit_probability_max_dist = 1000
What this means is that raising the difficulty level just reduces the player's damage to match the NPC's, which is exactly how it seems to play, but is completely the opposite of what I have read, about how playing on Master makes everything (NPCs and the player) die quicker. Instead, I seem to die about the same as before, but it takes more to kill enemies.
So, is my game broken in some way, or is this the way it is with patch 1.0006? |
04:36:52 27 August 2017 |
|
nabsltd
(Novice) On forum: 08/26/2017
Messages: 5
|
---QUOTATION--- Master makes you do less damage, take more damage, and has no effect on player or NPC accuracy. ---END QUOTATION---
By "take more damage", I assume you mean because of the change in actor_immunities_gd_*? In the default game, I can't find anything that increases damage (as opposed to reducing immunity) based on the skill level chosen. Maybe with mods, you could spawn stronger enemies (like dog_strong instead of dog_normal) more often based on the skill level, but I don't see the vanilla game doing that.
Has anybody used LUA scripts to modify damage done to the player based on chosen skill level? I know that the X-Ray engine creates instances of LUA classes for every creature spawned, and there are hook functions available, but there's not a lot of documentation. If somebody else has already invented the wheel, it would be much easier to build on that work.
---QUOTATION--- People have just been parroting misinformation about difficulty since the dawn of time. ---END QUOTATION---
As for that, I'm also finding that the "hit_probability_gd_*" values seem to do nothing. Setting them and "hit_probability_max_dist" all to zero (and changing nothing else from the default) results in normal damage from NPC bullets.
I'm a little surprised, as the X-Ray source shows it should result in a near-miss sound and no damage. |
19:47:15 30 August 2017 |
|
nabsltd
(Novice) On forum: 08/26/2017
 Message edited by: nabsltd 08/30/2017 19:52:31
Messages: 5
|
---QUOTATION--- (they'll still miss quite a lot, more than you ever will once you learn to shoot reliably with each weapon). ---END QUOTATION---
Part of this is because of a bug in the dispersion calculation for stalkers (i.e., human enemies).
The test for whether the NPC is aiming is reversed in the source code, so the comments I added to the following from m_stalker.ltx are what really applies:
disp_walk_stand = 8 ;16 ; walking
disp_walk_crouch = 4 ;3 ; crouching and moving
disp_run_stand = 14 ;12;8 ; running
disp_run_crouch = 6 ;4 ; crouching and moving fast
disp_stand_stand = 4 ; standing, using iron sights/scope
disp_stand_crouch = 2 ; crouched, using iron sights/scope
disp_stand_stand_zoom = 1.5 ;1 ; standing
disp_stand_crouch_zoom = 1.25;1 ; crouched The last 4 are the problem ones, and they really hurt. The highest ranked stalker when walking has the same default dispersion as the player does when standing still in vanilla SoC, and when standing still, that stalker has 1/6 the dispersion. Even an average stalker has lower dispersion when standing (0.75) than the player does (0.8).
And, although stalkers do miss a lot, overall they hit much more often than the player when in a true firefight. This is because they are telepathic aimbots with infinite ammo, so if one knows where you are, they all do, and can instantly turn exactly to aim directly at you, and keep firing to keep you in cover.
One-on-one, the player has a huge advantage, but if there is a crowd of enemies, it can get ugly real fast. I'm trying to tweak some of their AI that is controlled by files that can be easily modded so that they play a bit more like a real player does (conserve ammo, take more aimed shots, etc.). |
21:34:19 30 August 2017 |
|
NatVac
Senior Resident
On forum: 06/15/2007
 Message edited by: NatVac 09/01/2017 2:10:41
Messages: 4286
|
---QUOTATION--- People have just been parroting misinformation about difficulty since the dawn of time. ---END QUOTATION---
I was one, in one post, but I corrected it in my next post in the "Vanilla Bullet Sponges" thread linked below, page 1.
---QUOTATION--- Weapon hit probabilities for anything besides Novice are loaded but completely ignored. ---END QUOTATION---
This is not so, from my experience, as you will see. Edit: See my follow-up post.
TKGP, nabsltd, I looked at an excerpt of the source posted on Pastebin, and reached quite different conclusions than you guys, which I was able to use the debug info in the ZRP to verify. See page 2 here:
---QUOTATION--- "Vanilla Bullet Sponges? Well, Yes and No"
https://www.gsc-game.com/main.php?t=community&s=forums&s_game_type=xr&thm_id=23742&page=2&sec_id=11 ---END QUOTATION---
You can completely control how often the NPCs can shoot your hitbox without touching any NPC disp_* values, from never to always.
And it is all experimentally verifiable.
Edit: The part that is germane to this discussion is the effects of hit_probability_max_dist in config\weapons.ltx and the novice hit_probability_gd_* value in config\defines.ltx as they completely control NPC accuracy against the player.
Note: edited to remove "and config\creatures\actor.ltx" per TKGP's following post as it appears the player difficulty settings don't affect the NPC probability of hitting the player. See my follow-up post. |
|