Приветствую Вас, Рядовой! Регистрация RSS

RA2 Resourse

Пятница, 26 Апреля 24
Главная » Статьи » Мои статьи

Ares Expansion DLL (Нововведения 04)
Стороны и страны 
В оригинальной игре стороны и страны были, по большей части, защищены от модифицирования. Вы не могли добавить, удалить или перетасовать текущие 10 стран и 3 стороны. Ares же делает такое возможным - вы можете получить до 16 стран и 16 сторон, и подвергнуть их множеству настроек... 

Замечание: В теории нет ограничения на число стран, которые вы можете задать в списке. Однако некоторые флаги работают лишь для первых 32 стран, а часть из них отказывает уже после 16 - поэтому рекомендуется ограничиться 16 странами из доступных игроку и 32 странами суммарно. 

Страны 
Страны задаются в списке [Countries] rulesmd.ini. Любая страна с Multiplay=yes будет доступна для выбора в игре из списка и может быть выбрана случайно при вариант ‘Random’. Страны можно удалить из доступных в режиме случайной страны, или же им можно придать различную вероятность выбора. 
Список [Countries] может содержать до 32 стран, но голосовые комментарии (taunts) работают лишь для 16 из них. 
Каждую страну можно настраивать при помощи следующих флагов в соответствующей INI файла: 

Внимание! 
Указанные ниже имена файлов (в формате сырого C, требующего вещи вроде %s) будут в будущем заменены на более безопасные версии. Точный стиль предстоящей замены пока не придуман. 

[Country]►File.Flag= (имя файла, *включая* .pcx) 
Файл PCX для роли флага страны, в формате "filename.pcx”. 
[Country]►File.LoadScreen= (имя файла, *включая* .shp) 
Файл SHP для роли экрана загрузки, в формате "filename.shp”. 
[Country]►File.LoadScreenPAL= (имя файла, *включая* .pal) 
Файл палитры экрана загрузки страны, в формате "filename.pal”. 
[Country]►File.Taunt= (имя файла, *включая* директорию Taunts и .wav) 
Путь к файлам taunts, в формате "Tauntsfilename%02i.wav”. Имя файла должно содержать "%02i”, что будет обозначать ID отдельных файлов (от 01 до 08 ). Например, File.Taunt=Tauntstauam%02i.wav будет загружать файлы с tauam01.wav до tauam08.wav. 

Замечание 
Taunts можно задать лишь для 16 стран. 

[Country]►LoadScreenText.Name= (ярлык CSF) 
Имя страны, отображаемое на экране загрузки (там, где обычно изображается карта страны). Например LoadScreenText.Name=Name:Americans. 
[Country]►LoadScreenText.SpecialName= (ярлык CSF) 
Имя особого оружия страны, отображаемое на экране загрузки. Например LoadScreenText.SpecialName=Name:apara. 
[Country]►LoadScreenText.Brief= (ярлык CSF) 
Описание страны и её особого оружия, отображаемое на экране загрузки. Например LoadScreenText.Brief=loadbrief:usa. 
[Country]►LoadScreenText.Color= (цветовая схема) 
Текст на экране загрузки мультиплеера будет отображен в этом цвете. Варианты выбирается из списка [Colors]. Например, LoadScreenText.Color=AlliedLoad. 
[Country]►MenuText.Status= (ярлык CSF) 
Краткое описание страны, отображаемое в нижней строке при наведении курсора на эту страну меню выбора страны. 
[Country]►RandomSelectionWeight= (число) 
Определяет вероятность выбора этой страны когда игрок выбирает играть за случайную страну. Шанс равен отношению этого значения к сумме значений RandomSelectionWeight всех стран с Multiplay=yes. По умолчанию 1. 
[Country]►ListIndex= (число) 
Определяет положение страны в меню выбора страны. Если у двух стран одинаковый ListIndex, порядок между ними будет аналогичен их положению в списке [Countries]. Страны с отрицательным значением не будут появляться в списке; вы можете это использовать для сокрытия стран без перемен в списке [Countries] и риска что-то испортить. Чтобы запретить ещё и выбор страны через "случайную страну", поставьте RandomSelectionWeight=0. По умолчанию 100. 
[Country]►AI.PowerPlants= (список BuildingTypes) 
Здания, которые ИИ этой страны будет использовать как электростанции. 
[Country]►ParaDrop.Types= (список InfantryTypes и/или VehicleTypes) 
Юниты, которые будут сброшены супероружием с Type=ParaDrop (вроде того, которое доступно через захватываемый аэродром) у этой страны. По умолчанию равно ParaDrop.Types= их стороны. 

Замечание: Оригинальные флаги управления десантом используют лишь InfantryTypes. Чтобы добавить в десант технику, вам придется использовать новые флаги ParaDrop.Types и ParaDrop.Num. 

[Country]►ParaDrop.Num= (список чисел) 
Соответствующее число юнитов каждого типа (список юнитов в ParaDrop.Types) в десанте. По умолчанию ParaDrop.Num= их стороны. 
[Country]►ParaDrop.Aircraft= (AircraftType) 
Какой самолет будет сбрасывать десант. По умолчанию равно ParaDrop.Aircraft= их стороны. 
[Country]►Parachute.Anim= (Анимация) 
Стандартный парашют этой страны, который переписывается при наличии этого флага у отдельного TechnoType. По умолчанию равно Parachute.Anim= их стороны. 

Стороны 
Стороны задаются в списке [Sides] rulesmd.ini. 
Нет ограничения на число сторон. Тем не менее, из них будет лишь 16 полноценно работающих (см. выше). 
Каждая сторона может (и должна) задать свои значения в соответствующей секции INI для следующих флагов: 
[Side]►DefaultDisguise= (InfantryType) 
Стандартная маскировка, используемая новыми созданными InfantryType, маскирующихся под другую пехоту. 
[Side]►Crew= (InfantryType) 
InfantryType, который создается как выжившие из уничтоженных объектов (с Crewed=yes) этой стороны (или при продаже зданий). 
[Side]►SurvivorDivisor= (число) 
Модификатор, на который умножается цена разрушенного объекта для определения числа выживших после его уничтожени (или продажи здания). 
[Side]►AI.BaseDefenses= (список BuildingTypes) 
Список оборонных построек, используемых ИИ. 
[Side]►AI.BaseDefenseCounts= (список чисел) 
Максимумы для соответствующих оборонных построек (из списка AI.BaseDefenses), которые строит ИИ. 
[Side]►ParaDrop.Types= (список InfantryTypes и/или VehicleTypes) 
Юниты, которые будут сброшены супероружием с Type=ParaDrop (вроде того, которое доступно через захватываемый аэродром) у этой стороны. По умолчанию равно [General]►AllyParaDropInf для GDI (Союзников), [General]►SovParaDropInf для Нод (Советов) и [General]►YuriParaDropInf для третей стороны (Юрия). 

Замечание: Оригинальные флаги управления десантом используют лишь InfantryTypes. Чтобы добавить в десант технику, вам придется использовать новые флаги ParaDrop.Types и ParaDrop.Num. 

[Side]►ParaDrop.Num= (список чисел) 
Соответствующее число юнитов каждого типа (список юнитов в ParaDrop.Types) в десанте. По умолчанию [General]►AllyParaDropNum для GDI (Союзников), [General]►SovParaDropNum для Нод (Советов) и [General]►YuriParaDropNum для третей стороны (Юрия). 
[Side]►ParaDrop.Aircraft= (AircraftType) 
Какой самолет будет сбрасывать десант. По умолчанию равно PDPLANE. 
[Side]►Parachute.Anim= (Анимация) 
Стандартный парашют этой страны, который переписывается при наличии этого флага у отдельного TechnoType. По умолчанию равно PARACH. 
[Side]►Sidebar.MixFileIndex= (число) 
Номер MIX файла, содержащего сайдбар стороны (т.е. 1 для sidec01.mix Союзников, 2 для sidec02.mix Советов). 
[Side]►Sidebar.YuriFileNames= (boolean) 
Использовать или нет имена файлов сайдбара Юрия (sidec02md.mix и связанные с Юрием файлы внутри этого MIX). 
[Side]►EVA.Tag= (строка) 
Имя INI секции в evamd.ini для EVA (голосового ассистента интерфейса, т.е. Евы для Союзников, Софии для Советов и того парня у Юрия). 

Замечание 
EVA.Tag пока не воплощен. 

Непроницаемые здания 
Здания можно сделать "непроницаемыми" для снарядом, то есть снаряды будут врезаться в это здание, а не проходить сквозь него. 
В rulesmd.ini: 
[Projectile]►SubjectToBuildings= (boolean) 
Можно или нет заблокировать этот снаряд непроницаемым зданием. По умолчанию no. 
В artmd.ini: 
[BuildingArt]►SolidHeight= (число - клетки) 
Насколько высокой считается непроницаемая часть здания, в клетках (в каждой клетке 256 лептонов высоты), так что не очень высокие здания позволят снарядам перелетать через них на достаточной высоте. Отрицательные значения (т.е. -1) заставляют игру считать всю высоту здания непроницаемой. По умолчанию 0, то есть здание целиком проницаемо (как в немодифицированной игре). 

Замечание: Логика непроницаемых зданий не слишком хорошо сочетается со зданиями не прямоугольной формы, вроде парижской башни или космической игры (Paris Tower, Space Needle). 

Шпионы 
Yuri’s Revenge позволяет шпионам оказать лишь один эффект на то здание, в которое проникают, и каждый этот эффект нельзя изменить. Логика проникновения шпионов была переписана в Ares для большей гибкости, включая некоторые новые эффекты. 
Все из последующих флагов по умолчанию равны no или 0. 

[BuildingType]►SpyEffect.Custom= (boolean) 
Будет ли использоваться новая логика шпионов из Ares или оригинальная из Yuri’s Revenge. 

Замечание: 
Для работы новой логики нужен один из следующих эффектов... 

Радар 
[BuildingType]►SpyEffect.ResetRadar= (boolean) 
Будет или нет проникновение шпиона в это здание вызывать саботаж радара (как в оригинальной игре, вся карта игрока покрывается туманом войны и требует повторной разведки). 
[BuildingType]►SpyEffect.RevealRadar= (boolean) 
НОВЫЙ ЭФФЕКТ Будет или нет проникновение шпиона в это здание открывать владельцу шпиона всю разведанную владельцем радара местность. У здания также должен быть флаг Radar=yes. 

Энергия 
[BuildingType]►SpyEffect.PowerOutageDuration= (число - фреймы) 
Число фреймов, на которые враг лишится энергии (т.е. его энергия временно уменьшится до 0). 

Деньги 
[BuildingType]►SpyEffect.StolenMoneyAmount= (число - кредиты) 
НОВЫЙ ЭФФЕКТ Количество кредитов, которые шпион украдеет при проникновении в это здание. 
Количество украденных денег всегда ограничено количеством денег в наличии (т.е. если SpyEffect.StolenMoneyAmount=500, но у врага есть лишь 200 кредитов, то вы получите лишь 200 при отправке шпиона в это здание). 
[BuildingType]►SpyEffect.StolenMoneyPercentage= (дробь - множитель) 
Процент вражеских средств, которые будут украдены проникнувшим в это здание шпионом. Работает лишь при SpyEffect.StolenMoneyAmount=0. 

Супероружие 
[BuildingType]►SpyEffect.ResetSuperweapons= (boolean) 
Будет или нет проникновение шпиона в это здание сбивать таймер на всех видах супероружия этого здания (SuperWeapon, SuperWeapon2 и все супероружие апгрейдов этого здания). 

Украденные технологии 
[BuildingType]►SpyEffect.StolenTechIndex= (число) 
Технология, воруемая при проникновении в это здание. 
[TechnoType]►Prerequisite.StolenTechs= (список чисел) 
Список украденных технологий, которые нужно украсть для возможности создавать этот объект. -1 отключает это требование. По умолчанию -1. 
В Yuri’s Revenge было лишь три типа воруемых технологий, и все они были привязаны к определенным зданиям. 
Шпионаж в [GATECH] открывал RequiresStolenAlliedTech=yes 
Шпионаж в [NATECH] открывал RequiresStolenSovietTech=yes 
Шпионаж в [YATECH] открывал RequiresStolenThirdTech=yes 
В Ares шпионаж в здание с SpyEffect.StolenTechIndex=2 (для примера) откроет войска с требованием украденной технологии с номером 2. 

Замечание 
Если вы поставите SpyEffect.Custom=yes на [GATECH], [NATECH] или [YATECH], то эти здания больше не будут открывать старые флаги RequiresStolen*Tech. 

Фабрики 
[BuildingType]►SpyEffect.UnitVeterancy= (boolean) 
Будет или нет проникновение шпиона в это здание позволять вашим фабрикам того же типа производить ветеранов. Например, шпионаж во вражеских казармах с SpyEffect.UnitVeterancy=yes позволит всей вашей пехоте обучаться сразу ветеранами. 

Замечание: На данный момент это работает лишь для фабрик VehicleType и InfantryType. Заметьте, что проникновение в любую фабрику VehicleType factory (т.е. военный завод или морской док) сделает ветеранами лишь наземную технику - флот нельзя сделать производимым ветеранами через логику шпионажа. 
[BuildingType]►SpyEffect.RevealProduction= (boolean) 
НОВЫЙ ЭФФЕКТ Будет или нет проникновение шпиона в эту фабрику позволять вам видеть что создается в ней в текущий момент. Когда шпион проникнет в здание, выберите это здание и увидите поверх него иконку создаваемого юнита или здания. 

Reverse Engineering 
См. соответствующий раздел. 

Улучшения String Table 
Кроме ra2md.csf, игра теперь загружает файлы от stringtable00.csf по stringtable99.csf. Эти таблицы добавляют или переписывают уже заданные значения. 
Также теперь возможно задавать имена объектов прямо в коде INI(без необходимости создавать новую строку в таблице) при помощи NOSTR:префикс. Например, UIName=NOSTR:Sonar Pulse будет отображаться как "Sonar Pulse”. Тем не менее, строка (включая префикс) не может превышать 31 знака. 
Максимальная длина строк в таблице была увеличена до 20000 знаков.

Источник: http://redalert3.3nx.ru/viewtopic.php?p=2702
Категория: Мои статьи | Добавил: ATroN (16 Сентября 12) | Автор: Spy
Просмотров: 1203 | Комментарии: 1 | Теги: expansion, Ares, dll | Рейтинг: 0.0/0
Всего комментариев: 1
avatar
0
1
"Также теперь возможно задавать имена объектов прямо в коде INI(без необходимости создавать новую строку в таблице) при помощи NOSTR:префикс" - русские буквы не отображаются.
avatar