Decane / SRP

Sky Reclamation Project for S.T.A.L.K.E.R.: Clear Sky
http://www.moddb.com/mods/srp
126 stars 21 forks source link

7.62x54 mess. #12

Open SurDno opened 6 years ago

SurDno commented 6 years ago

7.62x54 is an ammo type used for sniper rifles and machine guns. Due to some strange changes between original game and priquel, there are some strange issues happening.

In SoC it had three variants: _7 62_7 17.62x54 7H1. Normal type. _7 62_7 147.62x54 7H14. Sniper type. _7 62_7.62x54 BP. Piercing type.

However, after Shadow of Chernobyl was released, GSC understood that they made a mistake and 7H1 is sniper ammo type too, so they decide abandon current 7H1 and just rename 7H14 to 7H1. The proof for that lies in text files: <string id="ammo-7.62x54-7h14"> <text>7,62x54 mm 7H1</text>

Therefore, in CS it again had three variants:

_7 62_7 147.62x54 7H1. Sniper type. _7 62_7 17.62x54 PP. Machinegun type. _7 62_7.62x54 BP. Piercing type.

All that mess causes lots of bugs and other strange things:

Decane commented 5 years ago

In CS, there are four distinct variants of 7.62x54 ammo, tabulated below:

ammo_7.62x54_7h1 ammo_7.62x54_7h14 ammo_7.62x54_ap ammo_pkm_100
visual ammo_762x54_7h1.ogf ammo_762x54_7h14.ogf ammo_762x54_ap.ogf ammo_762x54_7h1.ogf
description ammo-7.62x54-7h14_descr ammo-7.62x54-7h14_descr ammo-7.62x54-ap_descr ammo-7.62x54-ap_descr
cost 450 1000 600 1000
box_size 30 30 30 100
inv_name ammo-7.62x54-7h14 ammo-7.62x54-7h14 ammo-7.62x54-ap ammo-7.62x54-ap_s
inv_name_short ammo-7.62x54-7h14_s ammo-7.62x54-7h14_s ammo-7.62x54-ap_s ammo-7.62x54-ap_s
inv_weight .23 .23 .23 1.3
invgrid* (x, y) 17, 9 17, 9 15, 10 15, 9
explosive? off on on false

Notice that none of these have inv_name ammo-7.62x54-7h1 and description ammo-7.62x54-7h1_descr. Instead, both ammo_7.62x54_7h14 and ammo_7.62x54_7h1 use the following:

<string id="ammo-7.62x54-7h14">
    <text>7.62x54 mm 7N1 rounds</text>
</string>
<string id="ammo-7.62x54-7h14_s">
    <text>7.62 7N1</text>
</string>
<string id="ammo-7.62x54-7h14_descr">
    <text>7.62-caliber high precision armor-piercing sniper round. Used with the SVDm 2 and SVUmk2 sniper rifles.</text>
</string>

In the SRP, I appear to have naively "fixed" the name and description of ammo_7.62x54_7h1 (the 2nd column in the table) to point to the following new XML strings which I added:

<string id="ammo-7.62x54-7h1">
    <text>7.62x54 mm 7N1 rounds</text>
</string>
<string id="ammo-7.62x54-7h1_s">
    <text>7.62x54 7N1</text>
</string>
<string id="ammo-7.62x54-7h1_descr">
    <text>A standard 7.62-caliber sniper round for the SVDm 2 and SVUmk2 sniper rifles.</text>
</string>

This "fix" was added way before I ever considered that the SRP might be used with languages other than English, so I only added the XML string definitions to eng/st_items_weapons.xml, which explains the absence of translated in-game strings in the Russian localization of the game.

The only effective changes from this fix were the slight change in description for ammo_7.62x54_7h1 (which constitutes the majority of 7.62x54 rounds in the game) and the regression already noted for non-English localizations.

Decane commented 5 years ago

ammo_7.62x54_7h14 is mostly absent from the vanilla game, but appears:

Decane commented 5 years ago

The SRP also "fixes" ammo-7.62x54-7h14_s from 7.62 7N1 to 7.62x54 7N14, and makes the Military Warehouses fetch task target be a unique variety of 7N1, not 7N14.

So, to sum up the 7N1 vs 7N14 mess:

SurDno commented 5 years ago

Thanks for your reply. I think the only issue around here is the fact that these ammos can be bought — that makes the quest item not unique (usually they get unique versions of same items, just like that CS quest Stone Flower).

I don’t understand why the regression is caused though. If this item is needed for a quest, it should have a name and description, right? Then why does the game use xml values?

Decane commented 5 years ago

The SRP equivalent table of the vanilla one I posted above (changes in bold-face):

ammo_7.62x54_7h1 ammo_7.62x54_7h14 ammo_7.62x54_ap ammo_pkm_100
visual ammo_762x54_7h1.ogf ammo_762x54_7h14.ogf ammo_762x54_ap.ogf ammo_pkm.ogf
description ammo-7.62x54-7h1_descr ammo-7.62x54-7h14_descr ammo-7.62x54-ap_descr ammo-7.62x54-ap_descr
cost 450 1000 600 1000
box_size 30 30 30 100
inv_name ammo-7.62x54-7h1 ammo-7.62x54-7h14 ammo-7.62x54-ap ammo-7.62x54-ap
inv_name_short ammo-7.62x54-7h1_s ammo-7.62x54-7h14_s ammo-7.62x54-ap_s ammo-7.62x54-ap_s
inv_weight .23 .23 .23 1.3
invgrid* (x, y) 15, 9 (7N1 icon) 17, 9 (7N14 icon) 15, 10 (AP icon) 15, 29 (CoP icon)
explosive? off on on false

@SurDno

I don’t understand why the regression is caused though. If this item is needed for a quest, it should have a name and description, right? Then why does the game use xml values?

The regression is caused by this:

The SRP also (...) makes the Military Warehouses fetch task target be a unique variety of 7N1, not 7N14.

Since the SRP changes the description, inventory name, and short inventory name of 7N1 and only provides translated strings for the English translation thereof, changing the quest item from 7N14 (which has translated strings for all languages) to 7N1 made all other localizations display XML string IDs for it.

Decane commented 5 years ago

7.62x54 mess fixed in commit 2d27709. As of this commit, the ammo table for the SRP looks like this:

ammo_7.62x54_7h1 ammo_7.62x54_7h14 ammo_7.62x54_ap ammo_pkm_100
visual ammo_762x54_7h1.ogf ammo_762x54_7h14.ogf ammo_762x54_ap.ogf ammo_pkm.ogf
description ammo-7.62x54-7h1_descr ammo-7.62x54-7h14_descr ammo-7.62x54-ap_descr ammo-pkm_descr
cost 450 1000 600 1000
box_size 30 30 30 100
inv_name ammo-7.62x54-7h1 ammo-7.62x54-7h14 ammo-7.62x54-ap ammo-pkm
inv_name_short ammo-7.62x54-7h1_s ammo-7.62x54-7h14_s ammo-7.62x54-ap_s ammo-pkm_s
inv_weight .23 .23 .23 1.3
invgrid* (x, y) 15, 9 (7N1 icon) 17, 9 (7N14 icon) 15, 10 (AP icon) 15, 29 (CoP icon)
explosive? off on on false

The names and descriptions are:

<string id="ammo-7.62x54-7h1">
    <text>7.62x54 mm 7N1 rounds</text>
</string>
<string id="ammo-7.62x54-7h1_s">
    <text>7.62x54 7N1</text>
</string>
<string id="ammo-7.62x54-7h1_descr">
    <text>A standard 7.62-caliber sniper round for the SVDm 2 and SVUmk2 sniper rifles.</text>
</string>
<string id="ammo-7.62x54-7h14">
    <text>7.62x54 mm 7N14 rounds</text>
</string>
<string id="ammo-7.62x54-7h14_s">
    <text>7.62x54 7N14</text>
</string>
<string id="ammo-7.62x54-7h14_descr">
    <text>A 7.62-caliber high precision armor-piercing sniper round. Used with the SVDm 2 and SVUmk2 sniper rifles.</text>
</string>
<string id="ammo-7.62x54-ap">
    <text>7.62x54 mm AP rounds</text>
</string>
<string id="ammo-7.62x54-ap_s">
    <text>7.62x54 AP</text>
</string>
<string id="ammo-7.62x54-ap_descr">
    <text>A 7.62-caliber armor-piercing sniper round. Used with the SVDm 2 and SVUmk2 sniper rifles.</text>
</string>
<string id="ammo-pkm">
    <text>7.62x54 mm PP rounds</text>
</string>
<string id="ammo-pkm_s">
    <text>7.62x54 PP</text>
</string>
<string id="ammo-pkm_descr">
    <text>A cheap 7.62-caliber machine gun round. Its design makes it unfit for use in sniper rifles, so it is used only with the RP-74 machine gun.</text>
</string>

After fixing the Military Warehouses fetch task ammo type regression, this leaves the following in-game differences in the SRP relative to vanilla:

I may reverse the ammo_7.62x54_7h1 description change later, as AP stat-wise the 7N1 is identical to 7N14. A better change that aligns more closely with vanilla would be to add the word "explosive" to the description of ammo_7.62x54_7h14 and revert 7N1 to its vanilla description. Then ammo_7.62x54_7h1 and ammo_7.62x54_7h14 would differ only minimally from their vanilla counterparts.

SurDno commented 4 years ago

ammo_7.62x54_7h14 is mostly absent from the vanilla game, but appears:

  • as the requested item that spawns on a stalker's corpse in the Military Warehouses 'return item' task, "Find the missing stalker's loot"
  • as an inventory item purchasable from the Red Forest mine trader

image And, apparently, in Agroprom Underground. Three places then.

Thumba-umba commented 4 years ago

Why is this even a problem? While both 7N1 SN and 7N14 SNB are, in fact, intended to be used in precision rifles, they are by no means interchangeable. 7N1 is lead-core, while 7N14 has a hardened steel penetrator in front, like the M855, which makes it if not an AP, then at least definitely an increased penetration round (PP in soviet/russian parlance). The only issue i can see is that they have both 7N26 BP and 7N13 PP rounds. Now these two are really similar (if not exactly the same) in construction, despite being advertised as having different penetration ability. But still, they could also be used as just two versions of AP round - 7N13 in belts for the machinegun and 7N26 in boxes for rifles. But with same stats. So i see no issue in using all 4 ammo types at the same time. P.S. (the real funny part it that both the PP and BP rounds are entirely russian designs, and ukrainian army would have definitely had B-32 armour-piercing-incendiary rounds instead. But that's a whole different can of worms on its own).

SurDno commented 4 years ago

The only issue there is the fact that devs clearly intended to remove 7N14 from the game, just the way they did (or almost did) with AP, in order to reduce item bloat (hello Anomaly!). There are a handful of things suggesting this was the case:

My assumption is that devs originally had the idea to have the ammo type in game but later decided to abandoned it. SRP having it restored is deviating from the idea of following the original devs' intentions as close as possible.

Decane commented 4 years ago

ammo_7.62x54_7h14 is mostly absent from the vanilla game, but appears:

  • as the requested item that spawns on a stalker's corpse in the Military Warehouses 'return item' task, "Find the missing stalker's loot"
  • as an inventory item purchasable from the Red Forest mine trader

And, apparently, in Agroprom Underground. Three places then.

There is a fourth: the Army Warehouses armory.

Decane commented 4 years ago

I think it's worth mentioning that ammo_7.62x54_ap is identical to ammo_7.62x54_7h14 in all attributes except cost and cosmetic features (model/icon/name/description) and appears in similarly few places in vanilla:

Since none of the Freedom blockpost guards carry a sniper rifle, I removed ammo_7.62x54_ap from them in the SRP, leaving it in only one location.