Serpent wrote: ↑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.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: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.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.
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: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
Author: Serpent
Topic: viewtopic.php?f=42&t=6469