Jump to content


Photo

balrog hero?


  • Please log in to reply
89 replies to this topic

#61 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 18 February 2009 - 07:38 AM

thi topic is still on? whe the balrog dies it freezes and its ignored and then i cant rez him, i putted respawns entries and costs,, what i missed?

#62 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 18 February 2009 - 08:12 AM

there is no animations when his hp turns to 0, (he dont fall) he just freeze and computer ignores it lool
what i do?

#63 JUS_SAURON

JUS_SAURON

    El Shaddai

  • Members
  • 1,581 posts
  • Location:Trinidad
  • Projects: BFME2 MOD - Power Of The Ring
  •   INI Coder

Posted 18 February 2009 - 11:55 PM

This is what i did to do the same thing :make balrog a hero !
CODE


;------------------------------------------------------------------------------
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 JUS_SAURON

JUS_SAURON

    El Shaddai

  • Members
  • 1,581 posts
  • Location:Trinidad
  • Projects: BFME2 MOD - Power Of The Ring
  •   INI Coder

Posted 19 February 2009 - 12:01 AM

I could not edit above so ...

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 :

CODE
//Hero Menu
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 :thumbsupsmiley:

Edited by JUS_SAURON, 19 February 2009 - 12:26 AM.


#65 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 19 February 2009 - 01:43 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...

Edited by gustavowizard, 19 February 2009 - 01:52 AM.


#66 JUS_SAURON

JUS_SAURON

    El Shaddai

  • Members
  • 1,581 posts
  • Location:Trinidad
  • Projects: BFME2 MOD - Power Of The Ring
  •   INI Coder

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 : :thumbsupsmiley:
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 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 19 February 2009 - 03:04 AM

cool lool it worked, hes dying cool now and rezing ok
but now he dont advance levels looool
i dunno whats wrong :thumbsupsmiley:
but you are helping a lot :)

#68 Ridder Geel

Ridder Geel

    Master Yelloh

  • T3A Staff
  • 10,852 posts
  • Location:The Netherlands (AKA: Holland)
  • Projects:RC Mod + SEE + RTS Engine
  •  The Dangerous T3A Team Chamber Member
  • Division:BFME
  • Job:T3A Staff

Posted 19 February 2009 - 06:28 AM

You have not given him Experience levels have you?
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	
End
But then you are making this for balrog i believe so you should change AcosaPleasing to MordorBalrog_NO_TIMER
Ridder Geel

#69 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 19 February 2009 - 09:33 AM

yes i did, it was working before, i dont know what happened, i just changed stuff up

#70 Ridder Geel

Ridder Geel

    Master Yelloh

  • T3A Staff
  • 10,852 posts
  • Location:The Netherlands (AKA: Holland)
  • Projects:RC Mod + SEE + RTS Engine
  •  The Dangerous T3A Team Chamber Member
  • Division:BFME
  • Job:T3A Staff

Posted 19 February 2009 - 02:40 PM

So that is not the problem? or does it work now? :thumbsupsmiley:
Ridder Geel

#71 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 19 February 2009 - 09:23 PM

well he just dont advance in level (the experience bar dont appear on Palantir, as used to do before i fixed the death prb)
the rest is ok
i will put the balrog.ini, so its more easy :crazed:

;------------------------------------------------------------------------------
CODE
Object WildBalrog

; *** 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 JUS_SAURON

JUS_SAURON

    El Shaddai

  • Members
  • 1,581 posts
  • Location:Trinidad
  • Projects: BFME2 MOD - Power Of The Ring
  •   INI Coder

Posted 20 February 2009 - 01:21 AM

IsTrainable = No : I believe this has to be yes .Ensure he has the explevel ring around him .

#73 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 20 February 2009 - 03:15 AM

YEAH! that was it, presto! ty man!

now can i make his powers only accecible on the levels i wnat?
like put a
Trigrered By = ObjectLevelX ?
is that possible?

#74 Sûlherokhh

Sûlherokhh

    Sagacious Engineer

  • Project Team
  • 3,754 posts
  • Location:Central Germany
  • Projects:S.E.E., Sage A.I., Code Advisor
  •  'Axe'er of the Gordic Knot

Posted 20 February 2009 - 03:32 AM

Yes, just look at how gandalf gets his powers. The upgrades that gandalf needs for that are gained in his experience levels. Just compare his entries with yours and add what is missing. You can even reuse gandalfs upgrades for the balrog.

bannerreal01mittelit3.jpg
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 JUS_SAURON

JUS_SAURON

    El Shaddai

  • Members
  • 1,581 posts
  • Location:Trinidad
  • Projects: BFME2 MOD - Power Of The Ring
  •   INI Coder

Posted 20 February 2009 - 04:05 AM

I gave It some more thought .The method of making him a unit built instead of a hero has a draw-back
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

CODE
Body = RespawnBody ModuleTag_RespawnBody
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.


#76 gustavowizard

gustavowizard
  • Members
  • 240 posts

Posted 20 February 2009 - 09:07 AM

well i made him as a hero so i wont have that prb i guess :crazed:
the only thing i couldnt make him do yet is get his powers when i want, i tried to add behavior entrances and thins like start paused= yes but cause major crashes inside game (whats is rare, normally it crashes before enter game, what scared me a bit) then i dunno...
im kinda happy since now i made his scale .5, named him "young balrog" and lowered health (4000 to 2500, but his armor still is dam hard lol), damage of weapons (whip, and all sword damages) and some other stuff to make him not to much overpower, it also cost 10000 for the freaking goblins :p
but would be nice to learn that since im planing to add the freaking werewolf of angmar too lool (make him very small and much more weak, as a hero ;)

#77 Neth

Neth

    God's Shadow

  • Project Team
  • 930 posts
  • Projects:Taking over the world
  •  Technician of Execution

Posted 21 February 2009 - 10:25 AM

:p What do you do to the standardunitevaevnts bit? All i see is
change
#include "..\includes\StandardUnitEvaEvents.inc"

to this
#include "..\..\..\includes\StandardUnitEvaEvents.inc"

How do i do this?
Help please
sorry for being a noob :p

Edited by Nethelen Narcu, 21 February 2009 - 10:26 AM.

Posted Image
Posted Image

This face means nothing, these hands hold nothing, these lungs are empty, these eyes are blind


#78 Ridder Geel

Ridder Geel

    Master Yelloh

  • T3A Staff
  • 10,852 posts
  • Location:The Netherlands (AKA: Holland)
  • Projects:RC Mod + SEE + RTS Engine
  •  The Dangerous T3A Team Chamber Member
  • Division:BFME
  • Job:T3A Staff

Posted 21 February 2009 - 10:36 AM

Just change those lines of code, its not that hard :p
Ridder Geel

#79 Neth

Neth

    God's Shadow

  • Project Team
  • 930 posts
  • Projects:Taking over the world
  •  Technician of Execution

Posted 21 February 2009 - 10:44 AM

Ok, thanks
But i'm really embarresed now :p
I thought it would have something to do with changing the directory of the standardunitevaevents file.
Thanks,
Nethelen

*Edit - Do Ring Heros need an experiance level thingymajiggy?

Edited by Nethelen Narcu, 21 February 2009 - 11:18 AM.

Posted Image
Posted Image

This face means nothing, these hands hold nothing, these lungs are empty, these eyes are blind


#80 Ridder Geel

Ridder Geel

    Master Yelloh

  • T3A Staff
  • 10,852 posts
  • Location:The Netherlands (AKA: Holland)
  • Projects:RC Mod + SEE + RTS Engine
  •  The Dangerous T3A Team Chamber Member
  • Division:BFME
  • Job:T3A Staff

Posted 21 February 2009 - 11:24 AM

They need a Level 10 experience level, nothing more, i think you can just give them the same one as the original Ring heroes :p
Ridder Geel


Back to BFME2 & RotWK Modding


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users