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

RA2 Resourse

Четверг, 21 Ноября 19
Главная » Статьи » Мои статьи

Ares Expansion DLL (Нововведения 03)
Ретрансляция призм 
На пререлизных скриншотах Red Alert 2 встречались призма-башни, передающие лучи по цепочке, хотя в релизе они так не могут сделать. 
Ares полностью заменяет старый код призменных башен, исправляя несколько багов, а также открывая несколько новых возможностей организации сетей призм. 

Быстрый старт 
Если вы хотите сохранить существующие призменные башни, но добавить им возможность пересылать луч по цепочке, то просто установите [ATESLA]►PrismForwarding.MaxChainLength=3 или другое число, обозначающее максимальную длину цепочки (-1 для бесконечной). 

[BuildingType]►PrismForwarding= (вариант - yes|no|forward|attack) 
Определяет, является или нет это здание призменной башней. 
PrismForwarding=forward означает что это здание может поддерживать другие, но не атаковать как призменная башня. 
PrismForwarding=attack means означает возможность принимать поддержку, но не поддерживать чужую атаку. 
PrismForwarding=yes означает полноценную призменную башню - способную оказывать и принимать поддержку. 
PrismForwarding=no означает что это здание не является призменной бащней и не может участвовать в призменных сетях. 
По умолчанию yes для здания из [General]►PrismType и no для всех остальных зданий. 

[BuildingType]►PrismForwarding.Targets= (список BuildingTypes) 
Список BuildingTypes, которые эта башня может поддерживать. По умолчанию здания того же типа, хотя если вы используете этот флаг, то не забудьте указать и его. 
[BuildingType]►PrismForwarding.MaxFeeds= (число) 
Максимальное число вспомогательных (поддерживающих) башен, которые могут напрямую помогать текущей (т.е. соседние). -1 означает отсутствие предела. По умолчанию равно [General]►PrismSupportMax. 
[BuildingType]►PrismForwarding.MaxChainLength= (число) 
Максимальное число передач по цепочке к атакующей башне. -1 означает отсутствие предела. По умолчанию 1. Для воспроизведения изображенного на предрелизном скриншоте вам нужно поставить по крайней мере 3. 
[BuildingType]►PrismForwarding.MaxNetworkSize= (integer) 
Если это атакующая башня, то PrismForwarding.MaxNetworkSize будет максимальным числом башен в призменной сети, не считая саму атакующую башню. Лишь атакующая башня определяет максимальный размер сети, независимо от типа остальных башен-участников. -1 означает отсутствие предела. По умолчанию равно [General]►PrismSupportMax. 
[BuildingType]►PrismForwarding.SupportModifier= (дробь - множитель) 
Это работает как старый PrismSupportModifier - множитель, который эта башня придает к силе атакующей. Множитель накапливается линейно (т.е. если есть две поддерживающие башни, каждая с PrismForwarding.SupportModifier=150%, то общий множитель к урону составит 150% + 150% + 100% = 400%. По умолчанию равно[General]►PrismSupportModifier. 
[BuildingType]►PrismForwarding.DamageAdd= (число - бонус урона) 
Чистый бонус к урону атакующей башни, прибавляемый до применения множителя PrismForwarding.SupportModifier. Это можно использовать вместо системы с множителями или же дополнять её. По умолчанию 0. 

Замечание: Вам стоит ограничеть размер сети, если вы используете отрицательный бонусный урон, иначе атакующий луч рано или поздно превратится в лечащий, а не наносящий урон. 

[BuildingType]►PrismForwarding.MyHeight= (число - лептоны) 
Высота (в лептонах), на которой считается расположенным "призменный передатчик", так что именно туда будут бить лучи поддержки. this tower’s "prism receiver” is considered to be, so that support towers know where to aim their support beams. Defaults to [General]►PrismSupportHeight. 
[BuildingType]►PrismForwarding.ToAllies= (boolean) 
Может или нет эта призменная башня поддерживать башни игроков-союзников. По умолчанию no. 
Заметьте, что в длинных призменных цепях эта башня должна быть союзной не только стреляющей башне, но и той, которой передает луч поддержки. 
[BuildingType]►PrismForwarding.BreakSupport= (boolean) 
Может или нет эта башня прервать поддержку другой в любой момент и самой нанести атаку. Если башня прерывает поддержку, то ей не нужно перезаряжаться. По умолчанию no. 

[BuildingType]►PrismForwarding.ChargeDelay= (число - фреймы) 
Внимание! 
Это не для рядовых пользователей! 
Опция добавлена в сущности лишь для целей тестирования и не влияет на работу лучевой сети, так что вам стоит её проигнорировать. В оригинале главная (атакующая) башня обрабатывала лишь одну вспомогательную башню за фрейм. В этот момент вспомогательная башня начинала заряжаться, а главная - перезаряжаться. Из-за этого вспомогательные лучи прибывали в быстрой последовательности, а не одновременно. В игре это заметно лишь на минимальной скорости или когда в сети огромное число башен. 
В Ares это было изменено, так что все соседние вспомогательные башни реагируют в один и тот же фрейм. При этом задержка подзарядки была введена чтобы процесс зарядки не выглядел мгновенно начинающимся. Для каждой ступени в сети самая удаленная башня заряжалась чуть раньше, для создания впечатления бегущего от одной башни к другой луча. Время задержки момента подзарядки указывалось через PrismForwarding.ChargeDelay. Эта задержка уввеличивается с длиной цепи сети поддержки. 

Итак, для примера, если PrismForwarding.ChargeDelay=2 и у вас цепь из трех башен, то самая дальняя (башня 3) начнет заряжаться сразу, средняя (башня 2) начнет заряжаться на 2 фрейма позже и атакующая башня (башня 1) начнет заряжаться ещё на 2 фрейма позже. На четвертый фрейм все башни будут на разных стадиях процесса заряжения. К моменту выстрела лучи доберутся от самой дальней башни до атакующей. Из-за природы нового способа передачи лучей минимальная задержка равна 1, так что нельзя заставить все лучи появиться одновременно. Однако на нормальной скорости задержка в 1 фрейм едва заметна, разве что в случае чрезмерно длинной цепочки. 

По умолчанию задержка равна 1. Увеличение заставит лучи двигаться медленнее (не рекомендуется, так как большое значение понижает качество эффекта). 

[BuildingType]►PrismForwarding.Intensity= (число - толщина лазера) 
Это позволяет управлять толщиной лазерного луча по мере усиления луча. По умолчанию луч призменной башни с поддержкой от одной или более башен имеет LaserThickness 5 - на 2 выше стандартного значения оружия (3). Флаг PrismForwarding.Intensity используется как абсолютный модификатор к лучу, так что стандартное значение -2 заставит работать систему как в оригинальной игре. 
Положительные значения, с другой стороны, говорят Ares что вы хотите сделать толщину луча зависящей от длины цепочки башен поддержки, аналогичным методом. PrismForwarding.Intensity=1 сделает самый дальний луч без изменения толщины, следующий с увеличением на 1, следующий за ним на 2 и так далее. См. секцию о LaserThickness для детального описания графического отображения лазеров. 

[BuildingType]►Overpowerable= (boolean) 
В оригинальной игре стреляющая призменная башня всегда использовала свое Primary оружие (урон которого умножался в зависимости от числа башен поддержки). Флаг Overpowerable игнорировался. Ares позволяет стреляющей призменной башне использовать логику overpower - вы можете заряжать башню и одновременно усиливать её лучами поддержки! Учтите, что заряжение башни поддержки не окажет никакого эффекта. 
[BuildingType]►PrismForwarding.SupportWeapon= (оружие) 
Воригинальной игре оружие [PrismSupport] никогда не упоминалось напрямую, и Secondary призменной башни упоминалось лишь для указания максимального Range луча поддержки. 
В Ares Secondary у призменной башни не упоминается вовсе. Вместо этого у нас используется PrismForwarding.SupportWeapon, предназначенное исключительно для роли оружия луча поддержки. 
Не обязательно уточнять оружие поддержки - будут использоваться значения по умолчанию, если вы что-то не укажите. 
[BuildingType]►PrismForwarding.EliteSupportWeapon= (оружие) 
Если башня становится элитной, то его луч поддержки примет свойства этого оружия. По умолчанию равно PrismForwarding.SupportWeapon. 

Управление лучом поддержки 
PrismForwarding.SupportWeapon не является оружием в привычном смысле слова и оно не стреляет по-настоящему. Лишь отдельные параметры оружия используются системой призменной трансляции, и все они перечислены ниже. Обратите внимание на значения по умолчанию, используемые только при отсутствии указанного оружия поддержки. Если вы указали оружие поддержки, то значения по умолчанию будут переписаны аналогами из другого оружия. 
Не рекомендуется использовать в качестве основы существующий [PrismSupport]. Если вы хотите настроить значения по умолчанию, используйте пример из конца описания следующего флага. 
[PrismForwarding.SupportWeapon]►Range= (число - клетки) 
Определяет максимальную дистанцию, на которой призменная башня может оказывать поддержку другой. -2 означает неограниченную дальность. Если оружие поддержки не указано, то используется дальность действия Primary оружия этой башни плюс одна клетка (дополнительная клетка гарантирует, что две башни в пределах радиуса атаки друг от друга смогут друг друга поддерживать). Это отличается от оригинальной игры. 
[PrismForwarding.SupportWeapon]►MinimumRange= (число - клетки) 
Определяет минимальную дистанцию, на которой башни могут поддерживать друг друга. Внутри этой дистанции поддержка невозможна. Если оружие поддержки не указано, то по умолчанию этого ограничения не будет. 
[PrismForwarding.SupportWeapon]►ROF= (число - фреймы) 
После выстрела луча поддержки башня не сможет запустить следующий или атаковать врага указанное число фреймов. Если не указано оружие поддержки, то по умолчанию будет продолжительность из [General]►PrismSupportDelay. 
[PrismForwarding.SupportWeapon]►Report= (звук) 
Звук, проигрываемый при выстреле лучем поддержки. В оригинальной игре никакого звука не было. Учтите, что множество призменных башен, одновременно выпускающие лучи поддержки вместе могут звучать довольно раздражающе или слишком громко, так что возможно вы захотите ограничить число случаев, при которых проигрывается звук и/или использовать более тихий или малозаметный звук. Если не задано оружие поддержки, по умолчанию звука атаки не будет. 
[PrismForwarding.SupportWeapon]►IsLaser= (boolean) 
Определяется, нужно или нет рисовать лазерный луч между этой и поддерживаемой башней. Другие флаги управления лазерами (LaserDuration, IsHouseColor, LaserInnerColor, LaserOuterColor, LaserOuterSpread и LaserThickness) также учитываются. Если не задано оружие поддержки, по умолчанию будет нарисован традиционный луч лазера (IsLaser=yes, LaserDuration=[General]PrismSupportDuration, IsHouseColor=yes, LaserThickness=3). 
[PrismForwarding.SupportWeapon]►IsElectricBolt= (boolean) 
Определяет, нужно или нет рисовать электрический разряд между этой и поддерживаемой башней. Другие флаги управления электрическими разрядами (IsAlternateColor, Bolt.Color1, Bolt.Color2 и Bolt.Color3) также учитываются. Если не задано оружие поддержки, то никакого электрического разряда не будет нарисовано. 
[PrismForwarding.SupportWeapon]►IsRadBeam= (boolean) 
Определяет, нужно или нет рисовать радиационный луч между этой и поддерживаемой башней. Другие флаги управления радлучами(Beam.Duration, Beam.IsHouseColor, Beam.Color и Beam.Amplitude) также учитываются. Если не задано оружие поддержки, то никакого радиационного луча не будет нарисовано. 
Никакие другие параметры оружия поддержки пока не учитываются, но в будущем это может изменится. 

Пример оружия поддержки: 
[NewPrismSupportBeam] 
Range=9 ;или 8, если вы предпочитаете оригинал 
ROF=45 
IsLaser=yes 
IsHouseColor=yes 
LaserDuration=15 
LaserThickness=3 

FLH луча поддержки 
Место "запуска" луча поддержки может быть установлено через управление FLH в графическом разделе здания - AlternateFLH0 определяет источник луча поддержки у новичка, AlternateFLH1 уточняет источник луча поддержки у элиты. Если вы зададите любое из них как 0,0,0 (значение FLH по умолчанию), то будет использоваться их PrimaryFireFLH или ElitePrimaryFireFLH, что более подходит. 

Ограничения призменных башен 
Призменным башням нельзя разрешать свертываться - свертывание призменной башни во время зарядки может вызвать Internal Error. 

Специальное замечание касательно призменной ретрансляции 
Частой ошибкой, сообщаемой при тестировании, является склонность призменных башен не атаковать и наводится на врагов автоматически. Решение этого - удостовериться, что задана боеголовка и/или урон. Если такое случилось у вас, проверьте связанные с модифицированной ретрансляцией значения боеголовок или урона. 

Глушители радаров 
Глушители радаров, как в Red Alert, одним своим присутствием заглушали радары в определенном радиусе (т.е. без атаки, развертывания и т.д.). Теперь это возможно и в Ares. 
Глушение влияет лишь на функцию радара у здания, но не на другие его функции. Здание не отключится. Глушение действует лишь на радары в радиусе действия; если у игрока где-то остались незаглушенные радары, то благодаря им его радар продолжит работать. Глушение не влияет на союзные или собственные радары. Кроме того, в Ares глушение затрагивает связь со спутниками-шпионами. 
[TechnoType]►RadarJamRadius= (число - радиус в клетках) 
Определяет радиус, в пределах которого будут заглушены здания с Radar=yes или SpySat=yes. 

Reverse Engineer 
В Red Alert 2 чаны клонирования позволяли изучать посланную в них пехоту для производства. Ares не только возвращает эту возможность, но и добавляет новые настройки. 
[BuildingType]►ReverseEngineersVictims= (boolean) 
Разрешает логику изучения войск. По умолчанию no. 
[BuildingType]►SpyEffect.UndoReverseEngineer= (boolean) 
Разрешает шпионам уничтожать чертежи всех изученных войск через это здание. По умолчанию no. 
[InfantryOrVehicle]►CanBeReversed= (boolean) 
Позволяет разобрать и изучить этот юнит. По умолчанию yes. 

Замечание: На текущий момент требуется Grinding=yes для работы логики изучения юнитов. Кроме того, изученные юниты игнорируют Prerequisite, PrerequisiteLists, PrerequisiteOverride, StolenTech старой и новой модели, TechLevel, RequiredHouses и ForbiddenHouses, но следует настройкам BuildLimit, PrerequisiteTheaters, NegativePrerequisite, Factory и Naval. 

Замечание: Хотя эта логика работает, были замечены небольшие баги. Просто предупреждение. 

Когда вы владеете изучающим юниты зданием, изучение любого InfantryType вызовет реплики EVA_ReverseEngineeredInfantry и EVA_NewTechnologyAcquired; изучение любого VehicleType в первый раз проиграет EVA_ReverseEngineeredVehicle и EVA_NewTechnologyAcquired. Саботаж шпионом этого здания вызовет реплику EVA_TechnologyStolen. 

Секретные лаборатории 
Логика секретных лабораторий имела некоторые недостатки, уже разрешенные (см. исправление багов 1). КРоме этих исправлений, логика секретных лабораторий расширена следующими флагами "на каждое здание". Для их работы требуется поставить SecretLab=yes нужному зданию, тогда оно будет считаться секретной лабораторией. 
[Building]►SecretLab.PossibleBoons= (список TechnoTypes) 
Уточняет все здания, технику и пехоту с авиацией, которые могут потенциально могут оказаться бонусом от этой секретной лаборатории. Оригинальная секретная лаборатория имела три отдельных флага, все глобально заданные, и ни одного подходящего для AircraftTypes. 
[Building]►SecretLab.GenerateOnCapture= (boolean) 
Бонус, предлагаемый секретной лабораторий, выбирается при её создании (или генерации карты, для уже размещенных на ней). Если SecretLab.GenerateOnCapture=yes, то при каждом захвате здания бонус будет перевыбираться. По умолчанию no. 

Для каждого бонуса можно задать следующие флаги... 
[Boon]►SecretLab.RequiredHouses= (список стран) 
Каким странам позволено получить этот юнит как бонус секретной лаборатории. Оно проверяется только при выборе бонуса, так что если SecretLab.GenerateOnCapture=no, то бонус все ещё может быть получен страной извне списка SecretLab.RequiredHouses (если первоначальный владелец находился в ней). 
[Boon]►SecretLab.ForbiddenHouses= (список стран) 
Каким странам запрещено получать этот юнит в качестве бонуса. Проверяется только если возможно, при SecretLab.GenerateOnCapture=no бонус все ещё может быть получен странов из списка SecretLab.RequiredHouses (если первоначальный владелец находился вне его). 

Бонус всегда выбирается случайно, но только бонусы, которые не доступны для строительства владельцу секретной лаборатории (гражданских в случае заранее размещенных на карте зданий без SecretLab.GenerateOnCapture=yes) будут кандидатами на выбор. 

Замечание: Это означает, что такая секретная лаборатория может казаться нарушающей SecretLab.RequiredHouses и SecretLab.ForbiddenHouses при захвате. Это не баг.

Источник: http://redalert3.3nx.ru/viewtopic.php?p=2702
Категория: Мои статьи | Добавил: ATroN (16 Сентября 12) | Автор: Spy
Просмотров: 502 | Теги: expansion, Ares, dll | Рейтинг: 0.0/0
Всего комментариев: 0
avatar