Быстрое создание новой расы
Добавлено: 28 апр 2016, 15:27
Как и обещал, мини руководство по добавлению новой расы. Просьба сильно не пинать, для меня всё это впервой! 
Конструктивная критика и дополнения приветствуются!
Сначала подготовка:
В папке "ModKit\1.03c" создаём папку "Rus".
Туда копируем файл "rtq.lng" из папки "Lang\Rus".
Затем запускаем "rtq_es_conv.bat".
После этого копируем в папку "ModKit\1.03c" все файлы из папки "ModKit\1.03c\Rus" с заменой.
Потом копируем с переименовыванием любой из "r_*.a" файлов.
В моём случае "r_mag.a" в "r_mex.a".
Открываем наш файл в программе notepad++. Далее показано что я изменял:
затем открываем файл "const.a":
открываем файл "rtq.a":
запускаем файл "rtq_es.bat", после смотрим файл "rtq.err".
Если всё нормально, тогда копируем в папку для модов файлы:
"rtq.cht", "rtq.gen", "rtq.pht", "rtq.rht"
создаём папку "Lang\Rus" и копируем туда "rtq.lng" из "ModKit\1.03c"
создаём папку "Lang\Rus\RaceDescr" и ложим туда "mex.txt"(я просто переименовал файл "mag.txt" и отредактировал)
создаём папки "Images\Races", "Images\Races\big", "Images\Races\Icon" и ложим туда наши картинки.
копируем файл "ShipBody.all" из корня игры и добавляем туда:
копируем файл "PLANTYPE.INI" из корня игры и добавляем:
если мы хотим сделать стартовую планету типа "гайя", тогда надо сделать по другому:
Но учтите, что её будут охранять пираты.
Чтобы этого не происходило, нужно в файле "pirates.a" удалить следующие строки кода:
Всё! Наша раса добавлена.
Ну и прикладываю сам мод

Конструктивная критика и дополнения приветствуются!
Сначала подготовка:
В папке "ModKit\1.03c" создаём папку "Rus".
Туда копируем файл "rtq.lng" из папки "Lang\Rus".
Затем запускаем "rtq_es_conv.bat".
После этого копируем в папку "ModKit\1.03c" все файлы из папки "ModKit\1.03c\Rus" с заменой.
Потом копируем с переименовыванием любой из "r_*.a" файлов.
В моём случае "r_mag.a" в "r_mex.a".
Открываем наш файл в программе notepad++. Далее показано что я изменял:
Код: Выделить всё
def object Mexanoid
begin
Attribute raceID = raceMex
String Attribute strID = "Mex"
String Attribute faceImage = "images/Races/Mex128.png" //маленькая картинка нашей расы
String Attribute bigImage = "images/Races/big/Mexanoid_1024.png" //большая картинка нашей расы
String Attribute Color = "#808080" //цвет
String Attribute DescriptionFile = "RaceDescr/mex.txt" // файл с описанием нашей расы
String Attribute IconImage = "Images/Races/Icon/mex.png" // иконка нашей расы на система и т.д.
...
String Attribute RaceName = /*idx:6457*/L"Механоиды"
String Attribute RaceNameSingle = /*idx:6458*/L"Механоид"
String Attribute RaceNameFull = /*idx:6459*/L"Киберединство"
String Attribute RaceNameFullRod = /*idx:6460*/L"Киберединства"
String Attribute RaceNameFullTvo = /*idx:6461*/L"Киберединством"
String Attribute RaceNameFullDat = /*idx:6462*/L"Киберединство"
String Attribute RaceNameWhoes = /*idx:6463*/L"Механоидный"
...
Attribute RemembersBad = 5000
...
call UFAddDesignName(this.raceID, /*idx:6624*/L"Тип1_")
call UFAddDesignName(this.raceID, /*idx:6625*/L"Тип2_")
call UFAddDesignName(this.raceID, /*idx:6626*/L"Тип3_")
call UFAddDesignName(this.raceID, /*idx:6627*/L"Тип4_")
call UFAddDesignName(this.raceID, /*idx:6628*/L"Тип5_")
call UFAddDesignName(this.raceID, /*idx:6629*/L"Тип6_")
call UFAddDesignName(this.raceID, /*idx:6630*/L"Тип7_")
call UFAddDesignName(this.raceID, /*idx:6631*/L"Тип8_")
call UFAddDesignName(this.raceID, /*idx:6632*/L"Тип9_")
...
phrase AddColonyNames()
this.ColonyNames add next /*idx:6633*/L"Первичный"
this.ColonyNames add next /*idx:6634*/L"Вторичный"
this.ColonyNames add next /*idx:6635*/L"Третичный"
this.ColonyNames add next /*idx:6636*/L"Запасной"
end phrase
...
initial
Mexanoid.inherit AbstractRace
Mexanoid.Init("Room_Mexanoid")
end initial
end
ROOM Room_Mexanoid
conv Main check()
Mexanoid.MainConv()
end conv
END ROOM
затем открываем файл "const.a":
Код: Выделить всё
...
def const racePirates = 9
def const raceBogovans = 10
def const raceMex = 11 //номер нашей рассы. ВАЖНО!!! свои рассы добавляем после Богованов.
def const raceCount = 12 //увеличиваем счётчик
...
открываем файл "rtq.a":
Код: Выделить всё
...
#include "pirates.a"
#include "bogovans.a"
#include "r_Mex.a" //добавляем свой файл
...
запускаем файл "rtq_es.bat", после смотрим файл "rtq.err".
Если всё нормально, тогда копируем в папку для модов файлы:
"rtq.cht", "rtq.gen", "rtq.pht", "rtq.rht"
создаём папку "Lang\Rus" и копируем туда "rtq.lng" из "ModKit\1.03c"
создаём папку "Lang\Rus\RaceDescr" и ложим туда "mex.txt"(я просто переименовал файл "mag.txt" и отредактировал)
создаём папки "Images\Races", "Images\Races\big", "Images\Races\Icon" и ложим туда наши картинки.
копируем файл "ShipBody.all" из корня игры и добавляем туда:
Код: Выделить всё
...
[SHIP_BODY]
Type Fighter
Race Mex
Size 62 36
Decks 1
Img "Ships/Top/n50_1.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 0.400000
own_hull 20
hangarUse 10
containerFit Small10 1
cell_info_path "m1.cli"
game_resolution 32 24
// game_center 16 12
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n50_atlas_2048.idx"
"Ships/n50_atlas_1024.idx"
"Ships/n50_atlas_512.idx"
"Ships/n50_atlas_256.idx"
[SHIP_BODY]
Type Interceptor
Race Mex
Size 55 42
Decks 1
Img "Ships/Top/n51_1.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 0.900000
own_hull 30
hangarUse 15
containerFit Small15 1
cell_info_path "m2.cli"
game_resolution 35 26
// game_center 17 13
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n51_atlas_2048.idx"
"Ships/n51_atlas_1024.idx"
"Ships/n51_atlas_512.idx"
"Ships/n51_atlas_256.idx"
[SHIP_BODY]
Type Heavy_Fighter
Race Mex
Size 62 38
Decks 1
Img "Ships/Top/n52_1.png" BIG
own_weight 0.000000
hullMult 0.500000
weightMult 1.250000
own_hull 50
hangarUse 25
containerFit Medium25 1
cell_info_path "m3.cli"
game_resolution 38 29
// game_center 19 14
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n52_atlas_2048.idx"
"Ships/n52_atlas_1024.idx"
"Ships/n52_atlas_512.idx"
"Ships/n52_atlas_256.idx"
[SHIP_BODY]
Type Assult_Shuttle
Race Mex
Size 68 48
Decks 2
Img "Ships/Top/n53_0.png" BIG
Img "Ships/Top/n53_1.png" BIG
own_weight 0.000000
hullMult 0.330000
weightMult 1.650000
own_hull 40
hangarUse 40
containerFit Medium40 1
HasTurretsAtTopDeck
cell_info_path "m4.cli"
game_resolution 50 37
// game_center 25 19
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n53_atlas_2048.idx"
"Ships/n53_atlas_1024.idx"
"Ships/n53_atlas_512.idx"
"Ships/n53_atlas_256.idx"
[SHIP_BODY]
Type Corvette
Race Mex
Size 64 58
Decks 2
Img "Ships/Top/n54_0.png" BIG
Img "Ships/Top/n54_1.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.000000
own_hull 1200
HasTurretsAtTopDeck
cell_info_path "m5.cli"
game_resolution 512 384
post_shift 0.075
// game_center 320 240
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
NULL
"Ships/n54_turn.idx"
"Ships/n54_turn_256.idx"
"Ships/n54_turn_128.idx"
[SHIP_BODY]
Type Frigate
Race Mex
Size 45 67
Decks 3
Img "Ships/Top/n55_0.png" BIG
Img "Ships/Top/n55_1.png" BIG
Img "Ships/Top/n55_2.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.250000
own_hull 2400
HasTurretsAtTopDeck
cell_info_path "m6.cli"
game_resolution 800 600
post_shift 0.075
// game_center 400 250
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
NULL
"Ships/n55_turn.idx"
"Ships/n55_turn_256.idx"
"Ships/n55_turn_128.idx"
[SHIP_BODY]
Type Cruiser
Race Mex
Size 41 75
Decks 3
Img "Ships/Top/n56_0.png" BIG
Img "Ships/Top/n56_1.png" BIG
Img "Ships/Top/n56_2.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 2.000000
own_hull 3600
HasTurretsAtTopDeck
cell_info_path "m7.cli"
game_resolution 1024 768
post_shift 0.08
// game_center 450 350
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
NULL
"Ships/n56_turn.idx"
"Ships/n56_turn_256.idx"
"Ships/n56_turn_128.idx"
[SHIP_BODY]
Type Battleship
Race Mex
Size 82 89
Decks 3
Img "Ships/Top/n57_0.png" BIG
Img "Ships/Top/n57_1.png" BIG
Img "Ships/Top/n57_2.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.500000
own_hull 4800
HasTurretsAtTopDeck
cell_info_path "m8.cli"
game_resolution 1364 1023
post_shift 0.075
// game_center 600 400
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n57_turn.idx"
"Ships/n57_turn_512.idx"
"Ships/n57_turn_256.idx"
"Ships/n57_turn_128.idx"
[SHIP_BODY]
Type Drednought
Race Mex
Size 66 97
Decks 4
Img "Ships/Top/n59_0.png" BIG
Img "Ships/Top/n59_1.png" BIG
Img "Ships/Top/n59_2.png" BIG
Img "Ships/Top/n59_3.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.250000
own_hull 6400
HasTurretsAtTopDeck
cell_info_path "m9.cli"
game_resolution 2048 1536
post_shift 0.125
// game_center 850 560
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n59_turn.idx"
"Ships/n59_turn_512.idx"
"Ships/n59_turn_256.idx"
"Ships/n59_turn_128.idx"
[SHIP_BODY]
Type Satellite
Race Mex
Size 50 45
Decks 3
Img "Ships/Top/n5b_0.png" BIG
Img "Ships/Top/n5b_1.png" BIG
Img "Ships/Top/n5b_2.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.000000
own_hull 1600
containerFit Big200 8
HasTurretsAtTopDeck
cell_info_path "mb.cli"
game_resolution 800 600
post_shift 0.055
// game_center 400 250
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
NULL
"Ships/n5b_turn.idx"
"Ships/n5b_turn_256.idx"
"Ships/n5b_turn_128.idx"
[SHIP_BODY]
Type Orbital_Station
Race Mex
Size 132 104
Decks 5
Img "Ships/Top/n5c_0.png" BIG
Img "Ships/Top/n5c_1.png" BIG
Img "Ships/Top/n5c_2.png" BIG
Img "Ships/Top/n5c_3.png" BIG
Img "Ships/Top/n5c_4.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.250000
own_hull 9000
containerFit Big400 32
HasTurretsAtTopDeck
cell_info_path "mc.cli"
game_resolution 1800 1350
post_shift 0.03
// game_center 900 600
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
"Ships/n5c_turn.idx"
"Ships/n5c_turn_512.idx"
"Ships/n5c_turn_256.idx"
"Ships/n5c_turn_128.idx"
[SHIP_BODY]
Type Freighter
Race Mex
Size 54 103
Decks 3
Img "Ships/Top/n5a_0.png" BIG
Img "Ships/Top/n5a_1.png" BIG
Img "Ships/Top/n5a_2.png" BIG
own_weight 0.000000
hullMult 1.000000
weightMult 1.000000
own_hull 1200
HasTurretsAtTopDeck
cell_info_path "ma.cli"
game_resolution 1364 1023
post_shift 0.13
// game_center 600 400
ellipse_ratio 0.500000
BattleMov
NULL
NULL
NULL
NULL
NULL
"Ships/n5a_turn.idx"
"Ships/n5a_turn_256.idx"
"Ships/n5a_turn_128.idx"
копируем файл "PLANTYPE.INI" из корня игры и добавляем:
Код: Выделить всё
...
PLANET
VeryGood "Earthlike" "Earthlike_name"
FullInfo "Earthlike_descr"
Sound "SOUND/D/100_PLANET_EARTH.wav"
Size Min 0.9 Max 1.1
Generate Manual 5
Position Middle
Prefer "G" AnySize 0
"K" AnySize 1 "F" AnySize 1
"A" AnySize 2 "M" AnySize 2
"B" AnySize 3
Preset "Temperate"
Preset "Temperate.1"
Preset "Temperate.2"
Preset "Temperate.3"
Preset "Temperate.4"
Preset "Temperate.5"
CanBeHomeworld
For Drill
For Ery use "Temperate.3"
For Gava use "Temperate.5"
For Hum use "Temperate"
For Log
For Mag use "Temperate.1"
For Sha use "Temperate.4"
For Urg
For Vag use "Temperate.2"
For Mex //наша раса
...
если мы хотим сделать стартовую планету типа "гайя", тогда надо сделать по другому:
Код: Выделить всё
PLANET
VeryGood "Gaia" "Gaia_name"
FullInfo "Gaia_descr"
Sound "SOUND/D/100_PLANET_EARTH.wav"
Size Min 0.9 Max 1.1
Generate Manual 1 // отсюда удалил " RND 25" иначе не всегда генерируется, и получается вылет
Position Middle
Prefer "G" AnySize 0
Preset "Gaia"
CanBeHomeworld //добавляем
For Mex //нашу рассу
Free Population
...
Но учтите, что её будут охранять пираты.
Чтобы этого не происходило, нужно в файле "pirates.a" удалить следующие строки кода:
Код: Выделить всё
...
phrase ProtectGaiaPlanets()
if (this.Exists==No)
this.Register()
end if
local GaiaType = call UFSearchPlanetType("Gaia")
local DesignFighter = call UFGetShipDesignByName("Pir_Fighter_hard", this.raceID)
if (0!=GaiaType)
call SetCallback(2)
call UFEnumerateAllStars(E1_UNDEFINED)
call ClearCallback()
local i
local j
local k
local StarHandle
local PlanetHandle
local FleetHandle
local ShipFighter
for (i = 1, i<=HandleList2 SIZE, i++)
StarHandle = HandleList2 get (i)
for (j = 0, j<call UFGetPlanetsNum(StarHandle), j++)
PlanetHandle = call UFGetPlanet(StarHandle, j)
if (GaiaType==call UFGetPlanetType(PlanetHandle))
FleetHandle = call UFNewFleet(this.raceID, StarHandle, 0)
for (k = 0, k<80, k++)
ShipFighter = call UFNewShip(DesignFighter, this.raceID)
call UFSetShipAIType(ShipFighter, aisFighter)
call UFAddShipToFleet(FleetHandle, ShipFighter)
end for
end if
end for
end for
end if
end phrase
...
on event "GALAXY STARTED" callm this.ProtectGaiaPlanets()
...
Всё! Наша раса добавлена.
Ну и прикладываю сам мод