/************************************************** * * * Some new functions for some pkilling fun! * * Added by the Joker with help * * & ideas from Malice,Kavir & Rotain * * * ***************************************************/ #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" extern void fwrite_char args( ( CHAR_DATA *ch, FILE *fp ) ); extern void fwrite_obj args( ( CHAR_DATA *ch, OBJ_DATA *obj, FILE *fp, int iNest ) ); void do_trap(CHAR_DATA *ch, char *argument) { /* OBJ_DATA *trap; */ OBJ_DATA *used; int dammax; int dam; OBJ_DATA *bomb; /* char buf[MAX_STRING_LENGTH]; */ dammax = 0; dam = 0; bomb = get_eq_char(ch, WEAR_WIELD); if(ch->level < 2) { send_to_char("Huh?\n\r",ch); return; } if(ch->race == 0) { send_to_char("You lack the ability to set a trap.\n\r",ch); return; } if( bomb==NULL ) { send_to_char("You hold nothing in your right hand.\n\r",ch); return; } if( bomb->item_type != ITEM_BOMB) { send_to_char("You can only set a trap with a bomb!\n\r",ch); return; } if( IS_SET(ch->in_room->room_flags, ROOM_SAFE)) { send_to_char("You cannot set a trap in a safe room.\n\r",ch); return; } dammax = bomb->value[3]; for(used=ch->carrying;used;used=used->next_content) { if(used->item_type==ITEM_BOMB && used->value[3]==dammax && IS_SET(used->wear_loc, WEAR_HOLD)) break; } if( !used ) { send_to_char("You lack the essential ingredients for the trap.\n\r", ch); return; } obj_from_char(used); dam = (((ch->damroll + ch->hitroll)/2)*ch->race); if(dam >= dammax) { ch->in_room->bomb = ch->in_room->bomb + dammax; } else { ch->in_room->bomb = ch->in_room->bomb + dam; } if(ch->in_room->bomb > 10000) ch->in_room->bomb = 10000; extract_obj(used); return; } void do_email(CHAR_DATA *ch, char *argument) { if( !IS_NPC( ch ) ) { if( longstring( ch, argument) ) return; smash_tilde( argument ); free_string( ch->pcdata->email); ch->pcdata->email = str_dup(argument); send_to_char("Ok.\n\r",ch); } return; } bool longstring(CHAR_DATA *ch, char *argument) { if( strlen(argument) > 60) { send_to_char("No more than 60 characters please.\n\r",ch); return TRUE; } else return FALSE; } void do_finger(CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; char buf[MAX_INPUT_LENGTH]; char buf1[MAX_INPUT_LENGTH]; bool fOld=FALSE; bool fPlay=FALSE; bool fExtra=FALSE; char* status; static char * const he_she [ ] = { "It", "He", "She" }; strncpy(buf1, "", MAX_INPUT_LENGTH); if( argument[0] == '\0') { send_to_char("Finger who?\n\r",ch); return; } argument[0] = UPPER( argument[0] ); if( !check_parse_name(argument) ) { send_to_char("Illegal name.\n\r",ch); return; } if( !( victim = get_char_world(ch, argument) )) { /* fOld = load_char_obj( &d, argument); if (fOld) victim = d.character; */ } else { fPlay=TRUE; fOld=TRUE; } if(!fOld) { send_to_char("That person is not on Vampire Wars at the moment!\n\r",ch); return; } if(IS_NPC(victim)) { send_to_char("That is a mob!\n\r", ch); return; } if(IS_NPC(ch)) fExtra=FALSE; send_to_char_formatted("----------------------------------------------------\n\r", ch); snprintf(buf, MAX_INPUT_LENGTH, "%s%s.\n\r" , victim->name, victim->pcdata->title); send_to_char_formatted(buf, ch); send_to_char_formatted(victim->description, ch); if( victim->sex < 0 || victim->sex > 2) victim->sex = 0; snprintf( buf, MAX_INPUT_LENGTH, "%s is %d years old.\n\r", he_she[victim->sex], get_age(victim)); send_to_char( buf, ch); snprintf( buf, MAX_INPUT_LENGTH, "%s was created %s\n\r", he_she[victim->sex], victim->createtime); send_to_char( buf, ch); status = " bugged character"; if ( victim->level < 3 ) status = " Mortal"; else if ( victim->level == 3 ) { if ( victim->race == 0 ) status = "n Avatar"; else if ( victim->race >= 1 && victim->race < 5 ) status = "n Immortal"; else if ( victim->race >= 5 && victim->race < 10 ) status = " Fighter"; else if ( victim->race >= 10 && victim->race < 15 ) status = "n Adventurer"; else if ( victim->race >= 15 && victim->race < 20 ) status = " Champion"; else if ( victim->race >= 20 && victim->race < 25 ) status = " Warrior"; else if ( victim->race >= 25 ) status = " Hero"; } else { if ( victim->level == LEVEL_JUSTICAR && IS_SET( victim->act, PLR_VAMPIRE) ) { if ( ch->level < 3 ) status = " clan leader"; else { if ( !str_cmp( victim->clan, "Brujah" ) ) status = " Brujah clan leader"; else if ( !str_cmp( victim->clan, "Caitiff" ) ) status = " sinner"; else if ( !str_cmp( victim->clan, "Cappadocian" ) ) status = " Cappadocian clan leader"; else if ( !str_cmp( victim->clan, "Gangrel" ) ) status = " Gangrel clan leader"; else if ( !str_cmp( victim->clan, "Malkavian" ) ) status = " Malkavian clan leader"; else if ( !str_cmp( victim->clan, "Nosferatu" ) ) status = " Nosferatu clan leader"; else if ( !str_cmp( victim->clan, "Toreador" ) ) status = " Toreador clan leader"; else if ( !str_cmp( victim->clan, "Tremere" ) ) status = " Tremere clan leader"; else if ( !str_cmp( victim->clan, "Ventrue" ) ) status = " Ventrue clan leader"; } } else { status = " member of the Admin team"; } } snprintf( buf, MAX_INPUT_LENGTH, "%s is a%s.\n\r", he_she[victim->sex], status ); send_to_char( buf, ch ); if(victim->pcdata->email[0]!='\0') snprintf(buf, MAX_INPUT_LENGTH, "Email: %s\n\r",victim->pcdata->email); else strncpy( buf, "No email address submitted.\n\r", MAX_INPUT_LENGTH); send_to_char(buf, ch); send_to_char("----------------------------------------------------\n\r", ch); if (fPlay && victim->level >= LEVEL_JUSTICAR) act("$n just retrieved finger information about you.",ch,NULL,victim, TO_VICT); return; } void do_member(CHAR_DATA *ch, char *argument) { CHAR_DATA *mch; char buf[MAX_INPUT_LENGTH]; if( argument[0] == '\0') { send_to_char("Which clan?\n\r",ch); return; } if(!str_cmp(ch->clan, "") && ch->level < LEVEL_GOD) { send_to_char("You have to be a member of a clan to do that!\n\r", ch); return; } if(!str_cmp(ch->clan, argument) || ch->level >= LEVEL_GOD) { send_to_char("-----------= Clan Members =-----------\n\r",ch); for(mch = char_list ; mch != NULL ; mch = mch->next) { if (!IS_NPC(mch) && (!str_cmp(argument,mch->clan))) { if ((mch->vampgen == 2) && (!IS_SET(mch->act, PLR_WIZINVIS))) { snprintf(buf, MAX_INPUT_LENGTH, " %s <Leader of %s> \n\r", mch->name, mch->clan); send_to_char(buf, ch); } else if(IS_EXTRA(mch,EXTRA_PRINCE)) { snprintf(buf, MAX_INPUT_LENGTH, " %s <Prince for %s> \n\r", mch->name, mch->clan); send_to_char( buf, ch); } else if(IS_EXTRA(mch,EXTRA_SIRE)) { snprintf(buf, MAX_INPUT_LENGTH, " %s <Sire for %s> \n\r", mch->name, mch->clan); send_to_char( buf, ch); } else if (!IS_SET(mch->act, PLR_WIZINVIS)) { snprintf(buf, MAX_INPUT_LENGTH, " %s \n\r", mch->name); send_to_char( buf, ch); } } } send_to_char("--------------------------------------\n\r",ch); } else { send_to_char("You cannot get information on that clan.\n\r", ch); } return; } void do_muddie(CHAR_DATA *ch, char *argument) { send_to_char( "You must be joking! Have 0 exp!\n\r", ch); ch->exp = 0; } void do_imminfo( char *argument ) { DESCRIPTOR_DATA *d; if( argument[0] == '\0') { return; } for( d=descriptor_list; d!=NULL; d=d->next) { if( d->connected == CON_PLAYING && d->character->level >= LEVEL_GOD && !IS_SET(d->character->deaf, CHANNEL_IMMINFO)) { send_to_char( "Imminfo -> ", d->character); send_to_char( argument ,d->character); send_to_char( "\n\r", d->character); } } } void do_deposit(CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; int money; argument = one_argument( argument, arg, MAX_INPUT_LENGTH ); if( arg[0] == '\0') { send_to_char( "Deposit how much gold?\n\r", ch); return; } if( !is_number( arg )) { send_to_char( "Er ?? You want to deposit what?? \n\r", ch); return; } money = atoi( arg ); if(!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { send_to_char( "You must be in a bank to deposit gold!\n\r",ch); return; } if( money < 1) return; if( money > ch->gold ) { send_to_char( "You don't have that much gold!\n\r", ch); return; } ch->gold = ch->gold - money; ch->bank = ch->bank + money * 9/10; act( "$n makes a transaction.", ch, NULL, NULL, TO_ROOM); snprintf( buf, MAX_STRING_LENGTH, "You have %ld gold coins in hand, and %ld in the bank.\n\r", ch->gold, ch->bank); send_to_char( buf, ch); return; } void do_withdraw( CHAR_DATA *ch, char * argument) { char arg[MAX_INPUT_LENGTH]; char buf[MAX_STRING_LENGTH]; int money; argument = one_argument( argument, arg, MAX_INPUT_LENGTH ); if( arg[0] == '\0') { send_to_char( "Withdraw how much gold?\n\r",ch); return; } if( !is_number( arg) ) { send_to_char( "You want to withdraw WHAT??\n\r", ch); return; } money = atoi(arg); if(!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { send_to_char( "You must be in a bank to withdraw gold\n\r", ch); return; } if( money < 1) return; if( money > ch->bank) { send_to_char("You don't have that much money in the bank.\n\r",ch); return; } ch->gold = ch->gold + money; ch->bank = ch->bank - money; act( "$n makes a transaction.\n\r", ch, NULL, NULL, TO_ROOM); snprintf( buf, MAX_STRING_LENGTH, "You have %ld gold in hand, and %ld in the bank.\n\r", ch->gold, ch->bank); send_to_char( buf, ch); return; } void do_donate( CHAR_DATA *ch, char *argument) { OBJ_DATA *obj; DESCRIPTOR_DATA *d; char arg[MAX_INPUT_LENGTH]; ROOM_INDEX_DATA *donate; argument = one_argument( argument, arg, MAX_INPUT_LENGTH); if( arg[0] == '\0') { send_to_char( "Donate what?\n\r", ch); return; } if( is_number(arg)) { send_to_char("You cannot donate gold.\n\r", ch); return; } if( !(obj = get_obj_carry( ch, arg ) )) { send_to_char("You do not have that item.\n\r", ch); return; } if( !can_drop_obj( ch, obj )) { send_to_char("You cannot let go of it!\n\r", ch); return; } if( obj->item_type == ITEM_BOMB ) { send_to_char("You cannot donate BOMBS!! \n\r", ch); return; } obj_from_char( obj ); if( !str_cmp(ch->clan, "Brujah")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_BRUJAH_DONROOM)); else if( !str_cmp(ch->clan, "Gangrel")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_GANGREL_DONROOM)); else if( !str_cmp(ch->clan, "Ventrue")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_VENTRUE_DONROOM)); else if( !str_cmp(ch->clan, "Malkavian")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_MALKAVIAN_DONROOM)); else if( !str_cmp(ch->clan, "Tremere")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_TREMERE_DONROOM)); else if( !str_cmp(ch->clan, "Nosferatu")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_NOSFERATU_DONROOM)); else if( !str_cmp(ch->clan, "Toreador")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_TOREADOR_DONROOM)); else if( !str_cmp(ch->clan, "Cappadocian")) obj_to_room( obj, donate= get_room_index( ROOM_VNUM_CAPPADOCIAN_DONROOM)); else obj_to_room( obj, donate = get_room_index( ROOM_VNUM_DONATION_ROOM )); act("You donate $p.", ch, obj, NULL, TO_CHAR); act("$n donates $p.", ch, obj, NULL, TO_ROOM); for( d = descriptor_list; d; d = d->next) { if( d->connected == CON_PLAYING && d->character->in_room == donate && d->character->position > POS_SLEEPING) { snprintf( arg, MAX_INPUT_LENGTH, "%s fades into view on the floor.\n\r", obj->short_descr); send_to_char( arg, d->character ); } } return; } void do_clanitem( CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; OBJ_DATA *obj; const int GOD_LEVEL = LEVEL_SEER; smash_tilde( argument ); argument = one_argument( argument, arg, MAX_INPUT_LENGTH); argument = one_argument( argument, arg2, MAX_INPUT_LENGTH); if( ch->level < LEVEL_JUSTICAR && !IS_EXTRA(ch, EXTRA_TRUSTED)) { send_to_char( "Only for Divine Beings or Clan Leaders! \n\r", ch); return; } if( arg[0] == '\0') { send_to_char( "Create which clan item (1,2 or 3)?\n\r", ch); return; } if( arg2[0] == '\0' && ch->level >= LEVEL_SEER ) { send_to_char( "Create item for which clan ?\n\r", ch); return; } if( arg[0] == '1' ) { if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Brujah")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Brujah")) ) { obj = create_object(get_obj_index( 24900 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Malkavian")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Malkavian")) ) { obj = create_object(get_obj_index( 24903 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Tremere")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Tremere")) ) { obj = create_object(get_obj_index( 24906 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Toreador")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Toreador")) ) { obj = create_object(get_obj_index( 24909 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Ventrue")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Ventrue")) ) { obj = create_object(get_obj_index( 24912 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Nosferatu")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Nosferatu")) ) { obj = create_object(get_obj_index( 24915 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Gangrel")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Gangrel")) ) { obj = create_object(get_obj_index( 24918 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Cappadocian")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Cappadocian")) ) { obj = create_object(get_obj_index( 24929 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } else { send_to_char( "There is no clan item 1 for that clan.\n\r",ch); return; } return; } if( arg[0] == '2' ) { if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Brujah")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Brujah")) ) { obj = create_object(get_obj_index( 24901 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Malkavian")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Malkavian")) ) { obj = create_object(get_obj_index( 24904 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Tremere")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Tremere")) ) { obj = create_object(get_obj_index( 24907 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Toreador")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Toreador")) ) { obj = create_object(get_obj_index( 24910 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Ventrue")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Ventrue")) ) { obj = create_object(get_obj_index( 24913 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Nosferatu")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Nosferatu")) ) { obj = create_object(get_obj_index( 24916 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Gangrel")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Gangrel")) ) { obj = create_object(get_obj_index( 24919 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Cappadocian")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Cappadocian")) ) { obj = create_object(get_obj_index( 24930 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } else { send_to_char( "There is no clan item 2 for your clan.\n\r",ch); return; } return; } if( arg[0] == '3' ) { if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Brujah")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Brujah")) ) { obj = create_object(get_obj_index( 24902 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Malkavian")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Malkavian")) ) { obj = create_object(get_obj_index( 24905 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Tremere")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Tremere")) ) { obj = create_object(get_obj_index( 24908 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Toreador")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Toreador")) ) { obj = create_object(get_obj_index( 24911 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Ventrue")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Ventrue")) ) { obj = create_object(get_obj_index( 24914 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Nosferatu")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Nosferatu")) ) { obj = create_object(get_obj_index( 24917 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Gangrel")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Gangrel")) ) { obj = create_object(get_obj_index( 24920 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } if( ((arg2[0]=='\0') && !str_cmp(ch->clan, "Cappadocian")) || (ch->level >= GOD_LEVEL && !str_cmp(arg2, "Cappadocian")) ) { obj = create_object(get_obj_index( 24931 ), 0); obj_to_char(obj, ch); act( "$n mutters some words and $p appears.", ch, obj, NULL, TO_ROOM); act( "You mutter some words and $p appears.", ch, obj, NULL, TO_CHAR); return; } else { send_to_char( "There is no clan item 3 for your clan.\n\r",ch); return; } return; } return; } void do_godwho( CHAR_DATA *ch, char *argument) { char buf[MAX_STRING_LENGTH]; char arg[MAX_INPUT_LENGTH]; CHAR_DATA *gch; one_argument( argument, arg, MAX_INPUT_LENGTH); if(IS_NPC(ch)) return; send_to_char_formatted("[ Name ] [ Sta ] [ Age ] [ Hits % ] [ Mana % ] [ Move % ] [ Exp ]\n\r",ch); for( gch = char_list; gch != NULL; gch = gch->next) { if( IS_NPC(gch)) continue; if( !can_see(ch,gch)) continue; snprintf( buf, MAX_STRING_LENGTH, "[%-16s] [ %3d ] [ %4d ] [%-6d%3d] [%-6d%3d] [%-6d%3d] [ %7ld ]\n\r", capitalize( gch->name), gch->race, get_age(gch), gch->hit, (gch->hit * 100/ gch->max_hit), gch->mana, (gch->mana * 100/ gch->max_mana), gch->move, (gch->move * 100/ gch->max_move), gch->exp); send_to_char_formatted( buf, ch); } return; } void do_backup( CHAR_DATA *ch, char *argument ) { char chlevel [15]; char buf [MAX_INPUT_LENGTH]; char strsave[MAX_INPUT_LENGTH]; char temp[MAX_INPUT_LENGTH]; FILE *fp; if ( IS_NPC(ch) || ch->level < 2 ) return; if ( ch->desc != NULL && ch->desc->original != NULL ) ch = ch->desc->original; ch->save_time = current_time; fclose( fpReserve ); #if !defined( macintosh) && !defined(MSDOS) snprintf( temp, MAX_INPUT_LENGTH, "%s%s%s%s", BACKUP_DIR, initial( ch->name ), "/", capitalize( ch->name) ); snprintf( strsave, MAX_INPUT_LENGTH, "tmp.file"); #else snprintf( temp, MAX_INPUT_LENGTH, "%s%s", BACKUP_DIR, capitalize( ch->name ) ); snprintf( strsave, MAX_INPUT_LENGTH, "tmp.file"); #endif if ( ( fp = fopen( strsave, "w" ) ) == NULL ) { bug( "Save_char_obj: fopen", 0 ); perror( strsave ); } else { fwrite_char( ch, fp ); if ( ch->carrying != NULL ) fwrite_obj( ch, ch->carrying, fp, 0 ); fprintf( fp, "#END\n" ); if (ch->level >= 9) snprintf(chlevel,15,"<CODER>"); else if (ch->level == 8) snprintf(chlevel,15,"<GOD>"); else if (ch->level == 7) snprintf(chlevel,15,"<DEMIGOD>"); else if (ch->level == 6) snprintf(chlevel,15,"<DEITY>"); else if (ch->level == 5) snprintf(chlevel,15,"<Elder>"); else if (ch->level == 4) snprintf(chlevel,15,"<Builder>"); else if (ch->level == 3) snprintf(chlevel,15,"<Avatar>"); else snprintf(chlevel,15,"<Mortal>"); if (strlen(ch->lasttime) > 1) snprintf(buf, MAX_INPUT_LENGTH, "%s Last logged in on %s", chlevel, ch->lasttime); else snprintf(buf, MAX_INPUT_LENGTH, "%s New player logged in on %s", chlevel, ch->createtime); fprintf( fp, buf); } fclose( fp ); send_to_char("Backed up.\n\r", ch); fpReserve = fopen( NULL_FILE, "r" ); rename( strsave, temp ); return; } void do_delete( CHAR_DATA *ch, char *argument) { char temp[MAX_INPUT_LENGTH]; if ( IS_NPC(ch) ) { send_to_char("Mobs can't delete !\n\r", ch); return; } if(argument[0] == '\0') { send_to_char("Syntax: delete <password> \n\r",ch); return; } if(strcmp(argument, ch->pcdata->pwd) && strcmp(crypt(argument, ch->pcdata->pwd), ch->pcdata->pwd)) { send_to_char("Wrong password!\n\r", ch); return; } snprintf( temp, MAX_INPUT_LENGTH, "mv %s%s%s%s %s%s &\n\r", PLAYER_DIR, initial(ch->name), "/", capitalize(ch->name), DELETE_DIR, capitalize(ch->name)); system(temp); send_to_char( "Ok.\n\r", ch); ch->level = 0; do_quit( ch, ""); return; } void do_omember( CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; bool fOld = FALSE; if( ch->level != LEVEL_CODER && str_cmp(ch->name, "Joker")) return; if( argument[0] == '\0') { send_to_char("Finger who?\n\r",ch); return; } argument[0] = UPPER( argument[0] ); if( !check_parse_name(argument) ) { send_to_char("Illegal name.\n\r",ch); return; } if( (victim = get_char_world(ch, argument)) ) { fOld=TRUE; } if(!fOld) { send_to_char("That person is not on Vampire Wars at the moment!\n\r",ch); return; } if(IS_NPC(victim)) { send_to_char("That is a mob!\n\r", ch); return; } if( !IS_EXTRA(victim, EXTRA_ORGYMEMBER)) { send_to_char("Member added. \n\r",ch); SET_BIT(victim->extra, EXTRA_ORGYMEMBER); send_to_char("You have been accepted into the orgy!\n\r", victim); } else { send_to_char("Member removed. \n\r",ch); REMOVE_BIT(victim->extra, EXTRA_ORGYMEMBER); send_to_char("You have been removed from the orgy!\n\r", victim); } return; } void do_ordain( CHAR_DATA *ch, char *argument) { /* Archrip - CHAR_DATA *victim; */ /* Archrip - bool fOld = FALSE; */ send_to_char("Taken this out for now, did nothing anyway - Archon./n/r", ch); return; /* if( ch->level != LEVEL_CODER && str_cmp(ch->name, "Joker")) return; if( argument[0] == '\0') { send_to_char("Ordain who?\n\r",ch); return; } argument[0] = UPPER( argument[0] ); if( !check_parse_name(argument) ) { send_to_char("Illegal name.\n\r",ch); return; } if( (victim = get_char_world(ch, argument)) ) { fOld=TRUE; } if(!fOld) { send_to_char("That person is not on Vampire Wars at the moment!\n\r",ch); return; } if(IS_NPC(victim)) { send_to_char("That is a mob!\n\r", ch); return; } if( !IS_SET(victim->act, PLR_KNIGHT)) { send_to_char("Member added. \n\r",ch); SET_BIT(victim->act, PLR_KNIGHT); send_to_char("You have been ordained into the order!\n\r", victim); } else { send_to_char("Member removed. \n\r",ch); REMOVE_BIT(victim->act, PLR_KNIGHT); send_to_char("You have been rejected from the order!\n\r", victim); } return; */ } void do_sabbat( CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; bool fOld = FALSE; if( ch->level != LEVEL_CODER && str_cmp(ch->name, "Joker")) return; if( argument[0] == '\0') { send_to_char("Induce who?\n\r",ch); return; } argument[0] = UPPER( argument[0] ); if( !check_parse_name(argument) ) { send_to_char("Illegal name.\n\r",ch); return; } if( (victim = get_char_world(ch, argument)) ) { fOld=TRUE; } if(!fOld) { send_to_char("That person is not on Vampire Wars at the moment!\n\r",ch); return; } if(IS_NPC(victim)) { send_to_char("That is a mob!\n\r", ch); return; } if( !IS_SET(victim->act, PLR_SABBAT)) { send_to_char("Member added. \n\r",ch); SET_BIT(victim->act, PLR_SABBAT); send_to_char("You are now a Sabbat member!\n\r", victim); } else { send_to_char("Member removed. \n\r",ch); REMOVE_BIT(victim->act, PLR_SABBAT); send_to_char("You have been rejected from the Sabbat!\n\r", victim); } return; } void do_clandeposit(CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; long money; argument = one_argument( argument, arg, MAX_INPUT_LENGTH ); if( arg[0] == '\0') { send_to_char( "Deposit how much gold?\n\r", ch); return; } if( !is_number( arg )) { send_to_char( "Er ?? You want to deposit what?? \n\r", ch); return; } if( !IS_SET(ch->act, PLR_VAMPIRE)) { send_to_char( "Only vampire clan members can do this.\n\r",ch); return; } money = atoi( arg ); if(!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { send_to_char( "You must be in a bank to deposit gold!\n\r",ch); return; } if( money < 1) return; if( money > ch->gold ) { send_to_char( "You don't have that much gold!\n\r", ch); return; } if( !str_cmp(ch->clan, "Brujah") ) { ch->gold = ch->gold - money; clan_infotable[1].members = clan_infotable[1].members + (money * 9/10); send_to_char( "You have just deposited money into the Brujah account.\n\r",ch); } else if( !str_cmp(ch->clan, "Malkavian") ) { ch->gold = ch->gold - money; clan_infotable[2].members = clan_infotable[2].members + (money * 9/10); send_to_char( "You have just deposited money into the Malkavian account.\n\r",ch); } else if( !str_cmp(ch->clan, "Ventrue") ) { ch->gold = ch->gold - money; clan_infotable[3].members = clan_infotable[3].members + (money * 9/10); send_to_char( "You have just deposited money into the Ventrue account.\n\r",ch); } else if( !str_cmp(ch->clan, "Tremere") ) { ch->gold = ch->gold - money; clan_infotable[4].members = clan_infotable[4].members + (money * 9/10); send_to_char( "You have just deposited money into the Tremere account.\n\r",ch); } else if( !str_cmp(ch->clan, "Gangrel") ) { ch->gold = ch->gold - money; clan_infotable[5].members = clan_infotable[5].members + (money * 9/10); send_to_char( "You have just deposited money into the Gangrel account.\n\r",ch); } else if( !str_cmp(ch->clan, "Toreador") ) { ch->gold = ch->gold - money; clan_infotable[6].members = clan_infotable[6].members + (money * 9/10); send_to_char( "You have just deposited money into the Toreador account.\n\r",ch); } else if( !str_cmp(ch->clan, "Nosferatu") ) { ch->gold = ch->gold - money; clan_infotable[7].members = clan_infotable[7].members + (money * 9/10); send_to_char( "You have just deposited money into the Nosferatu account.\n\r",ch); } else if( !str_cmp(ch->clan, "Caitiff") ) { ch->gold = ch->gold - money; clan_infotable[8].members = clan_infotable[8].members + (money * 9/10); send_to_char( "You have just deposited money into the Caitiff account.\n\r",ch); } else { send_to_char( "You do not have a clan, so dont be silly!\n\r",ch); return; } act( "$n makes a transaction.", ch, NULL, NULL, TO_ROOM); return; } void do_clanwithdraw( CHAR_DATA *ch, char * argument) { char arg[MAX_INPUT_LENGTH]; long money; argument = one_argument( argument, arg, MAX_INPUT_LENGTH ); if( arg[0] == '\0') { send_to_char( "Withdraw how much gold?\n\r",ch); return; } if( !is_number( arg) ) { send_to_char( "You want to withdraw WHAT??\n\r", ch); return; } if( !IS_SET(ch->act, PLR_VAMPIRE)) { send_to_char( "Only vampire clan members can do this.\n\r",ch); return; } money = atoi(arg); if(!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { send_to_char( "You must be in a bank to withdraw gold\n\r", ch); return; } if( money < 1) return; if( !str_cmp(ch->clan, "Brujah") ) { if( money > clan_infotable[1].members) { send_to_char("The Brujah account does not have that much money\n\r",ch); return; } else clan_infotable[1].members = clan_infotable[1].members - money; } else if( !str_cmp(ch->clan, "Malkavian") ) { if( money > clan_infotable[2].members) { send_to_char("The Malkavian account does not have that much money\n\r",ch); return; } else clan_infotable[2].members = clan_infotable[2].members - money; } else if( !str_cmp(ch->clan, "Ventrue") ) { if( money > clan_infotable[3].members) { send_to_char("The Ventrue account does not have that much money\n\r",ch); return; } else clan_infotable[3].members = clan_infotable[3].members - money; } else if( !str_cmp(ch->clan, "Tremere") ) { if( money > clan_infotable[4].members) { send_to_char("The Tremere account does not have that much money\n\r",ch); return; } else clan_infotable[4].members = clan_infotable[4].members - money; } else if( !str_cmp(ch->clan, "Gangrel") ) { if( money > clan_infotable[5].members) { send_to_char("The Gangrel account does not have that much money\n\r",ch); return; } else clan_infotable[5].members = clan_infotable[5].members - money; } else if( !str_cmp(ch->clan, "Toreador") ) { if( money > clan_infotable[6].members) { send_to_char("The Toreador account does not have that much money\n\r",ch); return; } else clan_infotable[6].members = clan_infotable[6].members - money; } else if( !str_cmp(ch->clan, "Nosferatu") ) { if( money > clan_infotable[7].members) { send_to_char("The Nosferatu account does not have that much money\n\r",ch); return; } else clan_infotable[7].members = clan_infotable[7].members - money; } else if( !str_cmp(ch->clan, "Caitiff") ) { if( money > clan_infotable[8].members) { send_to_char("The Caitiff account does not have that much money\n\r",ch); return; } else clan_infotable[8].members = clan_infotable[8].members - money; } else { send_to_char( "You do not have a clan, so dont be silly!\n\r",ch); return; } ch->gold = ch->gold + money; act( "$n makes a transaction.\n\r", ch, NULL, NULL, TO_ROOM); return; } void do_clanbalance(CHAR_DATA *ch, char *argument) { char buf[MAX_STRING_LENGTH]; int clanno = 0; if( !IS_SET(ch->act, PLR_VAMPIRE)) { send_to_char( "Only vampire clan members can do this.\n\r",ch); return; } if(!IS_SET(ch->in_room->room_flags, ROOM_BANK)) { send_to_char( "You must be in a bank to get a balance!\n\r",ch); return; } if( ch->level > LEVEL_ORACLE) { clanno=clan_infotable[1].members; snprintf( buf, MAX_STRING_LENGTH, "Brujah = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[2].members; snprintf( buf, MAX_STRING_LENGTH, "Malkavian = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[3].members; snprintf( buf, MAX_STRING_LENGTH, "Ventrue = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[4].members; snprintf( buf, MAX_STRING_LENGTH, "Tremere = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[5].members; snprintf( buf, MAX_STRING_LENGTH, "Gangrel = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[6].members; snprintf( buf, MAX_STRING_LENGTH, "Toreador = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[7].members; snprintf( buf, MAX_STRING_LENGTH, "Nosferatu = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); clanno=clan_infotable[8].members; snprintf( buf, MAX_STRING_LENGTH, "Caitiff = %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); return; } if( !str_cmp(ch->clan, "Brujah") ) { clanno = clan_infotable[1].members; } else if( !str_cmp(ch->clan, "Malkavian") ) { clanno = clan_infotable[2].members; } else if( !str_cmp(ch->clan, "Ventrue") ) { clanno = clan_infotable[3].members; } else if( !str_cmp(ch->clan, "Tremere") ) { clanno = clan_infotable[4].members; } else if( !str_cmp(ch->clan, "Gangrel") ) { clanno = clan_infotable[5].members; } else if( !str_cmp(ch->clan, "Toreador") ) { clanno = clan_infotable[6].members; } else if( !str_cmp(ch->clan, "Nosferatu") ) { clanno = clan_infotable[7].members; } else if( !str_cmp(ch->clan, "Caitiff") ) { clanno =clan_infotable[8].members; } else { send_to_char( "You do not have a clan, so dont be silly!\n\r",ch); return; } snprintf( buf, MAX_STRING_LENGTH, "Your clan currently has %d gold in the bank.\n\r", clanno); send_to_char(buf,ch); return; } void do_personal( CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; bool fOld = FALSE; if( ch->level != LEVEL_CODER && str_cmp(ch->name, "Joker")) return; if( argument[0] == '\0') { send_to_char("Finger who?\n\r",ch); return; } argument[0] = UPPER( argument[0] ); if( !check_parse_name(argument) ) { send_to_char("Illegal name.\n\r",ch); return; } if( (victim = get_char_world(ch, argument)) ) { fOld=TRUE; } if(!fOld) { send_to_char("That person is not on Vampire Wars at the moment!\n\r",ch); return; } if(IS_NPC(victim)) { send_to_char("That is a mob!\n\r", ch); return; } if( !IS_EXTRA(victim, EXTRA_PERSONAL)) { send_to_char("Member added. \n\r",ch); SET_BIT(victim->extra, EXTRA_PERSONAL); send_to_char("You are now on the personal channel.\n\r", victim); } else { send_to_char("Member removed. \n\r",ch); REMOVE_BIT(victim->extra, EXTRA_PERSONAL); send_to_char("You are no longer on the personal channel.\n\r", victim); } return; } void do_outcast(CHAR_DATA *ch, char *argument) { char arg [MAX_INPUT_LENGTH]; CHAR_DATA *victim; one_argument( argument, arg, MAX_INPUT_LENGTH); if( arg[0] == '\0') { send_to_char("Outcast who?\n\r",ch); return; } if( NULL == (victim = get_char_world(ch, arg)) ) { send_to_char("That person is not on Vampire Wars at the moment!\n\r",ch); return; } if(IS_NPC(victim)) { send_to_char("That is a mob!\n\r", ch); return; } if( !strcmp(victim->clan, "")) { send_to_char("That person is not in a clan\n\r", ch); return; } if( !strcmp(victim->clan, "Caitiff")) { send_to_char("That person is Caitiff already!\n\r", ch); return; } if( !strcmp(ch->clan, victim->clan)) { send_to_char("You have been cast out of your clan!\n\r", victim); send_to_char("Ok.\n\r", ch); free_string( victim->clan); victim->clan = str_dup( "Caitiff"); return; } return; } void do_vouch(CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; char buf[MAX_INPUT_LENGTH]; int clannumber; clannumber = 0; if( argument[0] == '\0') { send_to_char("Vouch for who?\n\r",ch); return; } argument[0] = UPPER( argument[0]); if((victim = get_char_room(ch, argument))==NULL) { send_to_char("That player is not here.\n\r",ch); return; } if( IS_NPC(victim)) { send_to_char("That is a mob!\n\r",ch); return; } if ( ch == victim ) { send_to_char( "You cannot bite yourself.\n\r", ch ); return; } if (!IS_SET(ch->act, PLR_VAMPIRE)) { send_to_char("Huh?\n\r",ch); return; } if( IS_SET(victim->act, PLR_VAMPIRE)) { send_to_char("They are already a vampire!\n\r",ch); return; } if (ch->practice < 5 && ch->beast != 100) { send_to_char("You cannot afford the 5 primal to create a childe.\n\r",ch); return; } if(victim->practice < 10 && ch->beast != 100) { send_to_char("You cannot afford the 10 primal to join the clan.\n\r",victim); return; } if ( victim->level < 3 ) { send_to_char( "Only avatars can be bitten in!.\n\r", ch ); return; } if (IS_SET(victim->act, PLR_VAMPIRE) && ch->beast != 100) { send_to_char( "But they are already a vampire!\n\r", ch ); return; } if (!IS_IMMUNE(victim,IMM_VAMPIRE) && ch->beast != 100) { send_to_char( "You cannot bite an unwilling person.\n\r", ch ); return; } if( ch->in_room->vnum == 32000) { if (str_cmp(ch->clan,"Ventrue") && (ch->vampgen != 1) ) { send_to_char( "You need to be Ventrue to do this!\n\r", ch ); return; } clannumber = 1; } if( ch->in_room->vnum == 32001) { if (str_cmp(ch->clan,"Malkavian") && (ch->vampgen != 1) ) { send_to_char( "You need to be Malkavian to do this!\n\r", ch ); return; } clannumber = 2; } if( ch->in_room->vnum == 32002) { if (str_cmp(ch->clan,"Brujah") && (ch->vampgen != 1) ) { send_to_char( "You need to be Brujah to do this!\n\r", ch ); return; } clannumber = 3; } if( ch->in_room->vnum == 32003) { if (str_cmp(ch->clan,"Gangrel") && (ch->vampgen != 1) ) { send_to_char( "You need to be Gangrel to do this!\n\r", ch ); return; } clannumber = 4; } if( ch->in_room->vnum == 32004) { if (str_cmp(ch->clan,"Nosferatu") && (ch->vampgen != 1) ) { send_to_char( "You need to be Nosferatu to do this!\n\r", ch ); return; } clannumber = 5; } if( ch->in_room->vnum == 32005) { if (str_cmp(ch->clan,"Tremere") && (ch->vampgen != 1) ) { send_to_char( "You need to be Tremere to do this!\n\r", ch ); return; } clannumber = 6; } if( ch->in_room->vnum == 32006) { if (str_cmp(ch->clan,"Toreador") && (ch->vampgen != 1) ) { send_to_char( "You need to be Toreador to do this!\n\r", ch ); return; } clannumber = 7; } if( ch->in_room->vnum == 32007) { if (str_cmp(ch->clan,"Cappadocian") && (ch->vampgen != 1) ) { send_to_char( "You need to be Cappadocian to do this!\n\r", ch ); return; } clannumber = 8; } if(clannumber < 1){return;} if(clannumber > 8){return;} SET_BIT(victim->act, PLR_VAMPIRE); if ( victim->vampgen != 0 && (victim->vampgen <= ( ch->vampgen + 1 ) ) ) { send_to_char( "Your vampiric status has been restored.\n\r", victim ); return; } send_to_char( "Vouch was successful.\n\r",ch); send_to_char( "You are now a vampire.\n\r", victim ); if (ch->vampgen < 5) { victim->vampgen = 5; } else { victim->vampgen = ch->vampgen + 1; } ch->practice = ch->practice - 5; victim->practice = victim->practice - 50; if(ch->practice<0) { ch->practice=0; } if(victim->practice<0) { victim->practice=0; } free_string(victim->lord); if (clannumber == 1 ) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Nergal %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 2) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Rasputzin %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 3) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Brujah %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 4) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Lilith %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 5) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Ninmug %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 6) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Tremere %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 7) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Loz %s",ch->name); victim->lord=str_dup(buf); } else if(clannumber == 8) { snprintf(buf, MAX_INPUT_LENGTH, "Joker Genghis Clive %s",ch->name); victim->lord=str_dup(buf); } if (ch->vampgen != 1) { if (victim->vamppass == -1) victim->vamppass = victim->vampaff; /* Remove hp bonus from fortitude */ if (IS_VAMPPASS(victim,VAM_FORTITUDE) && !IS_VAMPAFF(victim,VAM_FORTITUDE)) { victim->max_hit = victim->max_hit - 0; victim->hit = victim->hit - 0; if (victim->hit < 1) victim->hit = 1; } /* Remove any old powers they might have */ if (IS_VAMPPASS(victim,VAM_PROTEAN)) {REMOVE_BIT(victim->vamppass, VAM_PROTEAN); REMOVE_BIT(victim->vampaff, VAM_PROTEAN);} if (IS_VAMPPASS(victim,VAM_CELERITY)) {REMOVE_BIT(victim->vamppass, VAM_CELERITY); REMOVE_BIT(victim->vampaff, VAM_CELERITY);} if (IS_VAMPPASS(victim,VAM_FORTITUDE)) {REMOVE_BIT(victim->vamppass, VAM_FORTITUDE); REMOVE_BIT(victim->vampaff, VAM_FORTITUDE);} if (IS_VAMPPASS(victim,VAM_POTENCE)) {REMOVE_BIT(victim->vamppass, VAM_POTENCE); REMOVE_BIT(victim->vampaff, VAM_POTENCE);} if (IS_VAMPPASS(victim,VAM_OBFUSCATE)) REMOVE_BIT(victim->vampaff, VAM_OBFUSCATE);} if (IS_VAMPPASS(victim,VAM_OBTENEBRATION)) {REMOVE_BIT(victim->vamppass, VAM_OBTENEBRATION); REMOVE_BIT(victim->vampaff, VAM_OBTENEBRATION);} if (IS_VAMPPASS(victim,VAM_SERPENTIS)) {REMOVE_BIT(victim->vamppass, VAM_SERPENTIS); REMOVE_BIT(victim->vampaff, VAM_SERPENTIS);} if (IS_VAMPPASS(victim,VAM_AUSPEX)) {REMOVE_BIT(victim->vamppass, VAM_AUSPEX); REMOVE_BIT(victim->vampaff, VAM_AUSPEX);} if (IS_VAMPPASS(victim,VAM_DOMINATE)) {REMOVE_BIT(victim->vamppass, VAM_DOMINATE); REMOVE_BIT(victim->vampaff, VAM_DOMINATE);} free_string(victim->clan); victim->clan=str_dup(ch->clan); /* Give the vampire the base powers of their sire */ if (IS_VAMPPASS(ch,VAM_FORTITUDE) && !IS_VAMPAFF(victim,VAM_FORTITUDE)) { victim->max_hit = victim->max_hit + 0; victim->hit = victim->hit + 0; } if (IS_VAMPPASS(ch,VAM_PROTEAN)) {SET_BIT(victim->vamppass, VAM_PROTEAN); SET_BIT(victim->vampaff, VAM_PROTEAN);} if (IS_VAMPPASS(ch,VAM_CELERITY)) {SET_BIT(victim->vamppass, VAM_CELERITY); SET_BIT(victim->vampaff, VAM_CELERITY);} if (IS_VAMPPASS(ch,VAM_FORTITUDE)) {SET_BIT(victim->vamppass, VAM_FORTITUDE); SET_BIT(victim->vampaff, VAM_FORTITUDE);} if (IS_VAMPPASS(ch,VAM_POTENCE)) {SET_BIT(victim->vamppass, VAM_POTENCE); SET_BIT(victim->vampaff, VAM_POTENCE);} if (IS_VAMPPASS(ch,VAM_OBFUSCATE)) {SET_BIT(victim->vamppass, VAM_OBFUSCATE); SET_BIT(victim->vampaff, VAM_OBFUSCATE);} if (IS_VAMPPASS(ch,VAM_OBTENEBRATION)) {SET_BIT(victim->vamppass, VAM_OBTENEBRATION); SET_BIT(victim->vampaff, VAM_OBTENEBRATION);} if (IS_VAMPPASS(ch,VAM_SERPENTIS)) {SET_BIT(victim->vamppass, VAM_SERPENTIS); SET_BIT(victim->vampaff, VAM_SERPENTIS);} if (IS_VAMPPASS(ch,VAM_AUSPEX)) {SET_BIT(victim->vamppass, VAM_AUSPEX); SET_BIT(victim->vampaff, VAM_AUSPEX);} if (IS_VAMPPASS(ch,VAM_DOMINATE)) {SET_BIT(victim->vamppass, VAM_DOMINATE); SET_BIT(victim->vampaff, VAM_DOMINATE);} return; } void do_weapontable( CHAR_DATA *ch , char *argument ) { /* ADDED by Joker */ /* Function to produce table of weapon levels */ char buf [MAX_STRING_LENGTH]; char buf1 [MAX_STRING_LENGTH]; char buf2 [MAX_STRING_LENGTH]; char buf3 [MAX_STRING_LENGTH]; char buf4 [MAX_STRING_LENGTH]; char buf5 [MAX_STRING_LENGTH]; char buf6 [MAX_STRING_LENGTH]; char buf7 [MAX_STRING_LENGTH]; char buf8 [MAX_STRING_LENGTH]; char buf9 [MAX_STRING_LENGTH]; char buf10 [MAX_STRING_LENGTH]; char buf11 [MAX_STRING_LENGTH]; char buf12 [MAX_STRING_LENGTH]; char bufskill [35]; char bufskill1 [35]; char bufskill2 [35]; char bufskill3 [35]; char bufskill4 [35]; char bufskill5 [35]; char bufskill6 [35]; char bufskill7 [35]; char bufskill8 [35]; char bufskill9 [35]; char bufskill10 [35]; char bufskill11 [35]; char bufskill12 [35]; /* safety for shagged pfiles */ /* npc check */ if (IS_NPC(ch)) return; if (ch->wpn[0] >=201 || ch->wpn[1] >=201 || ch->wpn[2] >=201 || ch->wpn[3] >=201 || ch->wpn[4] >=201 || ch->wpn[5] >=201 || ch->wpn[6] >=201 || ch->wpn[7] >=201 || ch->wpn[8] >=201 || ch->wpn[9] >=201 || ch->wpn[10] >=201 || ch->wpn[11] >=201 || ch->wpn[12] >=201 ) { send_to_char("You have a shagged weapon - ERROR - contact a coder!\n\r", ch); return; } /* begin check for weapons */ /* Check their 1st Weapon */ if(ch->wpn[0] <= 25 ) snprintf(bufskill, 35,"totally unskilled in" ); else if(ch->wpn[0] >= 26 && ch->wpn[0] <=50 ) snprintf(bufskill, 35,"slightly unskilled in" ); else if(ch->wpn[0] >= 51 && ch->wpn[0] <=75 ) snprintf(bufskill, 35, "fairly competent in"); else if(ch->wpn[0] >= 76 && ch->wpn[0] <=100 ) snprintf(bufskill, 35, "highly skilled in"); else if(ch->wpn[0] >=101 && ch->wpn[0] <=125 ) snprintf(bufskill, 35, "very dangerous in"); else if(ch->wpn[0] >=126 && ch->wpn[0] <=150 ) snprintf(bufskill, 35, "extremely deadly in"); else if(ch->wpn[0] >=151 && ch->wpn[0] <=175 ) snprintf(bufskill, 35, "an expert in"); else if(ch->wpn[0] >=176 && ch->wpn[0] <=198 ) snprintf(bufskill, 35, "a master in"); else if(ch->wpn[0] == 199 ) snprintf(bufskill, 35, "on the verge of grand mastery of"); else if(ch->wpn[0] == 200 ) snprintf(bufskill, 35, "a grand master of"); else send_to_char("BUG in hitting weapon -- contact a coder!\n\r", ch); if(ch->wpn[1] <= 25 ) snprintf(bufskill1, 35,"totally unskilled in" ); else if(ch->wpn[1] >= 26 && ch->wpn[1] <=50 ) snprintf(bufskill1, 35,"slightly unskilled in" ); else if(ch->wpn[1] >= 51 && ch->wpn[1] <=75 ) snprintf(bufskill1, 35, "fairly competent in"); else if(ch->wpn[1] >= 76 && ch->wpn[1] <=100 ) snprintf(bufskill1, 35, "highly skilled in"); else if(ch->wpn[1] >=101 && ch->wpn[1] <=125 ) snprintf(bufskill1, 35, "very dangerous in"); else if(ch->wpn[1] >=126 && ch->wpn[1] <=150 ) snprintf(bufskill1, 35, "extremely deadly in"); else if(ch->wpn[1] >=151 && ch->wpn[1] <=175 ) snprintf(bufskill1, 35, "an expert in"); else if(ch->wpn[1] >=176 && ch->wpn[1] <=198 ) snprintf(bufskill1, 35, "a master in"); else if(ch->wpn[1] == 199 ) snprintf(bufskill1, 35, "on the verge of grand mastery of"); else if(ch->wpn[1] == 200 ) snprintf(bufskill1, 35, "a grand master of"); else send_to_char("BUG in slicing weapon -- contact a coder!\n\r", ch); if(ch->wpn[2] <= 25 ) snprintf(bufskill2, 35,"totally unskilled in" ); else if(ch->wpn[2] >= 26 && ch->wpn[2] <=50 ) snprintf(bufskill2, 35,"slightly unskilled in" ); else if(ch->wpn[2] >= 51 && ch->wpn[2] <=75 ) snprintf(bufskill2, 35, "fairly competent in"); else if(ch->wpn[2] >= 76 && ch->wpn[2] <=100 ) snprintf(bufskill2, 35, "highly skilled in"); else if(ch->wpn[2] >=101 && ch->wpn[2] <=125 ) snprintf(bufskill2, 35, "very dangerous in"); else if(ch->wpn[2] >=126 && ch->wpn[2] <=150 ) snprintf(bufskill2, 35, "extremely deadly in"); else if(ch->wpn[2] >=151 && ch->wpn[2] <=175 ) snprintf(bufskill2, 35, "an expert in"); else if(ch->wpn[2] >=176 && ch->wpn[2] <=198 ) snprintf(bufskill2, 35, "a master in"); else if(ch->wpn[2] == 199 ) snprintf(bufskill2, 35, "on the verge of grand mastery of"); else if(ch->wpn[2] == 200 ) snprintf(bufskill2, 35, "a grand master of"); else send_to_char("BUG in stabbing weapon -- contact a coder!\n\r", ch); if(ch->wpn[3] <= 25 ) snprintf(bufskill3, 35,"totally unskilled in" ); else if(ch->wpn[3] >= 26 && ch->wpn[3] <=50 ) snprintf(bufskill3, 35,"slightly unskilled in" ); else if(ch->wpn[3] >= 51 && ch->wpn[3] <=75 ) snprintf(bufskill3, 35, "fairly competent in"); else if(ch->wpn[3] >= 76 && ch->wpn[3] <=100 ) snprintf(bufskill3, 35, "highly skilled in"); else if(ch->wpn[3] >=101 && ch->wpn[3] <=125 ) snprintf(bufskill3, 35, "very dangerous in"); else if(ch->wpn[3] >=126 && ch->wpn[3] <=150 ) snprintf(bufskill3, 35, "extremely deadly in"); else if(ch->wpn[3] >=151 && ch->wpn[3] <=175 ) snprintf(bufskill3, 35, "an expert in"); else if(ch->wpn[3] >=176 && ch->wpn[3] <=198 ) snprintf(bufskill3, 35, "a master in"); else if(ch->wpn[3] == 199 ) snprintf(bufskill3, 35, "on the verge of grand mastery of"); else if(ch->wpn[3] == 200 ) snprintf(bufskill3, 35, "a grand master of"); else send_to_char("BUG in slashing weapon -- contact a coder!\n\r", ch); if(ch->wpn[4] <= 25 ) snprintf(bufskill4, 35,"totally unskilled in" ); else if(ch->wpn[4] >= 26 && ch->wpn[4] <=50 ) snprintf(bufskill4, 35,"slightly unskilled in" ); else if(ch->wpn[4] >= 51 && ch->wpn[4] <=75 ) snprintf(bufskill4, 35, "fairly competent in"); else if(ch->wpn[4] >= 76 && ch->wpn[4] <=100 ) snprintf(bufskill4, 35, "highly skilled in"); else if(ch->wpn[4] >=101 && ch->wpn[4] <=125 ) snprintf(bufskill4, 35, "very dangerous in"); else if(ch->wpn[4] >=126 && ch->wpn[4] <=150 ) snprintf(bufskill4, 35, "extremely deadly in"); else if(ch->wpn[4] >=151 && ch->wpn[4] <=175 ) snprintf(bufskill4, 35, "an expert in"); else if(ch->wpn[4] >=176 && ch->wpn[4] <=198 ) snprintf(bufskill4, 35, "a master in"); else if(ch->wpn[4] == 199 ) snprintf(bufskill4, 35, "on the verge of grand mastery of"); else if(ch->wpn[4] == 200 ) snprintf(bufskill4, 35, "a grand master of"); else send_to_char("BUG in whipping weapon -- contact a coder!\n\r", ch); if(ch->wpn[5] <= 25 ) snprintf(bufskill5, 35,"totally unskilled in" ); else if(ch->wpn[5] >= 26 && ch->wpn[5] <=50 ) snprintf(bufskill5, 35,"slightly unskilled in" ); else if(ch->wpn[5] >= 51 && ch->wpn[5] <=75 ) snprintf(bufskill5, 35, "fairly competent in"); else if(ch->wpn[5] >= 76 && ch->wpn[5] <=100 ) snprintf(bufskill5, 35, "highly skilled in"); else if(ch->wpn[5] >=101 && ch->wpn[5] <=125 ) snprintf(bufskill5, 35, "very dangerous in"); else if(ch->wpn[5] >=126 && ch->wpn[5] <=150 ) snprintf(bufskill5, 35, "extremely deadly in"); else if(ch->wpn[5] >=151 && ch->wpn[5] <=175 ) snprintf(bufskill5, 35, "an expert in"); else if(ch->wpn[5] >=176 && ch->wpn[5] <=198 ) snprintf(bufskill5, 35, "a master in"); else if(ch->wpn[5] == 199 ) snprintf(bufskill5, 35, "on the verge of grand mastery of"); else if(ch->wpn[5] == 200 ) snprintf(bufskill5, 35, "a grand master of"); else send_to_char("BUG in clawing weapon -- contact a coder!\n\r", ch); if(ch->wpn[6] <= 25 ) snprintf(bufskill6, 35,"totally unskilled in" ); else if(ch->wpn[6] >= 26 && ch->wpn[6] <=50 ) snprintf(bufskill6, 35,"slightly unskilled in" ); else if(ch->wpn[6] >= 51 && ch->wpn[6] <=75 ) snprintf(bufskill6, 35, "fairly competent in"); else if(ch->wpn[6] >= 76 && ch->wpn[6] <=100 ) snprintf(bufskill6, 35, "highly skilled in"); else if(ch->wpn[6] >=101 && ch->wpn[6] <=125 ) snprintf(bufskill6, 35, "very dangerous in"); else if(ch->wpn[6] >=126 && ch->wpn[6] <=150 ) snprintf(bufskill6, 35, "extremely deadly in"); else if(ch->wpn[6] >=151 && ch->wpn[6] <=175 ) snprintf(bufskill6, 35, "an expert in"); else if(ch->wpn[6] >=176 && ch->wpn[6] <=198 ) snprintf(bufskill6, 35, "a master in"); else if(ch->wpn[6] == 199 ) snprintf(bufskill6, 35, "on the verge of grand mastery of"); else if(ch->wpn[6] == 200 ) snprintf(bufskill6, 35, "a grand master of"); else send_to_char("BUG in blasting weapon -- contact a coder!\n\r", ch); if(ch->wpn[7] <= 25 ) snprintf(bufskill7, 35,"totally unskilled in" ); else if(ch->wpn[7] >= 26 && ch->wpn[7] <=50 ) snprintf(bufskill7, 35,"slightly unskilled in" ); else if(ch->wpn[7] >= 51 && ch->wpn[7] <=75 ) snprintf(bufskill7, 35, "fairly competent in"); else if(ch->wpn[7] >= 76 && ch->wpn[7] <=100 ) snprintf(bufskill7, 35, "highly skilled in"); else if(ch->wpn[7] >=101 && ch->wpn[7] <=125 ) snprintf(bufskill7, 35, "very dangerous in"); else if(ch->wpn[7] >=126 && ch->wpn[7] <=150 ) snprintf(bufskill7, 35, "extremely deadly in"); else if(ch->wpn[7] >=151 && ch->wpn[7] <=175 ) snprintf(bufskill7, 35, "an expert in"); else if(ch->wpn[7] >=176 && ch->wpn[7] <=198 ) snprintf(bufskill7, 35, "a master in"); else if(ch->wpn[7] == 199 ) snprintf(bufskill7, 35, "on the verge of grand mastery of"); else if(ch->wpn[7] == 200 ) snprintf(bufskill7, 35, "a grand master of"); else send_to_char("BUG in pounding weapon -- contact a coder!\n\r", ch); if(ch->wpn[8] <= 25 ) snprintf(bufskill8, 35,"totally unskilled in" ); else if(ch->wpn[8] >= 26 && ch->wpn[8] <=50 ) snprintf(bufskill8, 35,"slightly unskilled in" ); else if(ch->wpn[8] >= 51 && ch->wpn[8] <=75 ) snprintf(bufskill8, 35, "fairly competent in"); else if(ch->wpn[8] >= 76 && ch->wpn[8] <=100 ) snprintf(bufskill8, 35, "highly skilled in"); else if(ch->wpn[8] >=101 && ch->wpn[8] <=125 ) snprintf(bufskill8, 35, "very dangerous in"); else if(ch->wpn[8] >=126 && ch->wpn[8] <=150 ) snprintf(bufskill8, 35, "extremely deadly in"); else if(ch->wpn[8] >=151 && ch->wpn[8] <=175 ) snprintf(bufskill8, 35, "an expert in"); else if(ch->wpn[8] >=176 && ch->wpn[8] <=198 ) snprintf(bufskill8, 35, "a master in"); else if(ch->wpn[8] == 199 ) snprintf(bufskill8, 35, "on the verge of grand mastery of"); else if(ch->wpn[8] == 200 ) snprintf(bufskill8, 35, "a grand master of"); else send_to_char("BUG in crushing weapon -- contact a coder!\n\r", ch); if(ch->wpn[9] <= 25 ) snprintf(bufskill9, 35,"totally unskilled in" ); else if(ch->wpn[9] >= 26 && ch->wpn[9] <=50 ) snprintf(bufskill9, 35,"slightly unskilled in" ); else if(ch->wpn[9] >= 51 && ch->wpn[9] <=75 ) snprintf(bufskill9, 35, "fairly competent in"); else if(ch->wpn[9] >= 76 && ch->wpn[9] <=100 ) snprintf(bufskill9, 35, "highly skilled in"); else if(ch->wpn[9] >=101 && ch->wpn[9] <=125 ) snprintf(bufskill9, 35, "very dangerous in"); else if(ch->wpn[9] >=126 && ch->wpn[9] <=150 ) snprintf(bufskill9, 35, "extremely deadly in"); else if(ch->wpn[9] >=151 && ch->wpn[9] <=175 ) snprintf(bufskill9, 35, "an expert in"); else if(ch->wpn[9] >=176 && ch->wpn[9] <=198 ) snprintf(bufskill9, 35, "a master in"); else if(ch->wpn[9] == 199 ) snprintf(bufskill9, 35, "on the verge of grand mastery of"); else if(ch->wpn[9] == 200 ) snprintf(bufskill9, 35, "a grand master of"); else send_to_char("BUG in grepping weapon -- contact a coder!\n\r", ch); if(ch->wpn[10] <= 25 ) snprintf(bufskill10, 35,"totally unskilled in" ); else if(ch->wpn[10] >= 26 && ch->wpn[10] <=50 ) snprintf(bufskill10, 35,"slightly unskilled in" ); else if(ch->wpn[10] >= 51 && ch->wpn[10] <=75 ) snprintf(bufskill10, 35, "fairly competent in"); else if(ch->wpn[10] >= 76 && ch->wpn[10] <=100 ) snprintf(bufskill10, 35, "highly skilled in"); else if(ch->wpn[10] >=101 && ch->wpn[10] <=125 ) snprintf(bufskill10, 35, "very dangerous in"); else if(ch->wpn[10] >=126 && ch->wpn[10] <=150 ) snprintf(bufskill10, 35, "extremely deadly in"); else if(ch->wpn[10] >=151 && ch->wpn[10] <=175 ) snprintf(bufskill10, 35, "an expert in"); else if(ch->wpn[10] >=176 && ch->wpn[10] <=198 ) snprintf(bufskill10, 35, "a master in"); else if(ch->wpn[10] == 199 ) snprintf(bufskill10, 35, "on the verge of grand mastery of"); else if(ch->wpn[10] == 200 ) snprintf(bufskill10, 35, "a grand master of"); else send_to_char("BUG in biting weapon -- contact a coder!\n\r", ch); if(ch->wpn[11] <= 25 ) snprintf(bufskill11, 35,"totally unskilled in" ); else if(ch->wpn[11] >= 26 && ch->wpn[11] <=50 ) snprintf(bufskill11, 35,"slightly unskilled in" ); else if(ch->wpn[11] >= 51 && ch->wpn[11] <=75 ) snprintf(bufskill11, 35, "fairly competent in"); else if(ch->wpn[11] >= 76 && ch->wpn[11] <=100 ) snprintf(bufskill11, 35, "highly skilled in"); else if(ch->wpn[11] >=101 && ch->wpn[11] <=125 ) snprintf(bufskill11, 35, "very dangerous in"); else if(ch->wpn[11] >=126 && ch->wpn[11] <=150 ) snprintf(bufskill11, 35, "extremely deadly in"); else if(ch->wpn[11] >=151 && ch->wpn[11] <=175 ) snprintf(bufskill11, 35, "an expert in"); else if(ch->wpn[11] >=176 && ch->wpn[11] <=198 ) snprintf(bufskill11, 35, "a master in"); else if(ch->wpn[11] == 199 ) snprintf(bufskill11, 35, "on the verge of grand mastery of"); else if(ch->wpn[11] == 200 ) snprintf(bufskill11, 35, "a grand master of"); else send_to_char("BUG in piercing weapon -- contact a coder!\n\r", ch); if(ch->wpn[12] <= 25 ) snprintf(bufskill12, 35,"totally unskilled in" ); else if(ch->wpn[12] >= 26 && ch->wpn[12] <=50 ) snprintf(bufskill12, 35,"slightly unskilled in" ); else if(ch->wpn[12] >= 51 && ch->wpn[12] <=75 ) snprintf(bufskill12, 35, "fairly competent in"); else if(ch->wpn[12] >= 76 && ch->wpn[12] <=100 ) snprintf(bufskill12, 35, "highly skilled in"); else if(ch->wpn[12] >=101 && ch->wpn[12] <=125 ) snprintf(bufskill12, 35, "very dangerous in"); else if(ch->wpn[12] >=126 && ch->wpn[12] <=150 ) snprintf(bufskill12, 35, "extremely deadly in"); else if(ch->wpn[12] >=151 && ch->wpn[12] <=175 ) snprintf(bufskill12, 35, "an expert in"); else if(ch->wpn[12] >=176 && ch->wpn[12] <=198 ) snprintf(bufskill12, 35, "a master in"); else if(ch->wpn[12] == 199 ) snprintf(bufskill12, 35, "on the verge of grand mastery of"); else if(ch->wpn[12] == 200 ) snprintf(bufskill12, 35, "a grand master of"); else send_to_char("BUG in sucking weapon -- contact a coder!\n\r", ch); snprintf (buf , MAX_STRING_LENGTH, "------------=> You are %s hitting.\n\r",bufskill); snprintf (buf1 , MAX_STRING_LENGTH, "------------=> You are %s slicing weapons.\n\r",bufskill1); snprintf (buf2 , MAX_STRING_LENGTH, "------------=> You are %s stabbing weapons.\n\r",bufskill2); snprintf (buf3 , MAX_STRING_LENGTH, "------------=> You are %s slashing weapons.\n\r",bufskill3); snprintf (buf4 , MAX_STRING_LENGTH, "------------=> You are %s whipping weapons.\n\r",bufskill4); snprintf (buf5 , MAX_STRING_LENGTH, "------------=> You are %s clawing weapons.\n\r",bufskill5); snprintf (buf6 , MAX_STRING_LENGTH, "------------=> You are %s blasting weapons.\n\r",bufskill6); snprintf (buf7 , MAX_STRING_LENGTH, "------------=> You are %s pounding weapons.\n\r",bufskill7); snprintf (buf8 , MAX_STRING_LENGTH, "------------=> You are %s crushing weapons.\n\r",bufskill8); snprintf (buf9 , MAX_STRING_LENGTH, "------------=> You are %s grepping weapons.\n\r",bufskill9); snprintf (buf10, MAX_STRING_LENGTH, "------------=> You are %s biting.\n\r",bufskill10); snprintf (buf11, MAX_STRING_LENGTH, "------------=> You are %s piercing weapons.\n\r",bufskill11); snprintf (buf12, MAX_STRING_LENGTH, "------------=> You are %s sucking weapons.\n\r",bufskill12); send_to_char_formatted("-------------------------------------------------------------------------------\n\r",ch); send_to_char_formatted(" | Weapons | \n\r",ch); send_to_char_formatted("-------------------------------------------------------------------------------\n\r",ch); send_to_char_formatted(buf, ch); send_to_char_formatted(buf1, ch); send_to_char_formatted(buf2, ch); send_to_char_formatted(buf3, ch); send_to_char_formatted(buf4, ch); send_to_char_formatted(buf5, ch); send_to_char_formatted(buf6, ch); send_to_char_formatted(buf7, ch); send_to_char_formatted(buf8, ch); send_to_char_formatted(buf9, ch); send_to_char_formatted(buf10, ch); send_to_char_formatted(buf11, ch); send_to_char_formatted(buf12, ch); send_to_char_formatted("-------------------------------------------------------------------------------\n\r",ch); return; } void do_addlag(CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; char arg1[MAX_STRING_LENGTH]; int x; argument = one_argument(argument, arg1, MAX_STRING_LENGTH); if (arg1[0] == '\0') { send_to_char("addlag to who?", ch); return; } if ((victim = get_char_world(ch, arg1)) == NULL) { send_to_char("They're not here.", ch); return; } if ((x = atoi(argument)) < 0) { send_to_char("That makes a LOT of sense.", ch); return; } if (x > 100) { send_to_char("There's a limit to cruel and unusual punishment", ch); return; } if (IS_NPC(victim)) return; if( victim->level >= LEVEL_SEER) { send_to_char("No way! Not on admin", ch); return; } /* send_to_char("Somebody REALLY didn't like you", victim); - no warning 2 players */ victim->lagpenalty = x; WAIT_STATE(victim, x); send_to_char("Adding lag now...", ch); return; } void do_sinbin( CHAR_DATA *ch, char *argument) { char buf[MAX_STRING_LENGTH]; char arg[MAX_INPUT_LENGTH]; CHAR_DATA *gch; one_argument( argument, arg, MAX_INPUT_LENGTH); if(IS_NPC(ch)) return; send_to_char_formatted("[ Name ] [ Lag ] Misc\n\r",ch); for( gch = char_list; gch != NULL; gch = gch->next) { if( IS_NPC(gch)) continue; if( gch->lagpenalty > 0 || IS_SET(gch->act, PLR_SILENCE | PLR_FREEZE | PLR_NO_TELL | PLR_NO_EMOTE)) { snprintf( buf, MAX_STRING_LENGTH, "[%-16s] [ %3d ] %s%s%s%s\n\r", capitalize( gch->name), gch->lagpenalty, IS_SET(gch->act, PLR_SILENCE) ? "Silenced " : "", IS_SET(gch->act, PLR_FREEZE) ? "Frozen " : "", IS_SET(gch->act, PLR_NO_TELL) ? "No-Tells " : "", IS_SET(gch->act, PLR_NO_EMOTE) ? "No-Emote " : ""); send_to_char_formatted( buf, ch); } } return; } void do_qlist( CHAR_DATA *ch, char *argument ) { send_to_char_formatted( "[Price] Item Short Name\n\r", ch ); send_to_char_formatted( "[ 10] A Blood Rod rod\n\r",ch); send_to_char_formatted( "[ 15] A Bag bag\n\r",ch); send_to_char_formatted( "[ 30] A Stake stake\n\r",ch); send_to_char_formatted( "[ 40] a special issue pair of boots boots\n\r",ch); send_to_char_formatted( "[ 40] a special issue ring ring\n\r",ch); send_to_char_formatted( "[ 40] a special issue pendant pendant\n\r",ch); send_to_char_formatted( "[ 40] a special issue breastplate plate\n\r",ch); send_to_char_formatted( "[ 40] a special issue helmet helmet\n\r",ch); send_to_char_formatted( "[ 40] a special issue pair of leggings leggings\n\r",ch); send_to_char_formatted( "[ 40] a special issue pair of gloves gloves\n\r",ch); send_to_char_formatted( "[ 40] a special issue pair of sleeves sleeves\n\r",ch); send_to_char_formatted( "[ 40] a special issue cloak cloak\n\r",ch); send_to_char_formatted( "[ 40] a special issue girth girth\n\r",ch); send_to_char_formatted( "[ 40] a special issue bracer bracer\n\r",ch); send_to_char_formatted( "[ 40] a special issue face mask mask\n\r",ch); send_to_char_formatted( "[ 50] a special issue sword sword\n\r",ch); return; } void do_qbuy( CHAR_DATA *ch, char *argument) { char arg1 [MAX_INPUT_LENGTH]; OBJ_DATA *obj; OBJ_INDEX_DATA *pObjIndex; int value; int cost; /* bool has_container */ smash_tilde( argument ); argument = one_argument( argument, arg1, MAX_INPUT_LENGTH ); if( IS_NPC(ch)) { send_to_char( "Not for mobs silly!\n\r", ch); return; } if( ch->pcdata->quest <=0 ) { send_to_char("You don't have any quest points, so how do you propose to pay!\n\r",ch); return; } if( arg1[0] == '\0') { send_to_char("Type qlist to see what you can buy.\n\r",ch); return; } cost = 0; value = 0; if( !str_cmp( arg1, "boots")){ value=1;cost=40;} else if( !str_cmp( arg1, "stake")){ value=2;cost=30;} else if( !str_cmp( arg1, "rod")){ value=3;cost=10;} else if( !str_cmp( arg1, "ring")){ value=4;cost=40;} else if( !str_cmp( arg1, "pendant")){ value=5;cost=40;} else if( !str_cmp( arg1, "plate")){ value=6;cost=40;} else if( !str_cmp( arg1, "helmet")){ value=7;cost=40;} else if( !str_cmp( arg1, "leggings")){ value=8;cost=40;} else if( !str_cmp( arg1, "gloves")){ value=9;cost=40;} else if( !str_cmp( arg1, "sleeves")){ value=10;cost=40;} else if( !str_cmp( arg1, "cloak")){ value=11;cost=40;} else if( !str_cmp( arg1, "girth")){ value=12;cost=40;} else if( !str_cmp( arg1, "bracer")){ value=13;cost=40;} else if( !str_cmp( arg1, "mask")){ value=14;cost=40;} else if( !str_cmp( arg1, "bag")){ value=15;cost=15;} else if( !str_cmp( arg1, "sword")){ value=16;cost=50;} else { value=0; } if(ch->pcdata->quest < cost) { send_to_char("You don't have enough quest points.\n\r",ch); return; } if ( ( pObjIndex = get_obj_index( OBJ_VNUM_PROTOPLASM ) ) == NULL ) { send_to_char( "Error! Missing object, inform the Admin.\n\r", ch ); return; } /* has_container = does_ch_have_a_container(ch); if ( value == WHATEVER_CONTAINER_VALUE && has_container) { send_to_char( "You cannot carry another container.\n\r", ch); return; }*/ if(value>0) { switch(value) { default: send_to_char("Ooops problem! Tell Joker!\n\r",ch); break; case 1: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_FEET; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); free_string( obj->name ); free_string( obj->description ); obj->short_descr = str_dup("special issue boots"); obj->name = str_dup("special issue boots"); obj->description = str_dup("a pair of special issue boots lie here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a pair of special issue boots.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a pair of special issue boots.", ch, obj, NULL, TO_ROOM ); break; case 2: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->item_type = ITEM_STAKE; obj->wear_flags = ITEM_TAKE + ITEM_WIELD; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("a stake"); free_string( obj->name ); obj->name = str_dup("a stake"); free_string( obj->description ); obj->description = str_dup("a stake lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a stake.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a stake.", ch, obj, NULL, TO_ROOM ); break; case 3: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->item_type = ITEM_FOUNTAIN; obj->value[0] = 1000; obj->value[1] = 1000; obj->value[2] = 13; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup( "a blood rod"); free_string( obj->name ); obj->name = str_dup("a blood rod"); free_string( obj->description ); obj->description = str_dup("a blood rod lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a blood rod.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a blood rod.", ch, obj, NULL, TO_ROOM ); break; case 4: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_FINGER; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue ring"); free_string( obj->name ); obj->name = str_dup("special issue ring"); free_string( obj->description ); obj->description = str_dup("a special issue ring lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue ring.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue ring.", ch, obj, NULL, TO_ROOM ); break; case 5: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_NECK; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue pendant"); free_string( obj->name ); obj->name = str_dup("special issue pendant"); free_string( obj->description ); obj->description = str_dup("a special issue pendant lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue pendant.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue pendant.", ch, obj, NULL, TO_ROOM ); break; case 6: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_BODY; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue plate"); free_string( obj->name ); obj->name = str_dup("special issue plate"); free_string( obj->description ); obj->description = str_dup("a special issue breast plate lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue breast plate.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue breast plate.", ch, obj, NULL, TO_ROOM ); break; case 7: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_HEAD; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue helmet"); free_string( obj->name ); obj->name = str_dup("special issue helmet"); free_string( obj->description ); obj->description = str_dup("a special issue helmet lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue helmet.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue helmet.", ch, obj, NULL, TO_ROOM ); break; case 8: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_LEGS; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue leggings"); free_string( obj->name ); obj->name = str_dup("special issue leggings"); free_string( obj->description ); obj->description = str_dup("a pair of special issue leggings lie here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a pair of special issue leggings.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a pair of special issue leggings.", ch, obj, NULL, TO_ROOM ); break; case 9: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_HANDS; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue gloves"); free_string( obj->name ); obj->name = str_dup("special issue gloves"); free_string( obj->description ); obj->description = str_dup("a pair of special issue gloves lie here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a pair of special issue gloves.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a pair of special issue gloves.", ch, obj, NULL, TO_ROOM ); break; case 10: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_ARMS; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue sleeves"); free_string( obj->name ); obj->name = str_dup("special issue sleeves"); free_string( obj->description ); obj->description = str_dup("a pair of special issue sleeves lie here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a pair of special issue sleeves.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a pair of special issue sleeves.", ch, obj, NULL, TO_ROOM ); break; case 11: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_ABOUT; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue cloak"); free_string( obj->name ); obj->name = str_dup("special issue cloak"); free_string( obj->description ); obj->description = str_dup("a special issue cloak lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue cloak.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue cloak.", ch, obj, NULL, TO_ROOM ); break; case 12: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_WAIST; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue girth"); free_string( obj->name ); obj->name = str_dup("special issue girth"); free_string( obj->description ); obj->description = str_dup("a special issue girth lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue girth.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue girth.", ch, obj, NULL, TO_ROOM ); break; case 13: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_WRIST; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue bracer"); free_string( obj->name ); obj->name = str_dup("special issue bracer"); free_string( obj->description ); obj->description = str_dup("a special issue bracer lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue bracer.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue bracer.", ch, obj, NULL, TO_ROOM ); break; case 14: ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 15; obj->item_type = ITEM_ARMOR; obj->wear_flags = ITEM_TAKE + ITEM_WEAR_FACE; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue mask"); free_string( obj->name ); obj->name = str_dup("special issue mask"); free_string( obj->description ); obj->description = str_dup("a special issue mask lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue mask.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue mask.", ch, obj, NULL, TO_ROOM ); break; case 15: /* container */ ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 999; obj->item_type = ITEM_CONTAINER; obj->wear_flags = ITEM_TAKE; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("a bag"); free_string( obj->name ); obj->name = str_dup("bag"); free_string( obj->description ); obj->description = str_dup("a bag lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a bag.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a bag.", ch, obj, NULL, TO_ROOM ); break; case 16: /* sword */ ch->pcdata->quest -= cost; obj = create_object( pObjIndex, 25 ); obj->weight = 1; obj->cost = 1000; obj->value[0] = 0; /* spell */ obj->value[1] = 10; /* min */ obj->value[2] = 20; /* max */ obj->value[3] = 3; /* slash */ obj->item_type = ITEM_WEAPON; obj->wear_flags = ITEM_TAKE + ITEM_WIELD; obj->quest=QUEST_NAME+QUEST_SHORT+QUEST_LONG; free_string( obj->short_descr ); obj->short_descr = str_dup("special issue sword"); free_string( obj->name ); obj->name = str_dup("special issue sword"); free_string( obj->description ); obj->description = str_dup("a special issue sword lies here"); if (obj->questmaker != NULL) free_string(obj->questmaker); obj->questmaker = str_dup(ch->name); obj_to_char(obj,ch); act( "You reach up into the air and draw out a special issue sword.", ch, obj, NULL, TO_CHAR ); act( "$n reaches up into the air and draws out a special issue sword.", ch, obj, NULL, TO_ROOM ); break; } } else { send_to_char("There is no such item I am afraid\n\r",ch); } }