Jump to content


Ringwraith Captain

Member Since 24 Sep 2008
Offline Last Active Jul 07 2009 12:32 AM

Topics I've Started

Help w/ Hero's power

23 November 2008 - 02:37 PM

Hi all.
I've added Gil-galad as a hero to my game, and he's working great, except for one of his powers, Vilya. It's supposed to fire a projectile at the target, similar to Saruman's fireball. I can click the button and give him a target to attack. He'll walk up and prepare to fire (I can tell by the animations), but in the middle of the animation, when the projectile is supposed to be fired, he switches back to idle without firing anything, and the power starts recharging like it was just used. I can't figure out what's wrong. I've looked at all the code I can think of, and everything looks fine to me.

Here's the relevant code from several files. If I need to post any others, let me know.
[codebox]
;******************************************************************************
;gilgalad.ini*******************************************************************
**
;******************************************************************************
;------------------------------------------------------------------------------
;
; Theoden.ini
;
;------------------------------------------------------------------------------
; Theoden
Object ElvenGilgalad
; *** ART Parameters ***

; SelectPortrait for Heros is portrait behind skill buttons. HP = HeroPortrait.
SelectPortrait = HPGilGalad

; ButtonImage for Heros is button image on Hero Select UI to select hero. HI = HeroIcon or HeroImage.
ButtonImage = HIGilGalad

Draw = W3DScriptedModelDraw ModuleTag_DRAW

WadingParticleSys = EntRipples

OkToChangeModelColor = Yes

StaticModelLODMode = no ; Will append M or L to the skin name depending on GameLOD

DefaultModelConditionState
Model = eugilgalad_skna
Skeleton = RUTheoden_SKL
End

ModelConditionState = WEAPONSET_HERO_MODE
ParticleSysBone = B_SWORDBONE Anduril FollowBone:Yes
End

AnimationState = UNPACKING SPECIAL_WEAPON_ONE ;PACKING_TYPE_1
Animation = VilyaStart
AnimationName = RUTheoden_CHRB
AnimationMode = ONCE
End
FXEvent = Frame:34 Name:FX_GilGaladVilyaStart
End

AnimationState = PREPARING SPECIAL_WEAPON_ONE ;PACKING_TYPE_1
Animation = VilyaShoot
AnimationName = RUTheoden_ATKC
AnimationMode = ONCE
;UseWeaponTiming = Yes
End
End

; --- Idle Anims
IdleAnimationState
StateName = BORED
Animation = IDLB
AnimationName = RUTheoden_IDLB
AnimationMode = ONCE
AnimationPriority = 1
End
Animation = IDLC
AnimationName = RUTheoden_IDLC
AnimationMode = ONCE
AnimationPriority = 10
End
Animation = IDLD
AnimationName = RUTheoden_IDLD
AnimationMode = ONCE
AnimationPriority = 1
End
Animation = IDLE
AnimationName = RUTheoden_IDLE
AnimationMode = ONCE
AnimationPriority = 1
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "SELECTED" then CurDrawableSetTransitionAnimState("Transition_SelectedToBored") end
if Prev == "READY" then CurDrawableSetTransitionAnimState("Transition_ReadyToBored") end
EndScript
End

AnimationState = FREEFALL
Animation = freefall
AnimationName = RUTheoden_FLYA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End

AnimationState = STUNNED_FLAILING
Flags = RANDOMSTART
Animation = RUTheoden_FLYA
AnimationName = RUTheoden_FLYA
AnimationMode = LOOP
End
End

; --- Dying anims
AnimationState = DYING SPLATTED
Animation = RUTheoden_LNDA
AnimationName = RUTheoden_LNDA
AnimationMode = ONCE
End
End
AnimationState = DYING
Animation = RUTheoden_DIEA ; this one sucks.
AnimationName = RUTheoden_DIEA
AnimationMode = ONCE
End
Animation = RUTheoden_DIEB
AnimationName = RUTheoden_DIEB
AnimationMode = ONCE
End
End

; --- Stunned anims

AnimationState = STUNNED_STANDING_UP
Animation = RUTheoden_GTPA
AnimationName = RUTheoden_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
AnimationState = STUNNED
Animation = RUTheoden_LNDA
AnimationName = RUTheoden_LNDA
AnimationMode = ONCE
End
End

AnimationState = MOVING FIRING_OR_PREATTACK_A
ShareAnimation = Yes
Animation = RunAndFire
AnimationName = RUTheoden_ATRA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End


; Attacking Anims
AnimationState = FIRING_OR_PREATTACK_A
Animation = ATKA
AnimationName = RUTheoden_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
;AnimationSpeedFactorRange = .826 .826
End
Animation = ATKB
AnimationName = RUTheoden_ATKB
AnimationMode = ONCE
;AnimationSpeedFactorRange = .9066 .9066
End
Animation = ATKC
AnimationName = RUTheoden_ATKC
AnimationMode = ONCE
UseWeaponTiming = Yes
;AnimationSpeedFactorRange = 1.1466 1.1466
End
Animation = ATKD
AnimationName = RUTheoden_ATKD
AnimationMode = ONCE
UseWeaponTiming = Yes
;AnimationSpeedFactorRange = 1.0666 1.0666
End
End

AnimationState = MOVING ATTACKING
Animation = RUTheoden_RUNB
AnimationName = RUTheoden_RUNB
AnimationSpeedFactorRange = 0.4 0.4
AnimationMode = LOOP
AnimationBlendTime = 10
Distance = 24
End
End

AnimationState = MOVING
Animation = RUTheoden_RUNA
AnimationName = RUTheoden_RUNA
AnimationMode = LOOP
Distance = 24
End
End

AnimationState = PACKING_TYPE_2
StateName = SPELL
Animation = SPCC
AnimationName = RUTheoden_SPCB
AnimationSpeedFactorRange = 1.1666 1.1666
AnimationMode = ONCE
AnimationBlendTime = 20
End
Animation = SPCD
AnimationName = RUTheoden_SPCC
AnimationMode = ONCE
AnimationBlendTime = 20
End
End

; --------- Click and Hit Reactions ------------
AnimationState = HIT_REACTION HIT_LEVEL_1
Animation = Hit_Level_1_a
AnimationName = RUTheoden_HITA
AnimationMode = ONCE
End
End

;----Emotion Animations

AnimationState = LEVELED ; This state clears itself in 3 seconds
Animation = LevelUp
AnimationName = RUTheoden_CHRB
AnimationMode = ONCE
End
End

AnimationState = EMOTION_CELEBRATING
Animation = CHRA
AnimationName = RUTheoden_CHRA
AnimationMode = ONCE
End
Animation = CHRB
AnimationName = RUTheoden_CHRB
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End

AnimationState = EMOTION_ALERT
StateName = READY
Animation = ready
AnimationName = RUTheoden_IDLA
AnimationMode = LOOP
AnimationBlendTime = 20
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "BORED" then CurDrawableSetTransitionAnimState("Transition_BoredToReady") end
if Prev == "SELECTED" then CurDrawableSetTransitionAnimState("Transition_SelectedToReady") end
EndScript
End

AnimationState = SELECTED
StateName = SELECTED
Animation = ATNB
AnimationName = RUTheoden_ATNB
AnimationMode = LOOP
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "BORED" then CurDrawableSetTransitionAnimState("Transition_BoredToSelected") end
if Prev == "READY" then CurDrawableSetTransitionAnimState("Transition_ReadyToSelected") end
if Prev == "SPELL" then CurDrawableSetTransitionAnimState("Transition_ReadyToSelected") end
EndScript
End

TransitionState Transition_BoredToReady
Animation = ready
AnimationName = RUTheoden_IDLA
AnimationMode = LOOP
AnimationBlendTime = 20
End
End

TransitionState Transition_ReadyToBored
Animation = IDLC
AnimationName = RUTheoden_IDLC
AnimationMode = ONCE
AnimationBlendTime = 20
End
End

TransitionState Transition_BoredToSelected
Animation = ATNA
AnimationName = RUTheoden_ATNA
AnimationMode = ONCE
End
End

TransitionState Transition_SelectedToBored
Animation = ATNE
AnimationName = RUTheoden_ATNE
AnimationMode = ONCE
End
End

TransitionState Transition_SelectedToReady
Animation = ATNC
AnimationName = RUTheoden_ATNC
AnimationMode = ONCE
End
End

TransitionState Transition_ReadyToSelected
Animation = ATNC
AnimationName = RUTheoden_ATNC
AnimationMode = ONCE_BACKWARDS
End
Flags = START_FRAME_LAST
End
End


; ***DESIGN parameters ***
Side = Elven
EditorSorting = UNIT
ThreatLevel = 4.0
ImmuneToShockwave = yes ;
ThingClass = CHARACTER_UNIT
BuildCost = 3000
BuildTime = 30

DisplayMeleeDamage = 45

TransportSlotCount = 1
WeaponSet
Conditions = NONE
Weapon = PRIMARY GilgaladSpear
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
WeaponSet
Conditions = WEAPONSET_HERO_MODE
Weapon = PRIMARY GilgaladHeroSpear
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End

;------ Armor Sets --------
ArmorSet
Conditions = None
Armor = ToughHeroArmor
DamageFX = NormalDamageFX
End

VisionRange = VISION_STANDARD_HORSE
ShroudClearingRange = SHROUD_CLEAR_HERO

BountyValue = ROHAN_THEODEN_BOUNTY_VALUE
DisplayName = OBJECT:ElvenGilGalad
RecruitText = CONTROLBAR:ElvenGilGaladRecruit
ReviveText = CONTROLBAR:ElvenGilGaladRevive
Hotkey = CONTROLBAR:ElvenGilGaladHotkey
CrusherLevel = 0 ;Can I crush anything?
MountedCrusherLevel = 1 ;Crush level when mounted.
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = cavalry/heroes
MountedCrushableLevel = 2 ;Crusable level when mounted.

CrushWeapon = HeroCrush

MinCrushVelocityPercent = 50 ; Has to be moving at at least 50% of full speed.
CrushDecelerationPercent = 30 ; Lose xx percent of max velocity when crushing.

CrushKnockback = 40
CrushZFactor = 1.0

CommandSet = ElvenGilgaladCommandSet
CommandPoints = 0


; *** AUDIO Parameters ***;

VoiceAttack = ElvenWarriorVoiceAttack
VoiceAttackAir = ElvenWarriorVoiceAttackBow
VoiceAttackCharge = ElvenWarriorVoiceAttackCharge
VoiceAttackStructure = ElvenWarriorVoiceAttackStructure ; ElvenWarriorVoiceAttackBuilding not recorded
VoiceAttackMachine = ElvenWarriorVoiceAttackStructure ; ElvenWarriorVoiceAttackBuilding not recorded
VoiceCreated = ElvenWarriorVoiceSalute
VoiceFullyCreated = ElvenWarriorVoiceSalute
VoiceMove = ElvenWarriorVoiceMove
VoiceMoveToCamp = ElvenWarriorVoiceMoveCamp
VoiceMoveWhileAttacking = ElvenWarriorVoiceDisengage
VoicePriority = 41
VoiceRetreatToCastle = ElvenWarriorVoiceRetreat
VoiceSelect = ElvenWarriorVoiceSelect
VoiceSelect2 = ElvenWarriorVoiceSelect2
VoiceSelectBattle = ElvenWarriorVoiceSelectBattle
VoiceGuard = ElvenWarriorVoiceMove

UnitSpecificSounds
VoiceGarrison = ElvenWarriorVoiceGarrison
VoicePrimaryWeaponMode = ElvenWarriorVoiceModeBow
VoiceSecondaryWeaponMode = ElvenWarriorVoiceModeSword
End

EvaEventDamagedOwner = UnitUnderAttack
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:FootstepDirtA Animation:RUTheoden_SKL.RUTheoden_RUNA Frames:5 16
AnimationSound = Sound:FootstepDirtA Animation:RUTheoden_SKL.RUTheoden_RUNB Frames:4 12 20 27

AnimationSound = Sound:TauntHumanHitShield Animation:RUTheoden_SKL.RUTheoden_CHRB Frames:21 31

AnimationSound = Sound:BodyFallGenericNoArmor Animation:RUTheoden_SKL.RUTheoden_DIEA Frames:47
AnimationSound = Sound:BodyFallGenericNoArmor Animation:RUTheoden_SKL.RUTheoden_DIEB Frames:19
AnimationSound = Sound:BodyFallSoldier Animation:RUTheoden_SKL.RUTheoden_LNDA Frames:1
End

Behavior = LargeGroupAudioUpdate ModuleTag_LGAU ; Tie into LargeGroupAudio system
Key = Human Unit Infantry Hero
UnitWeight = 2 ; Faramir counts as 2 infantry
End

; *** ENGINEERING Parameters ***

RadarPriority = UNIT
KindOf = HERO PRELOAD SELECTABLE CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE ARMY_SUMMARY
PathfindDiameter = 40.0

Body = RespawnBody ModuleTag_RespawnBody
CheerRadius = EMOTION_CHEER_RADIUS
MaxHealth = 1250 ;BALANCE Theoden Health
PermanentlyKilledByFilter = NONE ;Who kills me permanently?
DodgePercent = HERO_DODGE_PERCENT
End

Behavior = RespawnUpdate ModuleTag_RespawnUpdate
DeathAnim = DYING ;Model condition to play when killed-to-respawn
DeathFX = FX_GenericDieToRespawn ;FXList to play when killed-to-respawn
DeathAnimationTime = 4000 ;How long DeathAnim will take.
InitialSpawnFX = FX_Resurrection
RespawnAnim = LEVELED ;Animation to play when respawning.
RespawnFX = FX_Resurrection ;FXList to play when respawning.
RespawnAnimationTime = 4000 ;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 = HIGilGalad

;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:600 Time:90000 Health:100% ;DEFAULT VALUES
RespawnEntry = Level:2 Cost:700 Time:90000 ;For other levels, only override what is different.
RespawnEntry = Level:3 Cost:800 Time:90000
RespawnEntry = Level:4 Cost:900 Time:90000
RespawnEntry = Level:5 Cost:1000 Time:120000
RespawnEntry = Level:6 Cost:1100 Time:120000
RespawnEntry = Level:7 Cost:1200 Time:120000
RespawnEntry = Level:8 Cost:1300 Time:120000
RespawnEntry = Level:9 Cost:1400 Time:120000
RespawnEntry = Level:10 Cost:1500 Time:120000
End

Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
End

Behavior = AutoHealBehavior ModuleTag_TheodenHealing
StartsActive = Yes
HealingAmount = HERO_HEAL_AMOUNT
HealingDelay = 1000
StartHealingDelay = HERO_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
End

Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = 300 ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)

AddEmotion = Alert_Base
End

Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
HoldGroundCloseRangeDistance = 40
AILuaEventsList = TheodenFunctions
End

LocomotorSet
Locomotor = TheodenHumanLocomotor
Condition = SET_NORMAL
Speed = NORMAL_GOOD_HERO_SPEED
End

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

;;;; Elven Gift bonus

Behavior = AutoHealBehavior ModuleTag_ElvenGiftHealing
StartsActive = No
TriggeredBy = Upgrade_ElvenGift
HealingAmount = ELVEN_GIFT_REGEN_AMOUNT
HealingDelay = ELVEN_GIFT_REGEN_DELAY
StartHealingDelay = HERO_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
End

Behavior = AttributeModifierUpgrade ModuleTag_ElvenGiftBonus
TriggeredBy = Upgrade_ElvenGift
AttributeModifier = SpellBookElvenGifts
End

Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
End

Behavior = HeroDie ModuleTag_HeroDeath
SpecialPowerTemplate = SpecialAbilitySmite ;the special power that I recharge by dying
End

Behavior = SlowDeathBehavior ModuleTag_05
DeathTypes = ALL
SinkDelay = 3000
SinkRate = 0.40 ; in Dist/Sec
DestructionDelay = 8000
Sound = INITIAL TheodenVoiceDie
End

Behavior = SquishCollide ModuleTag_06
;nothing
End

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

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

;;; VILYA (Rank 4) ;;;
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_FireballEnabler
SpecialPowerTemplate = SpecialAbilitySarumanFireball
TriggeredBy = Upgrade_Level1 ;Upgrade_Level4
End

Behavior = SpecialPowerModule ModuleTag_FireballStarter
SpecialPowerTemplate = SpecialAbilitySarumanFireball
UpdateModuleStartsAttack = Yes
StartsPaused = Yes
InitiateSound = ElvenWarriorVoiceAttackCharge
End

Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_FireballUpdate
SpecialPowerTemplate = SpecialAbilitySarumanFireball
WhichSpecialWeapon = 1
SkipContinue = Yes

UnpackTime = 3466.67
PreparationTime = 800
PersistentPrepTime = 600
PackTime = 1800 ;1533.33

AwardXPForTriggering = 0

StartAbilityRange = SARUMAN_FIREBALL_RANGE
MustFinishAbility = Yes
SpecialWeapon = GilgaladVilya
End

;;; AIGLOS (Rank 6) ;;;
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_AragornBladeMasterEnabler
SpecialPowerTemplate = SpecialAbilityAragornBladeMaster
TriggeredBy = Upgrade_Level1 ;Upgrade_Level6
End

Behavior = SpecialPowerModule ModuleTag_AragornBladeMasterStarter ; SpecialAbility is a SpecialPower, SpecialPower is anyting special
SpecialPowerTemplate = SpecialAbilityAragornBladeMaster
StartsPaused = Yes
End

Behavior = HeroModeSpecialAbilityUpdate ModuleTag_AragornBladeMasterUpdate ; So the difference in SpecialAbility is that it takes timing from this Update, instead of simply firing.
SpecialPowerTemplate = SpecialAbilityAragornBladeMaster
HeroAttributeModifier = GilgaladAiglos
HeroEffectDuration = 25000 ; 30000 ; this should sync with the auto ability delay re-fire time in commandButtons.ini
UnpackTime = 1 ; insant unpack
TriggerSound = AragornBladeMaster
End

;;; LEADERSHIP (Rank 3) ;;;
Behavior = AttributeModifierAuraUpdate ModuleTag_FaramirLeadership
StartsActive = No ;If no, requires upgrade to turn on.
BonusName = GilgaladPassiveLeadership
TriggeredBy = Upgrade_Level1 ;Upgrade_Level3
RefreshDelay = 2500
Range = 150 ; 200
ObjectFilter = ANY +INFANTRY +CAVALRY -STRUCTURE -BASE_FOUNDATION -HERO
End
Behavior = UnpauseSpecialPowerUpgrade ModuleTag_TheodenLeadership
SpecialPowerTemplate = SpecialAbilityFakeLeadership
TriggeredBy = Upgrade_Level1 ;Upgrade_Level3
End
Behavior = SpecialPowerModule ModuleTag_TheodenLeadershipUpdate
SpecialPowerTemplate = SpecialAbilityFakeLeadership
UpdateModuleStartsAttack = No
StartsPaused = Yes
End

Geometry = CYLINDER
GeometryMajorRadius = 8.0
GeometryMinorRadius = 8.0
GeometryHeight = 19.2
GeometryIsSmall = Yes
Shadow = SHADOW_DECAL
ShadowSizeX = 19;
ShadowSizeY = 19;
ShadowTexture = ShadowI;
End
;------------------------------------------------------------------------------
Object GilGaladVilyaProjectile

; *** ART Parameters ***
Draw = W3DScriptedModelDraw ModuleTag_Draw
DefaultModelConditionState
Model = FIRELOCATOR
ParticleSysBone ROOTTRANSFORM GilGaladVilyaWind FollowBone:yes
ParticleSysBone ROOTTRANSFORM GilGaladVilyaTrail 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 = 9 ; Height of Bezier control points above highest intervening terrain
SecondHeight = 9
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_GilGaladVilyaExplode
End

Geometry = Sphere
GeometryIsSmall = Yes
GeometryMajorRadius = 0.8
End[/codebox]

[codebox]
;******************************************************************************
;weapon.ini*********************************************************************
;******************************************************************************
;------------------------------------------------------------------------------
Weapon GilgaladVilya ;BALANCE Saruman
LeechRangeWeapon = Yes
AttackRange = 280 ; SARUMAN_FIREBALL_RANGE ; set this in his special power
WeaponSpeed = 220 ; 150 ; dist/sec
MinWeaponSpeed = 150 ; 100
MaxWeaponSpeed = 250 ; 200 ; dist/sec Upper limit on scaling, when attacking past nominal "max" range
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 = 0.0 ;When this weapon misses it can randomly miss by as much as this distance.
DelayBetweenShots = 5000 ; time between shots, msec
PreAttackDelay = 1 ; 1467 is the prep time for archer.
PreAttackRandomAmount = 0 ; amount of additional preattack variance for archer type attacks only
PreAttackType = PER_SHOT ; Do the delay each time we attack a new target
FiringDuration = 1 ; Duration of the archer firing shot is 500ms.
IsAimingWeapon = Yes
AcceptableAimDelta = 15
AntiAirborneVehicle = Yes
AntiAirborneMonster = Yes
FireFX = FX_SarumanFireball
DamageType = FLAME

ProjectileNugget ; Default arrow
ProjectileTemplateName = GilGaladVilyaProjectile
WarheadTemplateName = GilgaladVilyaWarhead
End
End

;----------------------------
Weapon GilgaladVilyaWarhead
ProjectileCollidesWith = ENEMIES NEUTRAL STRUCTURES WALLS
RadiusDamageAffects = ENEMIES NEUTRALS NOT_SIMILAR MINES ; ALLIES

DamageNugget ; A basic Nugget that just does damage
Damage = SARUMAN_FIREBALL_DAMAGE
Radius = SARUMAN_FIREBALL_RADIUS
DelayTime = 0
DamageType = MAGIC
DamageFXType = BIG_ROCK
DeathType = CRUSHED
DamageScalar = 150% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
End

DamageNugget ; to make the fireball more mighty against enemy heroes
Damage = 50
Radius = SARUMAN_FIREBALL_RADIUS
DelayTime = 0
DamageType = MAGIC
DamageFXType = BIG_ROCK
DeathType = CRUSHED
DamageScalar = 500% NONE +HERO -MordorFellBeast -MordorWitchKingOnFellBeast -GondorGwaihir
End

DamageNugget ; A basic Nugget that just does damage
Damage = SARUMAN_FIREBALL_DAMAGE_SIEGE
Radius = SARUMAN_FIREBALL_RADIUS
DelayTime = 0
DamageType = MAGIC
DamageFXType = BIG_ROCK
DeathType = CRUSHED
DamageScalar = 300% NONE +MordorFellBeast +MordorWitchKingOnFellBeast +GondorGwaihir
End

MetaImpactNugget ; A Nugget that throws things back with force
HeroResist = 0.75
ShockWaveAmount = 80.00
ShockWaveRadius = SARUMAN_FIREBALL_RADIUS
ShockWaveTaperOff = 0.75
ShockWaveZMult = 1.20
End
End[/codebox]

[codebox]
;******************************************************************************
;commandbutton.ini**************************************************************
;******************************************************************************
CommandButton Command_GilgaladVilya
Command = SPECIAL_POWER
SpecialPower = SpecialAbilitySarumanFireball
Options = NEED_TARGET_ENEMY_OBJECT NEED_TARGET_NEUTRAL_OBJECT
TextLabel = CONTROLBAR:GilgaladVilya
ButtonImage = SIGilGaladVilya
CursorName = Bombard
InvalidCursorName = GenericInvalid
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:ToolTipGilgaladVilya
InPalantir = Yes
AutoAbility = Yes
PresetRange = 200.0
End[/codebox]

How Big?

20 October 2008 - 02:30 PM

How big (in megabytes) do you expect the mod to be upon release?

My gaming comp doesn't have internet access, so I'm relying on a USB device to get stuff to it from a computer that can get to the internet. My USB drive has like 240 MB of memory...is that enough (I doubt it)? I just need to know if I should invest in a larger USB drive - or WiFi.

EA W3D Viewer Won't Work

17 October 2008 - 04:02 PM

I recently installed EA's BFME II SDK, in order to get the W3D Viewer out of it, which I understand allows you to view BFME II animations. However, when I went to run the program, it gives me an error message, saying it can't find some .dll file. What's wrong?

Vista

12 October 2008 - 11:48 AM

I'm thinking about getting a new computer. Unfortunately, this means moving to a new operating system, from Windows XP to Vista. My question is: Will BFME and all the modding programs on the site still work properly on Vista?

Random Questions

06 October 2008 - 06:20 PM

1. Is there a tutorial anywhere on XML/LUA scripting? I've heard about this system, and it seems powerful, but I don't have a clue about how to edit it.

2. What happens if you put a negative value in a unit's armor? Or if armor is increased by 100% or more (if the gamedata.ini cap is removed)? I've been meaning to test this out, but just haven't had the time.

3. How do I get transparency in a skin? Like if I want to put holes in a cloak, can I do that with the skin, or do I have to model each individual hole?

4. How do I hide meshes during animations? I've followed this tutorial, but I can't find the visibility box anywhere. Is it just not supported in RenX?

5. If I remove an upgrade from a unit, will any corresponding model conditions (e.g. weaponset and armoset flags) be removed as well? And could I later grant that same upgrade again, and get those conditions back?

6. Is there any way to make a unit "absorb" damage, that is, when it gets hit by a certain type of attack (like, attacking a Balrog with FLAME damage), instead of taking damage, it actually heals itself? I've got no idea if its even possible, let alone how to implement it...

7. How can I extend the animation time slider in RenX? It starts with 100 frames visible, but sometimes that just ain't enough.