Mutant składa się z:
- konfigu (folder
config/creatures)
- modelu (pliki .ogf w folderze
meshes/monsters - ścieżki znajdziesz w konfigu),
- tekstur (ścieżki do nich znajdziemy w modelu)
- dźwięków z jakich korzysta (ścieżki znajdziesz w konfigu)
- ikony (ścieżkę znajdziesz w konfigu - poza tym nazwa ikony musi być uwzględniona w
ui_npc_monster.xml (config/ui), który to plik z kolei odnosi się do tekstury
ui_npc_monster.dds (textures/ui)
- mutanty mają również oddzielny plik
.ltx (config/models/capture) uwzględniony w modelu
.ogf - ponadto szanujący się mutant powinien mieć przy sobie jakąś część swojego ciała (określoną w konfigu), która posiada swój własny konfig wraz z modelem - ją też trzeba wyciąć.
Gdy już skopiujesz wymagane pliki, możesz zabrać się za spawnowanie mutanta edytując spawn lub tworząc jakiś skrypt, który w odpowiednim momencie zespawnuje np. chimerę.
O spawnie jest już sporo napisane na forum, ja po krótce opiszę sposób ze skryptem. Tak więc:
- tworzymy plik z rozszerzeniem
.script (w folderze scripts) - wystarczy jakiś istniejący skrypt skopiować, wyczyścić jego zawartość i jakoś nazwać
- przykładowo, stworzyłem skrypt
my_spawns.script, a w nim umieściłem taki fragment
- Kod: Zaznacz wszystko
function esc_chimera_create()
local a = vector() -- db.actor:position()
a.x = 108.146378
a.y = 1.653658
a.z = 458.299744
alife():create("chimera_weak",a,409438,223,65535)
end
gdzie:
-
function esc_chimera_create, to nazwa funkcji (patrz niżej),
- wartości
- Kod: Zaznacz wszystko
a.x = 108.146378
a.y = 1.653658
a.z = 458.299744
to współrzędne spawnu (w tym przypadku jest to Kordon, za mostem obok wywróconej ciężarówki),
- linijka
- Kod: Zaznacz wszystko
alife():create("chimera_weak",a,409438,223,65535)
określa nazwę mutanta z konfigu (chimera_weak), a także
level_vertex i
game_vertex (program do określania współrzędnych znajdziesz
tutaj na końcu pierwszego posta)
Na tym nie koniec. Musisz jeszcze "wywołać" wspomnianą wyżej funkcję
function esc_chimera_create w jakimś konkretnym momencie.
Możesz wykorzystać w tym celu jakiś dialog, np. ten z Wilkiem na początku gry.
Aby to zrobić, bierzesz plik
dialogs_escape.xml (config/gameplay) i szukasz takiego fragmentu
- Kod: Zaznacz wszystko
</phrase>
<phrase id="1111111111">
<text>escape_lager_volk_talk_1111111111</text>
<action>escape_dialog.give_weapon_to_actor</action>
</phrase>
który określa co dostajemy od Wilka. Dopisujesz w nim swoją funkcję w ten sposób
my_spawns.esc_chimera_create, tak by przytoczony fragment wyglądał tak
- Kod: Zaznacz wszystko
</phrase>
<phrase id="1111111111">
<text>escape_lager_volk_talk_1111111111</text>
<action>escape_dialog.give_weapon_to_actor</action>
<action>my_spawns.esc_chimera_create</action>
</phrase>
dzięki temu zabiegowi wywołamy (linijka
<action>my_spawns.esc_chimera_create</action>) funkcję opisaną w stworzonym przez nas skrypcie, tj. chimera powinna pojawić się w wyznaczonym przez współrzędne miejscu w tym samym momencie w którym Wilk daje nam początkowe wyposażenie.
Uff... trochę się rozpisałem i nawet nie wiem czy to cokolwiek ci pomoże, ale na pocieszenie powiem, że ja sam zanotowałem kilkanaście (a może nawet -dziesiąt) wypadów na pulpit zanim zespawnowałem swojego pierwszego (nowego) mutanta.