/*************************************************************************** * 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" /*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_affects( CHAR_DATA *ch, char *argument ) { char buf[MAX_STRING_LENGTH]; AFFECT_DATA *paf; if (IS_NPC(ch)) return; if ( ch->affected == NULL ) { send_to_char( "You have nothing affecting you at this time.\n\r", ch); return; } if ( ch->affected != NULL ) { send_to_char( "You are affected by:\n\r", ch ); for ( paf = ch->affected; paf != NULL; paf = paf->next ) { sprintf( buf, "Spell: '%s'", skill_table[paf->type].name ); send_to_char( buf, ch ); if ( ch->level >= 0 ) { sprintf( buf, " modifies %s by %d for %d hours with bits %s.\n\r", affect_loc_name( paf->location ), paf->modifier, paf->duration, affect_bit_name( paf->bitvector ) ); send_to_char( buf, 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,"********************************************\n\r"); send_to_char(buf,ch); sprintf(buf,"* Weapon Skills| Stances | Magic *\n\r"); send_to_char(buf,ch); sprintf(buf,"********************************************\n\r"); send_to_char(buf,ch); sprintf(buf,"Unarmed : %3d | Bull : %3d | Purple: %3d\n\r", ch->wpn[0],ch->stance[STANCE_BULL],ch->spl[0]); send_to_char(buf,ch); sprintf(buf,"Slash : %3d | Viper : %3d | Red : %3d\n\r", ch->wpn[3],ch->stance[STANCE_VIPER],ch->spl[1]); send_to_char(buf,ch); sprintf(buf,"Slice : %3d | Crane : %3d | Blue : %3d\n\r", ch->wpn[1],ch->stance[STANCE_CRANE],ch->spl[2]); send_to_char(buf,ch); sprintf(buf,"Stab : %3d | Crab : %3d | Green : %3d\n\r", ch->wpn[2],ch->stance[STANCE_CRAB],ch->spl[3]); send_to_char(buf,ch); sprintf(buf,"Whip : %3d | Mongoose: %3d | Yellow: %3d\n\r", ch->wpn[4],ch->stance[STANCE_MONGOOSE],ch->spl[4]); send_to_char(buf,ch); sprintf(buf,"Claw : %3d | Tiger : %3d |\n\r", ch->wpn[5],ch->stance[STANCE_TIGER]); send_to_char(buf,ch); sprintf(buf,"Blast : %3d | Mantis : %3d |\n\r", ch->wpn[6],ch->stance[STANCE_MANTIS]); send_to_char(buf,ch); sprintf(buf,"Pound : %3d | Dragon : %3d |\n\r", ch->wpn[7],ch->stance[STANCE_DRAGON]); send_to_char(buf,ch); sprintf(buf,"Crush : %3d | Swallow : %3d |\n\r", ch->wpn[8],ch->stance[STANCE_SWALLOW]); send_to_char(buf,ch); sprintf(buf,"Grep : %3d | Monkey : %3d |\n\r", ch->wpn[9],ch->stance[STANCE_MONKEY]); send_to_char(buf,ch); sprintf(buf,"Bite : %3d | |\n\r",ch->wpn[10]); send_to_char(buf,ch); sprintf(buf,"Pierce : %3d | |\n\r",ch->wpn[11]); send_to_char(buf,ch); sprintf(buf,"Suck : %3d | |\n\r",ch->wpn[12]); send_to_char(buf,ch); send_to_char("*************-= Misc. Things =-*************\n\r", ch); sprintf(skill, "Recall Room : %d \n\r",ch->home); send_to_char( skill, ch ); if ( ch->stance[11] == 1 ) sprintf(stance, " Viper" ); else if ( ch->stance[11] == 2 ) sprintf(stance, " Crane" ); else if ( ch->stance[11] == 3 ) sprintf(stance, " Crab" ); else if ( ch->stance[11] == 4 ) sprintf(stance, " Mongoose" ); else if ( ch->stance[11] == 5 ) sprintf(stance, " Bull" ); else if ( ch->stance[11] == 6 ) sprintf(stance, " Mantis" ); else if ( ch->stance[11] == 7 ) sprintf(stance, " Dragon" ); else if ( ch->stance[11] == 8 ) sprintf(stance, " Tiger" ); else if ( ch->stance[11] == 9 ) sprintf(stance, " Monkey" ); else if ( ch->stance[11] == 10 ) sprintf(stance, " Swallow" ); else if ( ch->stance[11] == -1 || ch->stance[11] == 15 ) sprintf(stance, " None" ); else sprintf(stance, " None" ); sprintf(skill, "Autostance: %s \n\r",stance); send_to_char( skill, ch ); send_to_char("*************-= Class Things =-*************\n\r", ch); if ( IS_CLASS(ch, CLASS_DEMON) ) send_to_char("You are a demon! \n\r", ch); if ( IS_CLASS(ch, CLASS_MAGE) ) send_to_char("You are a mage! \n\r", ch); if ( IS_CLASS(ch, CLASS_WEREWOLF) ) send_to_char("You are a werewolf! \n\r", ch); if ( IS_CLASS(ch, CLASS_NINJA) ) send_to_char("You are a ninja! \n\r", ch); if ( IS_CLASS(ch, CLASS_VAMPIRE) ) send_to_char("You are a vampire! \n\r", ch); if ( IS_CLASS(ch, CLASS_HIGHLANDER) ) send_to_char("You are a highlander! \n\r", ch); if ( IS_CLASS(ch, CLASS_DROW) ) send_to_char("You are a drow! \n\r", ch); if ( IS_ABOMINATION(ch)) stc("You are an Abomination! \n\r",ch); if (IS_CLASS(ch, CLASS_VAMPIRE) ) { sprintf(skill, "Generation : %d \n\r", ch->pcdata->stats[UNI_GEN]); send_to_char( skill, ch ); 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) ) { sprintf(skill, "Generation : %d\n\r", ch->pcdata->stats[UNI_GEN]); send_to_char( skill, ch ); 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, "Generation : %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,"********************************************\n\r"); send_to_char(buf,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, "-=+=-=+=-=+=-=+=-=+=-=+=-#r[#cThe Lords of War#r]#n-=+=-=+=-=+=-=+=-=+=-=+=-#n\n\r"); send_to_char(buf,ch); sprintf(buf, " Weapons Skills\n\r\n\r"); send_to_char(buf,ch); sprintf(buf, " Unarmed: %3d Slash: %3d Slice: %3d Stab: %3d Whip: %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, " Blast: %3d Claw: %3d Pound: %3d Crush: %3d Grep: %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: %3d Suck: %3d Pierce: %3d\n\r", ch->wpn[10], ch->wpn[12], ch->wpn[11]); send_to_char(buf,ch); sprintf(buf, " -=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=***=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-#n\n\r"); send_to_char(buf,ch); sprintf(buf, " Stances\n\r\n\r"); send_to_char(buf,ch); sprintf(buf, " Bull: %3d Viper: %3d Crane: %3d Crab: %3d Mongoose: %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, " Tiger: %3d Mantis: %3d Dragon: %3d Swallow: %3d Monkey: %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:%3d Cobra: %3d Bear: %3d Eagle: %3d Cougar: %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, " -=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=***=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-\n\r"); send_to_char(buf,ch); sprintf(buf, " Spells\n\r\n\r"); send_to_char(buf,ch); sprintf(buf, " #PPurple#n: %3d #RRed#n: %3d #G Green#n: %3d #BBlue#n: %3d #yYellow#n: %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, " -=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=***=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-\n\r"); send_to_char(buf,ch); sprintf(buf, " Misc and Class\n\r\n\r"); send_to_char(buf,ch); sprintf(skill, " Recall Room : %d \n\r",ch->home); send_to_char( skill, ch ); if ( ch->pcdata->autostance == 1 ) sprintf(stance, " Viper" ); else if ( ch->pcdata->autostance == 2 ) sprintf(stance, " Crane" ); 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, " Autostance: %s \n\r",stance); send_to_char(buf, ch); if ( IS_CLASS(ch, CLASS_DEMON) ) send_to_char(" You are a demon! \n\r", ch); if ( IS_CLASS(ch, CLASS_MAGE) ) send_to_char(" You are a mage! \n\r", ch); if ( IS_CLASS(ch, CLASS_WEREWOLF) ) send_to_char(" You are a werewolf! \n\r", ch); if ( IS_CLASS(ch, CLASS_NINJA) ) send_to_char(" You are a ninja! \n\r", ch); if ( IS_CLASS(ch, CLASS_VAMPIRE) ) send_to_char(" You are a vampire! \n\r", ch); if ( IS_CLASS(ch, CLASS_HIGHLANDER) ) send_to_char(" You are a highlander! \n\r", ch); if ( IS_CLASS(ch, CLASS_DROW) ) send_to_char(" You are a drow! \n\r", ch); if ( IS_CLASS(ch, CLASS_PALADIN) ) send_to_char(" You are a paladin! \n\r", ch); if ( IS_CLASS(ch, CLASS_DRAGON) ) send_to_char(" You are a dragon! \n\r", ch); if (IS_CLASS(ch, CLASS_VAMPIRE) ) { sprintf(skill, " Generation : %d \n\r", ch->pcdata->stats[UNI_GEN]); send_to_char( skill, ch ); 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) ) { sprintf(skill, " Generation : %d\n\r", ch->pcdata->stats[UNI_GEN]); send_to_char( skill, ch ); 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, " Generation : %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, "-=+=-=+=-=+=-=+=-=+=-=+=-#r[#cThe Lords of War#r]#n-=+=-=+=-=+=-=+=-=+=-=+=-#n\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); //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 ((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_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->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->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 ); 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] = 1; victim->pcdata->disc_a[DRAGON_COLOR] = number_range(1,9); 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 ); victim->lord=str_dup(victim->name); send_to_char("You are now a Demon Lord!\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; }