Register and log in to move these advertisements down
Horde Mount/Dismount Ability
Rob38
|
Category: |
Code |
Level: |
Expert
|
Created: |
Wednesday December 19, 2007 - 14:55 |
Updated: |
Saturday June 27, 2009 - 18:18 |
Views: |
12781 |
Summary: |
Giving hordes the ability to toggle between horse and foot. |
|
Rating
Staff says
4.8
|
Members say
4.0
|
Average
4.3/5.0
|
11 votes
|
1. Ok, first thing to do is have your unit and horde work properly while on foot. You want to have this all set up so things don't get messy later on :)
2. Right now, let's just focus on the unit object. I'll go over the horde later to avoid confusion. First, set up the animations and model conditions for the mounted part of your unit. Remember, list all your mounted animations before the foot animations.
Code |
DefaultModelConditionState
Model = ru_hdguard
Skeleton = CHHW_CG_U_SKL
End
ModelConditionState = MOUNTED
Model = ru_hdguardhrse
Skeleton = CHHW_MW_M_SKL
End
|
3. Next, we need to add several animations to the object. This is what we use during the special power behavior (explained later on).
NOTE: There is a problem with the animations for the horde. Please look at page 7 of the tutorial for further explanation.
Code |
; --- Mounting/Dismounting
AnimationState = MOUNTED UNPACKING USER_6 ;PREPARING SPECIAL_POWER_3
Animation = RousingSpeech
AnimationName = #(MODEL)_M_IRFA
AnimationMode = ONCE
AnimationBlendTime = 5
; AnimationSpeedFactorRange = 0.76 0.76
End
End
AnimationState = MOUNTED PACKING ;SPECIAL_POWER_3
Animation = RousingSpeech
AnimationName = #(MODEL)_M_IRFA
AnimationMode = ONCE
AnimationBlendTime = 5
; AnimationSpeedFactorRange = 0.76 0.76
End
End
; --- Mounting/Dismounting
AnimationState = UNPACKING USER_6 ;PREPARING SPECIAL_POWER_3
Animation = SPCC
AnimationName = #(MODEL)_U_SPCC
AnimationMode = ONCE
;;;AnimationBlendTime = 5
; AnimationSpeedFactorRange = 0.6 0.6
End
End
AnimationState = PACKING ;SPECIAL_POWER_3
Animation = SPCC
AnimationName = #(MODEL)_U_SPCC
AnimationMode = ONCE
;;;AnimationBlendTime = 5
; AnimationSpeedFactorRange = 0.6 0.6
End
End
|
4. Now that all your animations and models are set up, create three new upgrades for your weaponset, armorset, and locomotor.
Code |
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY HelmDefenderSwordMounted
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
ArmorSet
Conditions = PLAYER_UPGRADE
Armor = HelmDefenderArmorMounted
DamageFX = NormalDamageFX
End
LocomotorSet
Locomotor = NormalHorseHordeMemberLocomotor
Condition = SET_NORMAL_UPGRADED
Speed = NORMAL_CAVALRY_FAST_MEMBER_SPEED
End
|
5. Now we set up all the crushing status on the unit
Code |
CrusherLevel = 0 //Can I crush anything?
MountedCrusherLevel = 1 //Crush level when mounted.
CrushableLevel = 0
MountedCrushableLevel = 3 //Crusable level when mounted.
CrushWeapon = HeroCrush
CrushRevengeWeapon = HelmDefenderCrushRevenge
MinCrushVelocityPercent = 62 ;50
CrushDecelerationPercent = 10 ;30
CrushKnockback = 40
CrushZFactor = 1.0 |
6. Have 4 upgrades set aside for your unit. They don't have to be new upgrades, but to make this tutorial more clear, I'll create new ones.
Code |
Upgrade Upgrade_HelmDefenderMount
Type = OBJECT
End
Upgrade Upgrade_HelmDefenderDisMount
Type = OBJECT
End
Upgrade Upgrade_MountAI
Type = OBJECT
End
Upgrade Upgrade_DisMountAI
Type = OBJECT
End |
7. Make a new special power for your unit.
Code |
SpecialPower SpecialAbilityHelmDefenderMount
Enum = SPECIAL_SHIELD_BUBBLE
ReloadTime = 3000 ; in milliseconds
End |
8. Now make 4 new commandbuttons. The two SPECIAL_POWER ones are going to be used by the human player while the two OBJECT_UPGRADE
ones will be used by the AI (reason explained at end of tutorial).
Code |
CommandButton Command_HelmDefenderMount
Command = SPECIAL_POWER
SpecialPower = SpecialAbilityHelmDefenderMount
Options = OK_FOR_MULTI_SELECT OK_FOR_MULTI_EXECUTE ON_GROUND_ONLY
TextLabel = MAP:HelmDefenderMount
ButtonImage = HelmDefenderMountButtonImage
ButtonBorderType = ACTION
DescriptLabel = MAP:ToolTipHelmDefenderMount2
InPalantir = Yes
UnitSpecificSound = HelmDefenderVoiceMountMS
End
CommandButton Command_HelmDefenderDisMount
Command = SPECIAL_POWER
SpecialPower = SpecialAbilityHelmDefenderMount
Options = OK_FOR_MULTI_SELECT OK_FOR_MULTI_EXECUTE ON_GROUND_ONLY
TextLabel = MAP:HelmDefenderDisMount
ButtonImage = HelmDefenderDisMountButtonImage
ButtonBorderType = ACTION
DescriptLabel = MAP:ToolTipHelmDefenderDisMount
InPalantir = Yes
UnitSpecificSound = HelmDefenderVoiceDismountMS
End
CommandButton Command_HelmDefenderMountAI
Command = OBJECT_UPGRADE
Options = OK_FOR_MULTI_SELECT OK_FOR_MULTI_EXECUTE ON_GROUND_ONLY
Upgrade = Upgrade_HelmDefenderMount
TextLabel = MAP:HelmDefenderMount
ButtonImage = HelmDefenderMountButtonImage
ButtonBorderType = ACTION
DescriptLabel = MAP:ToolTipHelmDefenderMount2
InPalantir = Yes
UnitSpecificSound = HelmDefenderVoiceMountMS
End
CommandButton Command_HelmDefenderDisMountAI
Command = OBJECT_UPGRADE
Options = OK_FOR_MULTI_SELECT OK_FOR_MULTI_EXECUTE ON_GROUND_ONLY
Upgrade = Upgrade_HelmDefenderDisMount
TextLabel = MAP:HelmDefenderDisMount
ButtonImage = HelmDefenderDisMountButtonImage
ButtonBorderType = ACTION
DescriptLabel = MAP:ToolTipHelmDefenderDisMount
InPalantir = Yes
UnitSpecificSound = HelmDefenderVoiceDismountMS
End
|
9. Make two seperate commandsets with one being for mount and the other being for foot.
Code |
CommandSet HelmDefenderCommandSet
1 = Command_ToggleStance
2 = Command_HelmDefenderThrowSpear
3 = Command_HelmDefenderMount
4 = Command_PurchaseUpgradeRohanBasicTrainingStrongHD
7 = Command_HelmDefenderThrowSpearAI
8 = Command_HelmDefenderMountAI
9 = Command_HelmDefenderDisMountAI
12 = Command_CaptureBuilding
13 = Command_AttackMove
14 = Command_Stop
16 = Command_SetStanceBattle
17 = Command_SetStanceAggressive
18 = Command_SetStanceHoldGround
End
CommandSet HelmDefenderDismountCommandSet
1 = Command_ToggleStance
2 = Command_HelmDefenderThrowSpear
3 = Command_HelmDefenderDisMount
4 = Command_PurchaseUpgradeRohanBasicTrainingStrongHD
7 = Command_HelmDefenderThrowSpearAI
8 = Command_HelmDefenderMountAI
9 = Command_HelmDefenderDisMountAI
12 = Command_CaptureBuilding
13 = Command_AttackMove
14 = Command_Stop
16 = Command_SetStanceBattle
17 = Command_SetStanceAggressive
18 = Command_SetStanceHoldGround
End |
NOTE: If you notice, the AI commands cannot be used or seen by the player. This is exactly what we want.
Links / DownloadsCommentsDisplay order: Newest first Rob38 (Team Chamber Member) - Sunday December 23, 2007 - 21:00 Ugh... ok, Sul, I tried your method and I was able to improve everything except for one thing. The animation will play when it's just an individual unit, but when it's a horde, it refuses to play one. I have tried tons of things but nothing works. I'll update this tutorial after I try some other things out.
EDIT: Yeah, I'm stumped. Unless someone can find a way to get the animation to work for the horde, it looks like we'll have to do without them :( Once I clean up and double check to make sure everything runs correctly, I'll edit and fix up the tutorial.
--------
Re-did the tutorial. If you find a solution to any of the problems on Page 7, please let me know :) Sulherokhh (Team Chamber Member) - Friday December 21, 2007 - 19:59 Sweet! :) It sure looks perfectly functional, and since you tested it, we now all know it works!! :D
For further ideas on switching commandsets (which are identical, except for the single button that buys upgrades) and the use of specific animations to play for mounting /dismounting (by using a special power instead of an OBJECT_UPGRADE button), refer to 'blackrider_SEE.ini' from S.E.E. The specialpower (and LocomotorUpgrades) would have to be installed in both horde AND hordemember, but the LuaFunctions would only be needed in the horde, just like the CommandSetMonitor) These black riders don't mount horses the usual way, as the normal mount behavior has been reserved for mounting fellbeasts. Rob38 (Team Chamber Member) - Friday December 21, 2007 - 14:19 Yeah, the commandset is quite an annoyance but I can't find any other solution to the problem :( JEV3 - Friday December 21, 2007 - 11:50 Pity the commandset is so unfriendly... But to have a horde be able to mount and dismount is worth it. Rob38 (Team Chamber Member) - Thursday December 20, 2007 - 22:35 Please leave comments :)
EDIT: Fixed an error in article... HorseHordeContain is the behavior you want to use for the horde behavior
Go to top
|