The 3rd Age

BFME 2: Arcade Edition

BFME 2: Arcade Edition

Throws out all the conventional rules of a RTS game and opens the game up like a playable cheat code

Button for The 3rd AgeButton for The Dwarf HoldsButton for The Elven AllianceButton for Helm's Deep Last HopeButton for GothmogtheOrcButton for BFME+Button for The Four AgesButton for HDR HeadquartersButton for Middle Earth CenterButton for Project Perfect Mod

Become an affiliate!

   

Quick Lists

Top Rated Popular New Updated Last Comments Users

Register and log in to move these advertisements down

Modules - Draw + Body + Behaviors

Tutorial for Battle for Middle-earth BFME, Battle for Middle-earth II BFME 2, Battle for Middle-earth II: Rise of the Witch-king ROTWK

Avatar of Ridder Geel

Ridder Geel

Category: Code
Level: Intermediate
Created: Tuesday May 5, 2009 - 10:16
Updated: Monday February 18, 2013 - 13:46
Views: 7828
Summary: Find info on all the modules (Body & Draw & AIUpdate are done) in the BFME series! (Far from done!)

Rating

Staff says

4.3

Members say

4.3

Average

4.3/5.0

11 votes

Page 1 2 3 4
-+-=-+-=-+-=-+-=-+- Body Modules -+-=-+-=-+-=-+-=-+-
-ActiveBody-User imageUser imageUser image
This one is used by most units ingame, this one is usually the Basic one, so some of the things in this "Block" can be used in any other "Body".
              
Code

Body = ActiveBody BodyModuleTag
    InitialHealth        = 5000    ; Starts with this much health, Not needed unless you wish for the object to begin with less health than the Max value!

    MaxHealth        = 5000    ; Max Health

    MaxHealthDamaged    = 2500    ; Max Health for ModelConditionState DAMAGED, Meaning if my health is below 2500 give me DAMAGED

    MaxHealthReallyDamaged    = 1000    ; Max Health for ModelConditionState REALLYDAMAGED, Meaning if my health is below 1000 give me REALLYDAMAGED (Overrides DAMAGED)

    RecoveryTime        = 5000    ; How long does it take for me to recover all of my health?

    BurningDeathBehavior    = Yes             ; Can I die burning?

    BurningDeathFX        = FX_CavalryBurningFlame ; When I die burning play this FX!

    RemoveUpgradesOnDeath    = Upgrade_Chicken    ; When I die what upgrades are removed from me or the player?

    CheerRadius        = EMOTION_CHEER_RADIUS

    DamagedAttributeModifier    = BerserkerDamagedAttributeModifier        ; I get a cool attributemodifier when I'm damaged!

    ReallyDamagedAttributeModifier    = BerserkerReallyDamagedAttributeModifier    ; I get a even cooler attributemodifier when I'm REALLY damaged!

    HealingBuffFx = None    ; When i get healed Play this FX (Or in this case NO FX)

    ;DamageCreationLists... Interesting stuff...
    ;When the dude gets hit by a CATAPULT_ROCK in a specific area such as the FRONT, then OCL_RBArchRnge_Chunk1 is made!
    DamageCreationList = OCL_BuildingDamageList01 CATAPULT_ROCK         ; CATAPULT_ROCK hits anywhere
    DamageCreationList = OCL_RBArchRnge_Chunk1 CATAPULT_ROCK FRONT_DESTROYED ; ^Up there is this one explained!^
    DamageCreationList = OCL_RBArchRnge_Chunk2 CATAPULT_ROCK BACK_DESTROYED     ; BACK DESTROYED
    DamageCreationList = OCL_RBArchRnge_Chunk3 CATAPULT_ROCK RIGHT_DESTROYED ; RIGHT DESTROYED
    DamageCreationList = OCL_RBArchRnge_Chunk4 CATAPULT_ROCK LEFT_DESTROYED     ; LEFT DESTROYED

    UseDefaultDamageSettings        = No    ; Don't add damage states that I don't explicitly ask for.

    EnteringDamagedTransitionTime        = 6000    ; I am paralyzed for this long when I become damaged, because I have a really cool transition anim to play.

    EnteringReallyDamagedTransitionTime    = 6000    ; I am paralyzed for this long when I become REALLY damaged, because I have a really cool transition anim to play.

    GrabObject    = EntThrownBuildingRock    ; What object is "Made" when this thing is being grabbed?

    GrabFX        = FX_WallGrab        ; What FX is played when this thing gets grabbed?

    GrabDamage    = 490            ; When Grabbed how much damage does this object recieve?

    GrabOffset    = X:16 Y:0        ; Where does the Object and FX "Appear"? (depends on where grabbed?)


    DodgePercent    = HERO_DODGE_PERCENT ; How much % of the time can I "dodge" a weapon (works only on weapons with: CanBeDodged = Yes)

    PermanentlyKilledByFilter    = NONE    ; Who kills me permanently?
End


-InactiveBody-User imageUser imageUser image
Never has anything in it, this is usually used for props such as undestroyable Structures.
              
Code

Body = InactiveBody ModuleTag_InactiveBody
    ;nothing
End


-StructureBody-User imageUser imageUser image
This one is used for most Structures.
              
Code

Body = StructureBody ModuleTag_StructureBody
    MaxHealth = 3000.0
    MaxHealthDamaged = 2000.0
    MaxHealthReallyDamaged =1000.0

    DamageCreationList = OCL_BuildingDamageList01 CATAPULT_ROCK
    DamageCreationList = OCL_RBBarracks_Chunk1 CATAPULT_ROCK FRONT_DESTROYED
    DamageCreationList = OCL_RBBarracks_Chunk2 CATAPULT_ROCK BACK_DESTROYED
    DamageCreationList = OCL_RBBarracks_Chunk3 CATAPULT_ROCK RIGHT_DESTROYED
    DamageCreationList = OCL_RBBarracks_Chunk4 CATAPULT_ROCK LEFT_DESTROYED
End


-HighlanderBody-User imageUser imageUser image
As far as I know only has the MaxHealth in it, this is usually used for props such as rocks.
              
Code

Body = HighlanderBody ModuleTag_HighlanderBody ;Can take damage, but won't die. Can only die from ::kill() or other unresistable damage
    MaxHealth = 1.0
End


-ImmortalBody-User imageUser imageUser image
Similar to Highlander Body, This one is used for Hordes, Expansion plots, Arwen's Flood and some others.
              
Code

Body = ImmortalBody ModuleTag_ImmortalBody
    MaxHealth = 1
    InitialHealth = 1
End


-RespawnBody-User imageUser imageUser image
Used for Heroes that can be revived.
              
Code

Body = RespawnBody ModuleTag_RespawnBody
    CheerRadius             = EMOTION_CHEER_RADIUS
    MaxHealth         = 5000
    PermanentlyKilledByFilter    = NONE        ;Who kills me permanently?
    DodgePercent         = HERO_DODGE_PERCENT
End


-FreeLifeBody-User imageUser imageUser image
FreeLifeBody is a variation of RespawnBody, This one lets the hero gain back a % of his original health after "death", so he gets resurrected with 50% health again.
This does not make him invincable! The FreeLifeTime specifies how long the hero has to wait before being able to resurrect again.

              
Code

Body = FreeLifeBody ModuleTag_FreeLifeBody    ;FreeLifeBody is a variation of RespawnBody
    MaxHealth        = FRODO_HEALTH    ;BALANCE Frodo Health
    FreeLifeHealthPercent    = 50%        ;percentage of MaxHealth health to recover
    FreeLifeTime        = 600000    ;amount of time until we can rise from the dead again
    FreeLifeInvincible    = Yes        ;During the RESURRECTED animation
    FreeLifePrerequisiteUpgrade = Upgrade_Chicken        ;What upgrade is needed before I resurrect?
    FreeLifeAnimAndDuration    = AnimState:RESURRECTED AnimTime:4600 ;The RESURRECTED animation
    PermanentlyKilledByFilter = NONE    ;Who kills me permanently?
    DodgePercent        = 80%
End


-DelayedDeathBody-User imageUser imageUser image
DelayedDeath is a variation of RespawnBody, this one can be used for heroes, but also trolls use them. This one allows the unit to live on for a specified time before the actual death occurs. Example is a Troll's Rampage.
              
Code

Body = DelayedDeathBody ModuleTag_DelayedDeathBody    ;DelayedDeath is a variation of RespawnBody
    CheerRadius             = EMOTION_CHEER_RADIUS
    MaxHealth            = BOROMIR_HEALTH        ; BALANCE
    DelayedDeathTime        = 10000                ; Amount of time spent still fighting after being killed
    DelayedDeathPrerequisiteUpgrade    = Upgrade_BoromirLastStand    ; Need this upgrade to be able to delay my death.
    InvulnerableFX            = FX_BoromirLastStand    ; The FX played when he is "Delayed Deathing"
    PermanentlyKilledByFilter    = NONE            ; Who kills me permanently?
    DodgePercent         = HERO_DODGE_PERCENT    ; Dodge Chance

    ImmortalUntilDeathTime        = No            ; Not immune to damage during rampage. So you can keep him from running stuff over.
    DoHealthCheck            = No            ; Don't want to get the delayed death behaviour when we die normally.
    CanRespawn            = No            ; Unit can't get revived.
End


-DetachableRiderBody-User imageUser imageUser image
This one is rarely used, It allows a horse or another creature to "Live on" after his "master" died, example: a man on a horse gets killed, the horse is not dead yet, so it can fight on without its master.
              
Code

Body = DetachableRiderBody ModuleTag_DetachableRiderBody
    MaxHealth        = 250
    MaxHealthDamaged    = 125
    RecoveryTime        = 5000
    RiderlessDeathChance    = 50%    ; Chance for me to become Riderless.
    HealthPercentageWhenRiderDies    = 50%    ;When the unit "dies" the rider will be killed and the unit will be set to this health %.
    TriggeredBy        = Upgrade_RohanHorseDiscipline
    StartsActive        = No    ;When set no upgrade is required
End


-PorcupineFormationBodyModule-User imageUser imageUser image
This body is used for Pikemen who are able to go into "Pike" formation. The 3 special parts for this "body" define the damage he does when crused and by what he can be crushed.
              
Code

Body =    PorcupineFormationBodyModule ModuleTag_porcupineFormation
    CheerRadius             =    EMOTION_CHEER_RADIUS
    MaxHealth            =    DWARVEN_PHALANX_HEALTH
    MaxHealthDamaged        =    DWARVEN_PHALANX_HEALTH_DAMAGED
    RecoveryTime            =    DWARVEN_PHALANX_HEALTH_RECOVERY_TIME
    DamageWeaponTemplate        =    PikemenPorcupineDamage        ; I do this much damage when attacking in Porc. Formation.
    CrushDamageWeaponTemplate    =    PikemenPorcupineCrushDamage    ; I do this much damage when you attempt to crush me.
    CrusherLevelResisted        =    1    ;//What crusher level can I resist?: 1 = infantry, 2 = trees, 3 = vehicles
    BurningDeathBehavior         =    Yes
    BurningDeathFX         =    FX_InfantryBurningFlame
End


-OathbreakerBody-User imageUser imageUser image
I have no idea what this does... It was not used anywhere in BFME 1, 2, or ROTWK!
              
Code

Body =    OathbreakerBody ModuleTag_OathbreakerBody
    ; I have searched all of the files for any sign of this... It is in Game.dat but...
    ; Its used nowhere in the entire mass of code for ANY of the BFME's...
    ; If anyone finds a specific use PLEASE tell!
End


-SymbioticStructuresBody-User imageUser imageUser image
I'm not sure what this does what this does... Symbiosis mean the working together of 2 things, Best guess is that this structure stays alive as long as the "Keep" is alive.
              
Code

Body = SymbioticStructuresBody ModuleTag_SymbioticBody
    Symbiote = KeepLeft
End

Comments

Display order: Newest first

GothmogtheOrc (Team Chamber Member) - Monday July 20, 2009 - 11:07

wow, very good idea for a tutorial. Very useful.

Ridder Geel (Staff) - Sunday May 24, 2009 - 10:56

Ill do that later ;) (additional modules) ;)

Sulherokhh (Team Chamber Member) - Thursday May 21, 2009 - 6:44

Most, if not all, AI update modules work with additional modules (which they need) exclusively. It might be sensible to make a reference to those modules and/or define them in the same way right below the AI module.
---------------------
In adddition, work on the formatting. It's bothersome to read different sections with entirely different formats. Remove all TAB characters, replace with a single SPACE. Comment (';') lines that don't help explain should be removed as well.
Keep it up.

Lurtzy - Thursday May 14, 2009 - 18:08

Looking really cool so far, can't wait to see more!

Yarrum - Monday May 11, 2009 - 4:23

Cool tutorial. With this, I might be able to get Boromir's Last Stand power to work properly. I know they did it in Elvenstar but it never seemed to work in my game.

Go to top

 

"One site to rule them all, one site to find them,
one site to host them all, and on the network bind them."

 
0:20:35