Page 1 of 1

Little melee problem

Posted: Mon Jun 29, 2009 8:49 am
by hunting shadow
Ok, i've got a little problem with one of my custom units. The Unit has got two "normal" firing weapons, detpacks and one melee waepon. I munged and all was fine, i was able two switch between the weapons, etc. My proble is: When i press the key for reload, i'm throwing a detpack instead. But when I press secondary fire, nothing happens. I guess it's something with .combo, but I'm not realy fit in that. Can anyone pls help me? Here is my ODf and my .combo(it's the one from the clone assassin, because te unit uses his blades) :
Hidden/Spoiler:
[code]OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");

Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// 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);
//}

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

State("CATCH_SABRE")
{
Posture("Stand");
// Sound("com_weap_throw");
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("com_weap_throw");

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

Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}

Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}

Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}

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

State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}

Sound("com_weap_throw");

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

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}

AlignedToThrust();

Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}

Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
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);
}

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}

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

Transition("IDLE");
}

State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}

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

Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}

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);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("com_weap_throw");

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}

Duration(12, "Frames");

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}

// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }

// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }

// Transition("RECOVER2");

Transition("ATTACK2_LAND");
}

State("ATTACK2_LAND")
{
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);
BlendTimeTo("stand_attack1a", 0.25);
}

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}

InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}

Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}

// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }

Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}

Transition("RECOVER2");
}

//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}

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

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}

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

Transition("IDLE");
}

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

//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();

StrafeFactor(0.5);
TurnFactor(0.5);

InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}

Transition("ATTACK3_LAND");
}

State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}

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

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

InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}

//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}

Transition("RECOVER3");
}

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

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

AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}

AlignedToThrust();

Transition("IDLE");
}

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

Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);

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

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

Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}


Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}

Transition("DASHATTACK_LAND");
}

State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}

Sound("com_weap_throw"); // the sound, that is

AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");

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

Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}

Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}


Transition("DASHATTACK_RECOVER");
}

State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}

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

Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}

Transition("IDLE");
}

// 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("com_weap_throw");

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

Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}

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

// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);

Sound("com_weap_throw");

Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately

InputLock("All", "!Strafe"); // lock all buttons for duration of state

Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.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("com_weap_throw");

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

Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.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");

Attack()
{
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(800);
Push(4.0);
}

Transition("IDLE")
{
If()
{
Break(0.4);
ButtonsPressed("Any");
}
Or()
{
Break(0.4);
Thrust(">", 0.54);
}
}
}
[/code]
Hidden/Spoiler:
[code][GameObjectClass]
ClassParent = "rep_inf_default"


[Properties]
MapTexture = ""
MapScale = 0.0
GeometryName = "rep_inf_commando"
GeometryLowRes = "rep_inf_commando"
FirstPerson = "GSoL\Lighttroop;GSoL_1st_light"
UnitType = "trooper"
AnimationName = "aalya"
JumpHeight = 2.00 // base jump height in meters
// Speed multipliers for various actions
JumpForwardSpeedFactor = 1.3 // boost forward part of velocity by this factor when jumping
JumpStrafeSpeedFactor = 1.5 // boost side/backward part of velocity by this factor when jumping
RollSpeedFactor = 2.0 // in forward arc, boost speed by this factor when rolling
// Apparently contant for all or most classes:
Acceleration = 80.0 // accelerate to full run in about 7/70 = 0.1 seconds
SprintAccelerateTime = 0.05 // accelerate from run to sprint in this time

MaxHealth = 450.0
MaxSpeed = 9.0 // base forward speed
MaxStrafeSpeed = 7.0 // base right/left speed

WEAPONSECTION = 1
WeaponName = "geo_weap_inf_blunderbuss"
WeaponAmmo = 0

WEAPONSECTION = 2
WeaponName = "wok_weap_inf_bowcaster"
WeaponAmmo = 15

WEAPONSECTION = 3
WeaponName = "rep_weap_inf_vibroblades"
WeaponAmmo = 0

WEAPONSECTION = 4
WeaponName = "rep_weap_inf_detpack"
WeaponAmmo = 5
WeaponChannel = 1


VOUnitType = 122[code]
pls help me

Re: Little melee problem

Posted: Tue Jun 30, 2009 2:51 am
by Tourny
In the .combo tutorial on the FAQ it has something about remapping the buttons. Your conflict is the same for all units who use melee/ranged weapons at the same time. (Indiana Jones did it too...)