Skocz do zawartości

Tworzenie bazy dla stalkerów [CoP]


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość Diegtiariow

NAZWA: Tworzenie bazy dla stalkerów [CoP]
AUTOR: Falkinelsaku

 

OBJAŚNIENIE:

Spoiler

Baza stalkerów to miejsce, do którego NPC przychodzą nocą, przesiadują tam całą noc i wychodzą rano, zostają tylko ci, którzy nie mieli co robić na danej lokacji.
Najprawdopodobniej wielu niedoświadczonych modderów zadało sobie pytanie "Jak zrobić tę bazę?"
P.S. - Ta lekcja jest przeznaczona dla użytkowników działających w SDK.

 

TWORZENIE SMART TERRAINA:

Spoiler

Najpierw musisz stworzyć smart terrain z typem "base".
Tworzymy nowy graph-point dla punktu spawnu stalkerów w pliku gamedata\configs\game_graphs.ltx.

1.png

Następnie otwieramy Level Editor i wczytujemy swoją lokację, w przykładzie tworzona jest baza na lokacji "Przedsionek", ale ty możesz wziąć inną lokację.
Ustawiamy graph-point i przechodzimy do Object Inspector.

2.png

Dalej ustawiamy smart terrain, najlepiej żeby graph-point był w centrum smart terrainu. Ustawiamy naszemu smart terrainowi takie parametry (nazwę możecie wybrać sami):

3.png

Dalej tworzymy plik logiki i zapisujemy do niego ścieżkę. Przykład custom data:

[smart_terrain]
cfg = scripts\location\smart\name_logic.ltx
[story_object]
story_id = nazwa-smart_terrainu_którą_wcześniej_wskazaliśmy

Praca w SDK jeszcze nie została zakończona, ale na razie można go zostawić w spokoju.

 

LOGIKA I PRZYPISANIE SMARTU:

Spoiler

Wchodzimy do naszego pliku logiki smarta, który wcześniej utworzyliśmy i wklejamy do niego taką logikę:

[smart_terrain]; nazwa smarta (nieobowiązkowe)
squad_id = 1 (numer smartu, nigdy nie powinien się powtarzać. Na każdej lokacji zaczyna się od 1)
def_restr = (restryktor, gdzie znajduje się baza)
safe_restr = (restryktor, gdzie NPC są nieśmiertelni)
smart_control = smart_control
respawn_params = respawn@stalker_base (respawn stalkerów w smartcie)
max_population = 20 (ile smart terrain może mieć squadów max)
arrive_dist = 65 (odległość, z której squad jest zarejestrowany w smartcie)

[respawn@stalker_base]
spawn_stalker@advanced

[spawn_stalker@advanced]
spawn_squads = stalker_sim_squad_advanced, stalker_sim_squad_novice (squady, które mogą się zespawnować)
spawn_num = 0 (ilość squadów, które będą się spawnować. Działa warunek: {+fffffffff} 3)

[smart_control]
noweap_zone = (strefa chowania broni)
ignore_zone = (strefa, gdzie NPC nie reagują na niebezpieczeństwo)
alarm_start_sound = dźwięk jako początek alarmu (GG zabił stalkera)
alarm_stop_sound = dźwięk jako koniec alarmu

[exclusive] (praca dla NPC)

Teraz trzeba dopisać typ smart terrainu. Wchodzimy do configs\misc\simulation_objects_props.ltx, przewijamy na sam dół i piszemy takie 2 linijki:

[nazwa_smartu]:default_base
sim_avail = true

Smart jest gotowy, teraz przyszła pora zrobić pracę dla NPC.

 

PRACA DLA NPC:

Spoiler

Wracamy do SDK i ustawiamy kilka animpointów o następujących typach nazw: "krótka_nazwa_smarta_animpoint_numer_animpointa"

4.png

Przykład: pred_a1_animpoint_1.

5.png

(Na zdjęciu jest pred_a1_animpoint_2, zamiast pred_a1_animpoint_1, nie zwracaj na to uwagi)

Kompilujemy spawn i zamykamy SDK.

Teraz przypisujemy pracę w exclusive:
pred_a1_animpoint_1 = predbannik\pred_a1_logic.ltx (tworzymy nowy plik logiki)
pred_a1_animpoint_2 = predbannik\pred_a1_logic.ltx (tworzymy nowy plik logiki)

I w nim piszemy:

[logic@pred_a1_animpoint_1]
active = animpoint@pred_a1_animpoint_1
suitable = {=check_npc_name(sim_default_stalker) =npc_in_zone(restryktor_strefy_obozu) !surge_started} true
prior = 100

[animpoint@pred_a1_animpoint_1]
cover_name = pred_a1_animpoint_1 (nazwa smart_covera)
on_info = {=npc_in_zone(restryktor_strefy_obozu)} animpoint@pred_a1_animpoint_1

[animpoint@pred_a1_animpoint_1_reached]:pred_a1_animpoint_1
cover_name = esc_a1_animpoint_1 (nazwa smart_covera)

[logic@pred_a1_animpoint_2]
active = animpoint@pred_a1_animpoint_2
suitable = {=check_npc_name(sim_default_stalker) =npc_in_zone(restryktor_strefy_obozu) !surge_started} true
prior = 100

[animpoint@pred_a1_animpoint_2]
cover_name = pred_a1_animpoint_2 (nazwa smart_covera)
on_info = {=npc_in_zone(рестриктор_зоны_лагеря)} animpoint@pred_a1_animpoint_2

[animpoint@pred_a1_animpoint_2_reached]:pred_a1_animpoint_2
cover_name = esc_a1_animpoint_2 (nazwa smart_covera)

 

 

NIEDUŻY DODATEK:

Spoiler

Aby zrobić postój dla stalkerów (stalkerzy opuszczają bazę w to miejsce w ciągu dnia, czyli innymi słowy "praca na lokacji dla NPCów”)
Trzeba zamienić klasę smart terrainu w misc\simulation_objects_props.ltx.

Zamiast:

[nazwa_smartu]:default_base
sim_avail = true

piszemy:

[nazwa_smartu]:default_territory
sim_avail = true

Cała reszta jest taka sama jak w przypadku base.

 

JESZCZE NIEWIELKIE DOPEŁNIENIE:

Spoiler

Załóżmy, że nazwa smart terrainu to "esc_a1".
Jeśli nazwiesz animpoint w ten sposób: esc_a1_animpoint_1, to nie będzie konieczne zawracanie sobie głowy logiką, NPC sam zajmie ten punkt.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/3980-cop-sozdanie-bazy-dlya-stalkerov/

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.