The 3rd Age

Special Extended Edition

Special Extended Edition

Created with the intention to add "realism" and "ambience" from the Lord of the Rings movies...

Button for The 3rd AgeButton for The Dwarf HoldsButton for The Elven AllianceButton for Helm's Deep Last HopeButton for GothmogtheOrcButton for BFME+Button for The Four AgesButton for HDR HeadquartersButton for Middle Earth CenterButton for Project Perfect Mod

Become an affiliate!

   

Quick Lists

Top Rated Popular New Updated Last Comments Users

Register and log in to move these advertisements down

Making a Combined Horde

Avatar of GothmogtheOrc

GothmogtheOrc

Category: Code
Level: Intermediate
Created: Monday March 26, 2007 - 11:45
Updated: Monday March 26, 2007 - 13:24
Views: 6384
Summary: How to make two hordes combine together

Rating

Staff says

3.5

Members say

4.0

Average

3.8/5.0

9 votes

Making a New Combined Horde

Written by: Moria_Goblin256

This tutorial will be going over the basics of creating a combination horde, that will be able to be made from two groups of separate units. For this tutorial, we'll be making a Goblin Swordsman/Archer Combo Horde.

1. Making the Combo Horde itself
--------------------
Go into your ini files and open up evilfactionhordes.ini
When this is done, scroll down until you find "MordorFighterArcherComboHorde." The full set should look like this:

              
Code

Object MordorFighterArcherComboHorde

; This is required for garrisoned objects - please put in all objects.
ButtonImage = BIUrukPit_Crossbowmen
SelectPortrait = UPMordor_Army
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None ;InvisHrdeTmp7x6
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeTemp_7By6
End
End

Side = Mordor
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeMordorArcherFighterCombo

WeaponSet
Conditions = None
Weapon = PRIMARY MordorArcherMissileHordeRangefinder
End

BuildCost = 300
BuildTime = 10.0
VisionRange = 320
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
CommandPoints = 40
CommandSet = MordorFighterArcherComboHordeCommandSet

FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 2 ; Depth it occupies in formations. Current choices are 1 or 2.

TransportSlotCount = 1
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ORC COMBO_HORDE ARCHER ARMY_SUMMARY CAN_USE_SIEGE_TOWER ;UNATTACKABLE ORC

Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End

Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes ; Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End

Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorFighter 10
InitialPayload = MordorArcher 10
Slots = 20
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)

; Banner Carrier info
BannerCarriersAllowed = MordorBannerOrc ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:MordorFighter Pos:X:70.0 Y:0.0 ; (DEFAULT) position of banner carrier for archer horde
; BannerCarrierPosition = UnitType:MordorArcher Pos:X:20.0 Y:0.0 ; position of banner carrier for archer horde

;Positions for 20
RankInfo = RankNumber:1 UnitType:MordorArcher Position:X:22 Y:-32 Position:X:22 Y:-10 Position:X:22 Y:10 Position:X:22 Y:32
RankInfo = RankNumber:2 UnitType:MordorArcher Position:X:2 Y:-32 Position:X:2 Y:-10 Position:X:2 Y:10 Position:X:2 Y:32
RankInfo = RankNumber:3 UnitType:MordorArcher Position:X:-22 Y:-10 Position:X:-22 Y:10

RankInfo = RankNumber:4 UnitType:MordorFighter Position:X:42 Y:-50 Position:X:42 Y:-32 Position:X:42 Y:-10 Position:X:42 Y:10 Position:X:42 Y:32 Position:X:42 Y:47
RankInfo = RankNumber:5 UnitType:MordorFighter Position:X:27 Y:-50 Position:X:22 Y:50
RankInfo = RankNumber:6 UnitType:MordorFighter Position:X:2 Y:-50 Position:X:2 Y:50
;RankInfo = RankNumber:7 UnitType:MordorFighter Position:X:-27 Y:-50 Position:X:-22 Y:50

SplitHorde = SplitResult:MordorArcherHorde UnitType:MordorArcher
SplitHorde = SplitResult:MordorFighterHorde UnitType:MordorFighter
MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.
RanksThatStopAdvance = 3
RanksToReleaseWhenAttacking = 1 2 3 4 5 6 7
RanksToJustFreeWhenAttacking = 1 2 3 4 5 6 7
End

Behavior = SplitHordeSpecialPower ModuleTag_SplitHorde
SpecialPowerTemplate = SpecialAbilitySplitHorde
End

Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End

Behavior = LargeGroupBonusUpdate ModuleTag_LargeGroupBonus
UpdateRate = 1000
HordeMemberFilter = NONE +MordorFighter +MordorArcher
Count = 100
Radius = 160.0
RubOffRadius = 160.0
AlliesOnly = Yes
AttributeModifier = MordorLargeGroupBonus
End

Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = NONE +RohanOathbreakerHordeSmall +GondorGwaihir +RohanTreeBerd +RohanEntFir +RohanEntAsh +RohanEntBirch +MordorFellBeast +MordorWitchKingOnFellBeast +MordorBalrog +MordorCaveTroll +MordorMountainTroll +MordorDrummerTroll +MordorMumakil ;Must be SCARY kindof as well.
AlwaysAfraidOf = NONE +MordorBalrog +RohanOathbreaker; +MordorWitchKing +MordorWitchKingOnFellBeast
PointAt = NONE +GondorGwaihir
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS

AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = UncontrollableFear_Base_Evil
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = Taunt_Base
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End

LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_EVIL_INFANTRY_HORDE_SPEED
End

Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End

Behavior = LevelUpUpgrade ModuleTag_BasicTraining
TriggeredBy = Upgrade_MordorBasicTraining Upgrade_TechnologyMordorBasicTraining
RequiresAllTriggers = Yes
LevelsToGain = 1
LevelCap = 2
End

Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_MordorFireArrows Upgrade_TechnologyMordorFireArrows
RequiresAllTriggers = Yes
End

Geometry = BOX
GeometryMajorRadius = 40 ;32.0
GeometryMinorRadius = 40 ;32.0
GeometryHeight = 12.0
GeometryIsSmall = No
End


Once found, begin making changes to the unit types and filters. First off, change the object to "MordorGoblinFighterArcherComboHorde." Next, Change ALL MordorFighter tags to MordorGoblinSwordsman, and MordorArcher tags to MordorGoblinArcher.

              
Code

SplitHorde = SplitResult:MordorArcherHorde UnitType:MordorArcher
SplitHorde = SplitResult:MordorFighterHorde UnitType:MordorFighter


Change the names here to MordorGoblinArcherHorde, and MordorGoblinFighterHorde.

The result should look like this:

              
Code

Object MordorGoblinFighterArcherComboHorde

; This is required for garrisoned objects - please put in all objects.
ButtonImage = BIUrukPit_Crossbowmen
SelectPortrait = UPMordor_Army
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionState
Model = None ;InvisHrdeTmp7x6
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeTemp_7By6
End
End

Side = Mordor
EditorSorting = UNIT
EmotionRange = 240
DisplayName = OBJECT:HordeMordorGoblinArcherFighterCombo

WeaponSet
Conditions = None
Weapon = PRIMARY MordorArcherMissileHordeRangefinder
End

BuildCost = 300
BuildTime = 10.0
VisionRange = 320
CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehicles
CommandPoints = 40
CommandSet = MordorFighterArcherComboHordeCommandSet

FormationWidth = 2 ; Width it occupies in formations. Current choices are 1 or 2.
FormationDepth = 2 ; Depth it occupies in formations. Current choices are 1 or 2.

TransportSlotCount = 1
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE ORC COMBO_HORDE ARCHER ARMY_SUMMARY CAN_USE_SIEGE_TOWER ;UNATTACKABLE ORC

Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End

Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes ; Can fire out of garrisoned building
AILuaEventsList = InfantryFunctions
AttackPriority = AttackPriority_Archer
End

Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorGoblinSwordsman 10
InitialPayload = MordorGoblinArcher 10
Slots = 20
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)

;Positions for 20
RankInfo = RankNumber:1 UnitType:MordorGoblinArcher Position:X:22 Y:-32 Position:X:22 Y:-10 Position:X:22 Y:10 Position:X:22 Y:32
RankInfo = RankNumber:2 UnitType:MordorGoblinArcher Position:X:2 Y:-32 Position:X:2 Y:-10 Position:X:2 Y:10 Position:X:2 Y:32
RankInfo = RankNumber:3 UnitType:MordorGoblinArcher Position:X:-22 Y:-10 Position:X:-22 Y:10

RankInfo = RankNumber:4 UnitType:MordorGoblinSwordsman Position:X:42 Y:-50 Position:X:42 Y:-32 Position:X:42 Y:-10 Position:X:42 Y:10 Position:X:42 Y:32 Position:X:42 Y:47
RankInfo = RankNumber:5 UnitType:MordorGoblinSwordsman Position:X:27 Y:-50 Position:X:22 Y:50
RankInfo = RankNumber:6 UnitType:MordorGoblinSwordsman Position:X:2 Y:-50 Position:X:2 Y:50

SplitHorde = SplitResult:MordorGoblinArcherHorde UnitType:MordorGoblinArcher
SplitHorde = SplitResult:MordorGoblinFighterHorde UnitType:MordorGoblinSwordsman
MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.
RanksThatStopAdvance = 3
RanksToReleaseWhenAttacking = 1 2 3 4 5 6 7
RanksToJustFreeWhenAttacking = 1 2 3 4 5 6 7
End

Behavior = SplitHordeSpecialPower ModuleTag_SplitHorde
SpecialPowerTemplate = SpecialAbilitySplitHorde
End

Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End

Behavior = LargeGroupBonusUpdate ModuleTag_LargeGroupBonus
UpdateRate = 1000
HordeMemberFilter = NONE +MordorGoblinSwordsman +MordorGoblinArcher
Count = 100
Radius = 160.0
RubOffRadius = 160.0
AlliesOnly = Yes
AttributeModifier = MordorLargeGroupBonus
End

Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RADIUS ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = NONE +RohanOathbreakerHordeSmall +GondorGwaihir +RohanTreeBerd +RohanEntFir +RohanEntAsh +RohanEntBirch +MordorFellBeast +MordorWitchKingOnFellBeast +MordorBalrog +MordorCaveTroll +MordorMountainTroll +MordorDrummerTroll +MordorMumakil ;Must be SCARY kindof as well.
AlwaysAfraidOf = NONE +MordorBalrog +RohanOathbreaker; +MordorWitchKing +MordorWitchKingOnFellBeast
PointAt = NONE +GondorGwaihir
HeroScanDistance = 150
FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS

AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = UncontrollableFear_Base_Evil
AddEmotion = FearIdle_Base
AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = Taunt_Base
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
End

LocomotorSet
Locomotor = NormalMeleeHordeLocomotor
Condition = SET_NORMAL
Speed = NORMAL_EVIL_INFANTRY_HORDE_SPEED
End

Behavior = ProductionUpdate ProductionUpdateModuleTag
GiveNoXP = Yes
End

Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality
TriggeredBy = Upgrade_MordorFireArrows Upgrade_TechnologyMordorFireArrows
RequiresAllTriggers = Yes
End

Geometry = BOX
GeometryMajorRadius = 40 ;32.0
GeometryMinorRadius = 40 ;32.0
GeometryHeight = 12.0
GeometryIsSmall = No
End


Your new combo horde is done, but ingame, you cannot combine the other two hordes to make it.

1. Touching up the other two Hordes.
--------------------
To make the Horde be able to appear in game, you will need to add some new things to the other Goblin hordes. Scroll down until you find MordorGoblinFighterHorde. Once there, find this area:

              
Code

Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorGoblinSwordsman 10
Slots = 10
PassengerFilter = ANY +INFANTRY +MONSTER
ShowPips = No
RandomOffset=X:5 Y:5

RankInfo = RankNumber:1 UnitType:MordorGoblinSwordsman Position:X:20 Y:-23 Position:X:20 Y:0 Position:X:20 Y:24
RankInfo = RankNumber:2 UnitType:MordorGoblinSwordsman Position:X:0 Y:-20 Position:X:0 Y:0 Position:X:0 Y:20
RankInfo = RankNumber:3 UnitType:MordorGoblinSwordsman Position:X:-20 Y:-26 Position:X:-20 Y:-10 Position:X:-20 Y:10 Position:X:-20 Y:21
RanksToReleaseWhenAttacking = 1 2 3

MeleeAttackLeashDistance = 50; How far the hordes can move from the center of the horde when melee attacking.
End


After finding this area, you'll need to add this tag directly below the MeleeAttackLeashDistance tag:

              
Code

ComboHorde = Target:MordorGoblinArcherHorde Result:MordorGoblinFighterArcherComboHorde InitiateVoice:OrcFighterVoiceJoinArcher


This tag is basicly saying MordorGoblinFighterHorde + MordorGoblinArcherHorde = MordorGoblinFighterArcherComboHorde. Next, scroll up to MordorFighterHorde and look for this:


              
Code

Behavior = LargeGroupBonusUpdate ModuleTag_LargeGroupBonus
UpdateRate = 1000
HordeMemberFilter = NONE +MordorFighter +MordorArcher
Count = 100
Radius = 160.0
RubOffRadius = 160.0
AlliesOnly = Yes
AttributeModifier = MordorLargeGroupBonus
End


Once found, copy it to MordorGoblinFighterHorde, and change MordorFighter to MordorGoblinSwordsman and MordorArcher to MordorGoblinArcher. It should look like this when it's finished:

              
Code

Behavior = LargeGroupBonusUpdate ModuleTag_LargeGroupBonus
UpdateRate = 1000
HordeMemberFilter = NONE +MordorGoblinSwordsman +MordorGoblinArcher
Count = 100
Radius = 160.0
RubOffRadius = 160.0
AlliesOnly = Yes
AttributeModifier = MordorLargeGroupBonus
End


The 1st goblin horde has been redone, now for the Archer horde. Directly below the Goblin Fighter horde is the goblin archer horde. The archer horde is different in the fact that it's a Child Object. You will need to make simmilar modifications to it, but be careful at how you place things. Make a back-up file before modifying this horde. My modified horde looks like this:

              
Code

ChildObject MordorGoblinArcherHorde MordorArcherHorde

Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = MordorGoblinArcher 10
Slots = 10
PassengerFilter = NONE +INFANTRY
ShowPips = No
RandomOffset=X:9 Y:9

RankInfo = RankNumber:1 UnitType:MordorGoblinArcher Position:X:40 Y:0 Position:X:40 Y:12 Position:X:40 Y:-12 Position:X:40 Y:45 Position:X:40 Y:-45
RankInfo = RankNumber:2 UnitType:MordorGoblinArcher Position:X:12 Y:0 Position:X:12 Y:30 Position:X:12 Y:-30 Position:X:12 Y:50 Position:X:12 Y:-50

RanksToReleaseWhenAttacking = 1 2
ComboHorde = Target:MordorGoblinFighterHorde Result:MordorGoblinFighterArcherComboHorde InitiateVoice:OrcFighterVoiceJoinArcher
End

Behavior = LargeGroupBonusUpdate ModuleTag_LargeGroupBonus
UpdateRate = 1000
HordeMemberFilter = NONE +MordorGoblinSwordsman +MordorGoblinArcher
Count = 100
Radius = 160.0
RubOffRadius = 160.0
AlliesOnly = Yes
AttributeModifier = MordorLargeGroupBonus
End

End


After making the modificatons, your new combo horde should be ready to kill. If you did everything right they should look something like the screenshot below.

Links / Downloads

 HitsAdded
Goblin Combo Horde JPG image1548March 26, 2007 - 13:22

Credits

Moria_Goblin256

Go to top

 

"One site to rule them all, one site to find them,
one site to host them all, and on the network bind them."

 
17:31:12