void dam_message( CHAR_DATA *ch, CHAR_DATA *victim, int dam, int dt, int hit_loc, OBJ_DATA *obj )
{
// The attack name table is at the top
    char      buf1[512], buf2[512], buf3[512];
    const char *vs;
    const char *vp;
    const char *xs;
    const char *xp;
    const char *attack;
    const char *attack2;
    const char *loc;
    OBJ_DATA *obj2;
    OBJ_DATA *obj3;
    int       damp;
    int       dam_percent;
    int       bodyloc;
    bool      critical = FALSE;
    char      punct;
    const char *epic = "#n";
    const char *epic2 = "#n";
    OBJ_DATA *wield1;
    OBJ_DATA *wield2;
    OBJ_DATA *wield3;
    OBJ_DATA *wield4;
    wield1 = get_eq_char(ch, WEAR_WIELD);
    wield2 = get_eq_char(ch, WEAR_HOLD);
    wield3 = get_eq_char(ch, WEAR_THIRD);
    wield4 = get_eq_char(ch, WEAR_FOURTH);
//    wield5 = get_eq_char(ch, WEAR_TWO_HANDED);
//    wield6 = get_eq_char(ch, WEAR_TWO_HANDED2);


   obj3 = obj;

    if (!IS_NPC(ch) && IS_SET(ch->newbits, NEW_REND) && dam > 0
            && number_range(1, 7) == 5)
        critical = TRUE;

//Up
	bool THROTTLE = FALSE;
	bool STRANGLE = FALSE;
	bool CUPID = FALSE;
	bool CRUSHER = FALSE;
	bool ACHILLES = FALSE;
 	bool POWERFUL = FALSE;
	bool PRECISION = FALSE;
        bool RAGE = FALSE;
	bool PUNCTURE = FALSE;
	bool PENETRATE = FALSE;


        if (obj != NULL && dam > 0 
	&& (dt == gsn_powerful || dt == gsn_precision 
	|| dt == gsn_throttle || dt == gsn_strangle || dt == gsn_achilles
	|| dt == gsn_crusher || dt == gsn_cupid || dt == gsn_rage))
	{
        if (dt == gsn_throttle && IS_SET(obj->epic, EPIC_THROTTLE))
	  THROTTLE = TRUE;

        else if (dt == gsn_rage && IS_SET(obj->epic, EPIC_RAGE))
	{
	  RAGE = TRUE;
	epic = "#c(Rage)#n";
	}


        else if (dt == gsn_strangle && IS_SET(obj->epic, EPIC_STRANGLE))
	  STRANGLE = TRUE;

        else if (dt == gsn_achilles && IS_SET(obj->epic, EPIC_ACHILLES))
	  ACHILLES = TRUE;

        else if (dt == gsn_crusher && IS_SET(obj->epic, EPIC_CRUSHER))
	  CRUSHER = TRUE;

        else if (dt == gsn_cupid && IS_SET(obj->epic, EPIC_CUPID))
	  CUPID = TRUE;

	else if (dt == gsn_powerful && IS_SET(obj->epic, EPIC_POWERFUL))
	{ epic = "#c(Powerful)#n";
	  POWERFUL = TRUE;
	}
	else if (dt == gsn_precision && IS_SET(obj->epic, EPIC_PRECISION))
	{ epic = "#c(Precision)#n";
	  PRECISION = TRUE;
	 }

	}

        if (obj != NULL && dam > 0 )
	{
 if (IS_SET(obj->legendary, LEGEND_PUNCTURE) && number_percent() > 75)
  {
  PUNCTURE = TRUE;
  epic2 = "#c(Puncture)#n";
  }


 if (IS_SET(obj->legendary, LEGEND_PENETRATE))
 {
  PENETRATE = TRUE;
  epic2 = "#c(Penetrate)#n";
  }
}

//Down


    if (dam > 0)
        dam_percent = ((100 * dam) / (victim->max_hit));
    else dam_percent = 0;

    if (dam_percent >= 100) dam_percent = 100;

    if (dam <= 750)
    {
        xs = "#yLACERATE#n";
        xp = "#yLACERATES#n";
    }
    else if (dam <= 1000)
    {
        xs = "#yMUTILATE#n";
        xp = "#yMUTILATES#n";
    }
    else if (dam <= 1200)
    {
        xs = "#rDISEMBOWEL#n";
        xp = "#rDISEMBOWELS#n";
    }
    else if (dam <= 1000)
    {
        xs = "#gDISMEMBER#n";
        xp = "#gDISMEMBERS#n";
    }
    else if (dam <= 1250)
    {
        xs = "#rMASSACRE#n";
        xp = "#rMASSACRES#n";
    }
    else if (dam <= 2000)
    {
        xs = "#GMANGLE#n";
        xp = "#GMANGLES#n";
    }
    else if (dam <= 3000)
    {
        xs = "#Y***#PDEMOLISH#Y***#n";
        xp = "#Y***#PDEMOLISHES#Y***#n";
    }
    else if (dam <= 4200)
    {
        xs = "#Y***#RDEVISTATE#Y***#n";
        xp = "#Y***#RDEVISTATES#Y***#n";
    }
    else if (dam <= 5500)
    {
        xs = "#Y===#pOBLITERATE#Y===#n";
        xp = "#Y===#pOBLITERATES#Y===#n";
    }
    else if (dam <= 6500)
    {
        xs = "#c<#R*#c> <#R*#c> #GA#gN#GN#gI#GH#gI#GL#gA#GT#gE #c<#R*#c> <#R*#c>#n";
        xp = "#c<#R*#c> <#R*#c> #GA#gN#GN#gI#GH#gI#GL#gA#GT#gE#GS #c<#R*#c> <#R*#c>#n";
        // Annihilates
    }
    else if (dam <= 7500)
    {
        xs ="#c<#W*#c>#W!#c<#W*#c> #GE#gR#GA#gD#GI#gC#GA#gT#GE #c<#W*#c>#W!#c<#W*#c>#n";
        xp ="#c<#W*#c>#W!#c<#W*#c> #GE#gR#GA#gD#GI#gC#GA#gT#GE#gS #c<#W*#c>#W!#c<#W*#c>#n";
    }
    else if (dam <= 8500)
    {
        xs = "#C=#c=#C=#c= #GA#gT#GO#gM#GI#gZ#GE #C=#c=#C=#c=#n";
        xp = "#C=#c=#C=#c= #GA#gT#GO#gM#GI#gZ#GES #C=#c=#C=#c=#n";
    }
    else if (dam <= 10000)
    {
        xs = "#L(#R*#L)#rD#Re#rs#Rt#rr#Ro#ry#L(#R*#L)#n";
        xp = "#L(#R*#L)#rD#Re#rs#Rt#rr#Ro#ry#Rs#L(#R*#L)#n";
    }
    else
    {
        xs = "#yT#Re#ya#Rr#ys #RI#yn#Rt#yo#n";
        xp = "#yT#Re#ya#Rr#ys #RI#yn#Rt#yo#n";
    }


    if (dam < 2)
    {
        vs = " miss";
        vp = " misses";
        return;
    }
    else if (dam <= 50)
    {
        vs = " #Clightly#n";
        vp = " #Clightly#n";
    }
    else if (dam <= 250)
    {
        vs = " #Yhard#n";
        vp = " #Yhard#n";
    }
    else if (dam <= 500)
    {
        vs = " #Bvery hard#n";
        vp = " #Bvery hard#n";
    }
    else if (dam <= 750)
    {
        vs = " #Gextremely hard!#n";
        vp = " #Gextremely hard!#n";
    }
    else if (dam <= 1750)
    {
        vs = "#cO#Rutrageously #cH#Rard#n";
        vp = "#cO#Rutrageously #cH#Rard#n";
    }
    else if (dam <= 1800)
    {
        vs = "#cWith #RHellish #cForce#n";
        vp = "#cWith #RHellish #cForce#n";
    }
    else if (dam <= 2000)
    {
        vs = " #Yso hard it #R#fCASTRATES!!#n";
        vp = " #Yso hard it #R#fCASTRATES!!#n";
    }
    else if (dam <= 2500)
    {
        vs = "#yWith #rGreat #yDamage#n";
        vp = "#yWith #rGreat #yDamage#n";
    }
    else if (dam <= 2750)
    {
        vs = "#cdealsh#n #RTremendous #cDamage#n";
        vp = "#cdeals #RTremendous #cDamage#n";
    }
    else if (dam <= 3000)
    {
        vs = "#rdeals #cUltimate #rDamage#n";
        vp = "#rdeals #cUltimate #rDamage#n";
    }
    else if (dam <= 4000)
    {
        vs = "#cWith #cH#rellish #cDamage#n";
        vp = "#cWith #cH#rellish #cDamage#n";
    }
    else if (dam <= 5000)
    {
        vs = "#cWith #yUnsurmountable #cForce#n";
        vp = "#cWith #yUnsurmountable #cForce#n";
    }
    else if (dam <= 5500)
    {
        vs = "#cWith #RV#rengenance#n";
        vp = "#cWith #RV#rengeance#n";
    }
    else if (dam <= 6000)
    {
        vs = "#CWith #cExtreme #RV#rengenance#n";
        vp = "#CWith #cExtreme #RV#rengenance#n";
    }

    else if (dam <= 7000)
    {
        vs = "#cWith #CUltimate #RV#rengenance#n";
        vp = "#cWith #CUltimate #RV#rengenance#n";
    }
    else if (dam <= 7500)
    {
        vs = "#cWith #CUnbridled #cPower#n";
        vp = "#cWith #CUnbridled #cPower#n";
    }
    else if (dam <= 8000)
    {
        vs = "#cWith #cUn#CG#yo#Cd#yl#Cy #cStrength ";
        vp = "#cWith #cUn#CG#yo#Cd#yl#Cy #cStrength";
    }
    else if (dam <= 9500)
    {
        vs = "#RWith#n #cG#creat#n #RF#corce#n";
        vp = "#RWith#n #cG#creat#n #RF#corce#n";
    }
    else if (dam <= 11000)
    {
        vs = "#yWith #CG#yo#Cd#yl#cy #yForce";
        vp = "#yWith #cG#yo#Cd#yl#cy #yForce#n";
    }

    else
    {
        vs = " #G<#Y*#B{#R*#B}#Y*#G> #sextracting organs #G<#Y*#B{#R*#B}#Y*#G>#n";
        vp = " #G<#Y*#B{#R*#B}#Y*#G> #sextracting organs #G<#Y*#B{#R*#B}#Y*#G>#n";
    }


        if (dt == gsn_precision || dt == gsn_rage
	|| dt == gsn_throttle || dt == gsn_strangle || dt == gsn_achilles
	|| dt == gsn_crusher || dt == gsn_cupid)
	{
	  dt = TYPE_HIT;
	   if ( obj != NULL && obj->item_type == ITEM_WEAPON )
	       dt += obj->value[3];
	}




//dam = dam * (100 - victim->pIndexData->toughness) / 100;

// Penetrate: Ignores some of the damage resistance from armor.
// Puncture: 25 percent Chance of ignoring armor.

    switch (hit_loc)
    {
    case 1:
        obj2 = get_eq_char(victim,WEAR_HANDS);
        loc = "left hand fingers";
        break;
    case 2:
	obj2 = get_eq_char(victim,WEAR_HANDS);
        loc = "right hand fingers";
        break;
    case 3:
        obj2 = get_eq_char(victim,WEAR_HANDS);
        loc = "third hand fingers";
        break;
    case 4:
	obj2 = get_eq_char(victim,WEAR_HANDS);
        loc = "fourth hand fingers";
        break;
    case 5:
        obj2 = get_eq_char(victim,WEAR_NECK_1);
        loc = "neck";
	if (STRANGLE == TRUE)
	{
	epic = "#c(Strangle)#n";
        dam *= 4;
	} 
        break;
    case 6:
        obj2 = get_eq_char(victim,WEAR_NECK_2);
        loc = "throat";
	if (THROTTLE == TRUE)
	{
	epic = "#c(Throttle)#n";
        dam *= 4;
	}
        break;
    case 7:
        obj2 = get_eq_char(victim,WEAR_BODY);
        loc = "right shoulder";
        break;
    case 8:
        obj2 = get_eq_char(victim,WEAR_BODY);
        loc = "left shoulder";
        break;

    case 10:
        obj2 = get_eq_char(victim,WEAR_BODY);
        loc = "back";
        break;
    case 11:
        obj2 = get_eq_char(victim,WEAR_BODY);
        loc = "chest";
        if (CUPID == TRUE)
	{
	epic = "#c(Cupid)#n";
        dam *= 4;
	}
        break;
    case 12:
        obj2 = get_eq_char(victim,WEAR_BODY);
        loc = "stomach";
        break;
    case 13:
        obj2 = get_eq_char(victim,WEAR_HEAD);
        loc = "head";
        if (CRUSHER == TRUE)
	{
	epic = "#c(Crusher)#n";
        dam *= 4;
	}
        break;
    case 14:
        obj2 = get_eq_char(victim,WEAR_HEAD);
        loc = "left ear";
        break;
    case 15:
        obj2 = get_eq_char(victim,WEAR_HEAD);
        loc = "right ear";
        break;
    case 16:
        obj2 = get_eq_char(victim,WEAR_LEGS);
	if (number_range(1,2) == 1)
        loc = "left calf";
	else
        loc = "left thigh";
        break;
    case 17:
        obj2 = get_eq_char(victim,WEAR_LEGS);
        loc = "left knee";
        break;
    case 18:
        obj2 = get_eq_char(victim,WEAR_LEGS);
	if (number_range(1,2) == 1)
        loc = "right calf";
	else 
        loc = "right thigh";
        break;
    case 19:
        obj2 = get_eq_char(victim,WEAR_LEGS);
        loc = "right knee";
        break;
    case 20:
        obj2 = get_eq_char(victim,WEAR_FEET);
        loc = "left foot";
        break;
    case 21:
        obj2 = get_eq_char(victim,WEAR_FEET);
        loc = "left ankle";
	if (ACHILLES == TRUE)
	{
	epic = "#c(Achilles)#n";
        dam *= 4;
	}
        break;
    case 22:
        obj2 = get_eq_char(victim,WEAR_FEET);
        loc = "right foot";
        break;
    case 23:
        obj2 = get_eq_char(victim,WEAR_FEET);
        loc = "right ankle";
	if (ACHILLES == TRUE)
	{
	epic = "#c(Achilles)#n";
        dam *= 4;
	}
        break;
    case 24:
        obj2 = get_eq_char(victim,WEAR_HANDS);
        loc = "left hand";
        break;
    case 25:
        obj2 = get_eq_char(victim,WEAR_HANDS);
        loc = "right hand";
        break;
    case 26:
        obj2 = get_eq_char(victim,WEAR_HANDS_2);
        loc = "third hand";
        break;
    case 27:
        obj2 = get_eq_char(victim,WEAR_HANDS_2);
        loc = "fourth hand";
        break;
    case 28:
        obj2 = get_eq_char(victim,WEAR_ARMS);
        loc = number_range(1,2) == 1 ? "left bicep" : "left forearm";
        break;
    case 29:
        obj2 = get_eq_char(victim,WEAR_ARMS);
        loc = "left elbow";
        break;
    case 30:
        obj2 = get_eq_char(victim,WEAR_ARMS);
        loc = number_range(1,2) == 1 ? "right bicep" : "right forearm";
        break;
    case 31:
        obj2 = get_eq_char(victim,WEAR_ARMS);
        loc = "right elbow";
        break;
    case 32:
        obj2 = get_eq_char(victim,WEAR_ARMS_2);
        loc = "third bicep";
        loc = number_range(1,2) == 1 ? "third bicep" : "third forearm";
        break;
    case 33:
        obj2 = get_eq_char(victim,WEAR_ARMS_2);
        loc = "third elbow";
        break;
    case 34:
        obj2 = get_eq_char(victim,WEAR_ARMS_2);
        loc = number_range(1,2) == 1 ? "fourth bicep" : "fourth forearm";
        break;
    case 35:
        obj2 = get_eq_char(victim,WEAR_ARMS_2);
        loc = "fourth elbow";
        break;
    case 36:
        obj2 = get_eq_char(victim,WEAR_WAIST);
        loc = "waist";
        break;
    case 37:
        obj2 = get_eq_char(victim,WEAR_WRIST_L);
        loc = number_range(1,2) == 1 ? "left wrist" : "left forearm";
        break;
    case 38:        
        obj2 = get_eq_char(victim,WEAR_WRIST_R);
        loc = number_range(1,2) == 1 ? "right wrist" : "right forearm";
        break;
    case 39:
         obj2 = get_eq_char(victim,WEAR_WRIST_3);
         loc = number_range(1,2) == 1 ? "third wrist" : "third forearm";
        break;
    case 40:
         obj2 = get_eq_char(victim,WEAR_WRIST_4);
         loc = number_range(1,2) == 1 ? "fourth wrist" : "fourth forearm";
         break;
    case 41:
        obj2 = get_eq_char(victim,WEAR_FACE);
        loc = "face";
        break;
     case 42:
        obj2 = get_eq_char(victim,WEAR_FACE);
        loc = "eyes";
        break;
     case 43:
        obj2 = get_eq_char(victim,WEAR_FACE);
        loc = "nose";
        break;
     case 44:
        obj2 = get_eq_char(victim,WEAR_FACE);
        loc = "jaw";
        break;
        }
    if (!loc) loc = "(no loc)";


      int itemtype = 0;

	if (obj != NULL)
	{
        if (obj->value[0] > 1000)
	itemtype = obj->value[0] / 1000;
       
        if (obj2 != NULL)
	{
	loc = obj2->short_descr;

        if (PUNCTURE == FALSE)
        {
        if (itemtype != 18)
        dam /= (obj2->resistance + 1);
        }
        if (PUNCTURE == TRUE)
        {
	dam += ch->damroll / 10;
        if (itemtype == 18)
	dam += ch->damroll / 10;
        }
        if (PENETRATE == TRUE)
	{
        if (itemtype != 18)
	dam += (ch->damroll / 10) / (obj2->resistance + 1);
	else
	dam += (ch->damroll / 10);
	} } }

	if (dt == gsn_powerful)
	{
	int powerf = char_damroll(ch) / 5;
	dam += powerf;
		
	  dt = TYPE_HIT;
	   if ( obj != NULL && obj->item_type == ITEM_WEAPON )
	       dt += obj->value[3];
       }



    /*
     * If victim's hp are less/equal to 'damp', attacker gets a death blow
     */
    if (IS_NPC(victim))
        damp = 0;
    else
        damp = -10;

    if ((victim->hit - dam > damp) || (dt >= 0 && dt < MAX_SKILL) ||            (IS_NPC(victim) && IS_SET(victim->act, ACT_NOPARTS)))
        punct = (dam <= 250) ? ' ' : ' ';

        if (dt == TYPE_HIT && !IS_NPC(ch)
                && !IS_VAMPAFF(ch, VAM_CLAWS)
                && !IS_SET(ch->newbits, NEW_MONKFLAME))
	    {
	           sprintf( buf1, "#G{#W%d%% #n$n %s $N's %s #c[#w%d#c]#n", dam_percent, vp, loc, dam );
	           sprintf( buf2, "#G{#W%d%% #nYou %s $N's %s #c[#w%d#c]#n", dam_percent, vs, loc, dam );
	           sprintf( buf3, "#G{#W%d%% #n$n %s your %s #c[#w%d#c]#n", dam_percent, vp, loc, dam );
	     }

        else if (dt == TYPE_HIT && !IS_NPC(ch)
                && IS_SET(ch->newbits, NEW_MONKFLAME))
        {
	                sprintf(buf1, "#G{#W%d%% #n$n's #rflaming#n hands %s $N %s %s #c[#w%d#c]#n", dam_percent, xp, vp, loc, dam);
	                sprintf(buf2, "#G{#W%d%% #nYour #rflaming#n hands %s $N %s %s #c[#w%d#c]#n", dam_percent, xp, vs, loc, dam);
        	        sprintf(buf3, "#G{#W%d%% #n$n's #rflaming#n hands %s you %s %s #c[#w%d#c]#n", dam_percent, xp, vp, loc, dam);
	 }   
	else if  (dt == TYPE_HIT && !IS_NPC(ch)
                 && IS_SET(ch->pcdata->stats[UNI_AFF], VAM_CLAWS))
        {
            sprintf( buf1, "#G{#W%d%% #n$n's Claws %s $N's %s, %s #c[#w%d#c]#n",  dam_percent,xp, loc, vp, dam );
            sprintf( buf2, "#G{#W%d%% #nYour Claws %s $N's %s, %s #c[#w%d#c]#n", dam_percent,xp, loc, vp, dam );
            sprintf( buf3, "#G{#W%d%% #n$n's Claws %s your %s, %s #c[#w%d#c]#n",  dam_percent,xp, loc, vp, dam );
        }

	
      if ( dt == TYPE_HIT && !IS_NPC(ch) && (IS_VAMPAFF(ch,VAM_CLAWS)))
      {
        attack  = attack_table[dt - TYPE_HIT + 5];
        attack2 = attack_table2[dt - TYPE_HIT + 5];
      }
      else if ( dt >= 0 && dt < MAX_SKILL )
      {
        attack = skill_table[dt].noun_damage;
        attack2 = skill_table[dt].noun_damage;
      }
      else if (dt > TYPE_HIT && dt < TYPE_HIT + sizeof(attack_table)/sizeof(attack_table[0]))
      {
        attack  = attack_table[dt - TYPE_HIT];
        attack2 = attack_table2[dt - TYPE_HIT];
      }
      else
      {
        dt  = TYPE_HIT;
        attack  = attack_table[0];
        attack2 = attack_table2[0];
      }


//	if (dt >= 1000 && dt < 1019)
	if (obj != NULL)
	{
attack = flag_string(weapon_flags, obj->value[3]);
attack2 = flag_string(weapon_flags, obj->value[3]);


//        cprintf(attack, "%s ", flag_string(weapon_flags, obj->value[3]));
//        cprintf(attack2, "%s ", flag_string(weapon_flags, obj->value[3]));



            sprintf( buf1, "#G{#W%d%% #n%s's#n %s %s $N's %s #c[#w%d#c]#n %s%s",
	 dam_percent, ch->name, attack2, xp, loc, dam, epic, epic2);
            sprintf( buf2, "#G{#W%d%% #nYour %s %s $N's %s #c[#w%d#c]#n %s%s",
	 dam_percent, attack, xp, loc, dam, epic, epic2 );
            sprintf( buf3, "#G{#W%d%% #n%s's %s %s your %s #c[#w%d#c]#n %s%s",
	 dam_percent, ch->name, attack2,xp, loc, dam, epic, epic2 );
	}


	else if ( dt >= 0 && dt < MAX_SKILL )
        {
            sprintf( buf1, "#G{#W%d%% #n%s's %s %s $N's %s #c[#w%d#c]#n",
	 dam_percent,ch->name, attack2, xp, loc, dam );
            sprintf( buf2, "#G{#W%d%% #nYour %s %s $N's %s #c[#w%d#c]#n",
	 dam_percent, attack, xp, loc, dam );
            sprintf( buf3, "#G{#W%d%% #n%s's %s %s your %s #c[#w%d#c]#n",
	 dam_percent,ch->name, attack2,xp, loc, dam );
        }

        else if (IS_SET(ch->newbits, NEW_MONKFLAME))
        {
          sprintf( buf1, "$n's flaming %s hits $N%s%c[%d] %s%s", attack2, vp, punct, dam, epic, epic2);
          sprintf( buf2, "Your flaming %s hits $N%s%c[%d] %s%s", attack, vp, punct, dam, epic, epic2);
          sprintf( buf3, "$n's flaming %s hits you%s%c[%d] %s%s", attack2, vp, punct, dam, epic, epic2);
        }
        else
        {
	           sprintf( buf1, "#G{#W%d%% #n$n %s $N's %s #c[#w%d#c]#n", dam_percent, vp, loc, dam );
	           sprintf( buf2, "#G{#W%d%% #nYou %s $N's %s #c[#w%d#c]#n", dam_percent, vs, loc, dam );
	           sprintf( buf3, "#G{#W%d%% #n$n %s your %s #c[#w%d#c]#n", dam_percent, vp, loc, dam );
/*
            sprintf( buf1, "#G{#W%d%% #n%s's %s %s $N's %s #c[#w%d#c]#n %s%s",
	 dam_percent,ch->name, attack2, xp, loc, dam, epic, epic2 );
            sprintf( buf2, "#G{#W%d%% #nYour %s %s $N's %s #c[#w%d#c]#n %s%s",
	 dam_percent, attack, xp, loc, dam, epic, epic2 );
            sprintf( buf3, "#G{#W%d%% #n%s's %s %s your %s #c[#w%d#c]#n %s%s",
	 dam_percent, ch->name,attack2,xp, loc, dam, epic, epic2 );
*/
        }

        /*
         * Message to room.
         */
        act_brief(buf1, ch, NULL, victim, TO_NOTVICT, PLR_BRIEF7);



        /*
         * Message to attacker
         */
        if ( dt == skill_lookup("lightning bolt") ||
                dt == skill_lookup("acid blast") ||
                dt == skill_lookup("chill touch") ||
                dt == skill_lookup("fireball"))
        {
            if (!(dt == skill_lookup("chaos blast") && !IS_NPC(victim)))
                act(buf2, ch, NULL, victim, TO_CHAR);
        }
        if (!IS_SET(ch->act, PLR_BRIEF5))
            act(buf2, ch, NULL, victim, TO_CHAR);


        /*
         * Message to victim
         */
        if (!IS_SET(victim->act, PLR_BRIEF5))
        {
            if (!(IS_SET(victim->act, PLR_BRIEF2) && (dam == 0 || dt == skill_lookup("lightning bolt") ||
                    dt == skill_lookup("acid blast") || dt == skill_lookup("chill touch") || dt == skill_lookup("fireball"))))
                act(buf3, ch, NULL, victim, TO_VICT);
        }


	if (obj != NULL)
	{
//	if (dt != TYPE_HIT && obj != NULL && obj2 != NULL)
           critical_hit(ch, victim, dt, dam, hit_loc, obj);
	}
   
/*
	if (!IS_NPC(ch))
	{
	if (obj2 != NULL)
	{
	int chance12 = number_range(1,50);

  	  if (obj != NULL)
	  {
	    if (IS_ITEMAFF(ch, ITEMA_VORPAL))
	    {
	    chance12 -= 10;      
	    }
	if (dt != 1000)
	{
	    if (obj->value[0] == 18)
	    {
	    chance12 -= 25;
	    }
         }
          }
          else 
            chance12 -= 5;

            if (chance12 <= 5 ) return;
         }
        }
*/
        if (dt == TYPE_HIT && !IS_NPC(ch) && !IS_VAMPAFF(ch, VAM_CLAWS)
                && !IS_VAMPAFF(ch, VAM_FANGS))
        {
            damp = number_range(1, 5);
            if (damp == 1)
            {
                        act("You ram your fingers into $N's eye sockets and rip $S face off.", ch, NULL, victim, TO_CHAR);
                        act("$n rams $s fingers into $N's eye sockets and rips $S face off.", ch, NULL, victim, TO_NOTVICT);
                        act("$n rams $s fingers into your eye sockets and rips your face off.", ch, NULL, victim, TO_VICT);
                make_part(victim, "face");
            }
            else if (damp == 2)
            {
                        act("You grab $N by the throat and tear $S windpipe out.", ch, NULL, victim, TO_CHAR);
                        act("$n grabs $N by the throat and tears $S windpipe out.", ch, NULL, victim, TO_NOTVICT);
                        act("$n grabs you by the throat and tears your windpipe out.", ch, NULL, victim, TO_VICT);
                make_part(victim, "windpipe");
            }
            else if (damp == 3)
            {
                        act("You punch your fist through $N's stomach and rip out $S entrails.", ch, NULL, victim, TO_CHAR);
                        act("$n punches $s fist through $N's stomach and rips out $S entrails.", ch, NULL, victim, TO_NOTVICT);
                        act("$n punches $s fist through your stomach and rips out your entrails.", ch, NULL, victim, TO_VICT);
                make_part(victim, "entrails");
            }
            else if (damp == 4)
            {

                if (!IS_BODY(victim, BROKEN_SPINE))
                    SET_BIT(victim->loc_hp[1], BROKEN_SPINE);
                        act("You hoist $N above your head and slam $M down upon your knee.\n\rThere is a loud cracking sound as $N's spine snaps.", ch, NULL, victim, TO_CHAR);
                        act("$n hoists $N above $s head and slams $M down upon $s knee.\n\rThere is a loud cracking sound as $N's spine snaps.", ch, NULL, victim, TO_NOTVICT);
                        act("$n hoists you above $s head and slams you down upon $s knee.\n\rThere is a loud cracking sound as your spine snaps.", ch, NULL, victim, TO_VICT);
            }
            else if (damp == 5)
            {
                        act("You lock your arm around $N's head, and give it a vicious twist.", ch, NULL, victim, TO_CHAR);
                        act("$n locks $s arm around $N's head, and gives it a vicious twist.", ch, NULL, victim, TO_NOTVICT);
                        act("$n locks $s arm around your head, and gives it a vicious twist.", ch, NULL, victim, TO_VICT);
                if (!IS_BODY(victim, BROKEN_NECK))
                {
                                act("There is a loud snapping noise as your neck breaks.", victim, NULL, NULL, TO_CHAR);
                                act("There is a loud snapping noise as $n's neck breaks.", victim, NULL, NULL, TO_ROOM);
                    SET_BIT(victim->loc_hp[1], BROKEN_NECK);
                }
            }
            return;
        }
        if (dt >= 0 && dt < MAX_SKILL)
            attack = skill_table[dt].noun_damage;
        else if (dt >= TYPE_HIT
                 && dt <
                 TYPE_HIT + sizeof(attack_table) / sizeof(attack_table[0]))
            attack = attack_table[dt - TYPE_HIT];
        else
        {
            dt = TYPE_HIT;
            attack = attack_table[0];
        }

	// Tijer said !str_cmp(attack, "<attacktype>")'
//        "fist", "longsword", "spear", "broadsword", "whip", "staff",
//        "knife", "warhammer", "mace", "axe", "twohanded", "shortsword", "bastardsword",
//        "flail", "morningstar", "polearm", "gun", "sickle", "dagger"

	if (!str_cmp(attack, "longsword") || !str_cmp(attack, "broadsword")
	|| !str_cmp(attack, "bastardsword"))
        {
            damp = number_range(1, 8);
            if (damp == 1)
            {
                       act("You swing your blade in a low arc, rupturing $N's abdominal cavity.\n\r$S entrails spray out over a wide area.", ch, NULL, victim, TO_CHAR);
                       act("$n swings $s blade in a low arc, rupturing $N's abdominal cavity.\n\r$S entrails spray out over a wide area.", ch, NULL, victim, TO_NOTVICT);
                        act("$n swings $s blade in a low arc, rupturing your abdominal cavity.\n\rYour entrails spray out over a wide area.", ch, NULL, victim, TO_VICT);
                make_part(victim, "entrails");
            }
            else if (damp == 2)
            {
                        act("You thrust your blade into $N's mouth and twist it viciously.\n\rThe end of your blade bursts through the back of $S head.", ch, NULL, victim, TO_CHAR);
                        act("$n thrusts $s blade into $N's mouth and twists it viciously.\n\rThe end of the blade bursts through the back of $N's head.", ch, NULL, victim, TO_NOTVICT);
                        act("$n thrusts $s blade into your mouth and twists it viciously.\n\rYou feel the end of the blade burst through the back of your head.", ch, NULL, victim, TO_VICT);
            }
            else if (damp == 3)
            {
                if (!IS_BODY(victim, CUT_THROAT))
                    SET_BIT(victim->loc_hp[1], CUT_THROAT);
                if (!IS_BLEEDING(victim, BLEEDING_THROAT))
                    SET_BIT(victim->loc_hp[6], BLEEDING_THROAT);
                        act("Your blow slices open $N's carotid artery, spraying blood everywhere.", ch, NULL, victim, TO_CHAR);
                        act("$n's blow slices open $N's carotid artery, spraying blood everywhere.", ch, NULL, victim, TO_NOTVICT);
                        act("$n's blow slices open your carotid artery, spraying blood everywhere.", ch, NULL, victim, TO_VICT);
                make_part(victim, "blood");
            }
            else if (damp == 4)
            {
                if (!IS_BODY(victim, CUT_THROAT))
                    SET_BIT(victim->loc_hp[1], CUT_THROAT);
                if (!IS_BLEEDING(victim, BLEEDING_THROAT))
                    SET_BIT(victim->loc_hp[6], BLEEDING_THROAT);
                        act("You swing your blade across $N's throat, showering the area with blood.", ch, NULL, victim, TO_CHAR);
                        act("$n swings $s blade across $N's throat, showering the area with blood.", ch, NULL, victim, TO_NOTVICT);
                        act("$n swings $s blade across your throat, showering the area with blood.", ch, NULL, victim, TO_VICT);
                make_part(victim, "blood");
            }
            else if (damp == 5)
            {
                if (!IS_HEAD(victim, BROKEN_SKULL))
                {
                                act("You swing your blade down upon $N's head, splitting it open.\n\r$N's brains pour out of $S forehead.", ch, NULL, victim, TO_CHAR);
                                act("$n swings $s blade down upon $N's head, splitting it open.\n\r$N's brains pour out of $S forehead.", ch, NULL, victim, TO_NOTVICT);
                                act("$n swings $s blade down upon your head, splitting it open.\n\rYour brains pour out of your forehead.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "brain");
                    SET_BIT(victim->loc_hp[0], BROKEN_SKULL);
                }
                else
                {
                                act("You plunge your blade deep into $N's chest.", ch, NULL, victim, TO_CHAR);
                                act("$n plunges $s blade deep into $N's chest.", ch, NULL, victim, TO_NOTVICT);
                                act("$n plunges $s blade deep into your chest.", ch, NULL, victim, TO_VICT);
                }
            }
            else if (damp == 6)
            {
                        act("You swing your blade between $N's legs, nearly splitting $M in half.", ch, NULL, victim, TO_CHAR);
                        act("$n swings $s blade between $N's legs, nearly splitting $M in half.", ch, NULL, victim, TO_NOTVICT);
                        act("$n swings $s blade between your legs, nearly splitting you in half.", ch, NULL, victim, TO_VICT);
            }
            else if (damp == 7)
            {
                if (!IS_ARM_L(victim, LOST_ARM))
                {
                                act("You swing your blade in a wide arc, slicing off $N's arm.", ch, NULL, victim, TO_CHAR);
                                act("$n swings $s blade in a wide arc, slicing off $N's arm.", ch, NULL, victim, TO_NOTVICT);
                                act("$n swings $s blade in a wide arc, slicing off your arm.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "arm");
                    SET_BIT(victim->loc_hp[2], LOST_ARM);
                    if (!IS_BLEEDING(victim, BLEEDING_ARM_L))
                        SET_BIT(victim->loc_hp[6],
                                BLEEDING_ARM_L);
                    if (IS_BLEEDING(victim, BLEEDING_HAND_L))
                        REMOVE_BIT(victim->loc_hp[6],
                                   BLEEDING_HAND_L);
                }
                else if (!IS_ARM_R(victim, LOST_ARM))
                {
                                act("You swing your blade in a wide arc, slicing off $N's arm.", ch, NULL, victim, TO_CHAR);
                                act("$n swings $s blade in a wide arc, slicing off $N's arm.", ch, NULL, victim, TO_NOTVICT);
                                act("$n swings $s blade in a wide arc, slicing off your arm.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "arm");
                    SET_BIT(victim->loc_hp[3], LOST_ARM);
                    if (!IS_BLEEDING(victim, BLEEDING_ARM_R))
                        SET_BIT(victim->loc_hp[6],
                                BLEEDING_ARM_R);
                    if (IS_BLEEDING(victim, BLEEDING_HAND_R))
                        REMOVE_BIT(victim->loc_hp[6],
                                   BLEEDING_HAND_R);
                }
                else
                {
                    act("You plunge your blade deep into $N's chest.", ch, NULL, victim, TO_CHAR);
                    act("$n plunges $s blade deep into $N's chest.", ch, NULL, victim, TO_NOTVICT);
                    act("$n plunges $s blade deep into your chest.", ch, NULL, victim, TO_VICT);
                }
            }
            else if (damp == 8)
            {
                if (!IS_LEG_L(victim, LOST_LEG))
                {
                    act("You swing your blade in a low arc, slicing off $N's leg at the hip.", ch, NULL, victim, TO_CHAR);
                    act("$n swings $s blade in a low arc, slicing off $N's leg at the hip.", ch, NULL, victim, TO_NOTVICT);
                    act("$n swings $s blade in a wide arc, slicing off your leg at the hip.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "leg");
                    SET_BIT(victim->loc_hp[4], LOST_LEG);
                    if (!IS_BLEEDING(victim, BLEEDING_LEG_L))
                        SET_BIT(victim->loc_hp[6],
                                BLEEDING_LEG_L);
                    if (IS_BLEEDING(victim, BLEEDING_FOOT_L))
                        REMOVE_BIT(victim->loc_hp[6],
                                   BLEEDING_FOOT_L);
                }
                else if (!IS_LEG_R(victim, LOST_LEG))
                {
                    act("You swing your blade in a low arc, slicing off $N's leg at the hip.", ch, NULL, victim, TO_CHAR);
                    act("$n swings $s blade in a low arc, slicing off $N's leg at the hip.", ch, NULL, victim, TO_NOTVICT);
                    act("$n swings $s blade in a wide arc, slicing off your leg at the hip.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "leg");
                    SET_BIT(victim->loc_hp[5], LOST_LEG);
                    if (!IS_BLEEDING(victim, BLEEDING_LEG_R))
                        SET_BIT(victim->loc_hp[6],
                                BLEEDING_LEG_R);
                    if (IS_BLEEDING(victim, BLEEDING_FOOT_R))
                        REMOVE_BIT(victim->loc_hp[6],
                                   BLEEDING_FOOT_R);
                }
                else
                {
                    act("You plunge your blade deep into $N's chest.", ch, NULL, victim, TO_CHAR);
                    act("$n plunges $s blade deep into $N's chest.", ch, NULL, victim, TO_NOTVICT);
                    act("$n plunges $s blade deep into your chest.", ch, NULL, victim, TO_VICT);
                }
            }


	else if (!str_cmp(attack, "spear") || !str_cmp(attack, "dagger")
	|| !str_cmp(attack, "knife") || !str_cmp(attack, "shortsword")
	|| !str_cmp(attack, "sickle"))
            {
                damp = number_range(1, 5);
                if (damp == 1)
                {
                    act("You defty invert your weapon and plunge it point first into $N's chest.\n\rA shower of blood sprays from the wound, showering the area.", ch, NULL, victim, TO_CHAR);
                    act("$n defty inverts $s weapon and plunge it point first into $N's chest.\n\rA shower of blood sprays from the wound, showering the area.", ch, NULL, victim, TO_NOTVICT);
                    act("$n defty inverts $s weapon and plunge it point first into your chest.\n\rA shower of blood sprays from the wound, showering the area.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "blood");
                }
                else if (damp == 2)
                {
                    act("You thrust your blade into $N's mouth and twist it viciously.\n\rThe end of your blade bursts through the back of $S head.", ch, NULL, victim, TO_CHAR);
                    act("$n thrusts $s blade into $N's mouth and twists it viciously.\n\rThe end of the blade bursts through the back of $N's head.", ch, NULL, victim, TO_NOTVICT);
                    act("$n thrusts $s blade into your mouth and twists it viciously.\n\rYou feel the end of the blade burst through the back of your head.", ch, NULL, victim, TO_VICT);
                }
                else if (damp == 3)
                {
                    act("You thrust your weapon up under $N's jaw and through $S head.", ch, NULL, victim, TO_CHAR);
                    act("$n thrusts $s weapon up under $N's jaw and through $S head.", ch, NULL, victim, TO_NOTVICT);
                    act("$n thrusts $s weapon up under your jaw and through your head.", ch, NULL, victim, TO_VICT);
                }
                else if (damp == 4)
                {
                    act("You ram your weapon through $N's body, pinning $M to the ground.", ch, NULL, victim, TO_CHAR);
                    act("$n rams $s weapon through $N's body, pinning $M to the ground.", ch, NULL, victim, TO_NOTVICT);
                    act("$n rams $s weapon through your body, pinning you to the ground.", ch, NULL, victim, TO_VICT);
                }
                else if (damp == 5)
                {
                    act("You stab your weapon into $N's eye and out the back of $S head.", ch, NULL, victim, TO_CHAR);
                    act("$n stabs $s weapon into $N's eye and out the back of $S head.", ch, NULL, victim, TO_NOTVICT);
                    act("$n stabs $s weapon into your eye and out the back of your head.", ch, NULL, victim, TO_VICT);
                    if (!IS_HEAD(victim, LOST_EYE_L)
                            && number_percent() < 50)
                        SET_BIT(victim->loc_hp[0], LOST_EYE_L);
                    else if (!IS_HEAD(victim, LOST_EYE_R))
                        SET_BIT(victim->loc_hp[0], LOST_EYE_R);
                    else if (!IS_HEAD(victim, LOST_EYE_L))
                        SET_BIT(victim->loc_hp[0], LOST_EYE_L);
                }
            }

	else if (!str_cmp(attack, "warhammer") 
	|| !str_cmp(attack, "flail")
	|| !str_cmp(attack, "mace")
	|| !str_cmp(attack, "morningstar")
	|| !str_cmp(attack, "axe")
	|| !str_cmp(attack, "polearm")
	|| !str_cmp(attack, "staff"))
            {
                damp = number_range(1, 3);
                bodyloc = 0;
                if (damp == 1)
                {
                    act("Your blow smashes through $N's chest, caving in half $S ribcage.", ch, NULL, victim, TO_CHAR);
                    act("$n's blow smashes through $N's chest, caving in half $S ribcage.", ch, NULL, victim, TO_NOTVICT);
                    act("$n's blow smashes through your chest, caving in half your ribcage.", ch, NULL, victim, TO_VICT);
                    if (IS_BODY(victim, BROKEN_RIBS_1))
                    {
                        bodyloc += 1;
                        REMOVE_BIT(victim->loc_hp[1], BROKEN_RIBS_1);
                    }
                    if (IS_BODY(victim, BROKEN_RIBS_2))
                    {
                        bodyloc += 2;
                        REMOVE_BIT(victim->loc_hp[1], BROKEN_RIBS_2);
                    }
                    if (IS_BODY(victim, BROKEN_RIBS_4))
                    {
                        bodyloc += 4;
                        REMOVE_BIT(victim->loc_hp[1], BROKEN_RIBS_4);
                    }
                    if (IS_BODY(victim, BROKEN_RIBS_8))
                    {
                        bodyloc += 8;
                        REMOVE_BIT(victim->loc_hp[1], BROKEN_RIBS_8);
                    }
                    if (IS_BODY(victim, BROKEN_RIBS_16))
                    {
                        bodyloc += 16;
                        REMOVE_BIT(victim->loc_hp[1], BROKEN_RIBS_16);
                    }
                    bodyloc += number_range(1, 3);
                    if (bodyloc > 24)
                        bodyloc = 24;
                    if (bodyloc >= 16)
                    {
                        bodyloc -= 16;
                        SET_BIT(victim->loc_hp[1], BROKEN_RIBS_16);
                    }
                    if (bodyloc >= 8)
                    {
                        bodyloc -= 8;
                        SET_BIT(victim->loc_hp[1], BROKEN_RIBS_8);
                    }
                    if (bodyloc >= 4)
                    {
                        bodyloc -= 4;
                        SET_BIT(victim->loc_hp[1], BROKEN_RIBS_4);
                    }
                    if (bodyloc >= 2)
                    {
                        bodyloc -= 2;
                        SET_BIT(victim->loc_hp[1], BROKEN_RIBS_2);
                    }
                    if (bodyloc >= 1)
                    {
                        bodyloc -= 1;
                        SET_BIT(victim->loc_hp[1], BROKEN_RIBS_1);
                    }
                }
                else if (damp == 2)
                {
                    act("Your blow smashes $N's spine, shattering it in several places.", ch, NULL, victim, TO_CHAR);
                    act("$n's blow smashes $N's spine, shattering it in several places.", ch, NULL, victim, TO_NOTVICT);
                    act("$n's blow smashes your spine, shattering it in several places.", ch, NULL, victim, TO_VICT);
                    if (!IS_BODY(victim, BROKEN_SPINE))
                        SET_BIT(victim->loc_hp[1], BROKEN_SPINE);
                }
                else if (damp == 3)
                {
                    if (!IS_HEAD(victim, BROKEN_SKULL))
                    {
                        act("You swing your weapon down upon $N's head.\n\r$N's head cracks open like an overripe melon, leaking out brains.", ch, NULL, victim, TO_CHAR);
                        act("$n swings $s weapon down upon $N's head.\n\r$N's head cracks open like an overripe melon, covering you with brains.", ch, NULL, victim, TO_NOTVICT);
                        act("$n swings $s weapon down upon your head.\n\rYour head cracks open like an overripe melon, spilling your brains everywhere.", ch, NULL, victim, TO_VICT);
                        make_part(victim, "brain");
                        SET_BIT(victim->loc_hp[0], BROKEN_SKULL);
                    }
                    else
                    {
                        act("You hammer your weapon into $N's side, crushing bone.", ch, NULL, victim, TO_CHAR);
                        act("$n hammers $s weapon into $N's side, crushing bone.", ch, NULL, victim, TO_NOTVICT);
                        act("$n hammers $s weapon into your side, crushing bone.", ch, NULL, victim, TO_VICT);
                    }
                }
            }
            else if (!IS_NPC(ch)
                     && (attack == "bite" || IS_VAMPAFF(ch, VAM_FANGS)))
            {
                act("You sink your teeth into $N's throat and tear out $S jugular vein.\n\rYou wipe the blood from your chin with one hand.", ch, NULL, victim, TO_CHAR);
                act("$n sink $s teeth into $N's throat and tears out $S jugular vein.\n\r$n wipes the blood from $s chin with one hand.", ch, NULL, victim, TO_NOTVICT);
                act("$n sink $s teeth into your throat and tears out your jugular vein.\n\r$n wipes the blood from $s chin with one hand.", ch, NULL, victim, TO_VICT);
                make_part(victim, "blood");
                if (!IS_BODY(victim, CUT_THROAT))
                    SET_BIT(victim->loc_hp[1], CUT_THROAT);
                if (!IS_BLEEDING(victim, BLEEDING_THROAT))
                    SET_BIT(victim->loc_hp[6], BLEEDING_THROAT);
            }
            else if (!IS_NPC(ch)
                     && (attack == "claw" || IS_VAMPAFF(ch, VAM_CLAWS)))
            {
                damp = number_range(1, 2);
                if (damp == 1)
                {
                    act("You tear out $N's throat, showering the area with blood.", ch, NULL, victim, TO_CHAR);
                    act("$n tears out $N's throat, showering the area with blood.", ch, NULL, victim, TO_NOTVICT);
                    act("$n tears out your throat, showering the area with blood.", ch, NULL, victim, TO_VICT);
                    make_part(victim, "blood");
                    if (!IS_BODY(victim, CUT_THROAT))
                        SET_BIT(victim->loc_hp[1], CUT_THROAT);
                    if (!IS_BLEEDING(victim, BLEEDING_THROAT))
                        SET_BIT(victim->loc_hp[6], BLEEDING_THROAT);
                }
                if (damp == 2)
                {
                    if (!IS_HEAD(victim, LOST_EYE_L)
                            && number_percent() < 50)
                    {
                                                        act("You rip an eyeball from $N's face.", ch,
                                                            NULL, victim, TO_CHAR);
                                                        act("$n rips an eyeball from $N's face.", ch,
                                                            NULL, victim, TO_NOTVICT);
                                                        act("$n rips an eyeball from your face.", ch,
                                                            NULL, victim, TO_VICT);
                        
                        make_part(victim, "eyeball");
                        SET_BIT(victim->loc_hp[0], LOST_EYE_L);
                    }
                    else if (!IS_HEAD(victim, LOST_EYE_R))
                    {
                        
                                                        act("You rip an eyeball from $N's face.", ch,
                                                            NULL, victim, TO_CHAR);
                                                        act("$n rips an eyeball from $N's face.", ch,
                                                            NULL, victim, TO_NOTVICT);
                                                        act("$n rips an eyeball from your face.", ch,
                                                            NULL, victim, TO_VICT);
                        
                        make_part(victim, "eyeball");
                        SET_BIT(victim->loc_hp[0], LOST_EYE_R);
                    }
                    else if (!IS_HEAD(victim, LOST_EYE_L))
                    {
                        
                                                        act("You rip an eyeball from $N's face.", ch,
                                                            NULL, victim, TO_CHAR);
                                                        act("$n rips an eyeball from $N's face.", ch,
                                                            NULL, victim, TO_NOTVICT);
                                                        act("$n rips an eyeball from your face.", ch,
                                                            NULL, victim, TO_VICT);
                        
                        make_part(victim, "eyeball");
                        SET_BIT(victim->loc_hp[0], LOST_EYE_L);
                    }
                    else
                    {
                        
                                                        act("You claw open $N's chest.", ch, NULL,
                                                            victim, TO_CHAR);
                                                        act("$n claws open $N's chest.", ch, NULL,
                                                            victim, TO_NOTVICT);
                                                        act("$n claws open $N's chest.", ch, NULL,
                                                            victim, TO_VICT);
                        
                    }
                }
            }

	else if (!str_cmp(attack, "whip"))
            {
                act("You entangle $N around the neck, and squeeze out $S life.", ch, NULL, victim, TO_CHAR);
                act("$n entangles $N around the neck, and squeezes out $S life.", ch, NULL, victim, TO_NOTVICT);
                act("$n entangles you around the neck, and squeezes the life out of you.", ch, NULL, victim, TO_VICT);
                if (!IS_BODY(victim, BROKEN_NECK))
                    SET_BIT(victim->loc_hp[1], BROKEN_NECK);
            }

	else if (!str_cmp(attack, "nunchaku"))
            {
                act("You blast $N leaving a hole in $S.", ch, NULL, victim, TO_CHAR);
                act("$n blasts $N leaving a hole in $S.", ch, NULL, victim, TO_NOTVICT);
                act("$n blasts you!", ch, NULL, victim, TO_VICT);
                if (!IS_BODY(victim, BROKEN_NECK))
                    SET_BIT(victim->loc_hp[1], BROKEN_NECK);
            }

	else if (!str_cmp(attack, "exotic") || !str_cmp(attack, "twohanded"))
            {
                act("You place your weapon on $N's head and suck out $S brains.", ch, NULL, victim, TO_CHAR);
                act("$n places $s weapon on $N's head and suck out $S brains.", ch, NULL, victim, TO_NOTVICT);
                act("$n places $s weapon on your head and suck out your brains.", ch, NULL, victim, TO_VICT);

            }
	    else if (dt == gsn_powerful || dt == gsn_throttle || dt == gsn_strangle || dt == gsn_achilles
	     || dt == gsn_crusher || dt == gsn_cupid || dt == gsn_precision)
	    {
                        act("You hammer your weapon into $N's side, crushing bone.", ch, NULL, victim, TO_CHAR);
                        act("$n hammers $s weapon into $N's side, crushing bone.", ch, NULL, victim, TO_NOTVICT);
                        act("$n hammers $s weapon into your side, crushing bone.", ch, NULL, victim, TO_VICT);
	   }
            else
            {
                 bug( "Dam_message: bad dt %d.", dt );
            }
        }
    return;
}



