/********************************************** * Xset by Kline...Use as you will, just * * please give credit * * * * Might need a define for stc (send_to_char) * * Originally designed for a WOTK/RoDaM MUD * * So you may need to remove a few fields * * And probably remove the element.h include * * * * File Contains: * * void do_xset (pset + mset) * *********************************************/ #if defined(macintosh) #include #else #include #endif #include #include #include #include #include #include "merc.h" #include "element.h" void do_xset( CHAR_DATA *ch, char *argument ) { /* Basic Stuff */ char arg1 [MAX_INPUT_LENGTH]; char arg2 [MAX_INPUT_LENGTH]; char arg3 [MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; CHAR_DATA *victim; unsigned long int value = 0; sprintf(buf,"%s: Xset %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 ); /* Menu System */ if ( arg1[0] == '\0' ) { stc( "#4............................................#n\n\r", ch ); stc( "Syntax: xset \n\r", ch ); stc( "#4............................................#n\n\r", ch ); return; } /* Old Pset Menu */ else if ( !str_cmp( arg1, "pset" ) ) { stc( "#4............................................#n\n\r", ch ); stc( "Syntax: xset \n\r", ch ); stc( "#4............................................#n\n\r", ch ); stc( "\n\r", ch ); stc( "Integration: pset\n\r", ch ); stc( "\n\r", ch ); stc( "Field Values:\n\r", ch ); stc( " Points:\n\r", ch ); stc( " aura quest palpts dempts\n\r", ch ); stc( " souls elepts beast status\n\r", ch ); stc( " Magic:\n\r", ch ); stc( " purple red blue green yellow black white allm\n\r", ch ); stc( " Stance:\n\r", ch ); stc( " viper crane crab mongoose bull\n\r", ch ); stc( " mantis dragon tiger monkey swallow alls\n\r", ch ); stc( " Weapon:\n\r", ch ); stc( " unarm slice stab slash whip claw blast\n\r", ch ); stc( " pound crush grep bite pierce suck allw\n\r", ch ); stc( " Immune:\n\r", ch ); stc( " slashi stabi smash animal misc charm\n\r", ch ); stc( " hurl backstab shielded kick disarm\n\r", ch ); stc( " steal sleep drain heat cold acid summon\n\r", ch ); stc( " lightning sunlight allis allir\n\r", ch ); return; } /* Old Mset Menu */ else if ( !str_cmp( arg1, "mset" ) ) { stc( "#4............................................#n\n\r", ch ); stc( "Syntax: xset \n\r", ch ); stc( "#4............................................#n\n\r", ch ); stc( "\n\r", ch ); stc( "Integration: mset\n\r", ch ); stc( "\n\r", ch ); stc( "Field Values:\n\r", ch ); stc( " str int wis dex con sex level exp\n\r", ch ); stc( " gold hp mp mv primal align alla\n\r", ch ); stc( " thirst drunk full hit dam ac\n\r", ch ); stc( " name short long desc title spec\n\r", ch ); return; } /* Combined Menu */ else if ( !str_cmp( arg1, "all" ) ) { stc( "#4............................................#n\n\r", ch ); stc( "Syntax: xset \n\r", ch ); stc( "#4............................................#n\n\r", ch ); stc( "\n\r", ch ); stc( "Integration: pset\n\r", ch ); stc( "\n\r", ch ); stc( "Field Values:\n\r", ch ); stc( " Points:\n\r", ch ); stc( " aura quest palpts dempts\n\r", ch ); stc( " souls elepts beast status\n\r", ch ); stc( " Magic:\n\r", ch ); stc( " purple red blue green yellow black white allm\n\r", ch ); stc( " Stance:\n\r", ch ); stc( " viper crane crab mongoose bull\n\r", ch ); stc( " mantis dragon tiger monkey swallow alls\n\r", ch ); stc( " Weapon:\n\r", ch ); stc( " unarm slice stab slash whip claw blast\n\r", ch ); stc( " pound crush grep bite pierce suck allw\n\r", ch ); stc( " Immune:\n\r", ch ); stc( " slashi stabi smash animal misc charm\n\r", ch ); stc( " hurl backstab shielded kick disarm\n\r", ch ); stc( " steal sleep drain heat cold acid summon\n\r", ch ); stc( " lightning sunlight allis allir\n\r", ch ); stc( "\n\r", ch ); stc( "Integration: mset\n\r", ch ); stc( "#4............................................#n\n\r", ch ); stc( "Syntax: xset \n\r", ch ); stc( "#4............................................#n\n\r", ch ); stc( "\n\r", ch ); stc( "Field Values:\n\r", ch ); stc( " str int wis dex con sex level exp\n\r", ch ); stc( " gold hp mp mv primal align alla\n\r", ch ); stc( " thirst drunk full hit dam ac\n\r", ch ); stc( " name short long desc title spec\n\r", ch ); return; } /* Idiot Check */ else if ( arg1[0] == '\0' || arg2[0] == '\0' ) { stc( "#4............................................#n\n\r", ch ); stc( "Syntax: xset \n\r", ch ); stc( "#4............................................#n\n\r", ch ); return; } else if ( ( victim = get_char_world( ch, arg1 ) ) == NULL ) { stc( "They aren't here.\n\r", ch ); return; } value = is_number( arg3 ) ? atoi( arg3 ) : -1; /* Begin: Pset Integration */ if ( !str_cmp( arg2, "aura" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200000 ) { stc( "Aura points range is 0 to 200000.\n\r", ch ); return; } victim->pcdata->stats[PALADIN_AURA] = value; stc( "Ok.\n\r", ch ); return; } if ( !str_cmp( arg2, "quest" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 200000 ) { stc( "Quest points range is 0 to 200000.\n\r", ch ); return; } victim->pcdata->quest = value; stc( "Ok.\n\r", ch ); return; } if ( !str_cmp( arg2, "palpts" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 10 ) { stc( "Paladin power points range is 0 to 10.\n\r", ch ); return; } victim->pcdata->stats[PALADIN_PTS] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "dempts" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 800000 ) { stc( "Demon points range is 0 to 800000.\n\r", ch ); return; } victim->pcdata->stats[DEMON_CURRENT] = value; victim->pcdata->stats[DEMON_TOTAL] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "souls" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 500 ) { stc( "Soul range is 0 to 500.\n\r", ch ); return; } victim->pcdata->classbit = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "elepts" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 800000 ) { stc( "Elemental points range is 0 to 800000.\n\r", ch ); return; } victim->elem[6] = value; send_to_char("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "beast" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Beast range is 0 to 100.\n\r", ch ); return; } victim->beast = value; send_to_char("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "status" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Status range is 0 to 100.\n\r", ch ); return; } victim->status = value; send_to_char("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "purple" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[PURPLE_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "red" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[RED_MAGIC] = value; send_to_char("Ok.\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 ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[BLUE_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "green" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[GREEN_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "yellow" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[YELLOW_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "black" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[BLACK_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "white" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[WHITE_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "allm" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Spell range is 0 to 300.\n\r", ch ); return; } victim->spl[PURPLE_MAGIC] = value; victim->spl[RED_MAGIC] = value; victim->spl[BLUE_MAGIC] = value; victim->spl[GREEN_MAGIC] = value; victim->spl[YELLOW_MAGIC] = value; victim->spl[BLACK_MAGIC] = value; victim->spl[WHITE_MAGIC] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "viper" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_VIPER] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "crane" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_CRANE] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "crab" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_CRAB] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "mongoose" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_MONGOOSE] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "bull" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_BULL] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "mantis" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_MANTIS] = value; victim->stance[STANCE_CRANE] = value; victim->stance[STANCE_VIPER] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "dragon" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_DRAGON] = value; victim->stance[STANCE_CRAB] = value; victim->stance[STANCE_BULL] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "tiger" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_TIGER] = value; victim->stance[STANCE_BULL] = value; victim->stance[STANCE_VIPER] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "monkey" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_MONKEY] = value; victim->stance[STANCE_MONGOOSE] = value; victim->stance[STANCE_CRANE] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "swallow" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_SWALLOW] = value; victim->stance[STANCE_CRAB] = value; victim->stance[STANCE_MONGOOSE] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "alls" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 300 ) { stc( "Stance range is 0 to 300.\n\r", ch ); return; } victim->stance[STANCE_VIPER] = value; victim->stance[STANCE_CRANE] = value; victim->stance[STANCE_CRAB] = value; victim->stance[STANCE_MONGOOSE] = value; victim->stance[STANCE_BULL] = value; victim->stance[STANCE_MANTIS] = value; victim->stance[STANCE_DRAGON] = value; victim->stance[STANCE_TIGER] = value; victim->stance[STANCE_MONKEY] = value; victim->stance[STANCE_SWALLOW] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "unarmed" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[0] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "slice" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[1] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "stab" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[2] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "slash" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[3] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "whip" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[4] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "claw" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[5] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "blast" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[6] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "pound" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[7] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "crush" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[8] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "grep" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[9] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "bite" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[10] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "pierce" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[11] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "suck" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } victim->wpn[12] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "allw" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 1000 ) { stc( "Weapon range is 0 to 1000.\n\r", ch ); return; } 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[9] = value; victim->wpn[10] = value; victim->wpn[11] = value; victim->wpn[12] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp ( arg2, "slashi" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_SLASH ) ) { REMOVE_BIT( victim->immune, IMM_SLASH ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_SLASH ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "stabi" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_STAB ) ) { REMOVE_BIT( victim->immune, IMM_STAB ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_STAB ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "smash" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_SMASH ) ) { REMOVE_BIT( victim->immune, IMM_SMASH ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_SMASH ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "animal" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_ANIMAL ) ) { REMOVE_BIT( victim->immune, IMM_ANIMAL ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_ANIMAL ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "misc" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_MISC ) ) { REMOVE_BIT( victim->immune, IMM_MISC ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_MISC ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "charm" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_CHARM ) ) { REMOVE_BIT( victim->immune, IMM_CHARM ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_CHARM ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "hurl" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_HURL ) ) { REMOVE_BIT( victim->immune, IMM_HURL ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_HURL ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "backstab" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_BACKSTAB ) ) { REMOVE_BIT( victim->immune, IMM_BACKSTAB ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_BACKSTAB ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "shielded" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_SHIELDED ) ) { REMOVE_BIT( victim->immune, IMM_SHIELDED ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_SHIELDED ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "kick" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_KICK ) ) { REMOVE_BIT( victim->immune, IMM_KICK ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_KICK ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "disarm" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_DISARM ) ) { REMOVE_BIT( victim->immune, IMM_DISARM ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_DISARM ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "steal" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_STEAL ) ) { REMOVE_BIT( victim->immune, IMM_STEAL ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_STEAL ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "sleep" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_SLEEP ) ) { REMOVE_BIT( victim->immune, IMM_SLEEP ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_SLEEP ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "drain" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_DRAIN ) ) { REMOVE_BIT( victim->immune, IMM_DRAIN ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_DRAIN ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "heat" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_HEAT ) ) { REMOVE_BIT( victim->immune, IMM_HEAT ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_HEAT ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "cold" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_COLD ) ) { REMOVE_BIT( victim->immune, IMM_COLD ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_COLD ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "acid" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_ACID ) ) { REMOVE_BIT( victim->immune, IMM_ACID ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_ACID ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "summon" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_SUMMON ) ) { REMOVE_BIT( victim->immune, IMM_SUMMON ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_SUMMON ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "lightning" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_LIGHTNING ) ) { REMOVE_BIT( victim->immune, IMM_LIGHTNING ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_LIGHTNING ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "sunlight" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( IS_SET ( victim->immune, IMM_SUNLIGHT ) ) { REMOVE_BIT( victim->immune, IMM_SUNLIGHT ); stc( "Immunity removed.\n\r",ch ); return; } else { SET_BIT( victim->immune, IMM_SUNLIGHT ); stc( "Immunity added.\n\r",ch ); return; } } if ( !str_cmp ( arg2, "allis" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } 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_HURL ); SET_BIT( victim->immune, IMM_BACKSTAB ); SET_BIT( victim->immune, IMM_SHIELDED ); SET_BIT( victim->immune, IMM_KICK ); SET_BIT( victim->immune, IMM_DISARM ); SET_BIT( victim->immune, IMM_STEAL ); SET_BIT( victim->immune, IMM_SLEEP ); SET_BIT( victim->immune, IMM_DRAIN ); SET_BIT( victim->immune, IMM_HEAT ); SET_BIT( victim->immune, IMM_COLD ); SET_BIT( victim->immune, IMM_ACID ); SET_BIT( victim->immune, IMM_SUMMON ); SET_BIT( victim->immune, IMM_LIGHTNING ); SET_BIT( victim->immune, IMM_SUNLIGHT ); stc( "All immunities added.\n\r",ch ); return; } if ( !str_cmp ( arg2, "allir" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } REMOVE_BIT( victim->immune, IMM_SLASH ); REMOVE_BIT( victim->immune, IMM_STAB ); REMOVE_BIT( victim->immune, IMM_SMASH ); REMOVE_BIT( victim->immune, IMM_ANIMAL ); REMOVE_BIT( victim->immune, IMM_MISC ); REMOVE_BIT( victim->immune, IMM_CHARM ); REMOVE_BIT( victim->immune, IMM_HURL ); REMOVE_BIT( victim->immune, IMM_BACKSTAB ); REMOVE_BIT( victim->immune, IMM_SHIELDED ); REMOVE_BIT( victim->immune, IMM_KICK ); REMOVE_BIT( victim->immune, IMM_DISARM ); REMOVE_BIT( victim->immune, IMM_STEAL ); REMOVE_BIT( victim->immune, IMM_SLEEP ); REMOVE_BIT( victim->immune, IMM_DRAIN ); REMOVE_BIT( victim->immune, IMM_HEAT ); REMOVE_BIT( victim->immune, IMM_COLD ); REMOVE_BIT( victim->immune, IMM_ACID ); REMOVE_BIT( victim->immune, IMM_SUMMON ); REMOVE_BIT( victim->immune, IMM_LIGHTNING ); REMOVE_BIT( victim->immune, IMM_SUNLIGHT ); stc( "All immunities removed.\n\r",ch ); return; } /* End: Pset Integration Begin: Mset Integration */ if ( !str_cmp( arg2, "str" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Attribute range is 0 to 100.\n\r", ch ); return; } victim->pcdata->perm_str = value; send_to_char("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "int" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Attribute range is 0 to 100.\n\r", ch ); return; } victim->pcdata->perm_int = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "wis" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Attribute range is 0 to 100.\n\r", ch ); return; } victim->pcdata->perm_wis = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "dex" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Attribute range is 0 to 100.\n\r", ch ); return; } victim->pcdata->perm_dex = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "con" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Attribute range is 0 to 100.\n\r", ch ); return; } victim->pcdata->perm_con = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "sex" ) ) { if ( value < 0 || value > 2 ) { stc( "Sex range is 0 to 2.\n\r", ch ); return; } victim->sex = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "level" ) ) { if ( IS_NPC(victim) && ( value < 1 || value > 32767 ) ) { stc( "Level range is 1 to 32767 for mobs.\n\r", ch ); return; } if ( !str_cmp( arg3, "mortal" ) ) value = 2; else if ( !str_cmp( arg3, "avatar" ) ) value = 3; else if ( !str_cmp( arg3, "apprentice" ) ) value = 4; else if ( !str_cmp( arg3, "mage" ) ) value = 5; else if ( !str_cmp( arg3, "archmage" ) ) value = 6; else if ( !str_cmp( arg3, "immortal" ) ) value = 7; else if ( !str_cmp( arg3, "builder" ) ) value = 8; else if ( !str_cmp( arg3, "enforcer" ) ) value = 9; else if ( !str_cmp( arg3, "judge" ) ) value = 10; else if ( !str_cmp( arg3, "deity" ) ) value = 11; else if ( !IS_NPC(victim) ) { stc( "Level should be one of the following:\n\r", ch ); stc( "Mortal, Avatar, Apprentice, Mage, Archmage\n\r", ch ); stc( "Immortal, Builder, Enforcer, Judge, or Deity.\n\r", ch ); return; } if (value >= victim->level && !IS_NPC(victim) ) stc( "Sorry, no can do...\n\r", ch ); else { victim->level = value; victim->trust = value; stc("Ok.\n\r",ch); return; } } if ( !str_cmp( arg2, "exp" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 ) { stc( "Exp must be at least 0.\n\r", ch ); return; } if ( value > 500000000 ) { stc( "No more than 500,000,000 possible.\n\r", ch ); return; } victim->exp = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "gold" ) ) { if ( value < 0 || value > 100000 ); { stc( "Gold range is 0 to 100,000", ch ); return; } victim->gold = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "hp" ) ) { if ( value < 0 || value > 50000 ) { stc( "Hp range is 0 to 50,000.\n\r", ch ); return; } victim->max_hit = value; victim->hit = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "mana" ) ) { if ( value < 0 || value > 50000 ) { stc( "Mana range is 0 to 50,000.\n\r", ch ); return; } victim->max_mana = value; victim->mana = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "move" ) ) { if ( value < 0 || value > 50000 ) { stc( "Move range is 0 to 50,000.\n\r", ch ); return; } victim->max_move = value; victim->move = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "primal" ) ) { if ( value < 0 || value > 10000 ) { stc( "Primal range is 0 to 10000.\n\r", ch ); return; } victim->primal = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "align" ) ) { if ( !str_cmp( argument, "evil" ) ) value = -1000; if ( !str_cmp( argument, "neutral" ) ) value = 0; if ( !str_cmp( argument, "good" ) ) value = 1000; if ( ( value < -1000) || ( value > 1000 ) ) { stc( "Alignment range is -1000 to 1000.\n\r", ch ); return; } victim->alignment = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "alla" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Attribute range is 0 to 100\n\r", ch ); return; } victim->pcdata->perm_str = value; victim->pcdata->perm_int = value; victim->pcdata->perm_wis = value; victim->pcdata->perm_dex = value; victim->pcdata->perm_con = value; return; } if ( !str_cmp( arg2, "thirst" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Thirst range is 0 to 100.\n\r", ch ); return; } victim->pcdata->condition[COND_THIRST] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "drunk" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Drunk range is 0 to 100.\n\r", ch ); return; } victim->pcdata->condition[COND_DRUNK] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "full" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } if ( value < 0 || value > 100 ) { stc( "Full range is 0 to 100.\n\r", ch ); return; } victim->pcdata->condition[COND_FULL] = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "hit" ) ) { if ( ( value < 0 || value > 500 ) ) { stc( "Hitroll range is 0 to 500.\n\r", ch ); return; } victim->hitroll = value; stc("Ok.\n\r",ch); return; } if (!str_cmp( arg2, "dam" ) ) { if ( ( value < 0 || value > 500 ) ) { stc( "Damroll range is 0 to 500.\n\r", ch ); return; } victim->damroll = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "ac" ) ) { if ( ( value < -1000 || value > 1000 ) ) { stc( "Armor class range is -1000 to 1000.\n\r", ch ); return; } victim->armor = value; stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "name" ) ) { if ( !IS_NPC(victim) ) { stc( "Not on PC's.\n\r", ch ); return; } free_string( victim->name ); victim->name = str_dup( arg3 ); stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "short" ) ) { free_string( victim->short_descr ); victim->short_descr = str_dup( arg3 ); if ( !IS_NPC(victim) && ( !str_cmp( arg3,"#n" ) ) ) free_string( victim->short_descr ); stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "long" ) ) { free_string( victim->long_descr ); victim->long_descr = str_dup( arg3 ); if ( !IS_NPC(victim) && ( !str_cmp( arg3,"#n" ) ) ) free_string( victim->long_descr ); stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "desc" ) ) { free_string( victim->description ); victim->description = str_dup( arg3 ); if ( !IS_NPC(victim) && ( !str_cmp( arg3,"#n" ) ) ) free_string( victim->description ); stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "title" ) ) { if ( IS_NPC(victim) ) { stc( "Not on NPC's.\n\r", ch ); return; } set_title( victim, arg3 ); stc("Ok.\n\r",ch); return; } if ( !str_cmp( arg2, "spec" ) ) { if ( !IS_NPC(victim) && victim->trust < 12) { stc( "Not on PC's.\n\r", ch ); return; } if ( ( victim->spec_fun = spec_lookup( arg3 ) ) == 0 ) { stc( "No such spec fun.\n\r", ch ); return; } stc("Ok.\n\r",ch); return; } /*End: Mset Integration*/ }