Раздел статей

Статьи портала->->Туториалы по СДК РА3 [ Поиск ]

Туториалы по СДК РА3
Название Туториалы по СДК РА3
Описание Работа с кодом
Уровень: Для новичков
Редакторы: Блокнот
Форматы: .xml
Автор: Неганов Вячеслав ака GeneralGamer
Добавил GeneralGamer
Вы установили СДК. У вас есть лицуха РА3. Вы хотите модить игру. С чего начать?
Для начала создайте в папке Mods (искать в папке с установленным СДК) папку с названием вашего мода (название должно состоять только из латинских символов и не иметь пробелы). Потом в новой папке создайте другую папку, название которой - data.
Вернёмся потом к папке с СДК. Находим папку SageXml, в ней содержатся код. Например, заходим в папку Allied, далее в папку Units и копируем файл AlliedAntiVehicleVehicleTech1, вставляем в папку data в папке вашего мода. Переименуйте файл.
Открывайте файл в блокноте (использование других средств редактирования .xml файлов не рекомендуется), и вот какие параметры вы увидите:

базовая анимация юнита. Все юниты требуют её

‘inheritFrom=’ как будет вести себя юнит в игре (обычно пишется название файла анимации, тока без расширения)
‘id=’ идентификатор юнита в коде и билдере
‘SelectPortrait’ и ‘ButtonImage’ это изображения на портрете и кнопочке юнита соответственно
‘Side=‘ Сторона. Без комментариев
‘BuildTime=’ скока секунд вы должны ждать появления этого юнита
‘CommandSet=’ набор команд, которые мона отдать юниту (спец-способность, например)
‘KindOf=’ чем является юнит. Основные: INFANTRY - это пех, VEHICLE - машина, CAN_ATTACK - может стрелять, SELECTABLE - можно выбрать мышкой
‘VoicePriority’ используется при выборе юнитов разных видов. Точнее - это приоритет, который влияет на то, кто в этой группе крикнет "Готов!". Пример: если вы выбрали танк и пеха, то первым крикнет танк =)
‘Description’ и ‘TypeDescription’ описание юнита при наведении мыши на кнопку с его изображением при постройке (пишутся эти описания в mod.str)
‘HealthBoxHeightOffset’ на какой высоте торчит плашка со здоровьем юнита
‘UnitIntro’ звук при создании юнита
‘GameDependency’ что требуется для постройки юнита

'BuildCost Account=”=$ACCOUNT_ORE” Amount=”750″' денежка=)
‘Armor=’ tag from ‘ArmorSet’ ссылается на вид брони юнита (процент стойкости к дамагу) (смотерть в GlobalData/Armor.xml)

‘LocomotorSet’ как ездиет юнит. Мона сделать так, чтоб Апокалипс летал как самолёт=)
‘Locomotor=’ тип (смотреть в GlobalData/Locomotor.xml)
‘Speed=’ скорость

'Body'
'ActiveBody
id=”ModuleTag_Body”
MaxHealth=”250″' Здоровьишко юнита
'Body'

Далее идут орудия юнита (для примера взят Тесла трупер):

'WeaponSetUpdate
id=”ModuleTag_WeaponSetUpdate”'
'WeaponSlotHardpoint
ID=”1″'
'Weapon
Ordering=”PRIMARY_WEAPON” - Первое
Template=”SovietHeavyAntiVehicleInfantryTeslaGun” - Название (сами оружия хранятся в файле GlobalData/Weapon.xml)
ForbiddenObjectStatus=”GENERIC_TOGGLE_STATE CHARGING_BASE_DEFENSES”' В каких случаях юнит не могёт стрелять
'Weapon
Ordering=”SECONDARY_WEAPON” - Второе
Template=”SovietHeavyAntiVehicleInfantryTeslaLinkGun”
ForbiddenObjectStatus=”GENERIC_TOGGLE_STATE”'
'WeaponSlotHardpoint'
'WeaponSetUpdate'

Это основные характеристики любых юнитов. Но есть ещё много других модулей, которые есть тока у некоторых. Так что рекомендую изучать самим код. Когда вы увидите всё количество файлов кода, не пугайтесь, большинство вам просто не понадобятся. Хотя вы можете много чего отредить, ИИ например. Ну ладно, продолжим.

Оружие:
Всё оружие прячется в GlobalData/Weapon.xml.
Для примера я возьму Танк Цунами.
Откройте .xml и ищите: JapanAntiVehicleVehicleTech1Cannon. Это оружие того танка
Смотрим:

‘AttackRange=’ дальность атаки
‘WeaponSpeed=’ скорость полёта снаряда
‘AcceptableAimDelta=’ максимальный угол атаки оружия
‘ClipSize=’ количество "патронов в обойме"
‘AutoReloadsClip=’ авто-перезарядка. ‘AUTO’ значит автоматически, a ‘RETURN_TO_BASE’ значит что нуно вернуться на базу (аэродром)
‘Flags=’ фильтр. ”ATTACK_NEEDS_LINE_OF_SIGHT” значит что для атаки нужно видеть противника.
‘CanFireWhileMoving=’ может ли стрелять во время движения
‘RequiredAntiMask=’ фильтр - оружие может стрелять только по особым целям. Например, RequiredAntiMask=”ANTI_WATER ANTI_GROUND ANTI_STRUCTURE” - оружие может пулять по зданиям, водным и наземным юнитам. Но не может бить авиацию=)
‘FiringDuration=’ продолжительность стрельбы
‘ClipReloadTime=’ время перезарядки
‘Nuggets’ секция для ракет и боеголовок
У танка боеголовка называется ‘JapanAntiVehicleVehicleTech1Warhead’.
Смотрим что там мона изменить
‘DamageNugget’ там записан дамаг и то что с ним связано
‘Damage=’ что непонятного?
‘DamageType=’ тип дамага
‘DeathType=’ тип смерти юнита от этой пушки
‘SuppressionNugget’ область поражения. ‘Radius=’ радиус, ‘DurationSeconds=’ продолжительность

Опять же, это основные характеристики, есть и особые параметры ;)
Если хотите добавить чинящих дронов к зданию или к юниту, то в инженерных параметрах (смотерть 'Behaviors' и ниже 'Draws') пишите следующий код:

'AssignSlavesTargetObjectSpecialPower
id=”ModuleTag_SpecialPowerRepairVehicle”
SpecialPowerTemplate=”SpecialPower_TargetedRepairVehicle” ' - спец-сила
'SpawnBehavior
id=”ModuleTag_SpawnRepairDrones”
SpawnNumberData=”3″ - количество
InitialBurst=”3" - начальное количество
SpawnReplaceDelayData=”10s” - время появления замены
SpawnedRequireSpawner=”true” - чтобы появиться нужен хозяин
KillSpawnsOnCaptured=”true” - уничтожение дронов при захвате
SpawnInsideBuilding=”true” - появление внутри здания
KillSpawnsOnDisabled=”true”' - уничтожение при отключении
'Die
DeathTypes=”ALL” '
'SpawnTemplate'AlliedWarFactoryRepairDrone'SpawnTemplate' - название объекта
'SpawnBehavior'

Можно сделать не тока чинящих, но и атакующих дронов ;)
Вам мало цветов, которые мона выбрать в мультиплеере? Тада ловите код)
Откройте GlobalData/MultiplayerColors.xml.
Добавьте туды:


'MultiplayerColor id=”ColorGold”' - золотой цвет)
'RGBColor R=”255″ G=”200″ B=”1″ A=”255″ ' - цвет
'RGBNightColor R=”255″ G=”200″ B=”1″ A=”255″ ' цвет ночью
'TooltipName'Color:Gold 'AvailableInMetaGame'true'AvailableInMetaGame' разрешен или нет)
'MultiplayerColor'

Смотрите чтоб число n (а это номер слота) не совпадало с другими!!!
У вас есть желание отредить экспу юнитов (то есть када они получают один шеврон и т.д.)?
Смена экспы происходит в файле GlobalData/ExperienceLevels.xml.
Там есть экспа для всех юнитов

At start, the generic veterancy levels (VLs) are defined.
Система рангов юнитов такова: уровень 1 по умолчанию для всех юнитов, уровни 2, 3 и 4 это ранги 1, 2 и 3.
ЕА назвала ранги так: ‘veteran’, ‘elite’ и ‘heroic’.
Код дельфина:

'ExperienceLevelTemplate
id=”AlliedAntiNavalScoutExperienceLevel_1″ - название уровня
inheritFrom=”ExperienceLevel_AlliedRank1″ - не понял
RequiredExperience=”1″ - необходимый уровень
ExperienceAward=”750″' - награда экспой за уничтожение объекта этого уровня
'Target'AlliedAntiNavalScout'Target' - название объекта
'ExperienceLevelTemplate'
'ExperienceLevelTemplate
id=”AlliedAntiNavalScoutExperienceLevel_2″ - название
inheritFrom=”ExperienceLevel_AlliedRank2″ - тип
Prerequisite=”AlliedAntiNavalScoutExperienceLevel_1″ - какой уровень необходим
RequiredExperience=”2250″ - нужно экспы
ExperienceAward=”1500″' - награда экспой за уничтожение объекта этого уровня
'Target'AlliedAntiNavalScout'Target' - объект
'ExperienceLevelTemplate'
'ExperienceLevelTemplate
id=”AlliedAntiNavalScoutExperienceLevel_3″
inheritFrom=”ExperienceLevel_AlliedRank3″
Prerequisite=”AlliedAntiNavalScoutExperienceLevel_2″
RequiredExperience=”4500″
ExperienceAward=”2250″'
'Target'AlliedAntiNavalScout'Target'
'ExperienceLevelTemplate'
'ExperienceLevelTemplate
id=”AlliedAntiNavalScoutExperienceLevel_4″
inheritFrom=”ExperienceLevel_AlliedRank4″
Prerequisite=”AlliedAntiNavalScoutExperienceLevel_3″
RequiredExperience=”6750″
ExperienceAward=”3000″'
'Target'AlliedAntiNavalScout'Target'
'ExperienceLevelTemplate'

Вот и всё.
Теперь спец-силы:
Спец-силы - это комплекс игровых фич. Они содержатся в файле GlobalData/SpecialPowerTemplates.xml.
Пример (код МСЦ):

'SpecialPowerTemplate
id=”SpecialPower_UnpackReplaceSelf” - название
TargetType=”LOCATION_AND_ANGLE” - тип цели
NameOfVoiceNameToUseAsInitiateIntendToDoVoice=”VoiceDeploy” звук при использовании силы
RadiusCursorRadius=”1″ - радиус курсора
PreventConditions=”BOOBY_TRAPPED IS_BEING_DRAGGED SOLD” условия, IS_BEING_DRAGGED - схвачен Апокалом (это способность такая), остальное ясно, или просто заюзайте словарь)
Flags=”WATER_OK FOGGED_SHROUDED_CELLS_OK CANNOT_LEAVE_ENCLOSURE CAN_NOT_BE_SCRAMBLED” флаги. WATER_OK - может развернуться на воде, и т.д.
WaypointModeTerminal=”false” ' не понял чё это
'GameDependency
id=”SpecialPower_UnpackReplaceSelf_GameDependency” требование
ForbiddenModelConditions=”UNPACKING”' условие запрещения (в данном случае - состояние модели)
'SpecialPowerTemplate'

Другой пример:

'SpecialPowerTemplate
id=”SpecialPower_ShrinkRay”
ReloadTime=”10s” - время перезарядки
TargetType=”OBJECT” - тип цели
NameOfVoiceNameToUseAsInitiateIntendToDoVoice=”VoiceShrinkRay”
Flags=”NEEDS_OBJECT_FILTER CANNOT_LEAVE_ENCLOSURE”
WaypointModeTerminal=”false” >

'ObjectFilter - фильтр объектов
Rule=”ANY” - какие
Include=”VEHICLE HUGE_VEHICLE TIME_BOMB” впридачу к ним
Exclude=”AIRCRAFT” - низя
StatusBitFlagsExclude=”SUBMERGED AIRBORNE_TARGET”' - у которых данный статус
'ObjectFilter'
'SpecialPowerTemplate'

Ещё пример:

'SpecialPowerTemplate
id=”SpecialPowerChronoSwapTeleport”
ReloadTime=”120s”
TargetType=”OBJECT”
EvaEventToPlayWhenSelectingTarget=”SelectUnit” голос, так сказать, помощника
inheritFrom=”SpecialPowerChrono_Base” поведение
RequiredPlayerTech=”PlayerTech_Allied_ChronoSwap”> необходима технология игрока
'ObjectFilter
Rule=”ANY”
Relationship=”ALLIES”
Include=”INFANTRY VEHICLE TIME_BOMB”
Exclude=”AIRCRAFT”
StatusBitFlagsExclude=”SUBMERGED AIRBORNE_TARGET NOT_IN_WORLD”>
'IncludeThing'AlliedTimeBombLvl1'IncludeThing' более подробно, что добавляется
'IncludeThing'AlliedTimeBombLvl2'IncludeThing'
'IncludeThing'AlliedTimeBombLvl3'IncludeThing'
'ObjectFilter'
'GameDependency
id=”Allied_ChronoSwapTeleport_GameDependency”' название требования
'RequiredObject'AlliedConstructionYard'RequiredObject' Необходимо
'GameDependency
'SpecialPowerTemplate

Если вам нужен mod.str, почему бы его не создать?
Создаёте обычным блокнотом файл, которому присваиваете расширение .str
Строки в нём должны выглядеть так:

Name:AlliedGunshipAircraft
“Harbinger Gunship”
END

Desc:AlliedGunshipAircraft
“Kills stuff with protons”
END

Type:AlliedGunshipAircraft
“DON’T CROSS THE STREAMS”
END

Что хотите, то и пишите)

И наконец самый важный файл, без которого не обойтись - mod.xml!
Как его сделать? Да тем же блокнотом) Но в нём должно быть следующее:

'?xml version=”1.0″ encoding=”UTF-8″?'
'AssetDeclaration xmlns=”uri:ea.com:eala:asset” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“'
'Tags''/Tags'
'Includes'
'!–
mod.xml is the central include for mod setup data.
–'
'!– These includes need to be in all mod.xml files –'
'Include type=”reference” source=”DATA:static.xml” /'
'Include type=”reference” source=”DATA:global.xml” /'
'Include type=”reference” source=”DATA:audio.xml” /'

'Include type=”all” source=”DATA:mymod/Data/LogicCommand.xml”/'
'Include type=”all” source=”DATA:mymod/Data/LogicCommandSet.xml”/'
'Include type=”all” source=”DATA:mymod/Data/mytank.xml”/'


'/Includes'

'/AssetDeclaration'

Вот и всё. Если я где-то допустил ошибку, сообщите.
Всё это - вольный перевод статей с сайта буржуев
Голосов Голосов: 2 - В среднем: 5

Добавить комментарий Оценить
Комментарии
Slider
28 Окт 2010
чеата особых различий в коде между тибериумом и и ра 3 невижу, так по мелочи, разве шо некоторые новые модули.
unwelcom
24 Июнь 2009
я просто в шоке.
перевод и впрям свободный. Ну что толку с него
GeneralGamer
23 Июнь 2009
Внимание - из-за особенностей кода я заменил все "стрелочки влево-вправо" на символ "одна-кавычка"

Статистика
На данный момент 51 статей в Базе Данных
Лидер просмотров: Создание новых юнитов
Лидер по оценкам: Создание новых юнитов

Всего пользователей в разделе статей: 32 (0 Зарегистрированных пользователей 32 Гостей и 0 Анонимных)
Известные пользователи: 0
 

Воспроизведение материалов с данного сайта без разрешения редакции запрещено.
Реклама на нашем сайте.
Red System © 2001-2016 - All Rights Reserved