
put this at the top of player.qc, in replace of the axe frames, that only
call the frame $light1 over and over..

void()	player_axe1 =	[$axatt1, player_axe2	] {self.weaponframe=1;};
void()	player_axe2 =	[$axatt2, player_axe3	] {self.weaponframe=2;};
void()	player_axe3 =	[$axatt3, player_axe4	] {self.weaponframe=3;W_FireAxe();};
void()	player_axe4 =	[$axatt4, player_run	] {self.weaponframe=4;};

void()	player_axeb1 =	[$axattb1, player_axeb2	] {self.weaponframe=5;};
void()	player_axeb2 =	[$axattb2, player_axeb3	] {self.weaponframe=6;};
void()	player_axeb3 =	[$axattb3, player_axeb4	]
{self.weaponframe=7;W_FireAxe();};
void()	player_axeb4 =	[$axattb4, player_run	] {self.weaponframe=8;};

void()	player_axec1 =	[$axattc1, player_axec2	] {self.weaponframe=1;};
void()	player_axec2 =	[$axattc2, player_axec3	] {self.weaponframe=2;};
void()	player_axec3 =	[$axattc3, player_axec4	]
{self.weaponframe=3;W_FireAxe();};
void()	player_axec4 =	[$axattc4, player_run	] {self.weaponframe=4;};

void()	player_axed1 =	[$axattd1, player_axed2	] {self.weaponframe=5;};
void()	player_axed2 =	[$axattd2, player_axed3	] {self.weaponframe=6;};
void()	player_axed3 =	[$axattd3, player_axed4	]
{self.weaponframe=7;W_FireAxe();};
void()	player_axed4 =	[$axattd4, player_run	] {self.weaponframe=8;};

---- next ----

Put this at the bottom of player.qc :

void () dance   =[      $deatha1,        dance2     ] {};
void () dance2  =[      $deatha2,        dance3     ] {};
void () dance3  =[      $deatha3,        dance4     ] {};
void () dance4  =[      $deatha4,        dance5     ] {};
void () dance5  =[      $deatha5,        dance6     ] {};
void () dance6  =[      $deatha6,        dance7     ] {};
void () dance7  =[      $deatha7,        dance8     ] {};
void () dance8  =[      $deatha8,        dance9     ] {};
void () dance9  =[      $deatha9,        dance10    ] {};
void () dance10 =[      $deatha10,       dance11    ] {};
void () dance11 =[      $deathc15,       dance12    ] {};
void () dance12 =[      $deathc14,       dance13    ] {};
void () dance13 =[      $deathc13,       dance14    ] {};
void () dance14 =[      $deathc12,       dance15    ] {};
void () dance15 =[      $deathc11,       dance16    ] {};
void () dance16 =[      $deathc10,       dance17    ] {};
void () dance17 =[      $deathc9,        dance18    ] {};
void () dance18 =[      $deathc8,        dance19    ] {};
void () dance19 =[      $deathc7,        dance20    ] {};
void () dance20 =[      $deathc6,        dance21    ] {};
void () dance21 =[      $deathc5,        dance22    ] {};
void () dance22 =[      $deathc4,        dance23    ] {};
void () dance23 =[      $deathc3,        dance24    ] {};
void () dance24 =[      $deathc2,        dance25    ] {};
void () dance25 =[      $deathc1,        dance26    ] {};
void () dance26 =[      $pain1,          dance27    ] {};
void () dance27 =[      $pain2,          dance28    ] {};
void () dance28 =[      $pain3,          dance29    ] {};
void () dance29 =[      $pain4,          dance30    ] {};
void () dance30 =[      $pain5,          dance31    ] {};
void () dance31 =[      $pain6,          player_run ] {};

void () lying    =[      $deathe9,        lying      ] {};

void () get_up   =[      $deathe8,        get_up2     ] {};
void () get_up2  =[      $deathd7,        get_up3     ] {};
void () get_up3  =[      $deathd6,        get_up4     ] {};
void () get_up4  =[      $deathd5,        get_up5     ] {};
void () get_up5  =[      $deathd4,        get_up6     ] {};
void () get_up6  =[      $deathd3,        get_up7     ] {};
void () get_up7  =[      $deathd2,        player_run ] {};

void () hold  =[  $light1,  hold1 ] 
 {sound (self, CHAN_WEAPON, "player/cock.wav", 1, ATTN_NORM); };
void () hold1 =[  $light1,  hold1 ] {};

---- next ----

put this at the top of weapons.qc :

void () dance;
void () lying;
void () get_up;
void () hold;

---- next ----

in weapons.qc, replace the W_FireAxe code with this :

void() W_FireAxe =
{
	local	vector	source;
	local	vector	org;

	makevectors (self.v_angle);
	source = self.origin + '0 0 16';
	traceline (source, source + v_forward*64, FALSE, self);
	if (trace_fraction == 1.0)
		return;
	
	org = trace_endpos - v_forward*4;

	if (trace_ent.takedamage)
	{
		trace_ent.axhitme = 1;
		SpawnBlood (org, '0 0 0', 20);
		T_Damage (trace_ent, self, self, 20);
	}
	else
	{	// hit wall
		sound (self, CHAN_WEAPON, "player/axhit2.wav", 1, ATTN_NORM);
		WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
		WriteByte (MSG_BROADCAST, TE_GUNSHOT);
		WriteCoord (MSG_BROADCAST, org_x);
		WriteCoord (MSG_BROADCAST, org_y);
		WriteCoord (MSG_BROADCAST, org_z);
	}
};

---- next ----

in weapons.qc, at W_Attack, you don't need void () plasma_attack1; but it
_shouldn't_ matter if you have it in.. but plasma_attack1 was already
created (in plasma.qc), so I'm not sure if this line is overwritting it..
take it out just in case.. 

also, change the sound of the axe attack in W_Attack to :

sound (self, CHAN_WEAPON, "weapons/ax1.wav", 1, ATTN_NORM);

---- next ----

in weapons.qc, in the impulse commands.. put :

 if (self.impulse == 40)
   dance1 ();
 if (self.impulse == 41)
   lying ();
 if (self.impulse == 42)
   get_up1 ();
 if (self.impulse == 43)
   hold ();

---- that's it.. ----
