nelson82 02 lis 2013, 11:41
Łowca
Posty: 505
Rejestracja: 16 paź 2011, 00:09
Ostatnio: 13 paź 2019, 11:44
Kozaki:
130
Na górę
Post autor: nelson82  Ostatnio zmieniony 07 lut 2016, 08:55 przez nelson82, łącznie zmieniany 1 raz.
Nie mam czasu i odpowiedniej motywacji, by zapoznać się z programem S.D.K. dzięki któremu można by nieco odświeżyć znaną z wanilii Zonę, ale i bez tego da się co nieco (czytaj, jakiś obiekt) dorzucić do gry.
Opiszę po krótce w jaki sposób za pomocą kilku plików dodać parę obiektów do wioski kotów w Kordonie.

Co by sobie ułatwić zadanie zapodaję gotowca
https://www.sendspace.com/file/3nslqt w formie modyfikacji z pomocą której opiszę temat.

- w folderze config/misc tworzymy plik objekty (przykładowo), który uwzględniamy również w pliku system (patrz na gotowca)
- w tymże pliku tworzymy tzw. konfigi obiektów (spójrz w gotowca)
- mając gotowe konfigi określamy współrzędne miejsca w którym ma pojawić się dodany obiekt - tutaj znajdziemy "moda" do określania współrzędnych
- mając już gotowy konfig tworzymy skrypt objekty (przykładowo) w folderze scripts, a w nim podajemy współrzędne i nazwę (trzymamy się nazw z konfigu) obiektu który chcemy dodać (spójrz - gotowiec)
- wreszcie na sam koniec uwzględniamy ww. skrypt w pliku bind_stalker (scripts) w tej frazie

Kod: Zaznacz cały

if self.bCheckStart then
      printf("SET DEFAULT INFOS")      

      if not has_alife_info("storyline_actor_start") and
         (level.name() == "l01_escape")
      then
       objekty.objekty_create()
         self.object:give_info_portion("storyline_actor_start")
         _G.g_start_avi = true
         printf("*AVI* RUN START AVI")         
      end
Po takich zabiegach wraz z rozpoczęciem gry w Zonie pojawią się nowe obiekty.
Zapodaje parę skrinów wykonanych na bazie gotowca
http://up.oblivionlost.pl/images/01290199848017257798.jpg
http://up.oblivionlost.pl/images/45781722919595317981.jpg
http://up.oblivionlost.pl/images/74166879012169110692.jpg

Gotowiec (mod) jest przystosowany dla patcha 1.0004 - dla innych patchy należy edytować linijkę

Kod: Zaznacz cały

current_server_entity_version = 6
na current_server_entity_version = 5 (dla patcha 1.0003) lub current_server_entity_version = 7 (1.0005 i 1.0006) w pliku system (config).

Modele obiektów znajdziemy w rozpakowanej grze w folderze meshes, a w nim m.in. podfoldery objects i physics - nowe modele znajdziemy również w niektórych większych modyfikacjach.
łatwiej już nie będzie
Postawili kozaka za ten post (1):
ModderModder
Posty: 3878
Rejestracja: 21 lut 2011, 14:18
Ostatnio: 29 maja 2026, 22:08
Kozaki:
1749
Na górę
Post autor: vandr 
Świetna sprawa. Na pewno z tego skorzystam. Pytanko- czy NPC'e będą te obiekty omijać, czy istnieje ryzyko, że po prostu będą przez nie przenikać jak duchy?
TAJAG JUDYN
HAZBAZ
SEKODYN!
Łowca
Posty: 505
Rejestracja: 16 paź 2011, 00:09
Ostatnio: 13 paź 2019, 11:44
Kozaki:
130
Na górę
Post autor: nelson82 
NPC nie przenika przez obiekt - testowałem ;)
łatwiej już nie będzie
ModderModder
Posty: 3878
Rejestracja: 21 lut 2011, 14:18
Ostatnio: 29 maja 2026, 22:08
Kozaki:
1749
Na górę
Post autor: vandr 
Ogromna flacha dla Ciebie, Piter. Co w przypadku, gdy chcemy edytować inną mapę? I do czego służą:

Kod: Zaznacz cały

local level_vertex=
local game_vertex_id=


Wybrałem sobie pozycję przy ognisku, która ma następujące wartości na ekranie w grze:

lvid: 47828
grid: 57
pos: -205.040, -20.134, -143.611
div: -0.998, 0.000, -0.052


Próbuję to zaimplementować w skrypcie analogicznie do gotowych przykładów, tak więc na początek oczywiście

Kod: Zaznacz cały

create_objekty_4()
i potem:

Kod: Zaznacz cały

function create_objekty_4()
local x= -205.040
local y= -20.134
local z= -143.611


(jeśli jest źle to popraw)

No i dalej nie wiem co wpisać w:

Kod: Zaznacz cały

local level_vertex= 
local game_vertex_id=


Tutaj natomiast bułka z masłem, bo wystarczy odpowiednią nazwę modelu wrzucić:

Kod: Zaznacz cały

alife():create("lavochka",vector():set(x,y,z),level_vertex,game_vertex_id)
TAJAG JUDYN
HAZBAZ
SEKODYN!
Łowca
Posty: 505
Rejestracja: 16 paź 2011, 00:09
Ostatnio: 13 paź 2019, 11:44
Kozaki:
130
Na górę
Post autor: nelson82 
W local level_vertex= wpisujesz wartość lvid (z moda na współrzędne), a w local game_vertex_id= wartość gvid
łatwiej już nie będzie
ModderModder
Posty: 3878
Rejestracja: 21 lut 2011, 14:18
Ostatnio: 29 maja 2026, 22:08
Kozaki:
1749
Na górę
Post autor: vandr  Ostatnio zmieniony 02 lis 2013, 13:42 przez vandr, łącznie zmieniany 2 razy.
Wszystko jasne. Rozumiem, że obiektów nie można przechylić, aby umieścić go na zboczu? Napisz jeszcze proszę co zrobić, aby dodać obiekty na innej mapie. Wystarczy w bind_stalker wpisać pod:

Kod: Zaznacz cały

(level.name() == "l01_escape")


np:

Kod: Zaznacz cały

(level.name() == "l02_garbage")


?

W ogóle to warto dodać, że trzeba rozpocząć nową grę po dodaniu każdego nowego obiektu i zalecam umieszczać obiekty w miejscach, w których jest mała szansa, że będzie tamtędy przechodził NPC, który wprawdzie nie przeniknie ale nie obejdzie obiektu dookoła.
TAJAG JUDYN
HAZBAZ
SEKODYN!
Łowca
Posty: 505
Rejestracja: 16 paź 2011, 00:09
Ostatnio: 13 paź 2019, 11:44
Kozaki:
130
Na górę
Post autor: nelson82 
Zdaje się, że za kąt nachylenia odpowiada ta linijka

Kod: Zaznacz cały

dir: 0.212, 0.000, 0.977
(przykład), ale nigdy z tym nie ekspyrementowałem, więc nie wiem jakie wartości wpisać.

Jeśli chcesz dodać obiekt na innej mapie, po prostu przypisujesz mu współrzędne z danej mapy korzystając z zapodanego moda na określanie współrzędnych.
łatwiej już nie będzie
Odpowiedz

Podobne tematy