Jump to content


Photo

porter problem

rotwk modding

  • Please log in to reply
3 replies to this topic

#1 StarlessBeseech

StarlessBeseech
  • Members
  • 5 posts

Posted 21 June 2016 - 07:00 PM

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



#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 21 June 2016 - 08:04 PM

it's just because you forgot to change the object name of your porter thats still remplace the MenPorter by HobbitPorter in your porter.ini


He was the first...


#3 StarlessBeseech

StarlessBeseech
  • Members
  • 5 posts

Posted 21 June 2016 - 08:15 PM

i've just tryed, it doesn't work



#4 StarlessBeseech

StarlessBeseech
  • Members
  • 5 posts

Posted 22 June 2016 - 09:44 AM

I tryed to follow this guide http://www.middleear...ead.php?t=21880

I don't know what was wrong but now it works :)

 

my porter.ini:

;------------------------------------------------------------------------------
;
;	Men Porter.ini
;
;------------------------------------------------------------------------------

; aka Porter
Object HobbitPorter
	; *** 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					= Hobbit
	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 HobbitPorterNoSelect HobbitPorter
	KindOf = PRELOAD CAN_CAST_REFLECTIONS INFANTRY PATH_THROUGH_EACH_OTHER DOZER SWARM_DOZER NOT_AUTOACQUIRABLE MOVE_FOR_NOONE
	ShockwaveResistance = SHOCKWAVE_RESISTANCE_IMMUNE
End






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users