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

RA2 Resourse

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

Ares Expansion DLL (логика TS)
Восстановленная логика Tiberian Sun

Движок Yuri’s Revenge основан на движке Red Alert 2, который, в свою очередь, основан на движке Tiberian Sun engine. Отдельные возможности, существовавшие в Tiberian Sun, были удалены в Red Alert 2, а некоторые были удалены в дальнейшем, в Yuri’s Revenge и его патче 1.001. 

Степень удаления возможностей в Yuri’s Revenge 1.001 варьирует, от неполноценного функционирования до полного удаления логики (порой из-за того, что её работа вызывала Internal Error). 

Учтите, что во многих случаях Ares разительно меняет способ использования старых возможностей. 

Action=SellUnit 
В Tiberian Sun вы могли продавать юниты, расположенные в здании-доке (ремонтной площадке) через обычную кнопку Sell сайдбара. В Yuri’s Revenge супероружие с Action=SellUnit достигает того же эффекта. Однакое если такое оружие использовать против юнита внутри танкового бункера, происходила Internal Error (иногда это происходило лишь после уничтожения этого бункера). Ares устраняет появление ошибки. 

Action=TogglePower 
В Tiberian Sun на сайдбаре была кнопка отключения энергии, позволяющая выключать свои здания при нехватки энергии и включать их после её устранения. В Yuri’s Revenge, супероружие с Action=TogglePower достигает того же эффекта. Однако если таким супероружием выстрелить в пустую клетку, происходит Internal Error. Ares устраняет появление ошибки. 

Смена графики у амфибий 
В Tiberian Sun, БТР-амфибия выглядела полупогруженным при входе в воду. Это достигалось сменой изображения с apc.vxl на apcw.vxl. С Ares вы можете указать: 
[VehicleType] ► WaterImage= (VehicleType) 
Это позволяет сменить изображение юнита-амфибии с XXXX.shp или XXXX.vxl (опредялемого Image=) на YYYY.shp или YYYY.vxl (определяемого [WaterImage] ► Image=) находясь в воде, примерно как в случае UnloadingClass. Учтите, что SHP-юниты не могут таким образом стать воксельными и наоборот. Новый VehicleType должен быть указан в списке [VehicleTypes]. 

ЭМИ 
Техника, пораженная ЭМИ (электро-магнитным импульсом), будет парализована на манер атакуемой хронолегионером. Разница в том, что техника под эффектом ЭМИ все ещё уязвима для атак других юнитов. ЭМИ оказывает различные эффекты на технику и здания (те, которые лишены защиты от ЭМИ, см. далее): 
Основной эффект: юниты перестают отвечать на команды.Они прекращают движение и атаку. 
Парящие юниты (вроде роботанков) приземляются. 
Юниты начнут проигрывать анимацию, заданную [General]EMPulseSparkles=EMP_FX01. Заметьте, что стандартный emp_fx01.shp из Red Alert 2 нарисован в палитре Tiberian Sun и нуждается в конвертации. 
Воксельные юниты темнеют (SHP - нет). 
Способные свернуться в технику здания (например МСЦ) все ещё могут, но образовавшаяся техника все ещё будет под эффектом ЭМИ вплоть до его рассеивания. 
Самолеты сразу же падают. 
Электростанции перестают подавать энергию. 
Фабрики прекращают работать. 
Оборонные постройки не могут атаковать. 
Гап-генераторы перестают создавать туман войны. 
Узлы лазерных ограждений перестают излучать лазерные лучи. 
Центры контроля роботанков перестают работать. 
Здания с супероружием отключаются, и их супероружие более не заряжается если у него указано [SuperWeapon]IsPowered=yes. 
Радары перестают показывать миникарту. 
Спутники-шпионы перестают открывать всю карту. 
Юниты, призывающие другие юниты, перестают это делать. Если юнит уже призвал что-либо, то запущенные самолеты тут же разобьются. 
Рабы сборщиков перестают работать. 
Войска в стадии разгрузки (разгружающиеся харвестеры или осадный вертолет в момент трансформации) подвергнутся ЭМИ после завершения разгрузки. 
Харвестеры, получившие ЭМИ посреди процесса сбора ружы, продолжат собирать руду после рассеивания ЭМИ. 

Быстрый старт: Если вам нужна боеголовка с десятисекундным эффектом ЭМИ, поставьте в боеголовке EMP.Duration=150. 

NB: Tiberian Sun использовало флаг Damage оружия для определения продолжительности эффекта ЭМИ. Ares, с другой стороны, использует два новых флага (EMP.Duration и EMP.Cap) для расширенной гибкости. Damage оружия не затрагивает эффект ЭМИ (так что теперь оружие может одновременно наносить урон и парализовывать цель). Tiberian Sun также использовало флаг EMEffect=yes, который не используется в Ares. 
:[Warhead]EMP.Duration= (число фреймов) [Warhead]EMP.Cap= (число фреймов): 
Указанные два флага используется вместе для определения продолжительности эффекта ЭМИ в фреймах. Игра отслеживает как долго каждый юнит должен оставаться парализованным. Фактически у каждого юнита есть скрытый счетчик ЭМИ, отсчитывающий фреймы до нуля, после чего юнит будет активирован повторно. ЭМИ-боеголовки влияют на этот счетчик. 

Юнит не получит ЭМИ если Verses против его брони равно 0%, иначе последует полный эффект. 

Для начала рассмотрим случай с положительным EMP.Duration для целей, которые хотим парализовать. 
EMP.Cap больше нуля. Эффект ЭМИ накапливается, но с пределом. Счетчик ЭМИ цели будет увеличиваться на EMP.Duration вплоть до, но не более, EMP.Cap. Если счетчик ЭМИ цели уже выше EMP.Cap (скажем её поразило более мощное ЭМИ-оружие), то он не уменьшится. 
Примеры: Счетчик ЭМИ=0, EMP.Duration=10, EMP.Cap=20. Итог: счетчик ЭМИ=10. 
Счетчик ЭМИ=15, EMP.Duration=10, EMP.Cap=20. Итог: Счетчик ЭМИ=20. 
Счетчик ЭМИ=60, EMP.Duration=10, EMP.Cap=20. Счетчик ЭМИ останется на 60. 

EMP.Cap=0 Эффект ЭМИ накапливается без предела. Счетчик будетт повышаться на EMP.Duration, без ограничения. Это старое поведение в Ares, до введения флага EMP.Cap. 
Примеры: Счетчик ЭМИ=25, EMP.Duration=10. Итог: Счетчик ЭМИ=35. 

EMP.Cap=-1 Счетчик ЭМИ цели будет установлен на точное число фреймов, заданное EMP.Duration, если только счетчик ЭМИ уже имеет большее значение. 
Примеры: Счетчик ЭМИ=5, EMP.Duration=10. Итог: Счетчик ЭМИ=10. 
Счетчик ЭМИ=20, EMP.Duration=10. Счетчик ЭМИ останется на 20. 

Теперь отрицательное значение EMP.Duration, скажем для создания союзной техники реактивации парализованных машин. 
EMP.Cap=-1 Счетчик ЭМИ цели уменьшится на число фреймов, указанное EMP.Duration. 
Примеры: Счетчик ЭМИ=50, EMP.Duration=-10. Итог: Счетчик ЭМИ=40. 
Счетчик ЭМИ=7, EMP.Duration=-10. Итог: Счетчик ЭМИ=0 и юнит вновь работает. 
EMP.Cap выше нуля. Счетчик ЭМИ цели уменьшится на шисло фреймов, указанное EMP.Duration. Если это число выше EMP.Cap, то счетчик уменьшится ещё больше и станет равен EMP.Cap. 
Примеры: Счетчик ЭМИ=50, EMP.Duration=10, EMP.Cap=70. Итог: Счетчик ЭМИ=40. 
Счетчик ЭМИ=50, EMP.Duration=10, EMP.Cap=20. Итог: Счетчик ЭМИ=20. 
Счетчик ЭМИ=7, EMP.Duration=10. Итог: Счетчик ЭМИ=0 и юнит вновь работает. 
EMP.Cap=0 EMP.Duration не играет роли. Счетчик ЭМИ установится на ноль и юнит вновь заработает. 

Быстрый старт: Если вы хотите создать иммуный к ЭМИ юнит, то поставьте ему флаг ImmuneToEMP=yes. 

[TechnoType]ImmuneToEMP= (boolean): 
Флаг, определяющие наличие у юнита иммунитета к ЭМИ. Стандартное положение определяются следующими правилами: 

BuildingTypes: ImmuneToEMP по умолчанию no для BuildingTypes с флагом Powered=yes и отрицательным значением Power=. 
ImmuneToEMP по умолчанию no для BuildingTypes с хотя бы одной из следующих особых функций: 
Радар 
Супероружие 
Свертывается в технику 
Управляет техникой 
Гап-генератор 
Сенсоры 
Узел лазерного ограждения 
ImmuneToEMP по умолчанию yes для всех остальных BuildingTypes. Например, электростанции и ДОТы по умолчанию иммунные к ЭМИ, как и здания связи со спутниками-шпионами и фабрики. 

InfantryTypes: ImmuneToEMP по умолчанию yes для InfantryTypes, кроме имеющих флаг Cyborg=yes (в этом случае ImmuneToEMP по умолчанию no). 

VehicleTypes и AircraftTypes: ImmuneToEMP по умолчанию no для VehicleTypes и AircraftTypes, кроме имеющих флаг Organic=yes (в этом случае ImmuneToEMP по умолчанию yes). 

Установка значений ImmuneToEMP вручную всегда переписывает значения по умолчанию. Иммунитет к ЭМИ можно назначить новой способностью ветеранов/элиты "EMPIMMUNE”. Просто добавьте VeteranAbilities=EMPIMMUNE или EliteAbilities=EMPIMMUNE нужному объекту. Иммунитет к ЭМИ также уважает TypeImmune, AffectsAllies и AffectsEnemies боеголовки. 

[TechnoType]EMP.Modifier= (множитель) 
Если эффект ЭМИ положителен, он будет умножен на этот модификатор. Вы можете создать юниты, более или менее уязвимые к эффектам электро-магнитного импульса. По умолчанию 100%. 

См.Уничтожение юнитов через ЭМИ чтобы узнать как заставить разбиться летающие TechnoTypes. 

Firestorm Wall 
Firestorm Wall и супероружие можно вернуть в Yuri’s Revenge. Подробнее см. в Новое супероружие

Лазерные ограждения 

Лазерные ограждения работали в Red Alert 2 и Yuri’s Revenge 1.000, но перестали в патче 1.001, где собственно лазеры никогда не включались (по всей видимости это было случайное изменение, а не нечто задуманное Westwood). 

Лазерные ограждения работают в точности как было в Tiberian Sun. Вам нужен BuildingType с LaserFencePost=yes в роли углового узла и ещё один BuildingType с LaserFence=yes, который будет автоматически появляться между угловыми узлами (см. оригинальные SHP зданий из Tiberian Sun для примера графического исполнения/управления). Ограждения непроходимы для наземных войск и неуязвимы для обычных атак, но при уничтожении угловых узлов связанные ограждения разрушаются. Когда угловые узлы обесточивались, ограждение отключалось и становилось пересекаемым. При восстановлении электроэнергии ограждение активировалось вновь, и любые не успевшие пересечь ограждение юниты уничтожались. 

Мультиинженеры 
В Red Alert был способ сбалансировать инженеров. Они могли захватить только поврежденное здание, что заметно усложняло процесс захвата. Если инженер не мог захватить здание, то он его лишь повреждал. EngineerDamage отсутствовал в Yuri’s Revenge. Ares восстанавливает эту возможность. 

[General]EngineerCaptureLevel= (дробь - уровень): 
Определяет какую часть здоровья или меньше должно иметь здание для захвата. 
[General]EngineerDamage= (дробь - процент): 
Если здание нельзя захватить, то инженер нанесет этот процент от максимального здоровья здания повреждений.[General]EngineerAlwaysCaptureTech= (boolean): 
Определяет, могут ли инженеры захватывать технологические постройки независимо от их текущего здоровья. 
[General]EngineerDamageCursor.*= (Cursor): 
Определяет курсор, который показывает, что инженер нанесет вред зданию вместо его захвата. См. Значения по умолчанию курсоров супероружия для ранее не использованного курсора-детонатора. 


Используйте с осторожностью. Обычно EngineerDamage не должен быть выше EngineerCaptureLevel, иначе инженеры взорвут здание без возможности его захватить. 
См. Кнопка мультиинженеров для возможности игроку включать или выключать мультиинженеров в игровом меню. Если кнопка не доступна, то игра будет брать настройки из rulesmd.ini. 

Кнопка мультиинженеров 

Tiberian Sun позволяла включить или выключить режим мультиинженеров через пользовательский интерфейс. Ares возвращает эту возможность. Если игрок выключит мультиинженеров, то здания всегда можно захватить инженером, иначе это определяется через настройки в rulesmd.ini. 
[UISettings]AllowMultiEngineer= (bool): 
Определяет, можно или нет включить режим мультиинженеров через меню. По умолчанию no. Если не отображать, то настройки берутся из rulesmd.ini. 

См. Мультиинженеры для деталей работы режима. 

NB: Пока доступно лишь в меню skirmish/схватки. Со временем поддержка этого режима будет добавлена к локальным и Интернет-играм. 

Прожекторы 
Прожекторы вызывали Internal Error при своем создании. Эта ошибка устранена, так что прожекторы можно создавать. 
Spotlights[Unit]HasSpotlight= (boolean): 
Если yes, создает прожектор около юнита (учтите, что теперь они доступны всей большой четверке типов, а не только BuildingTypes). Установленные на BuildingType, прожекторы работают как в оригинальной игре, вращаясь вокруг, но если установлены на юнит, то они освещают лишь строго впереди юнита. [Unit]Spotlight.StartHeight= (число - лептоны): 
Задает число лептонов над землей, на котором создает луч прожектора. По умолчанию 250. 
[Unit]Spotlight.Distance= (число - лептоны): 
Дистанция в лептонах от юнита, на которой луч прожектора достигент земли. По умолчанию 1024. 
:[Unit]Spotlight.AttachedTo= (определение - одно из body|turret|barrel): Часть, к которой крепится прожектор для определения направления. Если установлено "body”, то прожетктор светит относительно направления вперед тела, если на турель - в направлении поворота турели. Не работает для зданий. По умолчанию body. 
[Unit]Spotlight.DisableRed= (boolean): 
Если yes, то прожектор не излучает красный свет. По умолчанию no. 
[Unit]Spotlight.DisableGreen= (boolean): 
Если yes, то прожектор не излучает зеленый свет. По умолчанию no. 
[Unit]Spotlight.DisableBlue= (boolean): 
Если yes, то прожектор не излучает синий свет. По умолчанию no. 
[Unit]Spotlight.DisableColor= (boolean): 
Если yes, то прожектор делает землю темнее, а не светлее, и отключение цветов флагами выше будет игнорироваться. 

Вор техники 
С Ares вы можете восстановить воров техники вроде мутанта-угонщика из Tiberian Sun без необходимости в дополнительных флагах Thief=yes, Infiltrate=yes или Agent=yes. Логика улучшена для большей гибкости, которую оригинал не мог позволить. См. также Угонщики.

Источник: http://redalert3.3nx.ru/viewtopic.php?p=2702
Категория: Мои статьи | Добавил: ATroN (16 Сентября 12) | Автор: Spy
Просмотров: 20899 | Комментарии: 5 | Теги: expansion, Ares, dll | Рейтинг: 0.0/0
Всего комментариев: 4
avatar
1
...
avatar
2
hi!
avatar
3
Hello. And Bye.
avatar
0
4
В Mental Omega сыграй, если обычный RA наскучил. Тем более, что по сети многие играют.
avatar