Hi,
I've tried to give Faramir the same ability as Legolas; instead of switching weapons he should get a limited time on his sword stance. I replaced Faramir's WEAPONSET_TOGGLE_1 with WEAPONLOCK_SECONDARY, changed the weaponset, added the knife fighter behavior and compared Legolas' and Faramirs' code. All animations work as they should except for the attacking (FIRING_OR_PREATTACK_A) animation. He just stands still, he does not attack. RoR suggested it was hardcoded, but then the other animations wouldn't work either, would they? Anyway I have no idea what else I could try, does anyone else have an idea?
Spoiler
[...] ;;====================== MODELS ================================================================ DefaultModelConditionState Model = GUFaramir_SKN WeaponLaunchBone = PRIMARY arrow End ModelConditionState = WEAPONLOCK_SECONDARY Model = GUFaramir_SKN ParticleSysBone = BAT_HEAD Slayer FollowBone:Yes End ;;================== ANIMATIONS ================================================================ ; --- Flying through the air. AnimationState = STUNNED_FLAILING WEAPONLOCK_SECONDARY StateName = STATE_Sword Animation = GUFaramir_FLYB AnimationName = GUFaramir_SKL.GUFaramir_FLYB AnimationMode = LOOP End Flags = RANDOMSTART End AnimationState = STUNNED_FLAILING StateName = STATE_Bow Animation = GUFaramir_FLYA AnimationName = GUFaramir_SKL.GUFaramir_FLYA AnimationMode = LOOP End Flags = RANDOMSTART End ; --- Dying anims ; with sword AnimationState = DYING WEAPONLOCK_SECONDARY ;WEAPONLOCK_SECONDARY StateName = STATE_Sword Animation = GUFaramir_DIEA AnimationName = GUFaramir_SKL.GUFaramir_DIEA AnimationMode = ONCE End Animation = GUFaramir_DIEB AnimationName = GUFaramir_SKL.GUFaramir_DIEB AnimationMode = ONCE End End ; with bow AnimationState = DYING StateName = STATE_Bow Animation = GUFaramir_DIEC AnimationName = GUFaramir_SKL.GUFaramir_DIEC AnimationMode = ONCE End End ; --- Stunned anims AnimationState = STUNNED_STANDING_UP WEAPONLOCK_SECONDARY StateName = STATE_Sword Animation = GUFaramir_GTPB AnimationName = GUFaramir_SKL.GUFaramir_GTPB AnimationMode = ONCE AnimationSpeedFactorRange = 1.5 1.5 End End AnimationState = STUNNED_STANDING_UP StateName = STATE_Bow Animation = GUFaramir_GTPA AnimationName = GUFaramir_SKL.GUFaramir_GTPA AnimationMode = ONCE AnimationSpeedFactorRange = 1.5 1.5 End End AnimationState = STUNNED WEAPONLOCK_SECONDARY StateName = STATE_Sword Animation = GUFaramir_LNDB AnimationName = GUFaramir_SKL.GUFaramir_LNDB AnimationMode = ONCE End End AnimationState = STUNNED StateName = STATE_Bow Animation = GUFaramir_LNDA AnimationName = GUFaramir_SKL.GUFaramir_LNDA AnimationMode = ONCE End End ;--------------------- War Speech anim AnimationState = PACKING_TYPE_1 WEAPONLOCK_SECONDARY StateName = SPELL Animation = WarSpeech AnimationName = GUFaramir_SKL.GUFaramir_CHRC AnimationMode = ONCE End End AnimationState = PACKING_TYPE_1 StateName = SPELL Animation = WarSpeech AnimationName = GUFaramir_SKL.GUFaramir_CHRD AnimationMode = ONCE End End ;--------------------- Wound Arrow anim AnimationState = SPECIAL_WEAPON_ONE WEAPONLOCK_SECONDARY StateName = STATE_Bow Animation AnimationName = GUFaramir_SKL.GUFaramir_ATKC AnimationMode = ONCE End FrameForPristineBonePositions = 59 BeginScript CurDrawableShowSubObject("arrow") EndScript End ;--------------------- Wound Arrow anim AnimationState = SPECIAL_WEAPON_ONE StateName = STATE_Bow Animation AnimationName = GUFaramir_SKL.GUFaramir_ATKC AnimationMode = ONCE End FrameForPristineBonePositions = 59 BeginScript CurDrawableShowSubObject("arrow") EndScript End ;;------------------ ATTACKING -------------------------------------------------------------------- ; Attacking Anims [Weapon_A] AnimationState = MOVING FIRING_OR_PREATTACK_A WEAPONLOCK_SECONDARY Animation = TrotAndFire AnimationName = GUFaramir_SKL.GUFaramir_ATRA AnimationMode = LOOP End Flags = RANDOMSTART StateName = RunAndSwing End AnimationState = FIRING_OR_PREATTACK_A WEAPONLOCK_SECONDARY Animation = ATKD AnimationName = GUFaramir_SKL.GUFaramir_ATKD AnimationMode = ONCE UseWeaponTiming = Yes End Animation = ATKE AnimationName = GUFaramir_SKL.GUFaramir_ATKE AnimationMode = ONCE UseWeaponTiming = Yes End Animation = ATKF AnimationName = GUFaramir_SKL.GUFaramir_ATKF AnimationMode = ONCE AnimationSpeedFactorRange = 1.2 1.2 End ;// Flags = RESTART_ANIM_WHEN_COMPLETE FXEvent = Frame:17 Name: FX_BladeMasterHitOrient StateName = STATE_Sword ; FrameForPristineBonePositions = 59 BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end EndScript End ;--------------------------------------------------- ;New style firing with bow AnimationState = PREATTACK_A StateName = STATE_Firing Animation = ReadyToDrawn AnimationName = GUFaramir_SKL.GUFaramir_ATKA1 AnimationMode = ONCE ; UseWeaponTiming = Yes ; UseWeaponTiming plus random weapon field equals desync. Leaving as warning ;AnimationBlendTime = 10 End End AnimationState = FIRING_OR_RELOADING_A StateName = STATE_Firing Animation = LooseReloadDraw AnimationName = GUFaramir_SKL.GUFaramir_ATKA2 AnimationMode = ONCE ; UseWeaponTiming = Yes ; UseWeaponTiming plus random weapon field equals desync. Leaving as warning AnimationSpeedFactorRange = 1.1 1.1 ; Therefore, this is all you get. A slight speed up so that the animation can always finish before any possible random value Design sets the range for ;AnimationBlendTime = 10 End End ;;------------------ MOVING ------------------------------------------------------------- ;--- Running with sword AnimationState = MOVING WEAPONLOCK_SECONDARY ;WEAPONLOCK_SECONDARY StateName = STATE_RunningSword Flags = RANDOMSTART ;ParticleSysBone = None InfantryDustTrails Animation = GUFaramir_RUNB AnimationName = GUFaramir_SKL.GUFaramir_RUNB ; AnimationMode = LOOP AnimationSpeedFactorRange = 0.85 0.85 Distance = 28 End BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end if Prev == "STATE_RunningBow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword_Running") end EndScript End ;--- Running with bow AnimationState = MOVING StateName = STATE_RunningBow Flags = RANDOMSTART ;ParticleSysBone = None InfantryDustTrails Animation = GUFaramir_RUNA AnimationName = GUFaramir_SKL.GUFaramir_RUNA ; AnimationMode = LOOP AnimationSpeedFactorRange = 0.85 0.85 Distance = 28 End BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end if Prev == "STATE_RunningSword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow_Running") end EndScript End ;--- Holding drawn bow while attacking AnimationState = CONTINUOUS_FIRE_MEAN Animation = HangFrameWhileCoasting AnimationName = GUFaramir_SKL.GUFaramir_ATKA2 AnimationMode = MANUAL End End AnimationState = CONTINUOUS_FIRE_SLOW ;StateName = STATE_Idle_Bow Animation = PutAwayArrow AnimationName = GUFaramir_SKL.GUFaramir_ATKA3 AnimationMode = ONCE End End ;End New style firing ;;-------------------- HIT REACTIONS ----------------------------------------------------------- ; this hit animation attack stance AnimationState = EMOTION_ALERT HIT_REACTION WEAPONLOCK_SECONDARY Animation = Hit_Level_1_d AnimationName = GUFaramir_SKL.GUFaramir_HITD AnimationMode = ONCE End End AnimationState = HIT_REACTION WEAPONLOCK_SECONDARY Animation = Hit_Level_1_b AnimationName = GUFaramir_SKL.GUFaramir_HITB AnimationMode = ONCE End End AnimationState = HIT_REACTION Animation = Hit_Level_1_c AnimationName = GUFaramir_SKL.GUFaramir_HITC AnimationMode = ONCE End End ;;------------ EMOTIONS ------------------------------------------------------------------ ;;====== LEVELED AnimationState = LEVELED WEAPONLOCK_SECONDARY ; This state clears itself in 3 seconds Animation = LevelUp AnimationName = GUFaramir_SKL.GUFaramir_CHRC AnimationMode = ONCE End End AnimationState = LEVELED ; This state clears itself in 3 seconds Animation = LevelUp AnimationName = GUFaramir_SKL.GUFaramir_CHRD AnimationMode = ONCE End End AnimationState = ATTACKING WEAPONLOCK_SECONDARY StateName = STATE_Sword Animation = ATTACKNG AnimationName = GUFaramir_SKL.GUFaramir_ATKD AnimationMode = MANUAL End End ;;------------------- SELECTED STATES ------------------------------------------------------------ AnimationState = SELECTED WEAPONLOCK_SECONDARY StateName = STATE_Selected_Sword Animation = ATNE AnimationName = GUFaramir_SKL.GUFaramir_ATNE AnimationMode = LOOP AnimationBlendTime = 15 End Flags = RESTART_ANIM_WHEN_COMPLETE BeginScript CurDrawableHideSubObject("arrow") Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedSword") return end EndScript End ;;====== ALERT AnimationState = EMOTION_ALERT WEAPONLOCK_SECONDARY StateName = STATE_READY Animation = ready AnimationName = GUFaramir_SKL.GUFaramir_IDLA AnimationMode = LOOP AnimationBlendTime = 20 End End AnimationState = SELECTED StateName = STATE_Selected_Bow Animation = ATNB AnimationName = GUFaramir_SKL.GUFaramir_ATNB AnimationMode = LOOP AnimationBlendTime = 15 End BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end if Prev == "STATE_Idle_Bow" then CurDrawableSetTransitionAnimState("TRANS_BoredToSelectedBow") return end if Prev == "STATE_CaptainBow" then CurDrawableSetTransitionAnimState("TRANS_CaptainBowToSelectedBow") end EndScript End ;;--------------- IDLE STATES ----------------------------------------------------------------- AnimationState = WEAPONLOCK_SECONDARY StateName = STATE_Idle_Sword Animation = IDLE AnimationName = GUFaramir_SKL.GUFaramir_IDLE AnimationMode = LOOP AnimationPriority = 20 AnimationBlendTime = 15 End Animation = IDLF AnimationName = GUFaramir_SKL.GUFaramir_IDLF AnimationMode = LOOP AnimationPriority = 1 End Animation = IDLG AnimationName = GUFaramir_SKL.GUFaramir_IDLG AnimationMode = LOOP AnimationPriority = 1 End BeginScript CurDrawableHideSubObject("arrow") Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Idle_Bow" then CurDrawableSetTransitionAnimState("TRANS_BowToSword") end if Prev == "STATE_Selected_Sword" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBoredSword") end EndScript End IdleAnimationState StateName = STATE_Idle_Bow Animation = IdleBow AnimationName = GUFaramir_SKL.GUFaramir_IDLC AnimationMode = ONCE AnimationBlendTime = 15 End BeginScript CurDrawableShowSubObject("arrow") Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Idle_Sword" then CurDrawableSetTransitionAnimState("TRANS_SwordToBow") end if Prev == "STATE_Selected_Bow" then CurDrawableSetTransitionAnimState("TRANS_SelectedToBoredBow") end EndScript End ;---transitions-------------------------------------------- TransitionState = TRANS_BoredToSelectedSword Animation = ANTD AnimationName = GUFaramir_SKL.GUFaramir_ANTD AnimationMode = ONCE End End TransitionState = TRANS_SelectedToBoredSword Animation = ATNF AnimationName = GUFaramir_SKL.GUFaramir_ATNF AnimationMode = ONCE End End TransitionState = TRANS_BoredToSelectedBow Animation = ATNC AnimationName = GUFaramir_SKL.GUFaramir_ATNC AnimationMode = ONCE End End TransitionState = TRANS_CaptainBowToSelectedBow Animation = ATNC AnimationName = GUFaramir_SKL.GUFaramir_ATNC AnimationMode = ONCE AnimationBlendTime = 10 AnimationSpeedFactorRange = 1.5 1.5 End End TransitionState = TRANS_SelectedToBoredBow Animation = ATNA ; AnimationName = GUFaramir_SKL.GUFaramir_ATNA AnimationName = GUFaramir_SKL.GUFaramir_ATND AnimationMode = ONCE End End TransitionState = TRANS_BowToSword Animation = GUFaramir_STHA AnimationName = GUFaramir_SKL.GUFaramir_STHA AnimationMode = ONCE End End TransitionState = TRANS_SwordToBow Animation = GUFaramir_STHB AnimationName = GUFaramir_SKL.GUFaramir_STHB AnimationMode = ONCE End End TransitionState = TRANS_BowToSword_Running Animation = DrawSwords AnimationName = GUFaramir_SKL.GUFaramir_STHD AnimationMode = ONCE End End TransitionState = TRANS_SwordToBow_Running Animation = DrawBow AnimationName = GUFaramir_SKL.GUFaramir_STHC AnimationMode = ONCE End End End [...] WeaponSet Conditions = None Weapon = PRIMARY FaramirBow Weapon = SECONDARY FaramirSword AutoChooseSources = SECONDARY NONE End [...] ;;; SWORD FIGHTER SPECIAL POWER (Rank 2) ;;; Behavior = UnpauseSpecialPowerUpgrade ModuleTag_SwordEnabler SpecialPowerTemplate = SpecialAbilityKnifeFighter TriggeredBy = Upgrade_Level2 End Behavior = WeaponModeSpecialPowerUpdate ModuleTag_SwordFighterPowerUpdate SpecialPowerTemplate = SpecialAbilityKnifeFighter Duration = 30000 AttributeModifier = FaramirSwordFighterBonus LockWeaponSlot = SECONDARY StartsPaused = Yes End [...]