I've been thinking, why don't we change so of the annoying defaults for some of the cvars to improve things a bit?
Increasing the sv_fps and related network cvars would make the saber collision improvement (by boosting the server fps) transparent and work for everyone right out of the box.
How about re-implementing arm breakage too. I really like what is proposed in the code.
I saw a tiny reference to that but I didn't know what it did. Could you please explain what it is suppose to do and where in the code it is?
aw man, I was going through it all this morning. Its scattered throughout the saber and force code. It states that when a limb is broken it affects everything done with said limb. force powers (ie no two-handed lightning), sabering (strenght of attacks and parries) etc.
Does it have some visual component or is it just a internal thing?
I've seen no visual components to indicate so. But you could tie it to the unused bashed animation. I'm not sure where all its linked.
There's like 5 other master server CVars for sending the heartbeat to & only one of them gets used. You should default sv_master to master0.gamespy.com & I'll see if I can find out some other master servers to send heartbeats to as well.
Originally posted by keshire
I've seen no visual components to indicate so. But you could tie it to the unused bashed animation. I'm not sure where all its linked.
And how do you suggest that would work? I can't really see having broken arms work without a constant visual indicator....unless it's in the traditional movie style where the hero pops it back into place.
And how do you suggest that would work?
A nice decal?
/shrugs
Some blood sprites, maybe?
if (arm == BROKENLIMB_LARM)
{
if (ent->client->saber[1].model[0] &&
ent->client->ps.weapon == WP_SABER &&
!ent->client->ps.saberHolstered &&
ent->client->saber[1].soundOff)
{ //the left arm shuts off its saber upon being broken
G_Sound(ent, CHAN_AUTO, ent->client->saber[1].soundOff);
}
}
//Do a pain anim based on the side. Since getting your arm broken does tend to hurt.
if (arm == BROKENLIMB_LARM)
{
anim = BOTH_PAIN2;
}
else if (arm == BROKENLIMB_RARM)
{
anim = BOTH_PAIN3;
}
if (anim == -1)
{
return;
}
Excuse my formatting. g_client.c
referenced in g_combat.c, g_main.c, g_local.h, bg_main.c and a few others.
if ((ps->brokenLimbs & (1 << BROKENLIMB_RARM)) ||
(ps->brokenLimbs & (1 << BROKENLIMB_LARM)))
{ //powers we can't use with a broken arm
switch (power)
{
case FP_PUSH:
case FP_PULL:
case FP_GRIP:
case FP_LIGHTNING:
case FP_DRAIN:
return qfalse;
default:
break;
}
}
So custom sounds and anims are possible.
And I'll do a more thourogh search when I get back in tonight.
I don't think that will be very convencing. A hacked off arm might be doable thou.
Arm Breakage? Whoa.. just like Bushido Blade!
It hangs limply at your side after a hit. ; )
Of course the original BB had leg breakage too (you crawl when your legs are taken out!). BB2 just had one arm breakage.
While you're at it with default changes, make saberdamagescale 2 and debugmelee 1, and cg_dismember 2, g_dismember 100.
I think saberdamagescale and debugmelee should remain the same. I'll actually change the functioning of the default behavior of those cvars soon anyway.
But I do agree that dismemberment should default on.
Looks like broken limbs are also used for vehicle code but not in the same way. I think its used for checking what area of the radar flashes when damage is taken.
Any ways, armbreakage, breakarm, and the brokenlimb state is located in these. Hope its helpful.
g_local.h
g_combat.c
g_main.c
g_client.c
g_cmds.c
g_items.c
g_saga.c
g_vehicles.c
g_weapon.c
cg_local.h
cg_draw.c
cg_players.c
cg_predict.c
bg_public.h
bg_misc.c
bg_panimate.c
bg_saber.c
q_shared.h
w_saber.c
FighterNPC.c
Try out the "limb_break" command ingame, you get some nice ****ed up anims. :D
P.S. You might have to have the dlls compiled in DEBUG mode so the default ones that come with JA might not let you use this command. I might be wrong but you do need cheats on to try it out.