Names were referenced properly as lowercase, and I'd tagged Generic as the BASE...but I hadn't added the Citadel to the In: BASE. That fixed it all and it's working beautifully. Thanks!
- Revora Forums
- → Viewing Profile: Posts: acidRain
acidRain
Member Since 23 Jun 2010Offline Last Active Apr 19 2015 07:41 PM
Community Stats
- Group Members
- Active Posts 79
- Profile Views 1,893
- Member Title insane programmer
- Age 34 years old
- Birthday May 1, 1990
-
Gender
Male
-
Location
the place that never but always was
-
Projects
personal mods
-
Blue Text
coder, occasional skinner, and all-around game-breaker
User Tools
Friends
acidRain hasn't added any friends yet.
Latest Visitors
Posts I've Made
In Topic: Fortress for a faction
05 July 2013 - 07:49 PM
In Topic: Fortress for a faction
05 July 2013 - 02:30 PM
Did you make the .bse file?
Didn't know you had to. So...no. >_> XD
Did you change the builder in playertemplate.ini?
Yeps.
Code from atalantefortress.ini:
Object AtalanteFortressCenterGeneric SelectPortrait = BPGFortress Draw = W3DScriptedModelDraw ModuleTag_01 DefaultModelConditionState Model = None End ModelConditionState = WORLD_BUILDER Model = NBasePin End End Side = Atalante EditorSorting = STRUCTURE KindOf = IMMOBILE BASE_FOUNDATION CASTLE_CENTER 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 Object AtalanteFortressExpansionPadCorner SelectPortrait = BPGFortress_BuildPlot // *** ART Parameters *** Draw = W3DFloorDraw DrawFloorBase ModelName = GBFoundationB End Draw = W3DScriptedModelDraw ModuleTag_DrawMain DefaultModelConditionState Model = WBFoundationP End ModelConditionState = CONSTRUCTION_COMPLETE Model = None End End //PlacementViewAngle = 0 // ***DESIGN parameters *** DisplayName = OBJECT:MenBuildingFoundation Description = OBJECT:MenFortressDescription Side = Atalante EditorSorting = STRUCTURE ThreatLevel = 1.0 BuildCost = 1 BuildTime = 5.0 // in seconds VisionRange = 0.0 // Shroud clearing distance ShroudClearingRange = 0 CommandSet = MenFortressExpansionPadCornerCommandSet // *** 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 CAN_CAST_REFLECTIONS EXPANSION_PAD 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 ChildObject AtalanteFortressExpansionPadSide AtalanteFortressExpansionPadCorner CommandSet = MenFortressExpansionPadSideCommandSet Behavior = FoundationAIUpdate ModuleTag_foundationAI BuildVariation = 1 // Will give BUILD_VARIATION_ONE to anything built on it End End Object AtalanteFortressCitadel // *** ART Parameters *** ButtonImage = BGFortress SelectPortrait = BPGFortress Draw = W3DScriptedModelDraw ModuleTag_MainDraw ExtraPublicBone = ARROW_01 ExtraPublicBone = ARROW_02 ExtraPublicBone = ARROW_03 ExtraPublicBone = ARROW_04 ExtraPublicBone = ARROW_05 ExtraPublicBone = ARROW_06 ExtraPublicBone = ARROW_07 ExtraPublicBone = ARROW_08 ExtraPublicBone = ARROW_09 ExtraPublicBone = ARROW_10 ExtraPublicBone = ARROW_11 ExtraPublicBone = ARROW_12 ExtraPublicBone = ARROW_13 ExtraPublicBone = ARROW_14 ExtraPublicBone = ARROW_15 ExtraPublicBone = ARROW_16 ExtraPublicBone = ARROW_17 ExtraPublicBone = ARROW_18 ExtraPublicBone = ARROW_19 ExtraPublicBone = ARROW_20 ExtraPublicBone = ARROW_21 ExtraPublicBone = ARROW_22 ExtraPublicBone = ARROW_23 ExtraPublicBone = ARROW_24 OkToChangeModelColor = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = GBFortress WeaponLaunchBone = PRIMARY ARROW_ End ;// Animation state for build placement cursor AnimationState = BUILD_PLACEMENT_CURSOR BeginScript CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") CurDrawableHideSubObject("GBFFLAG") CurDrawableHideSubObject("GBFFLAMING") EndScript End ;// Animation state for phantom structure AnimationState = PHANTOM_STRUCTURE BeginScript CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") CurDrawableHideSubObject("GBFFLAG") CurDrawableHideSubObject("GBFFLAMING") EndScript End //--Damage States--- ModelConditionState = DAMAGED Model = GBFortress Texture = GBFortress1.tga GBFortress1D.tga End AnimationState = DAMAGED EnteringStateFX = FX_FortressDamaged End ModelConditionState = REALLYDAMAGED Model = GBFortress_D2 End AnimationState = REALLYDAMAGED Animation = Fortress_ReallyDamaged AnimationName = GBFortress_D2SK.GBFortress_D2AN AnimationMode = ONCE End EnteringStateFX = FX_FortressReallyDamaged End ModelConditionState = RUBBLE Model = GBFortress_D3 End AnimationState = RUBBLE Animation = Fortress_Rubble AnimationName = GBFortress_D3SK.GBFortress_D3AN AnimationMode = ONCE End EnteringStateFX = FX_FortressCollapse End //---Stonework--- ModelConditionState = UPGRADE_NUMENOR_STONEWORK Model = GBFortress Texture = GBFortress1.tga GBFortress1_U.tga End //---Snow--- ModelConditionState = SNOW Model = GBFortress Texture = GBFortress1.tga GBFortress1_Snow.tga End End Draw = W3DScriptedModelDraw ModuleTag_Draw_HCBanner OkToChangeModelColor = Yes DefaultModelConditionState Model = GBHCFortress End MultiPlayerOnly = Yes End //-------------------------------- Draw = W3DScriptedModelDraw ModuleTag_OilDraw OkToChangeModelColor = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = None End //---Build up Damaged--- ModelConditionState = UPGRADE_BOILING_OIL DAMAGED USER_1 Model = GBFBOil_A Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = UPGRADE_BOILING_OIL REALLYDAMAGED USER_1 Model = GBFBOil_A Texture = GBFortress1.tga GBFortress1D.tga End //---Build Up and Default Idle--- ModelConditionState = UPGRADE_BOILING_OIL USER_1 Model = GBFBOil_A End AnimationState = UPGRADE_BOILING_OIL USER_1 Animation = RiseUp AnimationName = GBFBoil_ASKL.GBFBoil_ABLD AnimationMode = ONCE End End //---Damage States--- ModelConditionState = UPGRADE_BOILING_OIL DAMAGED Model = GBFBoil Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = UPGRADE_BOILING_OIL REALLYDAMAGED Model = GBFBoil_D2 End AnimationState = UPGRADE_BOILING_OIL REALLYDAMAGED Animation = ReallyDamaged AnimationName = GBFBoil_D2SKL.GBFBoil_D2AN AnimationMode = ONCE End End ModelConditionState = UPGRADE_BOILING_OIL RUBBLE Model = GBFBoil_D3 End AnimationState = UPGRADE_BOILING_OIL RUBBLE Animation = Destroyed AnimationName = GBFBoil_D3SKL.GBFBoil_D3AN AnimationMode = ONCE End End //---Normal State--- ModelConditionState = UPGRADE_BOILING_OIL Model = GBFBOil End End //-------------------------------- Draw = W3DScriptedModelDraw ModuleTag_OilGuyDraw AttachToBoneInAnotherModule = PositionBone OkToChangeModelColor = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = None End IdleAnimationState StateName = NoTower End //---Build Up and Default Idle--- ModelConditionState = UPGRADE_BOILING_OIL USER_1 Model = None End ModelConditionState = UPGRADE_BOILING_OIL RUBBLE Model = NONE End //---Attacking--- AnimationState = SPECIAL_WEAPON_ONE UNPACKING UPGRADE_BOILING_OIL Animation = Pouring AnimationName = GBFBOil_SKL.GBFBOil_ATKA AnimationMode = ONCE End EnteringStateFX = FX_BoilingOilAttack ParticleSysBone = Steam_Bone02 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone03 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone04 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone05 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone06 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone07 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone08 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone09 MenFortressSpray FOLLOWBONE:YES ParticleSysBone = Steam_Bone02 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone03 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone04 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone05 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone06 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone07 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone08 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone09 MenFortressSpray02 FOLLOWBONE:YES ParticleSysBone = Steam_Bone02 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone03 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone04 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone05 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone06 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone07 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone08 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone09 MenFortressSteam FOLLOWBONE:YES ParticleSysBone = Steam_Bone02 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone03 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone04 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone05 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone06 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone07 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone08 MenFortressProxy FOLLOWBONE:YES ParticleSysBone = Steam_Bone09 MenFortressProxy FOLLOWBONE:YES End //---Normal State--- ModelConditionState = UPGRADE_BOILING_OIL Model = GBFBOil_SKN End AnimationState = UPGRADE_BOILING_OIL Animation = Idle AnimationName = GBFBOil_SKL.GBFBOil_IDLA AnimationMode = LOOP End End End //-------------------------------- Draw = W3DScriptedModelDraw ModuleTag_IvoryTowerDraw OkToChangeModelColor = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = None End //---Damage States--- ModelConditionState = UPGRADE_IVORY_TOWER DAMAGED Model = GBFITower_A Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = UPGRADE_IVORY_TOWER REALLYDAMAGED Model = GBFITower_D2 End AnimationState = UPGRADE_IVORY_TOWER REALLYDAMAGED Animation = ReallyDamaged AnimationName = GBFITower_D2SK.GBFITower_D2AN AnimationMode = ONCE End End ModelConditionState = UPGRADE_IVORY_TOWER RUBBLE Model = GBFITower_D3 End AnimationState = UPGRADE_IVORY_TOWER RUBBLE Animation = Destroyed AnimationName = GBFITower_D3SK.GBFITower_D3AN AnimationMode = ONCE End End //---Default Purchased States--- ModelConditionState = UPGRADE_IVORY_TOWER USER_2 Model = GBFITower_A End //---Build Up--- AnimationState = UPGRADE_IVORY_TOWER USER_2 Animation = RiseUp AnimationName = GBFITower_ASKL.GBFITower_ABLD AnimationMode = ONCE AnimationSpeedFactorRange = 8.0 8.0 End End //---Snow--- ModelConditionState = SNOW UPGRADE_IVORY_TOWER Model = GBFITower Texture = GBFortress1.tga GBFortress1_Snow.tga End ModelConditionState = UPGRADE_IVORY_TOWER Model = GBFITower End End ;-------------------------------- Draw = W3DScriptedModelDraw ModuleTag_HouseOfHealingDraw OkToChangeModelColor = Yes StaticModelLODMode = Yes // Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = None End //---Build Up--- ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 DAMAGED Model = GBFHeal_A Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 REALLYDAMAGED Model = GBFHeal_A Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 UPGRADE_NUMENOR_STONEWORK Model = GBFHeal_A Texture = GBFortress1.tga GBFortress1_U.tga End ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 SNOW Model = GBFHeal_A Texture = GBFortress1.tga GBFortress1_Snow.tga End ModelConditionState = UPGRADE_HOUSE_OF_HEALING USER_3 Model = GBFHeal_A End AnimationState = UPGRADE_HOUSE_OF_HEALING USER_3 Animation = RiseUp AnimationName = GBFHeal_ASKL.GBFHeal_ABLD AnimationMode = ONCE AnimationSpeedFactorRange = 5.0 5.0 End End //---Damage States--- ModelConditionState = UPGRADE_HOUSE_OF_HEALING DAMAGED Model = GBFHeal Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = UPGRADE_HOUSE_OF_HEALING REALLYDAMAGED Model = GBFHeal_D2 End AnimationState = UPGRADE_HOUSE_OF_HEALING REALLYDAMAGED Animation = ReallyDamaged AnimationName = GBFHeal_D2SKL.GBFHeal_D2AN AnimationMode = ONCE End End ModelConditionState = UPGRADE_HOUSE_OF_HEALING RUBBLE Model = GBFHeal_D3 End AnimationState = UPGRADE_HOUSE_OF_HEALING RUBBLE Animation = Destroyed AnimationName = GBFHeal_D3SKL.GBFHeal_D3AN AnimationMode = ONCE End End //---Stonework upgrade ModelConditionState = UPGRADE_NUMENOR_STONEWORK UPGRADE_HOUSE_OF_HEALING Model = GBFHeal Texture = GBFortress1.tga GBFortress1_U.tga End //---Snow--- ModelConditionState = SNOW UPGRADE_HOUSE_OF_HEALING Model = GBFHeal Texture = GBFortress1.tga GBFortress1_Snow.tga End //---Default Purchased States ModelConditionState = UPGRADE_HOUSE_OF_HEALING Model = GBFHeal End End ;-------------------------------- Draw = W3DScriptedModelDraw ModuleTag_DrawDoor DefaultModelConditionState Model = GBFDoor_DRC End //---Damage States--- ModelConditionState = DAMAGED DOOR_1_WAITING_OPEN Model = GBFDoor_DRO Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = REALLYDAMAGED DOOR_1_WAITING_OPEN Model = GBFDoor_DRO Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = DAMAGED DOOR_1_CLOSING Model = GBFDoor_DRCA Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = REALLYDAMAGED DOOR_1_CLOSING Model = GBFDoor_DRCA Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = DAMAGED Model = GBFDoor_DRC Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = REALLYDAMAGED Model = GBFDoor_DRC Texture = GBFortress1.tga GBFortress1D.tga End ModelConditionState = RUBBLE Model = GBFDoor_D3 End AnimationState = RUBBLE Animation = Door_Destroyed AnimationName = GBFDoor_D3.GBFDoor_D3 AnimationMode = ONCE AnimationBlendTime = 50 End End //---Normal States--- ModelConditionState = DOOR_1_OPENING Model = GBFDoor_DROA End AnimationState = DOOR_1_OPENING Animation = GBFDoor_DRO AnimationName = GBFDoor_DROA.GBFDoor_DROA AnimationMode = ONCE End End ModelConditionState = DOOR_1_CLOSING Model = GBFDoor_DRCA ParticleSysBone = NONE trollCageDust End AnimationState = DOOR_1_CLOSING Animation = GBFDoor_DRCA AnimationName = GBFDoor_DRCA.GBFDoor_DRCA AnimationMode = ONCE End End ModelConditionState = DOOR_1_WAITING_OPEN Model = GBFDoor_DRO End AnimationState = DOOR_1_WAITING_OPEN End ModelConditionState = POST_RUBBLE Model = None End ModelConditionState = POST_COLLAPSE Model = None End End //----------the Bib Draw = W3DFloorDraw ModuleTag_DrawFloor ModelName = GBFortress_Bib WeatherTexture SNOWY GBFortress_bib_snow.tga End // ***DESIGN parameters *** DisplayName = OBJECT:MenFortress Description = OBJECT:MenFortressDescription Side = Atalante EditorSorting = STRUCTURE ThreatLevel = 1.0 CommandPointBonus = SH_GENERIC_FORTRESS_COMMAND_POINT_BONUS BuildCost = SH_MEN_FORTRESS_BUILDCOST BuildTime = SH_MEN_FORTRESS_BUILDTIME VisionRange = SH_MEN_FORTRESS_VISION_RANGE ShroudClearingRange = SH_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 = AtalanteFortressCommandSet ; *** AUDIO Parameters *** #include "..\..\..\Includes\StandardBuildingEvaEvents.inc" EvaEventDieOwner = EvaFortressDie 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 CAN_CAST_REFLECTIONS Behavior = GettingBuiltBehavior ModuleTag_GettingBuiltBehavior WorkerName = GondorWorkerNoSelect SpawnTimer = SH_DEFAULT_STRUCTURE_HEALDELAY End Behavior = CastleMemberBehavior ModuleTag_CMB BeingBuiltSound = BuildingBigConstructionLoop End ;----------------------------------------------- ;Used for hero revival and initial construction Behavior = ProductionUpdate ProductionUpdateModuleTag ProductionModifier ; An object-local discount. RequiredUpgrade = Upgrade_MenFortressBanners CostMultiplier = 0.80 ModifierFilter = NONE +AtalanteBuilder 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 = SH_MEN_FORTRESS_HEALTH MaxHealthDamaged = SH_MEN_FORTRESS_HEALTH_DAMAGED MaxHealthReallyDamaged = SH_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 = SH_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 ObjectToDestroyForRingEntry = NONE +TheDroppedRing FXForRingEntry = FX_OneRingFlare End // Hide all the Improvements by default Behavior = SubObjectsUpgrade ModuleTag_HideAll TriggeredBy = Upgrade_StructureLevel1 HideSubObjects = GBFFLAMING GBFFLAG End // Boiling Oil special power, bought as improvement ;;; Behavior = UnpauseSpecialPowerUpgrade ModuleTag_OilEnabler SpecialPowerTemplate = SpecialAbilityMenFortressBoilingOil TriggeredBy = Upgrade_MenFortressBoilingOil End Behavior = SpecialPowerModule ModuleTag_OilStarter SpecialPowerTemplate = SpecialAbilityMenFortressBoilingOil UpdateModuleStartsAttack = Yes StartsPaused = Yes End Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_OilWeaponFireUpdate SpecialPowerTemplate = SpecialAbilityMenFortressBoilingOil WhichSpecialWeapon = 1 UnpackTime = 5200 PackTime = 4600 SpecialWeapon = MenFortressBoilingOilWeapon End Behavior = ModelConditionUpgrade ModuleTag_ShowTheOil TriggeredBy = Upgrade_MenFortressBoilingOil AddConditionFlags = UPGRADE_BOILING_OIL AddTempConditionFlag = ModelConditionState:USER_1 //For buildup TempConditionTime = 5.0 //try to match buildup anim time Permanent = Yes End Behavior = AudioLoopUpgrade ModuleTag_BoilingOilBuildLoop TriggeredBy = Upgrade_MenFortressBoilingOil SoundToPlay = WallConstructionLoop KillOnDeath = Yes KillAfterMS = 4000 ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die] End // Numeror Stonework improvement, just an upgrade Behavior = CastleUpgrade ModuleTag_PassOutNumenorStoneworkUpgrade TriggeredBy = Upgrade_MenFortressNumenorStoneworkTrigger Upgrade = Upgrade_MenFortressNumenorStonework WallUpgradeRadius = SH_MEN_FORTRESS_WALL_EFFECTIVE_RADIUS End Behavior = AttributeModifierUpgrade ModuleTag_Reinforced TriggeredBy = Upgrade_MenFortressNumenorStonework AttributeModifier = NumenorStoneworkKeep_Bonus End Behavior = ModelConditionUpgrade ModuleTag_ShowTheStones TriggeredBy = Upgrade_MenFortressNumenorStonework AddConditionFlags = UPGRADE_NUMENOR_STONEWORK Permanent = Yes End // Flaming Munitions improvement, just an upgrade, but doesn't do anything for us. Behavior = CastleUpgrade ModuleTag_PassOutFlamingMunitionsUpgrade TriggeredBy = Upgrade_GoodFortressFlamingMunitionsTrigger Upgrade = Upgrade_GoodFortressFlamingMunitions 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 = SH_GENERIC_BUFF_RECIPIENT_OBJECT_FILTER End Behavior = SubObjectsUpgrade ModuleTag_ShowBanners TriggeredBy = Upgrade_MenFortressBanners ShowSubObjects = GBFFLAG End // House of Healing improvement, Purchase discount is in ProductionUpdate Behavior = ModelConditionUpgrade ModuleTag_ShowHouseOfHealing TriggeredBy = Upgrade_MenFortressHouseOfHealing AddConditionFlags = UPGRADE_HOUSE_OF_HEALING AddTempConditionFlag = ModelConditionState:USER_3 //For buildup TempConditionTime = 7.0 //try to matc Permanent = Yes 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 HealPercentPerSecond = 3% AllowFilter = ANY +INFANTRY +CAVALRY +HERO -MACHINE +MONSTER -IMMOBILE +DOZER NonStackable = Yes HealFX = FX_SpellHealUnitHealBuff End Behavior = BannerCarrierUpdate BannerCarrierUpdateModuleTag UpgradeRequired = Upgrade_MenFortressHouseOfHealing IdleSpawnRate = 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 ScanHordeDistance = 200 End Behavior = AudioLoopUpgrade ModuleTag_HouseOfHealingBuildLoop // Play a "build loop" while the House of Healing is building up TriggeredBy = Upgrade_MenFortressHouseOfHealing //ConflictsWith = Upgrade_PosternGate Upgrade_WallBanner SoundToPlay = BuildingConstructionLoop KillOnDeath = Yes KillAfterMS = 5000 ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die] End Behavior = CastleUpgrade ModuleTag_PassOutHouseOfHealingUpgrade TriggeredBy = Upgrade_MenFortressHouseOfHealing Upgrade = Upgrade_MenFortressHouseOfHealing End // Ivory Tower improvement, Gives a bonus to me, as well as unlocking a spell Behavior = AttributeModifierUpgrade ModuleTag_IvoryTowerBonus AttributeModifier = MenFortressIvoryTowerBonus TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework RequiresAllTriggers = Yes End Behavior = GeometryUpgrade TowerGeom TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework RequiresAllTriggers = Yes ShowGeometry = HighTowerGeom End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_IvoryTowerVisionEnabler SpecialPowerTemplate = SpecialAbilityMenFortressIvoryTowerVision TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework RequiresAllTriggers = Yes End Behavior = OCLSpecialPower ModuleTag_IvoryTowerVision SpecialPowerTemplate = SpecialAbilityMenFortressIvoryTowerVision StartsPaused = Yes OCL = SpecialPowerIvoryTowerVision CreateLocation = CREATE_AT_LOCATION End Behavior = AudioLoopUpgrade ModuleTag_IvoryTowerBuildLoop ; Play a "build loop" while the IvoryTower is building up TriggeredBy = Upgrade_MenFortressIvoryTower ;Upgrade_MenFortressNumenorStonework ;ConflictsWith = Upgrade_PosternGate Upgrade_WallBanner SoundToPlay = BuildingBigConstructionLoop KillOnDeath = Yes KillAfterMS = 2500 ; Should match the length of the build-up animation [Or a little shorter since sounds take a little while to die] End Behavior = ModelConditionUpgrade ModuleTag_ShowTheTower TriggeredBy = Upgrade_MenFortressIvoryTower Upgrade_MenFortressNumenorStonework RequiresAllTriggers = Yes AddConditionFlags = UPGRADE_IVORY_TOWER AddTempConditionFlag = ModelConditionState:USER_2 //For buildup TempConditionTime = 10.0 //try to match buildup anim time Permanent = Yes End #include "..\..\..\FortressRingFunc.inc" Behavior = AIUpdateInterface ModuleTag_AI AILuaEventsList = FortressFunctions AutoAcquireEnemiesWhenIdle = Yes MoodAttackCheckRate = 250 End //Money Maker Behavior = AutoDepositUpdate AutoDepositModuleTag DepositTiming = SH_GENERIC_KEEP_MONEY_TIME DepositAmount = SH_GENERIC_KEEP_MONEY_AMOUNT InitialCaptureBonus = 0 // no initial bonus End Behavior = TerrainResourceBehavior ModuleTag_NewMoneyDeadSpot Radius = SH_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 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 AtalanteFortress SelectPortrait = BPGFortress 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 = GBFortress 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 = GBFortress End ;// Animation state for build placement cursor AnimationState = BUILD_PLACEMENT_CURSOR BeginScript CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") CurDrawableHideSubObject("GBFFLAG") CurDrawableHideSubObject("GBFFLAMING") EndScript End ;// Animation state for phantom structure AnimationState = PHANTOM_STRUCTURE BeginScript CurDrawableHideSubObject("FIREGLOW") CurDrawableHideSubObject("FLAMES") CurDrawableHideSubObject("GBFFLAG") CurDrawableHideSubObject("GBFFLAMING") 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 = GBFortress_A Texture = GBFortress1.tga GBFortress1_Snow.tga End ModelConditionState = ACTIVELY_BEING_CONSTRUCTED ;//UNPACKING Model = GBFortress_A End AnimationState = ACTIVELY_BEING_CONSTRUCTED Animation = UpAndStill AnimationName = GBFortress_ASK.GBFortress_ABL 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 = GBFDoor_A End AnimationState = ACTIVELY_BEING_CONSTRUCTED Animation = GBFDoor_A AnimationName = GBFDoor_A.GBFDoor_A AnimationMode = MANUAL End End End ArmorSet Conditions = None Armor = FortressArmor DamageFX = EmptyDamageFX ; just to avoid an assert End Side = Atalante EditorSorting = STRUCTURE PlacementViewAngle = -45 ; A -90 makes the door of the base face natural south. 0 would have it to the East. BuildCost = SH_MEN_FORTRESS_BUILDCOST BuildTime = SH_MEN_FORTRESS_BUILDTIME 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 CAN_CAST_REFLECTIONS Body = StructureBody ModuleTag_05 MaxHealth = SH_MEN_FORTRESS_HEALTH End Behavior = CastleBehavior ModuleTag_castle CastleToUnpackForFaction = Atalante Fortress_Men 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 = 120.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 = SH_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
Code from commandset.ini:
CommandSet AtalanteFortressCommandSet InitialVisible = 7 1 = Command_ConstructAtalanteBuilder 2 = Command_SelectRevivablesMenFortress 3 = Command_FireWeaponMenFortressBoilingOil 4 = Command_SpecialAbilityIvoryTowerVision 6 = Command_Sell 5 = Command_SelectUpgradesMenFortress 8 = Command_PurchaseUpgradeMenFortressBanners 9 = Command_PurchaseUpgradeMenFortressHouseOfHealing 10 = Command_PurchaseUpgradeMenFortressFlamingMunitions 11 = Command_PurchaseUpgradeMenFortressBoilingOil 12 = Command_PurchaseUpgradeMenFortressNumenorStonework 13 = Command_PurchaseUpgradeMenFortressIvoryTower 14 = Command_RadialBack 15 = Command_RingHeroReviveSlot 16 = Command_CreateAHeroReviveSlot 17 = Command_GenericReviveSlot1 18 = Command_GenericReviveSlot2 19 = Command_GenericReviveSlot3 20 = Command_GenericReviveSlot4 21 = Command_GenericReviveSlot5 22 = Command_GenericReviveSlot6 23 = Command_GenericReviveSlot7 24 = Command_RadialBack End
Code from playertemplate.ini:
PlayerTemplate FactionAtalante Side = Atalante PlayableSide = Yes Evil = No StartMoney = 0 MaxLevelMP = #DIVIDE( SH_PLAYER_MAX_PURCHASE_POINTS_DEFAULT SH_PLAYER_PURCHASE_POINTS_GRANTED ) MaxLevelSP = #DIVIDE( SH_PLAYER_MAX_PURCHASE_POINTS_GOOD SH_PLAYER_PURCHASE_POINTS_GRANTED ) PreferredColor = R:0 G:123 B:167 StartingBuilding = AtalanteFortress StartingUnit1 = AtalanteBuilder StartingUnitOffset1 = X:30 Y:200 Z:0 StartingUnit0 = AtalanteBuilder StartingUnitOffset0 = X:1 Y:130 Z:0 StartingUnitTacticalWOTR = AtalanteBuilder StartingUnitTacticalWOTR = AtalanteBuilder IntrinsicSciences = SCIENCE_GOOD IntrinsicSciencesMP = SCIENCE_MEN_R SpellBook = GoodSpellBook SpellBookMp = MenRevisedSpellBook PurchaseScienceCommandSet = GoodSpellStoreCommandSet PurchaseScienceCommandSetMP = MenRevisedSpellStoreCommandSet DisplayName = INI:FactionAtalante DefaultPlayerAIType = MenSkirmishAI BeaconName = MultiplayerBeacon LightPointsUpSound = GondorLightPointsUp ObjectiveAddedSound = Gui_MissionObjectiveNew ObjectiveCompletedSound = Gui_MissionObjectiveCompleted InitialUpgrades = Upgrade_AtalanteFaction // NOTE: It is very important that the create-a-hero be the first buildable hero, to ensure that the create-a-hero and the ring hero are always // attached to the first two buttons in the command set. BuildableHeroesMP = CreateAHero BuildableRingHeroesMP = ElvenGaladriel_RingHero SpellStoreCurrentPowerLabel = APT:SpellStoreCurrentEvenstarPower SpellStoreMaximumPowerLabel = APT:SpellStoreMaximumEvenstarPower ResourceModifierObjectFilter = RESOURCE_MODIFIER_OBJECT_FILTER ResourceModifierValues = 100 100 100 100 100 100 100 100 100 100 100 MultiSelectionPortrait = UPGondor_Army LoadScreenMusic = Shell2MusicForLoadScreen End
So...I need to make a .bse file? Anything else while I'm at it? >_0
EDIT: Made a .bse file. Referenced it in CastleToUnpackForFaction in the fortress (changed it to "fortress_atalante" instead of "fortress_men") and now when I start the game, no fortress at all shows up (and then I'm instantly defeated). Is there some other step I missed?
In Topic: New CAH class and powers crashing
01 July 2013 - 04:58 PM
I managed to find the problem, actually - it wasn't reading my armorset correctly, so it couldn't multiply attributes and resolve the armor data. That's what was making it crash. Thanks anyway!
In Topic: New CAH class and powers crashing
27 June 2013 - 10:29 PM
I actually found that and went over it several times. As far as I can tell, I haven't missed anything. That's what has me so confused.
In Topic: Help in my mod
27 June 2013 - 06:20 PM
Oh, it's no problem. Have fun with your lancers.
- Revora Forums
- → Viewing Profile: Posts: acidRain
- Privacy Policy
- Forum Guidelines ·