|
|
Forum Graczy Homeworld Forum dla fanow i graczy gier serii Homeworld
|
|
|
|
|
|
|
|
|
|
|
DolphinX
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
|
Wysłany: Pon 15:04, 12 Paź 2009 Temat postu: Megatutorial od zera do HW2 moddera |
|
|
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 ) 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
|
|
|
|
|
|
|
|
|
|
|
|
|
Filek
Bosman
Dołączył: 14 Kwi 2009
Posty: 646
Przeczytał: 0 tematów
Pomógł: 6 razy Ostrzeżeń: 0/5 Skąd: kujawsko-pomorskie
|
Wysłany: Pon 15:32, 12 Paź 2009 Temat postu: |
|
|
[link widoczny dla zalogowanych]
Ależ proszę
Po ściągnięciu zestawiku mamy dostęp do większości potrzebnych (i masy zbędnych ) 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
Post został pochwalony 0 razy
Ostatnio zmieniony przez Filek dnia Pon 15:33, 12 Paź 2009, w całości zmieniany 3 razy
|
|
|
|
|
|
|
|
|
|
|
Rudy
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
|
Wysłany: Pon 17:15, 12 Paź 2009 Temat postu: |
|
|
Jednym słowem znajdziesz tam wszystko, czego potrzebujesz (jeżeli tam tego nie ma, znaczy, że nie ma nigdzie)
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
|
|
|
|
|
|
|
|
|
|
|
DolphinX
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
|
Wysłany: Śro 18:52, 14 Paź 2009 Temat postu: |
|
|
Wracając do modowania zajmijmy się teraz skryptami . 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
|
|
|
|
|
|
|
|
|
|
|
Filek
Bosman
Dołączył: 14 Kwi 2009
Posty: 646
Przeczytał: 0 tematów
Pomógł: 6 razy Ostrzeżeń: 0/5 Skąd: kujawsko-pomorskie
|
Wysłany: Pią 15:14, 16 Paź 2009 Temat postu: |
|
|
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
|
|
|
|
|
|
|
|
|
|
|
DolphinX
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
|
Wysłany: Pią 20:12, 16 Paź 2009 Temat postu: |
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|