Forum Stalker.pl • Zobacz temat - [Pytanie] All.spawn Dodawanie NPC itd.

[Pytanie] All.spawn Dodawanie NPC itd.

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"].

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Rozdupnik w 19 Cze 2012, 15:05

Jeśłi się coś spawnuje w alife to trzeba coś dodawać w way?
Rozdupnik
Stalker

Posty: 188
Dołączenie: 02 Lut 2012, 23:03
Ostatnio był: 22 Wrz 2015, 16:47
Kozaki: 3

Reklamy Google

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez utak3r w 20 Cze 2012, 11:06

Jeśli to potrzebne - ogólnie nie jest to wymagane. W Alife podajesz, GDZIE ma się coś zespawnować, w way EWENTUALNIE podajesz, KTÓRĘDY ma chodzić, jeśli ta trasa ma być wymuszona.
Sooner or later, you will meet the Undertaker...
Awatar użytkownika
utak3r
Modder

Posty: 2201
Dołączenie: 11 Lis 2009, 18:15
Ostatnio był: 29 Lis 2024, 23:16
Miejscowość: Szczecin
Frakcja: Powinność
Ulubiona broń: GP 37
Kozaki: 376

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Rozdupnik w 20 Cze 2012, 16:31

Czyli w plikach way... ustalamy smart terrainy?
Da się jakoś określić w tych plikach żeby np mutant nie łaził po całej mapie tylko od punktu do punktu/ów?
Rozdupnik
Stalker

Posty: 188
Dołączenie: 02 Lut 2012, 23:03
Ostatnio był: 22 Wrz 2015, 16:47
Kozaki: 3

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez utak3r w 20 Cze 2012, 19:27

Rozdupnik napisał(a):Czyli w plikach way... ustalamy smart terrainy?


Nieeeeeeee...... :|

Rozdupnik napisał(a):Da się jakoś określić w tych plikach żeby np mutant nie łaził po całej mapie tylko od punktu do punktu/ów?


Ech, jak na razie wszystko, co napisałem, to jak krew w piach.... (taaa... zaraz krew... :E )

Smart_terrain to miejsce. Miejsce stoi w miejscu :idea: Spawnujemy w alife, co łatwo sprawdzić, zaglądając do pierwszego z brzegu pliku.
A żeby mutant/stalker chodził od punktu do punktu, definiujemy w way... te punkty, nazywamy jakoś tę trasę i w alife, w jego spawnie, przypisujemy mu tę trasę.

Podam Ci przykład, któy akurat mam pod ręką:

Najpierw trasa w way_***:

Kod: [ Pobierz ] [ Ukryj ]
[predbannik_fabryka_guard5_walk]
points = p0,p1,p2,p3
p0:name = wp00
p0:flags = 0x1
p0:position = 0.40670967102051,-3.1064734458923,-261.52404785156
p0:game_vertex_id = 2913
p0:level_vertex_id = 943729
p0:links = p1(1),p2(1),p3(1)

p1:name = wp01
p1:flags = 0x2
p1:position = -3.4022905826569,-3.6574068069458,-275.62515258789
p1:game_vertex_id = 2913
p1:level_vertex_id = 937236
p1:links = p0(1),p2(1),p3(1)

p2:name = wp02
p2:flags = 0x2
p2:position = -17.357046127319,-1.1283144950867,-277.79208374023
p2:game_vertex_id = 2913
p2:level_vertex_id = 915693
p2:links = p0(1),p1(1),p3(1)

p3:name = wp03
p3:flags = 0x2
p3:position = -24.719989776611,-0.42594027519226,-275.1279296875
p3:game_vertex_id = 2913
p3:level_vertex_id = 904654
p3:links = p0(1),p1(1),p2(1)
 


i w alife_*** strażnik, łażący po tej trasie:

Kod: [ Pobierz ] [ Ukryj ]
[9098]
; cse_abstract properties
section_name = stalker
name = predbannik_fabryka_guard5
position = 0.40670967102051,-3.1064734458923,-261.52404785156
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 100000
character_profile = val_bandit_general

; cse_alife_object properties
game_vertex_id = 2913
distance = 12.5999994277954
level_vertex_id = 943729
object_flags = 0xffffffff
custom_data = <<END
[smart_terrains]
none = true

[logic]
active = walker@predbannik_fabryka_guard5

[walker@predbannik_fabryka_guard5]
path_walk = predbannik_fabryka_guard5_walk
meet = meet@predbannik_fabryka_guard5

[meet@predbannik_fabryka_guard5]
meet_state              = 10|guard@wait
meet_state_wpn  = 10|backoff@threat_weap
victim          = 10|actor
victim_wpn              = 10|actor
use                     = true
use_wpn         = true
syndata         = backoff@threat_weap
END

; cse_visual properties
visual_name = actors\bandit\stalker_bandit_2

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 0.40670967102051,-3.1064734458923,-261.52404785156
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 5

; cse_alife_monster_abstract properties
base_out_restrictors = bar_restrictor

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 2,2,1,0,1
predicate4 = 1,2,2,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties
 


comprende?
Sooner or later, you will meet the Undertaker...

Za ten post utak3r otrzymał następujące punkty reputacji:
Positive nelson82, Rozdupnik.
Awatar użytkownika
utak3r
Modder

Posty: 2201
Dołączenie: 11 Lis 2009, 18:15
Ostatnio był: 29 Lis 2024, 23:16
Miejscowość: Szczecin
Frakcja: Powinność
Ulubiona broń: GP 37
Kozaki: 376

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Rozdupnik w 20 Cze 2012, 20:07

Z tego co zrozumiałem to nie koniecznie trzeba tworzyć smart terraina (który jest raczej trudniejszy do zrobienia) żeby NPC\mutant nie łaził po całe mapie tylko np. w 3\4 punktach które mu można w plikach way... wyznaczyć.

Tak czy inaczej :wódka: leci
Rozdupnik
Stalker

Posty: 188
Dołączenie: 02 Lut 2012, 23:03
Ostatnio był: 22 Wrz 2015, 16:47
Kozaki: 3

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez utak3r w 20 Cze 2012, 20:11

Owszem, można. Smart terrain przydaje się, gdy chcesz rozdzielić role między "mieszkańców". Natomiast zwykłe "nie rozłażenie się" można osiągnąć, tworząc marszrutę.
Sooner or later, you will meet the Undertaker...
Awatar użytkownika
utak3r
Modder

Posty: 2201
Dołączenie: 11 Lis 2009, 18:15
Ostatnio był: 29 Lis 2024, 23:16
Miejscowość: Szczecin
Frakcja: Powinność
Ulubiona broń: GP 37
Kozaki: 376

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Rozdupnik w 20 Cze 2012, 20:23

Do pełni szczęścia brakuje jak byś wytłumaczył co poszczególna linijka oznacza. w pliku alife jak i way.

Uwagi moderatora:

Na diabła ten cytat na dwie strony?... Wywaliłem. - u3
Rozdupnik
Stalker

Posty: 188
Dołączenie: 02 Lut 2012, 23:03
Ostatnio był: 22 Wrz 2015, 16:47
Kozaki: 3

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez utak3r w 20 Cze 2012, 20:28

Każda linijka? Nie... mogę co najwyżej najważniejsze wytłumaczyć. Resztę po prostu kopiuj :P
Spróbuję dzisiaj opisać.
Sooner or later, you will meet the Undertaker...

Za ten post utak3r otrzymał następujące punkty reputacji:
Positive kubekpop.
Awatar użytkownika
utak3r
Modder

Posty: 2201
Dołączenie: 11 Lis 2009, 18:15
Ostatnio był: 29 Lis 2024, 23:16
Miejscowość: Szczecin
Frakcja: Powinność
Ulubiona broń: GP 37
Kozaki: 376

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Rozdupnik w 20 Cze 2012, 20:32

Chociaż to co jest potrzebne żebym rozumiał i wiedział na przyszłość bo jak tego samego użyję do czego innego (w sęsie co innego spawnować) to będzie "dupa". A dla Ciebie to nie problem.
Rozdupnik
Stalker

Posty: 188
Dołączenie: 02 Lut 2012, 23:03
Ostatnio był: 22 Wrz 2015, 16:47
Kozaki: 3

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez utak3r w 21 Cze 2012, 12:17

Tworzymy obóz bandytów. Przed obozem stoi strażnik, chodzący po wytyczonej marszrucie.

Kod: [ Pobierz ] [ Ukryj ]
section_name = stalker
name = supermapa_bandyci_guard1
 


Powyższe wyjaśnień chyba nie wymaga: spawnujemy stalkera i nadajemy mu unikalną nazwę "supermapa_bandyci_guard1".

Kod: [ Pobierz ] [ Ukryj ]
position = 0.40670967102051,-3.1064734458923,-261.52404785156
game_vertex_id = 2913
distance = 12.5999994277954
level_vertex_id = 943729
direction = 0,0,0
 


Gdzie się pojawia i w którą stronę zwrócony. Należy zapamiętać raz na zawsze, że pozycja czegokolwiek w całej Zonie określana jest przez trzy parametry!
position, game_vertex_id oraz level_vertex_id.

Kod: [ Pobierz ] [ Ukryj ]
character_profile = val_bandit_general
visual_name = actors\bandit\stalker_bandit_2
 


Nasz stalker będzie zachowywał się, jak pospolity bandyta, wyglądał zresztą też.

Logikę stworzymy mu bezpośrednio tutaj, choć moglibyśmy wyrzucić to do zewnętrznego pliku ltx i tu dać tylko nazwę naszego pliku.
Logika ta mieści się między:

Kod: [ Pobierz ] [ Ukryj ]
custom_data = <<END
.... tu logika ....
END
 


Zaczynamy:

Kod: [ Pobierz ] [ Ukryj ]
[smart_terrains]
none = true
 


Nie przypisujemy go do żadnego smart terrainu. Ma łazić po swojej wytyczonej trasie i bronić dostępu do bazy przed wrogami.

Kod: [ Pobierz ] [ Ukryj ]
[logic]
active = walker@supermapa_bandyci_guard1
 


Gdy nie ma nic innego ciekawszego do roboty, ma wykonywać pracę "walker", czyli:

Kod: [ Pobierz ] [ Ukryj ]
[walker@supermapa_bandyci_guard1]
path_walk = supermapa_bandyci_guard1_walk
meet = meet@supermapa_bandyci_guard1
 


...czyli łazić po trasie "supermapa_bandyci_guard1_walk", którą za chwilę zdefiniujemy, a w przypadku natknięcia się na innego stalkera, ma wykonać czynność "meet":

Kod: [ Pobierz ] [ Ukryj ]
[meet@supermapa_bandyci_guard1]
meet_state      = 10|guard@wait
meet_state_wpn  = 10|backoff@threat_weap
victim          = 10|actor
victim_wpn      = 10|actor
use             = true
use_wpn         = true
syndata         = backoff@threat_weap
 


Oznacza to, że jeśli napotkanym stalkerem jest "actor", czyli my, ma wyciągnąć broń i jej użyć.
Po dokładny opis zachowań, możliwych do użycia w logice NPC, zapraszam do lektury tego bardzo obszernego tekstu.

Pozostało nam określić trasę, po której strażnik kursuje. Robimy to w pliku way_***.ltx. Pamiętamy, że chcemy naszą trasę nazwać "supermapa_bandyci_guard1_walk", a także, że każde miejsce w Zonie to trzy parametry, a nie jeden:

Kod: [ Pobierz ] [ Ukryj ]
[supermapa_bandyci_guard1_walk]
points = p0,p1,p2,p3
p0:name = wp00
p0:flags = 0x1
p0:position = 0.40670967102051,-3.1064734458923,-261.52404785156
p0:game_vertex_id = 2913
p0:level_vertex_id = 943729
p0:links = p1(1),p2(1),p3(1)

p1:name = wp01
p1:flags = 0x2
p1:position = -3.4022905826569,-3.6574068069458,-275.62515258789
p1:game_vertex_id = 2913
p1:level_vertex_id = 937236
p1:links = p0(1),p2(1),p3(1)

p2:name = wp02
p2:flags = 0x2
p2:position = -17.357046127319,-1.1283144950867,-277.79208374023
p2:game_vertex_id = 2913
p2:level_vertex_id = 915693
p2:links = p0(1),p1(1),p3(1)

p3:name = wp03
p3:flags = 0x2
p3:position = -24.719989776611,-0.42594027519226,-275.1279296875
p3:game_vertex_id = 2913
p3:level_vertex_id = 904654
p3:links = p0(1),p1(1),p2(1)
 


Mamy tu cztery punkty, nawzajem ze sobą powiązane. Tu przykład zrównoważenia punktów, ale można je powiązać ze sobą również inaczej.

Ogólnie rzecz biorąc, temat jest bardzo obszerny i ja sam nie jestem w stanie go opisać. Po to, aby sprawdzić, jak bardzo, wystarczy zerknąć choćby na chwilkę tutaj.
Sooner or later, you will meet the Undertaker...

Za ten post utak3r otrzymał następujące punkty reputacji:
Positive Junx, Rozdupnik, Spyrok.
Awatar użytkownika
utak3r
Modder

Posty: 2201
Dołączenie: 11 Lis 2009, 18:15
Ostatnio był: 29 Lis 2024, 23:16
Miejscowość: Szczecin
Frakcja: Powinność
Ulubiona broń: GP 37
Kozaki: 376

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Spyrok w 06 Sie 2012, 11:07

A jak jest w przypadku mutantów- co należy wpisać w sekcji "meet" ? Jak przekopiowuję te linijki i tworzę trasę, to póki co po zabiciu mutanta wywala do pulpitu, a na dodatek mutant obiera sobie inne współrzędne niż te co wpisałem :E

Czy ta marszruta mutanta/stalkera- działa tak, że jak mutant już mnie zaatakuje, ale mu ucieknę, to wraca na wyznaczony sobie teren, czy zatacza okręgi na nowym terenie (tym na którym mnie zgubił) ?
Jak wie ktoś w jaki sposób zmodyfikować program acdc.pl tak aby otwierał all.spawn z "czystej gry" (to znaczy bez żadnych patchów) to niech napisze mi na pw. Opcjonalnie może być też podanie innej wersji acdc.pl, która mi otworzy ten spawn. Próbuję zespawnować mutanty, ale mam zamiar nie instalować patchów.
Spyrok
Stalker

Posty: 72
Dołączenie: 11 Wrz 2011, 16:38
Ostatnio był: 29 Paź 2012, 19:36
Frakcja: Samotnicy
Ulubiona broń: F1 Grenade
Kozaki: -2

Re: [Pytanie] All.spawn Dodawanie NPC itd.

Postprzez Rozdupnik w 09 Sie 2012, 23:44

Chciałem zespawnować mechanika więc najpierw wszedlem do alife jupitera zobaczyć jaki ma spawn więc zobaczyłem że taki :
Kod: Zaznacz wszystko
[jupiter_3297]
; cse_abstract properties
section_name = smart_cover
name = jup_b219_azot_smart_cover
position = 322.584686279297,31.465648651123,-312.026702880859
direction = 0,-3.07018494606018,0

; cse_alife_object properties
game_vertex_id = 371
distance = 2.09999990463257
level_vertex_id = 1229459
object_flags = 0xffffffbf

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 2

; cse_smart_cover properties
cse_smart_cover__unk1_sz = animpoint_pri_a15
cse_smart_cover__unk2_f32 = 0
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10
cse_smart_cover__unk3_u8 = 1

; se_smart_cover properties
last_description = animpoint_pri_a15
loopholes = animpoint_pri_a15,1

zmienilem level vertex i game vertex i wpisałem pozycje stąd
http://imageshack.us/photo/my-images/80 ... 2esca.jpg/
jednak on się tam nie pojawił. Po prostu jak by ten skrypt gra olała. Nie wiem do konca czy dobrze pozycje wpisalem bo nie za bardzo wiem co ja mam tam wpisać z tej linijki kordów ze skrina bo oryginalnie w jupiterze jest baaaardzo dużo cyfr a tu zaledwie kilkanaście.
Rozdupnik
Stalker

Posty: 188
Dołączenie: 02 Lut 2012, 23:03
Ostatnio był: 22 Wrz 2015, 16:47
Kozaki: 3

PoprzedniaNastępna

Powróć do Zew Prypeci

Kto jest na forum

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