Modderecke > Coding

Probleme beim hinzufügen einer Einheit in default/skirmishdata.ini

(1/2) > >>

DotGi:
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. 8-|

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.

Turin Turumbar:
Deine Einheiten für nur in der late Game Phase des Spiels gebaut werden, also nach ungefähr einer halben Stunde. Hast du immer so lange getestet?

DotGi:
das erübrigt sich sowieso, da die KI keine orkhöhle baut.

spielt also keine rolle, ob sie im early oder lategame produziert werden, da es keine orkhöhle gibt, in der sie rekrutiert werden können.

Werd es anpassen, sobald das mit der KI mal halbwegs hinhaut. ;)

Trotzdem Danke für die schnelle Antwort.

Turin Turumbar:
Ich nehme an das Leerzeichen in dieser Zeile:

--- Code: ---ArmyMemberDefinition GoblinArcherComboHorde_M ember
--- Ende Code ---
existiert nicht wirklich in der Ini oder?
Den Fehler mit nicht bauenden Gebäuden hatte ich selbst schon mehrmals und konnte ihn mir nicht erklären. Es hat aber immer geholfen, dass ich erstmal wieder die original Skirmishaidata.ini eingefügt habe und geguckt habe, ob die Einheiten wieder gebaut wurden. Wenn dies wieder der Fall war, habe ich den Eintrag erneut in der skirmishaidata.ini eingefügt, allerdings an anderer Stelle, mit nem anderem Namen und anderen Werten, meistens hat die KI danach keine Probleme gemacht. ;)

DotGi:
nein, das ist anscheinend bei der schrift hier entstanden.

Das heißt, du würdest mir empfehlen, das ganze mal umzubenennen und öfters neu zu versuchen?

Dann mach ich das mal, bin gespannt ob das funktionieren wird.^^

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln