/*************************************************************************** * 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 improvements copyright (C) 1994, 1995, 1996 by Richard * * Woolcock. This mud is NOT to be copied in whole or in part, or to be * * run without the permission of Richard Woolcock. Nobody else has * * permission to authorise the use of this code. * ***************************************************************************/ #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" void do_pset( CHAR_DATA *ch, char *argument ) { char arg1 [MAX_INPUT_LENGTH]; char arg2 [MAX_INPUT_LENGTH]; char arg3 [MAX_INPUT_LENGTH]; char arg4 [MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; CHAR_DATA *victim; int value; sprintf(buf,"%s: Pset %s",ch->name,argument); if (ch->level < NO_WATCH) do_watching(ch,buf); smash_tilde( argument ); argument = one_argument( argument, arg1 ); argument = one_argument( argument, arg2 ); argument = one_argument( argument, arg3 ); strcpy(arg4, argument); if ( arg1[0] == '\0' || arg2[0] == '\0' || arg3[0] == '\0' ) { send_to_char( "Syntax: pset <victim> <area> <field> <value>\n\r",ch ); send_to_char( "\n\r", ch ); send_to_char( "Area being one of:\n\r", ch ); send_to_char( " quest quest+ quest- weapon immune beast\n\r", ch ); send_to_char( " blue red yellow green purple class\n\r", ch ); send_to_char( " mongoose crane crab viper bull mantis\n\r", ch ); send_to_char( " dragon tiger monkey swallow stanceall\n\r", ch ); send_to_char( " ss1 ss2 ss3 ss4 ss5\n\r", ch ); send_to_char( " recall spellall diablerie\n\r", ch ); send_to_char( "\n\r", ch ); send_to_char( "Field being one of:\n\r", ch ); send_to_char( "Weapon: slice stab slash whip claw blast \n\r", ch ); send_to_char( "Weapon: pound crush grep bite pierce suck \n\r", ch ); send_to_char( "Immune: slash stab smash animal misc charm\n\r", ch ); send_to_char( "Immune: heat cold acid summon voodoo \n\r", ch ); send_to_char( "Immune: hurl backstab shielded kick disarm\n\r", ch ); send_to_char( "Immune: steal sleep drain sunlight all\n\r", ch ); send_to_char( "Class: Vampire Werewolf Demon Angel\n\r", ch ); send_to_char( " Air Fire Water Earth Spirit\n\r", ch ); send_to_char( "\n\r",ch); send_to_char( "Special: Ftalk Status Bounty\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_SET(victim->act, PLR_GODLESS) && ch->level < NO_GODLESS) { send_to_char( "You failed.\n\r", ch ); return; } /* * Snarf the value (which need not be numeric). */ value = is_number( arg3 ) ? atoi( arg3 ) : -1; /* * Set something. */ if ( !str_cmp( arg2, "class" ) ) { if ( IS_NPC( victim ) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( victim->class != CLASS_NONE ) { send_to_char( "They already have a class.\n\r", ch ); return; } if ( victim->level < LEVEL_AVATAR ) { send_to_char( "You can only do this to avatars.\n\r", ch ); return; } if ( ch->level != MAX_LEVEL ) { send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg3, "vampire" ) ) { victim->class = CLASS_VAMPIRE; victim->vampgen = 1; update_gen(victim); // Morglum - Actually makes master vampire have 1st gen blood pool victim->pcdata->willpower[0] = 200; victim->pcdata->willpower[1] = 200; victim->blood[BLOOD_POOL] = 1000; victim->blood[BLOOD_POTENCY] = 10; victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Master Vampire.\n\r",victim); } else if ( !str_cmp( arg3, "werewolf" ) ) { victim->class = CLASS_WEREWOLF; victim->vampgen = 1; victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Master Werewolf.\n\r",victim); } else if ( !str_cmp( arg3, "demon" ) ) { victim->class = CLASS_DEMON; victim->alignment = -1000; SET_BIT(victim->act, PLR_DEMON); send_to_char("Ok.\n\r",ch); send_to_char("You are now a Demon Lord.\n\r",victim); } else if ( !str_cmp( arg3, "angel" ) ) { victim->class = CLASS_ANGEL; victim->alignment = 1000; SET_BIT(victim->act, PLR_DEMON); send_to_char("Ok.\n\r",ch); send_to_char("You are now an Archangel.\n\r",victim); } else if ( !str_cmp( arg3, "Air" ) ) { if ( victim->level < LEVEL_ARCHMAGE ) { victim->level = LEVEL_ARCHMAGE; victim->trust = LEVEL_ARCHMAGE; } victim->class = CLASS_MAGE; victim->pcdata->runes[0] = PURPLE_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Air Archmage.\n\r",victim); } else if ( !str_cmp( arg3, "Fire" ) ) { if ( victim->level < LEVEL_ARCHMAGE ) { victim->level = LEVEL_ARCHMAGE; victim->trust = LEVEL_ARCHMAGE; } victim->class = CLASS_MAGE; victim->pcdata->runes[0] = RED_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Fire Archmage.\n\r",victim); } else if ( !str_cmp( arg3, "Water" ) ) { if ( victim->level < LEVEL_ARCHMAGE ) { victim->level = LEVEL_ARCHMAGE; victim->trust = LEVEL_ARCHMAGE; } victim->class = CLASS_MAGE; victim->pcdata->runes[0] = BLUE_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Water Archmage.\n\r",victim); } else if ( !str_cmp( arg3, "Earth" ) ) { if ( victim->level < LEVEL_ARCHMAGE ) { victim->level = LEVEL_ARCHMAGE; victim->trust = LEVEL_ARCHMAGE; } victim->class = CLASS_MAGE; victim->pcdata->runes[0] = GREEN_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Earth Archmage.\n\r",victim); } else if ( !str_cmp( arg3, "Spirit" ) ) { if ( victim->level < LEVEL_ARCHMAGE ) { victim->level = LEVEL_ARCHMAGE; victim->trust = LEVEL_ARCHMAGE; } victim->class = CLASS_MAGE; victim->pcdata->runes[0] = YELLOW_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Spirit Archmage.\n\r",victim); } else if (!str_cmp(arg3, "highlander")) { /* victim->class = CLASS_HIGHLANDER; send_to_char("Ok.\n\r",ch); send_to_char("You are now a Highlander.\n\r",victim); */ send_to_char("Highlanders are not completed yet.\n\r",ch); } else if ( !str_cmp( arg3, "abomination" ) ) { victim->class = CLASS_ABOMINATION; victim->vampgen = 3; update_gen(victim); victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Abomination Leader.\n\r",victim); } else if ( !str_cmp( arg3, "skindancer" ) ) { if ( victim->level < LEVEL_MAGE ) { victim->level = LEVEL_MAGE; victim->trust = LEVEL_MAGE; } victim->class = CLASS_SKINDANCER; victim->vampgen = 3; victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; victim->pcdata->runes[0] = RED_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Skindancer Leader.\n\r",victim); } else if ( !str_cmp( arg3, "lich" ) ) { if ( victim->level < LEVEL_MAGE ) { victim->level = LEVEL_MAGE; victim->trust = LEVEL_MAGE; } victim->class = CLASS_LICH; victim->vampgen = 3; update_gen(victim); victim->pcdata->runes[0] = RED_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Lich Leader.\n\r",victim); } else if ( !str_cmp( arg3, "baali" ) ) { victim->class = CLASS_BAALI; victim->vampgen = 3; update_gen(victim); victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; SET_BIT(victim->act, PLR_DEMON); send_to_char("Ok.\n\r",ch); send_to_char("You are now the Baali Leader.\n\r",victim); } else if ( !str_cmp( arg3, "bsd" ) ) { victim->class = CLASS_BLACK_SPIRAL_DANCER; victim->vampgen = 3; victim->pcdata->cland[0] = -1; victim->pcdata->cland[1] = -1; victim->pcdata->cland[2] = -1; SET_BIT(victim->act, PLR_DEMON); send_to_char("Ok.\n\r",ch); send_to_char("You are now the Black Spiral Dancer Leader.\n\r",victim); } else if ( !str_cmp( arg3, "nephandi" ) ) { if ( victim->level < LEVEL_MAGE ) { victim->level = LEVEL_MAGE; victim->trust = LEVEL_MAGE; } victim->class = CLASS_NEPHANDI; SET_BIT(victim->act, PLR_DEMON); victim->pcdata->runes[0] = RED_MAGIC; victim->pcdata->runes[1] = 2047; victim->pcdata->runes[2] = 1023; victim->pcdata->runes[3] = 15; send_to_char("Ok.\n\r",ch); send_to_char("You are now the Nepandi Leader.\n\r",victim); } else do_pset( ch, "" ); return; } // Status Spellall Recall Ftalk and others by Morglum. else if ( !str_cmp( arg2, "diablerie" ) || !str_cmp( arg2, "diab" ) ) { if ( value < 0 || value > 100 ) { send_to_char( "diablerie range is 0 to 100.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->pcdata->diableries[DIAB_EVER] = value; victim->pcdata->diableries[DIAB_TIME] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "spellall" ) ) { int i; int max_level; char morg[MSL]; switch( victim->class ) { default : max_level = 200; break; case CLASS_MAGE : max_level = 240; break; case CLASS_LICH : max_level = 240; break; case CLASS_SKINDANCER : max_level = 240; break; case CLASS_NEPHANDI : max_level = 240; break; } if ( value < 4 || value > max_level ) { sprintf( morg, "Spell level range is 0 to %d.\n\r", max_level ); send_to_char( morg, ch ); return; } if ( IS_JUDGE( ch ) ) { for ( i = 0 ; i <= 4 ; i++ ) victim->spl[i] = value; send_to_char( "Ok.\n\r", ch ); } else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "recall" ) ) { if ( !IS_HIGHJUDGE( ch ) ) { send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( value < 0 ) { send_to_char( "Recall value range is a valid room vnum.\n\r", ch ); send_to_char( "However you can set to a non-valid room vnum.\n\r", ch ); send_to_char( "This will mean however, that they can't recall!\n\r", ch ); send_to_char( "Until they set it themselves.\n\r", ch ); return; } victim->home = value; send_to_char( "Recall has been set!\n\r", ch ); return; } if ( !str_cmp( arg2, "beast" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { send_to_char( "Beast range is 0 to 100.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->beast = value; victim->truebeast = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "quest" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 1 || value > 15000 ) { send_to_char( "Quest range is 1 to 15000.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->pcdata->quest = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "quest+" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 1 || value + victim->pcdata->quest > 15000 ) { send_to_char( "Quest range is 1 to 15000.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->pcdata->quest += value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "quest-" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( victim->pcdata->quest - value < 1 || value > 15000 ) { send_to_char( "Quest range is 1 to 15000.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->pcdata->quest -= value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "viper" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Viper range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_VIPER] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "crane" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Crane range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_CRANE] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "crab" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Crab range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_CRAB] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "mongoose" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Mongoose range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_MONGOOSE] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "bull" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Bull range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_BULL] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "mantis" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Mantis range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_MANTIS] = value; victim->stance[STANCE_CRANE] = 200; victim->stance[STANCE_VIPER] = 200; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "dragon" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Dragon range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_DRAGON] = value; victim->stance[STANCE_CRAB] = 200; victim->stance[STANCE_BULL] = 200; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "tiger" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Tiger range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_TIGER] = value; victim->stance[STANCE_BULL] = 200; victim->stance[STANCE_VIPER] = 200; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "monkey" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Monkey range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_MONKEY] = value; victim->stance[STANCE_MONGOOSE] = 200; victim->stance[STANCE_CRANE] = 200; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "swallow" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Swallow range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_SWALLOW] = value; victim->stance[STANCE_CRAB] = 200; victim->stance[STANCE_MONGOOSE] = 200; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "ss1" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_SUPER1] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "ss2" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_SUPER2] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "ss3" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_SUPER3] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "ss4" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_SUPER4] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "ss5" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->stance[STANCE_SUPER5] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "stanceall" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200 ) { send_to_char( "Stance Swallow range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { int i; for ( i = 1; i <= 10; i++ ) victim->stance[i] = value; send_to_char("Ok.\n\r",ch); } else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "purple" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( IS_MAGE(victim) && (value < 4 || value > 240) ) { send_to_char( "Spell range is 4 to 240.\n\r", ch ); return; } else if ( !IS_MAGE(victim) && (value < 4 || value > 200) ) { send_to_char( "Spell range is 4 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->spl[PURPLE_MAGIC] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "red" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( IS_MAGE(victim) && (value < 4 || value > 240) ) { send_to_char( "Spell range is 4 to 240.\n\r", ch ); return; } else if ( !IS_MAGE(victim) && (value < 4 || value > 200) ) { send_to_char( "Spell range is 4 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->spl[RED_MAGIC] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "blue" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( IS_MAGE(victim) && (value < 4 || value > 240) ) { send_to_char( "Spell range is 4 to 240.\n\r", ch ); return; } else if ( !IS_MAGE(victim) && (value < 4 || value > 200) ) { send_to_char( "Spell range is 4 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->spl[BLUE_MAGIC] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "green" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( IS_MAGE(victim) && (value < 4 || value > 240) ) { send_to_char( "Spell range is 4 to 240.\n\r", ch ); return; } else if ( !IS_MAGE(victim) && (value < 4 || value > 200) ) { send_to_char( "Spell range is 4 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->spl[GREEN_MAGIC] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "yellow" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if ( IS_MAGE(victim) && (value < 4 || value > 240) ) { send_to_char( "Spell range is 4 to 240.\n\r", ch ); return; } else if ( !IS_MAGE(victim) && (value < 4 || value > 200) ) { send_to_char( "Spell range is 4 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { victim->spl[YELLOW_MAGIC] = value; send_to_char("Ok.\n\r",ch);} else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "immune" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } if (arg3 == '\0') { send_to_char( "pset <victim> immune <immunity>.\n\r", ch ); return; } if (IS_JUDGE(ch)) { if (!str_cmp(arg3, "voodoo")) { if (IS_SET(victim->immune, IMM_VOODOO)) { REMOVE_BIT(victim->immune, IMM_VOODOO); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_VOODOO); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "slash")) { if (IS_SET(victim->immune, IMM_SLASH)) { REMOVE_BIT(victim->immune, IMM_SLASH); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_SLASH); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "stab")) { if (IS_SET(victim->immune, IMM_STAB)) { REMOVE_BIT(victim->immune, IMM_STAB); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_STAB); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "smash")) { if (IS_SET(victim->immune, IMM_SMASH)) { REMOVE_BIT(victim->immune, IMM_SMASH); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_SMASH); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "anmial")) { if (IS_SET(victim->immune, IMM_ANIMAL)) { REMOVE_BIT(victim->immune, IMM_ANIMAL); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_ANIMAL); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "misc")) { if (IS_SET(victim->immune, IMM_MISC)) { REMOVE_BIT(victim->immune, IMM_MISC); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_MISC); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "charm")) { if (IS_SET(victim->immune, IMM_CHARM)) { REMOVE_BIT(victim->immune, IMM_CHARM); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_CHARM); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "heat")) { if (IS_SET(victim->immune, IMM_HEAT)) { REMOVE_BIT(victim->immune, IMM_HEAT); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_HEAT); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "cold")) { if (IS_SET(victim->immune, IMM_COLD)) { REMOVE_BIT(victim->immune, IMM_COLD); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_COLD); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "lightning")) { if (IS_SET(victim->immune, IMM_LIGHTNING)) { REMOVE_BIT(victim->immune, IMM_LIGHTNING); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_LIGHTNING); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "acid")) { if (IS_SET(victim->immune, IMM_ACID)) { REMOVE_BIT(victim->immune, IMM_ACID); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_ACID); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "shield")) { if (IS_SET(victim->immune, IMM_SHIELDED)) { REMOVE_BIT(victim->immune, IMM_SHIELDED); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_SHIELDED); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "hurl")) { if (IS_SET(victim->immune, IMM_HURL)) { REMOVE_BIT(victim->immune, IMM_HURL); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_HURL); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "backstab")) { if (IS_SET(victim->immune, IMM_BACKSTAB)) { REMOVE_BIT(victim->immune, IMM_BACKSTAB); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_BACKSTAB); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "kick")) { if (IS_SET(victim->immune, IMM_KICK)) { REMOVE_BIT(victim->immune, IMM_KICK); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_KICK); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "disarm")) { if (IS_SET(victim->immune, IMM_DISARM)) { REMOVE_BIT(victim->immune, IMM_DISARM); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_DISARM); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "steal")) { if (IS_SET(victim->immune, IMM_STEAL)) { REMOVE_BIT(victim->immune, IMM_STEAL); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_STEAL); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "sleep")) { if (IS_SET(victim->immune, IMM_SLEEP)) { REMOVE_BIT(victim->immune, IMM_SLEEP); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_SLEEP); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "sunlight")) { if (IS_SET(victim->immune, IMM_SUNLIGHT)) { REMOVE_BIT(victim->immune, IMM_SUNLIGHT); send_to_char("Ok Immunity Removed.\n\r",ch); return; } else { SET_BIT(victim->immune, IMM_SUNLIGHT); send_to_char("Ok Immunity Added.\n\r",ch); return; } } if (!str_cmp(arg3, "all")) { SET_BIT(victim->immune, IMM_DRAIN); SET_BIT(victim->immune, IMM_VOODOO); SET_BIT(victim->immune, IMM_SLASH); SET_BIT(victim->immune, IMM_STAB); SET_BIT(victim->immune, IMM_SMASH); SET_BIT(victim->immune, IMM_ANIMAL); SET_BIT(victim->immune, IMM_MISC); SET_BIT(victim->immune, IMM_CHARM); SET_BIT(victim->immune, IMM_HEAT); SET_BIT(victim->immune, IMM_COLD); SET_BIT(victim->immune, IMM_LIGHTNING); SET_BIT(victim->immune, IMM_ACID); SET_BIT(victim->immune, IMM_HURL); SET_BIT(victim->immune, IMM_BACKSTAB); SET_BIT(victim->immune, IMM_KICK); SET_BIT(victim->immune, IMM_DISARM); SET_BIT(victim->immune, IMM_STEAL); SET_BIT(victim->immune, IMM_SLEEP); send_to_char("Ok All Immunities Added.\n\r",ch); return; } send_to_char("No such immunity exists.\n\r",ch); return; } else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "weapon" ) ) { if ( IS_NPC(victim) ) { send_to_char( "Not on NPC's.\n\r", ch ); return; } argument = one_argument( argument, arg4 ); /* * Snarf the value (which need not be numeric). */ value = is_number( arg4 ) ? atoi( arg4 ) : -1; if ( value < 0 || value > 200 ) { send_to_char( "Weapon skill range is 0 to 200.\n\r", ch ); return; } if (IS_JUDGE(ch)) { if (!str_cmp(arg3, "unarmed")) { victim->wpn[0] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "slice")) { victim->wpn[1] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "stab")) { victim->wpn[2] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "slash")) { victim->wpn[3] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "whip")) { victim->wpn[4] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "claw")) { victim->wpn[5] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "blast")) { victim->wpn[6] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "pound")) { victim->wpn[7] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "crush")) { victim->wpn[8] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "grep")) { victim->wpn[9] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "bite")) { victim->wpn[10] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "pierce")) { victim->wpn[11] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "suck")) { victim->wpn[12] = value; send_to_char("Ok.\n\r",ch); return; } if (!str_cmp(arg3, "all")) { victim->wpn[0] = value; victim->wpn[1] = value; victim->wpn[2] = value; victim->wpn[3] = value; victim->wpn[4] = value; victim->wpn[5] = value; victim->wpn[6] = value; victim->wpn[7] = value; victim->wpn[8] = value; victim->wpn[8] = value; victim->wpn[9] = value; victim->wpn[10] = value; victim->wpn[11] = value; victim->wpn[12] = value; send_to_char("Ok.\n\r",ch); return; } send_to_char("No such weapon skill exists.\n\r",ch); return; } else send_to_char( "Sorry, no can do...\n\r", ch ); return; } if ( !str_cmp( arg2, "special" ) || !str_cmp( arg2, "spec" ) ) { if ( !str_cmp( arg3, "ftalk" ) ) { if ( !IS_HIGHJUDGE( ch ) ) { send_to_char("Sorry, no can do...\n\r", ch ); return; } if ( IS_MORE( victim, MORE_FTALK ) ) { REMOVE_BIT( victim->more, MORE_FTALK ); send_to_char( "Ftalk removed.\n\r", ch ); send_to_char( "You are nolonger on the ftalk channel.\n\r", victim ); } else { SET_BIT( victim->more, MORE_FTALK ); send_to_char( "Ftalk added.\n\r", ch ); send_to_char( "You are now on the ftalk channel.\n\r", victim ); } return; } if ( !str_cmp( arg3, "status" ) ) { if ( !IS_HIGHJUDGE( ch ) ) { send_to_char("Sorry, no can do...\n\r", ch ); return; } value = is_number( arg4 ) ? atoi( arg4 ) : -1; if ( value < 0 || value > 50) { send_to_char("Status range is 0 to 50.\n\r",ch); return; } victim->race = value; send_to_char("Status set.\n\r",ch); return; } if ( !str_cmp( arg3, "bounty" ) ) { if ( !IS_HIGHJUDGE( ch ) ) { send_to_char("Sorry, no can do...\n\r", ch ); return; } value = is_number( arg4 ) ? atoi( arg4 ) : -1; if ( value < 0 || value > 1500) { send_to_char("Bounty range is 0 to 1500.\n\r",ch); return; } victim->pcdata->bounty = value; send_to_char("Bounty set.\n\r",ch); return; } } /* * Generate usage message. */ do_pset( ch, "" ); return; }