
Cotn 4.5 Live Version (My char gets +2 profs fromĀ being Fighter Class)
void do_prof(CHAR_DATA * ch, char *argument)
{
char arg1[MAX_STRING_LENGTH];
char buf[MSL];
argument = one_argument( argument, arg1 );
if (IS_NPC(ch))return;
if ( arg1[0] == '\0' )
{
// send_to_char("#D Slash, Slice, Pound, Crush, Grep, Bite, Unarmed, Pierce, Suck, Blast, Claw, Whip, Stab.\n\r",ch);
send_to_char("#C <<<--= [^cProficiencies#n#C] #C=-->>>#n \n\r\n\r",ch);
send_to_char("#c Players are allowed up to three weapon proficiencies.#n \n\r",ch);
send_to_char("#c Each will give an additional +100 to a weapon's skill level cap.#n \n\r\n\r",ch);
send_to_char("#D unarmed, longsword, spear, broadsword, whip, staff, \n\r",ch);
send_to_char("#D knife, warhammer, mace, axe, twohanded, shortsword, bastardsword, \n\r",ch);
send_to_char("#D flail, morningstar, polearm, nunchaku, sickle, dagger. \n\r\n\r",ch);
if (ch->pcwpnprof > 0)
{
send_to_char(" #ACurrent: #W",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_UNARM)) send_to_char("unarmed ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_LONGSWORD)) send_to_char("longsword ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_SPEAR )) send_to_char("spear ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_BROADSWORD)) send_to_char("broadsword ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_WHIP)) send_to_char("whip ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_STAFF)) send_to_char("staff ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_KNIFE)) send_to_char("knife ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_WARHAMMER)) send_to_char("warhammer ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_MACE)) send_to_char("mace ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_AXE)) send_to_char("axe ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_TWOHANDED)) send_to_char("twohanded ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_SHORTSWORD)) send_to_char("shortsword ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_BASTARDSWORD)) send_to_char("bastardsword ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_FLAIL)) send_to_char("flail ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_MORNINGSTAR)) send_to_char("spear ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_POLEARM)) send_to_char("polearm ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_NUNCHAKU)) send_to_char("nunchaku ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_SICKLE)) send_to_char("sickle ",ch);
if ( IS_SET( ch->pcwpnprof, WPNPROF_DAGGER)) send_to_char("dagger ",ch);
send_to_char(" #n\n\r",ch);
send_to_char(" #n\n\r",ch);
}
send_to_char(" #c(#Aprof #Wclear#c) to reset weapon proficiencies. #n\n\r",ch);
return;
}
/*
#define WPNPROF_UNARM 1
#define WPNPROF_LONGSWORD 2
#define WPNPROF_SPEAR 4
#define WPNPROF_BROADSWORD 8
#define WPNPROF_WHIP 16
#define WPNPROF_STAFF 32
#define WPNPROF_KNIFE 64
#define WPNPROF_WARHAMMER 128
#define WPNPROF_MACE 256
#define WPNPROF_AXE 512
#define WPNPROF_TWOHANDED 1024
#define WPNPROF_SHORTSWORD 2048
#define WPNPROF_BASTARDSWORD 4096
#define WPNPROF_FLAIL 8192
#define WPNPROF_MORNINGSTAR 16384
#define WPNPROF_POLEARM 32768
#define WPNPROF_CLUB 65536
#define WPNPROF_GUN 131072
#define WPNPROF_NUNCHAKU 262144
#define WPNPROF_SICKLE 524288
#define WPNPROF_DAGGER 1048576
*/
if (!str_cmp(arg1,"clear"))
{
ch->pcmaxwpnprof = 0;
ch->pcwpnprof = 0;
send_to_char("Proficiencies reset.\n\r",ch);
return;
}
if (ch->pcmaxwpnprof >= 3 && !IS_CLASS(ch, CLASS_FIGHTER))
{
send_to_char(" You may only have 3 weapon proficiencies \n\r",ch);
return;
}
if (ch->pcmaxwpnprof >= 5 && IS_CLASS(ch, CLASS_FIGHTER))
{
send_to_char(" Fighter may only have 5 weapon proficiencies \n\r",ch);
return;
}
if (!str_cmp(arg1,"unarmed"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_UNARM))
{
send_to_char("#D You already have Hand-To-Hand proficiency.\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_UNARM);
send_to_char("#D You now have Hand-to-hand proficiency.\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"longsword"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_LONGSWORD))
{
send_to_char("#D You already have longsword proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_LONGSWORD);
send_to_char("#D You now have longsword proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"spear"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_SPEAR))
{
send_to_char("#D You already have spear proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_SPEAR);
send_to_char("#D You now have spear proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"broadsword"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_BROADSWORD))
{
send_to_char("#D You already have broadsword proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_BROADSWORD);
send_to_char("#D You now have broadsword proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"whip"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_WHIP))
{
send_to_char("#D You already have whip proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_WHIP);
send_to_char("#D You now have whip proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"staff"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_STAFF))
{
send_to_char("#D You already have staff proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_STAFF);
send_to_char("#D You now have staff proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"knife"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_KNIFE))
{
send_to_char("#D You already have knife proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_KNIFE);
send_to_char("#D You now have knife proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"warhammer"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_WARHAMMER))
{
send_to_char("#D You already have warhammer proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_WARHAMMER);
send_to_char("#D You now have warhammer proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"mace"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_MACE))
{
send_to_char("#D You already have mace proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_MACE);
send_to_char("#D You now have mace proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"axe"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_AXE))
{
send_to_char("#D You already have axe proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_AXE);
send_to_char("#D You now have axe proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"twohanded"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_TWOHANDED))
{
send_to_char("#D You already have twohanded proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_TWOHANDED);
send_to_char("#D You now have twohanded proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"Shortsword"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_SHORTSWORD))
{
send_to_char("#D You already have shortsword proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_SHORTSWORD);
send_to_char("#D You now have shortsword proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"bastardsword"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_BASTARDSWORD))
{
send_to_char("#D You already have bastardsword proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_BASTARDSWORD);
send_to_char("#D You now have bastardsword proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"flail"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_FLAIL))
{
send_to_char("#D You already have flail proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_FLAIL);
send_to_char("#D You now have flail proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"morningstar"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_MORNINGSTAR))
{
send_to_char("#D You already have morningstar proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_MORNINGSTAR);
send_to_char("#D You now have morningstar proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"polearm"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_POLEARM))
{
send_to_char("#D You already have polearm proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_POLEARM);
send_to_char("#D You now have polearm proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"nunchaku"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_NUNCHAKU))
{
send_to_char("#D You already have nunchaku proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_NUNCHAKU);
send_to_char("#D You now have nunchaku proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"sickle"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_SICKLE))
{
send_to_char("#D You already have sickle proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_SICKLE);
send_to_char("#D You now have sickle proficiency\n\r",ch);
return;
}
}
else if (!str_cmp(arg1,"dagger"))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_DAGGER))
{
send_to_char("#D You already have dagger proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_DAGGER);
send_to_char("#D You now have dagger proficiency\n\r",ch);
return;
}
}
/*
else if (!str_cmp(arg1,""))
{
if (IS_SET(ch->pcwpnprof, WPNPROF_))
{
send_to_char("#D You already have x proficiency\n\r",ch);
return;
}
else
{
ch->pcmaxwpnprof++;
SET_BIT(ch->pcwpnprof, WPNPROF_);
send_to_char("#D You now have proficiency\n\r",ch);
return;
}
}
*/
return;
}