Modding - Nowe technologie
Posted: Fri Jun 17, 2022 12:03 pm
Na prośbę Mietka postanowiłem napisać ten krótki poradnik "Jak dodać nowe technologie do moda".
1. W pliku Data/GameInit/technologies.txt dodaj wpis dla nowej technologii, przykład:
2. Kopiujemy foldery Data oraz Interface ze swojego moda do głównego folderu gry.

3. W folderze Interface musi znajdować się plik CommButtons.dat który można wypakować z jednego z archiwów .OWP.
4. Odpalamy program OWCommPanelButtons.

5. Przechodzimy do zakładki Buttons i wypełniamy formularz dla nowego przycisku:

Name: ID tekstowe guzika
TechReq: Wymagana technologia (ID z pliku technologies.txt, gdy 0 wówczas nie jest wymagana żadna technologia)
LangReqId: ID opisu wymagań (ID linijki z pliku LangXXX.wri w Texts)
LabTech: ID technologii z pliku technologies.txt
LangID: ID nazwy technologii (ID linijki z pliku LangXXX.wri w Texts)
Command: ustawiamy na Custom Research Command
Command Str: wpisujemy numer technologii z technologies.txt
Next page: zostawiamy jako NONE
6. Przechodzimy do zakładki Pages i dodajemy guzik w odpowiednim miejscu (w dowolnej zakładce).

7. Przenosimy plik CommButtons.dat do folderu Interface w naszym modzie.
W tym momencie, mamy już nową technologię lecz będzie nam brakować kilku ważnych detali.
Po pierwsze, proponuje dodać brakujące opisy dla dodanej technologii w pliku LangPOL.wri (ewentualnie też w LangENG.wri jeżeli planujemy angielskie napisy).
Przykład z SoS'a:
Drugim brakującym elementem będzie brak miniaturki lub błędna miniaturka podczas badań. Można to zrobić za pomocą krótkiego skryptu lua. Poniżej wklejam kod z SoS'a który odpowiada za obsługę miniaturek badań, można go dostosować do własnych potrzeb.
Na koniec chciałbym wspomnieć że istnieje opcja dodawania własnych grafik przycisków, aby to osiągnąć należy zmodyfikować pliki buttons.png oraz buttons small.png w następujący sposób:
buttons.png (doklejamy 3 kolumnę przycisków po prawej)

buttons small.png (doklejamy przyciski na dole)

W razie problemów zapraszam do zaglądnięcia w pliki SoS'a, ewentualnie do pytań w tym temacie.
Pozdro
1. W pliku Data/GameInit/technologies.txt dodaj wpis dla nowej technologii, przykład:
Code: Select all
TECHNOLOGY 82
NAME "Basic tools"
NATIONS 1 1 1
REQUIRES 0
LAB 9
TIME 40

3. W folderze Interface musi znajdować się plik CommButtons.dat który można wypakować z jednego z archiwów .OWP.
4. Odpalamy program OWCommPanelButtons.

5. Przechodzimy do zakładki Buttons i wypełniamy formularz dla nowego przycisku:

Name: ID tekstowe guzika
TechReq: Wymagana technologia (ID z pliku technologies.txt, gdy 0 wówczas nie jest wymagana żadna technologia)
LangReqId: ID opisu wymagań (ID linijki z pliku LangXXX.wri w Texts)
LabTech: ID technologii z pliku technologies.txt
LangID: ID nazwy technologii (ID linijki z pliku LangXXX.wri w Texts)
Command: ustawiamy na Custom Research Command
Command Str: wpisujemy numer technologii z technologies.txt
Next page: zostawiamy jako NONE
6. Przechodzimy do zakładki Pages i dodajemy guzik w odpowiednim miejscu (w dowolnej zakładce).

7. Przenosimy plik CommButtons.dat do folderu Interface w naszym modzie.
W tym momencie, mamy już nową technologię lecz będzie nam brakować kilku ważnych detali.
Po pierwsze, proponuje dodać brakujące opisy dla dodanej technologii w pliku LangPOL.wri (ewentualnie też w LangENG.wri jeżeli planujemy angielskie napisy).
Przykład z SoS'a:
Code: Select all
6900=[|Z] Zbadaj Materiały popromienne. ~Umożliwia budowę bomb biologicznych.
6901=Wymaga znajomości Skażenie syberytu i Implozja syberytu
6902=[|Z] Zbadaj Artylerię. ~Umożliwia budowę artylerii.
6903=Wymaga znajomości Zaawansowanej metalurgii
6904=[|A] Zbadaj Podstawowe narzędzia. ~Umożliwia dalsze badania nad narzędziami.
6905=Wymaga znajomości Podstawowych narzędzi.
6906=[|S] Zbadaj Pojemniki. ~Umożliwia budowę komór transportowych.
6907=Wymaga znajomości Pojemników.
6908=[|Z] Zbadaj podwozie gąsienicowe. ~Umożliwia budowę rozbudowy gąsienicowej.
6909=Wymaga znajomości Gąsienic.
6910=[|C] Zbadaj Dźwig. ~Umożliwia budowę dźwigu.
6911=Wymaga znajomości Dźwigu.
6912=[|B] Zbadaj Buldożer. ~Umożliwia budowę buldożera.
6913=Wymaga znajomości Buldożera.
6914=[|E] Zbadaj Poduszkowiec. ~Umożliwia budowę poduszkowców.
6915=Wymaga znajomości Poduszkowców.
Code: Select all
-- lua
IT_LR_Artillery = 80;
IT_LR_RadMat = 81;
IT_LR_NonCombat = 82;
IT_LR_Cargo = 83;
IT_LR_Track = 84;
IT_LR_Crane = 85;
IT_LR_Bulldozer = 86;
IT_LR_Hovercraft = 87;
-- buttons.txt
SOS_TECH = {
{
TECH = IT_LR_Artillery,
BUTTON = 68,
},
{
TECH = IT_LR_RadMat,
BUTTON = 56
},
{
TECH = IT_LR_NonCombat,
BUTTON = 42
},
{
TECH = IT_LR_Cargo,
BUTTON = 28
},
{
TECH = IT_LR_Track,
BUTTON = 27
},
{
TECH = IT_LR_Crane,
BUTTON = 72
},
{
TECH = IT_LR_Bulldozer,
BUTTON = 170
},
{
TECH = IT_LR_Hovercraft,
BUTTON = 173
}
}
function GetLabQueueIcon(ID)
if (ID <= -1) then
return getIconTypeIndex(BudLab2IT(-ID));
elseif (ID >= 80) then
return getCustomIconTypeIndex(ID);
else
return getIconTypeIndex(_Tech2ITTable[ID]);
end;
end;
function getCustomIconTypeIndex(TECH)
for i = 1, #SOS_TECH do
if (SOS_TECH[i].TECH == TECH) then
return SOS_TECH[i].BUTTON;
end;
end;
return -1;
end;
buttons.png (doklejamy 3 kolumnę przycisków po prawej)

buttons small.png (doklejamy przyciski na dole)

W razie problemów zapraszam do zaglądnięcia w pliki SoS'a, ewentualnie do pytań w tym temacie.
Pozdro
