/***************************************************************************
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. *
* *
* Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* *
* In order to use any part of this Merc Diku Mud, you must comply with *
* both the original Diku license in 'license.doc' as well the Merc
*
* license in 'license.txt'. In particular, you may not remove either of *
* these copyright notices. *
* *
* Much time and thought has gone into this software and you are *
* benefitting. We hope that you share your changes too. What goes *
* around, comes around. *
***************************************************************************/
/***************************************************************************
* God Wars Mud originally written by KaVir aka Richard Woolcock. *
* Changes done to the code done by Sage aka Walter Howard, this mud is *
* for the public, however if you run this code it means you agree *
* to the license.low, license.gw, and license.merc have fun. :) *
***************************************************************************/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "commands.h"
/*offer(sacrifice)*/
void do_offer(CHAR_DATA *ch, char *argument )
{
char arg[MAX_INPUT_LENGTH];
CHAR_DATA *victim;
char buf[MAX_STRING_LENGTH];
one_argument( argument,arg);
if (IS_NPC(ch)) return;
if ( arg[0] == '\0' )
{
send_to_char( "Who do you wish to sacrifice?\n\r", ch );
return;
}
if ((victim = get_char_room( ch, arg)) == NULL)
{
send_to_char("They arent here.\n\r",ch);
return;
}
if (IS_NPC(victim))
{
send_to_char("You cant sacrifice them!\n\r",ch);
return;
}
if (!str_cmp(victim->name, "SirMog")) return;
if (ch->level < 3 || victim->level < 3)
{
send_to_char("Only avatars may sacrifice each other.\n\r",ch);
return;
}
if (victim->position > POS_INCAP)
{
send_to_char("You can only sacrifice mortally wounded
players.\n\r",ch);
return;
}
if (is_safe(ch,victim) == TRUE) return;
WAIT_STATE(ch,8);
sprintf(buf,"%s places his hand on %s's head.",ch->name,victim->name);
act(buf,ch,NULL,NULL,TO_ROOM);
sprintf(buf,"You place your hand on %s's head.",victim->name);
send_to_char(buf,ch);
sprintf(buf,"A divine spirit snatches %s from the planet.",victim->name);
act(buf,ch,NULL,NULL,TO_ROOM);
send_to_char(buf,ch);
sprintf(buf,"%s has been sacrificed to God by %s.",victim->name,ch->name);
if (IS_CLASS(ch,CLASS_VAMPIRE))
{
sprintf(buf,"%s has been sacrificed to Caine by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Caine.\n\r",ch);
}
if (IS_CLASS(ch,CLASS_WEREWOLF))
{
sprintf(buf,"%s has been sacrificed to Gaia by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Gaia.\n\r",ch);
}
if (IS_CLASS(ch,CLASS_DEMON))
{
sprintf(buf,"%s has been sacrificed to Satan by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Satan\n\r",ch);
}
if (IS_CLASS(ch, CLASS_DROW))
{
sprintf(buf,"%s has been sacirificed to Lloth by %s.",victim->name,ch->name);
send_to_char("You have been gifted power by Lloth.\n\r", ch );
}
do_info(ch,buf);
if (( ch->race - victim->race > 10 && ch->race > 0)
|| (victim->race == 0 && ch->race > 0) )
{
ch->paradox[0] += ch->race;
ch->paradox[1] += ch->race;
ch->paradox[2] += PARADOX_TICK;
do_paradox(ch,"self");
if (IS_CLASS(victim, CLASS_VAMPIRE))
do_mortalvamp(victim,"");
else if (IS_SET(victim->special, SPC_WOLFMAN))
do_unwerewolf(victim,"");
if (IS_CLASS(victim, CLASS_MAGE) && IS_AFFECTED(victim, AFF_POLYMORPH))
do_unpolymorph(victim,"");
if (IS_CLASS(victim, CLASS_DROW) && IS_POLYAFF(victim,
POLY_SPIDERFORM))
do_spiderform(victim,"");
do_beastlike(ch,"");
victim->level = 2;
victim->trust = 0;
raw_kill(victim, ch);
WAIT_STATE(victim, 10);
return;
}
ch->hit = ch->max_hit;
ch->mana= ch->max_mana;
ch->move= ch->max_move;
if (victim->race > 0)
{
/*
if (IS_CLASS(ch, CLASS_DEMON))
ch->pcdata->souls ++;*/
ch->practice += 10;
victim->race -= 1;
}
raw_kill(victim, ch);
WAIT_STATE(victim,20);
return;
}
/*
void do_outcast( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
char arg[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
one_argument( argument, arg );
if ( ch->pcdata->stats[UNI_GEN] != 2 &&
!IS_SET(ch->special, SPC_DEMON_LORD)
&& ch->level != 6 )
{
send_to_char("You are not a clan leader!\n\r", ch);
return;
}
if ( arg[0] == '\0' )
{
send_to_char( "Outcast who?\n\r", ch );
return;
}
if ( ( victim = get_char_world( ch, arg ) ) == NULL )
{
send_to_char( "They aren't here.\n\r", ch );
return;
}
if ( victim == ch )
{
send_to_char("You cannot outcast youself!\n\r", ch);
return;
}
if ( IS_NPC(victim) )
{
send_to_char( "Not on NPC's.\n\r", ch );
return;
}
if ( IS_CLASS(ch,CLASS_DEMON) && IS_SET(ch->special, SPC_DEMON_LORD)
&& IS_CLASS(victim, CLASS_DEMON) && !str_cmp(victim->clan,ch->clan) )
{
sprintf(buf,"%s has been outcasted from %s", victim->name, ch->clan);
do_info(victim,buf);
if (IS_VAMPAFF(victim,VAM_FANGS) )
{
send_to_char("Your fangs slide back into your gums.\n\r",victim);
act("$N's fangs slide back into $s gums.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FANGS);
}
if (IS_VAMPAFF(victim,VAM_CLAWS) )
{
send_to_char("Your claws slide back under your nails.\n\r",victim);
act("$N's claws slide back under $s nails.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
if (IS_VAMPAFF(victim,VAM_NIGHTSIGHT) )
{
send_to_char("The red glow in your eyes fades.\n\r",victim);
act("The red glow in $N's eyes fades.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_NIGHTSIGHT);
}
if (IS_IMMUNE(victim,IMM_SHIELDED) )
{
send_to_char("You stop shielding your aura.\n\r",victim);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
send_to_char( "Your senses return to normal.\n\r", victim );
}
if (IS_DEMAFF(victim,DEM_HORNS) )
{
send_to_char("Your horns slide back into your head.\n\r",victim);
act("$N's horns slide back into $s head.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_HORNS);
}
if (IS_DEMAFF(victim,DEM_HOOVES) )
{
send_to_char("Your hooves transform into feet.\n\r",victim);
act("$N's hooves transform back into $s feet.", ch, NULL,victim,TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_HOOVES);
}
if (IS_DEMAFF(victim,DEM_WINGS) )
{
if (IS_DEMAFF(victim,DEM_UNFOLDED) )
{
send_to_char("Your wings fold up behind your back.\n\r",victim);
act("$N's wings fold up behind $s back.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_UNFOLDED);
}
send_to_char("Your wings slide into your back.\n\r",victim);
act("$N's wings slide into $s back.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_WINGS);
}
if ( IS_EXTRA(victim, EXTRA_OSWITCH) )
{
do_humanform(victim,"");
}
victim->pcdata->powers[DPOWER_FLAGS] = 0;
victim->pcdata->stats[DEMON_TOTAL] = 0;
victim->pcdata->stats[DEMON_CURRENT] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
REMOVE_BIT(victim->special, SPC_CHAMPION );
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->special, SPC_DEMON_LORD);
victim->pcdata->stats[UNI_RAGE] = 0;
victim->class = 0;
send_to_char("You have been outcasted from Hell!\n\r", victim);
}
else if ( ( IS_CLASS(ch, CLASS_MAGE) && ch->level == LEVEL_ARCHMAGE )
&& ch->pcdata->powers[MPOWER_RUNE0] == victim->pcdata->powers[MPOWER_RUNE0]
&& victim->level < LEVEL_ARCHMAGE )
{
sprintf(buf,"%s has been outcasted from the Mages Guild.", victim->name);
do_info(victim,buf);
reset_spell(victim,0);
reset_spell(victim,1);
reset_spell(victim,2);
reset_spell(victim,3);
reset_spell(victim,4);
victim->trust = 0;
victim->class = 0;
victim->level = 3;
send_to_char("You have been outcasted from the Mages Guild!\n\r", victim);
}
else if ( IS_CLASS(ch,CLASS_VAMPIRE)
&& !str_cmp(victim->clan,ch->clan)
&& IS_CLASS(victim, CLASS_VAMPIRE) )
{
sprintf(buf,"%s has been outcasted from %s.", victim->name, victim->clan);
do_info(victim,buf);
victim->pcdata->condition[COND_THIRST] = 10000;
if ( IS_CLASS(victim, CLASS_VAMPIRE) ) do_unwerewolf(victim,"");
if ( IS_VAMPAFF(victim,VAM_DISGUISED) ) do_mask(victim,"self");
if ( IS_POLYAFF(victim,POLY_SERPENT) ) do_serpent(victim,"");
if (IS_VAMPAFF(victim,VAM_FANGS) )
{
send_to_char("Your fangs slide back into your gums.\n\r",victim);
act("$N's fangs slide back into $s gums.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FANGS);
}
if (IS_CLASS(victim, CLASS_VAMPIRE) && IS_VAMPAFF(victim,VAM_CLAWS) )
{
send_to_char("Your claws slide back under your nails.\n\r",victim);
act("$N's claws slide back under $s nails.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
if (IS_VAMPAFF(victim,VAM_NIGHTSIGHT) )
{
send_to_char("The red glow in your eyes fades.\n\r",victim);
act("The red glow in $N's eyes fades.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_NIGHTSIGHT);
}
if (IS_AFFECTED(victim,AFF_SHADOWSIGHT) )
{
send_to_char("You can no longer see between planes.\n\r",victim);
REMOVE_BIT(victim->affected_by, AFF_SHADOWSIGHT);
}
if (IS_IMMUNE(victim,IMM_SHIELDED) )
{
send_to_char("You stop shielding your aura.\n\r",victim);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
}
if (IS_VAMPAFF(victim,VAM_DISGUISED) )
{
free_string( victim->morph );
victim->morph = str_dup( victim->name );
send_to_char("You transform into yourself.\n\r", victim);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_DISGUISED);
}
if (IS_AFFECTED(victim,AFF_SHADOWPLANE) )
{
send_to_char("You fade back into the real world.\n\r",victim);
act("The shadows flicker and $N fades into existance.",ch,NULL,victim,TO_ROOM);
REMOVE_BIT(victim->affected_by,AFF_SHADOWPLANE);
do_look(victim,"auto");
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
send_to_char( "Your senses return to normal.\n\r", victim );
}
REMOVE_BIT(victim->special, SPC_INCONNU );
REMOVE_BIT(victim->special, SPC_ANARCH );
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->affected_by, AFF_POLYMORPH);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CHANGED);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_MIST);
REMOVE_BIT(victim->affected_by, AFF_ETHEREAL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FLYING);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SONIC);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_BAT);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_WOLF);
victim->pcdata->stats[UNI_RAGE] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
victim->pcdata->stats[UNI_GEN] = 0;
victim->pcdata->stats[UNI_AFF] = 0;
victim->pcdata->stats[UNI_CURRENT] = -1;
victim->pcdata->rank = 0;
victim->class = 0;
victim->beast = 15;
victim->pcdata->condition[COND_THIRST] = 0;
send_to_char("You have been outcasted!\n\r", victim);
}
else if ( IS_CLASS(ch, CLASS_WEREWOLF) && ch->pcdata->stats[UNI_GEN] == 2
&& !str_cmp(victim->clan,ch->clan) && IS_CLASS(victim, CLASS_WEREWOLF) )
{
sprintf(buf,"%s has been outcasted from %s.", victim->name, victim->clan);
do_info(victim,buf);
victim->pcdata->powers[WPOWER_BEAR] = 4;
victim->pcdata->powers[WPOWER_LYNX] = 4;
victim->pcdata->powers[WPOWER_BOAR] = 4;
victim->pcdata->powers[WPOWER_OWL] = 4;
victim->pcdata->powers[WPOWER_SPIDER] = 4;
victim->pcdata->powers[WPOWER_WOLF] = 4;
victim->pcdata->powers[WPOWER_HAWK] = 4;
victim->pcdata->powers[WPOWER_MANTIS] = 4;
victim->pcdata->powers[WPOWER_TIGER] = 4;
victim->pcdata->powers[WPOWER_GAIA] = 4;
do_unwerewolf(victim,"");
if (IS_VAMPAFF(victim,VAM_FANGS) )
{
send_to_char("Your talons slide back into your fingers.\n\r",victim);
act("$N's talons slide back into $s fingers.",ch,NULL,victim,TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
if (IS_VAMPAFF(victim,VAM_NIGHTSIGHT) )
{
send_to_char("The red glow in your eyes fades.\n\r",victim);
act("The red glow in $N's eyes fades.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_NIGHTSIGHT);
}
if (IS_AFFECTED(victim,AFF_SHADOWSIGHT) )
{
send_to_char("You can no longer see between planes.\n\r",victim);
REMOVE_BIT(victim->affected_by, AFF_SHADOWSIGHT);
}
if (IS_IMMUNE(victim,IMM_SHIELDED) )
{
send_to_char("You stop shielding your aura.\n\r",victim);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
}
if (IS_AFFECTED(victim,AFF_SHADOWPLANE) )
{
send_to_char("You fade back into the real world.\n\r",victim);
act("The shadows flicker and $N fades into existance.",ch,NULL,victim,TO_ROOM);
REMOVE_BIT(victim->affected_by,AFF_SHADOWPLANE);
do_look(victim,"auto");
}
if (IS_SET(victim->act, PLR_WIZINVIS) )
{
REMOVE_BIT(victim->act, PLR_WIZINVIS);
send_to_char( "You slowly fade into existence.\n\r", victim );
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
send_to_char( "Your senses return to normal.\n\r", victim );
}
REMOVE_BIT(victim->special, SPC_INCONNU );
REMOVE_BIT(victim->special, SPC_ANARCH );
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->affected_by, AFF_POLYMORPH);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CHANGED);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_MIST);
REMOVE_BIT(victim->affected_by, AFF_ETHEREAL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FLYING);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SONIC);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_BAT);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_WOLF);
victim->pcdata->powers[WPOWER_BEAR] = 0;
victim->pcdata->powers[WPOWER_LYNX] = 0;
victim->pcdata->powers[WPOWER_BOAR] = 0;
victim->pcdata->powers[WPOWER_OWL] = 0;
victim->pcdata->powers[WPOWER_SPIDER] = 0;
victim->pcdata->powers[WPOWER_WOLF] = 0;
victim->pcdata->powers[WPOWER_HAWK] = 0;
victim->pcdata->powers[WPOWER_MANTIS] = 0;
victim->pcdata->powers[WPOWER_TIGER] = 0;
victim->pcdata->powers[WPOWER_GAIA] = 0;
victim->pcdata->stats[UNI_RAGE] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
victim->pcdata->stats[UNI_GEN] = 0;
victim->pcdata->stats[UNI_AFF] = 0;
victim->pcdata->stats[UNI_CURRENT] = -1;
victim->pcdata->rank = 0;
victim->class = 0;
send_to_char("You have been outcasted!\n\r", victim);
}
else if ( IS_CLASS(ch, CLASS_NINJA) && ch->pcdata->stats[UNI_GEN] == 2
&& !str_cmp(victim->clan,ch->clan) && IS_CLASS(victim, CLASS_NINJA) )
{
sprintf(buf,"%s has been outcasted from %s.", victim->name, victim->clan);
do_info(victim,buf);
if ( IS_VAMPAFF(victim,VAM_CLAWS) )
{
send_to_char("You shove your iron claws up your sleeves\n\r",victim);
act("$N shoves $S iron claws up $e sleeves.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
if (IS_SET(victim->act, PLR_WIZINVIS) )
{
REMOVE_BIT(victim->act, PLR_WIZINVIS);
send_to_char( "You appear from the shadows.\n\r", victim );
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
send_to_char( "Your senses return to normal.\n\r", victim );
}
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->affected_by, AFF_POLYMORPH);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CHANGED);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_MIST);
REMOVE_BIT(victim->affected_by, AFF_ETHEREAL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FLYING);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SONIC);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_BAT);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_WOLF);
victim->pcdata->powers[NPOWER_SORA] = 0;
victim->pcdata->powers[NPOWER_CHIKYU] = 0;
victim->pcdata->powers[NPOWER_NINGENNO] = 0;
victim->pcdata->stats[UNI_RAGE] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
victim->pcdata->stats[UNI_GEN] = 0;
victim->pcdata->stats[UNI_AFF] = 0;
victim->pcdata->stats[UNI_CURRENT] = -1;
victim->pcdata->rank = 0;
victim->class = 0;
victim->trust = 0;
victim->level = 3;
send_to_char("You have been outcasted!\n\r", victim);
}
else if ( IS_CLASS(ch, CLASS_DROW) && ch->pcdata->stats[UNI_GEN] == 2
&& !str_cmp(victim->clan,ch->clan) && IS_CLASS(victim, CLASS_DROW) )
{
sprintf(buf,"%s has been outcasted from %s.", victim->name, victim->clan);
do_info(victim,buf);
reset_weapon(victim,0);
reset_weapon(victim,1);
reset_weapon(victim,2);
reset_weapon(victim,3);
reset_weapon(victim,4);
reset_weapon(victim,5);
reset_weapon(victim,6);
reset_weapon(victim,7);
reset_weapon(victim,8);
reset_weapon(victim,9);
reset_weapon(victim,10);
reset_weapon(victim,11);
reset_weapon(victim,12);
if (IS_VAMPAFF(victim,VAM_FANGS) )
{
send_to_char("Your fangs slide back into your gums.\n\r",victim);
act("$N's fangs slide back into $s gums.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FANGS);
}
if (IS_IMMUNE(victim,IMM_SHIELDED) )
{
send_to_char("You stop shielding your aura.\n\r",victim);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) || IS_SET(victim->act, PLR_DROWSIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
REMOVE_BIT(victim->act, PLR_DROWSIGHT);
send_to_char( "Your senses return to normal.\n\r", victim );
}
if (IS_AFFECTED(victim, AFF_DARKNESS))
{
REMOVE_BIT(victim->affected_by, AFF_DARKNESS);
send_to_char("The darkness around you fades away.\n\r",ch);
return;
}
victim->pcdata->powers[1] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->special, SPC_ANARCH);
REMOVE_BIT(victim->special, SPC_DROW_WAR );
REMOVE_BIT(victim->special, SPC_DROW_MAG );
REMOVE_BIT(victim->special, SPC_DROW_CLE );
victim->pcdata->stats[UNI_RAGE] = 0;
victim->class = 0;
send_to_char("You have been outcasted!\n\r", victim);
}
else if ( IS_CLASS(ch, CLASS_MONK) && ch->pcdata->stats[UNI_GEN] == 2
&& !str_cmp(victim->clan,ch->clan) && IS_CLASS(victim, CLASS_MONK) )
{
sprintf(buf,"%s has been outcasted from %s.", victim->name, victim->clan);
do_info(victim,buf);
reset_weapon(victim,0);
reset_weapon(victim,1);
reset_weapon(victim,2);
reset_weapon(victim,3);
reset_weapon(victim,4);
reset_weapon(victim,5);
reset_weapon(victim,6);
reset_weapon(victim,7);
reset_weapon(victim,8);
reset_weapon(victim,9);
reset_weapon(victim,10);
reset_weapon(victim,11);
reset_weapon(victim,12);
if (IS_SET(victim->act, PLR_WIZINVIS) )
{
REMOVE_BIT(victim->act, PLR_WIZINVIS);
send_to_char( "You appear from a shroud of light.\n\r", victim );
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
send_to_char( "Your view shimmers into mortal vision.\n\r", victim );
}
if (IS_IMMUNE(victim,IMM_SHIELDED) )
{
send_to_char("You stop shielding your aura.\n\r",victim);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
}
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->affected_by, AFF_POLYMORPH);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CHANGED);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_MIST);
REMOVE_BIT(victim->affected_by, AFF_ETHEREAL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FLYING);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SONIC);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_BAT);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_WOLF);
victim->pcdata->powers[PMONK] = 0;
victim->pcdata->stats[UNI_RAGE] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
victim->pcdata->stats[UNI_GEN] = 0;
victim->pcdata->stats[UNI_AFF] = 0;
victim->pcdata->stats[UNI_CURRENT] = -1;
victim->pcdata->rank = 0;
victim->class = 0;
victim->trust = 0;
victim->level = 3;
send_to_char("You have been outcasted!\n\r", victim);
}
else
send_to_char("They are not of your clan!\n\r", ch);
return;
}
*/
void do_level( CHAR_DATA *ch, char *argument )
{
char arg [MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
char skill [20];
char stance [20];
one_argument( argument, arg );
if (IS_NPC(ch))
return;
sprintf(buf, "{b---------------------------------------------------------------------{w\n\r");
send_to_char(buf,ch);
sprintf(buf," {bA{Bt{DD{W Level Sheet for{w %s{x\n\r", ch->name);
send_to_char(buf,ch);
sprintf(buf, "{b---------------------------------------------------------------------{w\n\r");
send_to_char(buf,ch);
sprintf(buf, " {WWeapons Skills{x\n\r\n\r");
send_to_char(buf,ch);
sprintf(buf, " {WUnarmed{D:{w %3d {BSlash{D:{w %3d {CSlice{D:{w %3d {MStab{D:{w %3d {YWhip{D: {w%3d\n\r",
ch->wpn[0], ch->wpn[3], ch->wpn[1], ch->wpn[2], ch->wpn[4]);
send_to_char(buf,ch);
sprintf(buf, " {wBlast{D:{w %3d {bClaw{D:{w %3d {cPound{D:{w %3d {mCrush{D:{w %3d {yGrep{D: {w%3d\n\r",
ch->wpn[6], ch->wpn[5], ch->wpn[7], ch->wpn[8], ch->wpn[9]);
send_to_char(buf,ch);
sprintf(buf, " #.Bite{D:{w %3d #.Suck{D:{w %3d #.Pierce{D:{w %3d{x\n\r",
ch->wpn[10], ch->wpn[12], ch->wpn[11]);
send_to_char(buf,ch);
sprintf(buf, "{b---------------------------------------------------------------------{w\n\r");
send_to_char(buf,ch);
sprintf(buf, " {WStances\n\r\n\r");
send_to_char(buf,ch);
sprintf(buf, " {RBull{D:{w %3d {CViper{D:{w %3d {YCrane{D:{w %3d {GCrab{D:{w %3d {MMongoose{D:{w %3d\n\r",
ch->stance[STANCE_BULL], ch->stance[STANCE_VIPER], ch->stance[STANCE_CRANE], ch->stance[STANCE_CRAB], ch->stance[STANCE_MONGOOSE]);
send_to_char(buf,ch);
sprintf(buf, " {yTiger{D:{w %3d {gMantis{D:{w %3d {cDragon{D:{w %3d {mSwallow{D:{w %3d {bMonkey{D:{w %3d\n\r",
ch->stance[STANCE_TIGER], ch->stance[STANCE_MANTIS], ch->stance[STANCE_DRAGON], ch->stance[STANCE_SWALLOW], ch->stance[STANCE_MONKEY]);
send_to_char(buf,ch);
sprintf(buf, " #.Rabbit{D:{w%3d #.Cobra{D:{w %3d #.Bear{D:{w %3d #.Eagle{D:{w %3d #.Cougar{D:{w %3d\n\r",
ch->stance[STANCE_RABBIT], ch->stance[STANCE_COBRA], ch->stance[STANCE_BEAR], ch->stance[STANCE_EAGLE], ch->stance[STANCE_COUGAR]);
send_to_char(buf,ch);
sprintf(buf, "{b---------------------------------------------------------------------{w\n\r");
send_to_char(buf,ch);
sprintf(buf, " {WSpells\n\r\n\r");
send_to_char(buf,ch);
sprintf(buf, " #PPurple{D:{w %3d #RRed{D:{w %3d #G Green{D:{w %3d #BBlue{D:{w %3d #yYellow{D:{w %3d\n\r",
ch->spl[0], ch->spl[1], ch->spl[3], ch->spl[2], ch->spl[4]);
send_to_char(buf,ch);
sprintf(buf, "{b---------------------------------------------------------------------{w\n\r");
send_to_char(buf,ch);
sprintf(buf, " {WMisc and Class{w\n\r\n\r");
send_to_char(buf,ch);
sprintf(skill, " {wRecall Room : %d \n\r",ch->home);
send_to_char( skill, ch );
if ( ch->pcdata->autostance == 1 )
sprintf(stance, " {wViper" );
else if ( ch->pcdata->autostance == 2 )
sprintf(stance, " {wCrane" );
else if ( ch->pcdata->autostance == 3 )
sprintf(stance, " Crab" );
else if ( ch->pcdata->autostance == 4 )
sprintf(stance, " Mongoose" );
else if ( ch->pcdata->autostance == 5 )
sprintf(stance, " Bull" );
else if ( ch->pcdata->autostance == 6 )
sprintf(stance, " Mantis" );
else if ( ch->pcdata->autostance == 7 )
sprintf(stance, " Dragon" );
else if ( ch->pcdata->autostance == 8 )
sprintf(stance, " Tiger" );
else if ( ch->pcdata->autostance == 9 )
sprintf(stance, " Monkey" );
else if ( ch->pcdata->autostance == 10 )
sprintf(stance, " Swallow" );
else if ( ch->pcdata->autostance == 11 )
sprintf(stance, " Rabbit" );
else if ( ch->pcdata->autostance == 12 )
sprintf( stance, " Cobra");
else if ( ch->pcdata->autostance == 13 )
sprintf( stance, " Bear");
else if ( ch->pcdata->autostance == 14 )
sprintf( stance, " Cougar");
else if ( ch->pcdata->autostance == 15 )
sprintf( stance, " Eagle");
else if ( ch->pcdata->autostance == -1 || ch->pcdata->autostance == 16 )
sprintf(stance, " None" );
else
sprintf(stance, " None" );
sprintf(buf, " {WAutostance{D:{w %s {w\n\r",stance);
send_to_char(buf, ch);
if ( IS_CLASS(ch, CLASS_DEMON) )
send_to_char(" {wYou are a demon! \n\r", ch);
if ( IS_CLASS(ch, CLASS_MAGE) )
send_to_char(" {wYou are a mage! \n\r", ch);
if ( IS_CLASS(ch, CLASS_WEREWOLF) )
send_to_char(" {wYou are a werewolf! \n\r", ch);
if ( IS_CLASS(ch, CLASS_NINJA) )
send_to_char(" {wYou are a ninja! \n\r", ch);
if ( IS_CLASS(ch, CLASS_VAMPIRE) )
send_to_char(" {wYou are a vampire! \n\r", ch);
if ( IS_CLASS(ch, CLASS_HIGHLANDER) )
send_to_char(" {wYou are a highlander! \n\r", ch);
if ( IS_CLASS(ch, CLASS_DROW) )
send_to_char(" {wYou are a drow! \n\r", ch);
if ( IS_CLASS(ch, CLASS_PALADIN) )
send_to_char(" {wYou are a paladin! \n\r", ch);
if ( IS_CLASS(ch, CLASS_DRAGON) )
send_to_char(" {wYou are a dragon! \n\r", ch);
if (IS_CLASS(ch, CLASS_VAMPIRE) )
{
ch_printf( ch, " {WGeneration {D:{w %d \n\r",
ch->pcdata->stats[UNI_GEN]);
if (ch->pcdata->rank == AGE_METHUSELAH)
send_to_char(" You are a Methuselah! \n\r", ch);
else if (ch->pcdata->rank == AGE_ELDER)
send_to_char(" You are an Elder! \n\r", ch);
else if (ch->pcdata->rank == AGE_ANCILLA)
send_to_char(" You are an Ancilla! \n\r", ch);
else if (ch->pcdata->rank == AGE_NEONATE)
send_to_char(" You are a Neonate! \n\r", ch);
else
send_to_char(" You are a Childe! \n\r", ch);
if ( IS_SET(ch->special, SPC_PRINCE) )
send_to_char(" You are a prince! \n\r", ch);
}
if (IS_CLASS(ch, CLASS_NINJA) )
{
char * belt;
switch( GET_GEN(ch) )
{
case BELT_ONE: belt = "first belt"; break;
case BELT_TWO: belt = "second belt"; break;
case BELT_THREE: belt = "third belt"; break;
case BELT_FOUR: belt = "fourth belt"; break;
case BELT_FIVE: belt = "fifth belt"; break;
case BELT_SIX: belt = "sixth belt"; break;
case BELT_SEVEN: belt = "seventh belt"; break;
case BELT_EIGHT: belt = "belt eight"; break;
case BELT_NINE: belt = "student"; break;
default:
case BELT_TEN: belt = "apprentice"; break;
}
ch_printf( ch, " {WGeneration {D:{w %s\n\r", belt );
if ( IS_SET(ch->special, SPC_PRINCE) )
send_to_char("You can discipline people!\n\r", ch);
}
if (IS_CLASS(ch, CLASS_WEREWOLF) )
{
sprintf(skill, " {WGeneration {D:{w %d \n\r", ch->pcdata->stats[UNI_GEN]);
send_to_char( skill, ch );
if ( IS_SET(ch->special, SPC_SIRE) && ch->pcdata->stats[UNI_GEN] > 2 )
send_to_char(" You are able to spread the gift! \n\r", ch);
if ( IS_SET(ch->special, SPC_PRINCE) && ch->pcdata->stats[UNI_GEN] > 2 )
send_to_char(" You are a shaman! \n\r", ch);
}
sprintf(buf, "{b---------------------------------------------------------------------{w\n\r");
send_to_char(buf,ch);
return;
}
void do_class( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
char arg1 [MAX_INPUT_LENGTH];
char arg2 [MAX_INPUT_LENGTH];
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
if ( IS_NPC(ch) ) return;
if ( arg1[0] == '\0' || arg2[0] == '\0' )
{
send_to_char( "Syntax: class <char> <class>.\n\r", ch );
send_to_char(" Classes:\n\r", ch );
send_to_char("None, ", ch);
send_to_char("Demon, ", ch);
send_to_char("Demon Lord , ", ch);
send_to_char("Purple Mage, Blue Mage, Yellow Mage, Green Mage, Red Mage, ", ch);
send_to_char("Werewolf, ", ch);
send_to_char("Vampire, ", ch);
send_to_char("Highlander, ", ch);
send_to_char("Angel, ", ch);
//stc("Dragon.",ch);
return;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "That player is not here.\n\r", ch);
return;
}
if( IS_NPC(victim ) )
{
stc("Not on NPC's.\n\r",ch );
return;
}
if ((victim->class != 0) && str_cmp(arg2, "none") )
{
stc("You must clear their class first.\n\r", ch);
stc("Class <victim> none.\n\r", ch);
return;
}
if ( !str_cmp( arg2, "none" ) )
{
/* Used to make sure the person has enough "stuff" to change */
victim->pcdata->condition[COND_THIRST] = 10000;
victim->move = 10000;
victim->mana = 10000;
victim->pcdata->powers[WPOWER_BEAR] = 4;
victim->pcdata->powers[WPOWER_LYNX] = 4;
victim->pcdata->powers[WPOWER_BOAR] = 4;
victim->pcdata->powers[WPOWER_OWL] = 4;
victim->pcdata->powers[WPOWER_SPIDER] = 4;
victim->pcdata->powers[WPOWER_WOLF] = 4;
victim->pcdata->powers[WPOWER_HAWK] = 4;
victim->pcdata->powers[WPOWER_MANTIS] = 4;
victim->pcdata->powers[WPOWER_TIGER] = 4;
victim->pcdata->powers[WPOWER_GAIA] = 4;
if ( IS_CLASS(victim, CLASS_WEREWOLF)
|| IS_CLASS(victim, CLASS_VAMPIRE) ) do_unwerewolf(victim,"");
if (IS_VAMPAFF(victim,VAM_DISGUISED) ) do_mask(victim,"self");
victim->pcdata->stats[UNI_FORM0] = 0;
free_string( victim->clan );
/* All classes in general */
if (IS_VAMPAFF(victim,VAM_FANGS) )
{
send_to_char("Your fangs slide back into your gums.\n\r",victim);
act("$n's fangs slide back into $s gums.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FANGS);
}
if (IS_CLASS(victim, CLASS_VAMPIRE) && IS_VAMPAFF(victim,VAM_CLAWS) )
{
send_to_char("Your claws slide back under your nails.\n\r",victim);
act("$N's claws slide back under $s nails.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
else if (IS_CLASS(victim, CLASS_NINJA) && IS_VAMPAFF(victim,VAM_CLAWS) )
{
send_to_char("You shove your iron claws up your sleeves\n\r",victim);
act("$N shoves $S iron claws up $e sleeves.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
else if (IS_CLASS(victim, CLASS_WEREWOLF) && IS_VAMPAFF(victim,VAM_CLAWS) )
{
send_to_char("Your talons slide back into your fingers.\n\r",victim);
act("$N's talons slide back into $s fingers.",ch,NULL,victim,TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
}
if (IS_VAMPAFF(victim,VAM_NIGHTSIGHT) )
{
send_to_char("The red glow in your eyes fades.\n\r",victim);
act("The red glow in $N's eyes fades.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_NIGHTSIGHT);
}
if (IS_AFFECTED(victim,AFF_SHADOWSIGHT) )
{
send_to_char("You can no longer see between planes.\n\r",victim);
REMOVE_BIT(victim->affected_by, AFF_SHADOWSIGHT);
}
if (IS_ITEMAFF(victim,ITEMA_SUNSHIELD) )
{
send_to_char("Your Halo of the Sun gradually fades away.\n\r",victim);
REMOVE_BIT(victim->itemaffect, ITEMA_SUNSHIELD);
}
if (IS_ITEMAFF(victim,ITEMA_ANGHALO) )
{
send_to_char("Your Halo gradually fades away.\n\r",victim);
REMOVE_BIT(victim->itemaffect, ITEMA_ANGHALO);
}
if (IS_IMMUNE(victim,IMM_SHIELDED) )
{
send_to_char("You stop shielding your aura.\n\r",victim);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
}
if (IS_VAMPAFF(victim,VAM_DISGUISED) )
{
free_string( victim->morph );
victim->morph = str_dup( victim->name );
send_to_char("You transform into yourself.\n\r", victim);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_DISGUISED);
}
if (IS_AFFECTED(victim,AFF_SHADOWPLANE) )
{
send_to_char("You fade back into the real world.\n\r",victim);
act("The shadows flicker and $N fades into existance.",ch,NULL,victim,TO_ROOM);
REMOVE_BIT(victim->affected_by,AFF_SHADOWPLANE);
do_look(ch,"auto");
}
if (IS_SET(victim->act, PLR_WIZINVIS) )
{
REMOVE_BIT(victim->act, PLR_WIZINVIS);
send_to_char( "You slowly fade into existence.\n\r", victim );
}
if (IS_SET(victim->act, PLR_HOLYLIGHT) )
{
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
REMOVE_BIT(victim->act, PLR_DROWSIGHT);
send_to_char( "Your senses return to normal.\n\r", victim );
}
/* Demon Stuff */
if (IS_DEMAFF(victim,DEM_HORNS) && IS_CLASS(victim, CLASS_DEMON) )
{
send_to_char("Your horns slide back into your head.\n\r",victim);
act("$N's horns slide back into $s head.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_HORNS);
}
if (IS_DEMAFF(victim,DEM_HOOVES) && IS_CLASS(victim, CLASS_DEMON) )
{
send_to_char("Your hooves transform into feet.\n\r",victim);
act("$N's hooves transform back into $s feet.", ch, NULL,victim,TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_HOOVES);
}
if (IS_DEMAFF(victim,DEM_WINGS) && IS_CLASS(victim, CLASS_DEMON) )
{
if (IS_DEMAFF(victim,DEM_UNFOLDED) && IS_CLASS(victim, CLASS_DEMON) )
{
send_to_char("Your wings fold up behind your back.\n\r",victim);
act("$N's wings fold up behind $s back.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_UNFOLDED);
}
send_to_char("Your wings slide into your back.\n\r",victim);
act("$N's wings slide into $s back.", ch, NULL, victim, TO_ROOM);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_WINGS);
}
if ( IS_EXTRA(victim, EXTRA_OSWITCH) )
{
do_humanform(victim,"");
}
REMOVE_BIT(victim->affected_by, AFF_SHADOWPLANE);
REMOVE_BIT(victim->affected_by, AFF_POLYMORPH);
REMOVE_BIT(victim->act, PLR_HOLYLIGHT);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FANGS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_NIGHTSIGHT);
REMOVE_BIT(victim->affected_by, AFF_SHADOWSIGHT);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_PROTEAN);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_VICISSITUDE);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CELERITY);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FORTITUDE);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_POTENCE);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_OBTENEBRATION);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SERPENTIS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_AUSPEX);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_DOMINATE);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_PRESENCE);
REMOVE_BIT(victim->newbits, NEW_OBEAH);
REMOVE_BIT(victim->polyaff, POLY_ZULO);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_DISGUISED);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FLYING);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SONIC);
REMOVE_BIT(victim->polyaff, POLY_BAT);
REMOVE_BIT(victim->polyaff, POLY_MIST);
REMOVE_BIT(victim->affected_by, AFF_ETHEREAL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CHANGED);
REMOVE_BIT(victim->extra, EXTRA_FAKE_CON);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_MORTAL);
REMOVE_BIT(victim->immune, IMM_SHIELDED);
REMOVE_BIT(victim->polyaff, POLY_SERPENT);
REMOVE_BIT(victim->special, SPC_WOLFMAN);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CLAWS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FANGS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_NIGHTSIGHT);
REMOVE_BIT(victim->newbits, NEW_NOPAIN);
REMOVE_BIT(ch->newbits, NEW_NEUTRAL);
REMOVE_BIT(victim->special, SPC_DEMON_LORD);
REMOVE_BIT(victim->warp, WARP_CBODY);
REMOVE_BIT(victim->warp, WARP_SBODY);
REMOVE_BIT(victim->warp, WARP_STRONGARMS);
REMOVE_BIT(victim->warp, WARP_STRONGLEGS);
REMOVE_BIT(victim->warp, WARP_VENOMTONG);
REMOVE_BIT(victim->warp, WARP_SPIKETAIL);
REMOVE_BIT(victim->warp, WARP_BADBREATH);
REMOVE_BIT(victim->warp, WARP_QUICKNESS);
REMOVE_BIT(victim->warp, WARP_STAMINA);
REMOVE_BIT(victim->warp, WARP_HUNT);
REMOVE_BIT(victim->warp, WARP_DAMCAP);
REMOVE_BIT(victim->warp, WARP_TERROR);
REMOVE_BIT(victim->warp, WARP_REGEN);
REMOVE_BIT(victim->warp, WARP_STEED);
REMOVE_BIT(victim->warp, WARP_WEAPON);
REMOVE_BIT(victim->warp, WARP_INFIRMITY);
REMOVE_BIT(victim->warp, WARP_GBODY);
REMOVE_BIT(victim->warp, WARP_SCARED);
REMOVE_BIT(victim->warp, WARP_MAGMA);
REMOVE_BIT(victim->warp, WARP_WEAK);
REMOVE_BIT(victim->warp, WARP_SLOW);
REMOVE_BIT(victim->warp, WARP_VULNER);
REMOVE_BIT(victim->warp, WARP_SHARDS);
REMOVE_BIT(victim->warp, WARP_WINGS);
REMOVE_BIT(victim->warp, WARP_CLUMSY);
REMOVE_BIT(victim->warp, WARP_STUPID);
REMOVE_BIT(victim->warp, WARP_SPOON);
REMOVE_BIT(victim->warp, WARP_FORK);
REMOVE_BIT(victim->warp, WARP_KNIFE);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_HORNS);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_TAIL);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_HOOVES);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_UNFOLDED);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_UNFOLDED);
REMOVE_BIT(victim->pcdata->powers[DPOWER_CURRENT], DEM_WINGS);
REMOVE_BIT(victim->extra, EXTRA_OSWITCH);
REMOVE_BIT(victim->newbits, NEW_DROWHATE);
REMOVE_BIT(victim->polyaff, POLY_SPIDERFORM);
REMOVE_BIT(victim->newbits, NEW_DARKNESS);
REMOVE_BIT(victim->monkstuff, MONK_DEATH);
REMOVE_BIT(victim->monkstuff, MONK_HEAL);
REMOVE_BIT(victim->garou1, WOLF_COCOON);
REMOVE_BIT(victim->newbits, NEW_QUILLS);
REMOVE_BIT(victim->garou1, WOLF_RAZORCLAWS);
REMOVE_BIT(victim->garou1, WW_GRANITE);
REMOVE_BIT(victim->garou1, GAROU_CLENCHED);
REMOVE_BIT(victim->garou1, GAROU_AVENGER);
REMOVE_BIT( victim->affected_by, AFF_STEELSHIELD );
REMOVE_BIT(victim->newbits, NEW_MONKFLAME);
REMOVE_BIT(victim->newbits, NEW_MONKADAM);
REMOVE_BIT(victim->newbits, NEW_POWER);
REMOVE_BIT(victim->act, PLR_WIZINVIS);
REMOVE_BIT(victim->extra, EXTRA_STANCE);
REMOVE_BIT(victim->act, OLD_PLR_DEMON);
REMOVE_BIT(victim->act, OLD_PLR_CHAMPION);
REMOVE_BIT(victim->extra, OLD_EXTRA_SIRE);
REMOVE_BIT( victim->extra, OLD_EXTRA_PRINCE );
REMOVE_BIT(victim->extra, OLD_EXTRA_PRINCE);
REMOVE_BIT(victim->act, OLD_PLR_WEREWOLF);
REMOVE_BIT(victim->act, OLD_PLR_WOLFMAN);
REMOVE_BIT(victim->extra, OLD_EXTRA_SIRE);
REMOVE_BIT( victim->extra, OLD_EXTRA_PRINCE );
REMOVE_BIT( victim->extra, OLD_EXTRA_ANARCH );
REMOVE_BIT( victim->extra, OLD_EXTRA_INCONNU );
REMOVE_BIT(victim->act, OLD_PLR_VAMPIRE);
REMOVE_BIT(victim->extra, OLD_EXTRA_HIGHLANDER);
REMOVE_BIT( victim->extra, OLD_EXTRA_PRINCE );
REMOVE_BIT( victim->extra, OLD_EXTRA_ANARCH );
REMOVE_BIT( victim->extra, OLD_EXTRA_INCONNU );
REMOVE_BIT(victim->act, OLD_PLR_VAMPIRE);
REMOVE_BIT(victim->extra, EXTRA_POTENCY);
REMOVE_BIT(victim->newbits, NEW_TIDE);
REMOVE_BIT(victim->flag2, AFF2_SPIRITGUARD);
REMOVE_BIT(victim->flag2, AFF2_IMP);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_HORNS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_WINGS);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_EXOSKELETON);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_TAIL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_HEAD);
REMOVE_BIT(victim->flag2, VAMP_OBJMASK);
REMOVE_BIT(victim->extra, EXTRA_AWE);
REMOVE_BIT(victim->extra,EXTRA_DRAGON);
REMOVE_BIT(victim->extra, EXTRA_PLASMA);
REMOVE_BIT(victim->newbits, NEW_COIL);
REMOVE_BIT(victim->affected_by, AFF_SHIFT);
REMOVE_BIT(victim->extra, EXTRA_EARTHMELD);
REMOVE_BIT(victim->extra, EXTRA_ASH);
REMOVE_BIT(victim->affected_by, AFF_SHADOWSIGHT);
REMOVE_BIT(victim->mflags, MAGE_POLYAPPEAR);
REMOVE_BIT(victim->mflags, MAGE_TELEKINETICS);
REMOVE_BIT(victim->mflags, MFLAGS_DIMMAK);
REMOVE_BIT(victim->mflags, MAGE_BETTERBODY);
REMOVE_BIT(victim->mflags, MAGE_SHAPED);
REMOVE_BIT(victim->special, SPC_CHAMPION );
REMOVE_BIT(victim->special, SPC_INCONNU );
REMOVE_BIT(victim->special, SPC_ANARCH );
REMOVE_BIT(victim->special, SPC_SIRE);
REMOVE_BIT(victim->special, SPC_PRINCE);
REMOVE_BIT(victim->special, SPC_DEMON_LORD);
REMOVE_BIT(victim->special, SPC_DROW_WAR );
REMOVE_BIT(victim->special, SPC_DROW_MAG );
REMOVE_BIT(victim->special, SPC_DROW_CLE );
REMOVE_BIT(victim->affected_by, AFF_POLYMORPH);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_CHANGED);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_MIST);
REMOVE_BIT(victim->affected_by, AFF_ETHEREAL);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_FLYING);
REMOVE_BIT(victim->pcdata->stats[UNI_AFF], VAM_SONIC);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_BAT);
REMOVE_BIT(victim->pcdata->powers[WOLF_POLYAFF], POLY_WOLF);
REMOVE_BIT(ch->newbits, NEW_POWER);
victim->warpcount = 0;
victim->monkstuff = 0;
victim->monkcrap = 0;
victim->spheres[MCOR] = 0;
victim->monkab[SPIRIT] = 0;
victim->monkab[BODY] = 0;
victim->monkab[COMBAT] = 0;
victim->monkab[AWARE] = 0;
victim->spheres[MLIF] = 0;
victim->spheres[MPRI] = 0;
victim->spheres[MENT] = 0;
victim->spheres[MMIN] = 0;
victim->spheres[MSPI] = 0;
victim->spheres[MFOR] = 0;
victim->spheres[MMAT] = 0;
victim->spheres[MTIM] = 0;
victim->pcdata->powers[DPOWER_FLAGS] = 0;
victim->pcdata->stats[DEMON_TOTAL] = 0;
victim->pcdata->stats[DEMON_CURRENT] = 0;
victim->pcdata->powers[WPOWER_BEAR] = 0;
victim->pcdata->powers[WPOWER_LYNX] = 0;
victim->pcdata->powers[WPOWER_BOAR] = 0;
victim->pcdata->powers[WPOWER_OWL] = 0;
victim->pcdata->powers[WPOWER_SPIDER] = 0;
victim->pcdata->powers[WPOWER_WOLF] = 0;
victim->pcdata->powers[WPOWER_HAWK] = 0;
victim->pcdata->powers[WPOWER_MANTIS] = 0;
victim->pcdata->powers[WPOWER_TIGER] = 0;
victim->pcdata->powers[WPOWER_GAIA] = 0;
victim->pcdata->powers[VAM_ANIM] = 0;
victim->gifts[STARGAZERS] = 0;
victim->gifts[HOMID] = 0;
victim->gifts[METIS] = 0;
victim->gifts[LUPUS] = 0;
victim->gifts[RAGABASH] = 0;
victim->gifts[THEURGE] = 0;
victim->gifts[PHILODOX] = 0;
victim->gifts[GALLIARD] = 0;
victim->gifts[AHROUN] = 0;
victim->gifts[BLACKFURIES] = 0;
victim->gifts[BONEGNAWERS] = 0;
victim->gifts[CHILDREN] = 0;
victim->gifts[CHILDRENOFGAIA] = 0;
victim->gifts[FIANNA] = 0;
victim->gifts[GETOFFENRIS] = 0;
victim->gifts[GLASSWALKERS] = 0;
victim->gifts[REDTALONS] = 0;
victim->gifts[SHADOWLORDS] = 0;
victim->gifts[SILENTSTRIDERS] = 0;
victim->gifts[SILVERFANGS] = 0;
victim->gifts[UKTENA] = 0;
victim->gifts[WENDIGO] = 0;
victim->pcdata->powers[VAM_OBTE] = 0;
victim->pcdata->powers[VAM_THAU] = 0;
victim->pcdata->powers[VAM_OBFU] = 0;
victim->pcdata->powers[VAM_SERP] = 0;
victim->pcdata->powers[VAM_CHIM] = 0;
victim->pcdata->powers[VAM_NECR] = 0;
victim->pcdata->powers[VAM_CELE] = 0;
victim->pcdata->powers[VAM_PRES] = 0;
victim->pcdata->powers[VAM_AUSP] = 0;
victim->pcdata->powers[VAM_POTE] = 0;
victim->pcdata->powers[VAM_VICI] = 0;
victim->pcdata->powers[VAM_OBEA] = 0;
victim->pcdata->powers[VAM_FORT] = 0;
victim->pcdata->powers[VAM_QUIE] = 0;
victim->pcdata->powers[VAM_DOMI] = 0;
victim->pcdata->powers[VAM_PROT] = 0;
victim->pcdata->powers[VAM_DAIM] = 0;
victim->pcdata->powers[VAM_MELP] = 0;
victim->pcdata->powers[VAM_THAN] = 0;
victim->pcdata->powers[NPOWER_SORA] = 0;
victim->pcdata->powers[NPOWER_CHIKYU] = 0;
victim->pcdata->powers[NPOWER_NINGENNO] = 0;
victim->pcdata->powers[1] = 0;
victim->pcdata->condition[COND_THIRST] = 0;
victim->move = victim->max_move;
victim->mana = victim->max_mana;
victim->hit = victim->max_hit;
victim->pcdata->rank = 0;
victim->pcdata->stats[UNI_RAGE] = 0;
free_string(victim->lord);
victim->lord = str_dup( "" );
free_string(victim->clan);
victim->clan = str_dup( "" );
victim->pcdata->stats[UNI_GEN] = 0;
victim->pcdata->stats[UNI_AFF] = 0;
victim->pcdata->stats[UNI_CURRENT] = -1;
victim->beast = 15;
victim->class = 0;
if ( !IS_IMMORTAL(victim) )
{
victim->trust = 0;
victim->level = 2;
}
clear_stats(victim);
send_to_char("You are classless now!\n\r", victim);
}
else if ( !str_cmp( arg2, "demon" ) )
{
victim->class = 1;
if (!IS_IMMORTAL(victim) )
victim->level = 3;
SET_BIT( victim->special, SPC_CHAMPION );
free_string( victim->lord );
victim->lord=str_dup(ch->name);
send_to_char("You are now a demon!\n\r", victim);
}
/*
else if ( !str_cmp( arg2, "dragon" ) )
{
victim->class = CLASS_DRAGON;
victim->pcdata->disc_a[DRAGON_AGE] = HATCHLING;
victim->pcdata->disc_a[DRAGON_COLOR] = number_range(1,9);
stc("You are now a dragon.\n\r",victim);
}
else if ( !str_cmp( arg2, "dragon" ) )
{
victim->class = CLASS_DRAGON;
victim->pcdata->dragonage = HATCHLING;
stc("You are now a dragon.\n\r",victim);
} */
else if ( !str_cmp( arg2, "demon lord" ) )
{
victim->class = 1;
if (!IS_IMMORTAL(victim) )
victim->level = 3;
SET_BIT( victim->special, SPC_DEMON_LORD );
free_string( victim->lord );
victim->lord=str_dup(victim->name);
send_to_char("You are now a Demon Lord!\n\r", victim);
}
else if ( !str_cmp( arg2, "angel" ) )
{
victim->class = CLASS_ANGEL;
stc("You are now an angel!\n\r",victim);
}
else if ( !str_cmp( arg2, "priest" ) )
{
victim->class = CLASS_PRIEST;
stc("You are now a Priest!\n\r",victim);
}
else if ( !str_cmp( arg2, "bard" ) )
{
victim->class = CLASS_BARD;
stc("You are now a Bard!\n\r",victim);
}
else if ( !str_cmp( arg2, "ranger" ) )
{
victim->class = CLASS_RANGER;
stc("You are now a Ranger!\n\r",victim);
}
else if ( !str_cmp( arg2, "purple mage" ) )
{
victim->class = 2;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
victim->pcdata->powers[MPOWER_RUNE0] = 0;
victim->pcdata->powers[MPOWER_RUNE1] = 2047;
victim->pcdata->powers[MPOWER_RUNE2] = 1023;
victim->pcdata->powers[MPOWER_RUNE3] = 15;
send_to_char("You are now a purple mage!\n\r", victim);
}
else if ( !str_cmp( arg2, "red mage" ) )
{
victim->class = 2;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
victim->pcdata->powers[MPOWER_RUNE0] = 1;
victim->pcdata->powers[MPOWER_RUNE1] = 2047;
victim->pcdata->powers[MPOWER_RUNE2] = 1023;
victim->pcdata->powers[MPOWER_RUNE3] = 15;
send_to_char("You are now a red mage!\n\r", victim);
}
else if ( !str_cmp( arg2, "yellow mage" ) )
{
victim->class = 2;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
victim->pcdata->powers[MPOWER_RUNE0] = 4;
victim->pcdata->powers[MPOWER_RUNE1] = 2047;
victim->pcdata->powers[MPOWER_RUNE2] = 1023;
victim->pcdata->powers[MPOWER_RUNE3] = 15;
send_to_char("You are now a yellow mage!\n\r", victim);
}
else if ( !str_cmp( arg2, "blue mage" ) )
{
victim->class = 2;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
victim->pcdata->powers[MPOWER_RUNE0] = 2;
victim->pcdata->powers[MPOWER_RUNE1] = 2047;
victim->pcdata->powers[MPOWER_RUNE2] = 1023;
victim->pcdata->powers[MPOWER_RUNE3] = 15;
send_to_char("You are now a blue mage!\n\r", victim);
}
else if ( !str_cmp( arg2, "green mage" ) )
{
victim->class = 2;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
victim->pcdata->powers[MPOWER_RUNE0] = 3;
victim->pcdata->powers[MPOWER_RUNE1] = 2047;
victim->pcdata->powers[MPOWER_RUNE2] = 1023;
victim->pcdata->powers[MPOWER_RUNE3] = 15;
send_to_char("You are now a green mage!\n\r", victim);
}
else if ( !str_cmp( arg2, "werewolf" ) )
{
victim->class = 4;
if (!IS_IMMORTAL(victim) )
victim->level = 3;
send_to_char("You are now a werewolf!\n\r", victim);
}
/*
else if ( !str_cmp( arg2, "abomination" ))
{
victim->class = 3;
if (!IS_IMMORTAL(victim) )
victim->level = 3;
send_to_char("You are now an abomination!\n\r", victim);
}
*/
else if ( !str_cmp( arg2, "vampire" ) )
{
victim->class = 8;
if (!IS_IMMORTAL(victim) )
victim->level = 3;
send_to_char("You are now a vampire!\n\r", victim);
}
else if ( !str_cmp( arg2, "highlander" ) )
{
victim->class = 16;
if (!IS_IMMORTAL(victim) )
victim->level = 3;
send_to_char("You are now a highlander!\n\r", victim);
}
else if ( !str_cmp( arg2, "ninja" ) )
{
victim->class = 128;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
send_to_char("You are now a ninja!\n\r", victim);
}
else if ( !str_cmp( arg2, "monk" ) )
{
victim->class = 512;
if ( victim->trust > 6 )
{
victim->trust = victim->trust;
victim->level = victim->level;
}
else
{
victim->trust = 6;
victim->level = 6;
}
send_to_char("You are now a monk!\n\r", victim);
}
else if ( !str_cmp( arg2, "drow" ) )
{
victim->class = 32;
if (!IS_IMMORTAL(victim) )
ch->level = 3;
send_to_char("You are now a drow!\n\r", victim);
}
/*
else if ( !str_cmp( arg2, "paladin" ) )
{
victim->class = 256;
send_to_char("You are now a paladin!\n\r", victim);
}
*/
else
{
send_to_char( "Syntax: class <char> <class>.\n\r", ch );
send_to_char(" Classes:\n\r", ch );
send_to_char("None, ", ch);
send_to_char("Demon, ", ch);
send_to_char("Demon Lord , ", ch);
send_to_char("Purple Mage, Blue Mage, Yellow Mage, Green Mage, Red Mage, ", ch);
send_to_char("Werewolf, ", ch);
send_to_char("Vampire, ", ch);
send_to_char("Ninja, ", ch);
send_to_char("Monk, ", ch);
send_to_char("Highlander, ", ch);
send_to_char("Drow. ", ch);
return;
}
send_to_char("Class Set.\n\r",ch);
return;
}
void do_generation( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
int gen;
char arg1 [MAX_INPUT_LENGTH];
char arg2 [MAX_INPUT_LENGTH];
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
if ( IS_NPC(ch) ) return;
if ( arg1[0] == '\0' || arg2[0] == '\0' )
{
send_to_char( "Syntax: generation <char> <generation>.\n\r", ch );
send_to_char("Generation 1 is a Master <Class> and 2 is clan leader.\n\r", ch);
return;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "That player is not here.\n\r", ch);
return;
}
gen = is_number( arg2 ) ? atoi( arg2 ) : -1;
send_to_char("Generation Set.\n\r",ch);
victim->pcdata->stats[UNI_GEN] = gen;
return;
}
/*
void do_autostance( CHAR_DATA *ch, char *argument )
{
char arg [MAX_INPUT_LENGTH];
int selection;
one_argument( argument, arg );
if (IS_NPC(ch)) return;
if (!str_cmp(arg,"none") )
{
selection = STANCE_NONE;
send_to_char("You're autostance has been removed.\n\r",ch);
REMOVE_BIT(ch->extra, EXTRA_STANCE);
}
else if (!str_cmp(arg,"viper") )
{
selection = STANCE_VIPER;
send_to_char("Viper stance set.\n\r",ch);
}
else if (!str_cmp(arg,"crane") )
{
selection = STANCE_CRANE;
send_to_char("Crane stance set.\n\r",ch);
}
else if (!str_cmp(arg,"crab") )
{
selection = STANCE_CRAB;
send_to_char("Crab stance set.\n\r",ch);
}
else if (!str_cmp(arg,"mongoose"))
{
selection = STANCE_MONGOOSE;
send_to_char("Mongoose stance set.\n\r",ch);
}
else if (!str_cmp(arg,"bull") )
{
selection = STANCE_BULL;
send_to_char("Bull stance set.\n\r",ch);
}
else
{
if (!str_cmp(arg,"mantis") && ch->stance[STANCE_CRANE] >= 200 &&
ch->stance[STANCE_VIPER] >= 200)
{
selection = STANCE_MANTIS;
send_to_char("Mantis stance set.\n\r",ch);
}
else if (!str_cmp(arg,"dragon") && ch->stance[STANCE_BULL] >= 200 &&
ch->stance[STANCE_CRAB] >= 200)
{
selection = STANCE_DRAGON;
send_to_char("Dragon stance set.\n\r",ch);
}
else if (!str_cmp(arg,"tiger") && ch->stance[STANCE_BULL] >= 200 &&
ch->stance[STANCE_VIPER] >= 200)
{
selection = STANCE_TIGER;
send_to_char("Tiger stance set.\n\r",ch);
}
else if (!str_cmp(arg,"monkey") && ch->stance[STANCE_CRANE] >= 200 &&
ch->stance[STANCE_MONGOOSE] >= 200)
{
selection = STANCE_MONKEY;
send_to_char("Monkey stance set.\n\r",ch);
}
else if (!str_cmp(arg,"swallow") && ch->stance[STANCE_CRAB] >= 200 &&
ch->stance[STANCE_MONGOOSE] >= 200)
{
selection = STANCE_SWALLOW;
send_to_char("Swallow stance set.\n\r",ch);
}
else
{
send_to_char("Syntax is: autostance <style>.\n\r",ch);
send_to_char("Autotance being one of: None, Viper, Crane, Crab, Mongoose, Bull.\n\r",ch);
send_to_char(" If you know them: Mantis, Dragon, Tiger, Monkey, Swallow.\n\r",ch);
return;
}
}
ch->stance[11] = selection;
SET_BIT(ch->extra, EXTRA_STANCE);
return;
}
*/
void reset_weapon( CHAR_DATA *ch, int dtype )
{
if ( ch->wpn[dtype] > 200 )
ch->wpn[dtype] = 200;
return;
}
void reset_spell( CHAR_DATA *ch, int dtype )
{
if ( ch->spl[dtype] > 200 )
ch->spl[dtype] = 200;
return;
}
void do_reimburse( CHAR_DATA *ch, char *argument)
{
char buf[MAX_STRING_LENGTH];
char strsave[MAX_STRING_LENGTH];
char *word;
FILE *fp;
bool fMatch;
if ( IS_SET(ch->flag2, AFF2_REIMB) )
{
stc("You already have a pfile.\n\r",ch);
return;
}
sprintf(strsave,"%s%s",BACKUP_DIR,ch->name);
if ( ( fp= fopen(strsave,"r")) == NULL)
{
send_to_char("You dont have a reimbursement file.\n\r",ch);
return;
}
if ( ( fp = fopen( strsave,"r")) != NULL)
{
for ( ; ; )
{
word = feof( fp ) ? "End" : fread_word( fp );
fMatch = FALSE;
switch ( UPPER(word[0]) )
{
case '*':
fMatch = TRUE;
fread_to_eol( fp );
break;
case 'H':
if ( !str_cmp( word, "HpManaMove" ) )
{
ch->hit = fread_number( fp );
ch->max_hit = fread_number( fp );
ch->mana = fread_number( fp );
ch->max_mana = fread_number( fp );
ch->move = fread_number( fp );
ch->max_move = fread_number( fp );
send_to_char("***Hp/Mana/Move Reimbursed.\n\r",ch);
fMatch = TRUE;
break;
}
break;
case 'P':
if ( !str_cmp(word, "Primal" ) )
{
ch->practice = fread_number( fp );
fMatch = TRUE;
send_to_char("***Primal reimbursed.\n\r",ch);
break;
}
if (!str_cmp(word,"PkPdMkMd"))
{
ch->pkill= fread_number(fp);
ch->pdeath= fread_number(fp);
ch->mkill= fread_number(fp);
ch->mdeath= fread_number(fp);
send_to_char("***Player/Mob Deaths/Kills restored.\n\r",ch);
fMatch=TRUE;
break;
}
break;
case 'S':
if ( !str_cmp( word, "Spells" ) )
{
ch->spl[0] = fread_number( fp );
ch->spl[1] = fread_number( fp );
ch->spl[2] = fread_number( fp );
ch->spl[3] = fread_number( fp );
ch->spl[4] = fread_number( fp );
send_to_char("***Spell level reimbursed.\n\r",ch);
fMatch = TRUE;
break;
}
if ( !str_cmp( word, "Stance" ) )
{
ch->stance[0] = fread_number( fp );
ch->stance[1] = fread_number( fp );
ch->stance[2] = fread_number( fp );
ch->stance[3] = fread_number( fp );
ch->stance[4] = fread_number( fp );
ch->stance[5] = fread_number( fp );
ch->stance[6] = fread_number( fp );
ch->stance[7] = fread_number( fp );
ch->stance[8] = fread_number( fp );
ch->stance[9] = fread_number( fp );
ch->stance[10] = fread_number( fp );
fMatch = TRUE;
send_to_char("***Stances reimbursed.\n\r",ch);
break;
}
break;
case 'E':
if (!str_cmp(word,"End"))
{
send_to_char("***Reimbursed.. Player saved.\n\r",ch);
send_to_char("***If you havnt noticed, There was a pwipe.\n\r",ch);
send_to_char("***We have reimbursed what we could but you will have to earn the rest.\n\r",ch);
send_to_char("***Classes will be passed out again. -Sage\n\r",ch);
ch->level = 3;
ch->trust = 3;
ch->exp += 250000;
do_autosave(ch,"");
SET_BIT(ch->flag2, AFF2_REIMB);
return;
fMatch= TRUE;
break;
}
break;
case 'W':
if ( !str_cmp( word, "Weapons" ) )
{
ch->wpn[0] = fread_number( fp );
ch->wpn[1] = fread_number( fp );
ch->wpn[2] = fread_number( fp );
ch->wpn[3] = fread_number( fp );
ch->wpn[4] = fread_number( fp );
ch->wpn[5] = fread_number( fp );
ch->wpn[6] = fread_number( fp );
ch->wpn[7] = fread_number( fp );
ch->wpn[8] = fread_number( fp );
ch->wpn[9] = fread_number( fp );
ch->wpn[10] = fread_number( fp );
ch->wpn[11] = fread_number( fp );
ch->wpn[12] = fread_number( fp );
send_to_char("Weapons reimbursed.\n\r",ch);
fMatch = TRUE;
break;
}
break;
}
if ( !fMatch )
{
sprintf(buf, "Fread_char: no match. WORD: %s", word);
fread_to_eol( fp );
}
}
}
return;
}
/*
* Class Power setting commands for Werewolves and Vampires
* -Tijer
*/
void do_discset( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
char arg3[MAX_INPUT_LENGTH];
sh_int disc = 0;
sh_int value = 0;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
argument = one_argument( argument, arg3 );
if ( IS_NPC( ch ) )
{
send_to_char("Huh?\n\r",ch);
return;
}
if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0' )
{
send_to_char( "Syntax : setdisc [victim] [disc/all] [level]\n\r\n\r", ch);
send_to_char( " Disc being one of:\n\r", ch );
send_to_char( " animalism auspex celerity chimerstry\n\r", ch );
send_to_char( " daimoinon dominate fortitude melpominee\n\r", ch );
send_to_char( " necromancy obeah obfuscate obtenebration\n\r", ch );
send_to_char( " potence presence protean quietus serpentis\n\r", ch );
send_to_char( " thanatosis thaumaturgy vicissitude\n\r", ch );
return;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't here.\n\r", ch );
return;
}
if ( IS_NPC(victim ) )
{
send_to_char( "Not on NPC's.\n\r", ch );
return;
}
if ( !IS_CLASS(victim, CLASS_VAMPIRE) && !IS_ABOMINATION(ch))
{
send_to_char( "Only on Vampires and Abomination!\n\r", ch );
return;
}
if ( !str_cmp( arg2, "all" ) )
{
value = is_number( arg3 ) ? atoi( arg3 ) : -1;
if ( value < 0 || value > 5 )
{
send_to_char( "Range is 0 - 5.\n\r", ch );
return;
}
if ( value == 0 ) value = -1;
for ( disc = 0 ; disc <= DISC_MAX ; disc++ )
victim->pcdata->powers[disc] = value;
send_to_char("Done.\n\r", ch );
return;
}
else if ( !str_cmp( arg2, "animalism" ) ) disc = VAM_ANIM;
else if ( !str_cmp( arg2, "auspex" ) ) disc = VAM_AUSP;
else if ( !str_cmp( arg2, "celerity" ) ) disc = VAM_CELE;
else if ( !str_cmp( arg2, "chimerstry" ) ) disc = VAM_CHIM;
else if ( !str_cmp( arg2, "daimoinon" ) ) disc = VAM_DAIM;
else if ( !str_cmp( arg2, "dominate" ) ) disc = VAM_DOMI;
else if ( !str_cmp( arg2, "fortitude" ) ) disc = VAM_FORT;
else if ( !str_cmp( arg2, "melpominee" ) ) disc = VAM_MELP;
else if ( !str_cmp( arg2, "necromancy" ) ) disc = VAM_NECR;
else if ( !str_cmp( arg2, "obeah" ) ) disc = VAM_OBEA;
else if ( !str_cmp( arg2, "obfuscate" ) ) disc = VAM_OBFU;
else if ( !str_cmp( arg2, "obtenebration" ) ) disc = VAM_OBTE;
else if ( !str_cmp( arg2, "potence" ) ) disc = VAM_POTE;
else if ( !str_cmp( arg2, "presence" ) ) disc = VAM_PRES;
else if ( !str_cmp( arg2, "protean" ) ) disc = VAM_PROT;
else if ( !str_cmp( arg2, "quietus" ) ) disc = VAM_QUIE;
else if ( !str_cmp( arg2, "serpentis" ) ) disc = VAM_SERP;
else if ( !str_cmp( arg2, "thanatosis" ) ) disc = VAM_THAN;
else if ( !str_cmp( arg2, "thaumaturgy" ) ) disc = VAM_THAU;
else if ( !str_cmp( arg2, "vicissitude" ) ) disc = VAM_VICI;
else
{
do_discset( ch, "" );
return;
}
value = is_number( arg3 );
if ( value < 0 || value > 5 )
{
send_to_char( "Range is 0 - 5.\n\r", ch );
return;
}
victim->pcdata->powers[disc] = value;
send_to_char("Done.\n\r", ch );
return;
}
void do_giftset( CHAR_DATA *ch, char *argument )
{
CHAR_DATA *victim;
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
char arg3[MAX_INPUT_LENGTH];
sh_int gift = 0;
sh_int value = 0;
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
argument = one_argument( argument, arg3 );
if ( IS_NPC( ch ) )
{
send_to_char("Huh?\n\r",ch);
return;
}
if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0' )
{
send_to_char( "Syntax : setgift [victim] [gift/all] [level]\n\r\n\r",ch);
send_to_char( " Gift being one of:\n\r", ch );
send_to_char( " homid lupus metis\n\r", ch );
send_to_char( " ragabash theurge galliard philodox ahroun\n\r", ch );
send_to_char( " furies gnawers children fianna get\n\r", ch );
send_to_char( " walkers talons lords striders fangs\n\r", ch );
send_to_char( " stargazers wendigos uktena\n\r", ch );
return;
}
if ( ( victim = get_char_world( ch, arg1 ) ) == NULL )
{
send_to_char( "They aren't here.\n\r", ch );
return;
}
if ( IS_NPC(victim ) )
{
send_to_char( "Not on NPC's.\n\r", ch );
return;
}
if ( !IS_CLASS(victim, CLASS_WEREWOLF) && !IS_ABOMINATION(ch))
{
send_to_char( "Only on Werewolves, and Abomination!\n\r", ch );
return;
}
if ( !str_cmp( arg2, "all" ) )
{
value = is_number( arg3 ) ? atoi( arg3 ) : -1;
if ( value < 0 || value > 5 )
{
send_to_char( "Range is 0 - 5.\n\r", ch );
return;
}
for ( gift = 0 ; gift <= MAX_GIFTS ; gift++ )
victim->gifts[gift] = value;
send_to_char("Done.\n\r", ch );
return;
}
else if ( !str_cmp( arg2, "homid" ) ) gift = HOMID;
else if ( !str_cmp( arg2, "metis" ) ) gift = METIS;
else if ( !str_cmp( arg2, "lupus" ) ) gift = LUPUS;
else if ( !str_cmp( arg2, "ahroun" ) ) gift = AHROUN;
else if ( !str_cmp( arg2, "theurge" ) ) gift = THEURGE;
else if ( !str_cmp( arg2, "philodox" ) )gift = PHILODOX;
else if ( !str_cmp( arg2, "galliard" ) )gift = GALLIARD;
else if ( !str_cmp( arg2, "ragabash" ) )gift = RAGABASH;
else if ( !str_cmp( arg2, "furies" ) ) gift = BLACKFURIES;
else if ( !str_cmp( arg2, "gnawers" )) gift = BONEGNAWERS;
else if ( !str_cmp( arg2, "children" ) )gift = CHILDREN;
else if ( !str_cmp( arg2, "fianna" ) ) gift = FIANNA;
else if ( !str_cmp( arg2, "get" ) ) gift = GETOFFENRIS;
else if ( !str_cmp( arg2, "walkers" ) )gift = GLASSWALKERS;
else if ( !str_cmp( arg2, "talons" ) ) gift = REDTALONS;
else if ( !str_cmp( arg2, "lords" ) ) gift = SHADOWLORDS;
else if ( !str_cmp( arg2, "striders" ) )gift = SILENTSTRIDERS;
else if ( !str_cmp( arg2, "fangs" ) ) gift = SILVERFANGS;
else if ( !str_cmp( arg2, "stargazers" ) ) gift = STARGAZERS;
else if ( !str_cmp( arg2, "uktena" ) ) gift = UKTENA;
else if ( !str_cmp( arg2, "wendigos" ) ) gift = WENDIGO;
else
{
do_giftset( ch, "" );
return;
}
if ( value < 0 || value > 5 )
{
send_to_char( "Range is 0 - 5.\n\r", ch );
return;
}
victim->gifts[gift] = value;
send_to_char("Done.\n\r", ch );
return;
}