Jump to content


Photo

New formation for hord/ combohord

formation hord combohord units positions buffs debuffs commadns

  • Please log in to reply
5 replies to this topic

#1 Alaric

Alaric
  • New Members
  • 3 posts

Posted 03 March 2012 - 08:01 AM

Hi There.

I´m newbie here and a seeking for some advice about hordes and their formations in BFME 1. I have some experience with Finalbig and moding itself already - I successful increased CP and number of unites in hordes and set them new primary stands (positions) - but now i´m lost.

My wish is create formations with diferent bonuses/ decreases effects on hord or combohord. (e. g. In original, Gondor soldiers have Block formation with increased their defence and decreased speed. I want add new formation for attack with increased speed/ dmg but decreased defence and still can be able change back to primary position.).

I tryed search in code ini.big and I probably need create a new button for this stuff, am i right? If not, what other I need? Can smbdy help me?


Thx for all responses...
Alaric

(I sorry for my english. I´m just a student from non-englishspeaking country)

#2 Meneldil

Meneldil
  • Members
  • 46 posts
  • Location:Yellowstone National Park, WY, USA

Posted 07 April 2012 - 06:26 AM

I see you haven't received a response, so I'll give it a go. I assume you have a copy of INI.big and know how/where to find files with your FinalBig editor.

Let's start with your example of Gondor soldiers in block formation. Go to the gondorhordes.ini file and search for "ChildObject GondorFighterHordeBlock GondorFighterHorde."

Scroll down and you'll see "AttributeModifiers = GondorFighterBlock." This tells you to go the to the attributemodifier.ini file and search for "GondorFighterBlock." You'll then see this code block:

ModifierList GondorFighterBlock
Category = FORMATION
;Modifier = DAMAGE_MULT 40% ; 75% more armor
Modifier = ARMOR 25% ; 75% more armor
Modifier = SPEED 60%
Duration = 0 ; Duration is forever when zero
End


When you put your Gondor soldiers in block formation, their armor increases but their speed decreases. How do you know? Go to the top of the attributemodifier.ini file and you'll see all of the various modifier definitions. As you can see, Armor is additive and Speed is multiplicative. Using the modifier definitions, you can adjust as you desire. Look at some of the other formations and see how attributes change. You can then choose (or create) the formation you want and modify it as you wish. Your note said you wanted to increase the speed & damage while decreasing defense. Here's an example of what that would like like for Gondor soldiers in block formation:

ModifierList GondorFighterBlock
Category = FORMATION
Modifier = DAMAGE_MULT 120%; increased damage
Modifier = ARMOR -40%; reduced armor
Modifier = SPEED 110%; increased speed
Duration = 0 ; Duration is forever when zero
End


#3 Alaric

Alaric
  • New Members
  • 3 posts

Posted 12 April 2012 - 10:51 AM

This look quite easy.

So I done this stuff. But there is one more problem.Take my example of Gondor Soldiers again...

I Edit this Soldiers in GondorHordes.ini


Behavior = HordeContain ModuleTag_HordeContain

ObjectStatusOfContained =

InitialPayload = GondorFighter 20

Slots = 20

PassengerFilter = NONE +INFANTRY

ShowPips = No

ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)

RandomOffset=X:2 Y:2


; Banner Carrier info

BannerCarriersAllowed = GondorBanner ; types of units that are allowed as banner carriers

BannerCarrierPosition = UnitType:GondorFighter Pos:X:-40.0 Y:0.0 ; (DEFAULT) position of banner carrier


; Positions for 20

RankInfo = RankNumber:1 UnitType:GondorFighter Position:X:0 Y:10 Position:X:0 Y:-10 Position:X:0 Y:30 Position:X:0 Y:-30 Position:X:0 Y:50 Position:X:0 Y:-50 Position:X:0 Y:70 Position:X:0 Y:-70 Position:X:0 Y:90 Position:X:0 Y:-90

RankInfo = RankNumber:2 UnitType:GondorFighter Position:X:-20 Y:10 Position:X:-20 Y:-10 Position:X:-20 Y:30 Position:X:-20 Y:-30 Position:X:-20 Y:50 Position:X:-20 Y:-50 Position:X:-20 Y:70 Position:X:-20 Y:-70 Position:X:-20 Y:90 Position:X:-20 Y:-90


RanksToReleaseWhenAttacking = 1 2


; Normal Formations

ComboHorde = Target:GondorArcherHorde Result:GondorFighterArcherComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorRangerHorde Result:GondorFighterRangerComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorKnightHorde Result:GondorKnightFighterComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody


; Alternate formations

ComboHorde = Target:GondorKnightHordeWedgeFormation Result:GondorKnightFighterComboHorde InitiateVoice:TowerGuardVoiceJoinKnights

ComboHorde = Target:GondorArcherHordeWedgeFormation Result:GondorFighterArcherComboHorde InitiateVoice:TowerGuardVoiceJoinArchers

ComboHorde = Target:GondorRangerHordeAmbushFormation Result:GondorFighterRangerComboHorde InitiateVoice:TowerGuardVoiceJoinArchers


AlternateFormation = GondorFighterHordeBlock

AlternateFormation = GondorFighterHordeRush


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

BackUpMinDelayTime = 1 ; The minimum amount of time to delay before backing up

BackUpMaxDelayTime = 3000 ; The maximum amount of time to delay before backing up

BackUpMinDistance = 1 ; The minimum number of cells to backup

BackUpMaxDistance = 3 ; The maximum number of cells to backup

BackupPercentage = 80% ; The amount of chance that a unit will back up.

End



Then I created new ChildObject for my new Gondor soldier´s Rush formation (If I understood your replay well, you said I can edit/ create new stats for every childobject in the game)



ChildObject GondorFighterHordeRush GondorFighterHorde


; Note - for alternate formations, all info outside of the Contain Behavior module is ignored.

; Any modifications need to be done via the Attribute Modifiers in the contain module.

Behavior = HordeContain ModuleTag_HordeContain

ObjectStatusOfContained =

InitialPayload = GondorFighter 20

Slots = 20

PassengerFilter = NONE +INFANTRY

ShowPips = No

ThisFormationIsTheMainFormation = No ;Used to determine which armorset to use (and anything else we want!)

AttributeModifiers = GondorFighterRush


; Banner Carrier info

BannerCarriersAllowed = GondorBanner ; types of units that are allowed as banner carriers

BannerCarrierPosition = UnitType:GondorFighter Pos:X:-30.0 Y:0.0 ; (DEFAULT) position of banner carrier


; Positions for 20

RankInfo = RankNumber:1 UnitType:GondorFighter Position:X:0 Y:10 Position:X:0 Y:-10 Position:X:0 Y:30 Position:X:0 Y:-30

RankInfo = RankNumber:2 UnitType:GondorFighter Position:X:-5 Y:50 Position:X:-5 Y:-50

RankInfo = RankNumber:3 UnitType:GondorFighter Position:X:-10 Y:10 Position:X:-10 Y:-10 Position:X:-10 Y:30 Position:X:-10 Y:-30 Position:X:-10 Y:70 Position:X:-10 Y:-70

RankInfo = RankNumber:4 UnitType:GondorFighter Position:X:-15 Y:50 Position:X:-15 Y:-50 Position:X:-15 Y:90 Position:X:-15 Y:-90

RankInfo = RankNumber:5 UnitType:GondorFighter Position:X:-20 Y:70 Position:X:-20 Y:-70

RankInfo = RankNumber:6 UnitType:GondorFighter Position:X:-25 Y:90 Position:X:-25 Y:-90


RanksToReleaseWhenAttacking = 1 2 3 4 5 6


; Normal formations

ComboHorde = Target:GondorArcherHorde Result:GondorFighterArcherComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorRangerHorde Result:GondorFighterRangerComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorKnightHorde Result:GondorKnightFighterComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody


; Alternate formations

ComboHorde = Target:GondorKnightHordeWedgeFormation Result:GondorKnightFighterComboHorde InitiateVoice:TowerGuardVoiceJoinKnights

ComboHorde = Target:GondorArcherHordeWedgeFormation Result:GondorFighterArcherComboHorde InitiateVoice:TowerGuardVoiceJoinArchers

ComboHorde = Target:GondorRangerHordeAmbushFormation Result:GondorFighterRangerComboHorde InitiateVoice:TowerGuardVoiceJoinArchers


AlternateFormation = GondorFighterHorde

End

End


And I edit stats as you in Attributemodifier.ini:

ModifierList GondorFighterRush
Category = FORMATION
Modifier = DAMAGE_MULT 120%; increased damage
Modifier = ARMOR -40%; reduced armor
Modifier = SPEED 110%; increased speed
Duration = 0 ; Duration is forever when zero
End


I thing there aren´t mistakes in this three codes. And all working well. But now I want my new formation on palantir. So I find some articles about it (like this: http://www.the3rdage...item-67?addview) and try create new button on palantir. I used option from Gondor soldiers Block formation but rewrite all Block to Rush expect for audio and image setting in CommandButton.ini



CommandButton Command_ToggleFormationGondorFighterRush ;;add by me
Command = HORDE_TOGGLE_FORMATION ;;Gondor Soldier
Options = TOGGLE_IMAGE_ON_FORMATION OK_FOR_MULTI_SELECT
ButtonImage = UCFormation_Block UCFormation_Line
ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
TextLabel = CONTROLBAR:ToggleRushFormation CONTROLBAR:ToggleLineFormation
DescriptLabel = CONTROLBAR:ToolTipToggleGFighterLineToRushFormation CONTROLBAR:ToolTipToggleGFighterRushToLineFormation
InPalantir = Yes
DoubleClick = Yes
UnitSpecificSound = GondorSoldierVoiceBlockFormationOn GondorSoldierVoiceLineFormation
End

;CommandButton Command_SetFormationGondorFighterRush ;;add by me
; Command = HORDE_SET_FORMATION
; Options = OK_FOR_MULTI_SELECT
; Object = GondorFighterHordeRush
; ButtonImage = UCFormation_Block
; ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
; TextLabel = CONTROLBAR:ToggleRushFormation
; DescriptLabel = CONTROLBAR:ToolTipToggleRushFormation
; InPalantir = Yes
; DoubleClick = Yes
; UnitSpecificSound = GondorSoldierVoiceBlockFormationOn
;End

;CommandButton Command_SetFormationGondorFighterLine ;;add by me
; Command = HORDE_SET_FORMATION
; Options = OK_FOR_MULTI_SELECT
; Object = GondorFighterHorde
; ButtonImage = UCFormation_Line
; ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
; TextLabel = CONTROLBAR:ToggleLineFormation
; DescriptLabel = CONTROLBAR:ToolTipToggleLineFormation
; InPalantir = Yes
; DoubleClick = Yes
; UnitSpecificSound = GondorSoldierVoiceLineFormation
;End


After that I add this botton to Commandset.ini


CommandSet GondorFighterHordeCommandSet
1 = Command_Guard
2 = Command_ToggleFormationGondorFighter
3 = Command_ToggleFormationGondorFighterRush ;;add by me
4 = Command_PurchaseUpgradeGondorForgedBlades
5 = Command_PurchaseUpgradeGondorHeavyArmor
6 = Command_PurchaseUpgradeGondorBasicTraining
13 = Command_AttackMove
14 = Command_Stop
15 = Command_Guard
End


Now I Have two buttons for toggle formation in palantir. One for Block formation and one with some missing object (This is my Rush formation). But no matter what I turn on. In both cases Gondor Soldiers take position on XY for Rush formation without bunuses/decreses afected their stats. What I had done wrong? Any ideas, please?

Edited by Alaric, 13 April 2012 - 12:43 PM.


#4 Alaric

Alaric
  • New Members
  • 3 posts

Posted 15 April 2012 - 03:57 PM

Yeahhh... I am done.

I am successfuly created my Rush formation for Gondor Soldiers and I can use both of them - Block and Rush with any bonuses/ decreases.

I Used this code:


Object GondorFighterHorde


; This is required for garrisoned objects - please put in all objects.

ButtonImage = BGBarracks_Soldiers

SelectPortrait = UPGondor_Soldier


Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw

DependencySharedModelFlags = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER EMOTION_TERROR EMOTION_LOOK_TO_SKY SELECTED

DefaultModelConditionState

Model = None ;InvisHrdeTmp5x2

End


ModelConditionState = HORDE_EMPTY

Model = None

End


ModelConditionState = WORLD_BUILDER

Model = HordeMarkGUSol

End

End


Side = Gondor

EditorSorting = UNIT

EmotionRange = 240

DisplayName = OBJECT:HordeGondorSoldier


WeaponSet

Conditions = None

Weapon = PRIMARY NormalMeleeHordeRangefinder

End


; *** AUDIO Parameters ***;

; Note: Don't put voice parameters here -- they will be ignored. Voice play requests

; are always passed through to members


UnitSpecificSounds

VoiceDesperateAttack = GondorSoldierVoiceDesperateCharge

End


BuildCost = GONDOR_SOLDIER_BUILDCOST

BuildTime = GONDOR_SOLDIER_BUILDTIME

VisionRange = GONDOR_SOLDIER_HORDE_VISION_RANGE

CommandPoints = 20


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

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


CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles

CrusherLevel = 0


TransportSlotCount = 1

KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT INFANTRY HORDE MELEE_HORDE NOTIFY_OF_PREATTACK ARMY_SUMMARY;;UNATTACKABLE


Body = ImmortalBody ModuleTag_ImmortalBody

MaxHealth = 1

End


Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate

AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS

MoodAttackCheckRate = 500

MaxCowerTime = 5000

MinCowerTime = 3000

AILuaEventsList = InfantryFunctions ;

AttackPriority = AttackPriority_Infantry

End


Behavior = HordeContain ModuleTag_HordeContain

ObjectStatusOfContained =

InitialPayload = GondorFighter 20

Slots = 20

PassengerFilter = NONE +INFANTRY

ShowPips = No

ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)

RandomOffset=X:2 Y:2


; Banner Carrier info

BannerCarriersAllowed = GondorBanner ; types of units that are allowed as banner carriers

BannerCarrierPosition = UnitType:GondorFighter Pos:X:-40.0 Y:0.0 ; (DEFAULT) position of banner carrier


; Positions for 20

RankInfo = RankNumber:1 UnitType:GondorFighter Position:X:0 Y:10 Position:X:0 Y:-10 Position:X:0 Y:30 Position:X:0 Y:-30 Position:X:0 Y:50 Position:X:0 Y:-50 Position:X:0 Y:70 Position:X:0 Y:-70 Position:X:0 Y:90 Position:X:0 Y:-90

RankInfo = RankNumber:2 UnitType:GondorFighter Position:X:-20 Y:10 Position:X:-20 Y:-10 Position:X:-20 Y:30 Position:X:-20 Y:-30 Position:X:-20 Y:50 Position:X:-20 Y:-50 Position:X:-20 Y:70 Position:X:-20 Y:-70 Position:X:-20 Y:90 Position:X:-20 Y:-90


RanksToReleaseWhenAttacking = 1 2


; Normal Formations

ComboHorde = Target:GondorArcherHorde Result:GondorFighterArcherComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorRangerHorde Result:GondorFighterRangerComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorKnightHorde Result:GondorKnightFighterComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody


; Alternate formations

ComboHorde = Target:GondorKnightHordeWedgeFormation Result:GondorKnightFighterComboHorde InitiateVoice:TowerGuardVoiceJoinKnights

ComboHorde = Target:GondorArcherHordeWedgeFormation Result:GondorFighterArcherComboHorde InitiateVoice:TowerGuardVoiceJoinArchers

ComboHorde = Target:GondorRangerHordeAmbushFormation Result:GondorFighterRangerComboHorde InitiateVoice:TowerGuardVoiceJoinArchers


AlternateFormation = GondorFighterHordeBlock


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

BackUpMinDelayTime = 1 ; The minimum amount of time to delay before backing up

BackUpMaxDelayTime = 3000 ; The maximum amount of time to delay before backing up

BackUpMinDistance = 1 ; The minimum number of cells to backup

BackUpMaxDistance = 3 ; The maximum number of cells to backup

BackupPercentage = 80% ; The amount of chance that a unit will back up.

End


Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior

GravityMult = 1.0

End


Behavior = CommandButtonHuntUpdate ModuleTag_CommandButtonHuntUpdate

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 +GondorGwaihir +RohanTreeBerd +RohanEntFir +RohanEntAsh +RohanEntBirch +MordorBalrog +MordorFellBeast +MordorWitchKingOnFellBeast +MordorCaveTroll +MordorMountainTroll +MordorDrummerTroll +MordorMumakil ;Must be SCARY kindof as well.

AlwaysAfraidOf = NONE +MordorBalrog +RohanOathbreaker +MordorSauron ;+MordorWitchKing +MordorWitchKingOnFellBeast

PointAt = NONE +MordorFellBeast +MordorWitchKingOnFellBeast

HeroScanDistance = 150

FearScanDistance = INFANTRY_FEAR_SCAN_RADIUS


AddEmotion = Terror_Base

AddEmotion = Doom_Base ;OVERRIDE

;StartFXList = FX_GondorSoldierDoom ;these have been hooked up in the FXList.INI

;End


AddEmotion = UncontrollableFear_Base ;OVERRIDE

;StartFXList = FX_GondorSoldierFear

;End


AddEmotion = FearIdle_Base ;OVERRIDE

;StartFXList = FX_GondorSoldierFear

;End


AddEmotion = FearBusy_Base ;OVERRIDE

;StartFXList = FX_GondorSoldierFear

;End


AddEmotion = Point_Base ;OVERRIDE

;Duration = 13980

;StartFXList = FX_GondorSoldierPoint

;End


AddEmotion = Taunt_Base ;OVERRIDE

;AttributeModifier = GondorFighterTaunt

;End

AddEmotion = CheerIdle_Base

AddEmotion = CheerBusy_Base

AddEmotion = HeroCheerIdle_Base

AddEmotion = HeroCheerBusy_Base

AddEmotion = Alert_Base

End

LocomotorSet

Locomotor = NormalMeleeHordeLocomotor

Condition = SET_NORMAL

Speed = NORMAL_GOOD_INFANTRY_HORDE_SPEED

End


LocomotorSet

Locomotor = ScaredMeleeHordeLocomotor

Condition = SET_SCARED

Speed = NORMAL_GOOD_INFANTRY_HORDE_SPEED

End


Behavior = ProductionUpdate ProductionUpdateModuleTag

GiveNoXP = Yes

End


Behavior = LevelUpUpgrade ModuleTag_BasicTraining

TriggeredBy = Upgrade_GondorBasicTraining Upgrade_TechnologyGondorBasicTraining

RequiresAllTriggers = Yes

LevelsToGain = 1

LevelCap = 2

End


Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality

TriggeredBy = Upgrade_GondorForgedBlades Upgrade_TechnologyGondorForgedBlades

RequiresAllTriggers = Yes

End


Behavior = StatusBitsUpgrade ModuleTag_ProductionLegality2

TriggeredBy = Upgrade_GondorHeavyArmor Upgrade_TechnologyGondorHeavyArmor

RequiresAllTriggers = Yes

End


CommandSet = GondorFighterHordeCommandSet


Geometry = BOX

GeometryMajorRadius = 20.0

GeometryMinorRadius = 20.0

GeometryHeight = 20.0

GeometryIsSmall = No



End


;------------------------------------------------------------------------------

ChildObject GondorFighterHordeBlock GondorFighterHorde


; Note - for alternate formations, all info outside of the Contain Behavior module is ignored.

; Any modifications need to be done via the Attribute Modifiers in the contain module.

Behavior = HordeContain ModuleTag_HordeContain

ObjectStatusOfContained =

InitialPayload = GondorFighter 20

Slots = 20

PassengerFilter = NONE +INFANTRY

ShowPips = No

ThisFormationIsTheMainFormation = No ;Used to determine which armorset to use (and anything else we want!)

AttributeModifiers = GondorFighterBlock


; Banner Carrier info

BannerCarriersAllowed = GondorBanner ; types of units that are allowed as banner carriers

BannerCarrierPosition = UnitType:GondorFighter Pos:X:-30.0 Y:0.0 ; (DEFAULT) position of banner carrier


; Positions for 20

RankInfo = RankNumber:1 UnitType:GondorFighter Position:X:0 Y:5 Position:X:0 Y:-5 Position:X:0 Y:15 Position:X:0 Y:-15 Position:X:0 Y:25 Position:X:0 Y:-25 Position:X:0 Y:35 Position:X:0 Y:-35 Position:X:0 Y:45 Position:X:0 Y:-45

RankInfo = RankNumber:2 UnitType:GondorFighter Position:X:-15 Y:5 Position:X:-15 Y:-5 Position:X:-15 Y:15 Position:X:-15 Y:-15 Position:X:-15 Y:25 Position:X:-15 Y:-25 Position:X:-15 Y:35 Position:X:-15 Y:-35 Position:X:-15 Y:45 Position:X:-15 Y:-45


RanksToReleaseWhenAttacking = 1 2


; Normal formations

ComboHorde = Target:GondorArcherHorde Result:GondorFighterArcherComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorRangerHorde Result:GondorFighterRangerComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorKnightHorde Result:GondorKnightFighterComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody


; Alternate formations

ComboHorde = Target:GondorKnightHordeWedgeFormation Result:GondorKnightFighterComboHorde InitiateVoice:TowerGuardVoiceJoinKnights

ComboHorde = Target:GondorArcherHordeWedgeFormation Result:GondorFighterArcherComboHorde InitiateVoice:TowerGuardVoiceJoinArchers

ComboHorde = Target:GondorRangerHordeAmbushFormation Result:GondorFighterRangerComboHorde InitiateVoice:TowerGuardVoiceJoinArchers


AlternateFormation = GondorFighterHordeRush

End

End


;------------------------------------------------------------------------------

ChildObject GondorFighterHordeRush GondorFighterHorde


; Note - for alternate formations, all info outside of the Contain Behavior module is ignored.

; Any modifications need to be done via the Attribute Modifiers in the contain module.

Behavior = HordeContain ModuleTag_HordeContain

ObjectStatusOfContained =

InitialPayload = GondorFighter 20

Slots = 20

PassengerFilter = NONE +INFANTRY

ShowPips = No

ThisFormationIsTheMainFormation = No ;Used to determine which armorset to use (and anything else we want!)

AttributeModifiers = GondorFighterRush


; Banner Carrier info

BannerCarriersAllowed = GondorBanner ; types of units that are allowed as banner carriers

BannerCarrierPosition = UnitType:GondorFighter Pos:X:-30.0 Y:0.0 ; (DEFAULT) position of banner carrier


; Positions for 20

RankInfo = RankNumber:1 UnitType:GondorFighter Position:X:0 Y:10 Position:X:0 Y:-10 Position:X:0 Y:30 Position:X:0 Y:-30

RankInfo = RankNumber:2 UnitType:GondorFighter Position:X:-5 Y:50 Position:X:-5 Y:-50

RankInfo = RankNumber:3 UnitType:GondorFighter Position:X:-10 Y:10 Position:X:-10 Y:-10 Position:X:-10 Y:30 Position:X:-10 Y:-30 Position:X:-10 Y:70 Position:X:-10 Y:-70

RankInfo = RankNumber:4 UnitType:GondorFighter Position:X:-15 Y:50 Position:X:-15 Y:-50 Position:X:-15 Y:90 Position:X:-15 Y:-90

RankInfo = RankNumber:5 UnitType:GondorFighter Position:X:-20 Y:70 Position:X:-20 Y:-70

RankInfo = RankNumber:6 UnitType:GondorFighter Position:X:-25 Y:90 Position:X:-25 Y:-90


RanksToReleaseWhenAttacking = 1 2 3 4 5 6


; Normal formations

ComboHorde = Target:GondorArcherHorde Result:GondorFighterArcherComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorRangerHorde Result:GondorFighterRangerComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody

ComboHorde = Target:GondorKnightHorde Result:GondorKnightFighterComboHorde InitiateVoice:GondorSoldierVoiceJoinAnybody


; Alternate formations

ComboHorde = Target:GondorKnightHordeWedgeFormation Result:GondorKnightFighterComboHorde InitiateVoice:TowerGuardVoiceJoinKnights

ComboHorde = Target:GondorArcherHordeWedgeFormation Result:GondorFighterArcherComboHorde InitiateVoice:TowerGuardVoiceJoinArchers

ComboHorde = Target:GondorRangerHordeAmbushFormation Result:GondorFighterRangerComboHorde InitiateVoice:TowerGuardVoiceJoinArchers


AlternateFormation = GondorFighterHorde

End

End


This is my new setup for Gondor soldiers. This mean I created rotation betwen Line formation -> Block formation -> Rush formation -> Line Formation. But now I must add new button for Rush formation, Simply open CommandButton.ini and find this:


;CommandButton Command_SetFormationGondorFighterBlock

; Command = HORDE_SET_FORMATION

; Options = OK_FOR_MULTI_SELECT

; Object = GondorFighterHordeBlock

; ButtonImage = UCFormation_Block

; ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is

; TextLabel = CONTROLBAR:ToggleBlockFormation

; DescriptLabel = CONTROLBAR:ToolTipToggleBlockFormation

; InPalantir = Yes

; DoubleClick = Yes

; UnitSpecificSound = GondorSoldierVoiceBlockFormationOn

;End



Make copy of this code between ;CommandButton Command_SetFormationGondorFighterBlock and ;CommandButton Command_SetFormationGondorFighterLine And rewrite it like this one:

;CommandButton Command_SetFormationGondorFighterRush ;;add by me

; Command = HORDE_SET_FORMATION

; Options = OK_FOR_MULTI_SELECT

; Object = GondorFighterHordeRush

; ButtonImage = UCFormation_Block

; ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is

; TextLabel = CONTROLBAR:ToggleRushFormation

; DescriptLabel = CONTROLBAR:ToolTipToggleRushFormation

; InPalantir = Yes

; DoubleClick = Yes

; UnitSpecificSound = GondorSoldierVoiceBlockFormationOn

;End


For now I learn nothing for changing images/ sounds in the game. Maby later I´ll learn it or I´ll find some articles about this changes. I am glad for help with attribute modifications. But I still thinking about new button for My Rush formation. I wish this button stay alone from my new rotation for more confortable and quickly use in the game.

If somebody have any ideas, pleas don´t hide it.
Alaric

Edited by Alaric, 15 April 2012 - 04:00 PM.


#5 Lauri

Lauri

    Old man Lauri

  • Hosted
  • 10,436 posts
  • Location:Norway
  • Projects:The 4th Age
  •  The very worst T3A Team Chamber Member

Posted 15 April 2012 - 05:51 PM

I have wondered if this was possible, but I never had any need to use it. Thus I never tried my hand at it :p
Still, nice! You should put a tutorial up on the main site! :)

T4A_Logo_-_article.png

The 4th Age version 0.8 has been released: Link


#6 Beginner8

Beginner8
  • New Members
  • 3 posts

Posted 08 September 2012 - 11:14 AM

Um, I thought that this was close enough to my problem that I can post here... so, sorry if I should have started a new post.

But the problem is, I've added/decreased the numbers of warriors in hordes, and it worked alright until I edited the Uruk Pikemen/Fighter-horde. The game wont' even start, and the error message is smt like "Expected floating point value or predefined macro, but found "-38" instead. Error parsing field `RankInfo` in [the hordefile], line 306..." I tried changing the -38 to -15, still same. I've checked the line like twenty times for spelling mistakes, and can't find any. If it's of any help, here's a direct cut-and-paste from my horde-file (of course some of the "Position" lines'd be longer):

Behavior = HordeContain ModuleTag_HordeContain
ObjectStatusOfContained =
InitialPayload = IsengardFighter 15
InitialPayload = IsengardPikeman 18
Slots = 33
PassengerFilter = NONE +INFANTRY
ShowPips = No
ThisFormationIsTheMainFormation = Yes ;Used to determine which armorset to use (and anything else we want!)

; Banner Carrier info
BannerCarriersAllowed = IsengardBannerOrc ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:IsengardFighter Pos:X:70.0 Y:0.0 ; (DEFAULT) position of banner carrier for fighter horde
BannerCarrierPosition = UnitType:IsengardPikeman Pos:X:20.0 Y:0.0 ; position of banner carrier for pikeman horde

;Positions for 33
RandomOffset=X:3 Y:3
RankInfo = RankNumber:1 UnitType:IsengardPikeman Position:X:20 Y:5 Position:X:20 Y:-5 Position:X:20 Y:15 Position:X:20 Y:-15 Position:X:20 Y:25 Position:X:20 Y:-25 Position:X:20 Y:35 Position:X:20 Y:-35 Position:X:20 Y:45
RankInfo = RankNumber:2 UnitType:IsengardPikeman Position:X:10 Y:5 Position:X:10 Y:-5 Position:X:10 Y:15 Position:X:10 Y:-15 Position:X:10 Y:25 Position:X:10 Y:-25 Position:X:10 Y:35 Position:X:10 Y:-35 Position:X:10 Y:45

RankInfo = RankNumber:3 UnitType:IsengardFighter Position:X:-10 Y:-25 Position:X:-10 Y:0 Position:X:-10 Y:25 Position:X:-10 Y:50 Position:X:-10 Y:-50
RankInfo = RankNumber:4 UnitType:IsengardFighter Position:X:-15 Y:-25 Position:X:-15 Y:0 Position:X:-15 Y:25 Position:X:-15 Y:50 Position:X:-15 Y:-50
RankInfo = RankNumber:5 UnitType:IsengardFighter Position:X:-20 Y:-25 Position:X:-20 Y:0 Position:X:-20 Y:25 Position:X:-20 Y:50 Position:X:-20 Y:-50

RanksThatStopAdvance = 2
RanksToReleaseWhenAttacking = 1 2 3 4 5

SplitHorde = SplitResult:IsengardPikemanHorde UnitType:IsengardPikeman
SplitHorde = SplitResult:IsengardFighterHorde UnitType:IsengardFighter

UseSlowHordeMovement = Yes

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

Behavior = SplitHordeSpecialPower ModuleTag_SplitHorde
SpecialPowerTemplate = SpecialAbilitySplitHorde
End

; Removed 9/2/04 R. Casey
;
; Behavior = SpecialEnemySenseUpdate ModuleTag_EnemySenseUpdate
; SpecialEnemyFilter = ALL
; ScanRange = 300
; ScanInterval = 2000
; End

Behavior = PhysicsBehavior ModuleTag_PhysicsBehavior
GravityMult = 1.0
End



A huge thanks for anyone who can offer some assistance :thumbsuphappy:




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users