• Дорогой гость!

    Мы рады приветствовать вас на форуме Эвендима!

    Эвендим - это один из крупнейших проектов, посвященных миру Толкина, на котором вы можете найти все, что вам интересно! Эвендим ставит перед собой цель - объединить поклонников мира Толкина со всего мира. Вместе с нашими форумчанами, которые стали нашей второй семьей, мы постоянно работаем над тёплой и дружеской атмосферой, благодаря которой, так легко заводить новых друзей, и приятно проводить время!

    Мы приглашаем вас познавать мир Толкина, играть в игры, заводить новых друзей, и строить Эвендим вместе с нами!
Tips

Ferm Submod Для Эдайн 3.8.1

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
Хм, если мод по фильму, то можно и оставить. Кстати, в осадных орудиях у Рохана энты?
 

Thranduil

Воевода
Нет катапульты. Энти (последний поход энтов) в книге заклинаний (25)
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
Не-а. Был, но я его удалил. Да и не до него. У меня мод в стадии разработки.
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
Мини-мод, постепенно перерастающий в глобальный.
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
@[member='Thranduil'], хм, проблема может в норде отряда (data\ini\object\goodfaction\hordes\rohan\rohanhordes.ini, типа этого). Посмотри и сравни с хордами нормальных юнов.
 

Thranduil

Воевода
@[member='Akhorahil'], сравнить вес иник трудно. Не можешь подсказать в каком параметре нужно смотреть (ART, DESIGN, AUDIO, ENGINEERING)
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
@[member='Thranduil'], всё, что ниже DESIGN.
 

Thranduil

Воевода
@[member='Akhorahil'], только название должно отличаться?
 

///DOC///

Наместник
AUDIO по-моему лучше не трогать, так как там просто озвучка.
 

Thranduil

Воевода
Блин замучился цели день безрезультатно их исправлять.
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
@[member='Thranduil'], выложи сюда код с их координатами.
 

Thranduil

Воевода
@[member='Akhorahil'], вот весь иник.
Код:
 Object RohanSpeerwerfer
// *** ART Parameters ***

SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon


Draw = W3DHordeModelDraw ModuleTag_01

OkToChangeModelColor = Yes

StaticModelLODMode = Yes
;specify options for static LODs
LodOptions = LOW
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_LOW
MaxRandomTextures = MAX_RANDOM_TEXTURES_LOW
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_LOW
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_LOW
End

LodOptions = MEDIUM
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_MED
MaxRandomTextures = MAX_RANDOM_TEXTURES_MED
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_MED
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_MED
End

LodOptions = HIGH
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_HIGH
MaxRandomTextures = MAX_RANDOM_TEXTURES_HIGH
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_HIGH
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_HIGH
End


DefaultModelConditionState
Model = ruspeerwerf_skn
Model = ruspeerwerf_skb ExtraMesh:Yes
Model = ruspeerwerf_skc ExtraMesh:Yes
Model = ruspeerwerf_skd ExtraMesh:Yes
WeaponLaunchBone = PRIMARY LANCEBONE
End

IdleAnimationState
StateName = Idle
Animation = IDLC
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLC
AnimationMode = ONCE
AnimationPriority = 25
AnimationBlendTime = 15
End

BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Selected" then CurDrawableSetTransitionAnimState("TRANS_Selected_to_Idle") return end
if Prev == "STATE_Emotion"; or Prev == "CloseRange" or Prev == "FarRange"
then
CurDrawableAllowToContinue();
end
CurDrawableSetTransitionAnimState("TRANS_Selected_NoHitch")
EndScript
StateName = Idle
End


AnimationState = THROWN_PROJECTILE
Animation = Thrown
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
End
End

AnimationState = PASSENGER FREEFALL
Animation = Wiggling
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
AnimationMode = LOOP
End
EnteringStateFX = FX_ThrownRockPickUp
End

AnimationState = FREEFALL
Animation = Falling
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
AnimationBlendTime = 10
AnimationSpeedFactorRange = 0.4 0.4
End
End

; --- stunned anims
AnimationState = STUNNED_FLAILING
Animation = Flying
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
End
End

AnimationState = DYING SPLATTED
Animation = Splattered_On_Ground
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = ONCE
End
EnteringStateFX = FX_HaradrimHitGround
End

AnimationState = DYING STUNNED_FLAILING
Animation = Flying
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLYA
AnimationMode = LOOP
End
End

AnimationState = DYING AFLAME
Animation = Flaming_Death
AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
AnimationMode = ONCE
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End

AnimationState = AFLAME
Animation = Flaming_Death
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End

AnimationState = DYING
StateName = STATE_Dying
Animation = dead
AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
AnimationMode = MANUAL
End
Animation = dead_landed
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = MANUAL
End
Flags = START_FRAME_LAST
BeginScript
CurDrawableShowSubObject("LANCE")
Prev = CurDrawablePrevAnimation()
if Prev == "DyingTrans"
then
return "dead"
elseif Prev == "Flying"
then
CurDrawableSetTransitionAnimState("DIE_LAND")
elseif Prev == "Die_Land"
then
return "dead_landed"
end

CurDrawableSetTransitionAnimState("DIE_TRANSITION")

EndScript
End

TransitionState = DIE_TRANSITION
Animation = DyingTrans
AnimationName = MUHaraLnc_SKL.MUHaraLnc_DIEA
AnimationMode = ONCE
End
End

TransitionState = DIE_LAND
Animation = Die_Land
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = ONCE
End
End




AnimationState = MOVING CLIMBING
Animation = Climbing
AnimationName = MUHaraLnc_SKL.MUHaraLnc_CLMA
AnimationMode = LOOP
End
End

AnimationState = MOVING DAMAGED AFLAME
ShareAnimation = Yes
Animation = Moving_Damaged
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End

AnimationState = MOVING AFLAME
ShareAnimation = Yes
Animation = Moving
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE1 FireSmall FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_SPINE2 FireSmall FollowBone:yes
End

AnimationState = MOVING PANICKING
ShareAnimation = Yes
Animation = RUNM
AnimationName = MUHaraLnc_SKL.MUHaraLnc_MFDA
AnimationMode = LOOP
End
End

AnimationState = MOVING BACKING_UP
ShareAnimation = Yes
Animation = BackingUp
AnimationName = MUHaraLnc_SKL.MUHaraLnc_BAKA
AnimationMode = LOOP
End
End

AnimationState = MOVING EMOTION_TERROR
ShareAnimation = Yes
Animation = Moving
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
End
ParticleSysBone = None InfantryDustTrails
End

AnimationState = MOVING
ShareAnimation = Yes
Animation = Moving
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.8 1.2
End
ParticleSysBone = None InfantryDustTrails
End

AnimationState = COMING_OUT_OF_FACTORY
Animation = Being_Built
AnimationName = MUHaraLnc_SKL.MUHaraLnc_RUNA
AnimationMode = LOOP
AnimationBlendTime = 0
End
End

AnimationState = PASSENGER
Animation = Wiggling
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FLLA
AnimationMode = LOOP
End
EnteringStateFX = FX_ThrownRockPickUp
End

AnimationState = TRANSPORT_MOVING
Animation = wobbling_on_transport
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLC
AnimationMode = LOOP
End
End



AnimationState = STUNNED_STANDING_UP
Animation = Standing_Back_Up
AnimationName = MUHaraLnc_SKL.MUHaraLnc_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End

AnimationState = STUNNED
Animation = Splattered_On_Ground
AnimationName = MUHaraLnc_SKL.MUHaraLnc_LNDA
AnimationMode = ONCE
End
EnteringStateFX = FX_HaradrimHitGround
End



AnimationState = RELOADING_A
StateName = STATE_Ready
Animation = ALERT
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = LOOP
AnimationBlendTime = 0
End
BeginScript
CurDrawableAllowToContinue()
EndScript
End


AnimationState = FIRING_OR_PREATTACK_A
StateName = FarRange
Animation = FarAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
End
Animation = BIG_BLEND_A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
AnimationBlendTime = 20
End
FrameForPristineBonePositions = 44
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "CloseRange"
then
return "BIG_BLEND_A"
else
return "FarAttack"
end
EndScript
End

AnimationState = FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE
Animation = CloseAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
End

AnimationState = FIRING_OR_PREATTACK_B
StateName = CloseRange
Animation = CloseAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = BIG_BLEND_B
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 20
End

BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "FarRange"
then
return "BIG_BLEND_B"
else
return "CloseAttack"
end
EndScript
End

AnimationState = FIRING_OR_PREATTACK_C
StateName = FarRange
Animation = FarAttack
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
End
Animation = BIG_BLEND_A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATKB
AnimationMode = ONCE
AnimationBlendTime = 20
End
FrameForPristineBonePositions = 44
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "CloseRange"
then
return "BIG_BLEND_A"
else
return "FarAttack"
end
EndScript
End


; --- emotion animations --- ;

AnimationState = WAR_CHANT
Animation = Chant
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

AnimationState = EMOTION_UNCONTROLLABLY_AFRAID
ShareAnimation = Yes
StateName = STATE_Emotion
Animation = FERA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

AnimationState = ATTACKING
Animation = IdleAllAttacksComeFrom
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = LOOP
End
End

AnimationState = EMOTION_AFRAID
ShareAnimation = Yes
StateName = STATE_Emotion
Animation = FERA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_FERA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

AnimationState = EMOTION_TAUNTING
StateName = STATE_Emotion
Animation = TNTA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_TNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

AnimationState = EMOTION_POINTING
StateName = STATE_Emotion
Animation = Pointing1
AnimationName = MUHaraLnc_SKL.MUHaraLnc_PNTA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_PNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

AnimationState = EMOTION_CELEBRATING
StateName = STATE_Emotion
Animation = CHRA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_CHRA
AnimationMode = ONCE
AnimationPriority = 10
End
Animation = CHRB
AnimationName = MUHaraLnc_SKL.MUHaraLnc_CHRA
AnimationMode = ONCE
AnimationPriority = 10
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

AnimationState = EMOTION_ALERT
StateName = STATE_Emotion
Animation = ALERT
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = ONCE
End
Animation = A
AnimationName = MUHaraLnc_SKL.MUHaraLnc_IDLA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion"
then
CurDrawableAllowToContinue();
end
EndScript
End

; --- hit reactions
AnimationState = HIT_REACTION HIT_LEVEL_1
Animation = GotHit
AnimationName = MUHaraLnc_SKL.MUHaraLnc_HITA
AnimationMode = ONCE
End
End


AnimationState = SELECTED
StateName = STATE_Selected
SimilarRestart = Yes
Animation = AtAttention
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNB
AnimationMode = LOOP
End
Animation = BIG_BLEND_Selected
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNB
AnimationMode = LOOP
AnimationBlendTime = 20
End
BeginScript
Prev = CurDrawablePrevAnimationState()
CurDrawableShowSubObject("LANCE")
if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_Idle_to_Selected") return end
if Prev == "STATE_Emotion"; or Prev == "CloseRange" or Prev == "FarRange"
then
CurDrawableAllowToContinue();
end
if Prev == "GotHit"
then
return "BIG_BLEND_Selected"
end
return "AtAttention"
EndScript
End

TransitionState = TRANS_Idle_to_Selected
Animation = ATNA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNA
AnimationMode = ONCE
End
End

TransitionState = TRANS_Selected_to_Idle
Animation = ATNA
AnimationName = MUHaraLnc_SKL.MUHaraLnc_ATNC
AnimationMode = ONCE
End
End


End

Draw = W3DScriptedModelDraw Icon
ModelConditionState = NONE
Model = bbox
End
End


; ***DESIGN parameters ***
Side = Rohan
EditorSorting = UNIT
ThreatLevel = 1.0
EmotionRange = EMOTION_CHEER_RADIUS
TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
CommandPoints = 3


WeaponSet
Conditions = None
Weapon = PRIMARY RohanSpeerwerferWeapon
Weapon = TERTIARY RohanSpeerwerferWeaponHeroMode
AutoChooseSources = TERTIARY NONE
ShareWeaponReloadTime = Yes
End

WeaponSet
Conditions = CLOSE_RANGE CONTESTING_BUILDING
Weapon = PRIMARY RohanSpeerwerferWeapon
Weapon = SECONDARY RohanSpeerwerferLance
Weapon = TERTIARY RohanSpeerwerferWeaponHeroMode
OnlyAgainst = PRIMARY STRUCTURE
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT
AutoChooseSources = TERTIARY NONE
ShareWeaponReloadTime = Yes
End

WeaponSet
Conditions = CONTAINED
Weapon = PRIMARY RohanSpeerwerferWeapon
End

WeaponSet
Conditions = HIDDEN
End


ArmorSet
Conditions = None
Armor = EdainPikemanArmor
DamageFX = NormalDamageFX
End

ArmorSet
Conditions = PLAYER_UPGRADE
Armor = EdainPikemanHeavyArmor
DamageFX = NormalDamageFX
End

MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 2.0%

BountyValue = 8
CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles

VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 35%
VisionRear = 25%
DisplayName = OBJECT:RohanYeomanSpearThrower
CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrushRevengeWeapon = AntiCavalryInfantryCrushRevenge

CommandSet = MordorHaradrimLancerCommandSet


; *** AUDIO Parameters ***;

VoiceAttack = PeasantMaleVoiceAttack
VoiceAttackCharge = PeasantMaleVoiceAttackCharge
VoiceAttackStructure = PeasantMaleVoiceAttackBuilding
VoiceAttackMachine = PeasantMaleVoiceAttack
VoiceCreated = PeasantMaleVoiceSalute
VoiceFullyCreated = PeasantMaleVoiceSalute
VoiceGuard = PeasantMaleVoiceMove
VoiceMove = PeasantMaleVoiceMove
VoiceMoveToCamp = PeasantMaleVoiceMoveCamp
VoiceMoveWhileAttacking = PeasantMaleVoiceDisengage
VoicePriority = 30
VoiceRetreatToCastle = PeasantMaleVoiceRetreat
VoiceSelect = PeasantMaleVoiceSelectMS
VoiceSelectBattle = PeasantMaleVoiceSelectBattle

VoiceEnterStateAttack = PeasantMaleVoiceEnterStateAttack
VoiceEnterStateAttackCharge = PeasantMaleVoiceEnterStateAttackCharge
VoiceEnterStateAttackStructure = PeasantMaleVoiceEnterStateAttackBuilding
VoiceEnterStateAttackMachine = PeasantMaleVoiceEnterStateAttackBuilding
VoiceEnterStateMove = PeasantMaleVoiceEnterStateMove
VoiceEnterStateMoveToCamp = PeasantMaleVoiceEnterStateMoveCamp
VoiceEnterStateMoveWhileAttacking = PeasantMaleVoiceEnterStateDisengage
VoiceEnterStateRetreatToCastle = PeasantMaleVoiceEnterStateRetreat

SoundImpact = ImpactHorse

UnitSpecificSounds
VoiceGarrison = YeomanArcherVoiceGarrisonMod
End

;#include "..\includes\StandardUnitEvaEvents.inc"
;EvaEventDieOwner = GroupHaradrimDie ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths
;For deaths you can respawn from, use the DeathFX

ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:BodyFallSoldier Animation:MUHaraLnc_SKL.MUHaraLnc_LNDA Frames:3
AnimationSound = Sound:BodyFallGeneric1 Animation:MUHaraLnc_SKL.MUHaraLnc_DIEA Frames:47
End


; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS NOTIFY_OF_PREATTACK INFANTRY PATH_THROUGH_EACH_OTHER PIKE SCORE GRAB_AND_DROP ATTACK_NEEDS_LINE_OF_SIGHT ;THROWN_OBJECT

Body = PorcupineFormationBodyModule ModuleTag_porcupineFormation
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = ROHAN_WДCHTERMEDUSELDS_HEALTH
MaxHealthDamaged = ROHAN_WДCHTERMEDUSELDS_HEALTH_DAMAGED
DamageWeaponTemplate = EasterlingPorcupineDamage
CrushDamageWeaponTemplate = EasterlingPorcupineCrushDamage
CrusherLevelResisted = 1; ;What crusher level can I resist?: 1 = infantry, 2 = trees, 3 = vehicles
BurningDeathBehavior = Yes
BurningDeathFX = FX_InfantryBurningFlame
End

Behavior = DeflectSpecialPower ModuleTag_02b
SpecialPowerTemplate = SpecialAbilityDeflectProjectiles
End

Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End


Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
StopChaseDistance = 674
CanAttackWhileContained = Yes
AttackPriority = AttackPriority_Archer
End

Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
HitReactionLifeTimer1 = 1500 ; level 1 (light damage) hit reaction animations in frames (5 per sec)
HitReactionLifeTimer2 = 1500 ; level 2 (medium damage) hit reaction animations in frames (5 per sec)
HitReactionLifeTimer3 = 1500 ; level 3 (heavy damage) hit reaction animations in frames (5 per sec)

HitReactionThreshold1 = 0.0 ; level 1 (light damage) threshold trigger
HitReactionThreshold2 = 9999.0 ; level 2 (medium damage) threshold trigger
HitReactionThreshold3 = 9999.0 ; level 3 (heavy damage) threshold trigger
End


LocomotorSet
Locomotor = HumanLocomotor
Condition = SET_NORMAL
Speed = NORMAL_EVIL_INFANTRY_MEMBER_SPEED
End

Behavior = DualWeaponBehavior ModuleTag_13
SwitchWeaponOnCloseRangeDistance = MORDOR_HARADRIM_LANCER_SWITCH_RANGE
End

Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
End

Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -KNOCKBACK -EXTRA_8
SinkDelay = 5000
SinkRate = 1.0 ; in Dist/Sec
DestructionDelay = 17000
Sound = INITIAL HaradrimVoiceDie ;CivMaleDie
End

Behavior = SquishCollide ModuleTag_06
;nothing
End

Behavior = HordeMemberCollide ModuleTag_HMC
;nothing
End

Behavior = SlowDeathBehavior ModuleTag_07
; Same as normal death, but no sound (sound already played by SoundImpact = ... )
DeathTypes = NONE +KNOCKBACK
SinkDelay = 3000
SinkRate = 0.8 ; in Dist/Sec
DestructionDelay = 13000
Sound = INITIAL HaradrimVoiceDie ;CivMaleDie
End

;;; Infos Ea: Orientiert am Tod der Ents (Kein schweres Module, einfach mal durchblдttern)

Behavior = SlowDeathBehavior ModuleTag_GrabandDrop
DeathTypes = NONE +EXTRA_8 ;;;Deathweapon wird bisher noch nicht genutzt, also passend fьr Grab and Drop death weapon der fliegenden Einheiten
SinkDelay = 3000 ;;;Uninteressant
SinkRate = 0.60 ;;;Uninteressant
DestructionDelay = 10000 ;;;Sollte mцglichst hoch sein
DeathFlags = DEATH_4 ;;;Die Ani dazu gibt es nicht und wird auch nihct benцtigt, es ist automatisch an de Passenger der fliegenden Unit geknьpft
ShadowWhenDead = Yes ;;;Sollte klar sein
End

Behavior = FireWeaponWhenDeadBehavior ModuleTag_GrabandDropImpact
RequiredStatus = DEATH_4
StartsActive = Yes
DelayTime = 0
DeathWeapon = GrabandDropInfantryImpactWarhead
WeaponOffset = X:0 Y:0 Z:0
End

Behavior = BezierProjectileBehavior ModuleTag_BodyHitHuman
FirstHeight = 24
SecondHeight = 24
FirstPercentIndent = 30%
SecondPercentIndent = 70%
TumbleRandomly = Yes
CrushStyle = Yes
DieOnImpact = Yes
BounceCount = 1
BounceDistance = 40
BounceFirstHeight = 24
BounceSecondHeight = 24
BounceFirstPercentIndent = 20%
BounceSecondPercentIndent = 80%
GroundHitFX = FX_GrabandDropInfantryGroundHit
GroundBounceFX = FX_GrabandDropInfantryGroundHit
End


; Tie into LargeGroupAudio system
Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
Key = Haradrim_Lancer
End


Behavior = WeaponSetUpgrade WeaponSetUpgradeModuleTag
TriggeredBy = Upgrade_RohanModForgedBlades
End

Behavior = ArmorUpgrade ArmorUpgradeModuleTag
TriggeredBy = Upgrade_RohanModHeavyArmor
ArmorSetFlag = PLAYER_UPGRADE
End

//-----------------------------------------------------------------------
//
// Sub objects
//
Behavior = SubObjectsUpgrade Armor_Upgrade
TriggeredBy = Upgrade_RohanModHeavyArmor
UpgradeTexture = ruspearman.tga 0 ruspearman_ha.tga
UpgradeTexture = ruspearman2.tga 0 ruspearman_ha.tga
UpgradeTexture = ruspearman3.tga 0 ruspearman3_ha.tga
UpgradeTexture = rusoldier4.tga 0 rusoldier4_ha.tga
RecolorHouse = Yes
ExcludeSubobjects = Forged_Blade
End

Behavior = SubObjectsUpgrade ForgedBlade_Upgrade1
TriggeredBy = Upgrade_AllFactionUpgrade
HideSubObjects = Forged_Blade
End

Behavior = SubObjectsUpgrade ForgedBlade_Upgrade
TriggeredBy = Upgrade_RohanModForgedBlades
ShowSubObjects = Forged_Blade
End


Behavior = FireWeaponWhenDeadBehavior FireDeadTag
DeathTypes = NONE +CRUSHED
StartsActive = Yes
DelayTime = 0
DeathWeapon = HaradrimCrushedWeapon
WeaponOffset = X:0 Y:0 Z:0
End


Behavior = UnpauseSpecialPowerUpgrade ModuleTag_Enabler
SpecialPowerTemplate = SpecialAbilityHammerschlдge
TriggeredBy = Upgrade_AllFactionUpgrade
End

Behavior = WeaponModeSpecialPowerUpdate ModuleTag_PowerUpdate
SpecialPowerTemplate = SpecialAbilityHammerschlдge
Duration = 20000
AttributeModifier = RohanSpeerwerferBonus
LockWeaponSlot = TERTIARY
StartsPaused = No
End


Scale = 1.04
Geometry = CYLINDER
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 19.2
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 11;
ShadowSizeY = 11;
ShadowTexture = ShadowI;
End

ChildObject RohanSpeerwerfer_Slaved RohanSpeerwerfer

VisionSide = 100%
VisionRear = 100%
ShroudClearingRange = 300
ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS
KindOf = UNATTACKABLE NOT_AUTOACQUIRABLE

Behavior = SubObjectsUpgrade ForgedBlade_Upgrade1
TriggeredBy = Upgrade_AllFactionUpgrade Upgrade_RohanFaction
HideSubObjects = Forged_Blade
End

CommandPoints = 0

LocomotorSet
Locomotor = FloatingLichtbringerLocomotor
Condition = SET_NORMAL
Speed = 0
End

Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
MarkUnselectable = No
End

Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes
End

WeaponSet
Conditions = None
Weapon = PRIMARY RohanSpeerwerferWeaponSlaved
End

VoiceCreated = ElfWarriorVoiceSaluteBow_Slaved
VoiceFullyCreated = ElfWarriorVoiceSaluteBow_Slaved

CommandSet = EmptyCommandSet

Behavior = WeaponSetUpgrade ModuleTag_FlamingAttack ;// Doesn't really use a weaponset swap, the swap is in the weapon itself. But this helps debugging more than a fake status bit upgrade
TriggeredBy = Upgrade_GoodFortressFlamingMunitions
End

Scale = 0.8

Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
MarkUnselectable = No
End
End

ChildObject RohanSpeerwerferCreep RohanSpeerwerfer
IsTrainable = No
CommandPoints = 0
EquivalentTo = RohanSpeerwerfer

Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End

KindOf = +CREEP

VisionRange = CREEP_VISION

ThreatBreakdown MordorGoblinSwordsmanSlaved_ThreatBreakdown
AIKindOf = CREEP
End

Behavior = SlavedUpdate ModuleTag_Slave
GuardMaxRange = 280
GuardWanderRange = 60
UseSlaverAsControlForEvaObjectSightedEvents = Yes
End
End
 

Thranduil

Воевода
Выходит что я дебил, не то исправил! :D10: :C6:
Код:
Object RohanSpeerwerferHordeStandard

    // This is required for garrisoned objects - please put in all objects.
    SelectPortrait     = UPRohanSpearmanPortrait
    ButtonImage        = BGBarracks_RohanSpearmenIcon

    Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
        DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
        DefaultModelConditionState
            Model = None //InvisHrdeTmp5x2
        End
        ModelConditionState = HORDE_EMPTY
            Model = None
        End        

        ModelConditionState = WORLD_BUILDER
            Model = HordeMarkGUTow
        End
    End

    Side = Men
    EditorSorting = UNIT
    EmotionRange = 240
    DisplayName = OBJECT:RohanSpeerwerferHorde
    DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
    DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde

    WeaponSet
        Conditions = None 
        Weapon = PRIMARY    GoodArcherMissileHordeRangefinder
        Weapon = TERTIARY   GoodArcherMissileHordeRangefinder
        AutoChooseSources     = PRIMARY FROM_PLAYER FROM_SCRIPT 
        AutoChooseSources     = TERTIARY FROM_PLAYER FROM_SCRIPT                ; Not AI.
        ShareWeaponReloadTime = Yes
    End


    // *** AUDIO Parameters ***//
    // Note: Don't put voice parameters here -- they will be ignored. Voice play requests
    // are always passed through to members


    BuildCost = 350 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
    BuildTime = 30
    VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE 
    ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE 
    VisionSide = 50%
    VisionRear = 25%
    MaxVisionBonusPercent = 300%
    VisionBonusTestRadius = 200
    VisionBonusPercentPerFoot = 1.0%
    CommandPoints = 30

    CommandSet = RohanSpeerwerferHordeCommandSet_Standard

    FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
    FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.

     CrushableLevel = 0  //What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
    CrusherLevel = 0

    TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
    KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
    #include "..\..\..\includes\StandardHordeEvaEvents.inc"

    Body = ImmortalBody ModuleTag_ImmortalBody
        MaxHealth = 1
    End

    ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
    ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
        AIKindOf = ARCHER
    End

    #include "..\..\..\includes\CaptureBuilding.inc"

    Behavior = StancesBehavior ModuleTag_StancesBehavior
        StanceTemplate = ArcherHorde
    End

    Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
        AutoAcquireEnemiesWhenIdle    =    Yes ATTACK_BUILDINGS
        MoodAttackCheckRate            =    500
        MaxCowerTime                =    5000
        MinCowerTime                =    3000
        CanAttackWhileContained        =    Yes  // Can fire out of garrisoned building        
        AILuaEventsList                =    InfantryFunctions
        AttackPriority                =     AttackPriority_Archer
    End



    Behavior = HordeContain ModuleTag_HordeContain
        FrontAngle = 270
        FlankedDelay = 2000
        ObjectStatusOfContained = 
        InitialPayload = RohanSpeerwerfer 10
        Slots = 10
        PassengerFilter    = NONE +INFANTRY
        ShowPips = No
        ThisFormationIsTheMainFormation = Yes    //Used to determine which armorset to use (and anything else we want!)
        RandomOffset=X:0 Y:0
        MeleeBehavior = Amoeba
        End

        // Banner Carrier info        
        BannerCarriersAllowed    = RohanBanner// types of units that are allowed as banner carriers
        BannerCarrierPosition    = UnitType:RohanSpeerwerfer    Pos:X:70.0 Y:0.0        // (DEFAULT) position of banner carrier

        RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0        Position:X:50 Y:20        Position:X:50 Y:-20        Position:X:50 Y:40        Position:X:50 Y:-40 
        RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0    Position:X:30 Y:20 Leader 1 1    Position:X:30 Y:-20 Leader 1 2    Position:X:30 Y:40 Leader 1 3    Position:X:30 Y:-40 Leader 1 4

        RanksToReleaseWhenAttacking = 1 2

        MeleeAttackLeashDistance = 1   //How far the hordes    can    move from the center of    the    horde when melee attacking.                  
        BackUpMinDelayTime         = 1    //The minimum amount of    time to    delay before backing up
        BackUpMaxDelayTime         = 3000    //The maximum amount of    time to    delay before backing up
        BackUpMinDistance         = 1    //The minimum number of    cells to backup
        BackUpMaxDistance         = 3    //The maximum number of    cells to backup
        BackupPercentage         = 80%    //The amount of    chance that    a unit will    back up.
    End



    Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
        GravityMult = 1.0
    End

       Behavior = EmotionTrackerUpdate    Module_EmotionTracker
        TauntAndPointDistance        =    INFANTRY_TAUNT_POINT_RADIUS        // max distance to taunted/pointed objet
        TauntAndPointUpdateDelay    =    1000    // how often scan (milliseconds)
        TauntAndPointExcluded        =    NONE
         AfraidOf                    =    EMOTION_AFRAIDOF_OBJECTFILTER
        AlwaysAfraidOf                =    EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
         PointAt                        =    EMOTION_POINTAT_OBJECTFILTER
        HeroScanDistance            =    150
        FearScanDistance            =    INFANTRY_FEAR_SCAN_RADIUS

        AddEmotion            =    Terror_Base
        AddEmotion            =    Doom_Base
        //    AddEmotion            =   BraceForBeingCrushed_Base        // Pikemen don't fear getting crushed
        AddEmotion            =    UncontrollableFear_Base
        AddEmotion            =    FearIdle_Base
        AddEmotion            =    FearBusy_Base
        AddEmotion            =    Point_Base

        AddEmotion            =    OVERRIDE Taunt_Base    
         //    AttributeModifier    =    GondorFighterTaunt
         End        

        AddEmotion    =    CheerIdle_Base
        AddEmotion    =    CheerBusy_Base
        AddEmotion    =    HeroCheerIdle_Base
        AddEmotion    =    HeroCheerBusy_Base
        AddEmotion    =    Alert_Base
    End

    Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
        SkirmishAIOnly = Yes
        StuffToPickUp = NONE +CRATE
        ScanRange = 200
        ScanIntervalSeconds = 0.5
    End

    LocomotorSet
        Locomotor     = NormalMeleeHordeLocomotor
        Condition     = SET_NORMAL
        Speed         = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
    End

    Behavior = ProductionUpdate ProductionUpdateModuleTag
        GiveNoXP = Yes
    End

    Behavior = LevelUpUpgrade ModuleTag_BasicTraining
        TriggeredBy = Upgrade_RohanModBasicTraining
        LevelsToGain = 1
        LevelCap = 2
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
        TriggeredBy = Upgrade_RohanModForgedBlades
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
        TriggeredBy = Upgrade_RohanModHeavyArmor
    End



    Behavior = UnpauseSpecialPowerUpgrade ModuleTag_Enabler
        SpecialPowerTemplate = SpecialAbilityHammerschlдge
        TriggeredBy          = Upgrade_AllFactionUpgrade
    End

    Behavior = WeaponModeSpecialPowerUpdate ModuleTag_PowerUpdate
        SpecialPowerTemplate = SpecialAbilityHammerschlдge
        Duration             = 20000
        AttributeModifier    = RohanSpeerwerferBonus
        LockWeaponSlot       = TERTIARY
        StartsPaused         = No
    End


    /////////////////////
    // AISpecialPowers
    /////////////////////

    Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
        CommandButtonName = Command_CaptureBuilding
        SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
    End

    Geometry = BOX
    GeometryMajorRadius = 30.0
    GeometryMinorRadius = 45.0
    GeometryHeight = 20.0
    GeometryIsSmall = No


    // *** AUTO RESOLVE DATA ***
    AutoResolveUnitType = AutoResolveUnit_Soldier
    AutoResolveCombatChain = AutoResolve_SoldierCombatChain

    AutoResolveBody = AutoResolve_GondorFighterHordeBody

    AutoResolveArmor
        RequiredUpgrades = Upgrade_RohanModHeavyArmor
        Armor = AutoResolve_GondorSoldierHeavyArmor
    End

    AutoResolveArmor
        ExcludedUpgrades = Upgrade_RohanModHeavyArmor
        Armor = AutoResolve_GondorSoldierArmor
    End

    AutoResolveWeapon
        RequiredUpgrades = Upgrade_RohanModForgedBlades
        Weapon = AutoResolve_GondorSoldierUpgradedWeapon
    End

    AutoResolveWeapon
        ExcludedUpgrades = Upgrade_RohanModForgedBlades
        Weapon = AutoResolve_GondorSoldierWeapon
    End

    WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor    
End


Object RohanSpeerwerferHorde

    // This is required for garrisoned objects - please put in all objects.
    SelectPortrait     = UPRohanSpearmanPortrait
    ButtonImage        = BGBarracks_RohanSpearmenIcon

    Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
        DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
        DefaultModelConditionState
            Model = None //InvisHrdeTmp5x2
        End
        ModelConditionState = HORDE_EMPTY
            Model = None
        End        

        ModelConditionState = WORLD_BUILDER
            Model = HordeMarkGUTow
        End
    End

    Side = Men
    EditorSorting = UNIT
    EmotionRange = 240
    DisplayName = OBJECT:RohanSpeerwerferHorde
    DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
    DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde

    WeaponSet
        Conditions = None 
        Weapon = PRIMARY    GoodArcherMissileHordeRangefinder
        Weapon = TERTIARY   GoodArcherMissileHordeRangefinderBombard
        AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT                ; Not AI.
    End


    // *** AUDIO Parameters ***//
    // Note: Don't put voice parameters here -- they will be ignored. Voice play requests
    // are always passed through to members


    BuildCost = 350 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
    BuildTime = 30
    VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE 
    ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE 
    VisionSide = 50%
    VisionRear = 25%
    MaxVisionBonusPercent = 300%
    VisionBonusTestRadius = 200
    VisionBonusPercentPerFoot = 1.0%
    CommandPoints = 30

    CommandSet = RohanFighterHordeCommandSet

    FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
    FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.

     CrushableLevel = 0  //What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
    CrusherLevel = 0

    TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
    KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
    #include "..\..\..\includes\StandardHordeEvaEvents.inc"

    Body = ImmortalBody ModuleTag_ImmortalBody
        MaxHealth = 1
    End

    ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
    ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
        AIKindOf = ARCHER
    End

    #include "..\..\..\includes\CaptureBuilding.inc"

    Behavior = StancesBehavior ModuleTag_StancesBehavior
        StanceTemplate = ArcherHorde
    End

    Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
        AutoAcquireEnemiesWhenIdle    =    Yes ATTACK_BUILDINGS
        MoodAttackCheckRate            =    500
        MaxCowerTime                =    5000
        MinCowerTime                =    3000
        CanAttackWhileContained        =    Yes  // Can fire out of garrisoned building        
        AILuaEventsList                =    InfantryFunctions
        AttackPriority                =     AttackPriority_Archer
    End



    Behavior = HordeContain ModuleTag_HordeContain
        FrontAngle = 180
        FlankedDelay = 4000
        ObjectStatusOfContained = 
        InitialPayload = RohanSpeerwerfer 10
        Slots = 10
        PassengerFilter    = NONE +INFANTRY
        ShowPips = No
        ThisFormationIsTheMainFormation = Yes    //Used to determine which armorset to use (and anything else we want!)
        RandomOffset=X:0 Y:0
        MeleeBehavior = Amoeba
            FacingBonus            =    30.0
            AngleLimitCos        =    -0.17
            InnerRange            =    30
            OuterRange            =    80
            OuterRangeBuildings    =    140
        End


        BannerCarriersAllowed    = RohanHeroldBanner       ; types of units that are allowed as banner carriers
        BannerCarrierPosition    = UnitType:RohanSpeerwerfer   Pos:X:70.0 Y:0.0    ; (DEFAULT) position of banner carrier for fighter horde
        BannerCarrierMinLevel   = 0
        BannerCarrierDestroyHordeOnDeath = No
        BannerCarrierHordeDeathType = +NORMAL ;NORMAL, NONE, CRUSHED, BURNED, EXPLODED, POISONED, TOPPLED, FLOODED, SUICIDED, LASERED, DETONATED, SPLATTED, POISONED_BETA, EXTRA_2, EXTRA_3, EXTRA_4, EXTRA_5, EXTRA_6, EXTRA_7, EXTRA_8, KNOCKBACK, SUPERNATURAL, FADED, SLAUGHTERED

        RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0        Position:X:50 Y:20        Position:X:50 Y:-20        Position:X:50 Y:40        Position:X:50 Y:-40 
        RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0    Position:X:30 Y:20 Leader 1 1    Position:X:30 Y:-20 Leader 1 2    Position:X:30 Y:40 Leader 1 3    Position:X:30 Y:-40 Leader 1 4

        RanksToReleaseWhenAttacking = 1 2

        MeleeAttackLeashDistance = 1   //How far the hordes    can    move from the center of    the    horde when melee attacking.                  
        BackUpMinDelayTime         = 1    //The minimum amount of    time to    delay before backing up
        BackUpMaxDelayTime         = 3000    //The maximum amount of    time to    delay before backing up
        BackUpMinDistance         = 1    //The minimum number of    cells to backup
        BackUpMaxDistance         = 3    //The maximum number of    cells to backup
        BackupPercentage         = 80%    //The amount of    chance that    a unit will    back up.
    End

    Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
        GravityMult = 1.0
    End

       Behavior = EmotionTrackerUpdate    Module_EmotionTracker
        TauntAndPointDistance        =    INFANTRY_TAUNT_POINT_RADIUS        // max distance to taunted/pointed objet
        TauntAndPointUpdateDelay    =    1000    // how often scan (milliseconds)
        TauntAndPointExcluded        =    NONE
         AfraidOf                    =    EMOTION_AFRAIDOF_OBJECTFILTER
        AlwaysAfraidOf                =    EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
         PointAt                        =    EMOTION_POINTAT_OBJECTFILTER
        HeroScanDistance            =    150
        FearScanDistance            =    INFANTRY_FEAR_SCAN_RADIUS

        AddEmotion            =    Terror_Base
        AddEmotion            =    Doom_Base
        //    AddEmotion            =   BraceForBeingCrushed_Base        // Pikemen don't fear getting crushed
        AddEmotion            =    UncontrollableFear_Base
        AddEmotion            =    FearIdle_Base
        AddEmotion            =    FearBusy_Base
        AddEmotion            =    Point_Base

        AddEmotion            =    OVERRIDE Taunt_Base    
         //    AttributeModifier    =    GondorFighterTaunt
         End        

        AddEmotion    =    CheerIdle_Base
        AddEmotion    =    CheerBusy_Base
        AddEmotion    =    HeroCheerIdle_Base
        AddEmotion    =    HeroCheerBusy_Base
        AddEmotion    =    Alert_Base
    End

    Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
        SkirmishAIOnly = Yes
        StuffToPickUp = NONE +CRATE
        ScanRange = 200
        ScanIntervalSeconds = 0.5
    End

    LocomotorSet
        Locomotor     = NormalMeleeHordeLocomotor
        Condition     = SET_NORMAL
        Speed         = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
    End

    Behavior = ProductionUpdate ProductionUpdateModuleTag
        GiveNoXP = Yes
    End

    Behavior = LevelUpUpgrade ModuleTag_BasicTraining
        TriggeredBy = Upgrade_RohanModBasicTraining
        LevelsToGain = 1
        LevelCap = 2
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
        TriggeredBy = Upgrade_RohanModForgedBlades
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
        TriggeredBy = Upgrade_RohanModHeavyArmor
    End

    /////////////////////
    // AISpecialPowers
    /////////////////////

    Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
        CommandButtonName = Command_CaptureBuilding
        SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
    End

    Geometry = BOX
    GeometryMajorRadius = 30.0
    GeometryMinorRadius = 45.0
    GeometryHeight = 20.0
    GeometryIsSmall = No


    // *** AUTO RESOLVE DATA ***
    AutoResolveUnitType = AutoResolveUnit_Soldier
    AutoResolveCombatChain = AutoResolve_SoldierCombatChain

    AutoResolveBody = AutoResolve_GondorFighterHordeBody

    AutoResolveArmor
        RequiredUpgrades = Upgrade_RohanModHeavyArmor
        Armor = AutoResolve_GondorSoldierHeavyArmor
    End

    AutoResolveArmor
        ExcludedUpgrades = Upgrade_RohanModHeavyArmor
        Armor = AutoResolve_GondorSoldierArmor
    End

    AutoResolveWeapon
        RequiredUpgrades = Upgrade_RohanModForgedBlades
        Weapon = AutoResolve_GondorSoldierUpgradedWeapon
    End

    AutoResolveWeapon
        ExcludedUpgrades = Upgrade_RohanModForgedBlades
        Weapon = AutoResolve_GondorSoldierWeapon
    End

    WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor    
End


Object RohanSpeerwerferHordeForAI

    // This is required for garrisoned objects - please put in all objects.
    SelectPortrait     = UPRohanSpearmanPortrait
    ButtonImage        = BGBarracks_RohanSpearmenIcon

    Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
        DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
        DefaultModelConditionState
            Model = None //InvisHrdeTmp5x2
        End
        ModelConditionState = HORDE_EMPTY
            Model = None
        End        

        ModelConditionState = WORLD_BUILDER
            Model = HordeMarkGUTow
        End
    End

    Side = Men
    EditorSorting = UNIT
    EmotionRange = 240
    DisplayName = OBJECT:RohanSpeerwerferHorde
    DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
    DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde

    WeaponSet
        Conditions = None 
        Weapon = PRIMARY    GoodArcherMissileHordeRangefinder
        Weapon = TERTIARY    GoodArcherMissileHordeRangefinderBombard
        AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT                ; Not AI.
    End


    // *** AUDIO Parameters ***//
    // Note: Don't put voice parameters here -- they will be ignored. Voice play requests
    // are always passed through to members


    BuildCost = 200 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
    BuildTime = 20
    VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE 
    ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE 
    VisionSide = 50%
    VisionRear = 25%
    MaxVisionBonusPercent = 300%
    VisionBonusTestRadius = 200
    VisionBonusPercentPerFoot = 1.0%
    CommandPoints = 30

    CommandSet = RohanFighterHordeCommandSet

    FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
    FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.

     CrushableLevel = 0  //What am I?:        0 = for infantry, 1 = for trees, 2 = general vehicles
    CrusherLevel = 0

    TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
    KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
    #include "..\..\..\includes\StandardHordeEvaEvents.inc"

    Body = ImmortalBody ModuleTag_ImmortalBody
        MaxHealth = 1
    End

    ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
    ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
        AIKindOf = ARCHER
    End

    #include "..\..\..\includes\CaptureBuilding.inc"

    Behavior = StancesBehavior ModuleTag_StancesBehavior
        StanceTemplate = ArcherHorde
    End

    Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
        AutoAcquireEnemiesWhenIdle    =    Yes ATTACK_BUILDINGS
        MoodAttackCheckRate            =    500
        MaxCowerTime                =    5000
        MinCowerTime                =    3000
        CanAttackWhileContained        =    Yes  // Can fire out of garrisoned building        
        AILuaEventsList                =    InfantryFunctions
        AttackPriority                =     AttackPriority_Archer
    End



    Behavior = HordeContain ModuleTag_HordeContain
        FrontAngle = 180
        FlankedDelay = 4000
        ObjectStatusOfContained = 
        InitialPayload = RohanSpeerwerfer 10
        Slots = 10
        PassengerFilter    = NONE +INFANTRY
        ShowPips = No
        ThisFormationIsTheMainFormation = Yes    //Used to determine which armorset to use (and anything else we want!)
        RandomOffset=X:0 Y:0
        MeleeBehavior = Amoeba
            FacingBonus            =    30.0
            AngleLimitCos        =    -0.17
            InnerRange            =    30
            OuterRange            =    80
            OuterRangeBuildings    =    140
        End

        RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0        Position:X:50 Y:20        Position:X:50 Y:-20        Position:X:50 Y:40        Position:X:50 Y:-40 
        RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0    Position:X:30 Y:20 Leader 1 1    Position:X:30 Y:-20 Leader 1 2    Position:X:30 Y:40 Leader 1 3    Position:X:30 Y:-40 Leader 1 4

        RanksToReleaseWhenAttacking = 1 2

        MeleeAttackLeashDistance = 1   //How far the hordes    can    move from the center of    the    horde when melee attacking.                  
        BackUpMinDelayTime         = 1    //The minimum amount of    time to    delay before backing up
        BackUpMaxDelayTime         = 3000    //The maximum amount of    time to    delay before backing up
        BackUpMinDistance         = 1    //The minimum number of    cells to backup
        BackUpMaxDistance         = 3    //The maximum number of    cells to backup
        BackupPercentage         = 80%    //The amount of    chance that    a unit will    back up.
    End

    Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
        GravityMult = 1.0
    End

       Behavior = EmotionTrackerUpdate    Module_EmotionTracker
        TauntAndPointDistance        =    INFANTRY_TAUNT_POINT_RADIUS        // max distance to taunted/pointed objet
        TauntAndPointUpdateDelay    =    1000    // how often scan (milliseconds)
        TauntAndPointExcluded        =    NONE
         AfraidOf                    =    EMOTION_AFRAIDOF_OBJECTFILTER
        AlwaysAfraidOf                =    EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
         PointAt                        =    EMOTION_POINTAT_OBJECTFILTER
        HeroScanDistance            =    150
        FearScanDistance            =    INFANTRY_FEAR_SCAN_RADIUS

        AddEmotion            =    Terror_Base
        AddEmotion            =    Doom_Base
        //    AddEmotion            =   BraceForBeingCrushed_Base        // Pikemen don't fear getting crushed
        AddEmotion            =    UncontrollableFear_Base
        AddEmotion            =    FearIdle_Base
        AddEmotion            =    FearBusy_Base
        AddEmotion            =    Point_Base

        AddEmotion            =    OVERRIDE Taunt_Base    
         //    AttributeModifier    =    GondorFighterTaunt
         End        

        AddEmotion    =    CheerIdle_Base
        AddEmotion    =    CheerBusy_Base
        AddEmotion    =    HeroCheerIdle_Base
        AddEmotion    =    HeroCheerBusy_Base
        AddEmotion    =    Alert_Base
    End

    Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
        SkirmishAIOnly = Yes
        StuffToPickUp = NONE +CRATE
        ScanRange = 200
        ScanIntervalSeconds = 0.5
    End

    LocomotorSet
        Locomotor     = NormalMeleeHordeLocomotor
        Condition     = SET_NORMAL
        Speed         = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
    End

    Behavior = ProductionUpdate ProductionUpdateModuleTag
        GiveNoXP = Yes
    End

    Behavior = LevelUpUpgrade ModuleTag_BasicTraining
        TriggeredBy = Upgrade_RohanModBasicTraining
        LevelsToGain = 1
        LevelCap = 2
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
        TriggeredBy = Upgrade_RohanModForgedBlades
    End

    Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
        TriggeredBy = Upgrade_RohanModHeavyArmor
    End

    /////////////////////
    // AISpecialPowers
    /////////////////////

    Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
        CommandButtonName = Command_CaptureBuilding
        SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
    End

    Geometry = BOX
    GeometryMajorRadius = 30.0
    GeometryMinorRadius = 45.0
    GeometryHeight = 20.0
    GeometryIsSmall = No


    // *** AUTO RESOLVE DATA ***
    AutoResolveUnitType = AutoResolveUnit_Soldier
    AutoResolveCombatChain = AutoResolve_SoldierCombatChain

    AutoResolveBody = AutoResolve_GondorFighterHordeBody

    AutoResolveArmor
        RequiredUpgrades = Upgrade_RohanModHeavyArmor
        Armor = AutoResolve_GondorSoldierHeavyArmor
    End

    AutoResolveArmor
        ExcludedUpgrades = Upgrade_RohanModHeavyArmor
        Armor = AutoResolve_GondorSoldierArmor
    End

    AutoResolveWeapon
        RequiredUpgrades = Upgrade_RohanModForgedBlades
        Weapon = AutoResolve_GondorSoldierUpgradedWeapon
    End

    AutoResolveWeapon
        ExcludedUpgrades = Upgrade_RohanModForgedBlades
        Weapon = AutoResolve_GondorSoldierWeapon
    End

    WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor    
End
 

Thranduil

Воевода
@[member='Akhorahil'], помоги пожалуйста если можешь. У меня никак не получается. Очень прошу.

Копейщики Рохана
Код:
Object RohanSpeerwerferHorde

// This is required for garrisoned objects - please put in all objects.
SelectPortrait = UPRohanSpearmanPortrait
ButtonImage = BGBarracks_RohanSpearmenIcon

Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None //InvisHrdeTmp5x2
End
ModelConditionState = HORDE_EMPTY
Model = None
End

ModelConditionState = WORLD_BUILDER
Model = HordeMarkGUTow
End
End

Side = Men
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:RohanSpeerwerferHorde
DisplayNameStrategic = CONTROLBAR:LW_Unit_RohanSpeerwerferHorde
DescriptionStrategic = CONTROLBAR:LW_ToolTip_RohanSpeerwerferHorde

WeaponSet
Conditions = None
Weapon = PRIMARY GoodArcherMissileHordeRangefinder
Weapon = TERTIARY GoodArcherMissileHordeRangefinderBombard
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT ; Not AI.
End


// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members


BuildCost = 350 ;ROHAN_WДCHTERMEDUSELDS_BUILDCOST
BuildTime = 30
VisionRange = 300 ;GONDOR_ARCHER_HORDE_VISION_RANGE
ShroudClearingRange = 350 ;GONDOR_ARCHER_HORDE_SHROUD_RANGE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 30

CommandSet = RohanFighterHordeCommandSet

FormationWidth = 2 // Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 // Depth it occupies in formations. Current choices are 1 or 2.

CrushableLevel = 0 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0

TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY ARCHER HORDE ARMY_SUMMARY MELEE_HORDE LARGE_RECTANGLE_PATHFIND
#include "..\..\..\includes\StandardHordeEvaEvents.inc"

Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End

ThreatLevel = GONDOR_TOWERSHIELDGUARD_HORDE_THREAT
ThreatBreakdown GondorTowerShieldGuardHorde_DetailedThreat
AIKindOf = ARCHER
End

#include "..\..\..\includes\CaptureBuilding.inc"

Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = ArcherHorde
End

Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes // Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End



Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 180
FlankedDelay = 4000
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:0 Y:0
MeleeBehavior = Amoeba
FacingBonus = 30.0
AngleLimitCos = -0.17
InnerRange = 30
OuterRange = 80
OuterRangeBuildings = 140
End


BannerCarriersAllowed = RohanHeroldBanner ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:RohanSpeerwerfer Pos:X:70.0 Y:0.0 ; (DEFAULT) position of banner carrier for fighter horde
BannerCarrierMinLevel = 0
BannerCarrierDestroyHordeOnDeath = No
BannerCarrierHordeDeathType = +NORMAL ;NORMAL, NONE, CRUSHED, BURNED, EXPLODED, POISONED, TOPPLED, FLOODED, SUICIDED, LASERED, DETONATED, SPLATTED, POISONED_BETA, EXTRA_2, EXTRA_3, EXTRA_4, EXTRA_5, EXTRA_6, EXTRA_7, EXTRA_8, KNOCKBACK, SUPERNATURAL, FADED, SLAUGHTERED

RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:50 Y:0 Position:X:50 Y:20 Position:X:50 Y:-20 Position:X:50 Y:40 Position:X:50 Y:-40
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:30 Y:0 Leader 1 0 Position:X:30 Y:20 Leader 1 1 Position:X:30 Y:-20 Leader 1 2 Position:X:30 Y:40 Leader 1 3 Position:X:30 Y:-40 Leader 1 4

RanksToReleaseWhenAttacking = 1 2

MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End

Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End

Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS // max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 // how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS

AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base // Pikemen don't fear getting crushed
AddEmotion = UncontrollableFear_Base
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base

AddEmotion = OVERRIDE Taunt_Base
// AttributeModifier = GondorFighterTaunt
End

AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End

Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpdate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End

LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_FOOT_MED_HORDE_SPEED ;NORMAL_GOOD_INFANTRY_HORDE_SPEED
End

Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End

Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_RohanModBasicTraining
LevelsToGain = 1
LevelCap = 2
End

Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_RohanModForgedBlades
End

Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2
TriggeredBy = Upgrade_RohanModHeavyArmor
End

/////////////////////
// AISpecialPowers
/////////////////////

Behavior = AISpecialPowerUpdate GondorTowerShieldGuardHordeCaptureBuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE_BUILDING
End

Geometry = BOX
GeometryMajorRadius = 30.0
GeometryMinorRadius = 45.0
GeometryHeight = 20.0
GeometryIsSmall = No


// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Soldier
AutoResolveCombatChain = AutoResolve_SoldierCombatChain

AutoResolveBody = AutoResolve_GondorFighterHordeBody

AutoResolveArmor
RequiredUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierHeavyArmor
End

AutoResolveArmor
ExcludedUpgrades = Upgrade_RohanModHeavyArmor
Armor = AutoResolve_GondorSoldierArmor
End

AutoResolveWeapon
RequiredUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierUpgradedWeapon
End

AutoResolveWeapon
ExcludedUpgrades = Upgrade_RohanModForgedBlades
Weapon = AutoResolve_GondorSoldierWeapon
End

WorldMapArmoryUpgradesAllowed = Upgrade_RohanModBasicTraining Upgrade_RohanModForgedBlades Upgrade_RohanModHeavyArmor
End

Копейщики Харада
Код:
Object MordorHaradrimLancerModHorde

; This is required for garrisoned objects - please put in all objects.
ButtonImage = BMHaradrimPalace_Haradrim
SelectPortrait = UPHaradrimLancer

Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None ;InvisHrdeTmp
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkMUHar
End
End

Side = Mordor
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeMordorHaradrimLancer
DisplayNameStrategic = CONTROLBAR:LW_Unit_MordorHaradrimLancer
DescriptionStrategic = CONTROLBAR:LW_ToolTip_MordorHaradrimLancer

WeaponSet
Conditions = None
Weapon = PRIMARY ShortRangedMissileHordeRangefinder
End

WeaponSet
Conditions = CLOSE_RANGE; Haradrim switch weapon on contain, so we need to too.
Weapon = PRIMARY NormalMeleeHordeRangefinder
End



; *** AUDIO Parameters ***;
; Note: Don't put voice parameters here -- they will be ignored. Voice play requests
; are always passed through to members


BuildCost = MORDOR_HARADRIM_BUILDCOST
BuildTime = MORDOR_HARADRIM_BUILDTIME
VisionRange = MORDOR_HARADRIM_HORDE_VISION_RANGE
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
CommandPoints = 30
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE

CommandSet = MordorHaradrimLancerHordeModCommandSet

FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 1 ; Depth it occupies in formations. Current choices are 1 or 2.


TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ARCHER MELEE_HORDE CAN_USE_SIEGE_TOWER ;UNATTACKABLE

Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End

Behavior = DualWeaponBehavior ModuleTag_13
SwitchWeaponOnCloseRangeDistance = MORDOR_HARADRIM_LANCER_SWITCH_RANGE_HORDE
End

Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End

Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes ; Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End

Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorHaradrimLancerMod 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)
RandomOffset=X:3 Y:3

; Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorHaradrimLancerMod Pos:X:30.0 Y:0.0 ; (DEFAULT) position of banner carrier for archer horde

; Positions for 10
RankInfo = RankNumber:1 UnitType:MordorHaradrimLancerMod Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:50 Position:X:0 Y:-50
RankInfo = RankNumber:1 UnitType:MordorHaradrimLancerMod Position:X:30 Y:0 Position:X:30 Y:25 Position:X:30 Y:-25 Position:X:30 Y:50 Position:X:30 Y:-50

RanksToReleaseWhenAttacking = 1 2
MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.
AlternateFormation = MordorHaradrimLancerModHordeWedge
End

Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End

Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS; 350 ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTFILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_OBJECTFILTER
PointAt = EMOTION_POINTAT_OBJECTFILTER
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS; 250

AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = BraceForBeingCrushed_Base
AddEmotion = UncontrollableFear_Base_Evil
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base

AddEmotion = OVERRIDE Taunt_Base
; AttributeModifier = GondorFighterTaunt
End

AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End

LocomotorSet
Locomotor = NormalRangedHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_EVIL_INFANTRY_HORDE_SPEED
End

Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End

Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_MordorBasicTraining
LevelsToGain = 1
LevelCap = 2
End

Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality ; Added for BFME Expansion
TriggeredBy = Upgrade_MordorHeavyArmor
End


Geometry = BOX
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 12.0
GeometryIsSmall = No

// *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Archer
AutoResolveCombatChain = AutoResolve_ArcherCombatChain

AutoResolveBody = AutoResolve_MordorHaradrimArcherHordeBody

AutoResolveArmor
RequiredUpgrades = Upgrade_MordorHeavyArmor
Armor = AutoResolve_MordorHaradrimArcherHeavyArmor
End

AutoResolveArmor
ExcludedUpgrades = Upgrade_MordorHeavyArmor
Armor = AutoResolve_MordorHaradrimArcherArmor
End

AutoResolveWeapon
Weapon = AutoResolve_MordorHaradrimArcherUpgradedWeapon
End

WorldMapArmoryUpgradesAllowed = Upgrade_MordorBasicTraining Upgrade_MordorHeavyArmor
End



;---------------------------------------------------------------------------------

ChildObject MordorHaradrimLancerModHordeWedge MordorHaradrimLancerModHorde
; Note - for alternate formations, all info outside of the Contain Behavior module is ignored.
; Any modifications need to be done via the Attribute Modifiers in the contain module.
Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorHaradrimLancerMod 10

Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = No ;Used to determine which armorset to use (and anything else we want!)

; Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorHaradrimLancerMod Pos:X:0.0 Y:0.0 ; (DEFAULT) position of banner carrier for archer horde

RandomOffset = X:2 Y:2
RankInfo = RankNumber:1 UnitType:MordorHaradrimLancerMod Position:X:-20 Y:-60 Position:X:-10 Y:-45 Position:X:0 Y:-30 Position:X:10 Y:-15 Position:X:20 Y:0 Position:X:20 Y:-20 Position:X:10 Y:15 Position:X:0 Y:30 Position:X:-10 Y:45 Position:X:-20 Y:60

RanksToReleaseWhenAttacking = 1 2

AlternateFormation = MordorHaradrimLancerModHorde
AttributeModifiers = MordorEasterlingHordePorcupine
End
End
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
@[member='Thranduil'], завтра посмотрю, ок? Думаю дело в этих иниках.
 

Thranduil

Воевода
Оцените идею:

Рохан - Убрать Халдира из таверны и добавить туда Радагаста(из крепости. Он герой кольца).

Не пойму почему Халдир нанимается в Рохане. А если это правильно почему не должно быть Арагорн, Леголас и Гимли тоже?!
 

Akhorahil

Вернулся из заката)
  • Орден Белого Древа
@[member='Thranduil']
Копейщики Рохана
Попробуй заменить аналогичный кусок кода этим:

Код:
Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = RohanSpeerwerfer 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset = X:2 Y:2
MeleeBehavior = Amoeba
End

// Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorHaradrimArcher Pos:X:40.0 Y:0.0 // (DEFAULT) position of banner carrier for archer horde


RankInfo = RankNumber:1 UnitType:MordorHaradrimArcher Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:50 Position:X:0 Y:-50
RankInfo = RankNumber:2 UnitType:MordorHaradrimArcher Position:X:20 Y:0 Position:X:15 Y:25 Position:X:20 Y:-25 Position:X:20 Y:50 Position:X:20 Y:-50



BannerCarriersAllowed = RohanHeroldBanner ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:RohanSpeerwerfer Pos:X:40.0 Y:0.0 ; (DEFAULT) position of banner carrier for fighter horde

RankInfo = RankNumber:1 UnitType:RohanSpeerwerfer Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:50 Position:X:0 Y:-50
RankInfo = RankNumber:2 UnitType:RohanSpeerwerfer Position:X:20 Y:0 Position:X:15 Y:25 Position:X:20 Y:-25 Position:X:20 Y:50 Position:X:20 Y:-50

RanksToReleaseWhenAttacking = 1 2

MeleeAttackLeashDistance = 1 //How far the hordes can move from the center of the horde when melee attacking.
BackUpMinDelayTime = 1 //The minimum amount of time to delay before backing up
BackUpMaxDelayTime = 3000 //The maximum amount of time to delay before backing up
BackUpMinDistance = 1 //The minimum number of cells to backup
BackUpMaxDistance = 3 //The maximum number of cells to backup
BackupPercentage = 80% //The amount of chance that a unit will back up.
End

Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
Копию ини не забывай делать!
 
Автор темы Похожие темы Форум Ответы Дата
Ælfwīs Толкиновские Обсуждения 3
Thranduil Субмоды 150
Thranduil Субмоды 124

Сверху