Best Answer Miraak5, 12 May 2020 - 01:19 AM
can you check in experiencelevel if your RohanFortressCitadel correctly get the upgrade ?
Go to the full postBest Answer Miraak5, 12 May 2020 - 01:19 AM
can you check in experiencelevel if your RohanFortressCitadel correctly get the upgrade ?
Go to the full postPosted 11 May 2020 - 04:31 AM
Edited by OneV, 11 May 2020 - 05:12 AM.
Posted 11 May 2020 - 12:32 PM
You need to check the behavior in your fortress code wich is supposed to hide every sub objects when it's created
He was the first...
Posted 11 May 2020 - 07:04 PM
You need to check the behavior in your fortress code wich is supposed to hide every sub objects when it's created
//------------------------------------------------------------------------------ // This is the magic thing in the .bse file that tells how to center the base layout compared to the game position of the fortress Object RohanFortressCenterGeneric SelectPortrait = BPRohanFortress Draw = W3DScriptedModelDraw ModuleTag_01 DefaultModelConditionState Model = None End ModelConditionState = WORLD_BUILDER Model = NBasePin End End Side = Rohan EditorSorting = STRUCTURE KindOf = IMMOBILE BASE_FOUNDATION CASTLE_CENTER ;;,;; Removed CAN_CAST_REFLECTIONS CAN_CAST_REFLECTIONS (; ;) Behavior = CastleBehavior ModuleTag_castle FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER ;Anything that does not fit this filter will be given to the neutral player, so the template can have rocks and props. End End //------------------------------------------------------------------------------ // These are the four corner buildplots. Difference is just the BuildVariation flag they give the Expansion. Object RohanFortressExpansionPadCorner SelectPortrait = BPRohanBuildPlot // *** ART Parameters *** Draw = W3DFloorDraw DrawFloorBase ModelName = RBFoundationB End Draw = W3DScriptedModelDraw ModuleTag_DrawMain DefaultModelConditionState Model = WBFoundationP End ;//Remove the buildplot when it's been constructed on ModelConditionState = CONSTRUCTION_COMPLETE Model = None End End //PlacementViewAngle = 0 // ***DESIGN parameters *** DisplayName = OBJECT:MenBuildingFoundation Description = OBJECT:MenFortressDescription Side = Rohan EditorSorting = STRUCTURE ThreatLevel = 1.0 BuildCost = 1 BuildTime = 5.0 // in seconds VisionRange = 0.0 // Shroud clearing distance ShroudClearingRange = 0 CommandSet = RohanFortressExpansionPadCornerCommandSet // *** AUDIO Parameters *** VoiceSelect = Gui_PlotSelect ;GondorCitadelSelect ;MenFortressSelect // *** ENGINEERING Parameters *** KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION UNATTACKABLE MP_COUNT_FOR_VICTORY NO_COLLIDE DO_NOT_CLASSIFY EXPANSION_PAD ;;,;; Removed CAN_CAST_REFLECTIONS (; ;) Behavior = FoundationAIUpdate ModuleTag_foundationAI BuildVariation = 2 // Will give BUILD_VARIATION_TWO to anything built on it End Behavior = CastleMemberBehavior ModuleTag_CMB End Body = ImmortalBody ModuleTag_05 MaxHealth = 15000.0 End Geometry = BOX GeometryMajorRadius = 5.0 GeometryMinorRadius = 5.0 GeometryHeight = 0.8 GeometryIsSmall = No Shadow = SHADOW_VOLUME BuildCompletion = PLACED_BY_PLAYER End // And these are the 2 on the sides. ChildObject RohanFortressExpansionPadSide RohanFortressExpansionPadCorner CommandSet = RohanFortressExpansionPadSideCommandSet Behavior = FoundationAIUpdate ModuleTag_foundationAI BuildVariation = 1 // Will give BUILD_VARIATION_ONE to anything built on it End End //For the fortress hub... this is for the corners of the fortress Object RohanWallHubSmallExpansion // *** ART Parameters *** SelectPortrait = BPRohanWallHub Draw = W3DScriptedModelDraw ModuleTag_Draw OkToChangeModelColor = Yes UseStandardModelNames = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = RBfmang_skn End //---Build Up Variation 1--- ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED SNOW Model = RBfmang_bld Texture = GBFortress1.tga GBFortress1_Snow.tga ParticleSysBone = DUSTBONE BuildingContructDust End ModelConditionState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED Model = RBfmang_bld ParticleSysBone = DUSTBONE BuildingContructDust End AnimationState = ACTIVELY_BEING_CONSTRUCTED PARTIALLY_CONSTRUCTED Animation AnimationName = RBfmang_bld.RBfmang_bld AnimationMode = MANUAL End Flags = START_FRAME_FIRST BeginScript CurDrawablePlaySound("GondorBarracksBeginConstruction") EndScript End //---Damage States--- ModelConditionState = DAMAGED Model = RBfmang_d1 Texture = GBFortress1.tga GBFortress1D.tga End AnimationState = DAMAGED EnteringStateFX = FX_BuildingDamaged End ModelConditionState = REALLYDAMAGED Model = RBfmang_d2 End AnimationState = REALLYDAMAGED Animation = GBFTRTOWA_ReallyDamaged AnimationName = RBfmang_d2.RBfmang_d2 AnimationMode = ONCE End EnteringStateFX = FX_BuildingReallyDamaged End ModelConditionState = RUBBLE Model = RBfmang_d2 End AnimationState = RUBBLE Animation = GBFARTOWA_ReallyDamaged AnimationName = RBfmang_d2.RBfmang_d2 AnimationMode = ONCE End EnteringStateFX = FX_StructureMediumCollapse End //---Snow--- ModelConditionState = SNOW Model = RBfmang_skn Texture = rbwallhub.tga rbwallhub_snow.tga End End Side = Rohan EditorSorting = STRUCTURE ThreatLevel = WALL_THREAT_LEVEL ; 1.0 BuildCost = DWARVEN_WALLHUB_SMALL_BUILDCOST BuildTime = DWARVEN_WALLHUB_SMALL_BUILDTIME // in seconds VisionRange = DWARVEN_WALLHUB_SMALL_VISION_RANGE // Shroud clearing distance ShroudClearingRange = DWARVEN_WALLHUB_SMALL_SHROUD_CLEAR CommandSet = RohanCastleWallHubSmallCommandSet ArmorSet Conditions = None Armor = DwarvenWallArmor End ;// ***AUDIO parameters *** #include "..\..\..\Includes\StandardBuildingEvaEvents.inc" VoiceSelect = NeutralWallHubSelect SoundOnDamaged = BuildingLightDamageStone SoundOnReallyDamaged = BuildingHeavyDamageStone ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior MaxUpdateRangeCap = 800 AnimationSound = Sound:StatueHeroicBuildStoneDebris2 Animation:DBGFWHUB_A.DBGFWHUB_A Frames:120 AnimationSound = Sound:StatueHeroicBuildStoneDebris1 Animation:DBGFWHUB_A.DBGFWHUB_A Frames:135 End UnitSpecificSounds UnderConstruction = BuildingConstructionLoop ;// Built first time ;//UnderRepairFromDamage = NoSound ;// Repaired No animation on the building, so don't bother playing sound UnderRepairFromRubble = BuildingConstructionLoop ;// Repaired from completely destroyed (not used???) End ;Behavior = GettingBuiltBehavior ModuleTag_04 ; RebuildTimeSeconds = 30 ; SelfBuildingLoop = WallConstructionLoop ;Only played if we DON'T spawn a worker ; SelfRepairFromDamageLoop = NoSound ;This doesn't cause an animation, so don't bother playing a sound ; SelfRepairFromRubbleLoop = WallConstructionLoop ;End CampnessValue = CAMPNESS_FORTRESS_EXPANSION ; Even though it's a wall, it's still a fortress expansion // ***ENGINEERING parameters KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE NEED_BASE_FOUNDATION FS_BASE_DEFENSE MADE_OF_STONE WALL_HUB ;WALL_UPGRADE Behavior = GettingBuiltBehavior ModuleTag_04 WorkerName = RohanWorkerNoSelect SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY End Body = StructureBody ModuleTag_05 MaxHealth = DWARVEN_WALLHUB_SMALL_HEALTH End Behavior = CastleMemberBehavior ModuleTag_CMB End Behavior = WallHubBehavior ModuleTag_Build_A_Span Options = OPTION_ONE StaggeredBuildFactor = STANDARD_WALL_STAGGERED_BUILD_FACTOR MaxBuildoutDistance = DWARVEN_FORTRESS_WALL_EFFECTIVE_RADIUS ;;,;; MEN_FORTRESS_WALL_EFFECTIVE_RADIUS //This defines the pattern built on flat terrain SegmentTemplateName = RohanWallSegmentSmall SegmentTemplateName = RohanWallSegmentSmall SegmentTemplateName = RohanWallSegmentSmall SegmentTemplateName = RohanWallSegmentSmall SegmentTemplateName = RohanWallSegmentSmall SegmentTemplateName = RohanWallHubSmall BuilderRadius = 20 // makes the first wall segment hug the (SKINNY) hub HubCapTemplateName = RohanWallHubSmall DefaultSegmentTemplateName = RohanWallSegmentSmall CliffCapTemplateName = RohanWallCliffCap //ShoreCapTemplateName = [NAME] //BorderCapTemplateName = [NAME] //ElevatedSegmentTemplateName = [NAME] End Behavior = AttributeModifierUpgrade ModuleTag_Reinforced TriggeredBy = Upgrade_DwarvenFortressDwarvenStonework AttributeModifier = DwarvenStoneworkExpansion_Bonus End Behavior = StructureCollapseUpdate ModuleTag_Collapse MinCollapseDelay = 000 MaxCollapseDelay = 000 CollapseDamping = .5 MaxShudder = 0.6 MinBurstDelay = 250 MaxBurstDelay = 800 BigBurstFrequency = 4 FXList = INITIAL FX_StructureMediumCollapse FXList = ALMOST_FINAL FX_StructureAlmostCollapse DestroyObjectWhenDone = Yes CollapseHeight = 120 End Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot Radius = 100 ;// How far we try to claim ground MaxIncome = 0 ;// If we were to get all we wanted, how much we would earn. Linear slope to 0 at 0% claim IncomeInterval = 999999 ;// How often (in msec) we give that much money HighPriority = Yes ;// A high priority claim gets to pretend it was there first. Visible = No ;// Don't show decal when a resource building is selected. End GeometryIsSmall = No Geometry = CYLINDER GeometryMajorRadius = 25.0 GeometryHeight = 60.0 AdditionalGeometry = BOX GeometryMajorRadius = 20.0 GeometryMinorRadius = 10.0 GeometryHeight = 50.0 GeometryOffset = X:-20 Y:0 Z:0 ; GeometryContactPoint = X:-21 Y:22 Z:0 Repair GeometryContactPoint = X:35 Y:0 Z:0 Repair GeometryContactPoint = X:22.954 Y:15.951 Z:0 GeometryContactPoint = X:5.435 Y:-23.279 Z:0 GeometryContactPoint = X:-0.459 Y:-0.275 Z:116.828 Swoop Shadow = SHADOW_VOLUME BuildCompletion = PLACED_BY_PLAYER End //------------------------------------------------------------------------------ // This is the center part of the full Fortress. This plus the buildplots make up the full fortress Object RohanFortressCitadel // *** ART Parameters *** ButtonImage = BIRohanFortress SelectPortrait = BPRohanFortress Draw = W3DScriptedModelDraw ModuleTag_MainDraw ExtraPublicBone = ARROWBONE1 ExtraPublicBone = ARROWBONE2 ExtraPublicBone = ARROWBONE3 ExtraPublicBone = ARROWBONE4 ExtraPublicBone = ARROWBONE5 ExtraPublicBone = ARROWBONE6 ExtraPublicBone = ARROWBONE7 ExtraPublicBone = ARROWBONE8 ExtraPublicBone = ARROWBONE9 ExtraPublicBone = ARROWBONE10 ExtraPublicBone = ARROWBONE11 ExtraPublicBone = ARROWBONE12 ExtraPublicBone = ARROWBONE13 ExtraPublicBone = ARROWBONE14 ExtraPublicBone = ARROWBONE15 ExtraPublicBone = ARROWBONE16 ExtraPublicBone = ARROWBONE17 ExtraPublicBone = ARROWBONE18 ExtraPublicBone = ARROWBONE19 ExtraPublicBone = ARROWBONE20 ExtraPublicBone = ARROWBONE21 ExtraPublicBone = ARROWBONE22 ExtraPublicBone = ARROWBONE23 ExtraPublicBone = ARROWBONE24 ExtraPublicBone = ARROWBONE25 ExtraPublicBone = ARROWBONE26 ExtraPublicBone = ARROWBONE27 ExtraPublicBone = ARROWBONE28 ExtraPublicBone = ARROWBONE29 ExtraPublicBone = ARROWBONE30 ExtraPublicBone = ARROWBONE31 ExtraPublicBone = ARROWBONE32 ExtraPublicBone = ARROWBONE33 ExtraPublicBone = ARROWBONE34 ExtraPublicBone = ARROWBONE35 ExtraPublicBone = ARROWBONE36 ExtraPublicBone = ARROWBONE37 ExtraPublicBone = ARROWBONE38 ExtraPublicBone = ARROWBONE39 ExtraPublicBone = ARROWBONE40 OkToChangeModelColor = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = RBfortress_skn WeaponLaunchBone = PRIMARY ARROW_ End ;// Animation state for build placement cursor AnimationState = BUILD_PLACEMENT_CURSOR BeginScript CurDrawableHideSubObject("BANNERS2") CurDrawableHideSubObject("HORNS") CurDrawableHideSubObject("HALL_1") CurDrawableHideSubObject("HALL_2") CurDrawableHideSubObject("FORTI") CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") EndScript End ;// Animation state for phantom structure AnimationState = PHANTOM_STRUCTURE BeginScript CurDrawableHideSubObject("BANNERS2") CurDrawableHideSubObject("HORNS") CurDrawableHideSubObject("HALL_1") CurDrawableHideSubObject("HALL_2") CurDrawableHideSubObject("FORTI") CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") EndScript End //--Damage States--- ModelConditionState = DAMAGED Model = RBfortress_D1 ;Texture = GBFortress1.tga GBFortress1D.tga End AnimationState = DAMAGED EnteringStateFX = FX_FortressDamaged End ModelConditionState = REALLYDAMAGED Model = RBfortress_D2 End AnimationState = REALLYDAMAGED ; Animation = Fortress_ReallyDamaged ; AnimationName = RBfortress_D2.RBfortress_D2 ; AnimationMode = ONCE ; End EnteringStateFX = FX_FortressReallyDamaged End ModelConditionState = RUBBLE Model = RBfortress_D2 End AnimationState = RUBBLE ; Animation = Fortress_Rubble ; AnimationName = GBFortress_D3SK.GBFortress_D3AN ; AnimationMode = ONCE ; End EnteringStateFX = FX_FortressCollapse End //---Stonework--- ;ModelConditionState = UPGRADE_NUMENOR_STONEWORK ; Model = RBfortress_skn ; Texture = GBFortress1.tga GBFortress1_U.tga ;End //---Snow--- ModelConditionState = SNOW Model = RBfortress_skn Texture = RBfortressA.tga RBfortressA_snow.tga Texture = RBfortressB.tga RBfortressB_snow.tga End ModelConditionState = USER_2 End End ; Draw = W3DScriptedModelDraw ModuleTag_Draw_HCBanner ; OkToChangeModelColor = Yes ; DefaultModelConditionState ; Model = GBHCFortress ; End ; MultiPlayerOnly = Yes ; End ;//-------------------------------- ;//Fortress Door Draw = W3DScriptedModelDraw ModuleTag_DrawDoor DefaultModelConditionState Model = RBfortressG_skn End //--normal states ModelConditionState = DOOR_1_OPENING Model = RBfortressG_skn End AnimationState = DOOR_1_OPENING Animation = DBFDoor_DRO AnimationName = RBfortressG_skn.RBfortressG_skn AnimationMode = ONCE AnimationSpeedFactorRange = 0.4 0.4 AnimationBlendTime = 0 End ;// Flags = START_FRAME_FIRST End ModelConditionState = DOOR_1_CLOSING Model = RBfortressG_skn ParticleSysBone = NONE trollCageDust End; AnimationState = DOOR_1_CLOSING Animation = RBfortressG_skn AnimationName = RBfortressG_skn.RBfortressG_skn AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 0.4 0.4 AnimationBlendTime = 0 End Flags = START_FRAME_LAST ; Flags = START_FRAME_FIRST End ModelConditionState = DOOR_1_WAITING_OPEN Model = RBfortressG_opn ;ParticleSysBone = NONE BuildingDoughnutCloud End AnimationState = DOOR_1_WAITING_OPEN Animation = dbfrtdoor_open AnimationName = none ; RBfortressG_opn.RBfortressG_opn AnimationMode = ONCE AnimationBlendTime = 0 End ; Flags = START_FRAME_FIRST End ModelConditionState = POST_RUBBLE Model = None End ModelConditionState = POST_COLLAPSE Model = None End ModelConditionState = USER_8 End End Draw = W3DScriptedModelDraw Draw_BonusEffects DefaultModelConditionState Model = None End AnimationState = ACTIVELY_BEING_CONSTRUCTED End AnimationState = USER_4 ParticleSysBone = None StoneWorkerFX End End //----------the Bib Draw = W3DFloorDraw ModuleTag_DrawFloor ModelName = RBfortress_BIB WeatherTexture SNOWY RBFortress_bib_snow.tga End // ***DESIGN parameters *** DisplayName = OBJECT:MenFortress Description = OBJECT:MenFortressDescription Side = Rohan EditorSorting = STRUCTURE ThreatLevel = 1.0 CommandPointBonus = GENERIC_FORTRESS_COMMAND_POINT_BONUS MaxSimultaneousOfType = 5 ;;,;; Added for 2.02e BuildCost = MEN_FORTRESS_BUILDCOST BuildTime = MEN_FORTRESS_BUILDTIME BountyValue = MEN_FORTRESS_BOUNTY_VALUE ;;,;; added for 2.02e VisionRange = MEN_FORTRESS_VISION_RANGE ShroudClearingRange = MEN_FORTRESS_SHROUD_CLEAR WeaponSet Weapon = PRIMARY FortressArrowTowerBow AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI End ArmorSet Conditions = None Armor = FortressArmor ; DamageFX = StructureDamageFXNoShake End CommandSet = RohanFortressCommandSet ; *** AUDIO Parameters *** #include "..\..\..\Includes\StandardBuildingEvaEvents.inc" EvaEventDieOwner = EvaFortressDie EvaEventDieAlly = AllyCampDestroyed ;,; Added in v5.1 EvaEventDieEnemy = EnemyCampDestroyed ;,; Added in v5.1 VoiceSelect = MenFortressSelect VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction SoundOnDamaged = BuildingLightDamageStone SoundOnReallyDamaged = BuildingHeavyDamageStone UnitSpecificSounds UnderConstruction = BuildingBigConstructionLoop ;// Built first time ;//UnderRepairFromDamage = NoSound ;// Repaired No animation on the building, so don't bother playing sound UnderRepairFromRubble = BuildingBigConstructionLoop ;// Repaired from completely destroyed (not used???) End CampnessValue = CAMPNESS_FORTRESS ; *** ENGINEERING Parameters *** RadarPriority = STRUCTURE KindOf = PRELOAD COMMANDCENTER VITAL_FOR_BASE_SURVIVAL STRUCTURE IMMOBILE CASTLE_KEEP MP_COUNT_FOR_VICTORY SELECTABLE FS_FACTORY AUTO_RALLYPOINT MADE_OF_WOOD SCORE DOZER_FACTORY ;;,;; Removed CAN_CAST_REFLECTIONS (; ;) Behavior = GettingBuiltBehavior ModuleTag_GettingBuiltBehavior WorkerName = RohanFortressWorkerNoSelect SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY End Behavior = CastleMemberBehavior ModuleTag_CMB BeingBuiltSound = BuildingBigConstructionLoop End ;---------------------------------------------------------------------------------------------- ; To save upgrade slots Rohan will use the following upgrades ; Upgrade_MenFortressBanners for Royal Banners ; Upgrade_GoodFortressFlamingMunitionsTrigger for Flaming Munitions Upgrade_RohanFortressFlamingMunitionsTrigger ;---------------------------------------------------------------------------------------------- ;Used for hero revival and initial construction Behavior = ProductionUpdate ProductionUpdateModuleTag ProductionModifier ; An object-local discount. RequiredUpgrade = Upgrade_MenFortressBanners CostMultiplier = 0.80 ModifierFilter = NONE +RohanPorter End ProductionModifier RequiredUpgrade = Upgrade_MenFortressBanners CostMultiplier = 0.90 TimeMultiplier = 0.90 HeroPurchase = Yes ; Instead of an object filter, needs to be explicitly hero-revival-system compatible ModifierFilter = NONE +HERO End ProductionModifier RequiredUpgrade = Upgrade_MenFortressHouseOfHealing CostMultiplier = 0.80 TimeMultiplier = 0.80 HeroRevive = Yes ModifierFilter = NONE +HERO End NumDoorAnimations = 1 DoorOpeningTime = 3000 ;in mSeconds how long you want doors to be in open state DoorWaitOpenTime = 3000 ;in mSeconds time the door stays open, so units can exit DoorCloseTime = 3000 ;in mSeconds how long you want doors to be in open state End Behavior = QueueProductionExitUpdate ModuleTag_QueuePEU UnitCreatePoint = X:0.0 Y:0.0 Z:0.0 NaturalRallyPoint = X:80.0 Y:0.0 Z:0.0;NaturalRallyPointX must always match GeometryMajorRadius! ExitDelay = 400 ; Mainly for the multiple produced Red Guard. Make them come out one at a time. End Body = StructureBody ModuleTag_05 MaxHealth = MEN_FORTRESS_HEALTH MaxHealthDamaged = MEN_FORTRESS_HEALTH_DAMAGED MaxHealthReallyDamaged = MEN_FORTRESS_HEALTH_REALLY_DAMAGED End Behavior = StructureCollapseUpdate ModuleTag_08 MinCollapseDelay = 000 MaxCollapseDelay = 000 CollapseDamping = .5 MaxShudder = 0.6 MinBurstDelay = 250 MaxBurstDelay = 800 BigBurstFrequency = 4 FXList = INITIAL FX_FortressCollapse ;FXList = ALMOST_FINAL FX_FortressCollapse DestroyObjectWhenDone = Yes CollapseHeight = 155 End Behavior = CitadelSlaughterHordeContain ModuleTag_SlaughterMe PassengerFilter = ANY +INFANTRY +CAVALRY +MordorWorker -HERO -DOZER -SUMMONED ;GENERIC_FACTION_SLAUGHTERABLE ObjectStatusOfContained = UNSELECTABLE ENCLOSED CashBackPercent = 200% ContainMax = 99; give it a huge capacity, just in case player sends his whole army in at once AllowEnemiesInside = No AllowAlliesInside = No AllowNeutralInside = No AllowOwnPlayerInsideOverride = Yes EnterSound = MordorSlaughterhouseEnterSound EntryOffset = X:125.0 Y:0.0 Z:0.0 EntryPosition = X:30.0 Y:0.0 Z:0.0 // entry position needs to be offset from the root transform, otherwise fortress obscures point. ExitOffset = X:125.0 Y:0.0 Z:0.0 StatusForRingEntry = HOLDING_THE_RING UpgradeForRingEntry = Upgrade_RingHero Upgrade_FortressRingHero ;;,;; CE graphics fix ObjectToDestroyForRingEntry = NONE +TheDroppedRing FXForRingEntry = FX_OneRingFlare End // Hide all the Improvements by default Behavior = SubObjectsUpgrade ModuleTag_HideAll TriggeredBy = Upgrade_StructureLevel1 HideSubObjects = BANNERS2 HORNS HALL_1 HALL_2 FORTI End Behavior = SubObjectsUpgrade ModuleTag_ShowHorns TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework ShowSubObjects = HORNS End ;;,;;======================ADD HORN ABILITY LATER ==========================;;,;; ;;,;;===================================================================== // Numeror Stonework improvement, just an upgrade Behavior = CastleUpgrade ModuleTag_PassOutNumenorStoneworkUpgrade TriggeredBy = Upgrade_MenFortressNumenorStoneworkTrigger Upgrade = Upgrade_MenFortressNumenorStonework WallUpgradeRadius = MEN_FORTRESS_WALL_EFFECTIVE_RADIUS End // Numeror Stonework improvement, just an upgrade Behavior = AttributeModifierUpgrade ModuleTag_Reinforced TriggeredBy = Upgrade_MenFortressNumenorStonework AttributeModifier = NumenorStoneworkKeep_Bonus End Behavior = SubObjectsUpgrade ModuleTag_ShowFortifications TriggeredBy = Upgrade_MenFortressNumenorStonework ShowSubObjects = FORTI End // Flaming Munitions improvement, just an upgrade, but doesn't do anything for us. Behavior = CastleUpgrade ModuleTag_PassOutFlamingMunitionsUpgrade TriggeredBy = Upgrade_GoodFortressFlamingMunitionsTrigger Upgrade = Upgrade_GoodFortressFlamingMunitions ;;,;; WallUpgradeRadius = DWARVEN_FLAMING_MUNITIONS_UPGRADE_RADIUS ;;.;; Added End Behavior = StatusBitsUpgrade ModuleTag_FakeOut ; I need to react to the upgrade, so I can have it for when new construction asks me for all the upgrades TriggeredBy = Upgrade_GoodFortressFlamingMunitions End Behavior = SubObjectsUpgrade ModuleTag_ShowTorches TriggeredBy = Upgrade_GoodFortressFlamingMunitions ShowSubObjects = GBFFLAMING End ;---------------------------------------------------------------------------------- // Banners improvement, the half that gives an aura bonus, not the purchase discount part (that is in the ProductionUpdate) Behavior = AttributeModifierAuraUpdate ModuleTag_BannerLeadership StartsActive = No ;If no, requires upgrade to turn on. BonusName = MenFortressBannersLeadership TriggeredBy = Upgrade_MenFortressBanners RefreshDelay = 2000 Range = 300 ObjectFilter = GENERIC_BUFF_RECIPIENT_OBJECT_FILTER End Behavior = SubObjectsUpgrade ModuleTag_ShowBanners TriggeredBy = Upgrade_MenFortressBanners ShowSubObjects = BANNERS2 End Behavior = SubObjectsUpgrade ModuleTag_ShowMeadHall TriggeredBy = Upgrade_MenFortressHouseOfHealing ShowSubObjects = HALL_1 HALL_2 End Behavior = PassiveAreaEffectBehavior ModuleTag_HouseOfHealingHealer UpgradeRequired = Upgrade_MenFortressHouseOfHealing EffectRadius = 200 // please update the decal size in experience lvl INI if you change this... the value there is about 2.2x the value here PingDelay = 2000;msec HealPercentPerSecond = 3% AllowFilter = ANY +INFANTRY +CAVALRY +HERO -MACHINE +MONSTER -IMMOBILE +DOZER NonStackable = Yes HealFX = FX_SpellHealUnitHealBuff End Behavior = BannerCarrierUpdate BannerCarrierUpdateModuleTag UpgradeRequired = Upgrade_MenFortressHouseOfHealing IdleSpawnRate = 6000 ;;,;; 5000 // spawn a new member every n seconds when idle (in miliseconds) UnitSpawnFX = FX_BannerCarrierSpawnUnit // name of particle FX to use when the BannerCarrier spawns a new unit // This well object acts like a banner carrier except it spawns unit on nearby hordes instead of itself. ReplenishNearbyHorde = Yes ReplenishAllNearbyHordes = Yes ;;.;; Added so that all hordes can respawn members rather than only one horde at a time. ScanHordeDistance = 200 End Behavior = CastleUpgrade ModuleTag_PassOutHouseOfHealingUpgrade TriggeredBy = Upgrade_MenFortressHouseOfHealing Upgrade = Upgrade_MenFortressHouseOfHealing End Behavior = AutoAbilityBehavior ModuleTag_IvoryTowerAutoAbility SpecialAbility = Upgrade_MenFortressIvoryTower End #include "..\..\..\FortressRingFunc.inc" Behavior = AIUpdateInterface ModuleTag_AI AILuaEventsList = RohanFortressFunctions AutoAcquireEnemiesWhenIdle = Yes MoodAttackCheckRate = 250 End //Money Maker Behavior = AutoDepositUpdate AutoDepositModuleTag DepositTiming = GENERIC_KEEP_MONEY_TIME DepositAmount = GENERIC_KEEP_MONEY_AMOUNT InitialCaptureBonus = 0 // no initial bonus End Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot Radius = GENERIC_KEEP_MONEY_RANGE // How far we try to claim ground MaxIncome = 0 // If we were to get all we wanted, how much we would earn. Linear slope to 0 at 0% claim IncomeInterval = 999999 // How often (in msec) we give that much money HighPriority = Yes // A high priority claim gets to pretend it was there first. End #include "..\..\..\Includes\FortressEconomyBonusGrants.inc" ;;,;; Added for 2.1 Behavior = AISpecialPowerUpdate MordorMagmacauldronAI ;;,;; added for 2.0 CommandButtonName = Command_FireWeaponMenFortressBoilingOil SpecialPowerAIType = AI_SPELLBOOK_ARMY_BREAKER SpecialPowerRadius = 200 End Behavior = AISpecialPowerUpdate IvoryTowerAI ;;,;; added for 2.0 CommandButtonName = Command_SpecialAbilityIvoryTowerVision SpecialPowerAIType = AI_SPELLBOOK_ARMY_BREAKER ; Guess, not sure what to use to make this work best. SpecialPowerRadius = 200 End //-------------------------------------------------------------------------- GeometryIsSmall = No Geometry = BOX // Main body GeometryMajorRadius = 49 GeometryMinorRadius = 49 GeometryHeight = 50 AdditionalGeometry = BOX // 4 towers GeometryMajorRadius = 12.0 GeometryMinorRadius = 12.0 GeometryHeight = 100.0 GeometryOffset = X:-40 Y:-40 Z:0 AdditionalGeometry = BOX GeometryMajorRadius = 12.0 GeometryMinorRadius = 12.0 GeometryHeight = 100.0 GeometryOffset = X:-40 Y:40 Z:0 AdditionalGeometry = BOX GeometryMajorRadius = 12.0 GeometryMinorRadius = 12.0 GeometryHeight = 100.0 GeometryOffset = X:40 Y:-40 Z:0 AdditionalGeometry = BOX GeometryMajorRadius = 12.0 GeometryMinorRadius = 12.0 GeometryHeight = 100.0 GeometryOffset = X:40 Y:40 Z:0 AdditionalGeometry = BOX GeometryName = HighTowerGeom GeometryMajorRadius = 12 GeometryMinorRadius = 12 GeometryHeight = 175 GeometryOffset = X:0 Y:0 Z:0 GeometryUsedForHealthBox = No GeometryContactPoint = X:-57 Y:57 Z:0 Repair GeometryContactPoint = X:57 Y:-57 Z:0 Repair GeometryContactPoint = X:49 Y:36.435 Z:0 GeometryContactPoint = X:-32.763 Y:-46.121 Z:0 GeometryContactPoint = X:0 Y:0 Z:180 Swoop Shadow = SHADOW_VOLUME BuildCompletion = PLACED_BY_PLAYER End //------------------------------------------------------------------------------ // This is the one object that you would place on a map and that the porter builds. // It unpacks in to the citadel and the buildplots. It's an old CampFlag. Object RohanFortress SelectPortrait = BPRohanFortress Draw = W3DScriptedModelDraw ModuleTag_01 OkToChangeModelColor = Yes StaticModelLODMode = Yes ;// Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = None End IdleAnimationState End ;//Need this since the default condition is none ModelConditionState = WORLD_BUILDER Model = RBfortress_skn End ;//Phantom structure when placing a new building to be build ModelConditionState = BUILD_PLACEMENT_CURSOR Model = None //GBFortress End ;//Structure that stays where you will be building until the porter reaches the place to start building. ModelConditionState = PHANTOM_STRUCTURE Model = RBfortress_skn End ;// Animation state for build placement cursor AnimationState = BUILD_PLACEMENT_CURSOR BeginScript CurDrawableHideSubObject("BANNERS2") CurDrawableHideSubObject("HORNS") CurDrawableHideSubObject("HALL_1") CurDrawableHideSubObject("HALL_2") CurDrawableHideSubObject("FORTI") CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") EndScript End ;// Animation state for phantom structure AnimationState = PHANTOM_STRUCTURE BeginScript CurDrawableHideSubObject("BANNERS2") CurDrawableHideSubObject("HORNS") CurDrawableHideSubObject("HALL_1") CurDrawableHideSubObject("HALL_2") CurDrawableHideSubObject("FORTI") CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") EndScript End ModelConditionState = RUBBLE Model = GBFortress_D3 End AnimationState = RUBBLE Animation = Fortress_Rubble AnimationName = GBFortress_D3SK.GBFortress_D3AN AnimationMode = ONCE End EnteringStateFX = FX_FortressCollapse End ModelConditionState = ACTIVELY_BEING_CONSTRUCTED SNOW ;//UNPACKING Model = RBfortress_BLD Texture = RBfortressA.tga RBfortressA_snow.tga Texture = RBfortressB.tga RBfortressB_snow.tga End ModelConditionState = ACTIVELY_BEING_CONSTRUCTED ;//UNPACKING Model = RBfortress_BLD End AnimationState = ACTIVELY_BEING_CONSTRUCTED Animation = UpAndStill AnimationName = RBfortress_BLD.RBfortress_BLD AnimationMode = MANUAL End BeginScript CurDrawablePlaySound("GondorBarracksBeginConstruction") EndScript ParticleSysBone = NONE BuildingContructDustCastles FollowBone:YES StateName = BeingConstructed End End //Door Draw = W3DScriptedModelDraw ModuleTag_DrawDoor DefaultModelConditionState Model = None End //---Build Up--- ModelConditionState = ACTIVELY_BEING_CONSTRUCTED Model = RBfortressG_BLD End AnimationState = ACTIVELY_BEING_CONSTRUCTED Animation = GBFDoor_A AnimationName = RBfortressG_BLD.RBfortressG_BLD AnimationMode = MANUAL End End End ArmorSet Conditions = None Armor = FortressArmor DamageFX = EmptyDamageFX ; just to avoid an assert End Side = Rohan EditorSorting = STRUCTURE PlacementViewAngle = -45 ; A -90 makes the door of the base face natural south. 0 would have it to the East. BuildCost = MEN_FORTRESS_BUILDCOST BuildTime = MEN_FORTRESS_BUILDTIME MaxSimultaneousOfType = 5 ;;,;; Added for 2.02e (T.C.) DisplayName = OBJECT:MenFortress // *** AUTO RESOLVE DATA *** ; When fighting an auto-resolve battle, a World Map castle actually becomes this unit AutoResolveUnitType = AutoResolveUnit_Fortress AutoResolveBody = AutoResolve_MenFortressBody AutoResolveArmor Armor = AutoResolve_MenFortressArmor End AutoResolveWeapon Weapon = AutoResolve_MenFortressWeapon End ; *** AUDIO Paraeters *** #include "..\..\..\Includes\StandardBuildingEvaEvents.inc" VoiceFullyCreated = EVA:FortressComplete-Builder VoiceSelect = MenFortressSelect VoiceSelectUnderConstruction = BuildingGoodVoiceSelectUnderConstruction SoundOnDamaged = BuildingLightDamageStone SoundOnReallyDamaged = BuildingHeavyDamageStone UnitSpecificSounds UnderConstruction = BuildingBigConstructionLoop ;// Built first time ;//UnderRepairFromDamage = NoSound ;// Repaired No animation on the building, so don't bother playing sound UnderRepairFromRubble = BuildingBigConstructionLoop ;// Repaired from completely destroyed (not used???) End ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_PlayCollapseSound ModelCondition = REQUIRED:RUBBLE Sound:BuildingSink End ; *** ENGINEERING Parameters *** RadarPriority = STRUCTURE KindOf = STRUCTURE SELECTABLE IMMOBILE BASE_FOUNDATION MP_COUNT_FOR_VICTORY BASE_SITE CAN_SEE_THROUGH_STRUCTURE LIVING_WORLD_BUILDING_MIRROR ;;,;; Removed CAN_CAST_REFLECTIONS (; ;) Body = StructureBody ModuleTag_05 MaxHealth = MEN_FORTRESS_HEALTH End Behavior = CastleBehavior ModuleTag_castle CastleToUnpackForFaction = Men Fortress_Rohan CastleToUnpackForFaction = Elves Fortress_Rohan CastleToUnpackForFaction = Dwarves Fortress_Rohan CastleToUnpackForFaction = Wild Fortress_Rohan CastleToUnpackForFaction = Isengard Fortress_Rohan CastleToUnpackForFaction = Mordor Fortress_Rohan CastleToUnpackForFaction = Angmar Fortress_Rohan CastleToUnpackForFaction = Arnor Fortress_Rohan CastleToUnpackForFaction = Rohan Fortress_Rohan FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER ;Anything that does not fit this filter will be given to the neutral player, so the template can have rocks and props. MaxCastleRadius = 130.0 InstantUnpack = Yes KeepDeathKillsEverything = Yes EvaEnemyCastleSightedEvent = EnemyFortressSighted End Behavior = StructureCollapseUpdate ModuleTag_08 MinCollapseDelay = 000 MaxCollapseDelay = 000 CollapseDamping = .5 MaxShudder = 0.6 MinBurstDelay = 250 MaxBurstDelay = 800 BigBurstFrequency = 4 FXList = INITIAL FX_FortressCollapse ;FXList = ALMOST_FINAL FX_FortressCollapse DestroyObjectWhenDone = Yes CollapseHeight = 155 End Behavior = GettingBuiltBehavior ModuleTag_GettingBuiltBehavior WorkerName = GondorWorkerNoSelect SpawnTimer = DEFAULT_STRUCTURE_HEALDELAY End Behavior = AIUpdateInterface ModuleTag_AI AILuaEventsList = FortressFunctions End //Main Geometry = BOX GeometryMajorRadius = 64 GeometryMinorRadius = 64 GeometryHeight = 50 //Plot locations AdditionalGeometry = BOX GeometryName = Plots GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 0.8 GeometryOffset = X:64.0 Y:-64.0 Z:0 AdditionalGeometry = BOX GeometryName = Plots GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 0.8 GeometryOffset = X:00 Y:-62.0 Z:0 AdditionalGeometry = BOX GeometryName = Plots GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 0.8 GeometryOffset = X:-64.0 Y:-64.0 Z:0 AdditionalGeometry = BOX GeometryName = Plots GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 0.8 GeometryOffset = X:-64.0 Y:64.0 Z:0 AdditionalGeometry = BOX GeometryName = Plots GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 0.8 GeometryOffset = X:0 Y:62.0 Z:0 AdditionalGeometry = BOX GeometryName = Plots GeometryMajorRadius = 10.0 GeometryMinorRadius = 10.0 GeometryHeight = 0.8 GeometryOffset = X:64.0 Y:64.0 Z:0 GeometryIsSmall = No Shadow = SHADOW_VOLUME GeometryContactPoint = X:-90 Y:82 Z:0 Repair GeometryContactPoint = X:84 Y:-79 Z:0 Repair GeometryContactPoint = X:5.576 Y:44.987 Z:0 GeometryContactPoint = X:-38.348 Y:-42.113 Z:0 GeometryContactPoint = X:-28.448 Y:-0.003 Z:75.14 Swoop End
Thank you. This is the whole ini file of the fortress.
I do have this, which I thought would hide the upgrades:
// Hide all the Improvements by default Behavior = SubObjectsUpgrade ModuleTag_HideAll TriggeredBy = Upgrade_StructureLevel1 HideSubObjects = BANNERS2 HORNS HALL_1 HALL_2 FORTI End
I am really not seeing where I am making a mistake. If my fortress code is ok, could the problem lie somewhere outside of the fortress ini?
Posted 12 May 2020 - 02:35 AM
can you check in experiencelevel if your RohanFortressCitadel correctly get the upgrade ?
You are a genius, brother! That completely slipped my mind to add this upgrade to the experiencelevel ini. I spent so many hours on it, trying to figure it out, but that was the issue all along. Someone, please, give this man a medal! Thank you so much!
0 members, 1 guests, 0 anonymous users