GothmogtheOrc
|
Category: |
Code |
Level: |
Intermediate
|
Created: |
Monday March 26, 2007 - 11:45 |
Updated: |
Monday March 26, 2007 - 13:24 |
Views: |
6386 |
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.