Hello, I do have an issue, I do want to get rid of the notification box when haldir dies, but without removing the Hero KindOf.
Any solutions?
And another problem, I've changed his GoldenArrow so it can be used only with bow, but now my unit doesn't shoot anymore!!! ( if you set his autoability it works, but not with the cursor).
Here is the whole Haldir coding if it helps:
;/////////////////////////////////////////////START OF HALDIR/////////////////////////////////////////////
Armor HaldirArmor
Armor = DEFAULT 25%
Armor = SLASH 25%
Armor = PIERCE 15% ; ; 25; ; 20
Armor = SPECIALIST 30% ; ; 25; ; 60
Armor = CRUSH 1% ; ; 1
Armor = CAVALRY 25%
Armor = SIEGE 50%
Armor = FLAME 17% ; ; 25; ; 40
Armor = MAGIC 17% ; ; 100; ; 50
Armor = HERO 65% ;; ; 50
Armor = POISON 75%
Armor = STRUCTURAL 40%; ; 50
;FlankedPenalty = 50%
Armor = CAVALRY_RANGED 20% ; ;
End
Weapon HaldirSword ; BALANCE Haldir Sword Weapon
LeechRangeWeapon = Yes
AttackRange = STANDARD_MELEE_ATTACK_RANGE
MeleeWeapon = Yes
DelayBetweenShots = HALDIR_SWORD_DELAYBETWEENSHOTS ; time between shots, msec
PreAttackDelay = HALDIR_SWORD_PREATTACKDELAY ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
PreAttackType = PER_SHOT
FireFX = FX_GondorSwordHit
FiringDuration = HALDIR_SWORD_FIRINGDURATION ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
HitPercentage = 0 ; ;Always scatter
ScatterRadius = 10.0 ; ;
ScatterIndependently = YES ; ;
ClearNuggets
DamageNugget ; A basic Nugget that just does damage
Damage = 75
Radius = 10.0 ; ;
DelayTime = 0
DamageType = HERO
DamageFXType = SWORD_SLASH
DeathType = NORMAL
End
; ;
DamageNugget ; A basic Nugget that just does damage
Damage = 450
DamageScalar = 25% ANY +STRUCTURE
DamageScalar = 85% ANY +HERO
Radius = 2
DelayTime = 200
DamageType = HERO
DamageFXType = REFLECTED ; ;
DeathType = EXPLODED
End
End
Weapon HaldirHeroModeWeapon
LeechRangeWeapon = Yes
AttackRange = STANDARD_MELEE_ATTACK_RANGE
MeleeWeapon = Yes
DelayBetweenShots = HALDIR_SWORD_DELAYBETWEENSHOTS ; time between shots, msec
PreAttackDelay = HALDIR_SWORD_PREATTACKDELAY ; 433 is natural time of the stabbing animation.
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
FiringDuration = HALDIR_SWORD_FIRINGDURATION ;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration
RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR
FireFX = FX_GondorSwordHit
;half hero, half magic damage
DamageNugget ; A basic Nugget that just does damage
Damage = 250
Radius = 25.0
DelayTime = 0
DamageType = HERO
DamageFXType = REFLECTED ; SWORD_SLASH
DeathType = EXPLODED
End
DamageNugget ; A basic Nugget that just does damage
Damage = 250
Radius = 25.0
DelayTime = 0
DamageType = MAGIC
DamageFXType = MAGIC
DeathType = EXPLODED
End
End
ModifierList HaldirHeroMode ;LurtzCarnage xDDDDDDDD
Category = WEAPON
Modifier = ARMOR 50% ; ;20% // Additive. Sum of these are subtracted from all entries in Armor.ini
Modifier = RATE_OF_FIRE 150% // Multiplicitive. Damage multiplied by this, will compound in multiple bonuses
Modifier = DAMAGE_MULT 150%
Duration = 15000 ; ;30000 // lasts for 30 seconds
FX = FX_LurtzBloodRage
End
Weapon HaldirBow
AttackRange = 425
RangeBonusMinHeight = 10
RangeBonus = 1
RangeBonusPerFoot = 1 ; ;#MULTIPLY( HALDIR_BOW_RANGE .01 )
WeaponSpeed = 321 ; dist/sec
MinWeaponSpeed = 241
MaxWeaponSpeed = 481 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
FireFX = FX_RohanArcherBowWeapon
ScaleWeaponSpeed = Yes ; Used for lob weapons, scales speed proportional to range
HitPercentage = 100 ;When this weapon is used it will hit exactly 100% of the time.
ScatterRadius = 5.0 ;When this weapon misses it can randomly miss by as much as this distance.
AcceptableAimDelta = 20 ; prevent twitchy reaiming in horde on horde
DelayBetweenShots = LEGOLAS_DELAYBETWEENSHOTS ; time between shots, msec
PreAttackDelay = LEGOLAS_PREATTACKDELAY ; 1467 is the prep time for archer.
PreAttackType = PER_POSITION ; Do the delay each time we attack a new target
FiringDuration = LEGOLAS_FIRINGDURATION ; Duration of the archer firing shot is 500ms.
ClipSize = 1
AutoReloadsClip = Yes
AutoReloadWhenIdle = 1
ClipReloadTime = Min:LEGOLAS_RELOADTIME_MIN Max:LEGOLAS_RELOADTIME_MAX
ContinuousFireOne = 0
ContinuousFireCoast = LEGOLAS_RELOADTIME_MAX
InstantLoadClipOnActivate = Yes
AntiAirborneVehicle = Yes
AntiAirborneMonster = Yes
CanFireWhileMoving = Yes
ProjectileNugget ; Default Arrow
ProjectileTemplateName = GoodFactionArrow
WarheadTemplateName = HaldirBowWarhead
End
End
CommandButton Command_FiresOfDoom
Command = SPECIAL_POWER
SpecialPower = SpecialAbilityLurtzCarnage
Options = NONE
TextLabel = CONTROLBAR:SpecialAbilityLurtzCarnage
ButtonImage = HSLurtzCarnageAbility
ButtonBorderType = ACTION
RadiusCursorType = NONE
DescriptLabel = CONTROLBAR:ToolTipSpecialAbilityLurtzCarnage
DisableOnModelCondition = WEAPONSET_TOGGLE_1 ; enable if currently using sword
InPalantir = Yes
AutoAbility = Yes
PresetRange = 50.0
UnitSpecificSound = LurtzVoiceAttackCharge
End
CommandButton Command_ToggleHaldirWeapon
Command = TOGGLE_WEAPONSET
Options = TOGGLE_IMAGE_ON_WEAPONSET OK_FOR_MULTI_SELECT
FlagsUsedForToggle = WEAPONSET_TOGGLE_1
TextLabel = CONTROLBAR:ToggleElvenWarriorWeapons
ButtonImage = UCElven_Bow UCElven_Sword
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:ToolTipToggleElvenWarriorWeapons
InPalantir = Yes
UnitSpecificSound = HaldirVoiceModeBow HaldirVoiceModeSword
DisableOnModelCondition = HERO
End
CommandButton Command_HaldirGoldenArrow
Command = SPECIAL_POWER
SpecialPower = SpecialAbilityHaldirGoldenArrow
Options = NEED_TARGET_ENEMY_OBJECT NEED_TARGET_NEUTRAL_OBJECT
TextLabel = CONTROLBAR:HaldirGoldenArrow
DescriptLabel = CONTROLBAR:ToolTipHaldirGoldenArrow
ButtonImage = HSHaldirGoldenArrow
ButtonBorderType = ACTION
InPalantir = Yes
AutoAbility = Yes
PresetRange = HALDIR_BOW_RANGE
CursorName = Bombard
InvalidCursorName = GenericInvalid
DisableOnModelCondition = HERO
EnableOnModelCondition = WEAPONSET_TOGGLE_1
End
CommandSet NewHaldirCommandSet
1 = Command_ToggleStance
2 = Command_ToggleHaldirWeapon
3 = Command_HaldirFakeLeadershipButton
4 = Command_FiresOfDoom
5 = Command_HaldirGoldenArrow
12 = Command_CaptureBuilding
13 = Command_AttackMove
14 = Command_Stop
End
;;;;;;;;;;;;;;;;;;;
;;;HALDIR object;;;
;;;;;;;;;;;;;;;;;;;
Object ElvenHaldir
End
ChildObject ElvenHaldir_Summoned ElvenHaldir
; *** ART Parameters ***
SelectPortrait = HPHaldir
ButtonImage = HIHaldir
DescriptionStrategic = CONTROLBAR:LW_ToolTip_Haldir
ReplaceModule ModuleTag_DRAW
Draw = W3DScriptedModelDraw ModuleTag_DRAWNEW
StaticModelLODMode = yes
OkToChangeModelColor = Yes
; Sword version
DefaultModelConditionState
Model = EUHaldir_SKN
Skeleton = EUHaldir_SKL
WeaponLaunchBone = PRIMARY ARROW
End
; Bow version
ModelConditionState = WEAPONSET_TOGGLE_1
Model = EUHaldir_SKN
Skeleton = EUHaldir_SKL
End
AnimationState = PASSENGER WEAPONSET_TOGGLE_1
StateName = STATE_Grabbed
Animation = Bow
AnimationName = EUHaldir_FLYA
AnimationMode = LOOP
End
End
AnimationState = PASSENGER
StateName = STATE_Grabbed
Animation = Sword
AnimationName = EUHaldir_FLYB
AnimationMode = LOOP
End
End
AnimationState = FREEFALL WEAPONSET_TOGGLE_1
StateName = STATE_Falling
Animation = Bow
AnimationName = EUHaldir_FLYA
AnimationMode = LOOP
AnimationBlendTime = 10
AnimationSpeedFactorRange = 0.5 0.5
End
End
AnimationState = FREEFALL
StateName = STATE_Falling
Animation = Sword
AnimationName = EUHaldir_FLYB
AnimationMode = LOOP
AnimationBlendTime = 10
AnimationSpeedFactorRange = 0.24 0.24
End
End
AnimationState = STUNNED_FLAILING WEAPONSET_TOGGLE_1
StateName = STATE_Fly
Animation
AnimationName = EUHaldir_FLYA
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.4 0.6
End
Flags = MAINTAIN_FRAME_ACROSS_STATES2
End
AnimationState = STUNNED_FLAILING
StateName = STATE_Fly
Animation = Sword
AnimationName = EUHaldir_FLYB
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.4 0.6
End
Flags = MAINTAIN_FRAME_ACROSS_STATES2
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "Ready_Bow" or PrevState == "Moving_Bow" or PrevState == "Bored_Bow"
then
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "WantSword"
elseif PrevState == "STATE_Fly"
then
if PrevAnim == "Bow" or PrevAnim == "WantSword"
then
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "WantSword"
end
end
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
return "Sword"
EndScript
End
AnimationState = DYING DEATH_1 SPLATTED WEAPONSET_TOGGLE_1
StateName = STATE_Dead
Animation = Bow
AnimationName = EUHaldir_LNDA
AnimationMode = ONCE
End
End
AnimationState = DYING DEATH_1 SPLATTED
StateName = STATE_Dead
Animation = Sword
AnimationName = EUHaldir_LNDB
AnimationMode = ONCE
End
End
AnimationState = DYING DEATH_1 WEAPONSET_TOGGLE_1
Animation = Bow1
AnimationName = EUHaldir_DIEBV5
AnimationMode = ONCE
End
Animation = Bow2
AnimationName = EUHaldir_DIEBV5
AnimationMode = ONCE
End
Animation = WantBow
AnimationName = EUHaldir_LNDA
AnimationMode = ONCE
End
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "STATE_Fly"
then
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
return "WantBow"
end
if GetClientRandomNumberReal(0,2) < 1
then
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "Bow1"
else
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "Bow2"
end
EndScript
End
AnimationState = DYING DEATH_1
Animation = Sword1
AnimationName = EUHaldir_DIESv5
AnimationMode = ONCE
End
Animation = Sword2
AnimationName = EUHaldir_DIESV5
AnimationMode = ONCE
End
Animation = WantSword
AnimationName = EUHaldir_LNDB
AnimationMode = ONCE
End
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "STATE_Fly"
then
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "WantSword"
end
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
if GetClientRandomNumberReal(0,2) < 1
then
return "Sword1"
else
return "Sword2"
end
EndScript
End
AnimationState = DYING DEATH_2 WEAPONSET_TOGGLE_1
Animation = FadeOut
AnimationName = EUHaldir_DIEBV5
AnimationMode = ONCE
End
End
AnimationState = DYING DEATH_2
Animation = FadeOut
AnimationName = EUHaldir_DIESV5
AnimationMode = LOOP
End
End
AnimationState = STUNNED_STANDING_UP WEAPONSET_TOGGLE_1
StateName = STATE_GetUp
Animation = Bow
AnimationName = EUHaldir_GTPB
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.42 1.42
End
Animation = WantBow
AnimationName = EUHaldir_GTPSX1
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES4
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "STATE_GetUp" or PrevState == "STATE_Land"
then
if PrevAnim == "WantBow" or PrevAnim == "Sword"
then
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
return "WantBow"
end
else
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "Bow"
end
EndScript
End
AnimationState = STUNNED_STANDING_UP
StateName = STATE_GetUp
Animation = Sword
AnimationName = EUHaldir_GTPSX1
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.2 1.2
End
Animation = WantSword
AnimationName = EUHaldir_GTPB
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES4
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "STATE_GetUp" or PrevState == "STATE_Land"
then
if PrevAnim == "Bow" or PrevAnim == "WantSword"
then
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "WantSword"
end
end
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
return "Sword"
EndScript
End
AnimationState = STUNNED WEAPONSET_TOGGLE_1
StateName = STATE_Land
Animation = Bow
AnimationName = EUHaldir_LNDA
AnimationMode = ONCE
End
Animation = WantBow
AnimationName = EUHaldir_LNDB
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES3
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "STATE_Fly"
then
if PrevAnim == "WantBow" or PrevAnim == "Sword"
then
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
return "WantBow"
end
end
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "Bow"
EndScript
End
AnimationState = STUNNED
StateName = STATE_Land
Animation = Sword
AnimationName = EUHaldir_LNDB
AnimationMode = ONCE
End
Animation = WantSword
AnimationName = EUHaldir_LNDA
AnimationMode = ONCE
End
BeginScript
PrevState = CurDrawablePrevAnimationState()
PrevAnim = CurDrawablePrevAnimation()
if PrevState == "STATE_Fly"
then
if PrevAnim == "WantSword" or PrevAnim == "Bow"
then
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
return "WantSword"
end
end
Flags = MAINTAIN_FRAME_ACROSS_STATES3
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
return "Sword"
EndScript
End
AnimationState = PARALYZED
Animation
AnimationName = EUHaldir_IDLF
AnimationMode = LOOP
End
End
AnimationState = FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1
StateName = Attacking_Bow
Animation
AnimationName = EUHaldir_ATA2
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 20
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("ArrowNock")
EndScript
End
AnimationState = FIRING_OR_PREATTACK_A
StateName = Ready_Sword
Animation = AttackWithSwordA
AnimationName = EUHaldir_ATKSV2
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = AttackWithSwordB
AnimationName = EUHaldir_ATKSV2
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = AttackWithSwordD
AnimationName = EUHaldir_ATKSV4
AnimationMode = ONCE
UseWeaponTiming = Yes
End
BeginScript
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
EndScript
End
; --- Attacking Anims [Weapon_A] Carnage
AnimationState = FIRING_OR_PREATTACK_A HERO ; Carnage Mode
Animation = AttackWithSwordA
AnimationName = EUHaldir_ATKSV2
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = AttackWithSwordB
AnimationName = EUHaldir_ATKSV2
AnimationMode = ONCE
UseWeaponTiming = Yes
End
Animation = AttackWithSwordD
AnimationName = EUHaldir_ATKSV4
AnimationMode = ONCE
UseWeaponTiming = Yes
End
StateName = SwordReady
End
AnimationState = SPECIAL_WEAPON_ONE
Animation
AnimationName = EUHaldir_SPCA
AnimationMode = ONCE
End
FrameForPristineBonePositions = 60
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
EndScript
End
AnimationState = MOVING WEAPONSET_TOGGLE_1
StateName = Moving_Bow
Animation
AnimationName = EUHaldir_RUNB
AnimationMode = LOOP
End
Flags = RANDOMSTART
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
Prev = CurDrawablePrevAnimationState()
if Prev == "Moving_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Moving") end
EndScript
End
AnimationState = MOVING
StateName = Moving_Sword
Animation
AnimationName = EUHaldir_RUNS
AnimationMode = LOOP
End
Flags = RANDOMSTART
BeginScript
CurDrawableHideSubObject("arrow")
CurDrawableHideSubObject("arrownock")
Prev = CurDrawablePrevAnimationState()
if Prev == "Moving_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword_Moving") end
EndScript
End
AnimationState = PREATTACK_A WEAPONSET_TOGGLE_1
Animation = ReadyToDrawn
AnimationName = EUHaldir_ATA1
AnimationMode = ONCE
AnimationBlendTime = 0
UseWeaponTiming = Yes
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("ArrowNock")
EndScript
End
AnimationState = FIRING_OR_RELOADING_A WEAPONSET_TOGGLE_1
StateName = STATE_Firing
Animation
AnimationName = EUHaldir_ATA2
AnimationMode = ONCE
AnimationBlendTime = 30
UseWeaponTiming = Yes
AnimationSpeedFactorRange = 1.5 1.5
End
Flags = START_FRAME_FIRST
BeginScript
CurDrawableHideSubObject("arrow")
CurDrawableHideSubObject("ArrowNock")
EndScript
End
AnimationState = MOVING BACKING_UP WEAPONSET_TOGGLE_1
StateName = STATE_BackingUp
Animation = Bow
AnimationName = EUHaldir_BAKB
AnimationMode = LOOP
End
Animation = WantBow
AnimationName = EUHaldir_BAKS
AnimationMode = LOOP
End
Flags = MAINTAIN_FRAME_ACROSS_STATES4
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
PrevAnim = CurDrawablePrevAnimation()
PrevState = CurDrawablePrevAnimationState()
if PrevState == "STATE_BackingUp"
then
if PrevAnim == "WantBow" or PrevAnim == "Sword"
then
return "WantBow"
end
end
return "Bow"
EndScript
End
AnimationState = MOVING BACKING_UP
StateName = STATE_BackingUp
Animation = Sword
AnimationName = EUHaldir_BAKS
AnimationMode = LOOP
End
Animation = WantSword
AnimationName = EUHaldir_BAKS
AnimationMode = LOOP
End
Flags = MAINTAIN_FRAME_ACROSS_STATES4
BeginScript
CurDrawableHideSubObject("ARROW")
CurDrawableHideSubObject("ARROWNOCK")
PrevAnim = CurDrawablePrevAnimation()
PrevState = CurDrawablePrevAnimationState()
if PrevState == "STATE_BackingUp"
then
if PrevAnim == "Bow" or PrevAnim == "WantSword"
then
return "WantSword"
end
end
return "Sword"
EndScript
End
AnimationState = CONTINUOUS_FIRE_MEAN
Animation = HangFrameWhileCoasting
AnimationName = EUHaldir_ATA2
AnimationMode = MANUAL
AnimationBlendTime = 20
End
Flags = START_FRAME_LAST
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("ARROWNOCK")
if CurDrawablePrevAnimationState() == "STATE_Firing" then CurDrawableAllowToContinue() end
EndScript
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
;;;; VERY IMPORTANT ARCHER INFORMATION
;;;; THIS WILL STOP THE JITTERS, AND BEST
;;;; YET, IT'S A COMPLETE HACK! Just look above.
;;;; We say that if we get into this state
;;;; from firing, just continue to fire. DONE.
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
End
AnimationState = CONTINUOUS_FIRE_SLOW
StateName = Ready_Bow
Animation = PutAwayArrow
AnimationName = EUHaldir_ATA3
AnimationMode = ONCE
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("ARROWNOCK")
EndScript
End
AnimationState = ATTACKING WEAPONSET_TOGGLE_1
StateName = Ready_Bow
Animation = IDLB
AnimationName = EUHaldir_IDLB
AnimationMode = LOOP
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "Bored_Bow" then CurDrawableSetTransitionAnimState("TRANS_BR_Bow") end
if Prev == "Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToReady_Bow") end
if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
end
EndScript
End
AnimationState = ATTACKING
StateName = Ready_Sword
Animation = Alert_1
AnimationName = EUHaldir_IDLST1
AnimationMode = LOOP
End
BeginScript
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
if Prev == "Bored_Sword" then CurDrawableSetTransitionAnimState("TRANS_BR_Sword") end
if Prev == "Selected_Bow" or Prev == "Moving_Bow" or Prev == "Ready_Bow" or Prev == "Bored_Bow" or PrevAnim == "WantSword"
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Ready")
end
EndScript
End
AnimationState = ENGAGED WEAPONSET_TOGGLE_1
StateName = Ready_Bow
Animation = IDLB
AnimationName = EUHaldir_IDLB
AnimationMode = LOOP
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "Bored_Bow" then CurDrawableSetTransitionAnimState("TRANS_BR_Bow") end
if Prev == "Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToReady_Bow") end
if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
end
EndScript
End
AnimationState = ENGAGED
StateName = Ready_Sword
Animation = Alert_1
AnimationName = EUHaldir_IDLST1
AnimationMode = LOOP
End
BeginScript
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
if Prev == "Bored_Sword" then CurDrawableSetTransitionAnimState("TRANS_BR_Sword") end
if Prev == "Selected_Bow" or Prev == "Moving_Bow" or Prev == "Ready_Bow" or Prev == "Bored_Bow" or PrevAnim == "WantSword"
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Ready")
end
EndScript
End
AnimationState = EMOTION_ALERT WEAPONSET_TOGGLE_1
StateName = Ready_Bow
Animation = IDLB
AnimationName = EUHaldir_IDLB
AnimationMode = LOOP
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "Bored_Bow" then CurDrawableSetTransitionAnimState("TRANS_BR_Bow") end
if Prev == "Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToReady_Bow") end
if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
end
EndScript
End
AnimationState = EMOTION_ALERT
StateName = Ready_Sword
Animation = Alert_1
AnimationName = EUHaldir_IDLST1
AnimationMode = LOOP
End
BeginScript
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
CurDrawableHideSubObject("ArrowNock")
CurDrawableHideSubObject("arrow")
if Prev == "Bored_Sword" then CurDrawableSetTransitionAnimState("TRANS_BR_Sword") end
if Prev == "Selected_Bow" or Prev == "Moving_Bow" or Prev == "Ready_Bow" or Prev == "Bored_Bow" or PrevAnim == "WantSword"
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Ready")
end
EndScript
End
AnimationState = EMOTION_CELEBRATING WEAPONSET_TOGGLE_1
StateName = STATE_Emotion_Bow
Animation = Bow
AnimationName = EUHaldir_CHRB
AnimationMode = ONCE
End
Animation = Bow2
AnimationName = EUHaldir_CHRB
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
BeginScript
PrevState = CurDrawablePrevAnimationState()
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
if PrevState == "STATE_Emotion_Sword"
then
CurDrawableAllowToContinue()
if( CurDrawablePrevAnimFraction() > .89 )
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
end
elseif PrevState == "STATE_Emotion_Bow"
then
CurDrawableAllowToContinue()
elseif PrevState == "Selected_Bow"
then
CurDrawableSetTransitionAnimState("TRANS_SelectedToReady_Bow")
end
EndScript
End
AnimationState = EMOTION_CELEBRATING
StateName = STATE_Emotion_Sword
Animation = Sword
AnimationName = EUHaldir_CHRS
AnimationMode = ONCE
End
Animation = Sword2
AnimationName = EUHaldir_CHRS
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
BeginScript
PrevState = CurDrawablePrevAnimationState()
CurDrawableHideSubObject("arrow")
CurDrawableHideSubObject("arrownock")
if PrevState == "STATE_Emotion_Bow"
then
CurDrawableAllowToContinue()
if( CurDrawablePrevAnimFraction() > .89 )
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Ready")
end
elseif PrevState == "STATE_Emotion_Sword"
then
CurDrawableAllowToContinue()
elseif PrevState == "Bored_Sword"
then
CurDrawableSetTransitionAnimState("TRANS_BR_Sword")
end
EndScript
End
AnimationState = EMOTION_TAUNTING WEAPONSET_TOGGLE_1
StateName = STATE_Emotion_Bow
Animation = Bow1
AnimationName = EUHaldir_TNTA
AnimationMode = ONCE
End
Animation = Bow2
AnimationName = EUHaldir_TNTA
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
PrevState = CurDrawablePrevAnimationState()
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
if PrevState == "STATE_Emotion_Sword"
then
CurDrawableAllowToContinue()
if( CurDrawablePrevAnimFraction() > .89 )
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
end
elseif PrevState == "STATE_Emotion_Bow"
then
CurDrawableAllowToContinue()
elseif PrevState == "Selected_Bow"
then
CurDrawableSetTransitionAnimState("TRANS_SelectedToReady_Bow")
elseif PrevState == "Bored_Bow"
then
CurDrawableSetTransitionAnimState("TRANS_BR_Bow")
end
EndScript
End
AnimationState = EMOTION_TAUNTING
StateName = STATE_Emotion_Sword
Animation = Sword
AnimationName = EUHaldir_TNTB
AnimationMode = ONCE
End
Animation = Sword2
AnimationName = EUHaldir_TNTB
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
PrevState = CurDrawablePrevAnimationState()
CurDrawableHideSubObject("arrow")
CurDrawableHideSubObject("arrownock")
if PrevState == "STATE_Emotion_Bow"
then
CurDrawableAllowToContinue()
if( CurDrawablePrevAnimFraction() > .89 )
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Ready")
end
elseif PrevState == "STATE_Emotion_Sword"
then
CurDrawableAllowToContinue()
elseif PrevState == "Bored_Sword"
then
CurDrawableSetTransitionAnimState("TRANS_BR_Sword")
end
EndScript
End
AnimationState = EMOTION_POINTING WEAPONSET_TOGGLE_1
StateName = STATE_Emotion_Bow
Animation = Bow
AnimationName = EUHaldir_PNTA
AnimationMode = ONCE
End
Animation = Bow2
AnimationName = EUHaldir_PNTA
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
BeginScript
PrevState = CurDrawablePrevAnimationState()
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
if PrevState == "STATE_Emotion_Sword"
then
CurDrawableAllowToContinue()
if( CurDrawablePrevAnimFraction() > .89 )
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Ready")
end
elseif PrevState == "STATE_Emotion_Bow"
then
CurDrawableAllowToContinue()
elseif PrevState == "Selected_Bow"
then
CurDrawableSetTransitionAnimState("TRANS_SelectedToReady_Bow")
elseif PrevState == "Bored_Bow"
then
CurDrawableSetTransitionAnimState("TRANS_BR_Bow")
end
EndScript
End
AnimationState = EMOTION_POINTING
StateName = STATE_Emotion_Sword
Animation = Sword
AnimationName = EUHaldir_PNTB
AnimationMode = ONCE
End
Animation = Sword2
AnimationName = EUHaldir_PNTB
AnimationMode = ONCE
End
Flags = MAINTAIN_FRAME_ACROSS_STATES RESTART_ANIM_WHEN_COMPLETE
BeginScript
PrevState = CurDrawablePrevAnimationState()
CurDrawableHideSubObject("arrow")
CurDrawableHideSubObject("arrownock")
if PrevState == "STATE_Emotion_Bow"
then
CurDrawableAllowToContinue()
if( CurDrawablePrevAnimFraction() > .89 )
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Ready")
end
elseif PrevState == "STATE_Emotion_Sword"
then
CurDrawableAllowToContinue()
elseif PrevState == "Bored_Sword"
then
CurDrawableSetTransitionAnimState("TRANS_BR_Sword")
end
EndScript
End
AnimationState = HIT_REACTION HIT_LEVEL_1 WEAPONSET_TOGGLE_1
StateName = Bored_Bow
Animation
AnimationName = EUHaldir_HITA
AnimationMode = ONCE
AnimationSpeedFactorRange = .9 .9
End
End
AnimationState = HIT_REACTION HIT_LEVEL_1
StateName = Bored_Sword
Animation
AnimationName = EUHaldir_HITE
AnimationMode = ONCE
End
End
AnimationState = RAISING_FLAG WEAPONSET_TOGGLE_1
StateName = STATE_Emotion_Bow
Animation = Bow
AnimationName = EUHaldir_CHRB
AnimationMode = ONCE
End
Animation = Bow2
AnimationName = EUHaldir_CHRB
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = SELECTED WEAPONSET_TOGGLE_1
StateName = Selected_Bow
Animation = ATNE
AnimationName = EUHaldir_ATNE
AnimationMode = LOOP
End
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion_Bow" or Prev == "STATE_Emotion_Sword" then CurDrawableAllowToContinue() end
if Prev == "Bored_Bow" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelected_Bow") end
if Prev == "Ready_Bow" then CurDrawableSetTransitionAnimState("TRANS_RS_Bow") end
if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Selected")
end
EndScript
End
AnimationState = RAISING_FLAG
StateName = STATE_Emotion_Sword
Animation = Sword
AnimationName = EUHaldir_CHRS
AnimationMode = ONCE
End
Animation = Sword2
AnimationName = EUHaldir_CHRS
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = SELECTED
StateName = Selected_Sword
Animation = ATNA
AnimationName = EUHaldir_ATNS
AnimationMode = LOOP
End
BeginScript
CurDrawableHideSubObject("ARROW")
CurDrawableHideSubObject("ARROWNOCK")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Emotion_Bow" or Prev == "STATE_Emotion_Sword" then CurDrawableAllowToContinue() end
if Prev == "Bored_Sword" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelected_Sword") end
if Prev == "Ready_Sword" then CurDrawableSetTransitionAnimState("TRANS_ReadyToSelected_Sword") end
if Prev == "Selected_Bow" or Prev == "Moving_Bow" or Prev == "Ready_Bow" or Prev == "Bored_Bow" or PrevAnim == "WantSword" or PrevAnim == "EUHaldir_STHB"
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Selected")
end
EndScript
End
IdleAnimationState
StateName = Bored_Sword
Animation = Idle_Sword1
AnimationName = EUHaldir_IDLF
AnimationMode = ONCE
End
Animation = Idle_Sword2
AnimationName = EUHaldir_IDLF
AnimationMode = ONCE
End
Animation = Idle_Sword3
AnimationName = EUHaldir_IDLF
AnimationMode = ONCE
End
Animation = IdleNoFidget
AnimationName = EUHaldir_IDLF
AnimationMode = ONCE
AnimationPriority = 20
End
Animation = IdleNoFidget2
AnimationName = EUHaldir_IDLF
AnimationMode = ONCE
AnimationPriority = 0
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
CurDrawableHideSubObject("ARROW")
CurDrawableHideSubObject("ARROWNOCK")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "TRANS_SelectedToBored_Sword" or Prev == "TRANS_RB_Sword" then return "IdleNoFidget" end
if Prev == "Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBored_Sword") end
if Prev == "Ready_Sword" then CurDrawableSetTransitionAnimState("TRANS_RB_Sword") end
if Prev == "Selected_Bow" or Prev == "Moving_Bow" or Prev == "Ready_Bow" or Prev == "Bored_Bow" or PrevAnim == "WantSword"
then
CurDrawableSetTransitionAnimState("TRANS_BowToSword_Selected")
end
EndScript
End
AnimationState = WEAPONSET_TOGGLE_1
StateName = Bored_Bow
Animation = IdleBowB
AnimationName = EUHaldir_IDLE
AnimationMode = ONCE
End
Animation = IdleBowD
AnimationName = EUHaldir_IDLE
AnimationMode = ONCE
End
Animation = IdleNoFidget
AnimationName = EUHaldir_IDLE
AnimationMode = ONCE
AnimationPriority = 20
End
Animation = IdleNoFidget2
AnimationName = EUHaldir_IDLE
AnimationMode = ONCE
AnimationPriority = 10
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
CurDrawableShowSubObject("arrow")
CurDrawableShowSubObject("arrownock")
PrevAnim = CurDrawablePrevAnimation()
Prev = CurDrawablePrevAnimationState()
if Prev == "TRANS_SelectedToBored_Bow" or Prev == "TRANS_RB_Bow" then return "IdleNoFidget" end
if Prev == "Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBored_Bow") end
if Prev == "Ready_Bow" then CurDrawableSetTransitionAnimState("TRANS_RB_Bow") end
if Prev == "Selected_Sword" or Prev == "Moving_Sword" or Prev == "Ready_Sword" or Prev == "Bored_Sword" or PrevAnim == "WantBow"
then
CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Selected")
end
EndScript
End
; Transitions
TransitionState = TRANS_BoredToSelected_Bow
Animation
AnimationName = EUHaldir_ATNB
AnimationMode = ONCE
AnimationBlendTime = 10
End
End
TransitionState = TRANS_SelectedToReady_Bow
Animation = ATNE
AnimationName = EUHaldir_IDLB
AnimationMode = ONCE
AnimationBlendTime = 10
End
End
TransitionState = TRANS_SelectedToBored_Bow
Animation
AnimationName = EUHaldir_ATNB
AnimationMode = ONCE_BACKWARDS
End
Flags = START_FRAME_LAST
End
TransitionState = TRANS_RS_Bow
Animation = ATNF
AnimationName = EUHaldir_IDLB
AnimationMode = ONCE_BACKWARDS
AnimationBlendTime = 10
End
Flags = START_FRAME_LAST
End
TransitionState = TRANS_BR_Bow
Animation = IDLB
AnimationName = EUHaldir_IDLST1
AnimationMode = ONCE
AnimationBlendTime = 20
End
End
TransitionState = TRANS_RB_Bow
Animation = IDLD
AnimationName = EUHaldir_IDLB
AnimationMode = ONCE
AnimationBlendTime = 20
End
End
TransitionState = TRANS_BoredToSelected_Sword
Animation = ATNA
AnimationName = EUHaldir_ATNA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SR_Sword
Animation = ATNC
AnimationName = EUHaldir_STHA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedToBored_Sword
Animation = ATNA
AnimationName = EUHaldir_ATNA
AnimationMode = ONCE_BACKWARDS
End
Flags = START_FRAME_LAST
End
TransitionState = TRANS_ReadyToSelected_Sword
Animation = ATNC
AnimationName = EUHaldir_IDLST1
AnimationMode = ONCE_BACKWARDS
AnimationBlendTime = 20
End
Flags = START_FRAME_LAST
End
TransitionState = TRANS_BR_Sword
Animation = ATNS
AnimationName = EUHaldir_STHA
AnimationMode = ONCE
AnimationBlendTime = 20
End
End
TransitionState = TRANS_RB_Sword
Animation = IDLG
AnimationName = EUHaldir_STHA
AnimationMode = ONCE
AnimationBlendTime = 20
End
End
TransitionState = TRANS_SwordToBow_Moving
Animation = DrawBow
AnimationName = EUHaldir_STHC
AnimationMode = ONCE
End
End
TransitionState = TRANS_BowToSword_Moving
Animation = DrawSword
AnimationName = EUHaldir_STHD
AnimationMode = ONCE
End
End
TransitionState = TRANS_BowToSword_Ready
Animation = DrawSwords
AnimationName = EUHaldir_STHA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SwordToBow_Ready
Animation = DrawBow
AnimationName = EUHaldir_STHB
AnimationMode = ONCE
End
End
TransitionState = TRANS_BowToSword_Selected
Animation = DrawSwords
AnimationName = EUHaldir_STHA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SwordToBow_Selected
Animation = DrawBow
AnimationName = EUHaldir_STHB
AnimationMode = ONCE
End
End
End
End
; ***DESIGN parameters ***
Side = Elves
EditorSorting = UNIT
ThreatLevel = HALDIR_THREAT_LEVEL
ThingClass = CHARACTER_UNIT
BuildCost = HALDIR_BUILDCOST
BuildTime = HALDIR_BUILDTIME
ShockwaveResistance = SHOCKWAVE_RESISTANCE_STRONG
TransportSlotCount = TRANSPORTSLOTCOUNT_HERO
VisionRange = VISION_HERO_RANGED
ShroudClearingRange = SHROUD_CLEAR_RANGED_HERO
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 1.0%
BountyValue = ELVEN_HALDIR_BOUNTY_VALUE
RecruitText = CONTROLBAR:HaldirRecruit
ReviveText = CONTROLBAR:HaldirRevive
Hotkey = CONTROLBAR:ElvenHaldirHotkey
DisplayName = OBJECT:ElvenHaldir
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = NewHaldirCommandSet
CommandPoints = 0 ; ;50
;//DisplayMeleeDamage = HALDIR_SWORD_DAMAGE
;//DisplayRangedDamage = HALDIR_BOW_DAMAGE
;------------------------------------------
;;; SPECIAL CARNAGE MODE, MAKE SURE IT"S THE CARNAGE WEAPON NO MATTER WHAT ;;;
WeaponSet
Conditions = WEAPONSET_HERO_MODE
Weapon = PRIMARY HaldirHeroModeWeapon
End
WeaponSet
Conditions = WEAPONSET_HERO_MODE WEAPONSET_TOGGLE_1
Weapon = PRIMARY HaldirHeroModeWeapon
End
WeaponSet
Conditions = WEAPONSET_TOGGLE_1
Weapon = PRIMARY HaldirBow
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
WeaponSet
Conditions = None
Weapon = PRIMARY HaldirSword
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = None
Armor = HaldirArmor ; ;HeroLightArmor
DamageFX = NormalDamageFX
End
; *** AUDIO Parameters ***
VoiceAttack = HaldirVoiceAttack
VoiceAttackAir = HaldirVoiceAttack
VoiceAttackCharge = HaldirVoiceAttackCharge
VoiceAttackMachine = HaldirVoiceAttack
VoiceAttackStructure = HaldirVoiceAttackBuilding
VoiceFear = HaldirVoiceHelpMe
VoiceGuard = HaldirVoiceMove
VoiceMove = HaldirVoiceMove
VoiceMoveToCamp = HaldirVoiceMoveCamp
VoiceMoveWhileAttacking = HaldirVoiceDisengage
VoicePriority = 62
VoiceRetreatToCastle = HaldirVoiceRetreat
VoiceSelect = HaldirVoiceSelectMS
VoiceSelectBattle = HaldirVoiceSelectBattle
SoundImpact = ImpactHorse
UnitSpecificSounds
VoiceEnterUnitElvenTransportShip = HaldirVoiceMoveShip
VoiceGarrison = HaldirVoiceMoveGarrison
VoiceInitiateCaptureBuilding = HaldirVoiceCaptureBuilding ; From SpecialPower SpecialAbilityCaptureBuilding
End
CrowdResponseKey = ElfHero
EvaEventDamagedOwner = UnitUnderAttack ;Eva event to trigger when unit is damaged
EvaEventDamagedFromShroudedSourceOwner = UnitUnderAttackFromShroudedUnit
EvaEventDamagedByFireOwner = GenericUnitBeingBurned ; Special reaction to fire damage
EvaEventAmbushed = UnitAmbushed ; Special damaged event when not in combat and enemy is stealthed
EvaEventSecondDamageFarFromFirstOwner = UnitUnderAttackAgain ; Eva event to trigger when we are under attack far away from the first attack, while normal UnitUnderAttack is still timing out
; Control settings for EvaEventSecondDamageFarFromFirstOwner
EvaEventSecondDamageFarFromFirstScanRange = 600 ; What 'far' means. Note that each unit damaged blocks the second-damage callout within this range, not just the first damaged unit
EvaEventSecondDamageFarFromFirstTimeoutMS = 31000 ; When the first damaged event plays, the unit must wait this long before trying second. Generally should >= timeout on event
EvaEnemyObjectSightedEvent = GenericEnemyUnitSighted ; Normal response to enemy units
EvaEventDieOwner = HaldirDie
AddModule
Behavior = LargeGroupAudioUpdate ModuleTag_LGAU
Key = Humanoid_Male Elf Elf_Male Unit Infantry Hero
End
End
AddModule
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:ArrowDrawBow Animation:EUHaldir_SKL.EUHaldir_ATA1 Frames:6
AnimationSound = Sound:ArrowDrawBow Animation:EUHaldir_SKL.EUHaldir_ATA2 Frames:18
AnimationSound = Sound:SwordShingClean1 Animation:EUHaldir_SKL.EUHaldir_STHA Frames:24
AnimationSound = Sound:SwordIntoScabbard1 Animation:EUHaldir_SKL.EUHaldir_STHB Frames:9
AnimationSound = Sound:WeaponSwitchBow Animation:EUHaldir_SKL.EUHaldir_STHB Frames:15
AnimationSound = Sound:SwordShingClean1 Animation:EUHaldir_SKL.EUHaldir_STHC Frames:20
AnimationSound = Sound:SwordIntoScabbard1 Animation:EUHaldir_SKL.EUHaldir_STHD Frames:5
AnimationSound = Sound:WeaponSwitchBow Animation:EUHaldir_SKL.EUHaldir_STHD Frames:8
AnimationSound = Sound:SwordShingClean1 Animation:EUHaldir_SKL.EUHaldir_RUNC Frames:14
AnimationSound = Sound:SwordIntoScabbard1 Animation:EUHaldir_SKL.EUHaldir_RUNT Frames:4
AnimationSound = Sound:WeaponSwitchBow Animation:EUHaldir_SKL.EUHaldir_RUNT Frames:16
AnimationSound = Sound:BodyFallSoldier Animation:EUHaldir_SKL.EUHaldir_LNDA Frames:9
AnimationSound = Sound:BodyFallSoldier Animation:EUHaldir_SKL.EUHaldir_LNDB Frames:1
AnimationSound = Sound:BodyFallGenericNoArmor Animation:EUHaldir_SKL.EUHaldir_DIEB Frames:82
AnimationSound = Sound:BodyFallSoldier Animation:EUHaldir_SKL.EUHaldir_DIEBV5 Frames:25
AnimationSound = Sound:BodyFallSoldier Animation:EUHaldir_SKL.EUHaldir_DIESV4 Frames:26
AnimationSound = Sound:BodyFallGenericNoArmor Animation:EUHaldir_SKL.EUHaldir_DIESV5 Frames:100
End
End
ReplaceModule ModuleTag_RespawnBody
Body = RespawnBody ModuleTag_RespawnBodyNew
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = 3500
PermanentlyKilledByFilter = NONE
DodgePercent = HERO_DODGE_PERCENT
End
End
ReplaceModule ModuleTag_03
Behavior = AIUpdateInterface ModuleTag_03New
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
CanAttackWhileContained = Yes
AILuaEventsList = LegolasFunctions
End
End
AddModule
Behavior = GrantUpgradeCreate ModuleTag_GandyUpgrade
UpgradeToGrant = Upgrade_GandalfWhite
End
End
;///////////////////
; AISpecialPowers
;///////////////////
AddModule
Behavior = AISpecialPowerUpdate GoldenArrowAI
CommandButtonName = Command_HaldirGoldenArrow
SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER
SpecialPowerRadius = 250
End
End
;;;XDDDDDDDDDDDDDDDDDDDDDDD I'm too lazy to change those descriptions, its soo fun to see lurtz carnage on haldir object xDDDDDDDDDDDDDDD
;;; LURTZ CARNAGE (aka rampage) ;;;-----------------------------------------------------------------------------
AddModule
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_LurtzCarnage
SpecialPowerTemplate = SpecialAbilityLurtzCarnage
TriggeredBy = Upgrade_GandalfWhite
End
End
AddModule
Behavior = SpecialPowerModule ModuleTag_LurtzCarnageStarter ; SpecialAbility is a SpecialPower, SpecialPower is anyting special
SpecialPowerTemplate = SpecialAbilityLurtzCarnage
StartsPaused = Yes
AttributeModifier = HaldirHeroMode
AttributeModifierAffectsSelf = Yes
End
End
AddModule
Behavior = HeroModeSpecialAbilityUpdate ModuleTag_CarnageUpdate ; So the difference in SpecialAbility is that it takes timing from this Update, instead of simply firing.
SpecialPowerTemplate = SpecialAbilityLurtzCarnage
HeroEffectDuration = 15000 ; ;30000
UnpackTime = 1 ; how long the weaponset is active
RejectedConditions = WEAPON_TOGGLE
End
End
; ------- GOLDEN ARROW --------------------------------------------------------------------------------
ReplaceModule ModuleTag_HaldirGoldenArrowUnpause
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_HaldirGoldenArrowUnpause1
SpecialPowerTemplate = SpecialAbilityHaldirGoldenArrow
TriggeredBy = Upgrade_GandalfWhite
End
End
ReplaceModule ModuleTag_HaldirGoldenArrowWeaponFireUpdate
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_HaldirGoldenArrowWeaponFireUpdate1
SpecialPowerTemplate = SpecialAbilityHaldirGoldenArrow
WhichSpecialWeapon = 1
UnpackTime = 600
PreparationTime = 1
PackTime = 2000
StartAbilityRange = HALDIR_BOW_RANGE
MustFinishAbility = Yes
SpecialWeapon = HaldirGoldenArrow
RequiredConditions = WEAPON_TOGGLE
End
End
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
; This one does the work, but the one in the horde displays the timer
MinLifetime = 75000 ;180000
MaxLifetime = 75000 ;180000
DeathType = FADED
End
END
Any solutions?