Page 1 of 1

Animation problem with BFX Magnaguard [Solved]

Posted: Thu Oct 25, 2012 8:00 am
by AcaelusThorne
So I tried to add the BFX magnaguard to my mod and it crashed. Here is the error which makes it crash:
Message Severity: 3
C:\Battlefront2\main\Battlefront2\Source\SoldierAnimatorClass.cpp(1881)
Can't find soldier animation human_sabre_stand_attack2c(_upper)

I am not verry good with animation but I tried my best anyway. Still I couldn't fix it. Here is the odf of the Magnaguard:
Hidden/Spoiler:
[GameObjectClass]
ClassParent = "com_jedi_default"
GeometryName = "cis_inf_magnaguard.msh"

AnimationName = "magnaguard"

[Properties]
PointsToUnlock = 20

FleeLikeAHero = 0
NoEnterVehicles = 1
ForceMode = 1

HealthType = "droid"
MaxHealth = 1500.0

EnergyDrainSprint = 0.0 // energy spent per second of sprinting
EnergyCostJump = 0.0 // energy cost to jump
EnergyCostRoll = 0.0 // energy cost to roll

WEAPONSECTION = 1
WeaponName = "cis_weap_Electrostaff"
WeaponAmmo = 0

JumpHeight = 3.5

ControlSpeed = "sprint 1 1 1"
MaxSpeed = 10.5
MaxStrafeSpeed = 6.5
MaxTurnSpeed = 6.0

RecoverFromTumble = "1"

VOUnitType = 093

ChunkFrequency = 0.2

ExplosionName = "cis_inf_droid_exp"

CHUNKSECTION = "CHUNK1"
ChunkGeometryName = "cis_inf_magnaguard_chunk1"
ChunkNodeName = "bone_neck"
ChunkTerrainCollisions = "4"
ChunkTerrainEffect = "dirtspray"
ChunkTrailEffect = "com_sfx_chunksmolder"
ChunkPhysics = "FULL"
ChunkOmega = "4.0 4.0 4.0"
ChunkSpeed = 6.0

CHUNKSECTION = "CHUNK2"
ChunkGeometryName = "cis_inf_magnaguard_chunk2"
ChunkNodeName = "bone_l_upperarm"
ChunkTerrainCollisions = "4"
ChunkTerrainEffect = "dirtspray"
ChunkTrailEffect = "com_sfx_chunksmolder"
ChunkPhysics = "FULL"
ChunkOmega = "4.0 4.0 4.0"
ChunkSpeed = 6.0

CHUNKSECTION = "CHUNK3"
ChunkGeometryName = "cis_inf_magnaguard_chunk3"
ChunkNodeName = "bone_l_calf"
ChunkTerrainCollisions = "4"
ChunkTerrainEffect = "dirtspray"
ChunkTrailEffect = "com_sfx_chunksmolder"
ChunkPhysics = "FULL"
ChunkOmega = "4.0 4.0 4.0"
ChunkSpeed = 6.0

CHUNKSECTION = "CHUNK4"
ChunkGeometryName = "cis_inf_magnaguard_chunk4"
ChunkNodeName = "bone_r_thigh"
ChunkTerrainCollisions = "4"
ChunkTerrainEffect = "dirtspray"
ChunkTrailEffect = "com_sfx_chunksmolder"
ChunkPhysics = "FULL"
ChunkOmega = "4.0 4.0 4.0"
ChunkSpeed = 6.0

// the foot height where footstep sounds are played
MinFootHeight = 0.3

VOSound = "cis1_inf_pc_com_hostile SpottedVO"
VOSound = "cis1_inf_pc_com_bacta NeedMedicVO"
VOSound = "cis1_inf_pc_com_mechanic NeedRepairVO"
VOSound = "cis1_inf_pc_com_ammo NeedAmmoVO"
VOSound = "cis1_inf_pc_com_transport NeedPickupVO"
VOSound = "cis1_inf_pc_com_backup NeedBackupVO"
VOSound = "cis1_inf_pc_com_clear_area AttackPositionVO"
VOSound = "cis1_inf_pc_com_defend DefendPositionVO"

VOSound = "cis1_inf_pc_com_hostile_inVehicle SpottedVO +InVehicle"
VOSound = "cis1_inf_pc_com_bacta_inVehicle NeedMedicVO +InVehicle"
VOSound = "cis1_inf_pc_com_mechanic_inVehicle NeedRepairVO +InVehicle"
VOSound = "cis1_inf_pc_com_ammo_inVehicle NeedAmmoVO +InVehicle"
VOSound = "cis1_inf_pc_com_transport_inVehicle NeedPickupVO +InVehicle"
VOSound = "cis1_inf_pc_com_backup_inVehicle NeedBackupVO +InVehicle"
VOSound = "cis1_inf_pc_com_clear_area_inVehicle AttackPositionVO +InVehicle"
VOSound = "cis1_inf_pc_com_defend_inVehicle DefendPositionVO +InVehicle"

HurtSound = ""
DeathSound = ""
AcquiredTargetSound = ""
HidingSound = ""
ApproachingTargetSound = ""
FleeSound = ""
PreparingForDamageSound = ""
HeardEnemySound = ""
//ShockFadeOutTime = "0.8"
//ShockFadeInTime = "2.0"
ShockFadeOutGain = ""
ShockSound = ""
ClothingRustleSound = ""
//LowHealthSound = "com_inf_saber_ambient"
LowHealthThreshold = "1.1"
FoleyFXClass = "cis_inf_soldier"

VOSound = "cis_command_follow SC_Follow"
VOSound = "cis_command_stopFollow SC_StopFollow"
VOSound = "cis_command_stopVehicle SC_VehicleWaitUp"
VOSound = "cis_command_getIn SC_GetIn"
VOSound = "cis_command_getOut SC_GetOut"
VOSound = "cis_response_follow SC_FollowResponse"
VOSound = "cis_response_stopFollow SC_StopFollowResponse"
VOSound = "cis_response_stopVehicle SC_VehicleWaitUpResponse"
VOSound = "cis_response_getIn SC_GetInResponse"
VOSound = "cis_response_getOut SC_GetOutResponse"

GeometryName = "cis_inf_caped_magnaguard"
GeometryLowRes = "cis_inf_magnaguard_low1"

SkeletonName = "magnaguard"
SkeletonLowRes = "magnaguardlz"
SkeletonRootScale = "1.24"

// no head offset for this guy, unlike all other droids
CollisionHeadOffset = "0.0 0.0 0.0"

//FirstPerson = "CIS\cisoff;cis_1st_magnaguard"

CAMERASECTION = "STAND"
EyePointOffset = "0.0 1.8 0.0"
TrackCenter = "0.0 1.8 0.0
TrackOffset = "0.0 0.0 4"
TiltValue = "10.0"

CAMERASECTION = "STANDZOOM"
EyePointOffset = "0.0 1.8 0.0"
TrackCenter = "0.0 1.8 0.0
TrackOffset = "0.4 0.05 2.8"
TiltValue = "3.5"

CAMERASECTION = "CROUCH"
EyePointOffset = "0.0 1.3 0.0"
TrackCenter = "0.0 1.3 0.0
TrackOffset = "0.0 0.15 3.5"
TiltValue = "10.0"
CameraBlendTime = "0.75"

CAMERASECTION = "CROUCHZOOM"
EyePointOffset = "0.0 1.3 0.0"
TrackCenter = "0.0 1.3 0.0
TrackOffset = "0.4 0.2 2.8"
TiltValue = "3.5"

CAMERASECTION = "SPRINT"
EyePointOffset = "0.0 1.8 0.0"
TrackCenter = "0.0 1.8 0.0
TrackOffset = "0.0 0.0 5.0"
TiltValue = "10.0"
CameraBlendTime = "0.75"
It doesn't crash when the staff isn't equipped. So here is the staff odf:
Hidden/Spoiler:
[WeaponClass]

ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"

[Properties]

GeometryName = "kor_weap_inf_doublesabre"
ComboAnimationBank = "human_sabre melee cis_inf_magnaguard"

NumDamageEdges = "3"
FirePointName = "hp_fire1"
LightSaberLength = "0.4"
LightSaberWidth = "0.06"
LightSaberTexture = "electro"
LightSaberTrailColor = ""
LightSaberTrailColor = "189 7 255 128"

FirePointName = "hp_fire2"
LightSaberLength = "0.4"
LightSaberWidth = "0.06"
LightSaberTexture = "electro"
LightSaberTrailColor = ""
LightSaberTrailColor = "189 7 255 128"

AttachedFirePoint = "bone_l_calf 1.0 0.0 0.0 0.35 0.0 0.0"
DamageEdgeLength = "0.5"
DamageEdgeWidth = "0.1"

ShieldScale = 10.0
DroidScale = 5.0

TargetVehicle = 1
AITargetVehicle = 1

//AttachDynamic = “1”

//AttachEffect = "electroeffect"
//AttachToHardpoint = "hp_fire1 [0.01] [0.05]"

//AttachEffect = "electroeffect"
//AttachToHardpoint = "hp_fire2 [0.01] [0.05]"

SoundProperty = "force_lightning_impact"
The cis_inf_magnaguard.combo file is in the odf folder:
Hidden/Spoiler:
OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");

// Throw stuff....
ThrowAnimation("stand_throw");

State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}

InputLock("All", "!Thrust");
AlignedToThrust();
}

State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");

Transition("BACK_ATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Fire", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Fire", "Press");
}
}
Transition("DASHATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("Fire", "Press");
}
}
Transition("JUMPATTACK_FALL")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Jump", "Jet");
//The following should be true during a jetjump, jump, or fall
// unless we're more than 0.35 seconds from the apex
//NOTE: This may not allow luke to jump attack during longer falls
// or falling from a force jump when it could.
//VelocityY(">", -6.3);
Button("Fire", "Press");
}
}
}

State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}

Sound("saber_swing");

Deflect()
{
DeflectAngle(70, -70); // deflect anything from rear arc
EnergyCost(4.0);
}

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}

Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}

Transition("IDLE");
}

//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1a");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
Animation("stand_attack1b_end");
Animation("stand_attack1c");

State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a_upper")
{
AimType("None");
BlendInTime(0.0);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1a_end", 0.0);
BlendTimeTo("stand_attack1b", 0.0);
}
Animation("stand_attack1a_lower")
{
BlendInTime(0.15);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1a_end", 0.0);
BlendTimeTo("stand_attack1b", 0.0);
}
Sound("saber_swing");

Deflect()
{
DeflectAngle(-70, 70); // deflect anything from forward arc
EnergyCost(4.0);
}

// AnimatedMove();

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(150);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(5, 11, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(150);
Push(3.0);
}

Transition("ATTACK2")
{
If()
{
Break(12, "Frames");
TimeStart(5, "Frames");
TimeEnd(14, "Frames");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}

State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
}
Sound("saber_swing");

Deflect()
{
DeflectAngle(-70, 70); // deflect anything from forward arc
EnergyCost(4.0);
}

// AnimatedMove();

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(3, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(3.0);
}

Transition("ATTACK3")
{
If()
{
TimeStart(4, "Frames");
TimeEnd(14, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}

State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("com_weap_throw", 6, "Frames");

Deflect()
{
DeflectAngle(-70, 70); // deflect anything from forward arc
EnergyCost(4.0);
}

//set a duration so we will go to state RECOVER3 before the animation ends
Duration(26, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(8.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();

StrafeFactor(0.5);
TurnFactor(0.5);

InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
Edge(0);
DamageTime(5, 16, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(5, 16, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(3.0);
}
Attack()
{
Edge(2); // left foot
DamageTime(18, 22, "Frames");
DamageWidth(0.4);
Damage(50);
Push(10.0);
}

Transition("ATTACK3-B")
{
If()
{
Break(26, "Frames");
TimeStart(5, "Frames");
TimeEnd(0.5, "FromEnd");
Posture("Stand");
Button("Fire", "Hold");
}
}

Transition("ATTACK3_LAND");
}

State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_swing");

Deflect()
{
DeflectAngle(-70, 70); // deflect anything from forward arc
EnergyCost(4.0);
}

AlignedToThrust();

TurnFactor(0.3);

InputLock("All", "!Thrust"); // lock all controls for duration of state

Attack()
{
Edge(0);
DamageTime(27, 35, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(10.0);
}
Attack()
{
Edge(1);
DamageTime(30, 35, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(10.0);
}

Transition("RECOVER3");
}

State("ATTACK3-B")
{
Posture("Stand");
Animation("stand_attack2c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_triple", 6, "Frames");

Deflect()
{
DeflectAngle(-70, 70); // deflect anything from forward arc
EnergyCost(4.0);
}

AlignedToThrust();

//StrafeFactor(0.5);
//TurnFactor(0.5);

InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
Edge(0);
DamageTime(2, 36, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(10.0);
}
Attack()
{
Edge(1);
DamageTime(2, 36, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(10.0);
}

Transition("IDLE");
}

State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");

Deflect()
{
DeflectAngle(-160, 160); // deflect anything from forward arc
EnergyCost(4.0);
}

EnergyRestoreRate(0);

AnimatedMove()
{
VelocityZ(15.0);
VelocityFromThrust(5.0);
If()
{
Break(27, "Frames");
}
}
TurnFactor(0.3);

InputLock("All", "!Thrust");
Attack()
{
Edge(0);
DamageTime(2, 26, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}
Attack()
{
Edge(1);
DamageTime(2, 26, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}

Transition("IDLE");
{
If()
{
Break(30, "Frames");
ButtonsPressed("Any");
}
}
}

// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");

State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");

Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state

EnergyRestoreRate(0);

Attack()
{
AttackId("JUMPATTACK_E0");
Edge(0);
DamageTime(0.33, 1.0, "FromAnim");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}
Attack()
{
AttackId("JUMPATTACK_E1");
Edge(1);
DamageTime(0.33, 1.0, "FromAnim");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}

Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}

State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}

Sound("saber_swing");

Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state

EnergyRestoreRate(0);

Attack()
{
AttackId("JUMPATTACK_E0");
Edge(0);
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}
Attack()
{
AttackId("JUMPATTACK_E1");
Edge(1);
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}

Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}

State("JUMPATTACK_LAND")
{
Posture("Stand");

Animation("jumpattack_land")
{
AimType("FullBody");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}

AnimatedMove();
InputLock("All");

EnergyRestoreRate(0);

Attack()
{
AttackId("JUMPATTACK_E0");
Edge(0);
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}
Attack()
{
AttackId("JUMPATTACK_E1");
Edge(1);
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(5.0);
}

Transition("IDLE")
{
If()
{
Break(0.4);
ButtonsPressed("Any");
}
Or()
{
Break(0.4);
Thrust(">", 0.54);
}
}
}

My Animation folder doesn't munge the files so I needed to take them right out of the BFX/Sides/cis/munged which are: magnaguard.anims, magnaguard.zaabin, magnaguard.zafbin, magnaguardlz.zafbin .
I also copied human_sabre.anims, human_sabre.zaabin and human_sabre.zafbin in my Sides/common/munged folder.
Here is my LUA even though I don't think the mistake is ther:
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
Conquest = ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- These variables do not change
ATT = 1
DEF = 2

-- Empire Attacking (attacker is always #1)
CIS = ATT
REP = DEF

---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------

function ScriptPostLoad()

AddDeathRegion("death")
AddDeathRegion("death1")
AddDeathRegion("death2")
AddDeathRegion("death3")
AddDeathRegion("death4")




SetProperty ("LibCase1","MaxHealth",1000)
SetProperty ("LibCase2","MaxHealth",1000)
SetProperty ("LibCase3","MaxHealth",1000)
SetProperty ("LibCase4","MaxHealth",1000)
SetProperty ("LibCase5","MaxHealth",1000)
SetProperty ("LibCase6","MaxHealth",1000)
SetProperty ("LibCase7","MaxHealth",1000)
SetProperty ("LibCase8","MaxHealth",1000)
SetProperty ("LibCase9","MaxHealth",1000)
SetProperty ("LibCase10","MaxHealth",1000)
SetProperty ("LibCase11","MaxHealth",1000)
SetProperty ("LibCase12","MaxHealth",1000)
SetProperty ("LibCase13","MaxHealth",1000)
SetProperty ("LibCase14","MaxHealth",1000)


SetProperty ("LibCase1","CurHealth",1000)
SetProperty ("LibCase2","CurHealth",1000)
SetProperty ("LibCase3","CurHealth",1000)
SetProperty ("LibCase4","CurHealth",1000)
SetProperty ("LibCase5","CurHealth",1000)
SetProperty ("LibCase6","CurHealth",1000)
SetProperty ("LibCase7","CurHealth",1000)
SetProperty ("LibCase8","CurHealth",1000)
SetProperty ("LibCase9","CurHealth",1000)
SetProperty ("LibCase10","CurHealth",1000)
SetProperty ("LibCase11","CurHealth",1000)
SetProperty ("LibCase12","CurHealth",1000)
SetProperty ("LibCase13","CurHealth",1000)
SetProperty ("LibCase14","CurHealth",1000)



EnableSPHeroRules()

DisableBarriers("SideDoor1")
DisableBarriers("MainLibraryDoors")
DisableBarriers("SideDoor2")
DisableBarriers("SIdeDoor3")
DisableBarriers("ComputerRoomDoor1")
DisableBarriers("StarChamberDoor1")
DisableBarriers("StarChamberDoor2")
DisableBarriers("WarRoomDoor1")
DisableBarriers("WarRoomDoor2")
DisableBarriers("WarRoomDoor3")
PlayAnimation("DoorOpen01")
PlayAnimation("DoorOpen02")


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}
cp6 = CommandPost:New{name = "cp6"}

--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
conquest:AddCommandPost(cp6)

conquest:Start()
SetUberMode(1)
end

function ScriptInit()
-- Designers, these two lines *MUST* be first.

SetPS2ModelMemory(4056000)

SetMapNorthAngle(180, 1)
SetMaxFlyHeight(25)
SetMaxPlayerFlyHeight (25)
AISnipeSuitabilityDist(30)



SetMemoryPoolSize("Music", 33)

ReadDataFile("ingame.lvl")

ReadDataFile("dc:sound\\rcm.lvl;RCMr")
ReadDataFile("sound\\cor.lvl;cor1cw")
-- ReadDataFile("SIDE\\rep.lvl",
-- "rep_inf_ep3_rifleman")
-- ReadDataFile("dc:SIDE\\rrl.lvl",
-- "rrl_inf_ep2_rifleman",
-- "rrl_inf_ep2_jettrooper")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_commando_1st",
"rep_inf_commando_2nd",
"rep_inf_commando_3rd",
"rep_inf_commando_4th",
"rep_inf_commando_5th",
"rep_inf_commando_6th")
ReadDataFile("dc:SIDE\\kit.lvl",
"rep_hero_fisto")
ReadDataFile("SIDE\\rep.lvl",
"rep_fly_assault_DOME",
"rep_fly_gunship_DOME")
ReadDataFile("SIDE\\cis.lvl",
"cis_fly_droidfighter_DOME")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_inf_b1_1",
"cis_inf_b1_2",
"cis_inf_b1_3",
"cis_inf_trando_merc",
"cis_inf_sbd",
"cis_inf_trando",
"cis_inf_magnaguard",
"cis_inf_droideka")

ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser")


SetupTeams{

rep = {
team = REP,
units = 32,
reinforcements = 150,
soldier = { "rep_inf_commando_1st",9, 25},
assault = { "rep_inf_commando_2nd",1,4},
engineer = { "rep_inf_commando_4th",1,4},
sniper = { "rep_inf_commando_3rd",1,4},
officer = {"rep_inf_commando_5th",1,4},
special = { "rep_inf_commando_6th",1,4},


},
cis = {
team = CIS,
units = 32,
reinforcements = 300,
soldier = {"cis_inf_b1_1",7, 25},
assault = {"cis_inf_b1_2",1, 4},
engineer = {"cis_inf_trando_merc",1, 4},
sniper = {"cis_inf_b1_3",1, 4},
officer = {"cis_inf_droideka",1, 4},
special = {"cis_inf_trando",1, 4},
commander = {"cis_inf_sbd", 1, 4},

}
}

AddUnitClass(CIS, "cis_inf_magnaguard",1,4)
SetHeroClass(REP, "rep_hero_fisto")




-- Level Stats
ClearWalkers()
AddWalkerType(0, 3) -- 8 droidekas (special case: 0 leg pairs)
AddWalkerType(1, 0) --
AddWalkerType(2, 0) -- 2 spider walkers with 2 leg pairs each
AddWalkerType(3, 0) -- 2 attes with 3 leg pairs each
local weaponCnt = 450
SetMemoryPoolSize("Aimer", 22)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 250)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 18)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntitySoundStream", 10)
SetMemoryPoolSize("EntitySoundStatic", 0)
SetMemoryPoolSize("MountedTurret",100)
SetMemoryPoolSize("PathFollower", 100)
SetMemoryPoolSize("Navigator", 100)
SetMemoryPoolSize("Obstacle", 375)
SetMemoryPoolSize("SoundSpaceRegion", 38)
SetMemoryPoolSize("TentacleSimulator", 0)
SetMemoryPoolSize("TreeGridStack", 140)
SetMemoryPoolSize("UnitAgent", 150)
SetMemoryPoolSize("UnitController", 100)
SetMemoryPoolSize("Weapon", weaponCnt)
SetMemoryPoolSize("EntityFlyer", 4)
SetMemoryPoolSize("ColorTrans", 2500)
SetMemoryPoolSize("SizeTransf", 1800)
SetMemoryPoolSize("PositionTr", 1500)
SetMemoryPoolSize("SoldierAnimation", 580)

SetSpawnDelay(10.0, 0.25)
ReadDataFile("cor\\cor1.lvl","cor1_Conquest")
SetDenseEnvironment("True")
-- SetMaxFlyHeight(25)
--SetMaxPlayerFlyHeight (25)
AddDeathRegion("DeathRegion1")

-- Sound Stats

voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)

voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)

OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\cor.lvl", "cor1")
OpenAudioStream("sound\\cor.lvl", "cor1")
-- OpenAudioStream("sound\\cor.lvl", "cor1_emt")

SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, REP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)

SetLowReinforcementsVoiceOver(REP, REP, "rep_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(REP, CIS, "rep_off_victory_im", .1, 1)
SetLowReinforcementsVoiceOver(CIS, CIS, "cis_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(CIS, REP, "cis_off_victory_im", .1, 1)

SetOutOfBoundsVoiceOver(2, "Repleaving")
SetOutOfBoundsVoiceOver(1, "Cisleaving")

SetAmbientMusic(REP, 1.0, "rep_cor_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_cor_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_cor_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_cor_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_cor_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_cor_amb_end", 2,1)

SetVictoryMusic(REP, "rep_cor_amb_victory")
SetDefeatMusic (REP, "rep_cor_amb_defeat")
SetVictoryMusic(CIS, "cis_cor_amb_victory")
SetDefeatMusic (CIS, "cis_cor_amb_defeat")

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
--SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")


-- Camera Stats
--Tat 1 - Dune Sea
AddCameraShot(0.419938, 0.002235, -0.907537, 0.004830, -15.639358, 5.499980, -176.911179);
AddCameraShot(0.994506, 0.104463, -0.006739, 0.000708, 1.745251, 5.499980, -118.700668);
AddCameraShot(0.008929, -0.001103, -0.992423, -0.122538, 1.366768, 16.818106, -114.422173);
AddCameraShot(0.761751, -0.117873, -0.629565, -0.097419, 59.861904, 16.818106, -81.607773);
AddCameraShot(0.717110, -0.013583, 0.696703, 0.013197, 98.053314, 11.354497, -85.857857);
AddCameraShot(0.360958, -0.001053, -0.932577, -0.002721, 69.017578, 18.145807, -56.992413);
AddCameraShot(-0.385976, 0.014031, -0.921793, -0.033508, 93.111061, 18.145807, -20.164375);
AddCameraShot(0.695468, -0.129569, -0.694823, -0.129448, 27.284357, 18.145807, -12.377695);
AddCameraShot(0.009002, -0.000795, -0.996084, -0.087945, 1.931320, 13.356332, -16.410583);
AddCameraShot(0.947720, -0.145318, 0.280814, 0.043058, 11.650738, 16.955814, 28.359180);
AddCameraShot(0.686380, -0.127550, 0.703919, 0.130810, -30.096384, 11.152356, -63.235146);
AddCameraShot(0.937945, -0.108408, 0.327224, 0.037821, -43.701199, 8.756138, -49.974789);
AddCameraShot(0.531236, -0.079466, -0.834207, -0.124787, -62.491230, 10.305247, -120.102989);
AddCameraShot(0.452286, -0.179031, -0.812390, -0.321572, -50.015198, 15.394646, -114.879379);
AddCameraShot(0.927563, -0.243751, 0.273918, 0.071982, 26.149965, 26.947924, -46.834148);

end
Your help would be very appreciated.

Re: Animation problem with BFX Magnaguard

Posted: Thu Oct 25, 2012 2:29 pm
by Cleb
Combo file in the ODF folder? I thought they went in the munged folder... :? Just saying...

Re: Animation problem with BFX Magnaguard

Posted: Thu Oct 25, 2012 2:48 pm
by yuke5
COMBO goes in ODF folder. The problem is something else.

Re: Animation problem with BFX Magnaguard

Posted: Fri Nov 09, 2012 9:26 pm
by Nedarb7
I got he same problem when I made an electro staff with a doublesaber as my template...
After examining my ODFs thoroughly I discovered the problem.
And that problem was that I didn't have this line in my magnaguard default ODF:
AnimationName = "maul"
Since you have this line I would guess that you don't have the animation the
.COMBO needs "magnaguard".
I don't know where to get it but you need it if that is the case.
I hope this helps.

Not sure if this will work but also try removing the line but make sure you
put it back in if still doesn't work.

Re: Animation problem with BFX Magnaguard

Posted: Fri Nov 30, 2012 5:30 pm
by AcaelusThorne
Terribly sorry for the late response. That didn't work. I tried all you suggestions (also taking the line out and back in obviously because that didn't work).

Re: Animation problem with BFX Magnaguard

Posted: Fri Nov 30, 2012 7:04 pm
by Nedarb7
Do you NEED the BFX animation (combo)?
I'd recommend using the original magnaguard's odfs but add the special
jumping properties (no BFX magnaguard animation) and make your own
electro staff. Here's my mini tutorial on how to do so:

1. Create an odf and name it whatever you want (most obvious step)

2. Copy and paste this into it (the effect and geometry are the BFX ones change them
if you are using your own):

[WeaponClass]

ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"

[Properties]
GeometryName = "kor_weap_inf_doublesabre"
ComboAnimationBank = "human_sabre melee all_hero_luke_jedi"

NumDamageEdges = "2"
FirePointName = "hp_fire1"
LightSaberLength = "0.4"
LightSaberWidth = "0.06"
LightSaberTexture = "electro"
LightSaberTrailColor = ""
LightSaberTrailColor = "189 7 255 128"

FirePointName = "hp_fire2"
LightSaberLength = "0.4"
LightSaberWidth = "0.06"
LightSaberTexture = "electro"
LightSaberTrailColor = ""
LightSaberTrailColor = "189 7 255 128"

3.Edit the magnaguard's default odf weapon to your staff's odf name. Example:

[GameObjectClass]
ClassParent = "cis_inf_default"


[Properties]
PointsToUnlock = 8

MaxHealth = 1000.0
MaxSpeed = 10.0 // base forward speed
MaxStrafeSpeed = 8.0 // base right/left speed

ExplosionName = "cis_inf_droid_exp"
UnitType = "support"

WEAPONSECTION = 1
WeaponName = "cis_staff"
WeaponAmmo = 0

VOUnitType = 093

// the foot height where footstep sounds are played
MinFootHeight = 0.3

VOSound = "cis1_inf_pc_com_hostile SpottedVO"
VOSound = "cis1_inf_pc_com_bacta NeedMedicVO"
VOSound = "cis1_inf_pc_com_mechanic NeedRepairVO"
VOSound = "cis1_inf_pc_com_ammo NeedAmmoVO"
VOSound = "cis1_inf_pc_com_transport NeedPickupVO"
VOSound = "cis1_inf_pc_com_backup NeedBackupVO"
VOSound = "cis1_inf_pc_com_clear_area AttackPositionVO"
VOSound = "cis1_inf_pc_com_defend DefendPositionVO"

VOSound = "cis1_inf_pc_com_hostile_inVehicle SpottedVO +InVehicle"
VOSound = "cis1_inf_pc_com_bacta_inVehicle NeedMedicVO +InVehicle"
VOSound = "cis1_inf_pc_com_mechanic_inVehicle NeedRepairVO +InVehicle"
VOSound = "cis1_inf_pc_com_ammo_inVehicle NeedAmmoVO +InVehicle"
VOSound = "cis1_inf_pc_com_transport_inVehicle NeedPickupVO +InVehicle"
VOSound = "cis1_inf_pc_com_backup_inVehicle NeedBackupVO +InVehicle"
VOSound = "cis1_inf_pc_com_clear_area_inVehicle AttackPositionVO +InVehicle"
VOSound = "cis1_inf_pc_com_defend_inVehicle DefendPositionVO +InVehicle"

4.Go to C:\BF2_ModTools\assets\sides\all\odf and copy lukes combo file
(if you look above that is the combo required for the new staff) and
paste it in your custom sides odf folder.

5. Munge with sides selected EVERYTHING and your done.

Now I didn't use the BFX staff geometry or effect but my own so tell me
how it goes. Also make sure you don't have this line in the magnaguard's odf:
AnimationName = "magnaguard"

Re: Animation problem with BFX Magnaguard

Posted: Sun Dec 02, 2012 2:23 pm
by AcaelusThorne
:runaway: It worked :mrgreen:
Thank you so much it worked and the cis_inf_magnaguard.combo file definitely was the problem.
It crashed so often that when I was in the unit selectionscreen I was still waiting for SWBII to close (Not that I didn't have any trust in you, but I was already used to it too much). I could already count the seconds to crash btw :lol:.
Nice little tutorial Nedarb and staff, problem solved.

Re: Animation problem with BFX Magnaguard

Posted: Sun Dec 02, 2012 3:30 pm
by Nedarb7
No problem :) .
AcaelusThorne wrote:It crashed so often that when I was in the unit selectionscreen I was still waiting for SWBII to close (Not that I didn't have any trust in you, but I was already used to it too much). I could already count the seconds to crash btw :lol:.
Nice little tutorial Nedarb and staff, problem solved.
I know that feeling as well :funny2: .