Итак, я опишу самый простой способ создания самого простого юнита. Точнее, мы разберем по запчастям танк Апокалипсис.
Каждый юнит имеет минимум ДВЕ составляющие – анимацию или трехмерную модель самого юнита (она может быть шейповой (SHP, но это встречается довольно редко) и воксельная (VXL, такие юниты (танки) более распространены) и внутренний код, который располагается в ART(MD).INI и RULES(MD).INI Так вот, кроме всего прочего, пехота бывает ТОЛЬКО шейповая (кто найдет воксельную, пишите – это будет сенсация), а танки зачастую воксельные. С ними проще, поэтому будем разбираться для начала именно с вокселными юнитами.
Сначала юнита прописывают в Vehicle Type List, под порядковым номером (к примеру, у данного танка он равен 3 (3=APOC))
Вот код Апокалипсиса:
; Mammoth tank [APOC] ; это внутреннее имя юнита. Такое же название имеет и воксельная модель, и прописывается он везде также. UIName=Name:APOC ;это высвечивается при отсутствии описания в CSF-файле (он содержит все, так сказать, «внешние» тексты). Name=Apocalypse ;это в общем не такая и важнаю строчка, но лучше ее прописывать Image=MTNK ;а это уже интересная строчка. Она означает, что в ART(MD).INI юнит в коде будет не [APOC], а [MTNK] Category=AFV ;категория данного юнита. Скажем так: это просто боевая техника. TargetLaser=yes ;лазерный прицел - включен Primary=120mmx ;первое оружие. Его описание будет ниже. Secondary=MammothTusk ;второе оружие Strength=800 ; «толщина шкуры». Чем больше тем лучше. От 1 до 1000. Explodes=yes ;не знаю Prerequisite=NAWEAP,NATECH ;здания, которые должны быть построены для возможности построения данного юнита CrateGoodie=yes ;не помню Armor=heavy ;тип брони – тяжелый. С одинаковым Strength такой юнит по идее будет получать меньше повреждений. Впрочем, это зависит от оружия. Turret=yes ;турель (башня) имеется TechLevel=7 ;как мне объяснили, это параметр по большому счету влияет только в скримише. Sight=6 ; радиус обзора Speed=4 ;скорость. Сильно не переусердствуйте, игра от больших выражений может вылетать. Owner=Russians,Confederation,Africans,Arabs ;за кого инраем. В данном случае за Россию, Ирак, Кубу и Ливию Cost=1750 ;стоимость юнита Soylent=1750 ;не знаю Points=60 ;сколько вражеский юнит получает очков за уничтожение этого юнита. Даже тут, оказывается, прокачка есть. Даже экспу нашли! ROT=5 ;не знаю Crusher=yes ;не знаю SelfHealing=yes ;восстанавливает ли юнит жизни до зеленой полоски. Crewed=no ;не знаю. Наверно, что-то связанное с работой в команде. IsSelectableCombatant=yes;не знаю Explosion=TWLT070,S_BANG48,S_BRNL58,S_CLSN58,S_TUMU60 ;анимация взрывов юнита (при уничтожении) VoiceSelect=ApocalypseSelect } VoiceMove=ApocalypseMove } VoiceAttack=ApocalypseAttackCommand } VoiceFeedback= } это все различные звуки, которые издает юнит. DieSound=GenVehicleDie } MoveSound=ApocalypseMoveStart } CrushSound=TankCrush } Maxdebris=3 ;не знаю Locomotor={4A582741-9839-11d1-B709-00A024DDAFD1};код, по которому АИ распознает тип движения юнита: телепортация, или, к примеру, наземный воксельный юнит Weight=3.5 ;не знаю MovementZone=Destroyer ;место передвижения юнита ThreatPosed=40 ; Эта величина ДОЛЖНА быть 0 для все, строющий addons ;это не я сказал, а разработчики. DamageParticleSystems=SparkSys,SmallGreySSys ;не знаю AllowedToStartInMultiplayer=no ;может ли этот юнит присутствовать среди стартовых юнитов в скримише. ZFudgeColumn=9 ;не знаю ZFudgeTunnel=15;не знаю Size=6 ;кол-во занимаемых клеток в транспортном средстве (размер) VeteranAbilities=STRONGER,FIREPOWER,ROF,SIGHT,FASTER ;бонусы, получаемые при достижении первого звания EliteAbilities=SELF_HEAL,STRONGER,FIREPOWER,ROF ;бонусы, получаемые при достижении второго звания ElitePrimary=120mmxE ;оружие, которое юнит получает при возведение во второе звание.
Так, это сам танк. Без оружия. Давайте теперь разберем его.
Это само оружие
[120mmx] ;название Damage=100 ;ущерб ROF=80 ;скорострельность. Значение 15=1 с. 30=2 секундам и т.д. Range=5.75 ;дальнобойность Projectile=Cannon ;скажем так: внешний вид «пули» Speed=40 ;скорость снаряда. 100 – мгновенное попаданиею Warhead=ApocAP ;боеголовка. Report=ApocalypseAttackGround ;это звук при выстреле. Anim=APMUZZLE ;это анимация «пули» Burst=2 ;кол-во снарядов, вылетающих при одном выстреле. Bright=yes ;не знаю
Это боеголовка. Она отвечает практически за все.
[ApocAP] CellSpread=.3 ;что-то вроде радиуса поражения PercentAtMax=.5 ;не знаю Wall=yes ;поражает ли стены Wood=yes ;поражает ли деревянные постройки (или лес?) Verses=25%,25%,25%,75%,100%,100%,100%,100%,70%,60%,100% ;в процентах – что-то типа проникающей способности для каждого типа брони Conventional=yes ;не знаю InfDeath=3 ;какая анимация смерти юнита AnimList=APOCEXP ;тоже какая-то анимация ProneDamage=50% ;наверное, что-то вроде разброса мощности поражения
Элитное оружие. Ничего нового не появилось (в смысле скриптов)
; large anti-armor cannon (two shooter) [120mmxE] Damage=100 ROF=80 Range=5.75 Projectile=Cannon Speed=40 Warhead=ApocAPE Report=ApocalypseAttackGround Anim=VTMUZZLE Burst=4 Bright=yes
Улучшенная боеголовка. Тоже все по-старинке
[ApocAPE] CellSpread=.3 PercentAtMax=.5 Wall=yes Wood=yes Verses=100%,100%,100%,75%,100%,100%,100%,100%,70%,60%,100% Conventional=yes InfDeath=3 AnimList=VTEXPLOD ProneDamage=50%
Это уже описание «пули»
; straight high-speed ballistic shot [Cannon] Image=120MM ;внешний вид «пули» Arcing=true SubjectToCliffs=yes } SubjectToElevation=yes } не знаю. Без этих скриптов жить можно. SubjectToWalls=yes }
Все вышеописанное необходимо для работы. Помещается в RULES(MD).INI и все. Далее – для ART(MD).INI
[MTNK] ; Apocalypse tank Voxel=yes ;обозначает, воксельная ли это модель (юнит) Remapable=yes ;имеет ли юнит в раскраске зоны, которые меняют цвет в зависимости от цвета стороны Cameo=MTNKICON ;иконка AltCameo=MTNKUICO ;элитная иконка PrimaryFireFLH=190,25,120 ;как я понял – расположение, откуда стреляет юнит (типа где у него дуло). Как высчитывать не знаю. На глазок.
|