balrog hero?
#61
Posted 18 February 2009 - 07:38 AM
#62
Posted 18 February 2009 - 08:12 AM
what i do?
#63
Posted 18 February 2009 - 11:55 PM
;------------------------------------------------------------------------------
Object MordorBalrog_NO_TIMER
MaxSimultaneousOfType = 1
; *** ART Parameters ***
; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPBalrog
; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIBalrog
Draw = W3DScriptedModelDraw ModuleTag_BodyDraw
; GlowEnabled = Yes
; GlowEmissive = Yes
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
OkToChangeModelColor = Yes
ExtraPublicBone = ZZZPASSENGERBON
ExtraPublicBone = ZZZWHIPCOIL
ExtraPublicBone = SWORD
;-------------------------
ModelConditionState = NONE ; Not DefaultConditionState, because that keyword copies anything in here to every other state
Model = MUBalrog_SKN
ParticleSysBone = SWORD BalrogSwordFlare FollowBone:yes ; Not SWORDBONE, because SWORD is the bone that gets art-hidden mid animation in WIPX
ParticleSysBone = SWORD BalrogSwordEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFlare FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFire FollowBone:yes
ParticleSysBone = RTWINGBONE BalrogWingSmokeLite FollowBone:yes
ParticleSysBone = LFWINGBONE BalrogWingSmokeLite FollowBone:yes
End
; This is triggered by the single player only HitReaction module for the lightningsword
ModelConditionState = HIT_LEVEL_2
Model = MUBalLIT_SKN
End
ModelConditionState = USER_3
Model = MUBalIGNT_SKN
WeaponLaunchBone = PRIMARY BAT_JAW
ParticleSysBone = MANEBONE BalrogManeFlare FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFire FollowBone:yes
ParticleSysBone = RTWINGBONE BalrogWingEmbers FollowBone:yes
ParticleSysBone = LFWINGBONE BalrogWingEmbers FollowBone:yes
ParticleSysBone = SWORD BalrogSwordFlare FollowBone:yes ; Not SWORDBONE, because SWORD is the bone that gets art-hidden mid animation in WIPX
ParticleSysBone = SWORD BalrogSwordEmbers FollowBone:yes
ParticleSysBone = NONE BalrogIgniteHeatWave FollowBone:no
ParticleSysBone = None BALROG_HAZE FollowBone:yes
ParticleSysBone = MANEBONE BALROG_HAZE FollowBone:yes
End
ModelConditionState = HERO
Model = MUBalIGNT_SKN
ParticleSysBone = MANEBONE BalrogManeFlare FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFire FollowBone:yes
ParticleSysBone = RTWINGBONE BalrogWingEmbers FollowBone:yes
ParticleSysBone = LFWINGBONE BalrogWingEmbers FollowBone:yes
ParticleSysBone = SWORD BalrogSwordFlare FollowBone:yes ; Not SWORDBONE, because SWORD is the bone that gets art-hidden mid animation in WIPX
ParticleSysBone = SWORD BalrogSwordEmbers FollowBone:yes
ParticleSysBone = NONE BalrogIgniteHeatWave FollowBone:no
; ParticleSysBone = None BALROG_HAZE1 FXTrigger:NONE Persist:SPAWN PersistID:100
; ParticleSysBone = None BALROG_HAZE2 FXTrigger:NONE Persist:SPAWN PersistID:100
End
;-----------------
IdleAnimationState
StateName = State_Idle
Animation = Breathe
AnimationName = MUBalrog_SKL.MUBalrog_IDLA
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 20
End
Animation = LookAround
AnimationName = MUBalrog_SKL.MUBalrog_IDLB
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 2
End
Animation = SnortLikeABull
AnimationName = MUBalrog_SKL.MUBalrog_IDLC
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 1
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "State_JustBuilt"
then CurDrawableSetTransitionAnimState("TRANS_JustBuilt_To_Idle")
end
if Prev == "State_AboutToHitGround"
then CurDrawableSetTransitionAnimState("TRANS_AboutToHitGround_To_Idle")
end
EndScript
End
AnimationState = DYING DEATH_1
Animation = Dying
AnimationName = MUBalrog_SKL.MUBalrog_DIEA
AnimationMode = ONCE
End
ParticleSysBone = None BalrogFallDust FollowBone:No
End
AnimationState = DYING DEATH_2
Animation = FadingOut
AnimationName = MUBalrog_SKL.MUBalrog_RORC
AnimationMode = ONCE
End
End
; This is triggered by the single player only HitReaction module for the lightningsword
; It is highest instead of lowest priority, because the hit reaction Paralyzes us, where for others it is just a fancy idle.
AnimationState = HIT_LEVEL_2
Animation = Owowowowowowowow
AnimationName = MUBalrog_SKL.MUBalrog_HITB
AnimationMode = ONCE
End
End
AnimationState = EATING
Animation = DoingHorribleThingToGrabbedGuy
AnimationName = MUBalrog_SKL.MUBalrog_BRNA
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone = ZZZPassengerBon balrogHandSqueezeFlames FollowBone:Yes
ParticleSysBone = ZZZPassengerBon balrogHandSqueezeFlames2 FollowBone:Yes
ParticleSysBone = ZZZPassengerBon balrogHandSqueezeFlamesFinal FollowBone:Yes
ParticleSysBone = ZZZPassengerBon BalrogHandSqueezeFlash FollowBone:Yes
ParticleSysBone = ZZZPassengerBon BalrogHandSmoke FollowBone:Yes
ParticleSysBone = RING_2_L balrogHandAsh FollowBone:Yes
ParticleSysBone = RING_2_L balrogHandAshSmall FollowBone:Yes
End
AnimationState = UNPACKING PACKING_TYPE_3
Animation = GrabbingToTouching
AnimationName = MUBalrog_SKL.MUBalrog_GRBA
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
AnimationState = PACKING PACKING_TYPE_3
Animation = GrabbingFollowThrough
AnimationName = MUBalrog_SKL.MUBalrog_GRBC
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
AnimationState = JUST_BUILT
StateName = State_JustBuilt
Animation
AnimationName = MUBalrog_SKL.MUBalrog_RORA
AnimationMode = MANUAL
AnimationBlendTime = 0
End
End
TransitionState = TRANS_JustBuilt_To_Idle
Animation = BeingSummoned
AnimationName = MUBalrog_SKL.MUBalrog_RORA
AnimationMode = ONCE
End
End
AnimationState = FIRING_OR_PREATTACK_B
Animation = CrackThatWhip
AnimationName = MUBalrog_SKL.MUBalrog_WIPA
AnimationMode = ONCE
End
ParticleSysBone = RTHANDBONE BalrogWhip2swordEfx FollowBone:Yes
End
AnimationState = SPECIAL_POWER_1
Animation = RoaringFear
AnimationName = MUBalrog_SKL.MUBalrog_RORB
AnimationMode = ONCE
End
ParticleSysBone = BAT_JAW BalrogScreamEffect FollowBone:Yes
FXEvent = Frame:20 Name:FX_BalrogScreamEfx
ParticleSysBone = BAT_JAW balrogPixelDisplScrm FollowBone:Yes
ParticleSysBone = BAT_JAW balrogScrmEmbers FollowBone:Yes
End
AnimationState = SPECIAL_WEAPON_THREE
Animation = RoaringFear
AnimationName = MUBalrog_SKL.MUBalrog_RORB
AnimationMode = ONCE
End
ParticleSysBone = BAT_JAW BalrogScreamEffect FollowBone:Yes
FXEvent = Frame:20 Name:FX_BalrogScreamEfx
ParticleSysBone = BAT_JAW balrogPixelDisplScrm FollowBone:Yes
ParticleSysBone = BAT_JAW balrogScrmEmbers FollowBone:Yes
End
AnimationState = SPECIAL_WEAPON_ONE
Animation = BreathingFireAnimation
AnimationName = MUBalrog_SKL.MUBalrog_FIRA
AnimationMode = ONCE
End
;This is Balrog's fire breath efx
ParticleSysBone = BAT_JAW balrogFireBreath FollowBone:Yes
ParticleSysBone = BAT_JAW balrogBreathEmbers FollowBone:Yes
ParticleSysBone = BAT_JAW balrogBreathSmoke FollowBone:Yes
ParticleSysBone = BAT_JAW balrogBreathProxy FollowBone:Yes
End
AnimationState = SPECIAL_WEAPON_TWO UNPACKING
StateName = State_LeapStart
Animation = GettingReadyToLeap
AnimationName = MUBalrog_SKL.MUBalrog_JMP1
AnimationMode = ONCE
End
End
AnimationState = SPECIAL_WEAPON_TWO PACKING
Animation = FirstWingBeatGoingUp
AnimationName = MUBalrog_SKL.MUBalrog_JMP2
AnimationMode = ONCE
End
End
AnimationState = ABOUT_TO_HIT ; Before ThrownProjectile, since by definition this set for nn frames while T_P is still on
StateName = State_AboutToHitGround
Animation = StartingToLandToTouchingGround
AnimationName = MUBalrog_SKL.MUBalrog_LND1
AnimationMode = ONCE
End
End
AnimationState = THROWN_PROJECTILE
Animation = HurtlingThroughAir
AnimationName = MUBalrog_SKL.MUBalrog_FLYA
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
TransitionState = TRANS_AboutToHitGround_To_Idle
Animation = SplashAtEndOfJump
AnimationName = MUBalrog_SKL.MUBalrog_LND2
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
AnimationState = TURN_RIGHT
Animation = TurningRight
AnimationName = MUBalrog_SKL.MUBalrog_TRNA
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
AnimationState = TURN_LEFT
Animation = TurningLeft
AnimationName = MUBalrog_SKL.MUBalrog_TRNB
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
AnimationState = MOVING
Animation = Running
AnimationName = MUBalrog_SKL.MUBalrog_WLKA
AnimationMode = LOOP
AnimationBlendTime = 10
End
Flags = RANDOMSTART
FXEvent = Frame:20 FireWhenSkipped Name:FX_BalrogRightFootStep
FXEvent = Frame:44 FireWhenSkipped Name:FX_BalrogLeftFootStep
End
AnimationState = WEAPONSET_HERO_MODE UNPACKING PACKING_TYPE_1
Animation = StartIgniteRoar
AnimationName = MUBalrog_SKL.MUBalrog_IGNTA
AnimationMode = ONCE
End
End
AnimationState = HERO PACKING PACKING_TYPE_1
Animation = FinishIgniteRoar
AnimationName = MUBalrog_SKL.MUBalrog_IGNTB
AnimationMode = ONCE
End
EnteringStateFX = FX_BalrogIgniteStart
End
AnimationState = FIRING_OR_PREATTACK_A
Animation = Swipe
AnimationName = MUBalrog_SKL.MUBalrog_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
End
End
AnimationState = FIRING_OR_PREATTACK_C
Animation = Chop
AnimationName = MUBalrog_SKL.MUBalrog_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
ParticleSysBone = SWORDBONE BalrogSword FollowBone:yes
End
End
;--------------------------
Draw = W3DScriptedModelDraw ModuleTag_WhipDraw
GlowEnabled = Yes
GlowEmissive = Yes
ShadowForceDisable = Yes ;The shadow setting is for the whole drawable, but this individual draw module wants to not have a shadow.
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
ModelConditionState = FIRING_OR_PREATTACK_B
Model = MUBalsWhip_SKN
End
;------------------
IdleAnimationState
End
AnimationState = FIRING_OR_PREATTACK_B
Animation = CrackThatWhip
AnimationName = MUBalsWhip_SKL.MUBalsWhip_WIPA
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
WadingParticleSys = BalrogRiverSteam
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Balrog
;//DisplayMeleeDamage = BALROG_DAMAGE_DISPLAY
Side = Neutral
EditorSorting = UNIT
ThreatLevel = 4.0
ThingClass = CHARACTER_UNIT
CrusherLevel = 4 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushWeapon = BalrogCrush
BuildCost = BALROG_HERO_COST
BuildTime = 50
TransportSlotCount = TRANSPORTSLOTCOUNT_MONSTER
WeaponSet
Conditions = None
Weapon = PRIMARY MordorBalrogSwordSwipe
Weapon = SECONDARY MordorBalrogWhip
Weapon = TERTIARY MordorBalrogSwordChop
AutoChooseSources = SECONDARY None
OnlyAgainst = TERTIARY STRUCTURE BIG_MONSTER
End
ArmorSet
Conditions = None
Armor = BalrogArmor
DamageFX = NormalDamageFX
End
VisionRange = VISION_BALROG
ShroudClearingRange = SHROUD_CLEAR_BALROG
DisplayName = OBJECT:Balrog
ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS
CommandSet = BalrogCommandSet_A
CanPathThroughGates = No
IsTrainable = No
//Toggle CommandSet Based on Weaponset condition flags
Behavior = MonitorConditionUpdate ModuleTag_CommandSetSwapper
WeaponSetFlags = WEAPONSET_TOGGLE_1
WeaponToggleCommandSet = BalrogCommandSet_B
End
DeadCollideSize = LARGE ; How big does the AOD consider this unit for damage fx & behavior.
;------------------ AUDIO Parameters ----------------------
VoiceAttack = BalrogVoiceAttack
VoiceAttackCharge = BalrogVoiceAttack
VoiceAttackMachine = BalrogVoiceAttack
VoiceAttackStructure = BalrogVoiceAttack
VoiceGuard = BalrogVoiceMove
VoiceMove = BalrogVoiceMove
VoiceSelect = BalrogVoiceSelect
VoiceSelectBattle = BalrogVoiceSelect
SoundAmbient = BalrogAmbientLoop
SoundImpact = ImpactHorse
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
; Warn the player when the enemy gets a unit. Override the normal sighting event from StandardUnitEvaEvents.inc
EvaEnemyObjectSightedEvent = DiscoveredEnemyBalrog
ClientUpdate = EvaAnnounceClientCreate ModuleTag_CreateAnnounce
AnnouncementEventEnemy = DiscoveredEnemyBalrog
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
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_WLKA Frames: 42 17
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_TRNA Frames: 21 52
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_TRNB Frames: 21 52
AnimationSound = Sound: BalrogWhipPart1 Animation: MUBalrog_SKL.MUBalrog_WIPA Frames: 1
AnimationSound = Sound: BalrogWhipPart2 Animation: MUBalrog_SKL.MUBalrog_WIPA Frames: 21
AnimationSound = Sound: ImpactWhipCrack Animation: MUBalrog_SKL.MUBalrog_WIPA Frames: 34
AnimationSound = Sound: BalrogSwordSwipe Animation: MUBalrog_SKL.MUBalrog_ATKB Frames: 32
AnimationSound = Sound: BalrogSwordSwipe Animation: MUBalrog_SKL.MUBalrog_ATKA Frames: 32
AnimationSound = Sound: ImpactBalrogAttackGeneric Animation: MUBalrog_SKL.MUBalrog_ATKA Frames:41
AnimationSound = Sound: ImpactBalrogAttackGeneric Animation: MUBalrog_SKL.MUBalrog_ATKB Frames:40
AnimationSound = Sound: ImpactBalrogAttackGeneric Animation: MUBalrog_SKL.MUBalrog_ATKC Frames:27 53 88
AnimationSound = Sound: BalrogJump_Part1 Animation: MUBalrog_SKL.MUBalrog_JMP1 Frames: 0
AnimationSound = Sound: BalrogJump_Part2 Animation: MUBalrog_SKL.MUBalrog_JMP1 Frames: 41
AnimationSound = Sound: BalrogWingFlaps Animation: MUBalrog_SKL.MUBalrog_FLYA Frames: 9
AnimationSound = Sound: BalrogLand Animation: MUBalrog_SKL.MUBalrog_LND1 Frames: 0
AnimationSound = Sound: BalrogWingFlaps Animation: MUBalrog_SKL.MUBalrog_JMP2 Frames: 0
AnimationSound = Sound: BalrogLandSwordHit Animation: MUBalrog_SKL.MUBalrog_LND2 Frames: 6
AnimationSound = Sound: BalrogIdleB_Part3 Animation: MUBalrog_SKL.MUBalrog_LND2 Frames: 27
AnimationSound = Sound: BalrogBreathFireExhale Animation: MUBalrog_SKL.MUBalrog_FIRA Frames: 31
AnimationSound = Sound: BalrogBreathFireInhale Animation: MUBalrog_SKL.MUBalrog_FIRA Frames: 0
AnimationSound = Sound: BalrogRoar Animation: MUBalrog_SKL.MUBalrog_RORB Frames: 25
AnimationSound = Sound: BalrogVanquishedRoar Animation: MUBalrog_SKL.MUBalrog_RORC Frames: 21
AnimationSound = Sound: BalrogVanquished Animation: MUBalrog_SKL.MUBalrog_RORC Frames: 50
AnimationSound = Sound: BalrogInjuredB_Part1 Animation: MUBalrog_SKL.MUBalrog_HITB Frames: 0
AnimationSound = Sound: BalrogInjuredB_Part2 Animation: MUBalrog_SKL.MUBalrog_HITB Frames: 70
AnimationSound = Sound: BalrogChuckle Animation: MUBalrog_SKL.MUBalrog_IDLA Frames: 1
AnimationSound = Sound: BalrogContentVox Animation: MUBalrog_SKL.MUBalrog_IDLA Frames: 0
AnimationSound = Sound: BalrogIdleB_Part1 Animation: MUBalrog_SKL.MUBalrog_IDLB Frames: 0
AnimationSound = Sound: BalrogIdleB_Part2 Animation: MUBalrog_SKL.MUBalrog_IDLB Frames: 37
AnimationSound = Sound: BalrogIdleB_Part3 Animation: MUBalrog_SKL.MUBalrog_IDLB Frames: 95
AnimationSound = Sound: BalrogIdleC_Part2 Animation: MUBalrog_SKL.MUBalrog_IDLC Frames: 29
AnimationSound = Sound: BalrogIdleC_Part3 Animation: MUBalrog_SKL.MUBalrog_IDLC Frames: 60
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_IDLC Frames: 61
AnimationSound = Sound: BalrogDieVox Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 13
AnimationSound = Sound: BalrogBodyfall1 Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 56
AnimationSound = Sound: BalrogBodyfall2 Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 57
AnimationSound = Sound: OliphantFall Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 21
AnimationSound = Sound: BalrogLandSwordHit Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 54
AnimationSound = Sound: BalrogIgnite Animation: MUBalrog_SKL.MUBalrog_IGNTA Frames: 51
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS MONSTER SCORE CAN_ATTACK NO_FREEWILL_ENTER PATH_THROUGH_INFANTRY SCARY BIG_MONSTER CAN_ATTACK_WALLS
ThreatBreakdown MordorBalrog_DetailedThreat
AIKindOf = SIEGEWEAPON
End
Body = ActiveBody ModuleTag_02
MaxHealth = BALROG_HEALTH ;BALANCE Balrog Health
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = FighterHorde
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
AILuaEventsList = BalrogFunctions
End
LocomotorSet
Locomotor = BalrogLocomotor
Condition = SET_NORMAL
Speed = 50
End
Behavior = BezierProjectileBehavior ModuleTag_Projectile ; Module starts asleep, and wakes up when thrown.
; To tweak a Bezier path
FirstHeight = 104 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 52
FirstPercentIndent = 20% ; Percentage of shot distance control points are placed
SecondPercentIndent = 70%
TumbleRandomly = Yes
CrushStyle = Yes ; I don't detonate, I just hit
BounceCount = 0 ; When I hit the ground, I'll arc again
FinalStuckTime = 1766 ; Can't move for this long afterwards
GroundHitFX = FX_BalrogJumpHitGround
GroundHitWeapon = RohanGimliLeapWarhead
PreLandingStateTime = 300; Look ahead to the end of the arc, and get the ABOUT_TO_HIT flag this far in advance
End
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
End
Behavior = FireWeaponUpdate FireWeaponUpdateModuleTag
FireWeaponNugget
WeaponName = MordorBalrogHeroEffect
FireDelay = 0
OneShot = No
End
HeroModeTrigger = Yes ; this only happens when hero mode is active
End
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -FADED
DestructionDelay = 2500
FX = FINAL FX_BalrogUnsummonInitial ;FX_BalrogFinalDeath
DeathFlags = DEATH_1
End
Behavior = SlowDeathBehavior ModuleTag_FadeDeath
DeathTypes = NONE +FADED
FX = INITIAL FX_BalrogUnsummonInitial
DestructionDelay = 3800
FX = FINAL FX_BalrogUnsummonInitial ;FX_BalrogUnsummonFinal
DeathFlags = DEATH_2
End
Behavior = SpecialPowerModule ModuleTag_IgniteStarter
SpecialPowerTemplate = SpecialAbilityHeroMode
UpdateModuleStartsAttack = Yes
;InitiateSound =
End
Behavior = HeroModeSpecialAbilityUpdate ModuleTag_IgniteUpdate
SpecialPowerTemplate = SpecialAbilityHeroMode
UnpackingVariation = 1
UnpackTime = 1800
PackTime = 1600
AwardXPForTriggering = 0
HeroAttributeModifier = BalrogIgniteState
HeroEffectDuration = 30000
End
Behavior = SpecialPowerModule ModuleTag_ScreamStarter
SpecialPowerTemplate = SpecialAbilityBalrogScream
UpdateModuleStartsAttack = Yes
;InitiateSound =
End
Behavior = ModelConditionSpecialAbilityUpdate ModuleTag_ScreamUpdate ; So the difference in SpecialPower is that it takes timing from this UpdateG, instead of simply firing.
SpecialPowerTemplate = SpecialAbilityBalrogScream
UnpackTime = 1500 ; Drawing the horn
PreparationTime = 1 ; nothing
PackTime = 1800 ; Putting horn away
AwardXPForTriggering = 0
WhichSpecialPower = 1
End
Behavior = SpecialPowerModule ModuleTag_BreathStarter
SpecialPowerTemplate = SpecialAbilityBalrogBreath
UpdateModuleStartsAttack = Yes
InitiateSound = BalrogSpecialPowerRoar ;this plays on right-click target, not when Balrog leaps
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_BreathUpdate
SpecialPowerTemplate = SpecialAbilityBalrogBreath
UnpackTime = 1300 ; Drawing the horn
PackTime = 3700 ; Putting horn away
AwardXPForTriggering = 0
StartAbilityRange = 40.0
SpecialWeapon = MordorBalrogBreath
WhichSpecialWeapon = 1
End
Behavior = SpecialPowerModule ModuleTag_LeapStarter
SpecialPowerTemplate = SpecialAbilityBalrogWings
UpdateModuleStartsAttack = Yes
InitiateSound = BalrogSpecialPowerRoar ;this plays on right-click target, not when Balrog leaps
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_LeapUpdate
SpecialPowerTemplate = SpecialAbilityBalrogWings
UnpackTime = 1733 ; Drawing the horn
PackTime = 1160 ; Putting horn away
AwardXPForTriggering = 0
StartAbilityRange = 800.0
ApproachRequiresLOS = No
SpecialWeapon = MordorBalrogLeap
BusyForDuration = 3000 ; don't accept any AI for this long... ai commands will be queued
WhichSpecialWeapon = 2
End
;=============================NEW ========
;;; FIRE BALL SPECIAL POWER ;;;
Behavior = SpecialPowerModule ModuleTag_FireballStarter
SpecialPowerTemplate = SpecialAbilitySarumanFireball_BALROG
UpdateModuleStartsAttack = Yes
StartsPaused = No
SetModelCondition = ModelConditionState:USER_3
SetModelConditionTime = 1.0
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_FireballUpdate
SpecialPowerTemplate = SpecialAbilitySarumanFireball_BALROG
SkipContinue = Yes
UnpackTime = 800
PreparationTime = 1
PersistentPrepTime = 1000
PackTime = 100
AwardXPForTriggering = 0
StartAbilityRange = 900 ; Note: This has to be smaller than the weapon range or it'll never succeed
ApproachRequiresLOS = Yes
BusyForDuration = 200
WhichSpecialWeapon = 3
MustFinishAbility = Yes
SpecialWeapon = SarumanFireball_BALROG ;MordorGorgorothSpireWeapon_BALROG ;MordorCatapultRock
End
;==========END
Behavior = CreateObjectDie ModuleTag_CrushUnitsOnDeath
CreationList = OCL_BalrogDie
End
Geometry = CYLINDER
GeometryMajorRadius = 11
GeometryHeight = 32
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 22
ShadowSizeY = 22
ShadowTexture = ShadowI
End
;------------------------------------------------------------------------------
Object SarumanFireballProjectile_BALROG
; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
DefaultModelConditionState
; Model = FIRELOCATOR MUCatapult_FP01
Model = EXLavaRock04
ParticleSysBone = NONE MordorSpireFire FollowBone:Yes
ParticleSysBone = NONE MordorSpireLava FollowBone:Yes
ParticleSysBone = NONE MordorSpireLava02 FollowBone:Yes
ParticleSysBone = None FlamingRockStart
ParticleSysBone = None FlamingRockTrailLenzflare
ParticleSysBone = None FlamingRockTrailSmoke
ParticleSysBone = None GPUMordorCatapultFire
ParticleSysBone = ROOTTRANSFORM PHOENIX_Fire FollowBone:yes
ParticleSysBone = None PHOENIX_Fire FollowBone:yes
ParticleSysBone = NONE PHOENIX_Fire FollowBone:yes
ParticleSysBone ROOTTRANSFORM SarumonFireballFire FollowBone:yes
ParticleSysBone ROOTTRANSFORM SarumonFireballSmoke FollowBone:yes
End
End
; *** AUDIO Parameters ***
; ***DESIGN parameters ***
EditorSorting = SYSTEM
ArmorSet
Armor = NoArmor
End
VisionRange = 0.0
; *** ENGINEERING Parameters ***
KindOf = PROJECTILE
Body = ActiveBody ModuleTag_02
MaxHealth = 10.0
End
Behavior = DestroyDie ModuleTag_03
;nothing
End
Behavior = BezierProjectileBehavior ModuleTag_04
FirstHeight = 5 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 5
FirstPercentIndent = 20% ; Percentage of shot distance control points are placed
SecondPercentIndent = 100%
FlightPathAdjustDistPerSecond = 50 ; Can allow a max speed this can attempt to follow a target. Units are their velocity we can tag. (45 is default human speed)
DetonateCallsKill = Yes
CurveFlattenMinDist = 50.0
End
Behavior = PhysicsBehavior ModuleTag_05
KillWhenRestingOnGround = Yes
GravityMult = 0.0
End
Behavior = FXListDie ModuleTag_07
DeathTypes = ALL
DeathFX = FX_GloinShatterhammer
End
Geometry = Sphere
GeometryIsSmall = Yes
GeometryMajorRadius = 0.8
End
CommandButton Command_Construct_BALROG
Command = UNIT_BUILD
Object = MordorBalrog_NO_TIMER
Options = CANCELABLE
TextLabel = CONTROLBAR:SummonBalrog
ButtonImage = SBEvil_BalrogAlly
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:TooltipSummonBalrog
Radial = Yes
InPalantir = Yes
ShowProductionCount = Yes
End
He is basically built like a unit but with one max
When he's dead you just re-build.
Remember to add him in exp.levels
PS- the extra stuff is because i gave him another power
Hope this helps
#64
Posted 19 February 2009 - 12:01 AM
P.S. The drive to find out for yourself. What Sulherokhh said.
The fun is in trying your-self .It may take days to get you idea into the mod but when it is accomplished you feel great
Both methods will work - adding him as a hero / a buildable unit with max one .
I guess you tried and got frustrated so you came to the forum .
I agree de-bugging a simple problem may be quite frustrating but once you encounter problems use the to enhance your modding skills !
You will probablly need to just keep at you problem .My code has extra weaponry / FX so dont just copy paste the entire thing .
I only did this to save (my) time .
As for adding the button : If you are going the build unit route add this to your fortress commandset :
14 = Command_RingHeroReviveSlot
15 = Command_CreateAHeroReviveSlot // Note we also need an extra slot for the Create A Hero
16 = Command_GenericReviveSlot1
17 = Command_GenericReviveSlot2
18 = Command_GenericReviveSlot3
19 = Command_GenericReviveSlot4
20 = Command_GenericReviveSlot5
21 = Command_GenericReviveSlot6
22 = Command_GenericReviveSlot7
23 = Command_GenericReviveSlot8
24 = Command_GenericReviveSlot9
25 = Command_GenericReviveSlot10
26 = Command_GenericReviveSlot11
27 = Command_GenericReviveSlot12
28 = Command_GenericReviveSlot13
29 = Command_ConstructMordorOrcArcherHorde
30 = Command_Construct_BALROG
31 = Command_RadialBack
End
Look at your Commandbutton and commandset files for reference
Especially when INCREASING the Commandbuttons on your fortress to get more slots
I think he freezes as he needs EXP levels (experiencelevels file )
As a new modder files to get aquainted to :
1 : commandbutton
2 : commandset
3 :game data
4 : specialpower
5 : playertemplate
6 :experiencelevels
Getting to know what these do and how to mod them is important !
Then getting to know how to modify a behaviour or something in an Object file
eg removing balrog,s timer module or modifing it .
The Search engine used on the notepad/type files will show the link and how they affect other files
---
Notice it will also spawn some archer hordes (handy if only your fort remains !)
WRT giving away free codes well
Edited by JUS_SAURON, 19 February 2009 - 12:26 AM.
#65
Posted 19 February 2009 - 01:43 AM
actually im adding a lot of heroes, i learned to put buttons, portraits, use CaH codes to make new heros, use SubObjetcs show/hide stuff and some other stuff,
the balrog is working great; he even advances in level (he start at level 1) the real only problem was no animations on dying or die event is missed, something like that...
i cant rebuild him because when he dies he dont dissapear or fall, he just freeze on field and its ignored by enemy... :(
i checked the balrog code u send its like mine...
Edited by gustavowizard, 19 February 2009 - 01:52 AM.
#66
Posted 19 February 2009 - 02:22 AM
cool thanks for all that,
actually im adding a lot of heroes, i learned to put buttons, portraits, use CaH codes to make new heros, use SubObjetcs show/hide stuff and some other stuff,
the balrog is working great; he even advances in level (he start at level 1) the real only problem was no animations on dying or die event is missed, something like that...
i cant rebuild him because when he dies he dont dissapear or fall, he just freeze on field and its ignored by enemy... :(
i checked the balrog code u send its like mine...
Check this stuff :I think it works like this ,it may have something to do with how he dies
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -FADED
DestructionDelay = 2500
FX = FINAL FX_BalrogUnsummonInitial ;FX_BalrogFinalDeath
DeathFlags = DEATH_1
End
Behavior = SlowDeathBehavior ModuleTag_FadeDeath
DeathTypes = NONE +FADED
FX = INITIAL FX_BalrogUnsummonInitial
DestructionDelay = 3800
FX = FINAL FX_BalrogUnsummonInitial ;FX_BalrogUnsummonFinal
DeathFlags = DEATH_2
End
EDIT : Oh i thick i know the problem :check that he has a RESPAWN Module tag instead of a Normal Health one.Notice All the Heroes have a
RESPAWN Module for their health but a unit has a normal module :
Body = RespawnBody ModuleTag_RespawnBody AND
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
SO Try this method .Leave your balrog as is .Remove him from the Playertemplate file as a HERO
Then drop in a max simtype =1 .Then create a buttom to create him like a Horde/Ent/Rockgiant etc is created.
Then add this to your fortress commandset .
I also encountered this problem and i THINK i solved it this way .
NOT TRYING TO SELF PROMOTE BUT :
Download my mod and see how i did it for Mordor Faction .(at 3rd age in FINISHED Mods .)
JUS_SAURON ver 10
Edited by JUS_SAURON, 19 February 2009 - 02:31 AM.
#67
Posted 19 February 2009 - 03:04 AM
but now he dont advance levels looool
i dunno whats wrong
but you are helping a lot
#68
Posted 19 February 2009 - 06:28 AM
Like this:
ExperienceLevel AcosaPleasingLevel1 TargetNames = AcosaPleasing RequiredExperience = 1 ExperienceAward = RC_5K_LVL1_EXP_AWARD Rank = 1 Upgrades = Upgrade_ACPleasingLeapTrigger SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel2 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL2_EXP_NEEDED ExperienceAward = RC_5K_LVL2_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 2 AttributeModifiers = HeroLevelUpDamage1 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel3 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL3_EXP_NEEDED ExperienceAward = RC_5K_LVL3_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 3 AttributeModifiers = HeroLevelUpDamage2 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel4 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL4_EXP_NEEDED ExperienceAward = RC_5K_LVL4_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 4 AttributeModifiers = HeroLevelUpDamage3 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel5 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL5_EXP_NEEDED ExperienceAward = RC_5K_LVL5_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 5 Upgrades = Upgrade_AcosaHeroLeadership AttributeModifiers = HeroLevelUpDamage4 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel6 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL6_EXP_NEEDED ExperienceAward = RC_5K_LVL6_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 6 AttributeModifiers = HeroLevelUpDamage5 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel7 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL7_EXP_NEEDED ExperienceAward = RC_5K_LVL7_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 7 AttributeModifiers = HeroLevelUpDamage6 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel8 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL8_EXP_NEEDED ExperienceAward = RC_5K_LVL8_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 8 Upgrades = Upgrade_AcosaHeroCrippleTrigger Upgrade_ACPleasingLVL8 AttributeModifiers = HeroLevelUpDamage7 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel9 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL9_EXP_NEEDED ExperienceAward = RC_5K_LVL9_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 9 AttributeModifiers = HeroLevelUpDamage8 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End End ExperienceLevel AcosaPleasingLevel10 TargetNames = AcosaPleasing RequiredExperience = RC_5K_LVL10_EXP_NEEDED ExperienceAward = RC_5K_LVL10_EXP_AWARD LevelUpFx = FX:GandalfLevelUp1FX Rank = 10 AttributeModifiers = HeroLevelUpDamage9 SelectionDecal Texture = decal_hero_good Style = SHADOW_ALPHA_DECAL OpacityMin = 50% OpacityMax = 100% MinRadius = 40 MaxRadius = 200 MaxSelectedUnits = 40 End EndBut then you are making this for balrog i believe so you should change AcosaPleasing to MordorBalrog_NO_TIMER
#69
Posted 19 February 2009 - 09:33 AM
#70
Posted 19 February 2009 - 02:40 PM
#71
Posted 19 February 2009 - 09:23 PM
the rest is ok
i will put the balrog.ini, so its more easy
;------------------------------------------------------------------------------
; *** ART Parameters ***
; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPBalrog
; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIBalrog
DescriptionStrategic = CONTROLBAR:LW_ToolTip_WildBalrog
Draw = W3DScriptedModelDraw ModuleTag_BodyDraw
; GlowEnabled = Yes
; GlowEmissive = Yes
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
OkToChangeModelColor = Yes
ExtraPublicBone = ZZZPASSENGERBON
ExtraPublicBone = ZZZWHIPCOIL
ExtraPublicBone = SWORD
;-------------------------
DefaultModelConditionState ; Not DefaultConditionState, because that keyword copies anything in here to every other state
Model = MUBalrog_SKN
ParticleSysBone = SWORD BalrogSwordFlare FollowBone:yes ; Not SWORDBONE, because SWORD is the bone that gets art-hidden mid animation in WIPX
ParticleSysBone = SWORD BalrogSwordEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFlare FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFire FollowBone:yes
ParticleSysBone = RTWINGBONE BalrogWingSmokeLite FollowBone:yes
ParticleSysBone = LFWINGBONE BalrogWingSmokeLite FollowBone:yes
End
; This is triggered by the single player only HitReaction module for the lightningsword
ModelConditionState = HIT_LEVEL_2
Model = MUBalLIT_SKN
End
ModelConditionState = HERO
Model = MUBalIGNT_SKN
ParticleSysBone = MANEBONE BalrogManeFlare FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeEmbers FollowBone:yes
ParticleSysBone = MANEBONE BalrogManeFire FollowBone:yes
ParticleSysBone = RTWINGBONE BalrogWingEmbers FollowBone:yes
ParticleSysBone = LFWINGBONE BalrogWingEmbers FollowBone:yes
ParticleSysBone = SWORD BalrogSwordFlare FollowBone:yes ; Not SWORDBONE, because SWORD is the bone that gets art-hidden mid animation in WIPX
ParticleSysBone = SWORD BalrogSwordEmbers FollowBone:yes
ParticleSysBone = NONE BalrogIgniteHeatWave FollowBone:no
End
;-----------------
IdleAnimationState
StateName = State_Idle
Animation = Breathe
AnimationName = MUBalrog_SKL.MUBalrog_IDLA
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 20
End
Animation = LookAround
AnimationName = MUBalrog_SKL.MUBalrog_IDLB
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 2
End
Animation = SnortLikeABull
AnimationName = MUBalrog_SKL.MUBalrog_IDLC
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 1
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "State_JustBuilt"
then CurDrawableSetTransitionAnimState("TRANS_JustBuilt_To_Idle")
end
if Prev == "State_AboutToHitGround"
then CurDrawableSetTransitionAnimState("TRANS_AboutToHitGround_To_Idle")
end
EndScript
End
AnimationState = DYING DEATH_1
Animation = Dying
AnimationName = MUBalrog_SKL.MUBalrog_DIEA
AnimationMode = ONCE
End
ParticleSysBone = None BalrogFallDust FollowBone:No
End
AnimationState = DYING DEATH_2
Animation = FadingOut
AnimationName = MUBalrog_SKL.MUBalrog_RORC
AnimationMode = ONCE
End
End
; This is triggered by the single player only HitReaction module for the lightningsword
; It is highest instead of lowest priority, because the hit reaction Paralyzes us, where for others it is just a fancy idle.
AnimationState = HIT_LEVEL_2
Animation = Owowowowowowowow
AnimationName = MUBalrog_SKL.MUBalrog_HITB
AnimationMode = ONCE
End
End
AnimationState = EATING
Animation = DoingHorribleThingToGrabbedGuy
AnimationName = MUBalrog_SKL.MUBalrog_BRNA
AnimationMode = ONCE
AnimationBlendTime = 0
End
ParticleSysBone = ZZZPassengerBon balrogHandSqueezeFlames FollowBone:Yes
ParticleSysBone = ZZZPassengerBon balrogHandSqueezeFlames2 FollowBone:Yes
ParticleSysBone = ZZZPassengerBon balrogHandSqueezeFlamesFinal FollowBone:Yes
ParticleSysBone = ZZZPassengerBon BalrogHandSqueezeFlash FollowBone:Yes
ParticleSysBone = ZZZPassengerBon BalrogHandSmoke FollowBone:Yes
ParticleSysBone = RING_2_L balrogHandAsh FollowBone:Yes
ParticleSysBone = RING_2_L balrogHandAshSmall FollowBone:Yes
End
AnimationState = UNPACKING PACKING_TYPE_3
Animation = GrabbingToTouching
AnimationName = MUBalrog_SKL.MUBalrog_GRBA
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
AnimationState = PACKING PACKING_TYPE_3
Animation = GrabbingFollowThrough
AnimationName = MUBalrog_SKL.MUBalrog_GRBC
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
AnimationState = JUST_BUILT
StateName = State_JustBuilt
Animation
AnimationName = MUBalrog_SKL.MUBalrog_RORA
AnimationMode = MANUAL
AnimationBlendTime = 0
End
End
TransitionState = TRANS_JustBuilt_To_Idle
Animation = BeingSummoned
AnimationName = MUBalrog_SKL.MUBalrog_RORA
AnimationMode = ONCE
End
End
AnimationState = FIRING_OR_PREATTACK_B
Animation = CrackThatWhip
AnimationName = MUBalrog_SKL.MUBalrog_WIPA
AnimationMode = ONCE
End
ParticleSysBone = RTHANDBONE BalrogWhip2swordEfx FollowBone:Yes
End
AnimationState = SPECIAL_POWER_1
Animation = RoaringFear
AnimationName = MUBalrog_SKL.MUBalrog_RORB
AnimationMode = ONCE
End
ParticleSysBone = BAT_JAW BalrogScreamEffect FollowBone:Yes
FXEvent = Frame:20 Name:FX_BalrogScreamEfx
ParticleSysBone = BAT_JAW balrogPixelDisplScrm FollowBone:Yes
ParticleSysBone = BAT_JAW balrogScrmEmbers FollowBone:Yes
End
AnimationState = SPECIAL_WEAPON_ONE
Animation = BreathingFireAnimation
AnimationName = MUBalrog_SKL.MUBalrog_FIRA
AnimationMode = ONCE
End
;This is Balrog's fire breath efx
ParticleSysBone = BAT_JAW balrogFireBreath FollowBone:Yes
ParticleSysBone = BAT_JAW balrogBreathEmbers FollowBone:Yes
ParticleSysBone = BAT_JAW balrogBreathSmoke FollowBone:Yes
ParticleSysBone = BAT_JAW balrogBreathProxy FollowBone:Yes
End
AnimationState = SPECIAL_WEAPON_TWO UNPACKING
StateName = State_LeapStart
Animation = GettingReadyToLeap
AnimationName = MUBalrog_SKL.MUBalrog_JMP1
AnimationMode = ONCE
End
End
AnimationState = SPECIAL_WEAPON_TWO PACKING
Animation = FirstWingBeatGoingUp
AnimationName = MUBalrog_SKL.MUBalrog_JMP2
AnimationMode = ONCE
End
End
AnimationState = ABOUT_TO_HIT ; Before ThrownProjectile, since by definition this set for nn frames while T_P is still on
StateName = State_AboutToHitGround
Animation = StartingToLandToTouchingGround
AnimationName = MUBalrog_SKL.MUBalrog_LND1
AnimationMode = ONCE
End
End
AnimationState = THROWN_PROJECTILE
Animation = HurtlingThroughAir
AnimationName = MUBalrog_SKL.MUBalrog_FLYA
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
TransitionState = TRANS_AboutToHitGround_To_Idle
Animation = SplashAtEndOfJump
AnimationName = MUBalrog_SKL.MUBalrog_LND2
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
AnimationState = TURN_RIGHT
Animation = TurningRight
AnimationName = MUBalrog_SKL.MUBalrog_TRNA
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
AnimationState = TURN_LEFT
Animation = TurningLeft
AnimationName = MUBalrog_SKL.MUBalrog_TRNB
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
AnimationState = MOVING
Animation = Running
AnimationName = MUBalrog_SKL.MUBalrog_WLKA
AnimationMode = LOOP
AnimationBlendTime = 10
End
Flags = RANDOMSTART
FXEvent = Frame:20 FireWhenSkipped Name:FX_BalrogRightFootStep
FXEvent = Frame:44 FireWhenSkipped Name:FX_BalrogLeftFootStep
End
AnimationState = WEAPONSET_HERO_MODE UNPACKING PACKING_TYPE_1
Animation = StartIgniteRoar
AnimationName = MUBalrog_SKL.MUBalrog_IGNTA
AnimationMode = ONCE
End
End
AnimationState = HERO PACKING PACKING_TYPE_1
Animation = FinishIgniteRoar
AnimationName = MUBalrog_SKL.MUBalrog_IGNTB
AnimationMode = ONCE
End
EnteringStateFX = FX_BalrogIgniteStart
End
AnimationState = FIRING_OR_PREATTACK_A
Animation = Swipe
AnimationName = MUBalrog_SKL.MUBalrog_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
End
End
AnimationState = FIRING_OR_PREATTACK_C
Animation = Chop
AnimationName = MUBalrog_SKL.MUBalrog_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
ParticleSysBone = SWORDBONE BalrogSword FollowBone:yes
End
End
;--------------------------
Draw = W3DScriptedModelDraw ModuleTag_WhipDraw
GlowEnabled = Yes
GlowEmissive = Yes
ShadowForceDisable = Yes ;The shadow setting is for the whole drawable, but this individual draw module wants to not have a shadow.
; StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = None
End
ModelConditionState = FIRING_OR_PREATTACK_B
Model = MUBalsWhip_SKN
End
;------------------
IdleAnimationState
End
AnimationState = FIRING_OR_PREATTACK_B
Animation = CrackThatWhip
AnimationName = MUBalsWhip_SKL.MUBalsWhip_WIPA
AnimationMode = ONCE
AnimationBlendTime = 0
End
End
WadingParticleSys = BalrogRiverSteam
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Balrog
;//DisplayMeleeDamage = BALROG_DAMAGE_DISPLAY
Side = Neutral
EditorSorting = UNIT
ThreatLevel = BALROG_THREAT_LEVEL
BuildCost = WILD_BALROG_BUILDCOST
BuildTime = WILD_BALROG_BUILDTIME
ThingClass = CHARACTER_UNIT
CrusherLevel = 4 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushWeapon = BalrogCrush
TransportSlotCount = TRANSPORTSLOTCOUNT_MONSTER
WeaponSet
Conditions = None
Weapon = PRIMARY MordorBalrogSwordSwipe
Weapon = SECONDARY MordorBalrogWhip
Weapon = TERTIARY MordorBalrogSwordChop
AutoChooseSources = SECONDARY None
OnlyAgainst = TERTIARY STRUCTURE BIG_MONSTER
End
ArmorSet
Conditions = None
Armor = BalrogArmor
DamageFX = NormalDamageFX
End
VisionRange = VISION_BALROG
ShroudClearingRange = SHROUD_CLEAR_BALROG
DisplayName = OBJECT:WildBalrog
RecruitText = CONTROLBAR:WildBalrogRecruit
ReviveText = CONTROLBAR:WildBalrogRevive
Hotkey = CONTROLBAR:WildBalrogHotkey
ShockwaveResistance = SHOCKWAVE_RESISTANCE_ALWAYS
CommandSet = BalrogCommandSet
CommandPoints = 100
CommandPointBonus = 50
CanPathThroughGates = No
IsTrainable = No
DeadCollideSize = LARGE ; How big does the AOD consider this unit for damage fx & behavior.
;------------------ AUDIO Parameters ----------------------
VoiceAttack = BalrogVoiceAttack
VoiceAttackCharge = BalrogVoiceAttack
VoiceAttackMachine = BalrogVoiceAttack
VoiceAttackStructure = BalrogVoiceAttack
VoiceGuard = BalrogVoiceMove
VoiceMove = BalrogVoiceMove
VoiceSelect = BalrogVoiceSelect
VoiceSelectBattle = BalrogVoiceSelect
SoundAmbient = BalrogAmbientLoop
SoundImpact = ImpactHorse
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
; Warn the player when the enemy gets a unit. Override the normal sighting event from StandardUnitEvaEvents.inc
EvaEnemyObjectSightedEvent = DiscoveredEnemyBalrog
ClientUpdate = EvaAnnounceClientCreate ModuleTag_CreateAnnounce
AnnouncementEventEnemy = DiscoveredEnemyBalrog
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
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_WLKA Frames: 42 17
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_TRNA Frames: 21 52
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_TRNB Frames: 21 52
AnimationSound = Sound: BalrogWhipPart1 Animation: MUBalrog_SKL.MUBalrog_WIPA Frames: 1
AnimationSound = Sound: BalrogWhipPart2 Animation: MUBalrog_SKL.MUBalrog_WIPA Frames: 21
AnimationSound = Sound: ImpactWhipCrack Animation: MUBalrog_SKL.MUBalrog_WIPA Frames: 34
AnimationSound = Sound: BalrogSwordSwipe Animation: MUBalrog_SKL.MUBalrog_ATKB Frames: 32
AnimationSound = Sound: BalrogSwordSwipe Animation: MUBalrog_SKL.MUBalrog_ATKA Frames: 32
AnimationSound = Sound: ImpactBalrogAttackGeneric Animation: MUBalrog_SKL.MUBalrog_ATKA Frames:41
AnimationSound = Sound: ImpactBalrogAttackGeneric Animation: MUBalrog_SKL.MUBalrog_ATKB Frames:40
AnimationSound = Sound: ImpactBalrogAttackGeneric Animation: MUBalrog_SKL.MUBalrog_ATKC Frames:27 53 88
AnimationSound = Sound: BalrogJump_Part1 Animation: MUBalrog_SKL.MUBalrog_JMP1 Frames: 0
AnimationSound = Sound: BalrogJump_Part2 Animation: MUBalrog_SKL.MUBalrog_JMP1 Frames: 41
AnimationSound = Sound: BalrogWingFlaps Animation: MUBalrog_SKL.MUBalrog_FLYA Frames: 9
AnimationSound = Sound: BalrogLand Animation: MUBalrog_SKL.MUBalrog_LND1 Frames: 0
AnimationSound = Sound: BalrogWingFlaps Animation: MUBalrog_SKL.MUBalrog_JMP2 Frames: 0
AnimationSound = Sound: BalrogLandSwordHit Animation: MUBalrog_SKL.MUBalrog_LND2 Frames: 6
AnimationSound = Sound: BalrogIdleB_Part3 Animation: MUBalrog_SKL.MUBalrog_LND2 Frames: 27
AnimationSound = Sound: BalrogBreathFireExhale Animation: MUBalrog_SKL.MUBalrog_FIRA Frames: 31
AnimationSound = Sound: BalrogBreathFireInhale Animation: MUBalrog_SKL.MUBalrog_FIRA Frames: 0
AnimationSound = Sound: BalrogRoar Animation: MUBalrog_SKL.MUBalrog_RORB Frames: 25
AnimationSound = Sound: BalrogVanquishedRoar Animation: MUBalrog_SKL.MUBalrog_RORC Frames: 21
AnimationSound = Sound: BalrogVanquished Animation: MUBalrog_SKL.MUBalrog_RORC Frames: 50
AnimationSound = Sound: BalrogInjuredB_Part1 Animation: MUBalrog_SKL.MUBalrog_HITB Frames: 0
AnimationSound = Sound: BalrogInjuredB_Part2 Animation: MUBalrog_SKL.MUBalrog_HITB Frames: 70
AnimationSound = Sound: BalrogChuckle Animation: MUBalrog_SKL.MUBalrog_IDLA Frames: 1
AnimationSound = Sound: BalrogContentVox Animation: MUBalrog_SKL.MUBalrog_IDLA Frames: 0
AnimationSound = Sound: BalrogIdleB_Part1 Animation: MUBalrog_SKL.MUBalrog_IDLB Frames: 0
AnimationSound = Sound: BalrogIdleB_Part2 Animation: MUBalrog_SKL.MUBalrog_IDLB Frames: 37
AnimationSound = Sound: BalrogIdleB_Part3 Animation: MUBalrog_SKL.MUBalrog_IDLB Frames: 95
AnimationSound = Sound: BalrogIdleC_Part2 Animation: MUBalrog_SKL.MUBalrog_IDLC Frames: 29
AnimationSound = Sound: BalrogIdleC_Part3 Animation: MUBalrog_SKL.MUBalrog_IDLC Frames: 60
AnimationSound = Sound: BalrogFootstep Animation: MUBalrog_SKL.MUBalrog_IDLC Frames: 61
AnimationSound = Sound: BalrogDieVox Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 13
AnimationSound = Sound: BalrogBodyfall1 Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 56
AnimationSound = Sound: BalrogBodyfall2 Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 57
AnimationSound = Sound: OliphantFall Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 21
AnimationSound = Sound: BalrogLandSwordHit Animation: MUBalrog_SKL.MUBalrog_DIEA Frames: 54
AnimationSound = Sound: BalrogIgnite Animation: MUBalrog_SKL.MUBalrog_IGNTA Frames: 51
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS MONSTER SCORE CAN_ATTACK NO_FREEWILL_ENTER PATH_THROUGH_INFANTRY SCARY BIG_MONSTER CAN_ATTACK_WALLS SUMMONED
ThreatBreakdown MordorBalrog_DetailedThreat
AIKindOf = SIEGEWEAPON
End
Body = RespawnBody ModuleTag_RespawnBody
MaxHealth = 10 ;BALROG_HEALTH
PermanentlyKilledByFilter = NONE
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING
DeathFX = NONE ;FXList to play when killed-to-respawn
InitialSpawnFX = NONE ;FX_NazgulInitialSpawn
RespawnFX = NONE ;FX_NazgulRespawn ;FXList to play when respawning.
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP ;Respawn at this location -- and at it's exit production point if possible.
ButtonImage = HIBalrog
;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
RespawnRules = AutoSpawn:No Cost:5000 Time:115000 Health:100% ;DEFAULT VALUES
RespawnEntry = Level:2 Cost:5000 Time:115000 ; Added from 1.07 ; ;50% cost, 1x buildtime ;For other levels, only override what is different.
RespawnEntry = Level:3 Cost:6000 Time:115000 ; Added from 1.07
RespawnEntry = Level:4 Cost:7000 Time:115000 ; Added from 1.07
RespawnEntry = Level:5 Cost:8000 Time:230000 ; Added from 1.07 ; ;65% cost, 2x buildtime
RespawnEntry = Level:6 Cost:9000 Time:230000 ; Added from 1.07
RespawnEntry = Level:7 Cost:10000 Time:230000 ; Added from 1.07
RespawnEntry = Level:8 Cost:11000 Time:345000 ; Added from 1.07 ; ;80% cost, 3x buildtime
RespawnEntry = Level:9 Cost:12000 Time:345000 ; Added from 1.07
RespawnEntry = Level:10 Cost:13000 Time:345000 ; Added from 1.07
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = Hero
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
AILuaEventsList = BalrogFunctions
End
LocomotorSet
Locomotor = BalrogLocomotor
Condition = SET_NORMAL
Speed = 50
End
Behavior = BezierProjectileBehavior ModuleTag_Projectile ; Module starts asleep, and wakes up when thrown.
; To tweak a Bezier path
FirstHeight = 104 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 52
FirstPercentIndent = 20% ; Percentage of shot distance control points are placed
SecondPercentIndent = 70%
TumbleRandomly = Yes
CrushStyle = Yes ; I don't detonate, I just hit
BounceCount = 0 ; When I hit the ground, I'll arc again
FinalStuckTime = 1766 ; Can't move for this long afterwards
GroundHitFX = FX_BalrogJumpHitGround
GroundHitWeapon = RohanGimliLeapWarhead
PreLandingStateTime = 300; Look ahead to the end of the arc, and get the ABOUT_TO_HIT flag this far in advance
End
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
End
Behavior = FireWeaponUpdate FireWeaponUpdateModuleTag
FireWeaponNugget
WeaponName = MordorBalrogHeroEffect
FireDelay = 0
OneShot = No
End
HeroModeTrigger = Yes ; this only happens when hero mode is active
End
Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL -FADED
DestructionDelay = 2500
FX = FINAL FX_BalrogUnsummonInitial
DeathFlags = DEATH_1
End
Behavior = SlowDeathBehavior ModuleTag_FadeDeath
DeathTypes = NONE +FADED
FX = INITIAL FX_BalrogUnsummonInitial
DestructionDelay = 3800
FX = FINAL FX_BalrogUnsummonFinal
DeathFlags = DEATH_2
End
Behavior = SpecialPowerModule ModuleTag_IgniteStarter
SpecialPowerTemplate = SpecialAbilityHeroMode
UpdateModuleStartsAttack = Yes
;InitiateSound =
End
Behavior = HeroModeSpecialAbilityUpdate ModuleTag_IgniteUpdate
SpecialPowerTemplate = SpecialAbilityHeroMode
UnpackingVariation = 1
UnpackTime = 1800
PackTime = 1600
AwardXPForTriggering = 0
HeroAttributeModifier = BalrogIgniteState
HeroEffectDuration = 30000
End
Behavior = SpecialPowerModule ModuleTag_ScreamStarter
SpecialPowerTemplate = SpecialAbilityBalrogScream
UpdateModuleStartsAttack = Yes
;InitiateSound =
End
Behavior = ModelConditionSpecialAbilityUpdate ModuleTag_ScreamUpdate ; So the difference in SpecialPower is that it takes timing from this UpdateG, instead of simply firing.
SpecialPowerTemplate = SpecialAbilityBalrogScream
UnpackTime = 1500 ; Drawing the horn
PreparationTime = 1 ; nothing
PackTime = 1800 ; Putting horn away
AwardXPForTriggering = 0
WhichSpecialPower = 1
End
Behavior = SpecialPowerModule ModuleTag_BreathStarter
SpecialPowerTemplate = SpecialAbilityBalrogBreath
UpdateModuleStartsAttack = Yes
InitiateSound = BalrogSpecialPowerRoar ;this plays on right-click target, not when Balrog leaps
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_BreathUpdate
SpecialPowerTemplate = SpecialAbilityBalrogBreath
UnpackTime = 1300 ; Drawing the horn
PackTime = 3700 ; Putting horn away
AwardXPForTriggering = 0
StartAbilityRange = 40.0
SpecialWeapon = MordorBalrogBreath
WhichSpecialWeapon = 1
End
Behavior = SpecialPowerModule ModuleTag_LeapStarter
SpecialPowerTemplate = SpecialAbilityBalrogWings
UpdateModuleStartsAttack = Yes
InitiateSound = BalrogSpecialPowerRoar ;this plays on right-click target, not when Balrog leaps
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_LeapUpdate
SpecialPowerTemplate = SpecialAbilityBalrogWings
UnpackTime = 1733 ; Drawing the horn
PackTime = 1160 ; Putting horn away
AwardXPForTriggering = 0
StartAbilityRange = 800.0
ApproachRequiresLOS = No
SpecialWeapon = MordorBalrogLeap
BusyForDuration = 3000 ; don't accept any AI for this long... ai commands will be queued
WhichSpecialWeapon = 2
End
Behavior = CreateObjectDie ModuleTag_CrushUnitsOnDeath
CreationList = OCL_BalrogDie
End
;///////////////////
; AISpecialPowers
;///////////////////
Behavior = AISpecialPowerUpdate IgniteAI
CommandButtonName = Command_SpecialAbilityShadeChomp
SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_BUFF
End
Behavior = AISpecialPowerUpdate ScreamAI
CommandButtonName = Command_SpecialAbilityCallPack
SpecialPowerRange = 100
SpecialPowerAIType = AI_SPECIAL_POWER_BASIC_SELF_DEBUFF
End
Behavior = AISpecialPowerUpdate BreathAI
CommandButtonName = Command_SpecialAbilityDarkLordsLament
SpecialPowerAIType = AI_SPECIAL_POWER_RANGED_AOE_ATTACK
End
Geometry = CYLINDER
GeometryMajorRadius = 30.0
GeometryHeight = 70.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME ;SHADOW_DECAL ; SHADOW_VOLUME has trouble with his wings. Possibly because of the transparent bits
ShadowSizeX = 100
ShadowSizeY = 100
ShadowTexture = ShadowI
End
Edit: added codebox
Edited by Sûlherokhh, 19 February 2009 - 09:29 PM.
#72
Posted 20 February 2009 - 01:21 AM
#73
Posted 20 February 2009 - 03:15 AM
now can i make his powers only accecible on the levels i wnat?
like put a
Trigrered By = ObjectLevelX ?
is that possible?
#74
Posted 20 February 2009 - 03:32 AM
Axed Head and A.I. Coder for S.E.E. and ... stuff
".. coding is basically boring. What's fun is finding out how things work, take them apart and then put them together in ways that were not intended nor even conceived."
#75
Posted 20 February 2009 - 04:05 AM
He will not respawn LEVELLED .If this is fine then great .
IMO if one level 10 balrog is defeated by men then
men will be assured he will respawn at level 1 .
WRT levels and triggers use what sulkherokhh said.Add an upgrade at the necc. level in the EXP File
and then a trigger module that starts paused
that ALL the other normal game heroes have in the Object file.
-----
If you want him to re-spawn LEVELLED then he will need a proper respawn module .Then add him as a hero
Since EA never made one you will have to make one yourelf.
GOOD LUCK .Use this as reference
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = MAIN_HERO_HEALTH ;BALANCE MouthOfSauron Health
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = HERO_DODGE_PERCENT
End
Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;STUNNED ;Model condition to play when killed-to-respawn
DeathFX = FX_MouthOfSauronDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 3333 ;1133 ;How long DeathAnim will take.
InitialSpawnFX = FX_MouthOfSauronInitialSpawn
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnFX = FX_MouthOfSauronRespawn ;FXList to play when respawning.
RespawnAnimationTime = 2000 ;Time it takes for respawn to play.
AutoRespawnAtObjectFilter = NONE +CASTLE_KEEP ;Respawn at this location -- and at it's exit production point if possible.
ButtonImage = HIMouthSauron_res
;RespawnEntries determine the ruleset for how a character can be revived. Some units may automatically respawn, others
;may require a specific revive action performed on him. You can specify different values for each level... or use Level:Any
RespawnRules = AutoSpawn:No Cost:RESPAWN_COST Time:RESPAWN_TIME Health:100% ;DEFAULT VALUES
End
GET NEW :
FX_MouthOfSauronDieToRespawn ;FX_BalrogUnsummonInitial ;FX_BalrogUnsummonFinal :FX_BalrogFinalDeath
FX_MouthOfSauronRespawn :
HIMouthSauron_res :HIBalrog
I prefer respawning him at level 1 tho :A level 10 Balrog HERO with all powers GoodBye World of Men
EDIT :I just added pause triggers for my balrog :they look like this
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_b1
SpecialPowerTemplate = SpecialAbilityBalrogBreath
TriggeredBy = Upgrade_MouthOfSauronDissent
End
Behavior = SpecialPowerModule ModuleTag_b2
SpecialPowerTemplate = SpecialAbilityBalrogBreath
StartsPaused = Yes
UpdateModuleStartsAttack = Yes
InitiateSound = BalrogSpecialPowerRoar
End
Using mouthofsauron as my template/explevel-upgrades
Edited by JUS_SAURON, 20 February 2009 - 04:57 AM.