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: |
12761 |
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
|
Now that the unit is all set up, we now work on the horde. It is similar to the unit in many ways but there are several differences.
1. Set up the weaponset and locomotor upgrade. No armor one is needed for the horde.
Code |
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY NormalMeleeHordeRangefinderHD
AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
End
LocomotorSet
Locomotor = NormalCavalryHordeLocomotor
Condition = SET_NORMAL_UPGRADED
Speed = NORMAL_CAVALRY_FAST_HORDE_SPEED
End |
2. Next, add all the crushing information to the horde. The crush weapons are not needed in the horde.
Code |
CrusherLevel = 0 //Can I crush anything?
MountedCrusherLevel = 1 //Crush level when mounted.
CrushableLevel = 0
MountedCrushableLevel = 2 //Crusable level when mounted.
MinCrushVelocityPercent = 62% // Has to be moving at at least 25% of full speed.
CrushDecelerationPercent = 15% // Lose 10 percent (100/5 horde members) of max velocity when crushing.
CrushKnockback = 40 // how hard we knock back crushed units.
CrushZFactor = 1.0 // How much we knock upwards.
|
3. For the horde contain, use the horse one and not the regular one.
Code |
Behavior = HorseHordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = HelmDefender 4
Slots = 4
PassengerFilter = NONE +INFANTRY ; ShowPips = No
ThisFormationIsTheMainFormation = Yes
RandomOffset=X:5 Y:5
MeleeBehavior = Amoeba
End
// Banner Carrier info
BannerCarriersAllowed = HelmDefenderBanner // types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:HelmDefenderBanner Pos:X:50.0 Y:-12.5
RankInfo = RankNumber:1 UnitType:HelmDefender Position:X:0 Y:0 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:-50
RanksToReleaseWhenAttacking = 1
MeleeAttackLeashDistance = 25
BackUpMinDelayTime = 1
BackUpMaxDelayTime = 3000
BackUpMinDistance = 1
BackUpMaxDistance = 3
BackupPercentage = 80%
End |
4. Add the AI Update Behavior to the horde. You Need to have the script function in the horde for it to all work.
Code |
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
AILuaEventsList = HelmDefenderFunctions;InfantryFunctions
AttackPriority = AttackPriority_Infantry
End |
5. Copy and paste all the behaviors posted above for the unit into the horde.
Code |
Behavior = SpecialPowerModule ModuleTag_MountSpecialStarter
UpdateModuleStartsAttack = Yes
SpecialPowerTemplate = SpecialAbilityHelmDefenderMount
StartsPaused = No
SetModelCondition = ModelConditionState:USER_6
SetModelConditionTime = 0.1
End
Behavior = ModelConditionSpecialAbilityUpdate ModuleTag_MountSpecialUpdate
SpecialPowerTemplate = SpecialAbilityHelmDefenderMount
UnpackTime = 500 ;100
PreparationTime = 1
PersistentPrepTime = 0
PackTime = 2000
AwardXPForTriggering = 0
MustFinishAbility = Yes
WhichSpecialPower = 3
; BusyForDuration = 1000
; StopUnitBeforeActivating = Yes
End
Behavior = ModelConditionUpgrade ModuleTag_MountModelCondition
TriggeredBy = Upgrade_HelmDefenderMount
AddConditionFlags = MOUNTED
End
Behavior = ObjectCreationUpgrade ModuleTag_RemoveUpgrades1
TriggeredBy = Upgrade_HelmDefenderDisMount
RemoveUpgrade = Upgrade_HelmDefenderMount
End
Behavior = ObjectCreationUpgrade ModuleTag_RemoveUpgrades2
TriggeredBy = Upgrade_HelmDefenderMount
RemoveUpgrade = Upgrade_HelmDefenderDisMount
End
Behavior = LocomotorSetUpgrade ModuleTag_LocomotorMount
TriggeredBy = Upgrade_HelmDefenderMount
End
Behavior = WeaponSetUpgrade MountWeapon
TriggeredBy = Upgrade_HelmDefenderMount
WeaponCondition = PLAYER_UPGRADE
End
Behavior = ArmorUpgrade ModuleTag_MountArmor
TriggeredBy = Upgrade_HelmDefenderMount
ArmorSetFlag = PLAYER_UPGRADE
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetSwitch
TriggeredBy = Upgrade_HelmDefenderMount
ConflictsWith = Upgrade_HelmDefenderDisMount
CommandSet = HelmDefenderDismountCommandSet
End
Behavior = CommandSetUpgrade ModuleTag_CommandSetSwitch2
TriggeredBy = Upgrade_HelmDefenderDisMount
ConflictsWith = Upgrade_HelmDefenderMount
CommandSet = HelmDefenderCommandSet
End |
6. The AI part for the horde is a little bit different than the unit. You do not need the SpecialEnemySenseUpdate behavior and for the behavior DoCommandMount, you do not need the upgrade Upgrade_MountAI.
Code |
Behavior = DoCommandUpgrade Module_DoCommandMount
TriggeredBy = Upgrade_ObjectLevel1 Upgrade_ObjectUnderAIControl
RequiresAllTriggers = Yes
GetUpgradeCommandButtonName = Command_HelmDefenderMountAI
End
Behavior = DoCommandUpgrade Module_DoCommandDismount
TriggeredBy = Upgrade_ObjectUnderAIControl Upgrade_DisMountAI
RequiresAllTriggers = Yes
GetUpgradeCommandButtonName = Command_HelmDefenderDisMountAI
End |
That should do it for the horde. Now onto the banner carrier unit. 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
|