Jump to content


Photo

New Fortress Subobjecs Problem

new fortress hide subobjects

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 post


  • Please log in to reply
4 replies to this topic

#1 OneV

OneV
  • Members
  • 53 posts

Posted 11 May 2020 - 04:31 AM

Hi, I wanted to port an old mod that was based on 2.01 into 2.02.
I have been able to add a fortress for Rohan faction and it is fully functional, except for one thing: all of the upgrades are visually displayed as soon as the game starts: banners, house of healing etc which is a problem. Even though technically the upgrades are not yet purchased. In the fortress ini code subobjects are hidden and all upgrades are set-up. I tried putting the same fortress ini back into the mod and everything is displayed ok. I have tried the following:
1. Copy-paste the fortress ini file into 2.02, changing upgrades names consistent with the Men fortress upgrades and moving the assets from the old mod. The expansions were left nonfunctional.
2. Taking the men fortress, changing the models and skins and leaving Men expansions. The result was the same - all upgrades were working, but visually the fortress was fully upgraded as soon as the game starts.

When a porter builds the fortress, at 99% it looks unupgraded but as soon as it is built all upgrades are visually slapped on. Been trying to figure it out for hours now, totally at a loss. Would greatly appreciate any ideas or pointers.

Edited by OneV, 11 May 2020 - 05:12 AM.


#2 Miraak5

Miraak5

    title available

  • Members
  • 389 posts
  • Location:France
  • Projects:ROTWK Patch 2.02, Wars of the North, BFME1 1.08 Complete Edition
  •  BIG coding, Map scripting and AI coding

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...


#3 OneV

OneV
  • Members
  • 53 posts

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? 



#4 Miraak5

Miraak5

    title available

  • Members
  • 389 posts
  • Location:France
  • Projects:ROTWK Patch 2.02, Wars of the North, BFME1 1.08 Complete Edition
  •  BIG coding, Map scripting and AI coding

Posted 12 May 2020 - 01:19 AM   Best Answer

can you check in experiencelevel if your RohanFortressCitadel correctly get the upgrade ?


He was the first...


#5 OneV

OneV
  • Members
  • 53 posts

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!  :thumbsuphappy:  Thank you so much!






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users