Also ich bin gerade dabei in Aragorns Totenarmespell die untoten-Reiter zu intigrieren. Allerdings sollen sie in einer Formation laufen; 5 Reiter nebeneinander!
Die Reiter sind nebeneinander (auch 5 stück)! Allerdings (ich schreibe eine map.ini!) können die Reiter nicht angreifen und werden auch nicht angegriffen..... da ich mich mit dem formationcode nicht so gut auskenne, könnte mir bitte jemand helfen?
Außerdem verschwinden sie nicht nachdem die "Lebenszeit" abgelaufen ist!?
Hier der Code von den Reitern:
Object RohanOathbreakersCavalryNew
SelectPortrait = UPOathBreakers
; *** ART Parameters ***
AddModule
Draw = W3DScriptedModelDraw ModuleTag_01
StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = RUOthHrse_SKN
End
IdleAnimationState
Animation = IdleA
AnimationName = RURohrm_SKL.RURohrm_IDLA
AnimationPriority = 20
AnimationMode = ONCE
AnimationBlendTime = 15
End
Animation = IdleB
AnimationName = RURohrm_SKL.RURohrm_IDLB
AnimationMode = ONCE
AnimationBlendTime = 15
End
End
AnimationState = PASSENGER
Animation = grabbed
AnimationName = RURohrm_SKL.RURohrm_GBDA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
; --- stunned anims
AnimationState = FREEFALL
Animation = free fall
AnimationName = RURohrm_SKL.RURohrm_FLYB
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = STUNNED_FLAILING
Animation = JustDie
AnimationName = RURohrm_SKL.RURohrm_FLYC
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = STUNNED
Animation = Land
AnimationName = RURohrm_SKL.RURohrm_LNDA
AnimationMode = ONCE
End
End
AnimationState = STUNNED_STANDING_UP
Animation = StandUp
AnimationName = RURohrm_SKL.RURohrm_GTPA
AnimationMode = ONCE
End
End
; This is the no-spawn-horse type of death
AnimationState = DYING ; DEATH_2 Normally has DEATH_2, but just as a backup don't insist
Animation = JustDie
AnimationName = RURohrm_SKL.RURohrm_DIEA
AnimationMode = ONCE
End
End
; When the rider is killed, we call this animation even though the unit hasn't officially died yet.
AnimationState = DEATH_2
Animation = JustDie
AnimationName = RURohrm_SKL.RURohrm_DIEB
AnimationMode = ONCE
End
End
AnimationState = MOVING ENGAGED
Animation = Moving_Engaged
AnimationName = RURohrm_SKL.RURohrm_RUNC
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = TURN_LEFT_HIGH_SPEED
Animation = TurnLeft
AnimationName = RURohrm_SKL.RURohrm_TNL1
AnimationMode = LOOP
; AnimationSpeedFactorRange= 1.8 1.8
AnimationBlendTime = 20
End
End
AnimationState = TURN_RIGHT_HIGH_SPEED
Animation = TurnLeft
AnimationName = RURohrm_SKL.RURohrm_TNR1
AnimationMode = LOOP
; AnimationSpeedFactorRange= 1.8 1.8
AnimationBlendTime = 20
End
End
AnimationState = MOVING WANDER
Animation = WLKA
AnimationName = RURohrm_SKL.RURohrm_WLKA
AnimationMode = LOOP
End
End
AnimationState = MOVING TURN_LEFT
Animation = TurnLeft
AnimationName = RURohrm_SKL.RURohrm_TRNL
AnimationMode = LOOP
End
End
AnimationState = MOVING TURN_RIGHT
Animation = TurnRight
AnimationName = RURohrm_SKL.RURohrm_TRNR
AnimationMode = LOOP
End
End
AnimationState = MOVING ACCELERATE
Animation = Accelerate
AnimationName = RURohrm_SKL.RURohrm_ACCL
AnimationMode = LOOP
End
End
AnimationState = MOVING DECELERATE
Animation = Decelerate
AnimationName = RURohrm_SKL.RURohrm_DECL
AnimationMode = ONCE
End
End
AnimationState = MOVING
Animation = RunA
AnimationName = RURohrm_SKL.RURohrm_RUNA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = SELECTED
SimilarRestart = Yes
Animation = AtAttention
AnimationName = RURohrm_SKL.RURohrm_ATNA
AnimationMode = ONCE
End
End
End
End
ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE
; ***DESIGN parameters ***
Side = Men
EditorSorting = UNIT
ThreatLevel = 2.0
TransportSlotCount = TRANSPORTSLOTCOUNT_UNIT
CommandPoints = 0
WeaponSet
Conditions = None
Weapon = PRIMARY OathbreakerSword
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = OathBreakerArmor
DamageFX = NormalDamageFX
End
VisionRange = 280.0
DisplayName = OBJECT:Oathbreaker
CrushableLevel = 4 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 5
MinCrushVelocityPercent = 0% // Always crushes
CrushDecelerationPercent = 0% // Lose 0 percent of max velocity when crushing.
CrushKnockback = 10 // Don't knock back.
CrushZFactor = 10.0 // How much we knock upwards.
; *** AUDIO Parameters ***;
VoiceAttack = OathbreakerVoxSelect
; VoiceCreated = OathbreakerVoxSelect
; VoiceFullyCreated = OathbreakerVoxSelect
VoiceMove = OathbreakerVoxSelect
VoicePriority = 16
VoiceSelect = OathbreakerVoxSelect
;VoiceSelect2 = RohirrimAttention
SoundCrushing = RohirrimCrushing ; Sound made when crushing another unit underhoof
SoundImpact = ImpactHorse
SoundMoveStart = GondorHorseMoveStart
UnitSpecificSounds
VoiceGarrison = OathbreakerVoxSelect
VoiceEnterUnitElvenTransportShip = OathbreakerVoxSelect
VoiceEnterUnitEvilMenTransportShip = OathbreakerVoxSelect
VoiceEnterUnitMordorMumakil = OathbreakerVoxSelect
VoiceEnterUnitSlaughterHouse = OathbreakerVoxSelect
VoiceInitiateCaptureBuilding = OathbreakerVoxSelect
End
; Tie into LargeGroupAudio system
AddModule
Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
Key = Oathbreaker
End
End
; Warn the player when the enemy gets a unit. Override the normal sighting event from StandardUnitEvaEvents.inc
EvaEnemyObjectSightedEvent = DiscoveredEnemyOathbreaker ;GenericEnemyUnitSighted ; Normal response to enemy units
AddModule
ClientUpdate = EvaAnnounceClientCreate ModuleTag_CreateAnnounce
AnnouncementEventEnemy = DiscoveredEnemyOathbreaker
AnnouncementEventAlly = None
AnnouncementEventOwner = None
OnlyIfVisible = Yes ; Don't announce if hidden in the shroud
CountAsFirstSightedAnnoucement = Yes ; Don't re-annouce if going into shroud & back
UseObjectsPosition = No ; Play from central Fortress, not at unit's position
CreateFakeRadarEvent = Yes ; Allow player to jump to unit after hearing annoucement
End
End
; *** ENGINEERING Parameters ***
CommandSet = RohanOathbreakerHordeCommandSet
RadarPriority = UNIT
ThingClass = CAVALRY_UNIT
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT ARMY_OF_DEAD
AddModule
Body = ActiveBody ModuleTag_02
MaxHealth = 500 ;BALANCE Man at Arms Health
MaxHealthDamaged = 5
RecoveryTime = 5000
End
End
AddModule
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
AILuaEventsList = RohirrimFunctions
AttackPriority = AttackPriorityCavalry
End
End
LocomotorSet
Locomotor = HorseLocomotor
Condition = SET_NORMAL
Speed = 100
End
AddModule
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
ShockStunnedTimeLow = 1400
ShockStunnedTimeHigh = 2400
ShockStandingTime = 2400
End
End
AddModule
Behavior = OathbreakersFadeAwayBehavior ModuleTag_05
FadeOutTime = 3500 ; Fade time in ms - 4000 == 4 seconds.
End
End
AddModule
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
MinLifetime = 26000
MaxLifetime = 26000
End
End
AddModule
Behavior = AODCrushCollide ModuleTag_06
SmallFXList = FX_AODHitSmall; FXList for small objects.
MediumFXList = FX_AODHitMedium; FXList for medium objects.
;LargeFXList = FX_AODHitLarge; FXList for medium objects.
; Normal damage delivered.
Damage = 99999.0 ; normally really lethal
DamageType = CRUSH
DeathType = CRUSHED
SpecialObject = NONE +MordorBalrog -SELECTABLE -CAVALRY -INFANTRY -HERO -MONSTER; Special objects receive and dish out special damage.
SpecialDamage = 100.0 ; not as lethal
SpecialDamageType = CRUSH
SpecialDeathType = CRUSHED
SelfDamage = 9999.0 ; Damaging a special object inflicts damage on self.
SelfDamageType = FLAME
SelfDeathType = BURNED
End
End
AddModule
Behavior = SlowDeathBehavior ModuleTag_08
DeathTypes = ALL
SinkDelay = 1000
SinkRate = 1.40 ; in Dist/Sec
DestructionDelay = 10000
;ProbabilityModifier = 33
DeathFlags = DEATH_2 ; Tell model which death animation to play. Sets BOTH model condition and object status bits.
;Sound = INITIAL OathbreakerDie
End
End
Geometry = CYLINDER
GeometryMajorRadius = 10.4
GeometryMinorRadius = 10.4
GeometryHeight = 20.0
GeometryIsSmall = No
;Shadow = SHADOW_DECAL
;ShadowSizeX = 30;
;ShadowSizeY = 21;
;ShadowTexture = ShadowI;
End
Und hier der Foramtion-Code:
Object OathbreakerHorseRiderBatNew
SelectPortrait = UPOathBreakers
ButtonImage = UPOathBreakers
AddModule
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR
DefaultModelConditionState
Model = None //InvisHrdeTmp
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkRUOat
End
End
ENd
Side = Men
EditorSorting = UNIT
EmotionRange = 240
WeaponSet
Conditions = None
Weapon = PRIMARY OathbreakerSword
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
CommandSet = RohanOathbreakerHordeCommandSet
// *** AUDIO Parameters ***//
// Note: Don't put voice parameters here -- they will be ignored. Voice play requests
// are always passed through to members
BuildCost = 0 //not build just spawned
BuildTime = 0
VisionRange = 500
VisionSide = 50%
VisionRear = 25%
VisionBonusPercentPerFoot = 1.0%
CommandPoints = 0
VisionRange = 280.0
DisplayName = OBJECT:Oathbreaker
CrushableLevel = 4 //What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 5
MinCrushVelocityPercent = 0% // Always crushes
CrushDecelerationPercent = 0% // Lose 0 percent of max velocity when crushing.
CrushKnockback = 10 // Don't knock back.
CrushZFactor = 10.0 // How much we knock upwards.
TransportSlotCount = TRANSPORTSLOTCOUNT_SMALL_HORDE
KindOf = HERO SELECTABLE CAN_ATTACK INFANTRY HORDE MELEE_HORDE ARMY_OF_DEAD SCARY SUMMONED
AddModule
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
End
AddModule
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AttackPriority = AttackPriorityCavalry
End
End
AddModule
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
MinLifetime = 26000
MaxLifetime = 26000
DeathType = FADED
End
End
AddModule
Behavior = AODHordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = RohanOathbreakersCavalryNew OATHBREAKER_HORDE_SIZE
Slots = 3
PassengerFilter = ANY +INFANTRY +CAVALRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes //Used to determine which armorset to use (and anything else we want!)
RandomOffset = X:0 Y:0 // X:25 Y:25
// AOD sine wave movement.
FrequencyScale = 0.3// // how fast they move left to right.
FrequencyRandomness = 0.3// how random - 0==no randomness, 1.0 = very random.
AmplitudeScale = 10// how far they move left to right.
AmplitudeRandomness = 0.4// how random - 0==no randomness, 1.0 = very random.
StillAmplitude = 0.10// // how much they move left to right when not moving. 0==none, 1.0==full movement.
// z movement.
FrequencyScaleZ = 0.2// // how fast they move up&down.
FrequencyRandomnessZ = 0.4// how random - 0==no randomness, 1.0 = very random.
AmplitudeScaleZ = 4// how far they up and down.
AmplitudeRandomnessZ = 0.2// how random - 0==no randomness, 1.0 = very random.
StillAmplitudeZ = 0.15// // how much they move up & down when not moving. 0==none, 1.0==full movement.
// Horde flowing up over large units it kills.
LargeUnitHeightFactor = 0.85 // Start with this * the object's geometry height.
LargeUnitMinHeight = 20.0// Go up at least this amount.
LargeUnitMaxHeight = 300.0// Go up at no more than amount.
LargeUnitTimeout = 12000// How long the horde flows up over the unit, ms. 4000==4 seconds.
LargeUnitTailOff = 2.0f// How quickly the units drop back to the ground.
// Oath fulfilled behavior.
//E3 No up OathFulfilledZFactor = 0.5 // How fast they rise up after oath is fulfilled.
ScatterSpeedFactor = 0.4// How fast they scatter.
ScatterRandomness = 0.1// How random the scatter speed is.
RankInfo = RankNumber:1 UnitType:RohanOathbreakersCavalryNew 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:RohanOathbreakersCavalryNew 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
RankInfo = RankNumber:3 UnitType:RohanOathbreakersCavalryNew Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4
RanksToReleaseWhenAttacking = 1
End
End
AddModule
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End
End
AddModule
Behavior = OathbreakersFadeAwayBehavior ModuleTag_05
FadeOutTime = 9 // Hordes don't fade out, members do.
End
End
AddModule
Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate
End
End
AddModule
Behavior = HordeNotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
ScanWidth = 30.0 ; A little less than the width of the horde (which is 2 * 20 = 40)
End
End
LocomotorSet
Locomotor = HorseLocomotor
Condition = SET_NORMAL
Speed = 100
End
Geometry = BOX
GeometryMajorRadius = 20.0
GeometryMinorRadius = 20.0
GeometryHeight = 10.0
GeometryIsSmall = No
End
Vielen Dank im Voraus!
MFG
Tipppfehler