Для начала кратко разберу что такое INI
Если вы хотите создавать моды то должны знать что INI это папка в которой лежат все основные файлы такого же формата (.ini) с параметрами Generals и как там бить я все подробно объясню.
И так начнем по порядку :
Папка Default в ней хранятся параметры искусственного интеллекта (ИИ или же как его называют - Бота) в ней может находится много файлов самый важный это AIData.ini там хранятся параметры покупки повышений бота, его построек.
После этого идет папка MappedImages в ней хранятся еще две папки в них есть различные ini файлы и именно в них надо прописывать новые картинки в ваш мод.
Самая важная это папка Object в ней возмещаются файлы с объектами ну это потом.
Обсудим оставшийся ini файлы в папке INI -
Animation2D.ini - Тут кодировка параметров анимации игры - текстур и их воздействие в игре.
Armor.ini - Параметры брони
AudioSettings.ini - Установка значений музыки в игре.
Campaign.ini - Здесь прописываются все карты миссии, обучения, соревнование и т.п.
ChallengeMode.ini - Очень тонкий кодинг, прописывает генералов для соревнования а также их картинки при загрузке игр в сражении и сетевых играх (кроме ванильных фракций).Но также надо помнить там есть очень гадкий лимит от (GeneralPersona0 до GeneralPersona11) прописать 12 и более уже нельзя, так что надо уметь с этим жить.
CommandButton.ini - Основной параметр окон в игре (кнопок, повышений и т .д.) работает как "связной" ini между кнопками и их параметрами
CommandSet.ini - Основной параметр окон в игре (кнопок, повышений и т .д.) но именно он отвечает за расстановку от 1 до 18(блоков с учетом что видно только 14 но остальные может с легкостью использовать БОТ)
Crate.ini - Прописывается денежные и гуманитарные контейнера.
Credits.ini - Авторы, ознакомление.
DamageFX.ini - Эффекты попадания по объектам (именно здесь можно прописать кровь пехотинцам)
Eva.ini - Голоса по типу : "...обнаружена вражеская партикулярная пушка..."
FXList.ini - Генератор эффектов.
GameData.ini - Параметры игрового мира (высота наблюдения и т.д)
InGameUI.ini - Круги (от скад шторма и т.д.) не советую его вообще трогать он очень ранимый.
Locomotor.ini - Двигатели юнитов, ракет и т.п.
MiscAudio.ini - Игровые звуки по типу пикания, крушения и т.д.
Mouse.ini - Курсоры, также не советую трогать но сами курсоры можно изменить заменив их на другие лежат в : (Data-Cursors-)
multiplayer.ini - Вид цвета игрока, количество маяков, открытий-закрытий рандом, стартовые сумы...
Music.ini - Музыка всех фракций, их порядок.
ObjectCreationList.ini - Связной кодинг с повышениями и оружия с таймером.
ParticleSystem.ini - Здесь содержатся эффекты, вспышки и т.д.
PlayerTemplate.ini - Фракции, команды.
Rank.ini - Ранги.
Roads.ini - Дороги.
Science.ini - Повышения и их количество.
SoundEffects.ini - Звуковые эффекты (взрыв и т.д.)
SpecialPower.ini - "счетчики время" именно они определяют время перезарядки СВ и повышений.
Speech.ini - Голоса для Миссий и Соревнований.
Terrain.ini - Текстуры земной поверхности.
Upgrade.ini - Апгрейды, лимит 128!
Weapon.ini - Вооруженные характеристики и их мощь.
WindowTransitions.ini - Меню, лобби, соревнование и т. д.
Это краткий список всех основных видов ini которые нужны в мододельстве.
Теперь про вылеты-
Вылетает когда : нажали на иконку и появилось миниатюрное окно загрузки (не на весь экран) и тут же поверх него появляется ошибка (техникал дифузес....)
Из за: объектов или же превышенного лимита в апгрейдах или соревновании.
Решение: Юзайте WorldBuilder.exe (находится в папке ZeroHour) при загрузке он будет выдавать сообщения с ошибками и где именно надо их исправлять.
информация про ParticleSystem.ini
ParticleSystem TsingMaTrailSmoke --- имя партикла! =))
Priority = WEAPON_EXPLOSION --- приоритет отображания партикла при загрузки железа. Самый высший CRITICAL, самый низший НЕ ПОМНЮ. Если ставишь CRITICAL, то партикл будет отображатся, если даже комп 1фпс показывает.
IsOneShot = No --- без понятия, в теории значение определяет один или множество раз проецируется партикл. Но так как я делал партиклы по шаблону наиболее похожего, это значение никогда не трогал.
Shader = ALPHA --- не, это не шейдеры =)) ALPHA - текстура с использованием альфа канала, ALPHA_TEST - более гадкий альфа канал с пятью уровнями прозрачности, ADDITIVE - текстура без альфа канала, но в ней более тёмные участки будут отображатся более прозрачными
Type = PARTICLE --- PARTICLE - обычный партикл, STREAK - партикл проецируется друг за другом в связке (полоски вместо дыма ракетчиков), DRAWABLE - это обычная серия спрайтов, которая в Генералах не используется, но значение, почему то, присутствует. Попытатся его воскресить, по крайней мере у меня, не получилось.
ParticleName = EXSmokNew1.tga --- текстура
AngleZ = 0.00 0.25 - начальный угол поворота партикла по оси Z
AngularRateZ = -0.01 0.01 - скорость поворота текстурки вокруг оси Z
AngularDamping = 0.99 0.99 - незнаю пока что
VelocityDamping = 0.99 0.98 - процент окончания анимации партикла.Вид анимации задаётся в VelocityType
Gravity = 0.01 --- сила притяжения
Lifetime = 60.00 60.00 --- время жизни каждой текстурки партикла из расчёта 30 кадров в секунду
SystemLifetime = 0 --- время жизни самого партикла, если "0" - то партикл умрёт лишь тогда, когда исчезнет замута, его запустившая, например, ракета детанирует, либо будет сбита.
Size = 5.00 5.00 --- размер текстурки партикла
StartSizeRate = 0.00 0.00 --- изменение размера при создании партикла, при минусе - уменьшение, при плюсе - увеличение
SizeRate = 3.00 3.00 - конечный размер партикла
SizeRateDamping = 0.95 0.95 - скорость изменения размера партикла от StartSizeRate до SizeRate
Alpha1 = 0.00 0.00 0 - настройки альфа канала, третье значение обозначает кадр на котором данное изменние вступит в силу. Так же 30 кадров в секунду.
Alpha2 = 1.00 1.00 5
Alpha3 = 0.00 0.00 60
Alpha4 = 0.00 0.00 0
Alpha5 = 0.00 0.00 0
Alpha6 = 0.00 0.00 0
Alpha7 = 0.00 0.00 0
Alpha8 = 0.00 0.00 0
Color1 = R:255 G:255 B:255 0 - цвет текстур партикла, если нужен родной, то 000.Следующие отвечают за постепенное изменение цвета
Color2 = R:0 G:0 B:0 0
Color3 = R:0 G:0 B:0 0
Color4 = R:0 G:0 B:0 0
Color5 = R:0 G:0 B:0 0
Color6 = R:0 G:0 B:0 0
Color7 = R:0 G:0 B:0 0
Color8 = R:0 G:0 B:0 0
ColorScale = 0.00 0.00 - не юзал, но по переводу - "Масштаб цвета".
BurstDelay = 40.00 40.00 --- задержка перед появлением партикла (30 кадров в сек, ну ты понял =)))
BurstCount = 0.00 2.00 --- количество появляющихся текстурок в один "заход"
InitialDelay = 20.00 20.00 --- промежуток времение между "заходами", так же 30 кадров в сек
DriftVelocity = X:0.00 Y:0.00 Z:0.00 --- направление движения текстурок
VelocityType = OUTWARD --- это один из типов
VelOutward = 0.00 0.00 - разброс по горизонтали
VelOutwardOther = 0.00 0.00 - разброс по вертикали (неможет привышать границы данные VolumeType)
(POINT, SPHERICAL ,HEMISPHERICAL ,ORTHO ,NONE ,CYLINDRICAL)
POINT означает что текстурки будут появляться просто в одной точке
VelocityType = SPHERICAL
VelSpherical = 1.00 2.00 - распространение во все стороны, при минусе партиклы будут двигаться от краёв VolumeType в центр.
VelocityType = HEMISPHERICAL - пока что неюзал
VelocityType = ORTHO
VelOrthoX = -3.00 3.00 - движение всех партиклов по оси X
VelOrthoY = -3.00 3.00 - движение всех партиклов по оси Y
VelOrthoZ = 3.00 8.00 - движение всех партиклов по оси Z
VelocityType = CYLINDRICAL
VelCylindricalRadial = 0.25 0.75 - этот эффект заполнения VolumeType я так и непонял, но он вроде бы распространяет все партиклы паралельно земле заполняя VolumeType до краёв
VelCylindricalNormal = 0.10 0.30 - это как бы расброс партиклов вертикально
VolumeType = SPHERE --- способ появления текстурок, их тоже много, в данном случае они появляются, как бы, в кругу (в сфере, так как у нас же 3д игра =)))
(CILINDER, LINE, NONE ,BOX) - я думаю здесь подписывать ничё ненадо
VolSphereRadius = 4.00 - радиус круга (сферы)
IsHollow = No - хз
IsGroundAligned = No --- текстурки повёрнуты к камере (No) или проецируются на поверхности ландшафта (Yes)
IsEmitAboveGroundOnly = No --- если Да, то партикл будет пропадать в воде
IsParticleUpTowardsEmitter = No --- хз
WindMotion = Unused (и чтобы использовалось надо поставить PingPong здесь)--- ниже идёт замута с ветром, не использовал никогда, но походу она и не работает в генералах(но в 5 партиклах эта вещь юзается и всё работает нормуль).
WindAngleChangeMin = 0.149924 - все эти строчки пока мне неизвестны.Советую использовать это только для огня, дыма и тому подобных вещей
WindAngleChangeMax = 0.449946
WindPingPongStartAngleMin = 0.000000
WindPingPongStartAngleMax = 0.785398
WindPingPongEndAngleMin = 5.497787
WindPingPongEndAngleMax = 6.283185
End
---------------
Про парткл
И так подробнее про KindOf
PRELOAD :Необходим для любого обэкта использующего геометрию.
SELECTABLE :Возможность выбирать обэкт (кикать на него)
CAN_ATTACK :Способность юнита к атаке.
ATTACK_NEEDS_LINE_OF_SIGHT :Дополнительний парамерт к атаке.
CAN_CAST_REFLECTIONS :По типу рефлекса точно хз но должен бить у любого юнита.
VEHICLE :Прописуется исключительто транспорту (очень важно поскольку игра определаэт именно по нем кто есть кто)
INFANTRY - Пехотинцу.
AIRCRAFT - Авиация.
SCORE :Хз много параметров, тоже должен бить в живих обэктах.
HERO :этот маленький параметр делает с вашего обэкта героя =) по типу как Бартон, Лотос и Ярмола (они стают отмечены на карте хрестом и их нельзя задавить транспортом)
CANNOT_RETALIATE, CAN_RAPPEL - Мега ХЗ до них я еще недобрался...знаю тока нужны для пехотинцев.
EMP_HARDENED - Недосягаемость для ЕМП и любих других електромагнитных вспышек.
Теперь про фишки которые надо знать:
1)Если хотите зделать обэкт неотключаемым против ЕМП и ЕМИ (а именно не авиацию а транспорт или же постройки) надо добавить им следуйщее в KindOf: EMP_HARDENED и AIRCRAFT (да так уж прописан код что без дополнительного параметра AIRCRAFT работать небудет)
2)Знак ; используется для вырезания в коде, после него можно писать любые пометки.
3)Код для невидимости вашего обэкта:
Behavior = StealthUpdate ModuleTag_07
StealthDelay = 2500 ; msec
StealthForbiddenConditions = ATTACKING USING_ABILITY :при каких условиях стает видимым, в этом случае при атаке и хз чему (взято из повстанца ГЛА)
MoveThresholdSpeed = 3 :скорость видео тени
InnateStealth = No :Начальная маскировка (Yes) если ненадо апгрейда и начинает бить невидем в самом начале.
OrderIdleEnemiesToAttackMeUponReveal = Yes :Хз непомню.
End
Behavior = StealthUpgrade ModuleTag_10 :А вот и апгрейд кторый необходим для активации с условием InnateStealth = No
TriggeredBy = Upgrade_GLACamouflage
End
Список от TipaIvan
Сообщение отредактировал 927AVIApolk: 19 Июль 2020 - 18:02