[Tutorial] Przywracanie wyciętych mutantów

[Tutorial] Przywracanie wyciętych mutantów

Postprzez PMG w 09 Cze 2015, 21:46

Witajcie. Zebrałem się dziś do napisania kolejnego tutka, może trochę przekombinowanego, ale mam nadzieję, że ktoś znajdzie w nim pomoc. Ogólnie zauważyłem, że niektórzy gracze poszukują modów dodających nowe mutanty - oczywiście tych modów jest sporo, ale w większości z nich nowe mutanty to jeden z setek elementów, które wchodzą w skład moda. Istnieje jednak bardzo prosty sposób, aby zrobić to samemu. Mam jednak świadomość, że jest on prosty dla kogoś, kto z moddingiem miał już do czynienia, dlatego jeżeli pojawiają się błędy, problemy lub niejasności - proszę pytać.

W Zewie Prypeci twórcy przywrócili dwa mutanty: burera i chimerę, ale wiadomo, że "zapomnianych" mutantów było trochę więcej. Wbrew pozorom przywrócenie pozostałych wyciętych stworów, które ostały się w plikach pierwszego S.T.A.L.K.E.R.-a jest zadaniem stosunkowo łatwym, oczywiście jeżeli zna się podstawową strukturę folderów i plików Cienia i Zewu.

Naszym zadaniem jest przywrócenie do Zewu Prypeci trzech mutantów: cywilnych zombi (bez broni), połamańców (aka "izłomów") oraz kotów.

Uwaga! Radzę robić kopie wszystkich oryginalnych plików, zanim je edytujemy. Zawsze może coś pójść nie tak, a oryginalny wygląd pliku czasem ciężko odzyskać...

Pliki
Potrzebne nam będą pliki z dwóch gier: Cień Czarnobyla i Zew Prypeci, dlatego najpierw wypakujmy obie ich gamedaty. Zajmie to sporo miejsca, ale niektóre z niepotrzebnych, dużo ważących folderów (np. levels) możemy na bieżąco usuwać.

Z Cienia są to:
• Modele:
- zombi_1.ogf (meshes/monsters/zombi)
- zombi_2.ogf (meshes/monsters/zombi)
- zombi_trup.ogf (meshes/monsters/zombi)
- zombi_trup_2.ogf (meshes/monsters/zombi)
- zombi_1_ghost.ogf (meshes/monsters/zombi)
- izlom.ogf (meshes/monsters/zombi)
- cat.ogf (meshes/monsters/cat)

• Animacje:
- zombi_animation (meshes/monsters)

• Pliki konfiguracyjne (configi):
- m_zombie (config/creatures)
- m_fracture (config/creatures)
- m_cat (config/creatures)

• Pliki... ekhm... captures? (będę szczery i powiem, że nie wiem jak określić ich funkcję, chociaż orientuję się mniej więcej za co odpowiadają):
- zombi_captures (config/models/capture)
- zombi_damage_med (config/models/capture)
- izlom_captures (config/models/capture)
- cat_captures (config/models/capture)

• Tekstury:
- act_zombie_1.dds (textures/act)
- act_zombie_2.dds (textures/act)
- act_trup.dds (textures/act)
- act_miaso.dds (textures/act)
- act_izlom.dds (textures/act)

(Tekstura kota znajduje się w plikach Zewu Prypeci.)


Z Zewu natomiast:
- squad_descr.ltx (configs/misc)
- simulation_object_props.ltx (configs/misc)
- monsters.ltx (configs/creatures)

Przenoszenie plików
1. Przed nami zadanie nie tyle trudne, co czasochłonne. Osoby nieobeznane w modowaniu mogą mieć lekkie problemy, ale postaram się wyjaśnić najlepiej jak mogę, co trzeba zrobić.

Na sam początek wrzucamy modele mutantów do odpowiednich folderów, tak więc:
• W katalogu głównym Zewu Prypeci tworzymy folder o nazwie gamedata, następnie w nim kolejny folder, który nazywamy meshes. W tym z kolei folderze tworzymy jeszcze kolejny o nazwie monsters, a jeszcze w nim trzy foldery o nazwach:
- zombi
- izlom
- cat
Do tego folderu (monsters) musimy też wrzucić plik zombi_animation.omf. To animacja, z której korzysta zombi.

• Do folderu "zombi" wrzucamy skopiowane z "wnętrzności" Cienia Czarnobyla pliki zombi_1.ogf, zombi_2.ogf i resztę modeli zombiaków. Do folderu "izlom" wrzucamy izlom.ogf, a do folderu "cat" plik cat.ogf.

Całość ma wyglądać tak:
Image

Jeśli wszystko jest na swoim miejscu, przechodzimy do przenoszenia tekstur.


2. Tworzymy w folderze gamedata folder textures. W tym folderze tworzymy folder act. Przenosimy do niego tekstury mutantów, czyli act_zombie_1.dds, act_zombie_2.dds, act_miaso.dds, act_trup.dds oraz act_izlom.dds.

Image

Gotowe? No to dalej.


3. W folderze gamedata tworzymy folder configs. W nim kolejne dwa foldery: models oraz creatures. Na razie zajmijmy się tym pierwszym.

W utworzonym folderze "models" tworzymy kolejny, który nazywamy "capture". Wrzucamy do niego pliki:
• zombi_captures.ltx
• zombied_damage_med.ltx
• izlom_captures.ltx
• cat_captures.ltx

Image


4. W utworzonym folderze "creatures" umieszczamy pliki konfiguracyjne mutantów: m_zombie.ltx, m_fracture.ltx, m_cat.ltx.

Image

Umieszczamy tam też skopiowany z plików Zewu Prypeci plik monsters.ltx. Otwieramy następnie ten plik. Powinniśmy zobaczyć szereg linijek zaczynających się na "#include". Gdzieś na końcu, najlepiej po linijce #include "m_burer.ltx" dopisujemy linijki o nazwach:
• #include "m_zombie.ltx"
• #include "m_fracture.ltx"
• #include "m_cat.ltx"

Po edycji zapisujemy plik.


5. Teraz czeka nas właściwie najtrudniejsze i najcięższe do opisania zadanie: mianowicie musimy dostosować pliki konfiguracyjne mutantów do "wymagań" Zewu Prypeci.

Zombi

:

5.1 Na początku zajmijmy się plikiem zombi. Nosi on nazwę - jak łatwo się domyślić - m_zombie.ltx. Otwieramy go.

5.2 Widzimy mnóstwo enigmatycznie brzmiących linijek. Aby mutant "zadziałał" należy dopisać zaledwie kilka nowych, a dokładnie:

Kod: Zaznacz wszystko
icon = ui_npc_monster_zombie


Linijkę tę można dopisać (prawie) gdziekolwiek, jednak polecałbym tuż pod linijką "corpse_visual". Linijka odpowiada za ikonkę mutanta, która widnieje w PDA w miejscu przeznaczonym dla najsilniejszego zabitego stwora. Ikonki zwanej "ui_npc_monster_zombie" nie ma, więc po zabiciu zombi, w PDA ukarze nam się w miejscu zdjęcia puste pole.

5.3 W pliku znajdują się też linijki odpowiedzialne za przedmioty, jakie spawnują się przy zwłokach zabitego mutanta. Są to:

Kod: Zaznacz wszystko
Spawn_Inventory_Item_Section = mutant_zombie_hand
Spawn_Inventory_Item_Probability = 0.2


Zew Prypeci nie czyta jednak tych linijkek - w grze nie można przeszukiwać mutantów. "Usuwamy" więc te linijki dodając przed nimi znak średnika:

Kod: Zaznacz wszystko
;Spawn_Inventory_Item_Section = mutant_zombie_hand
;Spawn_Inventory_Item_Probability = 0.2


5.4 Gdzieś pod sekcją...

Kod: Zaznacz wszystko
transparency_threshold      = 0.25


... dodajemy dwie linijki:

Kod: Zaznacz wszystko
vision_danger_section      = stalker_zombied_vision_danger
vision_free_section      = stalker_zombied_vision_free


Jak na logikę, te linijki odpowiadają za zdolności wzrokowe mutanta gdy jest on spokojny (vision_free_section) i gdy jest w trakcie walki (vision_danger_section). Możemy mu oczywiście napisać jego własne sekcje, ale - póki ich nie mamy - skorzystajmy z sekcji stalkera-zombie.

5.5 Na samym końcu pliku znajdują się profile mutantów. Określają one różne odmiany stworów, zwykle dzielą się one na "weak", "normal" i "strong". Tego nie musimy ruszać, bo jest zrobione i kompletne.

Po dokonaniu zmian zapisujemy plik. I tak oto nasz zombi cywil jest gotowy! Teraz możemy zabrać się za pozostałe mutanty.


Połamaniec

:

Otwieramy plik m_fracture.ltx. Sytuacja wygląda podobnie jak w przypadku zombi, jednak ten plik jest - niestety - jeszcze mniej kompletny. A więc:

5.1 Dopisujemy gdzieś (osobiście zrobiłem to pod linijką "smart_terrain_choose_interval") linjkę:

Kod: Zaznacz wszystko
icon = ui_npc_monster_fracture


5.2 Dopisywanie linijek vision_danger_section oraz vision_free_section idzie tak samo jak u zombi. Nawet odniesienia możemy wpisać te same.

5.3 Plik połamańca nie posiada linijki o nazwie:

Kod: Zaznacz wszystko
satiety_threshold   = 0.5


Dopisujemy takową gdzieś pod "eat_slice_weight = 10.0"

5.4 Trzeba też dopisać...

Kod: Zaznacz wszystko
critical_wound_threshold      = -1
critical_wound_decrease_quant   = 0.


... na przykład pod "DamagedThreshold = 0.5".

5.5 Plik połamańca nie posiada również sekcji odpowiedzialnych za profile mutanta. Należy więc je napisać, najlepiej na samym końcu:

Kod: Zaznacz wszystko
[fracture_weak]:m_fracture_e
$spawn                     = "monsters\fracture_weak"
panic_threshold         = 0.05
spec_rank         = weak
community         = fracture


Stworzyliśmy dzięki temu "odmianę" połamańca, którą będziemy mogli zespawnować.

5.6 Została jeszcze kwestia obrażeń jakie zadaje nam mutant. Sekcje odpowiedzialne za siłę ciosów znajdziemy na samym początku pliku. Sekcja nazywa się "m_fracture_attack_params". Znajdują się tam nazwy animacji (stand_attack_0 ...2) oraz kolumna o nazwie "hit_power". I tylko ona będzie nas interesować.

Kod: Zaznacz wszystko
;-------------------------------------------------------
;   anim         | time[0..1] | hit_power |
;-------------------------------------------------------
stand_attack_0 =        0.45,      20,
stand_attack_1 =        0.45,      20,
stand_attack_2 =        0.45,      30,


Wartości vanillowe są jak widać nieźle zawyżone - mutant zadaje obrażenia zdolne zabić jednym ciosem NPC i prawdopodobnie też gracza. Dlatego zmieńmy je np. na:

Kod: Zaznacz wszystko
;-------------------------------------------------------
;   anim         | time[0..1] | hit_power |
;-------------------------------------------------------
stand_attack_0 =        0.45,      0.50,
stand_attack_1 =        0.45,      0.50,
stand_attack_2 =        0.45,      0.60,


W tym miejscu radziłbym sugerować się wartościami z plików innych mutantów.

Po edycji plik zapisujemy.


Kot

:

5.1 Modyfikacja tego pliku jest podobna do pliku połamańca. Dopisujemy dwie brakujące linijki:

Kod: Zaznacz wszystko
smart_terrain_choose_interval   = 00:15:00


Kod: Zaznacz wszystko
icon = ui_npc_monster_cat


5.2 A także:

Kod: Zaznacz wszystko
satiety_threshold      = 0.5


5.3 Następnie - podobnie jak w przypadku poprzedniego stworka:

Kod: Zaznacz wszystko
critical_wound_threshold   = 0.4
critical_wound_decrease_quant   = 0.


5.4 Trzeba też umieścić:

Kod: Zaznacz wszystko
vision_free_section      = pseudodog_vision_free
vision_danger_section      = pseudodog_vision_danger


Wybrałem tutaj odniesienia dotyczące pieska, ale - jeżeli potraficie - możecie zrobić własne sekcje.

5.5 I na samym końcu tworzymy profil mutanta:

Kod: Zaznacz wszystko
[cat_weak]:m_cat_e   
$spawn          = "monsters\cat"   
spec_rank       = weak   
community       = cat   


Po zmianach zapisujemy.


Dodawanie mutantów do świata gry

:

Aby dodać mutanty do świata gry, tak aby spacerowały po Zonie, musimy edytować przede wszystkim dwa pliki: squad_descr.ltx oraz simulation_object_props.ltx (znajdują się one w trzewiach Zewu Prypeci).

Otwieramy pierwszy z nich i widzimy sekcje odpowiadające za skład i liczbę oddziałów stalkerów i mutantów jakie znajdują się w Zonie.

Mamy teraz wybór:
• Jeżeli zależy nam na szybkim zobaczeniu efektów naszych działań możemy edytować jedną z już istniejących sekcji np.:

Kod: Zaznacz wszystko
[simulation_boar]:online_offline_group
faction = monster_vegetarian
npc_random = boar_normal, boar_normal, boar_normal, boar_strong
npc_in_squad = 1, 2


Jeżeli chcemy, aby w tym oddziale zamiast dzików pojawiły się zombi, zamieniamy dane w linijce npc_random na:

Kod: Zaznacz wszystko
[simulation_boar]:online_offline_group
faction = monster_vegetarian
npc_random = zombie_weak, zombie_normal, zombie_strong
npc_in_squad = 1, 2


Gdzie: zombie_weak, _normal i _strong to nazwy profili mutantów jakie znajdują się w pliku m_zombie.ltx.

Po edycji oczywiście zapisujemy. Po tej modyfikacji zamiast dzików, w stadach (niektórych) przemierzających Zonę powinny pojawić się zombi.

• Drugi sposób - odrobinę trudniejszy - pozwoli nam na stworzenie zupełnie nowego squadu z własnym zestawem mutantów. Opiszę to na przykładzie zombi. Jest to sposób, który pasuje do wszystkich typów mutantów.

1. Edytujemy plik squad_descr.ltx dopisując w nim gdzieś taką sekcję:

Kod: Zaznacz wszystko
[simulation_zombie]:online_offline_group
faction = monster_zombied_night
npc_random = zombie_weak, zombie_normal, zombie_strong
npc_in_squad = 2, 4


Gdzie:
• simulation_zombie - nazwa squadu
• faction = monster_zombied_night - szczerze mówiąc nie za bardzo wiem, co to może oznaczać i za co odpowiada
• npc_random - losowo dobierane rodzaje mutantów
• npc_in_squad - minimalna i maksymalna liczba mutantów w squadzie

Po edycji zapisujemy.

2. Dodajemy nowy wpis do pliku simulation_object_props.ltx, gdzieś po sekcji [simulation_psy_dog]

Kod: Zaznacz wszystko
[simulation_zombie]:default_squad
sim_avail = true

• simulation_zombie to nazwa, którą umieściliśmy w squad_descr.ltx.

Teraz wystarczy stworzyć punkt odradzania dla nowych mutantów. Jak to zrobić, napisałem w tym tutorialu:
viewtopic.php?f=98&t=25064, a konkretnie w pierwszym rozdziale o spawnowaniu mutantów. Mam nadzieję, że ten obszerny i być może troszkę chaotyczny poradnik pomoże Wam w modowaniu i zrobicie z jego pomocą coś naprawdę ciekawego ;) . Jeżeli pojawią się jakieś wyloty, błędy, pytania, niejasności - proszę informować, pytać, słać PW, krzyczeć. Postaram się na wszystko odpowiedzieć.


Oto efekty - mutanty zespawnowałem przy pomocy lekko przerobionego Władcy Zony:
Image
Image
Image
:

Widocznego na pierwszym zdjęciu "zombi ducha" przywróciłem po dodaniu do pliku m_zombie.ltx nowego profilu. Brzmi on:
Kod: Zaznacz wszystko
[zombie_ghost]:zombie_strong
$spawn            = "monsters\zombies\zombie_ghost"
visual            = monsters\zombi\zombi_1_ghost
panic_threshold      = 0.05   


Pozdrawiam i przyjemnej zabawy z moddingiem!
Ostatnio edytowany przez PMG 09 Cze 2015, 23:37, edytowano w sumie 4 razy

Za ten post PMG otrzymał następujące punkty reputacji:
Positive Imienny, Pangia, Leo0502, Plaargath, Decimus76.
Awatar użytkownika
PMG
Redaktor

Posty: 376
Dołączenie: 12 Gru 2010, 10:30
Ostatnio był: 06 Gru 2023, 13:29
Frakcja: Zombie
Ulubiona broń: Viper 5 9x18
Kozaki: 127

Reklamy Google

Re: [Tutorial] Przywracanie wyciętych mutantów

Postprzez Pangia w 09 Cze 2015, 22:06

Oszczędziłbyś sobie mnóstwo pisania, dając po prostu screena z eksploratora ze ścieżką folderów i plików w nich się znajdujących i osobiście bym to poprawił, bo ta ściana tekstu jest dość trudna do zrozumienia, jeżeli się nie załapie, że właśnie o to chodzi ;)
Proszę państwa, sto pięćdziesiąt kilometrów na godzinę w ciągu kilku sekund, wspaniały wynik. Gdyby w ten sposób można było wypie*dolić z polskiej polityki tych wszystkich śmieci z Okrągłego Stołu, Leszka Millera, byłoby… cudownie i każdemu bym ku*wa kupił po takim Ferrari, byleby w piz*u pojechali tym PROSTO do swojego ukochanego… Izraela. SYJONIŚCI Europy, jedźcie do siebie! Pozdrawiam, Zbigniew Stonoga. Nie jestem antysemitą!
Awatar użytkownika
Pangia
Monolit

Posty: 4280
Dołączenie: 27 Maj 2012, 10:49
Ostatnio był: 28 Lis 2017, 19:49
Miejscowość: Kukle Karakańskie
Ulubiona broń: TOZ34
Kozaki: 854

Re: [Tutorial] Przywracanie wyciętych mutantów

Postprzez PMG w 09 Cze 2015, 22:09

Dziękuję za sugestię, przemodeluję ten twór w najbliższym czasie ;) .

Edit: Dokonałem.
Awatar użytkownika
PMG
Redaktor

Posty: 376
Dołączenie: 12 Gru 2010, 10:30
Ostatnio był: 06 Gru 2023, 13:29
Frakcja: Zombie
Ulubiona broń: Viper 5 9x18
Kozaki: 127


Powróć do Tutoriale

Kto jest na forum

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