Forum Forum Graczy Homeworld Strona Główna Forum Graczy Homeworld
Forum dla fanow i graczy gier serii Homeworld


Megatutorial od zera do HW2 moddera

 
Napisz nowy temat   Odpowiedz do tematu    Forum Forum Graczy Homeworld Strona Główna -> Dodatki do gry - (HW2 Classic)
Zobacz poprzedni temat :: Zobacz następny temat  
DolphinX
Mł. Chorąży Marynarki
Mł. Chorąży Marynarki


Dołączył: 28 Lip 2007
Posty: 1364
Przeczytał: 0 tematów

Pomógł: 12 razy
Ostrzeżeń: 0/5
Skąd: Myszków

 PostWysłany: Pon 15:04, 12 Paź 2009    Temat postu: Megatutorial od zera do HW2 moddera Back to top

Rozpoczynam tym samym cykl o modowaniu naszej ulubionej gry. Dlaczego? Nudzi mi się .

1. Zaczynamy od przygotowania sobie warsztatu. Należy ściągnąć RDN toolkit, podstawowy zbiór narzędzi i dokumentów opisujących HW. Linka nie podaję, bo mi się szukać nie chce.

2. Gdy mamy już RDN, instalujemy go, i szukamy narzędzia do rozpakowywania archiwów (Mod Packager). Rozpakowujemy sobie archiwum Homeworld2.big (Homeworld2\Data) do jakiegoś folderu, zajmie nam ~600 MB. Przydałoby się też rozpakować archiwum English.big, ponieważ są tam stałe językowe (podpisy, napisy, opisy...).

3. Niestety, większość skryptów HW dostępna jest w postaci skompilowanej. Aby się do nich dobrać należy je zdekompilować, co czynimy programem CFLuaDC (nie ma go w RDN, prawdopodobnie jest gdzieś w necie, jak nie to go wrzucę później). Ale... i tu pojawia się problem.
Po zdekompilowaniu (prawdopodobnie to wina systemu, może wystarczy zmienić na czas modowania zapis przecinka w systemie dziesiętnym w opcjach językowych Windowsa) kropka zamienia się na przecinek (między częścią ułamkową). Trzeba ręcznie zamienić wszystkie przecinki (ale tylko te bez spacji dookoła, czyli te liczbowe Wink) na kropki. Inaczej gra może się włączy, ale będzie źle interpretowała skrypt.

Na chwilę obecną wystarczy, dopiszę coś wieczorem.

Edit: Sprawdziłem moją teorię, potwierdziła się. Jeśli się umie można sobie zmienić symbol dziesiętny z przecinka na kropkę zamiast zamieniać je ręcznie.


Post został pochwalony 0 razy

Ostatnio zmieniony przez DolphinX dnia Pon 15:08, 12 Paź 2009, w całości zmieniany 1 raz
 
Zobacz profil autora
Filek
Bosman
Bosman


Dołączył: 14 Kwi 2009
Posty: 646
Przeczytał: 0 tematów

Pomógł: 6 razy
Ostrzeżeń: 0/5
Skąd: kujawsko-pomorskie

 PostWysłany: Pon 15:32, 12 Paź 2009    Temat postu: Back to top

[link widoczny dla zalogowanych]

Ależ proszę Smile

Po ściągnięciu zestawiku mamy dostęp do większości potrzebnych (i masy zbędnych bleh) programów, w tym:

HW2 - Relic Developers Network Tools - Original Relic Tool Kit
HW2 - Relic Developers Network Tools Update - Update kit

oraz:

HW2 - 4E534B - CFHodEdit 3.1.5 - The best Homeworld2 .hod editor/creator with manual
HW2 - 4E534B - CFLuaDC - Decompiles HW2 lua script files - I do not know if it compiles scripts as well

Wink


Post został pochwalony 0 razy

Ostatnio zmieniony przez Filek dnia Pon 15:33, 12 Paź 2009, w całości zmieniany 3 razy
 
Zobacz profil autora
Rudy
Mł. Chorąży Marynarki
Mł. Chorąży Marynarki


Dołączył: 21 Mar 2008
Posty: 1321
Przeczytał: 0 tematów

Pomógł: 21 razy
Ostrzeżeń: 0/5
Skąd: Z Hiigary

 PostWysłany: Pon 17:15, 12 Paź 2009    Temat postu: Back to top

Jednym słowem znajdziesz tam wszystko, czego potrzebujesz (jeżeli tam tego nie ma, znaczy, że nie ma nigdzie) Smile

Znalazłem w archiwum GG rozmowę na temat pliku event. Po drobnym opracowaniu zamieszczam ją tutaj:



Pliki EVENTS
Opis:
Plik ten służy do przechowywania informacji n/t wszystkich efektów, jakie widzisz odnośnie tego statku. Jedynie, co temu plikowi umyka, to odgłos ze środka statku (on znajduje się w pliku SHIP). Bez tego pliku gra odpali, ale nie może mieć w SHIP wpisanych w broniach żadnych donośników animacji, nie może ich być także w plikach MADSTATE i MAD. Plik można podzielić na dwie części: animations i efects. W animations deklarowane są animacje i ich właściwości. W effects jest podany każdy efekt ze staku, jak np wybuchy, wystzały z broni, uszkodzenia itd.
Właściwości animacji:
Name: Nazwa animacji. Te same nazwy powinieneś znaleźć niżej, w efektach, w SHIP, przy broniach, jak również niektóre w MADSTATE i MAD.
Length: Długość animacji. Ten czas jest mnożony przez czas efektu aby wyszły sek., tzn np. jakaś animacja ma czas 2, czyli jak czas efektu ma 0.2 to znaczy że efekt zostanie pokazany po 0.2*2=0.4 sekundach po użyciu animacji. O czasie efektu niżej.
Looping (ang. powtarzanie): czy animacja po zakończeniu powinna się powtórzyć jeszcze raz.
Parent, min i max: Nazwa właściwości statku, który może kontrolować animację. Min i max określa, jaką wartość ma mieć parent, aby animacja została wykonana. Przykłady można zobaczyć w większych statkach przy parencie "Damage".
Właściwości efektów:
Event: Nazwa, tutaj nazwa może być dowolna (występuje tylko w arkuszu)
Animation: pod jaką animację efekt jest podporządkowany
Time: czas po aktywowaniu animacji. Nie może on być większy od 1, dlatego wyżej, w animacjach znajduje się jej czas. -1 wpisuje sie do animacji powtarzających się.
Marker: miejsce wyświetlenia efektu (określane w pliku HOD, przecinek oznacza wybór pomiędzy jednym z nich)
FX: wygląd efektu. Efekty znajdują się w folderze art/fx (przecinek oznacza wybór pomiędzy jednym z nich
Sound: dźwięk efektu. Dźwięki znajdują się w folderze sound/sfx (przecinek oznacza wybór pomiędzy jednym z nich
fx_... : dodatkowe informacje o efekcie. Nie są obowiązkowe.


Post został pochwalony 0 razy
 
Zobacz profil autora
DolphinX
Mł. Chorąży Marynarki
Mł. Chorąży Marynarki


Dołączył: 28 Lip 2007
Posty: 1364
Przeczytał: 0 tematów

Pomógł: 12 razy
Ostrzeżeń: 0/5
Skąd: Myszków

 PostWysłany: Śro 18:52, 14 Paź 2009    Temat postu: Back to top

Wracając do modowania zajmijmy się teraz skryptami Wink. Zacznę od podstawowego skryptu - listy ras.

Otwieramy folder z wypakowanym wcześniej archiwum. W folderze scripts mamy plik race.lua. Jak już pisałem należy go zdekompilować (patrz wyżej).

Skrypt wygląda tak:

Kod:
NotPlayable = 0
Playable = 1

races =
{
     {"Invalid",  "Invalid", "", "", 0, NotPlayable,"" },

   {"Hiigaran", "$1100", "hyperspace_gate", "etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN", 9.5, Playable,"HGN_"},

   {"Vaygr",    "$1101", "hyperspace_gate_vgr", "etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN", 9.5, Playable,"VGR_"},

   {"Keeper",  "$1102", "hyperspace_gate_kpr", "etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN", 12.5, NotPlayable,"KPR_"},

   {"Bentusi",  "$1103", "hyperspace_gate_bentusi", "etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN", 18.5, NotPlayable,"BEN_"},
   {"Random", "$3226", "", "", 0, Playable, ""}};
}


W klamrach {} znajdują się poszczególne rasy. Ostatnia zawsze musi być Random!

Poszczególne parametry oddzielone są przecinkami, i są to kolejno:
-nazwa wewnętrzna
-nazwa wyświetlana (mamy tutaj odnośniki w postaci $xxxx, jednak my piszemy zamiast tego nazwę)
-nazwa pliku z efektem hiperprzestrzennym, najlepiej wybrać jedną z już wpisanych
-ścieżka do efektu dźwiękowego skoku hiperprzestrzennego, jak wyżej
-czas trwania efektu
-czy rasa jest grywalna? 0/1, albo NotPlayable/Playable (na początku skryptu są nadane wartości pod te stałe)
-prefiks jednostek (prawdopodobnie ważny, ja nie zauważyłem)

Dla przykładu chcąc dodać grywalną rasę Kadeshi wpisujemy (przed Random)
Kod:
{"Kadeshi",  "Kadeshi", "hyperspace_gate", "etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN", 9.5, Playable,"KAD_" },


Post został pochwalony 0 razy

Ostatnio zmieniony przez DolphinX dnia Śro 18:52, 14 Paź 2009, w całości zmieniany 1 raz
 
Zobacz profil autora
Filek
Bosman
Bosman


Dołączył: 14 Kwi 2009
Posty: 646
Przeczytał: 0 tematów

Pomógł: 6 razy
Ostrzeżeń: 0/5
Skąd: kujawsko-pomorskie

 PostWysłany: Pią 15:14, 16 Paź 2009    Temat postu: Back to top

Dolphin, prefix jednostek jest baaardzo ważny w kampanii...

Tam jeśli wstawisz jednostke ze złym prefiksem, gra się wyłącza po załadowaniu mapy i obejrzeniu filmiku...


Post został pochwalony 0 razy
 
Zobacz profil autora
DolphinX
Mł. Chorąży Marynarki
Mł. Chorąży Marynarki


Dołączył: 28 Lip 2007
Posty: 1364
Przeczytał: 0 tematów

Pomógł: 12 razy
Ostrzeżeń: 0/5
Skąd: Myszków

 PostWysłany: Pią 20:12, 16 Paź 2009    Temat postu: Back to top

Myślę, że każdy chętnie pobawi się możliwością zmiany floty startowej. No bo kto nie chciałby urządzić sobie wielkiej walki z 8 Sajuukami i 16 Pancernikami ?

W folderze scripts mamy folder startingfleets, a w nim kilka plików z końcówką 00. W zależności od rasy otwieramy jeden z nich i dostajemy coś takiego:
Kod:
PersistantData = {
  StrikeGroups = {
  },
  Squadrons = {
    {
      type = "Vgr_MotherShip",
      subsystems = {
      },
      shiphold = {
      },
      name = "",
      size = 1,
    },
    {
      type = "Vgr_ResourceCollector",
      subsystems = {
      },
      shiphold = {
      },
      name = "",
      size = 1,     -- only 1 in each squad
      number = 6, -- start with 6 of these
    },   
    {
      type = "Vgr_Carrier",
      subsystems = {
      },
      shiphold = {
      },
      name = "",
      size = 1,     -- only 1 in each squad
      number = 1,
    },
   },
  Research = {
  },
}

Każda jednostka zamknięta jest w nawiasach klamrowych. Wystarczy się przyjrzeć żeby zauważyć, że są one pogrupowane w sekcje. Jeśli chcemy jakąś dodać trzeba przed końcem całej sekcji dodać kolejną podsekcję.
Czyli chcąc dodać 8 Sajuuków piszemy zaraz po nawiasie zamykającym krążownik (koniecznie musi być za nim przecinek, inaczej gra wywali przy uruchomieniu, często się na to można złapać) tak:
Kod:
{
      type = "Kpr_Sajuuk", -- nazwa folderu i plików jednostki
      subsystems = {
      },
      shiphold = {
      },
      name = "",
      size = 1,     -- tutaj mamy wielkość eskadry, jeśli stworzymy np. 5 myśliwców, a tutaj wpiszemy 1 to myśliwce będą miały 20% HP, bo będzie po jednym w eskadrze
      number = 8, -- ilość jednostek
    },


Post został pochwalony 0 razy
 
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Forum Graczy Homeworld Strona Główna -> Dodatki do gry - (HW2 Classic) Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Możesz zmieniać swoje posty
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach