Also,
ich befasse mich nun seit einigen Tagen mit Combohorden, ich habe es geschafft Horden zu kombinieren, und die Combohorde in dem zugehörigen Gebäude zu kaufen. Als letzten Schritt wollte ich noch die KI dazu bewegen, diese Combohorden ebenfalls zu produzieren.
Problem: Alle Völker ausser Menschen bauen (ausser Geldgebäude und Deffensivtürmen) keine Gebäude. Da keine Orkhöhle gebaut wird, kann die KI auch nicht meine Horde erstellen.
Die letzten 4 Stunden habe ich versucht, das Problem zu beheben, das ist mir allerdings leider nicht gelungen.
Nun die Einzelheiten:
Die Horde (data\ini\object\evilfaction\hordes\wild\wildhordes.ini):
;------------------------------------------------------------------------------------------------------------------
;
; GoblinArcherComboHorde
;
;------------------------------------------------------------------------------------------------------------------
Object GoblinArcherComboHorde
; This is required for garrisoned objects - please put in all objects.
ButtonImage = WOR_GoblinArcher
SelectPortrait = UPWild_GoblinArcher
Draw = W3DScriptedModelDraw ModuleTag_W3DModelDraw
DependencySharedModelFla gs = EMOTION_ALERT EMOTION_MORALE_HIGH EMOTION_MORALE_LOW EMOTION_AFRAID EMOTION_COWER SELECTED EMOTION_TERROR EMOTION_LOOK_TO_SKY
DefaultModelConditionSta te
Model = None ;InvisHrdeTmp
End
ModelConditionState = HORDE_EMPTY
Model = None
End
ModelConditionState = WORLD_BUILDER
Model = HordeMarkAUGAr
End
End
Side = Wild
EditorSorting = UNIT
EmotionRange = 240
TransportSlotCount = TRANSPORTSLOTCOUNT_LARGE _HORDE
DisplayName = OBJECT:HordeGoblinArchers
DisplayNameStrategic = CONTROLBAR:LW_Unit_GoblinArcherHord e
DescriptionStrategic = CONTROLBAR:LW_ToolTip_GoblinArcherH orde
WeaponSet
Conditions = None
Weapon = PRIMARY GoblinArcherMissileHorde Rangefinder
Weapon = TERTIARY GoblinArcherMissileHorde RangefinderBombard
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT ; Not AI.
End
; *** AUDIO Parameters ***;
; Note: Don't put voice parameters here -- they will be ignored. Voice play requests
; are always passed through to members
#include "..\..\..\includes\StandardHordeEvaEvents.inc"
BuildCost = GOBLIN_ARCHER_BUILDCOST
BuildTime = GOBLIN_ARCHER_BUILDTIME
VisionRange = GOBLIN_ARCHER_HORDE_VISI ON_RANGE
ShroudClearingRange = GOBLIN_ARCHER_SHROUD_RAN GE
VisionSide = 50%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoo t = 1.0%
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
UseCrushAttack = No ; Archer hordes cannot crush or Bombard will not work
CommandPoints = 80 ; BALANCE, set up to just produce 2 hordes if 700 cp left originally 60
CommandSet = GoblinArcherHordeCommand Set
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 = TRANSPORTSLOTCOUNT_LARGE _HORDE
KindOf = SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIG HT INFANTRY HORDE ARCHER ARMY_SUMMARY LARGE_RECTANGLE_PATHFIND CAN_CLIMB_WALLS COMBO_HORDE
ThreatLevel = GOBLIN_ARCHER_HORDE_THRE AT
ThreatBreakdown GoblinArcherHorde_Detail edThreat
AIKindOf = ARCHER
End
Body = ImmortalBody ModuleTag_ImmortalBody
MaxHealth = 1
End
Behavior = SpecialPowerModule ModuleTag_PoisonArrowsSt arter
SpecialPowerTemplate = SpecialAbilityPoisonArro ws
UpdateModuleStartsAttack = Yes
End
Behavior = WeaponFireSpecialAbility Update ModuleTag_PoisonArrowsWe aponFireUpdate
SpecialPowerTemplate = SpecialAbilityPoisonArro ws
; this has to be longer than the weapon firing time on the members or
; else the horde will fire its regular weapon and blow away the members' ai.
PackTime = 2000
StartAbilityRange = #SUBTRACT( GOBLIN_ARCHER_RANGE 100 )
SpecialWeapon = GoblinArcherPoisonArrows RangeFinder
ApproachUntilMembersInRa nge = Yes
End
Behavior = StancesBehavior ModuleTag_StancesBehavio r
StanceTemplate = ArcherHorde
End
Behavior = HordeAIUpdate ModuleTag_HordeAIUpdate
AutoAcquireEnemiesWhenId le = Yes ATTACK_BUILDINGS
MoodAttackCheckRate = 500
MaxCowerTime = 5000
MinCowerTime = 3000
CanAttackWhileContained = Yes ; Can fire out of garrisoned building
AILuaEventsList = WildInfantryFunctions
AttackPriority = AttackPriority_Archer
End
Behavior = HordeContain ModuleTag_HordeContain
FrontAngle = 270
FlankedDelay = 2000
ObjectStatusOfContained =
InitialPayload = GoblinArcher 40
Slots = 40
PassengerFilter = NONE +INFANTRY
ShowPips = No
; Banner Carrier info
BannerCarriersAllowed = WildBannerGoblin ; types of units that are allowed as banner carriers
BannerCarrierPosition = UnitType:GoblinArcher Pos:X:75.0 Y:20.0 ; (DEFAULT) position of banner carrier for fighter horde
RandomOffset = X:5 Y:5
RankInfo = RankNumber:1 UnitType:GoblinArcher Position:X:50 Y:0 Position:X:50 Y:20 Position:X:50 Y:-20 Position:X:50 Y:40 Position:X:50 Y:-40 Position:X:50 Y:60 Position:X:50 Y:-60 Position:X:50 Y:80
RankInfo = RankNumber:2 UnitType:GoblinArcher Position:X:30 Y:0 Leader 1 0 Position:X:30 Y:20 Leader 1 1 Position:X:30 Y:-20 Leader 1 2 Position:X:30 Y:40 Leader 1 3 Position:X:30 Y:-40 Leader 1 4 Position:X:30 Y:60 Leader 1 5 Position:X:30 Y:-60 Leader 1 6 Position:X:30 Y:80 Leader 1 7
RankInfo = RankNumber:3 UnitType:GoblinArcher Position:X:10 Y:0 Leader 2 0 Position:X:10 Y:20 Leader 2 1 Position:X:10 Y:-20 Leader 2 2 Position:X:10 Y:40 Leader 2 3 Position:X:10 Y:-40 Leader 2 4 Position:X:10 Y:60 Leader 2 5 Position:X:10 Y:-60 Leader 2 6 Position:X:10 Y:80 Leader 2 7
RankInfo = RankNumber:4 UnitType:GoblinArcher Position:X:-10 Y:0 Leader 3 0 Position:X:-10 Y:20 Leader 3 1 Position:X:-10 Y:-20 Leader 3 2 Position:X:-10 Y:40 Leader 3 3 Position:X:-10 Y:-40 Leader 3 4 Position:X:-10 Y:60 Leader 3 5 Position:X:-10 Y:-60 Leader 3 6 Position:X:-10 Y:80 Leader 3 7
RankInfo = RankNumber:5 UnitType:GoblinArcher Position:X:-30 Y:0 Leader 4 0 Position:X:-30 Y:20 Leader 4 1 Position:X:-30 Y:-20 Leader 4 2 Position:X:-30 Y:40 Leader 4 3 Position:X:-30 Y:-40 Leader 4 4 Position:X:-30 Y:60 Leader 4 5 Position:X:-30 Y:-60 Leader 4 6 Position:X:-30 Y:80 Leader 4 7
RanksToReleaseWhenAttack ing = 1 2 3 4 5
;MeleeAttackLeashDistance = 25; How far the hordes can move from the center of the horde when melee attacking.
End
Behavior = PhysicsBehavior ModuleTag_PhysicsBehavio r
GravityMult = 1.0
End
Behavior = LargeGroupBonusUpdate ModuleTag_LargeGroupBonu s
UpdateRate = 1000
HordeMemberFilter = NONE +GoblinFighter +GoblinArcher
Count = 100
Radius = 160.0
RubOffRadius = 160.0
AlliesOnly = Yes
AttributeModifier = MordorLargeGroupBonus
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker
TauntAndPointDistance = INFANTRY_TAUNT_POINT_RAD IUS ; max distance to taunted/pointed objet
TauntAndPointUpdateDelay = 1000 ; how often scan (milliseconds)
TauntAndPointExcluded = NONE
AfraidOf = EMOTION_AFRAIDOF_OBJECTF ILTER
AlwaysAfraidOf = EMOTION_ALWAYS_AFRAIDOF_ OBJECTFILTER +CloudBreakSunbeam +SunflareSunbeam
PointAt = EMOTION_POINTAT_OBJECTFI LTER
HeroScanDistance = 150
FearScanDistance = ARCHER_FEAR_SCAN_RADIUS ;250
AddEmotion = Terror_Base
AddEmotion = Doom_Base
AddEmotion = BraceForBeingCrushed_Bas e
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
#include "..\..\..\includes\CaptureBuilding.inc"
;LocomotorSet
;Locomotor = NormalRangedHordeLocomot or
;Condition = SET_NORMAL
;Speed = NORMAL_WILD_FAST_HORDE_S PEED
;End
LocomotorSet
Locomotor = TestWallScalingHordeLoco motor
Condition = SET_NORMAL
Speed = NORMAL_WILD_FAST_HORDE_S PEED ; RotWK originally NORMAL_FOOT_VERYFAST_HOR DE_SPEED
End
Behavior = ProductionUpdate ProductionUpdateModuleTa g
GiveNoXP = Yes
End
Behavior = LevelUpUpgrade ModuleTag_BasicTraining2
TriggeredBy = Upgrade_WildBasicTrainin g
LevelsToGain = 1
LevelCap = 2
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLega lity
TriggeredBy = Upgrade_WildFireArrows
End
Behavior = StatusBitsUpgrade ModuleTag_ProductionLega lity2
TriggeredBy = Upgrade_WildHeavyArmor
End
Behavior = PickupStuffUpdate ModuleTag_PickupStuffUpd ate
SkirmishAIOnly = Yes
StuffToPickUp = NONE +CRATE
ScanRange = 200
ScanIntervalSeconds = 0.5
End
;///////////////////
; AISpecialPowers
;///////////////////
Behavior = AISpecialPowerUpdate GoblinArcherHordeCapture BuildingAI
CommandButtonName = Command_CaptureBuilding
SpecialPowerAIType = AI_SPECIAL_POWER_CAPTURE _BUILDING
End
Behavior = AISpecialPowerUpdate GondorFighterHordeStance Battle
CommandButtonName = Command_SetStanceBattle
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEB ATTLE
End
Behavior = AISpecialPowerUpdate GondorFighterHordeStance Aggressive
CommandButtonName = Command_SetStanceAggress ive
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEA GGRESSIVE
End
Behavior = AISpecialPowerUpdate GondorFighterHordeHoldGr ound
CommandButtonName = Command_SetStanceHoldGro und
SpecialPowerAIType = AI_SPECIAL_POWER_STANCEH OLDGROUND
End
Behavior = AISpecialPowerUpdate PoisonArrowAI
CommandButtonName = Command_GoblinArcherPois onArrows
SpecialPowerAIType = AI_SPECIAL_POWER_MORGUL_ BLADE ; it's pretty close
End
Geometry = BOX
GeometryMajorRadius = 40.0
GeometryMinorRadius = 50.0
GeometryHeight = 20.0
GeometryIsSmall = No
; *** AUTO RESOLVE DATA ***
AutoResolveUnitType = AutoResolveUnit_Archer
AutoResolveCombatChain = AutoResolve_ArcherCombat Chain
AutoResolveBody = AutoResolve_WildArcherHo rdeBody
AutoResolveArmor
RequiredUpgrades = Upgrade_WildHeavyArmor
Armor = AutoResolve_GoblinArcher HeavyArmor
End
AutoResolveArmor
ExcludedUpgrades = Upgrade_WildHeavyArmor
Armor = AutoResolve_GoblinArcher Armor
End
AutoResolveWeapon
RequiredUpgrades = Upgrade_WildFireArrows
Weapon = AutoResolve_GoblinArcher UpgradedWeapon
End
AutoResolveWeapon
ExcludedUpgrades = Upgrade_WildFireArrows
Weapon = AutoResolve_GoblinArcher Weapon
End
WorldMapArmoryUpgradesAl lowed = Upgrade_WildBasicTrainin g Upgrade_WildFireArrows Upgrade_WildHeavyArmor
End
Eintrag für die ComboHorde in data\ini\commandbutton.ini:
CommandButton Command_ConstructGoblinA rcherComboHorde
Command = UNIT_BUILD
Object = GoblinArcherComboHorde
Options = CANCELABLE
TextLabel = CONTROLBAR:ConstructGoblinArcherHor de
ButtonImage = BWCave_GoblinArcher
ButtonBorderType = BUILD
DescriptLabel = CONTROLBAR:ToolTipBuildGoblinArcher Horde
Radial = Yes
InPalantir = Yes
ShowProductionCount = Yes
End
Das Gebäude, in dem sie produziert werden (data\ini\commandset.ini):
CommandSet GoblinCaveCommandSetLeve l3
1 = Command_ConstructGoblinF ighterHorde
2 = Command_ConstructGoblinA rcherComboHorde
6 = Command_Sell
End
Die KI-Daten (data\ini\default\skirmishaidata.ini):
ArmyMemberDefinition GoblinArcherComboHorde_M ember
Unit = GoblinArcherComboHorde ;archer
PercentageOfArmyPhase1 = 0.0
PercentageOfArmyPhase2 = 0.0
PercentageOfArmyPhase3 = 30.0
End
Dann gibt es noch einen Eintrag in der experiencelevels.ini, aber den spar ich mir, da er sowieso keine Rolle spielt.
Wäre toll, wenn jemand den Fehler findet, ich habe alles schon mehrmals versucht und denke einfach irgendeinen Eintrag zu wenig angelegt zu haben. Anders kann ich mir das nicht erklären, ich weiss einfach nicht genau, was fehlt. Also bitte helft mir.
Gruss & Danke im Vorraus DotGi
PS: Davor bin ich ein passendes Tutorial (
http://www.the3rdage.net/item-412?apage=437#page) genau durchgegangen und zum selben Ergebnis gekommen: Alle KIs ausser Menschen bauen nur noch Geldgebäude, aber keine Kasernen usw. mehr.