Hi,
I don't know what is wrong, i was trying to add a porter to a new faction "hobbit", but when i play no porter appears
I've also tryed to add a new fortress mixing the fortress.ini of men and tombombadil house
Please help me, i don't know what i'm doing and i don't find tutorials online
Please
porter.ini:
;------------------------------------------------------------------------------ ; ; Men Porter.ini ; ;------------------------------------------------------------------------------ ; aka Porter Object MenPorter ; *** ART Parameters *** SelectPortrait = UPGondor_Porter ; ButtonImage for Porter ButtonImage = BGFortress_Porter Draw = W3DTruckDraw ModuleTag_01 OkToChangeModelColor = Yes ;StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD DefaultModelConditionState Model = GUPorter_SKN Skeleton = GUPorter_SKL End IdleAnimationState StateName = STATE_Running Animation = IDLA AnimationName = GUPorter_IDLA AnimationMode = ONCE AnimationPriority = 20 End Animation = IDLB ; fidget. Search animation AnimationName = GUPorter_IDLB AnimationMode = ONCE AnimationPriority = 1 End End AnimationState = DYING DEATH_1 Animation = DIEB AnimationName = GUPorter_DIEA AnimationMode = ONCE End End AnimationState = DYING DEATH_2 Animation AnimationName = GUPorter_IDLA AnimationMode = LOOP End End AnimationState = DYING Animation = DIEA AnimationName = GUPorter_DIEA AnimationMode = ONCE End End AnimationState = PARALYZED Animation AnimationName = GUPorter_IDLA AnimationMode = LOOP End End AnimationState = MOVING WANDER StateName = STATE_Running Animation = WLKA AnimationName = GUPorter_WLKA AnimationMode = LOOP End Flags = RANDOMSTART ;ParticleSysBone = None InfantryDustTrails End AnimationState = MOVING StateName = STATE_Running Animation = RUNNING AnimationName = GUPorter_RUNA AnimationMode = LOOP ; AnimationSpeedFactorRange = 3.8 3.8 End Flags = RANDOMSTART ;ParticleSysBone = None InfantryDustTrails End AnimationState = UNPACKING PACKING_TYPE_1 Animation AnimationName = GUPorter_FIRA AnimationMode = ONCE End BeginScript CurDrawablePlaySound("MenBuilderFireExtinguish") EndScript ParticleSysBone = BUCKET PorterFireWater FollowBone:YES End AnimationState = ACTIVELY_CONSTRUCTING StateName = STATE_Constructing Animation = WRKA AnimationName = GUPorter_WRKB AnimationMode = ONCE AnimationPriority = 30 AnimationSpeedFactorRange = 0.9 1.1 End Animation = WRKA ; In twice so that we can play it twice in a row. AnimationName = GUPorter_WRKB AnimationMode = ONCE AnimationPriority = 30 AnimationSpeedFactorRange = 0.9 1.1 End Animation = WRKB AnimationName = GUPorter_WRKC AnimationMode = ONCE AnimationPriority = 5 AnimationSpeedFactorRange = 0.9 1.1 End Animation = WRKB AnimationName = GUPorter_WRKC AnimationMode = ONCE AnimationPriority = 5 AnimationSpeedFactorRange = 0.9 1.1 End Flags = RESTART_ANIM_WHEN_COMPLETE BeginScript Prev = CurDrawablePrevAnimationState() if Prev == "STATE_Running" then CurDrawableSetTransitionAnimState("TRANS_RunToWork") end EndScript End ;;--------------- TRANSITIONS --------------------------------------------------------------------------- TransitionState = TRANS_RunToWork Animation = ATNA AnimationName = GUPorter_WRKA AnimationMode = ONCE End End ;;----------------------------------------------------------------------------------------------------------- LeftFrontTireBone = WHEEL_L01 RightFrontTireBone = WHEEL_R01 ;LeftRearTireBone = WHEEL_L01 ;RightRearTireBone = WHEEL_R01 TireRotationMultiplier = 0.2 End #include "..\..\..\includes\StunDrawModuleMedium.inc" ; ***DESIGN parameters *** Side = Men EditorSorting = UNIT ThingClass = HORDE_UNIT CommandPoints = 0 TransportSlotCount = TRANSPORTSLOTCOUNT_DOZER ArmorSet Conditions = None Armor = PorterArmor DamageFX = NormalDamageFX End BuildCost = MEN_PORTER_BUILDCOST BuildTime = MEN_PORTER_BUILDTIME VisionRange = MEN_PORTER_VISION_RANGE BountyValue = MEN_PORTER_BOUNTY_VALUE ShroudClearingRange = MEN_PORTER_SHROUD_RANGE DisplayName = OBJECT:GondorPorter CrushableLevel = 1 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE IsTrainable = No CommandSet = HobbitPorterCommandSet ; *** AUDIO Parameters ***; VoiceCreated = MenBuilderVoiceSalute VoiceFullyCreated = MenBuilderVoiceSalute VoiceMove = MenBuilderVoiceMove VoiceMoveToCamp = MenBuilderVoiceMove VoicePriority = 6 VoiceRetreatToCastle = MenBuilderVoiceMove VoiceSelect = MenBuilderVoiceSelectMS SoundImpact = ImpactHorse SoundMoveLoop = MenBuilderMoveLoopMS SoundMoveStart = MenBuilderMoveStart UnitSpecificSounds VoiceNoBuild = EVA:PorterCantBuild VoiceBuildResponse = MenBuilderVoiceBuild VoiceExtinguishFireAtLocation = MenBuilderVoiceMove VoiceGarrison = MenBuilderVoiceGarrison VoiceSelectIdleWorker = MenBuilderVoiceSelectMS VoiceEnterUnitElvenTransportShip = MenBuilderVoiceMove VoiceInitiateCaptureBuilding = MenBuilderVoiceMove End ClientBehavior = ModelConditionAudioLoopClientBehavior ModuleTag_foo ModelCondition = Required:EMOTION_CELEBRATING Excluded:DYING ENGAGED Sound:EmotionMenGoodCompilationVoxCheerSinglesLoop ;MOVING ATTACKING ModelCondition = Required:EMOTION_TAUNTING Excluded:DYING ENGAGED Sound:EmotionMenGoodCompilationBFME1and2VoxTauntSinglesLoop ;MOVING ATTACKING End #include "..\..\..\Includes\StandardUnitEvaEvents.inc" EvaEventDamagedOwner = PorterUnderAttack ;Eva event to trigger when unit is damaged ; Moved to FX_PorterDie so that we avoid annoucing FADED deaths ;EvaEventDieOwner = PorterDie ;Eva event to trigger on unit's death. NOTICE THAT this is only for permanent deaths ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE DOZER CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER SCORE THROWN_OBJECT PORTER IGNORES_SELECT_ALL NONCOM //SelectionPriority = SELECTION_PRIORITY_PORTER Body = ActiveBody ModuleTag_02 MaxHealth = MEN_PORTER_HEALTH MaxHealthDamaged = MEN_PORTER_HEALTH_DAMAGED RecoveryTime = MEN_PORTER_HEALTH_RECOVERY_TIME End Behavior = DozerAIUpdate ModuleTag_03 AILuaEventsList = InfantryFunctions RepairHealthPercentPerSecond = 2% ; % of max health to repair each second BoredTime = 5000 ; in milliseconds BoredRange = 150 ; when bored, we look this far away to do something AutoAcquireEnemiesWhenIdle = No ; no mine-disarming in the design at the moment SpecialContactPoints = Repair End LocomotorSet Locomotor = PorterLocomotor Condition = SET_NORMAL Speed = NORMAL_INGAME_PORTER_SPEED End LocomotorSet Locomotor = PorterLocomotor Condition = SET_WANDER Speed = NORMAL_INGAME_PORTER_SPEED End Behavior = PhysicsBehavior ModuleTag_04 GravityMult = 1.0 End Behavior = SlowDeathBehavior SlowDeathBehaviorModuleTag_1 DeathTypes = ALL -CRUSHED -EXPLODED -KNOCKBACK -DETONATED -SPLATTED -FADED -SLAUGHTERED SinkDelay = 3000 SinkRate = 1.40 ; in Dist/Sec DestructionDelay = 13000 Sound = INITIAL MenBuilderVoiceDie ;PorterGenericVoiceDie FX = INITIAL FX_PorterDie End Behavior = SlowDeathBehavior SlowDeathBehaviorModuleTag_2 DeathTypes = NONE +CRUSHED +EXPLODED +KNOCKBACK +DETONATED +SPLATTED SinkDelay = 3000 SinkRate = 1.40 ; in Dist/Sec DestructionDelay = 13000 DeathFlags = DEATH_1 FX = INITIAL FX_PorterDieExplosion Sound = INITIAL MenBuilderVoiceDie ;PorterGenericVoiceDie End Behavior = SlowDeathBehavior ModuleTag_ConstructionDeath DeathTypes = NONE +FADED DeathFlags = DEATH_2 FadeDelay = 500 FadeTime = 3500 DestructionDelay = 4000 End ; Send porter back into fortress, don't announce or scream Behavior = SlowDeathBehavior SlowDeathBehaviorModuleTag_Decommissioned DeathTypes = NONE +SLAUGHTERED SinkDelay = 1000 SinkRate = 1.40 ; in Dist/Sec DestructionDelay = 5000 End Behavior = SquishCollide ModuleTag_06 ;nothing End Behavior = BezierProjectileBehavior ModuleTag_08 ; Module starts asleep, and wakes up when thrown. ; FirstHeight = 24 ; Height of Bezier control points above highest intervening terrain SecondHeight = 24 FirstPercentIndent = 30% ; Percentage of shot distance control points are placed SecondPercentIndent = 70% TumbleRandomly = Yes CrushStyle = Yes ; I don't detonate, I just hit DieOnImpact = Yes BounceCount = 1 ; When I hit the ground, I'll arc again BounceDistance = 40 ; this far BounceFirstHeight = 16 ; Height of Bezier control points above highest intervening terrain BounceSecondHeight = 16 BounceFirstPercentIndent = 20% ; Percentage of shot distance control points are placed BounceSecondPercentIndent = 80% GroundHitFX = FX_ThrownRockGroundHit GroundBounceFX = FX_ThrownRockBounceHit End ;-------------------------------------------------------------------- ; Emotion Tracker for the Terror state ;-------------------------------------------------------------------- Behavior = EmotionTrackerUpdate Module_EmotionTracker AfraidOf = NONE +RohanTreeBerd +RohanEntFir +RohanEntAsh +RohanEntBirch +MordorBalrog +MordorCaveTroll +MordorMountainTroll +MordorDrummerTroll +MordorFellBeast +MordorMumakil;Must be SCARY kindof as well. AlwaysAfraidOf = NONE +MordorWitchKing +MordorWitchKingOnFellBeast +MordorBalrog +RohanOathbreaker FearScanDistance = 250 AddEmotion = BraceForBeingCrushed_Base AddEmotion = Terror_Base End #include "..\..\..\Includes\PorterExtinguishFire.inc" ;-------------------------------------------------------------------- ; Don't make it any bigger or try making it a box or this unit will not make it up onto walls to deliver it's goods. Geometry = CYLINDER GeometryMajorRadius = 8.0 GeometryMinorRadius = 8.0 GeometryHeight = 16.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 27; ShadowSizeY = 27; ShadowTexture = ShadowI; End ;-------------------------------------------------------------------- ChildObject MenPorterNoSelect MenPorter KindOf = PRELOAD CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER DOZER SWARM_DOZER NOT_AUTOACQUIRABLE MOVE_FOR_NOONE ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE End
playertemplate.ini:
PlayerTemplate FactionHobbits ; the faction name Side = Hobbits ; what side will your faction be on? PlayableSide = Yes ; self explanatory, choose no, and you can't play it in the game. Evil = No ; is your faction evil or not? StartMoney = 0 ; how much money will your faction start off with? MaxLevelMP = #DIVIDE( PLAYER_MAX_PURCHASE_POINTS_DEFAULT PLAYER_PURCHASE_POINTS_GRANTED ); just ignore this for now MaxLevelSP = #DIVIDE( PLAYER_MAX_PURCHASE_POINTS_GOOD PLAYER_PURCHASE_POINTS_GRANTED ); just ignore it PreferredColor = R:43 G:150 B:179; the preferred color of your faction. It really isn't necessary to edit this, but feel free StartingBuilding = HobbitFortress ; the starting building of your faction ;------------- NO STARTING UNITS FOR YOU ------- ;StartingUnit0 = GondorFighterHorde ; this would normally be the units your faction starts off with, but when any code line has a ';' in it, that usually means it will be ignored. ;StartingUnitOffset0 = X:-60 Y:185 Z:0; just ignore this StartingUnit1 = HobbitPorter ;the porter that your faction will start with. StartingUnitOffset1 = X:30 Y:200 Z:0 StartingUnit0 = HobbitPorter StartingUnitOffset0 = X:1 Y:130 Z:0 StartingUnitTacticalWOTR = HobbitPorter ;the starting units for war of the ring. StartingUnitTacticalWOTR = HobbitPorter ; same thing. You can also add the same code line for different starting units if you wish to do so IntrinsicSciences = SCIENCE_GOOD ; will your faction use good or evil science? IntrinsicSciencesMP = SCIENCE_HOBBIT; the science your individual faction has. It is not required to be edited, but is suggested. SpellBook = GoodSpellBook ; evil spellbook or good spell book? SpellBookMp = HobbitSpellBook; The individual spellbook for your faction. PurchaseScienceCommandSet = GoodSpellStoreCommandSet PurchaseScienceCommandSetMP = MenSpellStoreCommandSet DisplayName = INI:FactionHobbit ; this is referencing to the lotr.str. It will be explained when we come to it. DefaultPlayerAIType = MenSkirmishAI; I'm not 100% sure, but i'd guess that it is the strategic AI that the faction uses. But again that will have to be added. BeaconName = MultiplayerBeacon LightPointsUpSound = GondorLightPointsUp ObjectiveAddedSound = Gui_MissionObjectiveNew ObjectiveCompletedSound = Gui_MissionObjectiveCompleted InitialUpgrades = Upgrade_MenFaction ; Any upgrades this player template is born with. // 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 RohanEomer GondorBoromir RohanTheoden GondorFaramir AragornNew GondorGandalf DwarvenGimli ElvenLegolas ElvenGlorfindel ElvenHaldir ArnorCaptainStealthless; the buildable heroes for your fortress. BuildableRingHeroesMP = ElvenGaladriel_RingHero ; the ring hero for your faction. SpellStoreCurrentPowerLabel = APT:SpellStoreCurrentEvenstarPower SpellStoreMaximumPowerLabel = APT:SpellStoreMaximumEvenstarPower ResourceModifierObjectFilter = RESOURCE_MODIFIER_OBJECT_FILTER ResourceModifierValues = 100 100 100 100 90 85 80 75 71 68 66 MultiSelectionPortrait = UPGondor_Army LoadScreenMusic = Shell2MusicForLoadScreen End
commandset.ini:
CommandSet HobbitPorterCommandSet 1 = Command_Stop 2 = Command_PorterExtinguishFire 3 = Command_PorterConstructMenFarm 4 = Command_ConstructElvenEntMoot 5 = Command_PorterConstructMenBlacksmith End CommandSet HobbitFortressCommandSet InitialVisible = 7 //Main Menu 1 = Command_ConstructInnElvenHobbitShirrif ; 2 = Command_ConstructGondorKnightsofDolHorde 2 = Command_SelectRevivablesMenFortress 3 = Command_FireWeaponMenFortressBoilingOil 4 = Command_SpecialAbilityIvoryTowerVision 6 = Command_Sell 5 = Command_SelectUpgradesMenFortress //Upgrades Menu 8 = Command_PurchaseUpgradeMenFortressBanners 9 = Command_PurchaseUpgradeMenFortressHouseOfHealing 10 = Command_PurchaseUpgradeMenFortressFlamingMunitions 11 = Command_PurchaseUpgradeMenFortressBoilingOil 12 = Command_PurchaseUpgradeMenFortressNumenorStonework 13 = Command_PurchaseUpgradeMenFortressIvoryTower 14 = Command_RadialBack //Hero Menu 15 = Command_RingHeroReviveSlot 16 = Command_CreateAHeroReviveSlot // Note we also need an extra slot for the Create A Hero 17 = Command_GenericReviveSlot1 //Revives any hero. keep them UNIQUE within the same commandset! 18 = Command_GenericReviveSlot2 19 = Command_GenericReviveSlot3 20 = Command_GenericReviveSlot4 21 = Command_GenericReviveSlot5 22 = Command_GenericReviveSlot6 23 = Command_GenericReviveSlot7 24 = Command_RadialBack End
fortress:
// 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 HobbitFortressCenterGeneric SelectPortrait = BPGFortress Draw = W3DScriptedModelDraw ModuleTag_Draw DefaultModelConditionState Model = none End ModelConditionState = WORLD_BUILDER Model = NBasePin End End Side = Hobbit 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 HobbitFortressExpansionPadCorner SelectPortrait = BPGFortress_BuildPlot // *** ART Parameters *** Draw = W3DFloorDraw DrawFloorBase ModelName = GBFoundationB 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:TomBombadilHouse Side = Hobbit EditorSorting = STRUCTURE Browser = REGION Shire STRUCTURE ThreatLevel = 1.0 BuildCost = 500 BuildTime = 15.0 ; in seconds VisionRange = 160.0 ; Shroud clearing distance ShroudClearingRange = 160 ; CommandSet = GondorBarracksCommandSet ; *** AUDIO Parameters *** SoundOnDamaged = BuildingLightDamageStone SoundOnReallyDamaged = BuildingHeavyDamageStone ; VoiceSelect = GondorBarracksSelect ; UnitSpecificSounds ; UnderConstruction = UnderConstructionLoop ; End ; *** ENGINEERING Parameters *** RadarPriority = NOT_ON_RADAR 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 Body = ActiveBody ModuleTag_05 MaxHealth = 1000.0 MaxHealthDamaged = 700.0 MaxHealthReallyDamaged = 300.0 End ; ArmorSet ; Conditions = None ; Armor = HelmsDeepGates ; DamageFX = GateDamageFX ; End Behavior = ProductionUpdate ModuleTag_06 ; nothing End Geometry = BOX GeometryMajorRadius = 24 GeometryMinorRadius = 46 GeometryHeight = 24 GeometryOffset = X:1.5 Y:-6.5 Z:0 GeometryIsSmall = No Shadow = SHADOW_VOLUME End
Sorry for the bad english