Отдельная и комплексная реализация боевой единицы Кровавый охотник фракции Тал'даримов, включающая полный набор всех его необходимых данных для простого его использования на любой карте без конфликтов.
Игровое описание
Смертоносный воин-убийца. Обладает постоянной маскировкой. Может использовать способность «Стазис Пустоты».
Базовые характеристики
| Характеристика | Значение |
|---|---|
| Здоровье | 90 |
| Щиты | 200 |
| Броня | 2 |
| Скорость | 2.813 |
| Дальность обзора | 9 |
| Занимаемый лимит | 2 |
| Требует | Построенное тёмное святилище |
Немного о технической реализации
Сама единица определена обычным образом,
XML Код единицы
<Catalog>
<!-- Requires: Unit:UnitGround[base.xml] -->
<!-- Requires: DataCollectionUnit:Weapon_Base[base.xml] -->
<CButton id="BloodHunter" parent="UnitButton_OnlyGround">
<EditorCategories value="Race:Taldarim"/>
<Icon value="Assets\Textures\btn-unit-protoss-darktemplar-taldarim.dds"/>
</CButton>
<CUnit id="BloodHunter" parent="Generic_Unit_Ground" race="Tald">
<EditorCategories value="ObjectType:Unit,ObjectFamily:Campaign"/>
<AbilArray Link="BloodHunter_VoidStasis"/>
<WeaponArray Link="BloodHunter_Weapon"/>
<!-- BloodHunter Properties -->
<CardLayouts index="0">
<LayoutButtons Face="BloodHunter_VoidStasis" Type="AbilCmd" AbilCmd="BloodHunter_VoidStasis,Execute" Row="2" Column="0"/>
</CardLayouts>
<LifeStart value="90"/>
<LifeMax value="90"/>
<LifeArmor value="2"/>
<ShieldsStart value="200"/>
<ShieldsMax value="200"/>
<ShieldArmor value="0"/>
<Speed value="2.813"/>
<FlagArray index="Cloaked" value="1"/>
<Sight value="9"/>
<LateralAcceleration value="46.0625"/>
<Food value="-2"/>
<Radius value="0.375"/>
<GlossaryPriority value="120"/>
<GlossaryStrongArray value="Thor"/>
<GlossaryStrongArray value="Carrier"/>
<GlossaryStrongArray value="Ultralisk"/>
<GlossaryWeakArray value="Corruptor"/>
<GlossaryWeakArray value="VikingFighter"/>
</CUnit>
<CActorUnit id="BloodHunter" parent="AdvancedUnitStandard" unitName="BloodHunter">
<UnitIcon value="Assets\Textures\btn-unit-protoss-darktemplar-taldarim.dds"/>
<HeroIcon value="Assets\Textures\btn-unit-protoss-darktemplar-taldarim.dds"/>
<ModelFlags index="OutlineEmitter" value="1"/>
<Macros value="TerrainSquibAnimations"/>
<BuildModel value="BloodHunter@WarpIn"/>
<WalkAnimMoveSpeed value="2.1445"/>
<BarWidth value="40"/>
<BarOffset value="50"/>
<WalkAnimMoveSpeed value="3.75"/>
<WireframeShield>
<Image value="Assets\Textures\wireframe-protoss-darktemplar-taldarim-shield01.dds"/>
<Image value="Assets\Textures\wireframe-protoss-darktemplar-taldarim-shield02.dds"/>
<Image value="Assets\Textures\wireframe-protoss-darktemplar-taldarim-shield03.dds"/>
</WireframeShield>
<GroupIcon>
<Image value="Assets\Textures\btn-unit-protoss-darktemplar-taldarim.dds"/>
</GroupIcon>
<Wireframe>
<Image value="Assets\Textures\wireframe-protoss-darktemplar-taldarim.dds"/>
</Wireframe>
<LifeArmorIcon value="Assets\Textures\btn-upgrade-protoss-groundarmorlevel0.dds"/>
<TerrainSquibs>
<MovementDistance value="0.150000,0.150000"/>
<IdlePeriod value="0.250000,0.500000"/>
<RangeUp value="2.750000"/>
<RangeDown value="0.100000"/>
<AttachQuery Methods="AMFilterHardpoint"/>
<Visuals TerrainPhysicsMaterial="Water" ActorModel="TerrainSquibHarnessContinuous" ModelLink="WaterRippleMedium"/>
</TerrainSquibs>
<TerrainSquibs>
<MovementDistance value="0.150000,0.150000"/>
<IdlePeriod value="0.250000,0.500000"/>
<RangeUp value="3.000000"/>
<RangeDown value="0.250000"/>
<AttachQuery Methods="AMFilterCenter"/>
<Visuals TerrainPhysicsMaterial="Water" ActorModel="TerrainSquibHarnessContinuous" ModelLink="WaterRippleLargeVehicle"/>
</TerrainSquibs>
<Aliases value="_UnitSmall"/>
</CActorUnit>
<CModel id="BloodHunter">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Units\Protoss\DarkTemplar_TalDarim\DarkTemplar_TalDarim.m3"/>
<Occlusion value="Show"/>
<ScaleMax value="0.860000,0.860000,0.860000"/>
<ScaleMin value="0.860000,0.860000,0.860000"/>
<SquibTypeDefault value="LightArmor"/>
<TechPurchaseCamera value="Star2CameraHigher22"/>
<UnitGlossaryCamera value="Star2CameraHigher22"/>
<PlanetPanelCamera value="Star2CameraHigher22"/>
</CModel>
<CModel id="BloodHunter@Death">
<EditorCategories value="Race:Taldarim"/>
<Occlusion value="Show"/>
<LowQualityModel value="ProtossSmallTaldarimUnitDeathLow"/>
<Model value="Assets\Units\Protoss\DarkTemplar_TalDarim_Death\DarkTemplar_TalDarim_Death.m3"/>
</CModel>
<CModel id="BloodHunter@Portrait">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Portraits\Protoss\DarkTemplar_TalDarim_Portrait\DarkTemplar_TalDarim_Portrait.m3"/>
<Image value="Assets\Textures\darktemplarportrait_static.dds"/>
</CModel>
<CModel id="BloodHunter@WarpIn">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Units\Protoss\DarkTemplar_Taldarim_WarpIn\DarkTemplar_Taldarim_WarpIn.m3"/>
<Occlusion value="Show"/>
<ScaleMax value="0.860000,0.860000,0.860000"/>
<ScaleMin value="0.860000,0.860000,0.860000"/>
<LowQualityModel value="ProtossWarpInLow"/>
<SelectionRadius value="0.555400"/>
<ShadowRadius value="0.555400"/>
</CModel>
<CModel id="BloodHunter@Placement">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Units\Protoss\DarkTemplar_Taldarim_Placement\DarkTemplar_Taldarim_Placement.m3"/>
<Radius value="-1.000000"/>
<Occlusion value="Show"/>
<ScaleMax value="0.850000,0.850000,0.850000"/>
<ScaleMin value="0.850000,0.850000,0.850000"/>
<SelectionRadius value="0.588100"/>
<ShadowRadius value="0.588100"/>
</CModel>
<CModel id="BloodHunter@Holo">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Units\Protoss\DarkTemplar_TalDarim_HoloUnit\DarkTemplar_TalDarim_HoloUnit.m3"/>
<Radius value="-1.000000"/>
<ScaleMax value="0.860000,0.860000,0.860000"/>
<ScaleMin value="0.860000,0.860000,0.860000"/>
<SelectionRadius value="0.588100"/>
<ShadowRadius value="0.588100"/>
</CModel>
<CSound id="BloodHunter@Help" parent="ProtossHelp">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Help00.ogg" FacialGroup=""/>
</CSound>
<CSound id="BloodHunter@Attack" parent="Voice">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Attack00.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Attack01.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Attack02.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Attack03.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Attack04.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Attack05.ogg" FacialGroup=""/>
<AssetArray File="Assets\Sounds\BloodHunter_Pissed01.ogg" FacialGroup=""/>
<AssetArray File="Assets\Sounds\BloodHunter_Pissed02.ogg" FacialGroup=""/>
<Volume value="-7.000000,-7.000000"/>
<Pitch value="-0.300000,0.000000"/>
</CSound>
<CSound id="BloodHunter@Pissed" parent="ProtossPissed">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed00.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed01.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed02.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed03.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed04.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed05.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Pissed06.ogg" FacialGroup=""/>
<Volume value="-7.000000,-7.000000"/>
<Pitch value="-0.300000,0.000000"/>
</CSound>
<CSound id="BloodHunter@Ready" parent="ProtossReady">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Ready00.ogg" FacialGroup=""/>
<Volume value="-4.000000,-4.000000"/>
<Pitch value="-0.300000,0.000000"/>
</CSound>
<CSound id="BloodHunter@What" parent="ProtossAck_Void">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_What00.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_What01.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_What02.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_What03.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_What04.ogg" FacialGroup=""/>
<Volume value="-7.000000,-7.000000"/>
<Pitch value="-0.300000,0.000000"/>
</CSound>
<CSound id="BloodHunter@Yes" parent="ProtossAck_Void">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes00.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes01.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes02.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes03.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes04.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes05.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes06.ogg" FacialGroup=""/>
<AssetArray File="LocalizedData\Sounds\VO\Protoss\ShadowHunter_Yes07.ogg" FacialGroup=""/>
<Volume value="-7.000000,-7.000000"/>
<Pitch value="-0.300000,0.000000"/>
</CSound>
<CLight id="BloodHunter@Portrait" parent="default">
<ToDInfoArray index="0" AmbientColor="0.380392,0.258824,0.392157" OperatorHDR="3">
<Param index="HDRExposure" value="1.475000"/>
<DirectionalLight index="Key">
<Color value="0.992157,0.847059,0.647059"/>
<ColorMultiplier value="1.000000"/>
<SpecColorMultiplier value="0.708000"/>
<Direction value="-0.044969,0.393465,-0.918239"/>
</DirectionalLight>
<DirectionalLight index="Fill" Color="0.313726,0.756863,1.000000" ColorMultiplier="0.933000" Direction="0.771282,-0.605415,-0.196459"/>
<DirectionalLight index="Back" Color="0.317647,0.874510,0.992157" ColorMultiplier="0.219000" Direction="-0.851308,0.505872,0.139173"/>
</ToDInfoArray>
<EditorCategories value="LightGroup:PortraitsUnitsProtoss"/>
</CLight>
<CRequirement id="BloodHunter@Use">
<NodeArray index="Use" Link="BloodHunter@Use_AllowUnit"/>
</CRequirement>
<CRequirementCountUnit id="BloodHunter@Use_AllowUnit">
<Count Link="DarkShrine" State="CompleteOnly"/>
<Tooltip value="Unit/Name/DarkShrine"/>
</CRequirementCountUnit>
<CValidatorUnitType id="BloodHunter@Is" parent="IsUnit_Default" unit="BloodHunter"/>
<CValidatorUnitType id="BloodHunter@Target" parent="TargetIsUnit_Default" unit="BloodHunter"/>
<CValidatorUnitType id="BloodHunter@Not" parent="NotUnit_Default" unit="BloodHunter"/>
<CValidatorUnitType id="BloodHunter@NotTarget" parent="TargetNotUnit_Default" unit="BloodHunter"/>
<CDataCollectionUnit id="BloodHunter" parent="UnitGround">
<EditorCategories value="DataGroup:Unit,DataFamily:Campaign,Race:Taldarim,ObjectType:Unit"/>
<DataRecord Entry="Button,BloodHunter"/>
<DataRecord Entry="Unit,BloodHunter"/>
<DataRecord Entry="Actor,BloodHunter"/>
<DataRecord Entry="Model,BloodHunter"/>
<DataRecord Entry="Model,BloodHunter@Death"/>
<DataRecord Entry="Model,BloodHunter@Portrait"/>
<DataRecord Entry="Model,BloodHunter@WarpIn"/>
<DataRecord Entry="Model,BloodHunter@Placement"/>
<DataRecord Entry="Sound,BloodHunter@Help"/>
<DataRecord Entry="Sound,BloodHunter@Pissed"/>
<DataRecord Entry="Sound,BloodHunter@Ready"/>
<DataRecord Entry="Sound,BloodHunter@What"/>
<DataRecord Entry="Sound,BloodHunter@Yes"/>
<DataRecord Entry="Light,BloodHunter@Portrait"/>
<DataRecord Entry="Requirement,BloodHunter"/>
<DataRecord Entry="RequirementNode,BloodHunter@Use_AllowUnit"/>
<DataRecord Entry="Validator,BloodHunter@Is"/>
<DataRecord Entry="Validator,BloodHunter@Target"/>
<DataRecord Entry="Validator,BloodHunter@Not"/>
<DataRecord Entry="Validator,BloodHunter@NotTarget"/>
<TechInfoUpgradeUsed value="ProtossGroundArmors@1"/>
<TechInfoUpgradeUsed value="ProtossGroundArmors@2"/>
<TechInfoUpgradeUsed value="ProtossGroundArmors@3"/>
<TechInfoUpgradeUsed value="ProtossShields@1"/>
<TechInfoUpgradeUsed value="ProtossShields@2"/>
<TechInfoUpgradeUsed value="ProtossShields@3"/>
</CDataCollectionUnit>
<!-- ============ Weapon ============ -->
<CWeaponLegacy id="BloodHunter_Weapon">
<EditorCategories value="Race:Taldarim"/>
<Icon value="Assets\Textures\btn-upgrade-protoss-groundweaponslevel0.dds"/>
<TargetFilters value="Ground,Visible;Missile,Stasis,Dead,Hidden,Invulnerable"/>
<Range value="0.1"/>
<Period value="1.694"/>
<DamagePoint value="0.361"/>
<Backswing value="1.333"/>
<Options index="Melee" value="1"/>
<Effect value="BloodHunter_Weapon@Damage"/>
<DisplayEffect value="BloodHunter_Weapon@Damage"/>
</CWeaponLegacy>
<CEffectDamage id="BloodHunter_Weapon@Damage" parent="DU_WEAP">
<EditorCategories value="Race:Taldarim"/>
<Kind value="Melee"/>
<Amount value="40"/>
<Death value="Eviscerate"/>
</CEffectDamage>
<CActorAction id="BloodHunter_Weapon@Attack" parent="GenericAttack" effectAttack="BloodHunter_Weapon@Damage"/>
<CSound id="BloodHunter_Weapon@AttackLaunch" parent="Combat">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="Assets\Sounds\DarkTemplarVoid_AttackLaunch00.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\DarkTemplarVoid_AttackLaunch01.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\DarkTemplarVoid_AttackLaunch02.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\DarkTemplarVoid_AttackLaunch03.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\DarkTemplarVoid_AttackLaunch04.wav" FacialGroup=""/>
<Pitch value="-2.000000,1.000000"/>
<Volume value="-2.200000,-1.200000"/>
</CSound>
<CSound id="BloodHunter_Weapon@AttackImpact" parent="Protoss_AttackImpactMediumSlice">
<EditorCategories value="Race:Taldarim"/>
</CSound>
<CDataCollectionUnit id="BloodHunter_Weapon" parent="Weapon_Instant">
<EditorCategories value="DataGroup:Weapon,DataFamily:Campaign,Race:Taldarim,ObjectType:Other"/>
<DataRecord Entry="Weapon,BloodHunter_Weapon"/>
<DataRecord Entry="Effect,BloodHunter_Weapon@Damage"/>
<DataRecord Entry="Actor,BloodHunter_Weapon@Attack"/>
<DataRecord Entry="Actor,BloodHunter_Weapon@PhysicsForce"/>
<DataRecord Entry="Model,BloodHunter_Weapon@AttackLaunch"/>
<DataRecord Entry="Model,BloodHunter_Weapon@AttackImpact"/>
<DataRecord Entry="Sound,BloodHunter_Weapon@AttackLaunch"/>
<DataRecord Entry="Sound,BloodHunter_Weapon@AttackImpact"/>
<TechInfoUpgradeUsed value="ProtossGroundWeapons@1"/>
<TechInfoUpgradeUsed value="ProtossGroundWeapons@2"/>
<TechInfoUpgradeUsed value="ProtossGroundWeapons@3"/>
</CDataCollectionUnit>
<!-- ============= Abilities ============= -->
<!-- Void Stasis -->
<CButton id="BloodHunter_VoidStasis">
<EditorCategories value="Race:Taldarim"/>
<Icon value="Assets\Textures\btn-ability-protoss-voidstasis.dds"/>
</CButton>
<CAbilEffectTarget id="BloodHunter_VoidStasis">
<CmdButtonArray index="Execute" DefaultButtonFace="BloodHunter_VoidStasis"/>
<Effect index="0" value="BloodHunter_VoidStasis@AB"/>
<Range value="6"/>
<Arc value="360"/>
<Flags index="AutoCast" value="1"/>
<Flags index="AutoCastOn" value="1"/>
<Flags index="Transient" value="1"/>
<TargetFilters value="Ground;Player,Ally,Heroic,Missile,Stasis,UnderConstruction,Hidden,Invulnerable"/>
<Cost>
<Cooldown TimeUse="15"/>
</Cost>
<AutoCastRange value="6"/>
<AutoCastValidatorArray value="BloodHunter_VoidStasis@AutoCast"/>
</CAbilEffectTarget>
<CEffectApplyBehavior id="BloodHunter_VoidStasis@AB">
<EditorCategories value="Race:Taldarim"/>
<Behavior value="BloodHunter_VoidStasis"/>
</CEffectApplyBehavior>
<CBehaviorBuff id="BloodHunter_VoidStasis">
<EditorCategories value="Race:Taldarim,AbilityorEffectType:Units"/>
<Alignment value="Negative"/>
<InfoIcon value="Assets\Textures\btn-ability-protoss-voidstasis.dds"/>
<Duration value="10"/>
<Modification>
<StateFlags index="Stasis" value="1"/>
<StateFlags index="Stun" value="1"/>
<StateFlags index="SuppressAttack" value="1"/>
<StateFlags index="SuppressCloak" value="1"/>
<StateFlags index="SuppressDetection" value="1"/>
<StateFlags index="SuppressFoodMade" value="1"/>
<StateFlags index="SuppressRadar" value="1"/>
<StateFlags index="SuppressTech" value="1"/>
<AbilClassDisableArray index="CAbilAttack" value="1"/>
<AbilClassDisableArray index="CAbilWarpTrain" value="1"/>
<BehaviorClassDisableArray index="CBehaviorPowerSource" value="1"/>
<BehaviorClassDisableArray index="CBehaviorResource" value="1"/>
<BehaviorLinkDisableArray value="SalvageBunker"/>
<BehaviorLinkDisableArray value="SalvageShared"/>
<BehaviorLinkDisableArray value="SensorTowerRadar"/>
</Modification>
<DisplayDuration index="Self" value="1"/>
<DisplayDuration index="Ally" value="1"/>
<DisplayDuration index="Enemy" value="1"/>
</CBehaviorBuff>
<CActorModel id="BloodHunter_VoidStasis@Impact" parent="ModelAddition">
<On Terms="Behavior.BloodHunter_VoidStasis.On" Send="Create"/>
<On Terms="Behavior.BloodHunter_VoidStasis.Off" Send="AnimBracketStop BSD"/>
<ModelFlags index="AutomateGlobalLoops" value="1"/>
<HostSiteOps Ops="SOpAttachCenter"/>
<AutoScaleFactor value="1.000000"/>
</CActorModel>
<CActorSimple id="BloodHunter_VoidStasis@GlazeController">
<On Terms="Behavior.BloodHunter_VoidStasis.On" Send="Create"/>
<On Terms="ActorCreation" Send="TimerSet 0.6 DelayCreation"/>
<On Terms="TimerExpired; TimerName DelayCreation" Target="::Main" Send="ModelMaterialApply BloodHunter_VoidStasis@Glaze"/>
<On Terms="Behavior.BloodHunter_VoidStasis.Off" Target="BloodHunter_VoidStasis@Glaze" Send="AnimBracketStop BSD"/>
<On Terms="Behavior.BloodHunter_VoidStasis.Off" Send="Destroy"/>
<On Terms="ActorCreation" Target="_Selectable" Send="AnimSetPausedAll"/>
<On Terms="Behavior.BloodHunter_VoidStasis.Off" Target="_Selectable" Send="AnimSetPausedAll 0"/>
</CActorSimple>
<CActorModelMaterial id="BloodHunter_VoidStasis@Glaze" parent="GlazeParent">
<ModelFlags index="AutomateGlobalLoops" value="1"/>
</CActorModelMaterial>
<CActorSound id="BloodHunter_VoidStasis@LaunchSound" parent="SoundOneShot">
<On Terms="Effect.BloodHunter_VoidStasis@AB.Start; At Caster" Send="Create"/>
</CActorSound>
<CActorSound id="BloodHunter_VoidStasis@ImpactSound" parent="SoundOneShot">
<On Terms="Effect.BloodHunter_VoidStasis@AB.Start; At Target" Send="Create"/>
</CActorSound>
<CModel id="BloodHunter_VoidStasis@Impact" parent="PersistentSpellFX">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Effects\Protoss\VoidStasis\VoidStasis.m3"/>
</CModel>
<CModel id="BloodHunter_VoidStasis@Glaze" parent="Glaze">
<EditorCategories value="Race:Taldarim"/>
<Model value="Assets\Effects\Glaze\Glaze_VoidStasis\Glaze_VoidStasis.m3"/>
</CModel>
<CSound id="BloodHunter_VoidStasis@LaunchSound" parent="Spell">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="Assets\Sounds\ShadowHunter_VoidStasis_06b.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\ShadowHunter_VoidStasis_06c.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\ShadowHunter_VoidStasis_06d.wav" FacialGroup=""/>
<Pitch value="-3.000000,0.000000"/>
<Volume value="2.000000,2.000000"/>
</CSound>
<CSound id="BloodHunter_VoidStasis@ImpactSound" parent="Spell">
<EditorCategories value="Race:Taldarim"/>
<AssetArray File="Assets\Sounds\VoidStasis_Impact_01a.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\VoidStasis_Impact_02a.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\VoidStasis_Impact_03a.wav" FacialGroup=""/>
<AssetArray File="Assets\Sounds\VoidStasis_Impact_04a.wav" FacialGroup=""/>
<OffsetFadeIn Volume="-12.000000"/>
<OffsetFadeIn Time="500" Volume="-12.000000"/>
<OffsetFadeIn Time="1000"/>
<Pitch value="-1.000000,1.000000"/>
<Volume value="6.000000,6.000000"/>
<SpeakerMix index="Center" value="2.000000"/>
</CSound>
<CValidatorCombine id="BloodHunter_VoidStasis@AutoCast">
<CombineArray value="IsDetector_Base"/>
<CombineArray value="BloodHunter_VoidStasis@EnemyNearby"/>
<Type value="And"/>
</CValidatorCombine>
<CValidatorLocationEnumArea id="BloodHunter_VoidStasis@EnemyNearby">
<AreaArray Compare="GT" Count="0" Radius="6"/>
<SearchFilters value="Visible;Detector,Self,Player,Ally,Neutral,Missile,Stasis,Dead,Hidden,Invulnerable"/>
</CValidatorLocationEnumArea>
<CDataCollectionUnit id="BloodHunter_VoidStasis" parent="AbilityBase">
<EditorCategories value="DataGroup:Ability,DataFamily:Campaign,Race:Taldarim,ObjectType:Spell"/>
<DataRecord Entry="Button,BloodHunter_VoidStasis"/>
<DataRecord Entry="Abil,BloodHunter_VoidStasis"/>
<DataRecord Entry="Behavior,BloodHunter_VoidStasis"/>
<DataRecord Entry="Effect,BloodHunter_VoidStasis@AB"/>
<DataRecord Entry="Actor,BloodHunter_VoidStasis@Impact"/>
<DataRecord Entry="Actor,BloodHunter_VoidStasis@GlazeController"/>
<DataRecord Entry="Actor,BloodHunter_VoidStasis@Glaze"/>
<DataRecord Entry="Actor,BloodHunter_VoidStasis@LaunchSound"/>
<DataRecord Entry="Actor,BloodHunter_VoidStasis@ImpactSound"/>
<DataRecord Entry="Model,BloodHunter_VoidStasis@Impact"/>
<DataRecord Entry="Model,BloodHunter_VoidStasis@Glaze"/>
<DataRecord Entry="Sound,BloodHunter_VoidStasis@LaunchSound"/>
<DataRecord Entry="Sound,BloodHunter_VoidStasis@ImpactSound"/>
</CDataCollectionUnit>
</Catalog>У неё есть сам объект CUnit который определяет саму единицу, её свойства, характеристики. Как видно она сделана с наследованием от родительского объекта parent="Generic_Unit_Ground".
Этот родительский юнит определен в файле base.xml, который добавлен в прикрепленный архив юнита. Это очень важно ведь даже все последующие (надеемся что я не заброшу это дело) последующие единицы будут делаться по этим "родителям" во избежания дублирования данных.
Также естественно есть объект CActorUnit (чуть ниже единицы) сделанного по родителю AdvancedUnitStandard. Это также родительский объект из файла base.xml
Ну а затем далее следуют модели и звуки и всё остальное, которые в конечном итоге объединяются все в единую Коллекцию данных
Хочется ещё акцентировать внимание на то, что здесь соблюдается определенное наименование идентификаторов для объектов, для того чтобы игра автоматически связывала эти разные данные друг с другом без явного указания о связи в xml данных.
Пример такого связывания
Далеко ходить не нужно, видно что есть пак звуков CSound, которые автоматом вставляются в неуказанное поле Sounds актора CActorUnit
КАК ПОДКЛЮЧИТЬ ЕДИНИЦУ?
Единица вся упакована в отдельный дата спейс для возможности быстрого добавления единицы в карту.
Нужно проделать следующие шаги
- Разобрать карту на компоненты
- Для этого переходим на вкладку "файл - Сохранить Как..."
- Затем в окне указываем тип файла как "StarCraft II Папка компонентов"
- Даём отличное название от основного названия файла и сохраняем
- Переходим к папке, куда сохранили ваши компоненты
- По пути внутри вашей карты (её папки) такому как "Base.SC2Data/GameData/" вставляем xml файл из архива единицы (Допускается любой путь в папке GameData)
- По пути внутри вашей карты (её папки) такому как "Base.SC2Data/GameData/" вставляем xml файлы base.xml, protoss.xml, terran.xml, zerg.xml
- По пути внутри вашей карты (её папки) такому как "Base.SC2Data/" Добавляем файл GameData.xml с примерно таким содержимым
<?xml version="1.0" encoding="utf-8"?>
<Includes>
<Catalog path="GameData/base.xml" />
<Catalog path="GameData/protoss.xml"/>
<Catalog path="GameData/terran.xml"/>
<Catalog path="GameData/zerg.xml"/>
<Catalog path="GameData/Путь/До/XML-файла/Единицы.xml"/>
</Includes>
- Вставить все папки Assets в корень вашей карты (её папки)
- Добавить все тексты из файлов локализации из архива в ваши соотствествующие файл
- Например, всё содержимое из файла ruRU.SC2Assets/GameStrings.txt вставляем в ваш файл ruRU.SC2Assets/LocalizedData/GameStrings.txt
- Например, всё содержимое из файла ruRU.SC2Assets/GameStrings.txt вставляем в ваш файл ruRU.SC2Assets/LocalizedData/GameStrings.txt
- Вставить в корень вашей карты (её папки) все необходимые локализованные файлы ruRU.SC2Assets/LocalizedData

SC2








