[PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w CoP

Regulamin forum
Dział "Tworzenie Modyfikacji" służy do zadawania pytań odnośnie tworzenia modyfikacji, edytowania plików gry, oraz pisania tzw. tutoriali, czyli poradników odnośnie modyfikowania gry.
Nie zadajemy tutaj pytań odnośnie modyfikacji gotowych (nie dyskutujemy o nich!), prócz prób ich połączenia etc.


Przy cytowaniu plików *.LTX stosować tag [SYNTAX="ini"], przy cytowaniu plików *.script [SYNTAX="lua"] a przy cytowaniu plików *.xml - [SYNTAX="xml"].

[PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w CoP

Postprzez Marcus_Polonus w 12 Maj 2017, 20:18

Cześć wszystkim,

Piszę swojego moda, dodałem całą gamę nowych ciuchów, porobiłem sobie nowe sekcję w damages.ltx z ilością pancerzy i postanowiłem wybalansować pancerze dla NPC'ów tak, by mieli taką samą odporność, co nasza postać z tym samym kombinezonem i tu coś dziwnego odkryłem.

Po pierwsze - jak to w ogóle działa?
Jak działa wartość pancerza i jak ona oddziałowuje na zadawane obrażenia i czy wartość ap jest tego odwrotnością, czy działa jeszcze inaczej?

Jaki jest tego wzór?
Np.:
:

x*(y-z)=ostateczne obrażenia

Przy czym:
x - obrażenia broni * obrażenia amunicji,
y - pancerz,
z - penetracja amunicji.
(Nie biorę pod uwagę zmiennych, jak część ciała trafienia, bo to jest zwykły iloczyn)


Czy może jest tego inny wzór? Jest ktoś kto to znalazł w skryptach?

Po drugie:
Przyjąłem np., że kombinezon "Świt" ma wartość pancerza 0.1, a dla porównania SEVA - 0.175.
Spotkałem dwójkę botów w tych ciuchach i chciałem zobaczyć, czy różnica będzie zauważalna. Podkreślę, że używam zmienionych wartości otrzymania obrażeń od trafienia w konkretną część ciała - w praktyce - strzał w klatę i koleś nieżyje.

Użyłem do testu automatu z obrażeniami 0.55 i penetracją amunicji 0.4:
- koleś w "Świcie" - jeden strzał w klatę, ewentualnie drugi na dobicie,
- koleś w SEVIE - PIEĆ strzałów w klatę!

Jak to możliwe?

Poza dość niewielką różnicą w wartości pancerza, inna odmienność to wartość hit_fraction_npc, przy czym:
- "Świt" = 0.6,
- SEVA = 0.2

Do czego ten parametr służy?


Ktoś ma jakieś propozycje?
Image
Marcus_Polonus
Tropiciel

Posty: 276
Dołączenie: 18 Maj 2013, 22:36
Ostatnio był: 25 Lip 2023, 22:10
Miejscowość: Fabryka nad Jantarem
Frakcja: Powinność
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 36

Reklamy Google

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez Diegtiarov w 12 Maj 2017, 23:15

(obrażenia broni * mnożnik obrażeń amunicji) * (hit fraction + penetracja pancerza) * mnożnik obrażeń danej części ciała.

(hit fraction + penetracja pancerza) nie może być mniejsza od 0 ani większa od 1 - jeśli przekroczy zakres to zaokrągli do progu.


Kolejność dwóch ostatnich i forma zapisu przedostatniego czynnika do dyskusji.

P.S. Polecam kręcić się tylko dookoła hit_fraction - grzebanie w częściach ciała i to więcej pier******* się niż efektów.
P.S.S. wound_protection odpowiada z ochronę przed krwawieniem, nie pancerz

Za ten post Diegtiarov otrzymał następujące punkty reputacji:
Positive Marcus_Polonus.
Awatar użytkownika
Diegtiarov
Stalker

Posty: 99
Dołączenie: 30 Maj 2010, 16:36
Ostatnio był: 23 Sie 2020, 16:53
Frakcja: Samotnicy
Ulubiona broń: Vintar BC
Kozaki: 16

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez Marcus_Polonus w 09 Lis 2017, 18:48

Wiem, że wound_protection to krwawienie i obrażenia od walki wręcz - napisane jest w configach. Nie jestem, aż tak zielony w modowaniu :D


Dzięki za wzór - w końcu można kombinować. Zobaczę, co da się z tym zrobić.


A czy jest jakiś odpowiednik tego hit_fraction dla actor'a, czy można dla niego edytować tylko fire_wound_protection?

EDIT:

Ok, potestowałem i wnioski są dość dziwne:
Docelowym efektym ma być zwiększenie znaczenia penetracji pancerza a la CS.

Obiektem testu byli najemnicy z zakładów utylizacji.

W damages.ltx dla wszystkich sekcji [stalker_któryś] ustawiłem body_damage_1 oraz head_damage_1, by nie mieli "takiej" ochrony, zakładając, że te parametry odpowiadają za fire_wound_protection, który również założyłem, że nie ma nic wspólnego z penetracją.

Dla obu typów najemników, stalker_merc_2 i stalker_merc_4, ustawiłem hit_fraction kolejno na 0.675 oraz 0.05, czyli żeby zadać maksymalne obrażenia najemnikowi w egzo (merc_4), potrzebna jest amunicja z minimum k_ap = 0.95.

Strzelałem do najemnika w egzo z broni o obrażeniach 0.4 i penetacji 0.0.

Z powyższego wzoru (zakładając, że trafiałem w korpus/ramię przy vanillowych ustawieniach w m_stalker.ltx) wychodzi coś takiego:

0.4*1*(0.05+0)*1=0.02!

Czyli, żeby kolesia w egzo zabić z takiej broni, trzeba trafić go 50 razy!

Tymczasem, w grze wystarczyło trafić od 3 do 5 razy (2 - 5 dla zwykłego najemnika).

Gdzie jest pies pogrzebany? Ten wzorek jest zbyt ogólny i stanowi chyba tylko wierzchołek góry lodowej tej mechaniki.

EDIT 2:
Czy da się zrobić taki mechanizm, że wraz z odległością od celu spadają obrażenia? W amunicji jest sekcja dist, ale ona chyba się tyczy maksymalnej donośności kuli, a nie obrażeń.

Przy okazji, dlaczego w oryginalnych configach, broń ma podane obrażenia na cztery różne sposoby, np.:
Kod: Zaznacz wszystko
hit_power      = 0.50, 0.55, 0.60, 0.65


EDIT 3:

Któs u konkurencji się wypowiadał na temat hit_fraction i z tego, co zrozumialem działa to ZUPEŁNIE inaczej.

Ponoć hit_fraction to jest ilość życia, którą ZAWSZE tracisz po oberwaniu tzn. nawet jeśli kula się nie przebija, o czym za chwilę.
W damages.ltx sekcje z kościami to nie są odporności iloczynowe tylko to ma być próg, za którym broń będzie zadawać obrażenia z pominięciem hit_fraction, CZYLI:

Załóżmy, że mamy:
- broń, co uderza 0.5 (amunicja nie zmieni obrażeń, czyli dodatkowe 1.0),
- penetracji w amunicji 0.5,
- mnożniki obrażeń dla części ciała równe 1.0
- hit_fraction ustawione na 0.1.

Załóżmy, że postrzelimy NPCa, który ma kamizelki (właśnie w damages.ltx) 0.4 dla wszystkich kości.
Ponieważ penetracja k_ap jest większa niż 0.4 wzór można określć jako:

0.5*1.0*1.0 = 0.5

A teraz drugi cel, czyli NPC, co ma więcej niż 0.5 kamizelki.

0.5*1.0*1.0*0.1=0.05

Teraz wnioski - czy mam rację?
Image
Marcus_Polonus
Tropiciel

Posty: 276
Dołączenie: 18 Maj 2013, 22:36
Ostatnio był: 25 Lip 2023, 22:10
Miejscowość: Fabryka nad Jantarem
Frakcja: Powinność
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 36

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez n1ck w 18 Lis 2017, 20:20

Ustawiłem hit_fraction 0.0 i faktycznie jeśli k_ap jest niższe niż pewna wartość (co ciekawe niekoniecznie równa temu co w body_damage, a coś około i wyżej) to nie będzie żadnych obrażeń.

A czy wiesz może co oznacza druga liczba przy częściach ciała w body_damage?
Awatar użytkownika
n1ck
Tropiciel

Posty: 217
Dołączenie: 05 Lis 2011, 09:06
Ostatnio był: 16 Gru 2019, 15:04
Frakcja: Czyste Niebo
Ulubiona broń: Kora-919
Kozaki: 41

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez Diegtiarov w 19 Lis 2017, 14:33

Z tego wszystkiego wnioskując, to zapewne:

część_ciała = mnożnik_obrażeń, ilość_pancerza



Ostatnią częścią układanki pozostaje pytanie, w którym momencie to pierwsze jest stosowane... Nie będę wróżył z fusów kolejny raz. ;)

Za ten post Diegtiarov otrzymał następujące punkty reputacji:
Positive Marcus_Polonus.
Awatar użytkownika
Diegtiarov
Stalker

Posty: 99
Dołączenie: 30 Maj 2010, 16:36
Ostatnio był: 23 Sie 2020, 16:53
Frakcja: Samotnicy
Ulubiona broń: Vintar BC
Kozaki: 16

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez Marcus_Polonus w 19 Lis 2017, 23:46

Nie mam bladego pojęcia po co jest ta druga liczba w damages.ltx. Jakby tak szerzej spojrzeć to w każdym Stalku ta liczba jest taka sama (jeśli się nie mylę).

W najnowszym STCoPie ludzie Gaz1ka coś mocno poprzerabiali w statystykach broni i ich liczby są przynajmniej niekonwencjonalne. Dodali też jakieś komentarze w damages.ltx. Macie tutaj wycinek:
Kod: Zaznacz wszystko
;    Mod: ARS
; Author: steelrat
;   Base: DZM by Cyclone-B
;-------------------------------------------------------------------------------

; Броня класс "0" (без брони)
;-------------------------------------------------------------------------------
[body_armor_0]
bip01_pelvis                  = 1.0,   0.00   ;-->> от таза(включительно) до пояса (область ЖВО) (номер кости 2)
bip01_spine                     = 1.0,   0.00   ;-->> живот, от солнечн. сплетения до пояса(область ЖВО) (номер кости 11)
bip01_spine1                  = 1.0,   0.00   ;-->> середина туловища, а именно солнечн. сплетение(область ЖВО) (номер кости 12)
bip01_spine2                  = 1.0,   0.00   ;-->> верхняя часть туловища,от солнечн. сплетения до шеи(область ЖВО) (номер кости 13)

bip01_l_clavicle               = 1.0,   0.00   ;-->> левая ключица и область плечевого сустава (область ЖВО) (номер кости 20)
bip01_l_upperarm               = 1.0,   0.00   ;-->> левая плечевая кость(от сустава до сустава) (номер кости 21)
bip01_l_forearm                  = 1.0,   0.00   ;-->> левое предплечье (номер кости 22)
bip01_l_hand                  = 1.0,   0.00   ;-->> левая кисть (номер кости 23)

bip01_r_clavicle               = 1.0,   0.00   ;-->> правая ключица и область плечевого сустава (область ЖВО) (номер кости 33)
bip01_r_upperarm               = 1.0,   0.00   ;-->> правая плечевая кость(от сустава до сустава) (номер кости 34)
bip01_r_forearm                  = 1.0,   0.00   ;-->> правое предплечье (номер кости 35)
bip01_r_hand                  = 1.0,   0.00   ;-->> правая кисть (номер кости 36)

bip01_l_thigh                  = 1.0,   0.00   ;-->> левое бедро (номер кости 3)
bip01_l_calf                  = 1.0,   0.00   ;-->> левая голень (номер кости 4)
bip01_l_foot                  = 1.0,   0.00   ;-->> левая стопа (номер кости 5)

bip01_r_thigh                  = 1.0,   0.00   ;-->> правое бедро (номер кости 7)
bip01_r_calf                  = 1.0,   0.00   ;-->> правая голень (номер кости 8)
bip01_r_foot                  = 1.0,   0.00   ;-->> правая стопа (номер кости 9)


Nie znam rosyjskiego, a wiem już, że Google nie są już tak pomocne w takich sprawach rzekłbym specjalistycznych :D
Image
Marcus_Polonus
Tropiciel

Posty: 276
Dołączenie: 18 Maj 2013, 22:36
Ostatnio był: 25 Lip 2023, 22:10
Miejscowość: Fabryka nad Jantarem
Frakcja: Powinność
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 36

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez n1ck w 20 Lis 2017, 12:22

Poproszę kolegę żeby przetłumaczył i wrócę
Awatar użytkownika
n1ck
Tropiciel

Posty: 217
Dołączenie: 05 Lis 2011, 09:06
Ostatnio był: 16 Gru 2019, 15:04
Frakcja: Czyste Niebo
Ulubiona broń: Kora-919
Kozaki: 41

Re: [PYTANIE] "hit_fraction_npc", czyli mechanika pancerzy w

Postprzez Marcus_Polonus w 10 Mar 2018, 21:53

Google jednak tutaj wystarczyły.

Te komentarze mają pomóc określić o jaką kość modelu chodzi: płuca, głowa, ręce, konkretne palce itd. Ruscy nie znają tak dobrze angielskiego więc sobie za wczasu przetłumaczyli, tak to widzę. :P


EDIT:

Dorwałem się w końcu do plików z Czystego Nieba.
Każdy, kto w to grał pamięta bandytów w pancernych kurtkach. :E Ale na pewno też pamięta fakt, że z amunicją AP nie stanowili już takiego problemu.

I tutaj mądrości z configów są takie, że bandyci w płaszczach mają w damages.ltx:
- hit_fraction = 0.2,
- a przy kościach (body_damage) = 0.1.

Żeby było ciekawiej pamiętam, że z Abakana bez amunicji AP trzeba było się naprawdę nastrzelać i tutaj z pomocą przychodzi weapons.ltx:
- dla wersji 5.45 fmj k_ap = 0.6,
- dla wersji 5.45 ap k_ap = 0.8.



Po bardzo pobieżnym zbadaniu sprawy wymyśliłem taki mechanizm:

hit_fraction + k_ap < 1.0 wtedy hit * hit_fraction
hit = obrażenia broni*amunicji*mnożnik w m_stalker.ltx

hit_fraction + k_ap >= 1.0 wtedy hit * body_damage

Wtedy obrażenia w Czystym Niebie się zgadzają z rzeczywistością - obrażenia z AKS-74 jakieś 0.32 * 0.2 = duuużo pestek :D , ale już z AP 0.32 * 0.7(ammo) * 0.1 i bandyta leci na 4/5 kul.

Obecnie moja gamedata się zbiesiła, w dodatku jest dużo do robienia na studiach więc nie mam za bardzo chwilki by to zbadać bardziej szczegółowo.

EDIT 2

Pogrzebałem w internecie i znalazłem coś takiego na forum TeamEpic:
http://forum.epicstalker.com/viewtopic.php?f=23&t=80

Hello, we can't talk much because of the nda, but here is a little info we know about k_ap in cop

(im transferring the words of one of our programmer - it was translated to eng from rus)

the point is that in input
kAp_factor = (kAp - armor) / kAp
hit_power *= kAp_factor

so how much y wouldnt try to increase kAp - damage wont increase
armor - or armor of npc/monster or ShootFactor of material(you set it in sdk material editor)
formulas above for case if bullet broke armor, so kAp > armor
so damage increases but not very high
its possible to set to formual different values

armor = 1
kAp = 1.1
kAp_factor = (1.1 - 1) / 1.1 = ~0.1

kAp = 2
kAp_factor = (2 - 1) / 2 = 0.5

kAp = 10
kAp_factor = (10 - 1) / 10 = 0.9

but more then 10 it changes to so much
so kAp = 1.1 then damage decreased in 10 times
kAp = 2 then damage decreased in 2 times
kAp = 10 then damage almost not decreased


that's it, not sure if it's helpful, I hope it is.

--

Kind regards,

Zoltan Munkacsi


Zacytowałem odpowiedź jednego z kolesi od Lost Alphy, który wytłumaczył, jak działa k_ap w Zewie.
Czy ktoś coś z tego rozumie, bo mi już się tak pomieszało, że już nie wiem, co myśleć o tym wszystkim :E


EDIT 3:


Moje wątpliwości zostały rozwiane dzięki moderom z EpicStalker, a tutaj odsyłam do oryginalnego tematu oraz gotowej "instrukcji":

http://forum.epicstalker.com/viewtopic. ... 8075#p8075

viewtopic.php?f=78&t=27503&p=346966#p346966
Image
Marcus_Polonus
Tropiciel

Posty: 276
Dołączenie: 18 Maj 2013, 22:36
Ostatnio był: 25 Lip 2023, 22:10
Miejscowość: Fabryka nad Jantarem
Frakcja: Powinność
Ulubiona broń: Sniper Rifle SVDm2
Kozaki: 36


Powróć do Zew Prypeci

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 2 gości