act_comm.c: * -----------------------------------------------------------| (0...0) * act_comm.c: * -----------------------------------------------------------| {o o} * act_comm.c: * ------------------------------------------------------------------------ * act_comm.c: * ------------------------------------------------------------------------ * act_comm.c:/* mobchat.c -- Scion */ act_comm.c: { -1, "&W[&c%s&W] &c%s&w", "&W[&c%s&W] &w$n&W: &c$t&w", "&W[&c%s&W] &wYou&W: &c%s&w\n\r", AT_CHAN_DEFAULT, 1 } act_comm.c: ROOM_INDEX_DATA *room = ch->in_room; act_comm.c: if ( IS_SET( room->room_flags, ROOM_SILENCE ) ) act_comm.c: /* if ( xIS_SET( room->affected_by, ROOM_AFF_SILENCE ) ) act_comm.c:/* Text scrambler -- Altrag */ act_comm.c: conversion = -conversion + position - modifier + argument[position] - 'A'; act_comm.c: conversion = number_range( conversion - 5, conversion + 5 ); act_comm.c: conversion -= 26; act_comm.c: conversion = -conversion + position - modifier + argument[position] - 'a'; act_comm.c: conversion = number_range( conversion - 5, conversion + 5 ); act_comm.c: conversion -= 26; act_comm.c: conversion = -conversion + position - modifier + argument[position] - '0'; act_comm.c: conversion = number_range( conversion - 2, conversion + 2 ); act_comm.c: conversion -= 10; act_comm.c:/* I'll rewrite this later if its still needed.. -- Altrag act_comm.c: for (lng = first_lang; lng; lng = lng->next) act_comm.c: if (!str_cmp(lng->name, name)) act_comm.c: for (cnv = lng->first_precnv; cnv; cnv = cnv->next) act_comm.c: if (!str_prefix(cnv->old, pbuf)) act_comm.c: strncpy(pbuf2, pbuf, cnv->olen); act_comm.c: pbuf2[cnv->olen] = '\0'; act_comm.c: pbuf2 += cnv->olen; act_comm.c: strcpy(pbuf2, cnv->new); act_comm.c: pbuf2 += cnv->nlen; act_comm.c: pbuf += cnv->olen; act_comm.c: *pbuf2 = lng->alphabet[LOWER(*pbuf) - 'a']; act_comm.c: for (cnv = lng->first_cnv; cnv; cnv = cnv->next) act_comm.c: if (!str_prefix(cnv->old, pbuf)) act_comm.c: strcpy(pbuf2, cnv->new); act_comm.c: pbuf += cnv->olen; act_comm.c: pbuf2 += cnv->nlen; act_comm.c: if ( IS_NPC( ch ) || !ch->pcdata ) return (char *) argument; act_comm.c: drunk = ch->pcdata->condition[COND_DRUNK]; act_comm.c: txt1--; act_comm.c: *txt++ = '-'; act_comm.c: * An attempt to reduce redundancy - Tagith act_comm.c: if(!d) return FALSE; /* catch the link dead - shogar */ act_comm.c: vch = d->character; act_comm.c: if ( IS_SET( och->deaf, channel ) ) act_comm.c: && (!str_cmp( och->pcdata->council_name, "Newbie Council" ) act_comm.c: || !str_cmp( och->pcdata->council2_name, "Newbie Council" ) ) ) ) act_comm.c: && vch->in_room->area != ch->in_room->area ) act_comm.c: if ( vch->pcdata->clan != ch->pcdata->clan ) act_comm.c: if (vch->pcdata->guild != ch->pcdata->guild ) act_comm.c: if (( vch->pcdata->council != ch->pcdata->council act_comm.c: && vch->pcdata->council2 != ch->pcdata->council )) act_comm.c: if (( vch->pcdata->council != ch->pcdata->council2 act_comm.c: && vch->pcdata->council2 != ch->pcdata->council2 )) act_comm.c: * Allows people to do socials, even targeted, over channels - Tagith act_comm.c: if ( !IS_NPC(ch) && xIS_SET( ch->act, PLR_NO_EMOTE ) ) act_comm.c: send_to_char( "You are anti-social!\n\r", ch ); act_comm.c: position = ch->position; act_comm.c: ch->position = POS_STANDING; act_comm.c: sprintf( buf, "[%s] %s", verb, social->char_no_arg ); act_comm.c: ch->position = position; act_comm.c: if( social->others_no_arg && social->others_no_arg[0] != '\0' ) act_comm.c: sprintf( otherbuf, "[%s] %s", verb, social->others_no_arg ); act_comm.c: sprintf( buf, "[%s] %s", verb, social->char_auto ); act_comm.c: position = ch->position; act_comm.c: ch->position = POS_STANDING; act_comm.c: ch->position = position; act_comm.c: if ( social->others_auto && social->others_auto[0] != '\0' ) act_comm.c: sprintf( otherbuf, "[%s] %s", verb, social->others_auto ); act_comm.c: sprintf( buf, "[%s] %s", verb, social->char_found ); act_comm.c: position = ch->position; act_comm.c: ch->position = POS_STANDING; act_comm.c: ch->position = position; act_comm.c: if ( social->vict_found act_comm.c: && social->vict_found[0] != '\0' act_comm.c: && can_see_chan( ch, victim->desc, channel ) ) act_comm.c: sprintf( buf, "[%s] %s", verb, social->vict_found ); act_comm.c: position = victim->position; act_comm.c: victim->position = POS_STANDING; act_comm.c: victim->position = position; act_comm.c: if ( social->others_found && social->others_found[0] != '\0' ) act_comm.c: sprintf( otherbuf, "[%s] %s", verb, social->others_found ); act_comm.c: for ( d = first_descriptor; d; d = d->next ) act_comm.c: CHAR_DATA *vch = d->character; act_comm.c: if ( d->connected == CON_PLAYING act_comm.c: * March 19, 1999 Adding AaernMUD Talk_Channel code to UCMM --Justice act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: * NOTE: The line containing -1 as the channel flag should always be the last channel, any * act_comm.c: || ((IS_AFFECTED(ch, AFF_CHARM) && !xIS_SET(ch->act, ACT_PET)) act_comm.c: || (xIS_SET(ch->act, PLR_SILENCE) && !IS_NPC(ch)) act_comm.c: || IS_SET(ch->in_room->room_flags, ROOM_SILENCE))) act_comm.c: if ( ch->master ) act_comm.c: ch_printf( ch->master, "A mystical force prevents %s from speaking.\n\r", IS_NPC( ch ) ? act_comm.c: ch->short_descr : capitalize( ch->name ) ); act_comm.c: REMOVE_BIT( ch->deaf, channel ); act_comm.c: for ( i = 0; local_cfields[i].channel != -1; i++ ) act_comm.c: if( local_cfields[i].channel == -1 || channel == CHANNEL_CLAN ) act_comm.c: || xIS_SET( ch->act, PLR_HOLYLIGHT ) ) act_comm.c: if ( argument[0] == '@' ) /* was '@@', not sure whether it's bad or not -- Scion */ act_comm.c: sprintf( soc_char, local_cfields[i].prefix, capitalize( verb ), social->char_auto ); act_comm.c: sprintf( soc_others, local_cfields[i].prefix, capitalize( verb ), social->others_auto ); act_comm.c: sprintf( soc_char, local_cfields[i].prefix, capitalize( verb ), social->char_found ); act_comm.c: sprintf( soc_vict, local_cfields[i].prefix, capitalize( verb ), social->vict_found ); act_comm.c: sprintf( soc_others, local_cfields[i].prefix, capitalize( verb ), social->others_found ); act_comm.c: sprintf( soc_char, local_cfields[i].prefix, capitalize( verb ), social->char_no_arg ); act_comm.c: sprintf( soc_others, local_cfields[i].prefix, capitalize( verb ), social->others_no_arg ); act_comm.c: sprintf( emotetxt, "%s %s", capitalize( ch->name ), argument+1 ); act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: sprintf( buf2, "%s: %s (%s)", IS_NPC( ch ) ? ch->short_descr : capitalize( ch->name ), act_comm.c: IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: original = puff->in_room; act_comm.c:// sprintf( logbuf, "&G%s&w %sed&W: &G%s", ch->name, verb, argument ); act_comm.c: if( local_cfields[i].channel != -1 || channel == CHANNEL_CLAN ) act_comm.c: if( xIS_SET( ch->act, PLR_WIZINVIS ) ) act_comm.c: local_cfields[i].history[x][0] = str_dup( ch->short_descr ); act_comm.c: local_cfields[i].history[x][0] = str_dup( ch->name ); act_comm.c: int z = y-1; act_comm.c: local_cfields[i].history[x][0] = str_dup( ch->short_descr ); act_comm.c: local_cfields[i].history[x][0] = str_dup( ch->name ); act_comm.c: for ( d = first_descriptor; d; d = d->next ) act_comm.c: och = d->original ? d->original : d->character; act_comm.c: vch = d->character; act_comm.c: if ( d->connected == CON_PLAYING && vch != ch && !IS_SET( och->deaf, channel ) ) act_comm.c: || ( channel == CHANNEL_YELL && vch->in_room->area != ch->in_room->area ) act_comm.c: && !( och->pcdata->council && !str_cmp( och->pcdata->council->name, "Newbie Council" ) ) act_comm.c: || !( och->pcdata->council2 && !str_cmp( och->pcdata->council2_name, "Newbie Council") ) ) ) act_comm.c: && ( IS_NPC( vch ) || vch->pcdata->clan != ch->pcdata->clan ) ) act_comm.c: || ( ( channel == CHANNEL_RACETALK ) && ( vch->race != ch->race ) ) act_comm.c: || !( (vch->pcdata->council && vch->pcdata->council == ch->pcdata->council) act_comm.c: || (vch->pcdata->council2 && vch->pcdata->council2 == ch->pcdata->council) ) ) ) act_comm.c: || !( (vch->pcdata->council && vch->pcdata->council == ch->pcdata->council2) act_comm.c: || (vch->pcdata->council2 && vch->pcdata->council2 == ch->pcdata->council2) ) ) ) act_comm.c: if ( xIS_SET(ch->act, PLR_WIZINVIS) && act_comm.c: sprintf(lbuf, "(%d) ", (!IS_NPC(ch))?ch->pcdata->wizinvis act_comm.c: :ch->mobinvis); act_comm.c: position = vch->position; act_comm.c: vch->position = POS_STANDING; act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(vch, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, vch)); act_comm.c: if ( !knows_language(vch, ch->speaking, ch) act_comm.c: && (!IS_NPC(ch) || ch->speaking != 0) ) act_comm.c: sbuf = scramble(argument, ch->speaking); act_comm.c: if ( !IS_NPC(ch) && ch->pcdata->nuisance act_comm.c: && ch->pcdata->nuisance->flags > 7 act_comm.c: && (number_percent()<((ch->pcdata->nuisance->flags-7)*10* act_comm.c: ch->pcdata->nuisance->power))) act_comm.c: if ( !IS_NPC(vch) && vch->pcdata->nuisance && act_comm.c: vch->pcdata->nuisance->flags > 7 act_comm.c: &&(number_percent()<((vch->pcdata->nuisance->flags-7)*10* act_comm.c: vch->pcdata->nuisance->power))) act_comm.c: vch->position = position; act_comm.c: for ( d = first_descriptor; d; d = d->next ) act_comm.c: och = d->original ? d->original : d->character; act_comm.c: vch = d->character; act_comm.c: if ( d->connected == CON_PLAYING act_comm.c: && !IS_SET(och->deaf, channel) act_comm.c: if ( IS_NPC( ch ) || !ch->pcdata->clan act_comm.c: || ch->pcdata->clan->clan_type == CLAN_ORDER act_comm.c: || ch->pcdata->clan->clan_type == CLAN_GUILD ) act_comm.c: && !( ch->pcdata->council && act_comm.c: !str_cmp( ch->pcdata->council->name, "Newbie Council" ) ) ) ) act_comm.c: if ( IS_NPC( ch ) || !ch->pcdata->clan act_comm.c: || ch->pcdata->clan->clan_type != CLAN_ORDER ) act_comm.c: if ( IS_NPC( ch ) || !ch->pcdata->council ) act_comm.c: if ( IS_NPC( ch ) || !ch->pcdata->council2 ) act_comm.c: if ( IS_NPC( ch ) || !ch->pcdata->clan || ch->pcdata->clan->clan_type != CLAN_GUILD ) act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SILENCE ) ) act_comm.c: actflags = ch->act; act_comm.c: xREMOVE_BIT( ch->act, ACT_SECRETIVE ); act_comm.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) act_comm.c: if (found==TRUE && !str_cmp(argbuf, vch->name)) { act_comm.c: " are unable to do so.\n\r", ch->name); act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(vch, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, vch)); act_comm.c: if ( !knows_language(vch, ch->speaking, ch) act_comm.c: && (!IS_NPC(ch) || ch->speaking != 0) ) act_comm.c: sbuf = scramble(argument, ch->speaking); act_comm.c: if(found && str_cmp(argbuf, vch->name) && ch != NULL && tmp != NULL){ act_comm.c: sprintf(buf2, "%s '%s'", tmp->name, sbuf); act_comm.c: else if(found && !str_cmp(argbuf, vch->name) && ch!=NULL && tmp!=NULL) act_comm.c: ch->act = actflags; act_comm.c: sprintf(buf2, "%s '%s'", tmp->name, drunk_speech( argument, ch )); act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: sprintf( buf, "%s: %s", IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: /* Yakkov's amplify request - shogar */ act_comm.c: if ( ch->in_room && IS_SET( ch->in_room->room_flags, ROOM_AMPLIFY ) ) act_comm.c: actflags = ch->act; act_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); act_comm.c: was_in_room = ch->in_room; act_comm.c: for ( pexit = was_in_room->first_exit; pexit; pexit = pexit->next ) act_comm.c: if ( pexit->to_room act_comm.c: && pexit->to_room != was_in_room ) act_comm.c: ch->in_room = pexit->to_room; act_comm.c: ch->act = actflags; act_comm.c: ch->in_room = was_in_room; act_comm.c: /* Various tables for randomness -- Kratas */ act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: if( ch->pcdata->say_history[x] == NULL ) act_comm.c: sprintf( buffer, " &c%s&w\n\r", ch->pcdata->say_history[x] ); act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SILENCE ) ) act_comm.c: actflags = ch->act; act_comm.c: xREMOVE_BIT( ch->act, ACT_SECRETIVE ); act_comm.c: arglen = strlen( argument ) - 1; act_comm.c: --arglen; act_comm.c: if( argument[arglen-1] == '.' && argument[arglen-2] == '.' ) act_comm.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) act_comm.c: " are unable to do so.\n\r", ch->name); act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(vch, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, vch)); act_comm.c: if ( !knows_language(vch, ch->speaking, ch) act_comm.c: && (!IS_NPC(ch) || ch->speaking != 0) ) act_comm.c: sbuf = scramble(argument, ch->speaking); act_comm.c: if( vch->pcdata->say_history[x] == '\0' ) act_comm.c: vch->pcdata->say_history[x] = strdup( tmpbuf ); act_comm.c: DISPOSE( vch->pcdata->say_history[i-1] ); act_comm.c: vch->pcdata->say_history[i-1] = strdup( vch->pcdata->say_history[i] ); act_comm.c: DISPOSE( vch->pcdata->say_history[x] ); act_comm.c: vch->pcdata->say_history[x] = strdup( tmpbuf ); act_comm.c: ch->act = actflags; act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: sprintf( buf, "%s: %s", IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: && victim->in_room != ch->in_room ) act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SILENCE ) ) act_comm.c: actflags = ch->act; act_comm.c: xREMOVE_BIT( ch->act, ACT_SECRETIVE ); act_comm.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) act_comm.c: " are unable to do so.\n\r", ch->name); act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(vch, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, vch)); act_comm.c: if ( !knows_language(vch, ch->speaking, ch) act_comm.c: && (!IS_NPC(ch) || ch->speaking != 0) ) act_comm.c: sbuf = scramble(argument, ch->speaking); act_comm.c: ch->act = actflags; act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: sprintf( buf, "%s: %s", IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: REMOVE_BIT( ch->deaf, CHANNEL_WHISPER ); act_comm.c: if ( !IS_NPC( victim ) && ( victim->switched ) act_comm.c: && !IS_AFFECTED(victim->switched, AFF_POSSESS) ) act_comm.c: else if ( !IS_NPC( victim ) && ( !victim->desc ) ) act_comm.c: send_to_char( "That player is link-dead.\n\r", ch ); act_comm.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_AFK) ) act_comm.c: if ( IS_SET( victim->deaf, CHANNEL_WHISPER ) act_comm.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_SILENCE) ) act_comm.c: if ( victim->desc /* make sure desc exists first -Thoric */ act_comm.c: && ( victim->desc->connected == CON_EDITING act_comm.c: || ( victim->desc->connected >= CON_NOTE_TO act_comm.c: && victim->desc->connected <= CON_NOTE_FINISH)) act_comm.c: victim->name); act_comm.c: "are unable to do so.\n\r", ch->name); act_comm.c: position = victim->position; act_comm.c: victim->position = POS_STANDING; act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(victim, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, victim)); act_comm.c: if ( !knows_language(vch, ch->speaking, ch ) && act_comm.c: ( !IS_NPC(ch) || ch->speaking != 0) ) { act_comm.c: if ( !IS_SET( ch->in_room->room_flags, ROOM_SILENCE ) ) act_comm.c: victim->position = position; act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: IS_NPC( victim ) ? victim->short_descr : victim->name ); act_comm.c: /* NPC check added by Samson 2-15-98 */ act_comm.c: /* PCFLAG_NOBEEP check added by Samson 2-15-98 */ act_comm.c: if ( IS_SET(victim->pcdata->flags, PCFLAG_NOBEEP) ) act_comm.c: victim->name ); act_comm.c: ch_printf(victim, "&W^z%s beeps you from '%s'^x&w\a\n\r", PERS(ch, victim), ch->in_room->name); act_comm.c: if( ch->pcdata->tell_histories[x] == NULL ) act_comm.c: ch->pcdata->tell_histories[x] = str_dup( arg ); act_comm.c: DISPOSE( ch->pcdata->tell_histories[i-1] ); act_comm.c: ch->pcdata->tell_histories[i-1] = str_dup(ch->pcdata->tell_histories[i]); act_comm.c: ch->pcdata->tell_histories[x] = str_dup( arg ); act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: REMOVE_BIT( ch->deaf, CHANNEL_TELLS ); act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SILENCE ) ) act_comm.c: && ( xIS_SET(ch->act, PLR_SILENCE) act_comm.c: || xIS_SET(ch->act, PLR_NO_TELL) ) ) act_comm.c: if( ch->pcdata->tell_histories[x] == NULL ) act_comm.c: sprintf(buf+strlen(buf), "%s\n\r", ch->pcdata->tell_histories[x] ); act_comm.c: || ( IS_NPC(victim) && victim->in_room != ch->in_room ) act_comm.c: if ( !IS_NPC( victim ) && ( victim->switched ) act_comm.c: && !IS_AFFECTED(victim->switched, AFF_POSSESS) ) act_comm.c: else if ( !IS_NPC( victim ) && ( victim->switched ) act_comm.c: && IS_AFFECTED(victim->switched, AFF_POSSESS) ) act_comm.c: switched_victim = victim->switched; act_comm.c: else if ( !IS_NPC( victim ) && ( !victim->desc ) ) act_comm.c: send_to_char( "That player is link-dead.\n\r", ch ); act_comm.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_AFK) ) act_comm.c: if ( IS_SET( victim->deaf, CHANNEL_TELLS ) act_comm.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_SILENCE) ) act_comm.c: || (!IS_NPC(victim)&&IS_SET(victim->in_room->room_flags, ROOM_SILENCE ) ) ) act_comm.c: if ( victim->desc /* make sure desc exists first -Thoric */ act_comm.c: && ( victim->desc->connected == CON_EDITING act_comm.c: || ( victim->desc->connected >= CON_NOTE_TO act_comm.c: && victim->desc->connected <= CON_NOTE_FINISH)) act_comm.c: victim->name); act_comm.c: "are unable to do so.\n\r", ch->name); act_comm.c: ch->retell = victim; act_comm.c: if(!IS_NPC(victim) && IS_IMMORTAL(victim) && victim->pcdata->tell_history && act_comm.c: isalpha(IS_NPC(ch) ? ch->short_descr[0] : ch->name[0])) act_comm.c: capitalize(IS_NPC(ch) ? ch->short_descr : ch->name), act_comm.c: victim->pcdata->lt_index = act_comm.c: tolower(IS_NPC(ch) ? ch->short_descr[0] : ch->name[0]) - 'a'; act_comm.c: if(victim->pcdata->tell_history[victim->pcdata->lt_index]) act_comm.c: STRFREE(victim->pcdata->tell_history[victim->pcdata->lt_index]); act_comm.c: victim->pcdata->tell_history[victim->pcdata->lt_index] = act_comm.c: position = victim->position; act_comm.c: victim->position = POS_STANDING; act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(victim, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, victim)); act_comm.c: /* mobs can talk! -- Scion */ act_comm.c: victim->position = position; act_comm.c: victim->reply = ch; act_comm.c: capitalize(IS_NPC(ch) ? ch->short_descr : ch->name), act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: IS_NPC( victim ) ? victim->short_descr : victim->name ); act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: REMOVE_BIT( ch->deaf, CHANNEL_TELLS ); act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SILENCE ) ) act_comm.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_SILENCE) ) act_comm.c: if ( ( victim = ch->reply ) == NULL ) act_comm.c: if ( !IS_NPC( victim ) && ( victim->switched ) act_comm.c: else if ( !IS_NPC( victim ) && ( !victim->desc ) ) act_comm.c: send_to_char( "That player is link-dead.\n\r", ch ); act_comm.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_AFK) ) act_comm.c: if ( IS_SET( victim->deaf, CHANNEL_TELLS ) act_comm.c: || ( !IS_NPC(victim) && IS_SET( victim->in_room->room_flags, ROOM_SILENCE ) ) ) act_comm.c: if ( victim->desc /* make sure desc exists first -Thoric */ act_comm.c: && ( victim->desc->connected == CON_EDITING act_comm.c: || ( victim->desc->connected >= CON_NOTE_TO act_comm.c: && victim->desc->connected <= CON_NOTE_FINISH)) act_comm.c: victim->name); act_comm.c: "are unable to do so.\n\r", ch->name); act_comm.c: position = victim->position; act_comm.c: victim->position = POS_STANDING; act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(victim, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, victim)); act_comm.c: if ( knows_language( victim, ch->speaking, ch ) || act_comm.c: (IS_NPC(ch) && !ch->speaking) ) act_comm.c: act( AT_TELL, "$n tells you '$t'", ch, scramble(argument, ch->speaking), victim, TO_VICT ); act_comm.c: capitalize(IS_NPC(ch) ? ch->short_descr : ch->name), act_comm.c: victim->position = position; act_comm.c: victim->reply = ch; act_comm.c: ch->retell = victim; act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: IS_NPC( victim ) ? victim->short_descr : victim->name ); act_comm.c: if(!IS_NPC(victim) && IS_IMMORTAL(victim) && victim->pcdata->tell_history && act_comm.c: isalpha(IS_NPC(ch) ? ch->short_descr[0] : ch->name[0])) act_comm.c: capitalize(IS_NPC(ch) ? ch->short_descr : ch->name), act_comm.c: victim->pcdata->lt_index = act_comm.c: tolower(IS_NPC(ch) ? ch->short_descr[0] : ch->name[0]) - 'a'; act_comm.c: if(victim->pcdata->tell_history[victim->pcdata->lt_index]) act_comm.c: STRFREE(victim->pcdata->tell_history[victim->pcdata->lt_index]); act_comm.c: victim->pcdata->tell_history[victim->pcdata->lt_index] = act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: REMOVE_BIT(ch->deaf, CHANNEL_TELLS); act_comm.c: if(IS_SET(ch->in_room->room_flags, ROOM_SILENCE)) act_comm.c: if ( !IS_NPC(ch) && (xIS_SET(ch->act, PLR_SILENCE) act_comm.c: || xIS_SET(ch->act, PLR_NO_TELL)) ) act_comm.c: victim = ch->retell; act_comm.c: if(!IS_NPC(victim) && (victim->switched) && act_comm.c: !IS_AFFECTED(victim->switched, AFF_POSSESS)) act_comm.c: else if(!IS_NPC(victim) && (victim->switched) && act_comm.c: IS_AFFECTED(victim->switched, AFF_POSSESS)) act_comm.c: switched_victim = victim->switched; act_comm.c: else if(!IS_NPC(victim) &&(!victim->desc)) act_comm.c: send_to_char("That player is link-dead.\n\r", ch); act_comm.c: if(!IS_NPC(victim) && xIS_SET(victim->act, PLR_AFK) ) act_comm.c: if(IS_SET(victim->deaf, CHANNEL_TELLS) && act_comm.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_SILENCE) ) act_comm.c: IS_SET(victim->in_room->room_flags, ROOM_SILENCE))) act_comm.c: if( victim->desc act_comm.c: && ( victim->desc->connected == CON_EDITING act_comm.c: || ( victim->desc->connected >= CON_NOTE_TO act_comm.c: && victim->desc->connected <= CON_NOTE_FINISH)) act_comm.c: victim->name); act_comm.c: "are unable to do so.\n\r", ch->name); act_comm.c: if(!IS_NPC(victim) && IS_IMMORTAL(victim) && victim->pcdata->tell_history && act_comm.c: isalpha(IS_NPC(ch) ? ch->short_descr[0] : ch->name[0])) act_comm.c: capitalize(IS_NPC(ch) ? ch->short_descr : ch->name), act_comm.c: victim->pcdata->lt_index = act_comm.c: tolower(IS_NPC(ch) ? ch->short_descr[0] : ch->name[0]) act_comm.c: - 'a'; act_comm.c: if(victim->pcdata->tell_history[victim->pcdata->lt_index]) act_comm.c: STRFREE(victim->pcdata->tell_history[victim->pcdata->lt_index]); act_comm.c: victim->pcdata->tell_history[victim->pcdata->lt_index] = act_comm.c: position = victim->position; act_comm.c: victim->position = POS_STANDING; act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(victim, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, victim)); act_comm.c: if(knows_language(victim, ch->speaking, ch) || act_comm.c: (IS_NPC(ch) && !ch->speaking)) act_comm.c: scramble(argument, ch->speaking), victim, TO_VICT); act_comm.c: victim->position = position; act_comm.c: victim->reply = ch; act_comm.c: if(IS_SET(ch->in_room->room_flags, ROOM_LOGSPEECH)) act_comm.c: IS_NPC(ch) ? ch->short_descr : ch->name, act_comm.c: IS_NPC(victim) ? victim->short_descr : victim->name); act_comm.c: if(IS_NPC(ch) || !IS_IMMORTAL(ch) || !ch->pcdata->tell_history) act_comm.c: index = ch->pcdata->lt_index; act_comm.c: index = tolower(argument[0]) - 'a'; act_comm.c: if(ch->pcdata->tell_history[index]) act_comm.c: ch_printf(ch, ch->pcdata->tell_history[index]); act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_NO_EMOTE) ) act_comm.c: actflags = ch->act; act_comm.c: xREMOVE_BIT( ch->act, ACT_SECRETIVE ); act_comm.c: if ( isalpha(plast[-1]) ) act_comm.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) act_comm.c: " are unable to do so.\n\r", ch->name); act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(vch, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, vch)); act_comm.c: if ( !knows_language( vch, ch->speaking, ch ) && act_comm.c: (!IS_NPC(ch) && ch->speaking != 0) ) act_comm.c: sbuf = scramble(buf, ch->speaking); act_comm.c: ch->act = actflags; act_comm.c: if ( IS_SET( ch->in_room->room_flags, ROOM_LOGSPEECH ) ) act_comm.c: sprintf( buf, "%s %s (emote)", IS_NPC( ch ) ? ch->short_descr : ch->name, act_comm.c: sprintf( buf, "(%-2.2d/%-2.2d): %s", act_comm.c: t->tm_mon+1, t->tm_mday, argument ); act_comm.c: if ( ch->position == POS_FIGHTING act_comm.c: || ch->position == POS_EVASIVE act_comm.c: || ch->position == POS_DEFENSIVE act_comm.c: || ch->position == POS_AGGRESSIVE act_comm.c: || ch->position == POS_BERSERK act_comm.c: if ( ch->position < POS_STUNNED ) act_comm.c: if ( auction->item != NULL && ((ch == auction->buyer) || (ch == auction->seller) ) ) act_comm.c: if ( IS_PKILL( ch ) && ch->wimpy > (int) ch->max_hit / 2.25 ) act_comm.c: /* Make them lose artifact items. Can't leave the game with those! -- Scion */ act_comm.c: drop_artifacts(ch, ch->last_carrying); act_comm.c: /* Get 'em dismounted until we finish mount saving -- Blodkai, 4/97 */ act_comm.c: if ( ch->position == POS_MOUNTED ) act_comm.c: sprintf( log_buf, "%s has quit (Room %d).", ch->name, act_comm.c: ( ch->in_room ? ch->in_room->vnum : -1 ) ); act_comm.c: if ( sysdata.save_pets && ch->pcdata->pet ) act_comm.c: ch->pcdata->pet, TO_ROOM ); act_comm.c: extract_char( ch->pcdata->pet, TRUE ); act_comm.c: /* Synch clandata up only when clan member quits now. --Shaddai act_comm.c: if ( ch->pcdata->clan ) act_comm.c: save_clan( ch->pcdata->clan ); act_comm.c: if ( ch->level >= 1 ) act_comm.c: for ( vch = first_char; vch; vch = vch->next ) act_comm.c:/* Don't really need this.. just annoys me :) -- Scion */ act_comm.c: Make them drop artifact items. Can't leave the game with those! -- Scion */ act_comm.c: /* Expecting a ch->last_carrying or an obj->last_content act_comm.c: if (obj->last_content) act_comm.c: drop_artifacts(ch, obj->last_content); act_comm.c: obj=obj->prev_content; act_comm.c: if (tobj->in_obj) act_comm.c: if (tobj->carried_by) act_comm.c: obj_to_room(tobj, ch->in_room); act_comm.c: obj = obj->prev_content; act_comm.c: write_to_buffer(ch->desc,BUFF,num); act_comm.c: write_to_buffer(ch->desc,BUFF,num); act_comm.c: write_to_buffer(ch->desc,BUFF,num); act_comm.c: write_to_buffer(ch->desc,BUFF,num); act_comm.c: /* looks like the menus keep crashing, lets log them - shogar */ act_comm.c: sprintf(arg1,"%s: omenu %s",ch->name,argument); act_comm.c: send_to_char( " and <page> is an optional letter to select menu-pages\n\r", ch ); act_comm.c: ch->inter_type = OBJ_TYPE; act_comm.c: ch->inter_substate = SUB_NORTH; act_comm.c: if( ch->inter_editing != NULL) DISPOSE(ch->inter_editing); act_comm.c: ch->inter_editing = str_dup(obj->pIndexData->name); act_comm.c: sscanf(ch->inter_editing,"%s",ch->inter_editing); /*one-arg*/ act_comm.c: ch->inter_editing_vnum = obj->pIndexData->vnum; act_comm.c: send_obj_page_to_char(ch, obj->pIndexData, arg2[0]); act_comm.c: /* looks like the menus keep crashing, lets log them - shogar */ act_comm.c: sprintf(arg1,"%s: rmenu %s",ch->name,argument); act_comm.c: idx = ch->in_room; act_comm.c: ch->inter_type = ROOM_TYPE; act_comm.c: ch->inter_substate = SUB_NORTH; act_comm.c: if( ch->inter_editing != NULL) DISPOSE(ch->inter_editing); act_comm.c: ch->inter_editing = str_dup(idx->name); act_comm.c: sscanf(ch->inter_editing,"%s",ch->inter_editing); /*one-arg*/ act_comm.c: ch->inter_editing_vnum = idx->vnum; act_comm.c: /* looks like the menus keep crashing, lets log them - shogar */ act_comm.c: sprintf(arg1,"%s: cmenu %s",ch->name,argument); act_comm.c: ch->inter_type = CONTROL_TYPE; act_comm.c: if( ch->inter_editing != NULL) DISPOSE(ch->inter_editing); act_comm.c: ch->inter_editing = str_dup("Control Panel"); act_comm.c: sscanf(ch->inter_editing,"%s",ch->inter_editing); /*one-arg*/ act_comm.c: /* looks like the menus keep crashing, lets log them - shogar */ act_comm.c: sprintf(arg1,"%s: mmenu %s",ch->name,argument); act_comm.c: send_to_char( " and <page> is an optional letter to select menu-pages\n\r", ch ); act_comm.c: ch->inter_type = MOB_TYPE; act_comm.c: if( ch->inter_editing != NULL) DISPOSE(ch->inter_editing); act_comm.c: ch->inter_editing = str_dup(arg1); act_comm.c: sscanf(ch->inter_editing,"%s",ch->inter_editing); /*one-arg*/ act_comm.c: ch->inter_editing_vnum = victim->pIndexData->vnum; act_comm.c: send_page_to_char(ch, victim->pIndexData, arg2[0]); act_comm.c: xSET_BIT(ch->act,PLR_RIP); act_comm.c: xSET_BIT(ch->act,PLR_ANSI); act_comm.c: xREMOVE_BIT(ch->act,PLR_RIP); act_comm.c: xSET_BIT(ch->act,PLR_ANSI); act_comm.c: xREMOVE_BIT(ch->act,PLR_ANSI); act_comm.c: if ( ch->level < 2 && ch->level2 == -1 ) act_comm.c: WAIT_STATE( ch, 2 ); /* For big muds with save-happy players, like RoD */ act_comm.c: * (Which exists in many maze areas) -Thoric act_comm.c: for ( tmp = victim; tmp; tmp = tmp->master ) act_comm.c: && ( victim->master == ch ) ) act_comm.c: if ( IS_AFFECTED(ch, AFF_CHARM) && ch->master ) act_comm.c: act( AT_PLAIN, "But you'd rather follow $N!", ch, NULL, ch->master, TO_CHAR ); act_comm.c: if ( !ch->master ) act_comm.c: if ( ( ch->level - victim->level < -10 || ch->level - victim->level > 10 ) act_comm.c: && !IS_HERO(ch) && !(ch->level < 15 && !IS_NPC(victim) act_comm.c: && victim->pcdata->council act_comm.c: && !str_cmp(victim->pcdata->council->name,"Newbie Council"))) act_comm.c:-- Screw this, level restrictions on following are stupid. -- Scion */ act_comm.c: if ( ch->master ) act_comm.c: if ( ch->master ) act_comm.c: bug( "Add_follower: non-null master.", 0 ); act_comm.c: ch->master = master; act_comm.c: ch->leader = NULL; act_comm.c: /* Support for saving pets --Shaddai */ act_comm.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_PET) && !IS_NPC(master) ) act_comm.c: master->pcdata->pet = ch; act_comm.c: if ( !ch->master ) act_comm.c: if ( IS_NPC(ch) && !IS_NPC(ch->master) && ch->master->pcdata->pet == ch ) act_comm.c: ch->master->pcdata->pet = NULL; act_comm.c: xREMOVE_BIT( ch->affected_by, AFF_CHARM ); act_comm.c: if ( can_see( ch->master, ch ) ) act_comm.c: if (!(!IS_NPC(ch->master) && IS_IMMORTAL(ch) && !IS_IMMORTAL(ch->master))) act_comm.c: act( AT_ACTION, "$n stops following you.", ch, NULL, ch->master, TO_VICT ); act_comm.c: act( AT_ACTION, "You stop following $N.", ch, NULL, ch->master, TO_CHAR ); act_comm.c: ch->master = NULL; act_comm.c: ch->leader = NULL; act_comm.c: if ( ch->master ) act_comm.c: ch->leader = NULL; act_comm.c: for ( fch = first_char; fch; fch = fch->next ) act_comm.c: if ( fch->master == ch ) act_comm.c: if ( fch->leader == ch ) act_comm.c: fch->leader = fch; act_comm.c: if ( !IS_AFFECTED(victim, AFF_CHARM) || victim->master != ch ) act_comm.c: for ( och = ch->in_room->first_person; och; och = och_next ) act_comm.c: och_next = och->next_in_room; act_comm.c: if ( IS_AFFECTED(och, AFF_CHARM) && och->master == ch act_comm.c: sprintf( log_buf, "%s: order %s.", ch->name, argbuf ); act_comm.c: log_string_plus( log_buf, LOG_NORMAL, ch->level ); act_comm.c:/* Overhauled 2/97 -- Blodkai */ act_comm.c: leader = ch->leader ? ch->leader : ch; act_comm.c: ch_printf( ch, "\n\rFollowing %-12.12s [hitpnts] [ magic ] [mst] [mvs] [race]%s\n\r", act_comm.c: ch->level < LEVEL_AVATAR ? " [to lvl]" : "" ); act_comm.c: for ( gch = first_char; gch; gch = gch->next ) act_comm.c: if (IS_AFFECTED(gch, AFF_POSSESS) || IS_SET( ch->pcdata->flags, PCFLAG_ANONYMOUS)) act_comm.c: "[%2d %s] %-16s ????/???? hp ????/???? %s ????/???? mv ????? xp\n\r", act_comm.c: gch->level, act_comm.c: if ( gch->alignment > 750 ) sprintf(buf, " A"); act_comm.c: else if ( gch->alignment > 350 ) sprintf(buf, "-A"); act_comm.c: else if ( gch->alignment > 150 ) sprintf(buf, "+N"); act_comm.c: else if ( gch->alignment > -150 ) sprintf(buf, " N"); act_comm.c: else if ( gch->alignment > -350 ) sprintf(buf, "-N"); act_comm.c: else if ( gch->alignment > -750 ) sprintf(buf, "+S"); act_comm.c: ch_printf( ch, "%-2d %2.2s %3.3s", act_comm.c: gch->level, act_comm.c: /* IS_NPC(gch) ? "Mob" : class_table[gch->class]->who_name */ act_comm.c: ch_printf( ch, "%-12.12s ", act_comm.c: if ( gch->hit < gch->max_hit/4 ) act_comm.c: else if ( gch->hit < gch->max_hit/2.5 ) act_comm.c: ch_printf( ch, "%5d", gch->hit ); act_comm.c: ch_printf( ch, "/%-5d ", gch->max_hit ); act_comm.c: ch_printf( ch, "%5d/%-5d ", act_comm.c: IS_VAMPIRE(gch) ? gch->pcdata->condition[COND_BLOODTHIRST] : gch->mana, act_comm.c: IS_VAMPIRE(gch) ? 10 + gch->level : gch->max_mana ); act_comm.c: if ( gch->mental_state < -25 || gch->mental_state > 25 ) act_comm.c: gch->mental_state > 75 ? "+++" : act_comm.c: gch->mental_state > 50 ? "=++" : act_comm.c: gch->mental_state > 25 ? "==+" : act_comm.c: gch->mental_state > -25 ? "===" : act_comm.c: gch->mental_state > -50 ? "-==" : act_comm.c: gch->mental_state > -75 ? "--=" : act_comm.c: "---" ); act_comm.c: gch->move ); act_comm.c: ch_printf( ch, "%6s ", npc_race[gch->race]); act_comm.c: if ( gch->level < LEVEL_AVATAR ) act_comm.c: exp_level( gch, gch->level+1) - gch->exp ); act_comm.c: if ( ch->leader || ch->master ) act_comm.c: for ( gch = first_char; gch; gch = gch->next ) act_comm.c: gch->leader = NULL; act_comm.c: gch->master = NULL; act_comm.c: for ( rch = ch->in_room->first_person; rch; rch = rch->next_in_room ) act_comm.c: && rch->master == ch act_comm.c: && !ch->master act_comm.c: && !ch->leader act_comm.c:/* && abs( ch->level - rch->level ) < 8 Level restrict on groups is stupid -- Scion */ act_comm.c: rch->leader = ch; act_comm.c: if ( ch->master || ( ch->leader && ch->leader != ch ) ) act_comm.c: if ( victim->master != ch && ch != victim ) act_comm.c: victim->leader = NULL; act_comm.c: if ( ch->level - victim->level < -8 act_comm.c: || ch->level - victim->level > 8 act_comm.c: victim->leader = ch; act_comm.c: if ( ch->gold < amount ) act_comm.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) act_comm.c: if ( xIS_SET(ch->act, PLR_AUTOGOLD) && members < 2 ) act_comm.c: ch->gold -= amount; act_comm.c: ch->gold += share + extra; act_comm.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) act_comm.c: gch->gold += share; act_comm.c: int speaking = -1, lang; act_comm.c: if ( ch->speaking & lang_array[lang] ) act_comm.c: if ( xIS_SET(ch->act, PLR_NO_TELL) ) act_comm.c:/* sprintf( buf, "%s tells the group '%s'.\n\r", ch->name, argument );*/ act_comm.c: for ( gch = first_char; gch; gch = gch->next ) act_comm.c: still garble though. -- Altrag */ act_comm.c: if ( speaking != -1 && (!IS_NPC(ch) || ch->speaking) ) act_comm.c: int speakswell = UMIN(knows_language(gch, ch->speaking, ch), act_comm.c: knows_language(ch, ch->speaking, gch)); act_comm.c: ch_printf( gch, "%s tells the group '%s'.\n\r", ch->name, translate(speakswell, argument, lang_names[speaking]) ); act_comm.c: ch_printf( gch, "%s tells the group '%s'.\n\r", ch->name, argument ); act_comm.c: ch_printf( gch, "%s tells the group '%s'.\n\r", ch->name, argument ); act_comm.c: if ( knows_language( gch, ch->speaking, gch ) act_comm.c: || (IS_NPC(ch) && !ch->speaking) ) act_comm.c: ch_printf( gch, "%s tells the group '%s'.\n\r", ch->name, argument ); act_comm.c: ch_printf( gch, "%s tells the group '%s'.\n\r", ch->name, scramble(argument, ch->speaking) ); act_comm.c: if ( ach->leader ) ach = ach->leader; act_comm.c: if ( bch->leader ) bch = bch->leader; act_comm.c: for (d = first_descriptor; d; d = d->next) act_comm.c: original = d->original ? d->original : d->character; /* if switched */ act_comm.c: if ((d->connected == CON_PLAYING) && !IS_SET(original->deaf,CHANNEL_AUCTION) act_comm.c: && !IS_SET(original->in_room->room_flags, ROOM_SILENCE) && !NOT_AUTHED(original)) act_comm.c: * Language support functions. -- Altrag act_comm.c: * Modified to return how well the language is known 04/04/98 - Thoric act_comm.c: * a number based on player's wisdom (maybe 50+((25-wisdom)*2) ?) act_comm.c: if ( IS_NPC(ch) && !ch->speaks ) /* No langs = knows nothing for npcs */ act_comm.c: if ( IS_NPC(ch) && IS_SET(ch->speaks, (language & ~LANG_CLAN)) ) act_comm.c: return (50+(25 - ch->mod_int)*2); act_comm.c: return (50+(25 - ch->int)*2); act_comm.c: Clan = common for mobs.. snicker.. -- Altrag act_comm.c: return (50+(25 - ch->int)*2); act_comm.c: if ( ch->pcdata->clan == cch->pcdata->clan && act_comm.c: ch->pcdata->clan != NULL ) act_comm.c: return (50+(25 - ch->int)*2); act_comm.c: if ( IS_SET(race_table[ch->race]->language, language) ) act_comm.c: return ((65+(25 - ch->mod_int)*2)<=100 ? (65+(25 - ch->mod_int)*2) : 100); act_comm.c: IS_SET(ch->speaks, lang_array[lang]) ) act_comm.c: if ( (sn = skill_lookup(lang_names[lang])) != -1 ) act_comm.c: return ch->pcdata->learned[sn]; act_comm.c: if ( race_table[ch->race]->language & language ) act_comm.c: if ( ch->speaks & language ) act_comm.c: if ( ch->pcdata->learned[sn] >= 99 ) act_comm.c: ch->speaking = ~LANG_CLAN; act_comm.c: (IS_NPC(ch) || !ch->pcdata->clan) ) act_comm.c: ch->speaking = lang_array[langs]; act_comm.c: if ( race_table[ch->race]->language & lang_array[lang] || act_comm.c: ch->pcdata->learned[sn] >= 99 ) act_comm.c: for ( sch = ch->in_room->first_person; sch; sch = sch->next ) act_comm.c: if ( IS_NPC(sch) && xIS_SET(sch->act, ACT_SCHOLAR) act_comm.c: && knows_language( sch, ch->speaking, ch ) act_comm.c: && (!sch->speaking || knows_language( ch, sch->speaking, sch )) ) act_comm.c: if ( countlangs(ch->speaks) >= (ch->level / 10) && act_comm.c: ch->pcdata->learned[sn] <= 0 ) act_comm.c: /* 0..16 cha = 2 pracs, 17..25 = 1 prac. -- Altrag */ act_comm.c: prac = 2 - (get_curr_cha(ch) / 17); act_comm.c: if ( ch->practice < prac ) act_comm.c: ch->practice -= prac; act_comm.c: /* Max 12% (5 + 4 + 3) at 24+ int and 21+ wis. -- Altrag */ act_comm.c: ch->pcdata->learned[sn] += prct; act_comm.c: ch->pcdata->learned[sn] = UMIN(ch->pcdata->learned[sn], 99); act_comm.c: SET_BIT( ch->speaks, lang_array[lang] ); act_comm.c: if ( ch->pcdata->learned[sn] == prct ) act_comm.c: else if ( ch->pcdata->learned[sn] < 60 ) act_comm.c: else if ( ch->pcdata->learned[sn] < 60 + prct ) act_comm.c: else if ( ch->pcdata->learned[sn] < 99 ) act_comm.c: if ( ch->speaking & lang_array[lang] || act_comm.c: (IS_NPC(ch) && !ch->speaking) ) act_comm.c: _word[j]='-'; j++; act_comm.c: _word[j]='@'; j++; /* Was @@ -- Scion */ act_info.c: * -----------------------------------------------------------| (0...0) * act_info.c: * -----------------------------------------------------------| {o o} * act_info.c: * ------------------------------------------------------------------------ * act_info.c: * ------------------------------------------------------------------------ * act_info.c:#include "imc-mercbase.h" act_info.c: ch_printf( ch, "&C> &wFor All:\n\r&C> &w%-12s %-12s %-12s\n\r", "Offender", "Victim", "Date" ); act_info.c: ch_printf( ch, "&C> &wFor %s:\n\r&C> &w%-12s %-12s\n\r", victim->name, "Victim", "Date" ); act_info.c: for ( illegal_pkill = first_pk; illegal_pkill; illegal_pkill = illegal_pkill->next ) act_info.c: ch_printf( ch, "&C> &z&R%-12s &Y%-12s &G%-12s&w", illegal_pkill->name, illegal_pkill->vict, act_info.c: illegal_pkill->date ); act_info.c: else if (victim->name == illegal_pkill->name && victim) act_info.c: ch_printf( ch, "&C> &z&Y%-12s &G%-12s&w", illegal_pkill->vict, illegal_pkill->date ); act_info.c: /* Sharpen skill --Cronel */ act_info.c: if( obj->item_type == ITEM_WEAPON act_info.c: && obj->value[5] == 1 ) act_info.c: strcat( buf, "(Smouldering Red-Grey) " ); act_info.c: strcat( buf, "(Smouldering Red-White) " ); act_info.c: strcat( buf, "(Smouldering Grey-White) " ); act_info.c: if ( obj->short_descr ) act_info.c: strcat( buf, obj->short_descr ); act_info.c: if ( obj->description ) act_info.c: strcat( buf, obj->description ); act_info.c: * Some increasingly freaky hallucinated objects -Thoric act_info.c: switch( number_range( 6-URANGE(1,sms/2,5), sms ) ) act_info.c: switch( number_range( 6-URANGE(1,sms/2,5), sms ) ) act_info.c: if ( !ch->desc ) act_info.c: * if there's no list... then don't do all this crap! -Thoric act_info.c: if ( IS_NPC(ch) || xIS_SET(ch->act, PLR_COMBINE) ) act_info.c: for ( obj = list; obj; obj = obj->next_content ) act_info.c: ms = (ch->mental_state ? ch->mental_state : 1) act_info.c: * (IS_NPC(ch) ? 1 : (ch->pcdata->condition[COND_DRUNK] ? (ch->pcdata->condition[COND_DRUNK]/12) : 1)); act_info.c: offcount = URANGE( -(count), (count * ms) / 100, count*2 ); act_info.c: offcount -= number_range(0, offcount); act_info.c: if ( IS_NPC(ch) || xIS_SET(ch->act, PLR_COMBINE) ) act_info.c: for ( obj = list; obj; obj = obj->next_content ) act_info.c: --tmp; act_info.c: if ( obj->wear_loc == WEAR_NONE act_info.c: && (obj->item_type != ITEM_TRAP || IS_AFFECTED(ch, AFF_DETECTTRAPS) ) ) act_info.c: if ( IS_NPC(ch) || xIS_SET(ch->act, PLR_COMBINE) ) act_info.c: for ( iShow = nShow - 1; iShow >= 0; iShow-- ) act_info.c: prgnShow[iShow] += obj->count; act_info.c: pitShow[nShow] = obj->item_type; act_info.c: prgnShow [nShow] = obj->count; act_info.c: * Output the formatted list. -Color support by Thoric act_info.c:/* if ( IS_NPC(ch) || xIS_SET(ch->act, PLR_COMBINE) ) */ act_info.c: if ( IS_NPC(ch) || xIS_SET(ch->act, PLR_COMBINE) ) act_info.c: * Show fancy descriptions for certain spell affects -Thoric act_info.c: strcpy( name, victim->short_descr ); act_info.c: strcpy( name, victim->name); act_info.c: ch_printf( ch, "%s wanders in a dazed, zombie-like state.\n\r", name ); act_info.c: if ( !IS_NPC(victim) && !victim->desc act_info.c: && victim->switched && IS_AFFECTED(victim->switched, AFF_POSSESS) ) act_info.c: if (IS_NPC(victim) &&ch->questmob > 0 && victim->pIndexData->vnum == ch->questmob) act_info.c: if ( !IS_NPC(victim) && victim->bounty > 0 ) act_info.c: if ( !IS_NPC(victim) && victim->pcdata->team == 2 ) act_info.c: if ( !IS_NPC(victim) && victim->pcdata->team == 1 ) act_info.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_TAGGED)) act_info.c: if ( !IS_NPC(victim) && !victim->desc ) act_info.c: if ( !victim->switched ) act_info.c: && victim->desc ) act_info.c: sprintf( buf1, "(%s)",victim->desc->original->name ); act_info.c: && xIS_SET(victim->act, PLR_AFK) ) act_info.c: if ( (!IS_NPC(victim) && xIS_SET(victim->act, PLR_WIZINVIS)) act_info.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_MOBINVIS)) ) act_info.c: sprintf( buf1,"(Invis %d) ", victim->pcdata->wizinvis ); act_info.c: sprintf( buf1,"(Mobinvis %d) ", victim->mobinvis); act_info.c: && victim->pcdata->clan act_info.c: && victim->pcdata->clan->badge ) act_info.c: ch_printf_color( ch, "%s ", victim->pcdata->clan->badge ); act_info.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) act_info.c: sprintf(buf+strlen(buf),"[%d] ",victim->pIndexData->vnum); act_info.c: strcat( buf, "(Wild-eyed) " ); act_info.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_ATTACKER ) ) act_info.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_KILLER ) ) act_info.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_THIEF ) ) act_info.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_LITTERBUG ) ) act_info.c: && xIS_SET(victim->act, ACT_PROTOTYPE) ) act_info.c: if ( IS_NPC(victim) && ch->mount && ch->mount == victim act_info.c: && ch->in_room == ch->mount->in_room ) act_info.c: if ( victim->desc act_info.c: && ( victim->desc->connected == CON_EDITING act_info.c: || ( victim->desc->connected >= CON_NOTE_TO act_info.c: && victim->desc->connected <= CON_NOTE_FINISH))) act_info.c: if ( victim->morph != NULL ) act_info.c: if ((victim->position == victim->defposition && victim->long_descr[0] != '\0') act_info.c: || ( victim->morph && victim->morph->morph act_info.c: && victim->morph->morph->defpos == victim->position ) ) act_info.c: if ( victim->morph != NULL ) act_info.c: if ( victim->morph->morph != NULL) act_info.c: strcat ( buf, victim->morph->morph->long_desc ); act_info.c: strcat ( buf, victim->long_descr ); act_info.c: if ( !IS_NPC(victim) && !xIS_SET(ch->act, PLR_BRIEF) ) act_info.c: strcat( buf, victim->pcdata->title ); act_info.c: strcat (buf, victim->long_descr); act_info.c: if ( victim->morph != NULL && victim->morph->morph != NULL && act_info.c: if ( !IS_NPC(victim) && !xIS_SET(ch->act, PLR_BRIEF) ) act_info.c: strcat( name, victim->pcdata->lastname ? victim->pcdata->lastname : "" ); act_info.c: /* strcat( buf, victim->pcdata->title ); */ act_info.c: switch ( victim->position ) act_info.c: if (ch->position == POS_SITTING act_info.c: || ch->position == POS_RESTING ) act_info.c: if (ch->position == POS_RESTING) act_info.c: else if (ch->position == POS_MOUNTED) act_info.c: if (ch->position == POS_SITTING) act_info.c: else if (ch->position == POS_RESTING) act_info.c: else if ( ( victim->in_room->sector_type == SECT_UNDERWATER ) act_info.c: else if ( victim->in_room->sector_type == SECT_UNDERWATER ) act_info.c: else if ( ( victim->in_room->sector_type == SECT_OCEANFLOOR ) act_info.c: else if ( victim->in_room->sector_type == SECT_OCEANFLOOR ) act_info.c: if ( !victim->mount ) act_info.c: if ( victim->mount == ch ) act_info.c: if ( victim->in_room == victim->mount->in_room ) act_info.c: strcat( buf2, PERS( victim->mount, ch ) ); act_info.c: if ( !victim->fighting ) act_info.c: /* some bug somewhere.... kinda hackey fix -h */ act_info.c: if(!victim->mount) act_info.c: victim->position = POS_STANDING; act_info.c: victim->position = POS_MOUNTED; act_info.c: else if ( victim->in_room == victim->fighting->who->in_room ) act_info.c: strcat( buf2, PERS( victim->fighting->who, ch ) ); act_info.c: if (victim->fur_pos > FURNITURE_NONE) act_info.c: sprintf( buf3, "%s", victim->pcdata->lastname ); act_info.c: if (victim->on) act_info.c: victim->pcdata->lastname ? buf3 : "", act_info.c: fur_pos_string(victim->fur_pos), act_info.c: victim->on->short_descr ); act_info.c: if ( can_see( victim, ch ) && !IS_NPC( ch ) && !xIS_SET( ch->act, PLR_WIZINVIS ) ) act_info.c: if ( victim->description != NULL ) act_info.c: if ( victim->morph != NULL && victim->morph->morph != NULL) act_info.c: send_to_char ( victim->morph->morph->description , ch ); act_info.c: send_to_char (victim->description, ch); act_info.c: if ( victim->morph != NULL && victim->morph->morph != NULL) act_info.c: send_to_char ( victim->morph->morph->description , ch ); act_info.c: if (victim->fur_pos > FURNITURE_NONE) act_info.c: if (victim->on) act_info.c: victim->name, pos_string(victim), act_info.c: fur_pos_string(victim->fur_pos), act_info.c: victim->on->short_descr ); act_info.c: if( (!IS_NPC(victim)) && (victim->race>0) && (victim->race<MAX_RACE)) act_info.c: send_to_char(race_table[victim->race]->where_name[iWear], ch); act_info.c: victim->pIndexData->vnum, act_info.c: victim->name ); act_info.c: ch_printf( ch, "\n\r%s ", victim->name ); act_info.c: victim->level, act_info.c: victim->race < MAX_NPC_RACE && victim->race >= 0 ? act_info.c: npc_race[victim->race] : "unknown", act_info.c: victim->class < MAX_NPC_CLASS && victim->class >= 0 ? act_info.c: npc_class[victim->class] : "unknown", act_info.c: victim->level2, act_info.c: victim->class2 < MAX_NPC_CLASS && victim->class2 >= 0 ? act_info.c: npc_class[victim->class2] : "unknown" ); act_info.c: victim->sex == 1 ? "his" : victim->sex == 2 ? "her" : "its" ); act_info.c: show_list_to_char( victim->first_carrying, ch, TRUE, TRUE ); act_info.c: if ( ch->pcdata->learned[gsn_peek] > 0 ) act_info.c: for ( rch = list; rch; rch = rch->next_in_room ) act_info.c: else if ( room_is_dark( ch->in_room ) act_info.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) act_info.c: * Returns classical DIKU door direction based on text in arg -Thoric act_info.c: else door = -1; act_info.c: if( room->compress ) act_info.c: if( IS_SET( room->room_flags, ROOM_WILDERNESS ) ) act_info.c: ch_printf( ch, "%s", room->description ); act_info.c: STRFREE( ch->in_room->name ); act_info.c: DISPOSE( ch->in_room->description ); act_info.c: ch_printf( ch, "%s", room->description ); act_info.c: if( !room->compress ) act_info.c: ch_printf( ch, "%s", room->description ); act_info.c: else if (xIS_SET(ch->act, PLR_HOLYLIGHT)) act_info.c: ch_printf( ch, "&z&WCompressed&w -\n\r%s", room->uncomp_desc ); act_info.c: DISPOSE( room->uncomp_desc ); act_info.c: ch_printf( ch, "%s", room->uncomp_desc ); act_info.c: DISPOSE( room->uncomp_desc ); act_info.c: if ( !ch->desc ) act_info.c: if ( ch->position < POS_SLEEPING ) act_info.c: if ( ch->position == POS_SLEEPING ) act_info.c: && !xIS_SET(ch->act, PLR_HOLYLIGHT) act_info.c: && room_is_dark( ch->in_room ) ) act_info.c: show_char_to_char( ch->in_room->first_person, ch ); act_info.c: switch ( ch->inter_page ) /* rmenu */ act_info.c: /* make life easier - shogar */ act_info.c: switch( ch->in_room->sector_type ) act_info.c: troom = ch->in_room; act_info.c: tarea = troom->area; act_info.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) act_info.c: ch_printf(ch,"&Y[&W %d",troom->vnum); act_info.c: ch_printf(ch,"&Y |&W %s",tarea->filename); act_info.c: if (str_cmp(flag_string(tarea->flags, area_flags), "")) act_info.c: ch_printf(ch,"&Y |&G %s",flag_string(tarea->flags, area_flags)); act_info.c: if (str_cmp(flag_string(troom->room_flags,r_flags), "")) act_info.c: ch_printf(ch,"&Y |&G %s&Y ]&W\n\r",flag_string(troom->room_flags,r_flags)); act_info.c: send_to_char( ch->in_room->name, ch ); act_info.c: ch_printf( ch, "&c[ &W%s ", tarea->filename ); act_info.c: if( str_cmp( flag_string( tarea->flags, area_flags ), "" ) ) act_info.c: flag_string( tarea->flags, area_flags ) ); act_info.c: if( str_cmp( flag_string( troom->room_flags, r_flags ), "" ) ) act_info.c: if( troom->compress ) act_info.c: flag_string( troom->room_flags, r_flags ) ); act_info.c: else if( troom->compress ) act_info.c: ch_printf( ch, "&c[ &W%d &c] &W%s\n\r", troom->vnum, troom->name ); act_info.c: ch_printf( ch, "%s\n\r", troom->name ); act_info.c: || ( !IS_NPC(ch) && !xIS_SET(ch->act, PLR_BRIEF) ) ) act_info.c: showRoom( ch, ch->in_room ); act_info.c: if( !ch->in_room->compress ) act_info.c: ch_printf( ch, "%s", ch->in_room->description ); act_info.c: else if (xIS_SET(ch->act, PLR_HOLYLIGHT)) act_info.c: decompressRoom( ch->in_room ); act_info.c: ch_printf( ch, "&z&WCompressed&w -\n\r%s", ch->in_room->uncomp_desc ); act_info.c: DISPOSE( ch->in_room->uncomp_desc ); act_info.c: decompressRoom( ch->in_room ); act_info.c: ch_printf( ch, "%s", ch->in_room->uncomp_desc ); act_info.c: DISPOSE( ch->in_room->uncomp_desc ); act_info.c:/* if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOMAP) ) */ /* maps */ act_info.c: if(ch->in_room->map != NULL) act_info.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOEXIT) ) act_info.c: show_list_to_char( ch->in_room->first_content, ch, FALSE, FALSE ); act_info.c: show_char_to_char( ch->in_room->first_person, ch ); act_info.c: if ( !CAN_WEAR( obj, ITEM_TAKE ) && ch->level < sysdata.level_getobjnotake ) act_info.c: if ( ch->carry_weight + obj->weight > can_carry_w( ch ) ) act_info.c: count = obj->count; act_info.c: obj->count = 1; act_info.c: obj->count = count; act_info.c: show_list_to_char( obj->first_content, ch, TRUE, TRUE ); act_info.c: switch ( obj->item_type ) act_info.c: if ( obj->value[1] <= 0 ) act_info.c: obj->value[1] < obj->value[0] / 4 act_info.c: obj->value[1] < 3 * obj->value[0] / 4 act_info.c: liq_table[obj->value[2]].liq_color act_info.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_info.c: if ( pexit->vdir == DIR_PORTAL act_info.c: && IS_SET(pexit->exit_info, EX_PORTAL) ) act_info.c: if ( room_is_private( pexit->to_room ) act_info.c: original = ch->in_room; act_info.c: char_to_room( ch, pexit->to_room ); act_info.c: if ( IS_SET(obj->value[1], CONT_CLOSED) ) act_info.c: count = obj->count; act_info.c: obj->count = 1; act_info.c: if ( obj->item_type == ITEM_CONTAINER ) act_info.c: obj->count = count; act_info.c: show_list_to_char( obj->first_content, ch, TRUE, TRUE ); act_info.c: if ( (pdesc=get_extra_descr(arg1, ch->in_room->first_extradesc)) != NULL ) act_info.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) act_info.c: && !IS_SET(pexit->exit_info, EX_WINDOW) ) act_info.c: if ( (IS_SET(pexit->exit_info, EX_SECRET) act_info.c: || IS_SET(pexit->exit_info, EX_DIG)) && door != -1 ) act_info.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, pexit->keyword, TO_CHAR ); act_info.c: if ( IS_SET( pexit->exit_info, EX_BASHED ) ) act_info.c: act(AT_RED, "The $d has been bashed from its hinges!",ch, NULL, pexit->keyword, TO_CHAR); act_info.c: if ( pexit->description && pexit->description[0] != '\0' ) act_info.c: send_to_char( pexit->description, ch ); act_info.c: * Ability to look into the next room -Thoric act_info.c: if ( pexit->to_room act_info.c: || IS_SET( pexit->exit_info, EX_xLOOK ) act_info.c: if ( !IS_SET( pexit->exit_info, EX_xLOOK ) act_info.c: percent = 55; /* 95 was too good -Thoric */ act_info.c: if ( room_is_private( pexit->to_room ) act_info.c: original = ch->in_room; act_info.c: char_to_room( ch, pexit->to_room ); act_info.c: if ( door != -1 ) act_info.c: /* finally fixed the annoying look 2.obj desc bug -Thoric */ act_info.c: for ( cnt = 0, obj = ch->last_carrying; obj; obj = obj->prev_content ) act_info.c: /* hiscore shtuff -- Scion */ act_info.c: } /* end hiscore shtuff -- Scion */ act_info.c: if ( (pdesc=get_extra_descr(arg, obj->first_extradesc)) != NULL ) act_info.c: if ( (cnt += obj->count) < number ) act_info.c: if ( (pdesc=get_extra_descr(arg, obj->pIndexData->first_extradesc)) != NULL ) act_info.c: if ( (cnt += obj->count) < number ) act_info.c: if ( nifty_is_name_prefix( arg, obj->name ) ) act_info.c: if ( (cnt += obj->count) < number ) act_info.c: pdesc = get_extra_descr( obj->name, obj->pIndexData->first_extradesc ); act_info.c: pdesc = get_extra_descr( obj->name, obj->first_extradesc ); act_info.c: for ( obj = ch->in_room->last_content; obj; obj = obj->prev_content ) act_info.c: /* hiscore shtuff -- Scion */ act_info.c: if ( (pdesc=get_extra_descr(arg, obj->first_extradesc)) != NULL ) act_info.c: if ( (cnt += obj->count) < number ) act_info.c: if ( (pdesc=get_extra_descr(arg, obj->pIndexData->first_extradesc)) != NULL ) act_info.c: if ( (cnt += obj->count) < number ) act_info.c: if ( nifty_is_name_prefix( arg, obj->name ) ) act_info.c: if ( (cnt += obj->count) < number ) act_info.c: pdesc = get_extra_descr( obj->name, obj->pIndexData->first_extradesc ); act_info.c: pdesc = get_extra_descr( obj->name, obj->first_extradesc ); act_info.c: feet = victim->height / 12; act_info.c: inches = victim->height % 12; act_info.c: sprintf( buf, "%s is %d'%d\" and weighs %d pounds.\n\r", PERS(victim, ch), feet, inches, victim->weight ); act_info.c: sprintf(buf, "%s is %s, %s, %s %s haired with %s eyes and %s skin.\n\r", victim->sex == 0 act_info.c: ? "It" : victim->sex == 1 ? "He" : "She", victim->pcdata->ch_height, act_info.c: victim->pcdata->ch_build, victim->pcdata->hair_length, victim->pcdata->hair_color, act_info.c: victim->pcdata->eye_color, victim->pcdata->skin_tone); act_info.c: feet = victim->height / 12; act_info.c: inches = victim->height % 12; act_info.c: sprintf( buf, "You are %d'%d\" and weigh %d pounds.\n\r", feet, inches, victim->weight ); act_info.c: if ( victim->max_hit > 0 ) act_info.c: percent = ( 100 * victim->hit ) / victim->max_hit; act_info.c: percent = -1; act_info.c:-- Narn, winter '96 act_info.c: if ( !ch->desc ) act_info.c: if ( ch->position < POS_SLEEPING ) act_info.c: if ( ch->position == POS_SLEEPING ) act_info.c: if ( xIS_SET(ch->act, PLR_BRIEF) ) act_info.c: xSET_BIT( ch->act, PLR_BRIEF ); act_info.c: xREMOVE_BIT(ch->act, PLR_BRIEF); act_info.c: victim->pIndexData->vnum, victim->name ); act_info.c: ch_printf( ch, "%s ", victim->name ); act_info.c: victim->level, act_info.c: victim->race < MAX_NPC_RACE && victim->race >= 0 ? act_info.c: npc_race[victim->race] : "unknown", act_info.c: victim->class < MAX_NPC_CLASS && victim->class >= 0 ? act_info.c: npc_class[victim->class] : "unknown", act_info.c: victim->level2, act_info.c: victim->class2 < MAX_NPC_CLASS && victim->class2 >= 0 ? act_info.c: npc_class[victim->class2] : "unknown" ); act_info.c: if ( board->num_posts ) act_info.c: ch_printf( ch, "There are about %d notes posted here. Type 'note list' to list them.\n\r", board->num_posts ); act_info.c: switch ( obj->item_type ) act_info.c: if ( obj->value[1] == 0 ) act_info.c: obj->value[1] = obj->value[0]; act_info.c: if ( obj->value[1] == 0 ) act_info.c: obj->value[1] = 1; act_info.c: dam = (sh_int) ((obj->value[0] * 10) / obj->value[1]); act_info.c: dam = INIT_WEAPON_CONDITION - obj->value[0]; act_info.c: dam = obj->value[2]; act_info.c: if ( obj->timer > 0 && obj->value[1] > 0 ) act_info.c: dam = (obj->timer * 10) / obj->value[1]; act_info.c: if ( obj->item_type == ITEM_FOOD ) act_info.c: if ( IS_SET( obj->value[0], TRIG_UP ) ) act_info.c: if ( IS_SET( obj->value[0], TRIG_UP ) ) act_info.c: sh_int timerfrac = obj->timer; act_info.c: if ( obj->item_type == ITEM_CORPSE_PC ) act_info.c: timerfrac = (int)obj->timer / 8 + 1; act_info.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_info.c: if( !IS_NPC( ch ) && xIS_SET( ch->act, PLR_HOLYLIGHT ) ) act_info.c: if( pexit->to_room ) act_info.c: if( IS_SET( pexit->exit_info, EX_CLOSED) && act_info.c: ( IS_SET( pexit->exit_info, EX_WINDOW) || act_info.c: IS_SET(pexit->exit_info, EX_ISDOOR))) act_info.c: sprintf( buf+strlen(buf), " %s&c[ &W%-5d &c| &W(%-9s) &c] - %s\n\r", act_info.c: pexit->to_room->vnum, act_info.c: capitalize( dir_name[pexit->vdir] ), act_info.c: pexit->to_room->name ); act_info.c: sprintf( buf+strlen(buf), " %s&c[ &W%-5d &c| &W%-11s &c] - %s\n\r", act_info.c: pexit->to_room->vnum, act_info.c: capitalize( dir_name[pexit->vdir] ), act_info.c: pexit->to_room->name ); act_info.c: /* make life easier - shogar */ act_info.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) act_info.c: sprintf(buf+strlen(buf),"[%d]-",pexit->to_room->vnum); */ act_info.c: else if( !IS_NPC( ch ) && IS_SET( ch->in_room->area->flags, AFLAG_EXIT_NAMES ) act_info.c: && !xIS_SET(ch->act, PLR_BRIEF) ) act_info.c: if ( pexit->to_room ) act_info.c: if( !IS_SET(pexit->exit_info, EX_CLOSED) act_info.c: && (!IS_SET(pexit->exit_info, EX_WINDOW) act_info.c: || IS_SET(pexit->exit_info, EX_ISDOOR)) act_info.c: && !IS_SET(pexit->exit_info, EX_HIDDEN) ) act_info.c: sprintf( buf+strlen(buf), " %s&c[ &W%-5d &c| &W(%-9s) &c] - %s\n\r", act_info.c: pexit->to_room->vnum, act_info.c: capitalize( dir_name[pexit->vdir] ), act_info.c: pexit->to_room->name ); act_info.c: sprintf( buf+strlen(buf), " %s&c[ &W%-5d &c| &W%-11s &c] - %s\n\r", act_info.c: pexit->to_room->vnum, act_info.c: capitalize( dir_name[pexit->vdir] ), act_info.c: pexit->to_room->name ); act_info.c: if ( pexit->to_room act_info.c: && !IS_SET(pexit->exit_info, EX_CLOSED) act_info.c: && (!IS_SET(pexit->exit_info, EX_WINDOW) act_info.c: || IS_SET(pexit->exit_info, EX_ISDOOR)) act_info.c: && !IS_SET(pexit->exit_info, EX_HIDDEN) ) act_info.c: strcat( buf, dir_name[pexit->vdir] ); act_info.c: sprintf( buf + strlen(buf), "%-5s - %s\n\r", act_info.c: capitalize( dir_name[pexit->vdir] ), act_info.c: room_is_dark( pexit->to_room ) act_info.c: : pexit->to_room->name ); act_info.c: else if ( fAuto && !xIS_SET( ch->act, PLR_HOLYLIGHT ) ) act_info.c: * <combo-phrase> and <single-phrase>. act_info.c: * Where the combo-phrase describes either the precipitation and act_info.c: * temperature or the wind and temperature. The single-phrase act_info.c: * combo-phrase. act_info.c: * Fireblade - Under Construction act_info.c: temp = (ch->in_room->area->weather->temp + 3*weath_unit - 1)/ act_info.c: precip = (ch->in_room->area->weather->precip + 3*weath_unit - 1)/ act_info.c: wind = (ch->in_room->area->weather->wind + 3*weath_unit - 1)/ act_info.c: * ie: online help editing -Thoric act_info.c: lev = -2; act_info.c: for ( pHelp = first_help; pHelp; pHelp = pHelp->next ) act_info.c: if ( pHelp->level > get_trust( ch ) ) act_info.c: if ( lev != -2 && pHelp->level != lev ) act_info.c: if ( is_name( argall, pHelp->keyword ) ) act_info.c: /* Make newbies do a help start. --Shaddai */ act_info.c: SET_BIT(ch->pcdata->flags, PCFLAG_HELPSTART); act_info.c: if ( pHelp->level >= 0 && str_cmp( argument, "imotd" ) ) act_info.c: pager_printf( ch, "&c[ &wKeyword(s): &G%s &c| &wLevel: &G%d &c]", pHelp->keyword, pHelp->level ); act_info.c: if ( pHelp->text[0] == '.' ) act_info.c: send_to_pager_color( pHelp->text+1, ch ); act_info.c: send_to_pager_color( pHelp->text , ch ); act_info.c: * Help editor -Thoric act_info.c: if ( !ch->desc ) act_info.c: switch( ch->substate ) act_info.c: if ( (pHelp = ch->dest_buf) == NULL ) act_info.c: bug( "hedit: sub_help_edit: NULL ch->dest_buf", 0 ); act_info.c: if ( help_greeting == pHelp->text ) act_info.c: STRFREE( pHelp->text ); act_info.c: pHelp->text = copy_buffer( ch ); act_info.c: help_greeting = pHelp->text; act_info.c: pHelp->keyword = STRALLOC( strupper(argument) ); act_info.c: pHelp->text = STRALLOC( "" ); act_info.c: pHelp->level = lev; act_info.c: ch->substate = SUB_HELP_EDIT; act_info.c: ch->dest_buf = pHelp; act_info.c: start_editing( ch, pHelp->text ); act_info.c: * Stupid leading space muncher fix -Thoric act_info.c: for ( pHelp = first_help; pHelp; pHelp = pHelp->next ) act_info.c: pHelp->level, pHelp->keyword, help_fix(pHelp->text) ); act_info.c: STRFREE( pHelp->text ); act_info.c: STRFREE( pHelp->keyword ); act_info.c: pHelp->level = atoi( arg2 ); act_info.c: STRFREE( pHelp->keyword ); act_info.c: pHelp->keyword = STRALLOC( strupper(arg2) ); act_info.c: * Show help topics in a level range -Thoric act_info.c: minlimit = maxlimit >= LEVEL_GREATER ? -1 : 0; act_info.c: for ( cnt = 0, help = first_help; help; help = help->next ) act_info.c: if ( help->level >= min && help->level <= max act_info.c: && (!idx || nifty_is_name_prefix(idx, help->keyword)) ) act_info.c: pager_printf( ch, "&c %3d &w%s\n\r", help->level, help->keyword ); act_info.c: imc_whoreply_start(from->name); act_info.c: for (d = descriptor_list; d; d = d->next) act_info.c: victim = ( d->original ) ? d->original : d->character; act_info.c: if (d->connected != CON_PLAYING || !imc_visible(from, imc_getdata(victim)) || act_info.c: sprintf( class_text, "%s%2d %s", NOT_AUTHED(victim) ? "N" : " ", victim->level, act_info.c: class_table[victim->class]->who_name ); act_info.c: switch ( victim->level ) act_info.c: case MAX_LEVEL - 0: class = "Owner"; break; act_info.c: case MAX_LEVEL - 1: class = "Admin"; break; act_info.c: case MAX_LEVEL - 2: class = "Eternal "; break; act_info.c: case MAX_LEVEL - 3: class = "Ancient"; break; act_info.c: case MAX_LEVEL - 4: class = "Exalted God"; break; act_info.c: case MAX_LEVEL - 5: class = "Ascendant God"; break; act_info.c: case MAX_LEVEL - 6: class = "Greater God"; break; act_info.c: case MAX_LEVEL - 7: class = "God"; break; act_info.c: case MAX_LEVEL - 8: class = "Lesser God"; break; act_info.c: case MAX_LEVEL - 9: class = "Immortal"; break; act_info.c: case MAX_LEVEL - 10: class = "Demi God"; break; act_info.c: case MAX_LEVEL - 11: class = "Savior"; break; act_info.c: case MAX_LEVEL - 12: class = "Creator"; break; act_info.c: case MAX_LEVEL - 13: class = "Acolyte"; break; act_info.c: case MAX_LEVEL - 14: class = "Neophyte"; break; act_info.c: case MAX_LEVEL - 15: class = "Avatar"; break; act_info.c: if ( !str_cmp( victim->name, sysdata.guild_overseer ) ) act_info.c: else if ( !str_cmp( victim->name, sysdata.guild_advisor ) ) act_info.c: else if ( victim->pcdata->rank && victim->pcdata->rank[0] != '\0' ) act_info.c: class = victim->pcdata->rank; act_info.c: if ( victim->pcdata->clan ) act_info.c: CLAN_DATA *pclan = victim->pcdata->clan; act_info.c: if ( pclan->clan_type == CLAN_GUILD ) act_info.c: if ( pclan->clan_type == CLAN_ORDER ) act_info.c: if ( !str_cmp( victim->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number2 ) ) act_info.c: else if ( pclan->clan_type == CLAN_GUILD ) act_info.c: if ( !str_cmp( victim->name, pclan->leader ) ) act_info.c: if ( !str_cmp( victim->name, pclan->number1 ) ) act_info.c: if ( !str_cmp( victim->name, pclan->number2 ) ) act_info.c: if ( !str_cmp( victim->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number2 ) ) act_info.c: strcat( clan_name, pclan->name ); act_info.c: if ( pclan->clan_type == CLAN_GUILD ) act_info.c: if ( victim->pcdata->council ) act_info.c: if ( victim->pcdata->council->head2 == NULL ) act_info.c: if (!str_cmp (victim->name, victim->pcdata->council->head)) act_info.c: if (!str_cmp (victim->name, victim->pcdata->council->head) act_info.c: || !str_cmp ( victim->name, victim->pcdata->council->head2) ) act_info.c: strcat (council_name, "Co-Head of "); act_info.c: strcat( council_name, victim->pcdata->council_name ); act_info.c: if ( victim->pcdata->council2 ) act_info.c: if ( victim->pcdata->council2->head2 == NULL ) act_info.c: if (!str_cmp (victim->name, victim->pcdata->council2->head)) act_info.c: if (!str_cmp (victim->name, victim->pcdata->council2->head) act_info.c: || !str_cmp ( victim->name, victim->pcdata->council2->head2) ) act_info.c: strcat (council2_name, "Co-Head of "); act_info.c: strcat( council2_name, victim->pcdata->council2_name ); act_info.c: if ( xIS_SET victim->act, PLR_WIZINVIS) ) act_info.c: sprintf( invis_str, "&R(&W%d&R) &w", victim->pcdata->wizinvis ); act_info.c: (fGroup ? whogr->indent : 0), "", act_info.c: wch->pcdata->extraname, act_info.c: wch->pcdata->lastname, act_info.c: wch->pcdata->title, act_info.c: (wch->desc && wch->desc->connected) ? " &Y[&WWRITING&Y]&G " : "", act_info.c: xIS_SET(wch->act, PLR_AFK) ? " &Y[&WAWAY&Y]&G " : "", act_info.c: xIS_SET(wch->act, PLR_ATTACKER) ? " &R(&W^zATTACKER^x&R)&G " : "", act_info.c: xIS_SET(wch->act, PLR_KILLER) ? " &R(&W^zKILLER^x&R)&G " : "", act_info.c: xIS_SET(wch->act, PLR_THIEF) ? " &R(&W^zTHIEF^x&R)&G " : "" act_info.c: (victim->desc && victim->desc->connected) ? "&B[&WWRITING&B]&w " : "", act_info.c: xIS_SET(victim->act, PLR_AFK) ? "&B[&WAFK&B]&w " : "", act_info.c: victim->pcdata->extraname ? victim->pcdata->extraname : "", act_info.c: victim->pcdata->lastname ? victim->pcdata->lastname : "", act_info.c: victim->pcdata->title, act_info.c: xIS_SET(victim->act, PLR_ATTACKER) ? " &R(&WATTACKER&R)&w" : "", act_info.c: xIS_SET(victim->act, PLR_KILLER) ? " &R(&WKILLER&R)&w" : "", act_info.c: xIS_SET(victim->act, PLR_THIEF) ? " &R(&WTHIEF&R)&w" : "" ); act_info.c: (victim->desc && victim->desc->connected) ? " &Y[&WWRITING&Y]&G" : "", act_info.c: xIS_SET(victim->act, PLR_AFK) ? " &Y[&WAWAY&Y]&G " : "", act_info.c: xIS_SET(victim->act, PLR_ATTACKER) ? " &R(&W^zATTACKER^x&R)&G " : "", act_info.c: xIS_SET(victim->act, PLR_KILLER) ? " &R(&W^zKILLER^x&R)&G " : "", act_info.c: xIS_SET(victim->act, PLR_THIEF) ? " &R(&W^zTHIEF^x&R)&G " : "" act_info.c: * New do_who with WHO REQUEST, clan, race and homepage support. -Thoric act_info.c: * different lists for morts and imms -- Scion act_info.c: for (whogr = first; whogr; whogr = whogr->next) act_info.c: if (whogr->d == d) act_info.c: else if (whogr->follower && (whogr_t = find_whogr(d, whogr->follower))) act_info.c: for ( ; whogr; whogr = whogr->next ) act_info.c: if (whogr->follower) act_info.c: (whogr->d->original ? whogr->d->original : whogr->d->character); act_info.c: indent_whogr(looker, whogr->follower, nlev); act_info.c: whogr->indent = ilev; act_info.c:/* This a great big mess to backwards-structure the ->leader character act_info.c: first_whogr = whogr->next; act_info.c: for (d = last_descriptor; d; d = d->prev) act_info.c: if((d->connected != CON_PLAYING act_info.c: && d->connected != CON_EDITING) act_info.c: || (d->connected <= CON_NOTE_TO act_info.c: && d->connected >= CON_NOTE_FINISH)) act_info.c: wch = (d->original ? d->original : d->character); act_info.c: if (!wch->leader || wch->leader == wch || !wch->leader->desc || act_info.c: IS_NPC(wch->leader) || IS_IMMORTAL(wch) || IS_IMMORTAL(wch->leader)) act_info.c: last_whogr->next = whogr; act_info.c: whogr->next = NULL; act_info.c: whogr->follower = whogr->l_follow = NULL; act_info.c: whogr->d = d; act_info.c: whogr->indent = 0; act_info.c: for (d = last_descriptor; d; d = d->prev) act_info.c: if((d->connected != CON_PLAYING act_info.c: && d->connected != CON_EDITING) act_info.c: || ( d->connected <= CON_NOTE_TO act_info.c: && d->connected >= CON_NOTE_FINISH)) act_info.c: wch = (d->original ? d->original : d->character); act_info.c: if (wch->leader && wch->leader != wch && wch->leader->desc && act_info.c: !IS_NPC(wch->leader) && !IS_IMMORTAL(wch) && act_info.c: !IS_IMMORTAL(wch->leader) && act_info.c: (whogr_t = find_whogr(wch->leader->desc, first_whogr))) act_info.c: if (!whogr_t->l_follow) act_info.c: whogr_t->follower = whogr_t->l_follow = whogr; act_info.c: whogr_t->l_follow->next = whogr; act_info.c: whogr_t->l_follow = whogr; act_info.c: whogr->next = NULL; act_info.c: whogr->follower = whogr->l_follow = NULL; act_info.c: whogr->d = d; act_info.c: whogr->indent = 0; act_info.c: if (whogr->l_follow) act_info.c: whogr->l_follow->next = whogr; act_info.c: whogr->l_follow = NULL; act_info.c: whogr_t->next = whogr = whogr->follower; act_info.c: first_whogr = whogr = whogr->follower; act_info.c: whogr = whogr->next; act_info.c: * types "who" with no arguments. --Gorog act_info.c: if( !str_cmp( arg, class_table[iClass]->who_name ) ) act_info.c: if ( !str_cmp( arg, race_table[iRace]->race_name ) ) act_info.c: d = whogr->d; act_info.c: for ( ; d; whogr_p = whogr, whogr = (fGroup ? whogr->next : NULL), act_info.c: d = (fGroup ? (whogr ? whogr->d : NULL) : d->prev)) act_info.c: if(((d->connected != CON_PLAYING act_info.c: && d->connected != CON_EDITING) act_info.c: || (d->connected <= CON_NOTE_TO act_info.c: && d->connected >= CON_NOTE_FINISH)) act_info.c: || !can_see( ch, d->character ) || d->original) act_info.c: wch = d->original ? d->original : d->character; act_info.c: if ( wch->level < iLevelLower act_info.c: || wch->level > iLevelUpper act_info.c: || ( fImmortalOnly && wch->level < LEVEL_IMMORTAL ) act_info.c: || ( fClassRestrict && !rgfClass[wch->class] ) act_info.c: || ( fClassRestrict && !rgfClass[wch->class2] ) act_info.c: || ( fRaceRestrict && !rgfRace[wch->race] ) act_info.c: || ( fClanMatch && ( pClan != wch->pcdata->clan )) /* SB */ act_info.c: || (( fCouncilMatch && ( pCouncil != wch->pcdata->council )) /* SB */ act_info.c: && ( fCouncilMatch && ( pCouncil != wch->pcdata->council2 )))/*RTD*/ act_info.c: || ( fDeityMatch && ( pDeity != wch->pcdata->deity )) ) act_info.c: if ( fLeader && !(wch->pcdata->council && act_info.c: ((wch->pcdata->council->head2 && act_info.c: !str_cmp(wch->pcdata->council->head2, wch->name)) || act_info.c: (wch->pcdata->council->head && act_info.c: !str_cmp(wch->pcdata->council->head, wch->name)))) && act_info.c: !(wch->pcdata->clan && ((wch->pcdata->clan->deity && act_info.c: !str_cmp(wch->pcdata->clan->deity,wch->name) ) act_info.c: || (wch->pcdata->clan->leader act_info.c: && !str_cmp(wch->pcdata->clan->leader, wch->name ) ) act_info.c: || (wch->pcdata->clan->number1 act_info.c: && !str_cmp(wch->pcdata->clan->number1, wch->name ) ) act_info.c: || (wch->pcdata->clan->number2 act_info.c: && !str_cmp(wch->pcdata->clan->number2, wch->name ))))) act_info.c: if (fGroup && !wch->leader && act_info.c: !IS_SET(wch->pcdata->flags, PCFLAG_GROUPWHO) && act_info.c: (!whogr_p || !whogr_p->indent)) act_info.c: && wch->pcdata->homepage act_info.c: && wch->pcdata->homepage[0] != '\0' ) act_info.c: show_tilde( wch->pcdata->homepage ), wch->name ); act_info.c: strcpy( char_name, wch->name ); act_info.c: if( wch->level2 == -1 ) act_info.c: sprintf( class_text, "%3d %3.3s", wch->level, act_info.c: !str_cmp( class_table[wch->class]->who_name, "Assassin" ) act_info.c: ? "Asn" : class_table[wch->class]->who_name ); act_info.c: wch->level, act_info.c: !str_cmp( class_table[wch->class]->who_name, "Assassin" ) act_info.c: ? "Asn" : class_table[wch->class]->who_name, act_info.c: wch->level2, act_info.c: !str_cmp( class_table[wch->class2]->who_name, "Assassin" ) act_info.c: ? "Asn" : class_table[wch->class2]->who_name ); act_info.c: switch ( wch->level ) act_info.c: case MAX_LEVEL - 0: class = "&ROwner"; break; act_info.c: case MAX_LEVEL - 1: class = "&RHead Imp."; break; act_info.c: case MAX_LEVEL - 2: class = "&RImplementor"; break; act_info.c: case MAX_LEVEL - 3: class = "&RAsst. Imp."; break; act_info.c: case MAX_LEVEL - 4: class = "&RAdmin."; break; act_info.c: case MAX_LEVEL - 5: class = "&cCoder"; break; act_info.c: case MAX_LEVEL - 6: class = "&cAdmin Rep."; break; act_info.c: case MAX_LEVEL - 7: class = "&cMaster Bldr"; break; act_info.c: case MAX_LEVEL - 8: class = "&cGreater Bldr"; break; act_info.c: case MAX_LEVEL - 9: class = "&cBuilder"; break; act_info.c: case MAX_LEVEL - 10: class = "&cLesser Bldr"; break; act_info.c: case MAX_LEVEL - 11: class = "&cNew Builder"; break; act_info.c: case MAX_LEVEL - 12: class = "&cGeneral Staff"; break; act_info.c: case MAX_LEVEL - 13: class = "&BImm Family"; break; act_info.c: case MAX_LEVEL - 14: class = "&BMUD Guest"; break; act_info.c: case MAX_LEVEL - 15: class = "&BAmbassador"; break; act_info.c: case MAX_LEVEL - 16: class = "&YDemi-God"; break; act_info.c: if ( !str_cmp( wch->name, sysdata.guild_overseer ) ) act_info.c: else if ( !str_cmp( wch->name, sysdata.guild_advisor ) ) act_info.c: else if ( wch->pcdata->rank && wch->pcdata->rank[0] != '\0' ) act_info.c: class = wch->pcdata->rank; act_info.c: if( IS_SET( wch->pcdata->flags, PCFLAG_ANONYMOUS) && !IS_IMMORTAL(ch) ) act_info.c: if ( wch->pcdata->clan ) act_info.c: CLAN_DATA *pclan = wch->pcdata->clan; act_info.c: if ( pclan->clan_type == CLAN_GUILD ) act_info.c: else if ( pclan->clan_type == CLAN_ORDER ) act_info.c: if ( pclan->clan_type == CLAN_ORDER ) act_info.c: if ( !str_cmp( wch->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( wch->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( wch->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( wch->name, pclan->number2 ) ) act_info.c: else if ( pclan->clan_type == CLAN_GUILD ) act_info.c: if ( !str_cmp( wch->name, pclan->leader ) ) act_info.c: if ( !str_cmp( wch->name, pclan->number1 ) ) act_info.c: if ( !str_cmp( wch->name, pclan->number2 ) ) act_info.c: if ( !str_cmp( wch->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( wch->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( wch->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( wch->name, pclan->number2 ) ) act_info.c: strcat( clan_name, pclan->name ); act_info.c: if ( pclan->clan_type == CLAN_GUILD ) act_info.c: else if ( pclan->clan_type == CLAN_ORDER ) act_info.c: if ( wch->pcdata->council ) act_info.c: if ( wch->pcdata->council->head2 == NULL || act_info.c: wch->pcdata->council->head2[0] == '\0' ) act_info.c: if (!str_cmp (wch->name, wch->pcdata->council->head)) act_info.c: if (!str_cmp (wch->name, wch->pcdata->council->head) act_info.c: || !str_cmp ( wch->name, wch->pcdata->council->head2) ) act_info.c: strcat (council_name, "Co-Head of "); act_info.c: strcat( council_name, wch->pcdata->council_name ); act_info.c: if ( wch->pcdata->council2 ) act_info.c: if ( wch->pcdata->council2->head2 == NULL || act_info.c: wch->pcdata->council2->head2[0] == '\0' ) act_info.c: if (!str_cmp (wch->name, wch->pcdata->council2->head)) act_info.c: if (!str_cmp (wch->name, wch->pcdata->council2->head) act_info.c: || !str_cmp ( wch->name, wch->pcdata->council2->head2) ) act_info.c: strcat (council2_name, "Co-Head of "); act_info.c: strcat( council2_name, wch->pcdata->council2_name ); act_info.c: if ( xIS_SET(wch->act, PLR_WIZINVIS) ) act_info.c: sprintf( invis_str, " &R(&W%d&R)&w", wch->pcdata->wizinvis ); act_info.c: for( dcheck = first_descriptor ; dcheck ; dcheck = dcheck->next ) act_info.c: if( dcheck->character && wch->desc act_info.c: && dcheck->host == wch->desc->host ) act_info.c: IS_SET( wch->pcdata->flags, PCFLAG_DEADLY ) ? "&WP" : "-", act_info.c: (wch->fighting ? "&gF&W" : "-"), act_info.c: (multi ? "&RM&W" : "-"), act_info.c: (wch->position == POS_INCAP) ? "&bI&W" : "-", act_info.c: (wch->pcdata->extraname ? wch->pcdata->extraname : ""), act_info.c: (wch->pcdata->lastname ? wch->pcdata->lastname : "" ), act_info.c: (wch->pcdata->afkmsg) ? wch->pcdata->afkmsg : wch->pcdata->title, act_info.c: (wch->bounty > 0) ? " &W(&RBOUNTY&W)&w " : "", act_info.c: xIS_SET(wch->act, PLR_MARRIED) ? " &Y[&WWED&Y]&w " : "", act_info.c: (wch->desc && wch->desc->connected) ? " &Y[&WWRITING&Y]&w " : "", act_info.c: xIS_SET(wch->act, PLR_AFK) ? " &Y[&WAWAY&Y]&w " : "", act_info.c: xIS_SET(wch->act, PLR_ATTACKER) ? " &R(&W^zATTACKER^x&R)&w " : "", act_info.c: xIS_SET(wch->act, PLR_KILLER) ? " &R(&W^zKILLER^x&R)&w " : "", act_info.c: xIS_SET(wch->act, PLR_THIEF) ? " &R(&W^zTHIEF^x&R)&w " : "" act_info.c: IS_SET( wch->pcdata->flags, PCFLAG_DEADLY ) ? "&WPK" : "&W--", act_info.c: (wch->pcdata->extraname ? wch->pcdata->extraname : ""), act_info.c: (wch->pcdata->lastname ? wch->pcdata->lastname : "" ), act_info.c: (wch->pcdata->afkmsg) ? wch->pcdata->afkmsg : wch->pcdata->title, act_info.c: (wch->bounty > 0) ? " &W(&RBOUNTY&W)&w " : "", act_info.c: xIS_SET(wch->act, PLR_MARRIED) ? " &Y[&WWED&Y]&w " : "", act_info.c: (wch->desc && wch->desc->connected) ? " &Y[&WWRITING&Y]&w " : "", act_info.c: xIS_SET(wch->act, PLR_AFK) ? " &Y[&WAWAY&Y]&w " : "", act_info.c: xIS_SET(wch->act, PLR_ATTACKER) ? " &R(&W^zATTACKER^x&R)&w " : "", act_info.c: xIS_SET(wch->act, PLR_KILLER) ? " &R(&W^zKILLER^x&R)&w " : "", act_info.c: xIS_SET(wch->act, PLR_THIEF) ? " &R(&W^zTHIEF^x&R)&w " : "" act_info.c: cur_who->text = str_dup( buf ); act_info.c: cur_who->type = WT_GUEST; act_info.c: cur_who->type = WT_STAFF; act_info.c: cur_who->type = WT_ADMIN; act_info.c: if ( wch->leader || (whogr_p && whogr_p->indent) ) act_info.c: cur_who->type = WT_GROUPED; act_info.c: cur_who->type = WT_GROUPWHO; act_info.c: cur_who->type = WT_DEADLY; act_info.c: cur_who->type = WT_MORTAL; act_info.c: switch ( cur_who->type ) act_info.c: cur_who->next = first_mortal; act_info.c: cur_who->next = first_deadly; act_info.c: cur_who->next = first_grouped; act_info.c: cur_who->next = first_groupwho; act_info.c: cur_who->next = first_guest; act_info.c: cur_who->next = first_staff; act_info.c: cur_who->next = first_admin; act_info.c: * Two extras now for grouped and groupwho (wanting group). -- Alty act_info.c: amount = 78-strlen_color( buf ); /* Determine amount to put in act_info.c: send_to_pager_color( "&O-----------------------------{-=-[ ",ch); act_info.c: send_to_pager_color("&O]-=-}------------------------------&w\n\r\n\r",ch); act_info.c: send_to_pager_color( "&O-----------------------------{-=-[ &WMortals &O]-=-}------------------------------&w\n\r\n\r",ch); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c: * --Callidyrr act_info.c: fprintf( whoout, "\n\r&r----------------------------{-=-[&W Deadly Mortals &r]-=-}------------------------\n\r\n\r" ); act_info.c: send_to_pager_color( "\n\r&r--------------------------{-=-[ ",ch); act_info.c: send_to_pager_color("&r]-=-}--------------------------&w\n\r\n\r",ch ); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c: fprintf( whoout, "\n\r-------------------------{-=-[ GROUPED CHARACTERS ]-=-}-----------------------\n\r\n\r" ); act_info.c: send_to_pager( "\n\r-------------------------{-=-[ GROUPED CHARACTERS ]-=-}-----------------------\n\r\n\r", ch ); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c: fprintf( whoout, "\n\r&Y---------------------------{-=-[&W WANTING GROUP &Y]-=-}--------------------------\n\r\n\r" ); act_info.c: send_to_pager_color( "\n\r&Y---------------------------{-=-[",ch); act_info.c: send_to_pager_color("^x&Y]-=-}--------------------------&w\n\r\n\r",ch ); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c: fprintf( whoout, "\n\r&B-----------------------------{-=-[&W Guests &B]-=-}-------------------------------\n\r\n\r" ); act_info.c: send_to_pager_color( "\n\r&B------------------------------{-=-[",ch); act_info.c: send_to_pager_color("&B]-=-}------------------------------&w\n\r\n\r",ch ); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c: fprintf( whoout, "\n\r&c------------------------------[&W Resident Staff &c]------------------------------\n\r\n\r" ); act_info.c: send_to_pager_color( "\n\r&c------------------------------[",ch); act_info.c: send_to_pager_color("&c]------------------------------&w\n\r\n\r", ch ); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c: fprintf( whoout, "\n\r&R----------------------------{-=-[ &WImmortals &R]-=-}-----------------------------\n\r\n\r" ); act_info.c: send_to_pager_color( "\n\r&R----------------------------{-=-[",ch); act_info.c: send_to_pager_color("&R]-=-}-----------------------------&w\n\r\n\r", ch ); act_info.c: fprintf( whoout, cur_who->text ); act_info.c: send_to_pager( cur_who->text, ch ); act_info.c: next_who = cur_who->next; act_info.c: DISPOSE( cur_who->text ); act_info.c:/* This command SUCKS! It's misleading enough to be dangerous to morts. -- Scion act_info.c: for ( obj2 = ch->first_carrying; obj2; obj2 = obj2->next_content ) act_info.c: if ( obj2->wear_loc != WEAR_NONE act_info.c: && obj1->item_type == obj2->item_type act_info.c: && ( obj1->wear_flags & obj2->wear_flags & ~ITEM_TAKE) != 0 ) act_info.c: else if ( obj1->item_type != obj2->item_type ) act_info.c: switch ( obj1->item_type ) act_info.c: value1 = obj1->value[0]; act_info.c: value2 = obj2->value[0]; act_info.c: value1 = obj1->value[1] + obj1->value[2]; act_info.c: value2 = obj2->value[1] + obj2->value[2]; act_info.c: pager_printf( ch, "\n\rPlayers near you in %s:\n\r", ch->in_room->area->name ); act_info.c: for ( d = first_descriptor; d; d = d->next ) act_info.c: if ( (d->connected == CON_PLAYING || d->connected == CON_EDITING act_info.c: || ( d->connected >= CON_NOTE_TO act_info.c: && d->connected <= CON_NOTE_FINISH)) act_info.c: && ( victim = d->character ) != NULL act_info.c: && victim->in_room act_info.c: && victim->in_room->area == ch->in_room->area act_info.c: pager_printf_color( ch, "&P%-13s ", victim->name ); act_info.c: if ( CAN_PKILL( victim ) && victim->pcdata->clan ) act_info.c: pager_printf_color( ch, "%-18s\t", victim->pcdata->clan->badge ); act_info.c: pager_printf_color( ch, "&P%s\n\r", victim->in_room->name ); act_info.c: for ( victim = first_char; victim; victim = victim->next ) act_info.c: if ( victim->in_room act_info.c: && victim->in_room->area == ch->in_room->area act_info.c: && is_name( arg, victim->name ) ) act_info.c: pager_printf( ch, "%-28s %s\n\r", act_info.c: PERS(victim, ch), victim->in_room->name ); act_info.c: diff = victim->level - ch->level; act_info.c: if ( diff <= -10 ) msg = "You are far more experienced than $N."; act_info.c: else if ( diff <= -5 ) msg = "$N is not nearly as experienced as you."; act_info.c: else if ( diff <= -2 ) msg = "You are more experienced than $N."; act_info.c: diff = (int) (victim->max_hit - ch->max_hit) / 6; act_info.c: if ( diff <= -200) msg = "$N looks like a feather!"; act_info.c: else if ( diff <= -150) msg = "You could kill $N with your hands tied!"; act_info.c: else if ( diff <= -100) msg = "Hey! Where'd $N go?"; act_info.c: else if ( diff <= -50) msg = "$N is a wimp."; act_info.c: * (Uses an is_name check). -- Altrag act_info.c: if ( ch->level < 2 ) act_info.c: if ( !skill_table[sn]->name ) act_info.c: if ( strcmp(skill_table[sn]->name, "reserved") == 0 act_info.c: send_to_pager_color( " &c---------------------------------[&W Practice &c]---------------------------------&w\n\r", ch); act_info.c: if ( skill_table[sn]->type != lasttype ) act_info.c: pager_printf_color( ch, " &c---------------------------------- &W%ss&c ----------------------------------&w\n\r", act_info.c: skill_tname[skill_table[sn]->type]); act_info.c: lasttype = skill_table[sn]->type; act_info.c: && ( skill_table[sn]->guild != CLASS_NONE act_info.c: || (ch->pcdata->clan->class != skill_table[sn]->guild) ) ) ) act_info.c: if( ch->level2 == -1 ) act_info.c: if( ch->level < skill_table[sn]->skill_level[ch->class] act_info.c: || (!IS_IMMORTAL(ch) && skill_table[sn]->skill_level[ch->class] == 0 )) act_info.c: if( (ch->level < skill_table[sn]->skill_level[ch->class] act_info.c: && ch->level < skill_table[sn]->skill_level[ch->class2] ) act_info.c: || (!IS_IMMORTAL(ch) && (skill_table[sn]->skill_level[ch->class] == 0 act_info.c: && skill_table[sn]->skill_level[ch->class2] == 0))) act_info.c: if ( ch->pcdata->learned[sn] <= 0 act_info.c: if ( ch->pcdata->learned[sn] == 0) act_info.c: pager_printf( ch, "&W%20.20s", skill_table[sn]->name ); act_info.c: else if ( ch->pcdata->learned[sn] > 0 act_info.c: && (ch->pcdata->learned[sn] < skill_table[sn]->skill_adept[ch->class] act_info.c: || ch->pcdata->learned[sn] < skill_table[sn]->skill_adept[ch->class2])) act_info.c: pager_printf( ch, "&Y%20.20s", skill_table[sn]->name ); act_info.c: else if ( ch->pcdata->learned[sn] > 0) act_info.c: pager_printf( ch, "&R%20.20s", skill_table[sn]->name ); act_info.c: if ( ch->pcdata->learned[sn] > 0 ) act_info.c: pager_printf( ch, " &W%3d%%&w ", ch->pcdata->learned[sn] ); act_info.c: ch->practice ); act_info.c: for ( mob = ch->in_room->first_person; mob; mob = mob->next_in_room ) act_info.c: if ( IS_NPC(mob) && xIS_SET(mob->act, ACT_PRACTICE) ) act_info.c: if ( ch->practice <= 0 ) act_info.c: if( ch->level2 == -1 ) act_info.c: && ( ( sn == -1 ) act_info.c: && ch->level < skill_table[sn]->skill_level[ch->class] act_info.c: /* OUT FOR THIS PORT -SHADDAI act_info.c: && ch->level < skill_table[sn]->race_level[ch->race] act_info.c: && ( ( sn == -1 ) act_info.c: && (ch->level < skill_table[sn]->skill_level[ch->class] act_info.c: && ch->level < skill_table[sn]->skill_level[ch->class2]) act_info.c: /* OUT FOR THIS PORT -SHADDAI act_info.c: && ch->level < skill_table[sn]->race_level[ch->race] act_info.c: if ( is_name( skill_tname[skill_table[sn]->type], CANT_PRAC ) ) act_info.c: if ( skill_table[sn]->teachers && skill_table[sn]->teachers[0] != '\0' ) act_info.c: sprintf( buf, "%d", mob->pIndexData->vnum ); act_info.c: if ( !is_name( buf, skill_table[sn]->teachers ) ) act_info.c: * Guild checks - right now, cant practice guild skills - done on act_info.c: && skill_table[sn]->guild != CLASS_NONE) act_info.c: if ( !IS_NPC(ch) && skill_table[sn]->guild != CLASS_NONE act_info.c: && ch->pcdata->clan->class != skill_table[sn]->guild ) act_info.c: if ( !IS_NPC(ch) && skill_table[sn]->guild != CLASS_NONE) act_info.c: if ( mob->level < skill_table[sn]->skill_level[ch->class] act_info.c: || mob->level < skill_table[sn]->skill_level[mob->class] ) act_info.c: adept = class_table[ch->class]->skill_adept * 0.2; act_info.c: if ( ch->pcdata->learned[sn] >= adept ) act_info.c: skill_table[sn]->name ); act_info.c: ch->practice--; act_info.c: ch->pcdata->learned[sn] += int_app[get_curr_int(ch)].learn; act_info.c: ch, NULL, skill_table[sn]->name, TO_CHAR ); act_info.c: ch, NULL, skill_table[sn]->name, TO_ROOM ); act_info.c: if ( ch->pcdata->learned[sn] >= adept ) act_info.c: ch->pcdata->learned[sn] = adept; act_info.c: wimpy = (int) ch->max_hit / 2.25; act_info.c: wimpy = (int) ch->max_hit / 1.2; act_info.c: wimpy = (int) ch->max_hit / 5; act_info.c: if ( IS_PKILL( ch ) && wimpy > (int) ch->max_hit / 2.25 ) act_info.c: else if ( wimpy > (int) ch->max_hit / 1.2 ) act_info.c: ch->wimpy = wimpy; act_info.c: if ( strcmp( crypt( arg1, ch->pcdata->pwd ), ch->pcdata->pwd ) ) act_info.c:/* This should stop all the mistyped password problems --Shaddai */ act_info.c: pwdnew = crypt( arg2, ch->name ); act_info.c: DISPOSE( ch->pcdata->pwd ); act_info.c: ch->pcdata->pwd = str_dup( pwdnew ); act_info.c: for ( social = social_index[iHash]; social; social = social->next ) act_info.c: pager_printf( ch, "%-12s", social->name ); act_info.c: for ( command = command_hash[hash]; command; command = command->next ) act_info.c: if ( command->level < LEVEL_HERO act_info.c: && command->level <= get_trust( ch ) act_info.c: && (command->name[0] != 'm' act_info.c: && command->name[1] != 'p') ) act_info.c: pager_printf( ch, "%-12s", command->name ); act_info.c: for ( command = command_hash[hash]; command; command = command->next ) act_info.c: if ( command->level < LEVEL_HERO act_info.c: && command->level <= get_trust( ch ) act_info.c: && !str_prefix(argument, command->name) act_info.c: && (command->name[0] != 'm' act_info.c: && command->name[1] != 'p') ) act_info.c: pager_printf( ch, "%-12s", command->name ); act_info.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_SILENCE) ) act_info.c: /* Channels everyone sees regardless of affiliation --Blodkai */ act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_RACETALK )? act_info.c: " &g-racetalk" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_CHAT ) ? act_info.c: " &g-chat" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_AUCTION ) ? act_info.c: " &g-auction" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_QUEST ) ? act_info.c: " &g-quest" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_WARTALK ) ? act_info.c: " &g-wartalk" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_AVTALK ) ? act_info.c: " &g-avatar" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_MUSIC ) ? act_info.c: " &g-music" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_ASK ) ? act_info.c: " &g-ask" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_SHOUT ) ? act_info.c: " &g-shout" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_YELL ) ? act_info.c: " &g-yell" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_GRATZ ) ? act_info.c: " \n\r&g-gratz" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_TELLS ) ? act_info.c: " &g-tells" ); act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_WHISPER ) ? act_info.c: " &g-whisper" ); act_info.c: if ( !IS_NPC( ch ) && ch->pcdata->clan ) act_info.c: if ( ch->pcdata->clan->clan_type == CLAN_ORDER ) act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_ORDER ) ? act_info.c: " &G+ORDER" : " &g-order", ch ); act_info.c: else if ( ch->pcdata->clan->clan_type == CLAN_GUILD ) act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_GUILD ) ? act_info.c: " &G+GUILD" : " &g-guild", ch ); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_CLAN ) ? act_info.c: " &G+CLAN" : " &g-clan", ch ); act_info.c: if ( IS_IMMORTAL(ch) || ( ch->pcdata->council act_info.c: && !str_cmp( ch->pcdata->council->name, "Newbie Council" ) ) ) act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_NEWBIE) ? act_info.c: " &g-newbie" ); act_info.c: if ( IS_IMMORTAL(ch) || ( ch->pcdata->council2 act_info.c: && !str_cmp( ch->pcdata->council2->name, "Newbie Council" ) ) ) act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_NEWBIE2) ? act_info.c: " &g-newbie2" ); act_info.c: if ( !IS_NPC( ch ) && ch->pcdata->council) act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_COUNCIL)? act_info.c: " &g-council" ); act_info.c: if ( !IS_NPC( ch ) && ch->pcdata->council2) act_info.c: ch_printf_color( ch, "%s", !IS_SET( ch->deaf, CHANNEL_COUNCIL2)? act_info.c: " &g-council2" ); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_IMMTALK ) ? act_info.c: " &G+IMMTALK" : " &g-immtalk", ch ); act_info.c:/* send_to_char_color( !IS_SET( ch->deaf, CHANNEL_PRAY ) ? act_info.c: " &G+PRAY" : " &g-pray", ch ); */ act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_HIGHGOD ) ? act_info.c: " &G+STAFF" : " &g-staff", ch ); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_MONITOR ) ? act_info.c: " &G+MONITOR" : " &g-monitor", ch ); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_AUTH ) ? act_info.c: " &G+AUTH" : " &g-auth", ch ); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_LOG ) ? act_info.c: " &G+LOG" : " &g-log", ch); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_BUILD) ? act_info.c: " &G+BUILD" : " &g-build", ch ); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_COMM ) ? act_info.c: " &G+COMM" : " &g-comm", ch ); act_info.c: send_to_char_color( !IS_SET (ch->deaf, CHANNEL_WARN) act_info.c: ? " &G+WARN" : " &g-warn", ch); act_info.c: send_to_char_color( !IS_SET( ch->deaf, CHANNEL_HIGH ) ? act_info.c: " &G+HIGH" : " &g-high", ch ); act_info.c: else if ( arg[0] == '-' ) fClear = FALSE; act_info.c: send_to_char( "Channels -channel or +channel?\n\r", ch ); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_RACETALK); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_AUCTION); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_CHAT); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_QUEST); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_WARTALK); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_PRAY); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_MUSIC); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_ASK); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_SHOUT); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_YELL); act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_GRATZ); act_info.c: /* if (ch->pcdata->clan) act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_CLAN); act_info.c: if (ch->pcdata->council) act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_COUNCIL); act_info.c: if (ch->pcdata->guild) act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_GUILD); act_info.c: if (ch->level >= LEVEL_IMMORTAL) act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_AVTALK); act_info.c: if (ch->level >= sysdata.log_level ) act_info.c: REMOVE_BIT (ch->deaf, CHANNEL_COMM); act_info.c: SET_BIT (ch->deaf, CHANNEL_RACETALK); act_info.c: SET_BIT (ch->deaf, CHANNEL_AUCTION); act_info.c: SET_BIT (ch->deaf, CHANNEL_CHAT); act_info.c: SET_BIT (ch->deaf, CHANNEL_QUEST); act_info.c: SET_BIT (ch->deaf, CHANNEL_PRAY); act_info.c: SET_BIT (ch->deaf, CHANNEL_MUSIC); act_info.c: SET_BIT (ch->deaf, CHANNEL_ASK); act_info.c: SET_BIT (ch->deaf, CHANNEL_SHOUT); act_info.c: SET_BIT (ch->deaf, CHANNEL_WARTALK); act_info.c: SET_BIT (ch->deaf, CHANNEL_YELL); act_info.c: SET_BIT (ch->deaf, CHANNEL_GRATZ); act_info.c: /* if (ch->pcdata->clan) act_info.c: SET_BIT (ch->deaf, CHANNEL_CLAN); act_info.c: if (ch->pcdata->council) act_info.c: SET_BIT (ch->deaf, CHANNEL_COUNCIL); act_info.c: SET_BIT (ch->deaf, CHANNEL_GUILD); act_info.c: if (ch->level >= LEVEL_IMMORTAL) act_info.c: SET_BIT (ch->deaf, CHANNEL_AVTALK); act_info.c: if (ch->level >= sysdata.log_level) act_info.c: SET_BIT (ch->deaf, CHANNEL_COMM); act_info.c: REMOVE_BIT (ch->deaf, bit); act_info.c: SET_BIT (ch->deaf, bit); act_info.c: * display WIZLIST file -Thoric act_info.c: * Display guestlist -- Kratas act_info.c: * Display completely overhauled, 2/97 -- Blodkai act_info.c: send_to_char( "(use 'config +/- <keyword>' to toggle, see 'help config')\n\r\n\r", ch ); act_info.c: ch_printf( ch, "%-12s %-12s %-12s %-12s\n\r %-12s %-12s %-12s %-12s\n\r %-12s %-12s %-12s", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_PAGERON ) ? "[+] PAGER" act_info.c: : "[-] pager", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_GAG ) ? "[+] GAG" act_info.c: : "[-] gag", act_info.c: xIS_SET(ch->act, PLR_BRIEF ) ? "[+] BRIEF" act_info.c: : "[-] brief", act_info.c: xIS_SET(ch->act, PLR_COMBINE ) ? "[+] COMBINE" act_info.c: : "[-] combine", act_info.c: xIS_SET(ch->act, PLR_BLANK ) ? "[+] BLANK" act_info.c: : "[-] blank", act_info.c: xIS_SET(ch->act, PLR_PROMPT ) ? "[+] PROMPT" act_info.c: : "[-] prompt", act_info.c: xIS_SET(ch->act, PLR_ANSI ) ? "[+] ANSI" act_info.c: : "[-] ansi", act_info.c: xIS_SET(ch->act, PLR_RIP ) ? "[+] RIP" act_info.c: : "[-] rip", act_info.c: xIS_SET(ch->act, PLR_NOMENU ) ? "[+] NOMENU" act_info.c: : "[-] nomenu", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_NOBEEP ) ? "[+] NOBEEP" act_info.c: : "[-] nobeep", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_ANONYMOUS) ? "[+] ANONYMOUS" act_info.c: : "[-] anonymous" ); act_info.c: ch_printf( ch, "%-12s %-12s %-12s %-12s", act_info.c: xIS_SET(ch->act, PLR_AUTOSAC ) ? "[+] AUTOSAC" act_info.c: : "[-] autosac", act_info.c: xIS_SET(ch->act, PLR_AUTOGOLD ) ? "[+] AUTOGOLD" act_info.c: : "[-] autogold", act_info.c: xIS_SET(ch->act, PLR_AUTOLOOT ) ? "[+] AUTOLOOT" act_info.c: : "[-] autoloot", act_info.c: xIS_SET(ch->act, PLR_AUTOEXIT ) ? "[+] AUTOEXIT" act_info.c: : "[-] autoexit" ); act_info.c: ch_printf( ch, "%-12s %-12s %-12s\n\r ", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_NORECALL ) ? "[+] NORECALL" act_info.c: : "[-] norecall", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_NOSUMMON ) ? "[+] NOSUMMON" act_info.c: : "[-] nosummon", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_IMMPROOF ) ? "[+] IMMPROOF" act_info.c: : "[-] immproof" ); act_info.c: ch_printf( ch, " %-12s %-12s", act_info.c: xIS_SET(ch->act, PLR_SHOVEDRAG ) ? "[+] DRAG" act_info.c: : "[-] drag", act_info.c: xIS_SET(ch->act, PLR_NICE ) ? "[+] NICE" act_info.c: : "[-] nice" ); act_info.c: ch_printf( ch, "%-12s %-12s %-12s", act_info.c: xIS_SET(ch->act, PLR_TELNET_GA ) ? "[+] TELNETGA" act_info.c: : "[-] telnetga", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_GROUPWHO ) ? "[+] GROUPWHO" act_info.c: : "[-] groupwho", act_info.c: IS_SET( ch->pcdata->flags, PCFLAG_NOINTRO ) ? "[+] NOINTRO" act_info.c: : "[-] nointro" ); act_info.c: ch->pcdata->pagerlen, act_info.c: ch->wimpy ); act_info.c: xIS_SET(ch->act, PLR_ROOMVNUM ) ? "+" act_info.c: xIS_SET(ch->act, PLR_AUTOMAP ) ? "+" act_info.c: ch_printf( ch, "%-12s %-12s %-12s\n\r ", act_info.c: xIS_SET( ch->act, PLR_ROOMVNUM ) ? "[+] VNUM" act_info.c: : "[-] vnum", act_info.c: xIS_SET( ch->act, PLR_AUTOMAP ) ? "[+] MAP" act_info.c: : "[-] map", act_info.c: /*IS_SET( ch->pcdata->flags, PCFLAG_IMMPROOF ) ? "[+] IMMPROOF" act_info.c: : "[-] immproof" );*/ act_info.c: xIS_SET(ch->act, PLR_SILENCE ) ? act_info.c: xIS_SET(ch->act, PLR_NO_EMOTE ) ? act_info.c: xIS_SET(ch->act, PLR_NO_TELL ) ? act_info.c: xIS_SET(ch->act, PLR_LITTERBUG )? act_info.c: xIS_SET(ch->act, PLR_THIEF ) ? act_info.c: xIS_SET(ch->act, PLR_KILLER ) ? act_info.c: else if ( arg[0] == '-' ) fSet = FALSE; act_info.c: send_to_char( "Config -option or +option?\n\r", ch ); act_info.c: xSET_BIT (ch->act, bit); act_info.c: xREMOVE_BIT(ch->act, bit); act_info.c: SET_BIT (ch->pcdata->flags, bit); act_info.c: REMOVE_BIT (ch->pcdata->flags, bit); act_info.c: imm->name = str_dup( newname ); act_info.c: imm->name = str_dup( name ); act_info.c: imm->email = str_dup( email ); act_info.c: imm->email = str_dup( "None" ); act_info.c: imm->level = level; act_info.c: imm->last = NULL; act_info.c: imm->next = NULL; act_info.c: for ( tmp = first_imm; tmp; tmp = tmp->next ) act_info.c: if ( (level > tmp->level) ) act_info.c: if ( !tmp->last ) act_info.c: tmp->last->next = imm; act_info.c: imm->last = tmp->last; act_info.c: imm->next = tmp; act_info.c: tmp->last = imm; act_info.c: imm->last = last_imm; act_info.c: imm->next = NULL; act_info.c: last_imm->next = imm; act_info.c: ilevel = MAX_LEVEL - 16; act_info.c: ilevel = MAX_LEVEL - 17; act_info.c: if( dentry->d_name[0] == '.' ) act_info.c: s = strstr( dentry->d_name, "immlist" ); act_info.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); act_info.c: sprintf( buf, "&c,-&w[ Rank / Level / Name ]&c----------------------&w[ Email ]" act_info.c: "&c---------------------." ); act_info.c: for ( imm = first_imm; imm; imm = imm->next ) act_info.c: if ( imm->level < ilevel ) act_info.c: ilevel = imm->level; act_info.c: be wanted later -- Kratas */ act_info.c: case MAX_LEVEL - 0: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &ROmnipotent / Owner&W" ); break; act_info.c: case MAX_LEVEL - 1: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &RSupreme Entity / Head Implementors&W" ); break; act_info.c: case MAX_LEVEL - 2: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &RInfinite / Implementors&W" ); break; act_info.c: case MAX_LEVEL - 3: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &REternal / Assistant Implementors&W" ); break; act_info.c: case MAX_LEVEL - 4: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &RAncient / Administrators&W" ); break; act_info.c: case MAX_LEVEL - 5: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cExalted / Coders&W" ); break; act_info.c: case MAX_LEVEL - 6: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cAscendant / Representatives&W" ); break; act_info.c: case MAX_LEVEL - 7: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cMaster Gods / Master Builders&W" ); break; act_info.c: case MAX_LEVEL - 8: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cGreater Gods / Greater Builders&W" ); break; act_info.c: case MAX_LEVEL - 9: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cGods / Builders&W" ); break; act_info.c: case MAX_LEVEL - 10: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cLesser Gods / Lesser Builders&W" ); break; act_info.c: case MAX_LEVEL - 11: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cNew Gods / New Builders&W" ); break; act_info.c: case MAX_LEVEL - 12: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &cSaviors / General Staff&W" ); break; act_info.c: case MAX_LEVEL - 13: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &BCreators / Immortal Family&W" ); break; act_info.c: case MAX_LEVEL - 14: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &BAcolytes / Inter-MUD Guest&W" ); break; act_info.c: case MAX_LEVEL - 15: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &BNeophytes / Ambassador&W" ); break; act_info.c: case MAX_LEVEL - 16: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &BRetired&W" ); break; act_info.c: case MAX_LEVEL - 17: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &BGuests&W" ); break; act_info.c: default: sprintf( buf+strlen(buf), "&c:%-80s&c:", " &BServants&W" ); break; act_info.c: sprintf( buf, "&c: &W[Level %3d] &Y%-25s %-35s &c:", ilevel, act_info.c: imm->name, imm->email ); act_info.c: sprintf( buf+strlen( buf ), "`----------------------------------------------------------------------------'" ); act_info.c: immnext = imm->next; act_info.c: DISPOSE(imm->name); act_info.c: if( dentry->d_name[0] == '.' ) act_info.c: s = strstr( dentry->d_name, "immlist" ); act_info.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); act_info.c: sprintf( buf, "<BR>&c,-&w[ Rank / Level / Name ]&c------------------&w[ Email ]" act_info.c: "&c-----------------." ); act_info.c: for ( imm = first_imm; imm; imm = imm->next ) act_info.c: if ( imm->level < ilevel ) act_info.c: ilevel = imm->level; act_info.c: be wanted later -- Kratas */ act_info.c: case MAX_LEVEL - 0: sprintf( buf+strlen(buf), "<P>%-75s", " &ROmnipotent / Owner&W" ); break; act_info.c: case MAX_LEVEL - 1: sprintf( buf+strlen(buf), "<P>%-75s", " &RSupreme Entity / Head Implementors&W" ); break; act_info.c: case MAX_LEVEL - 2: sprintf( buf+strlen(buf), "<P>%-75s", " &RInfinite / Implementors&W" ); break; act_info.c: case MAX_LEVEL - 3: sprintf( buf+strlen(buf), "<P>%-75s", " &REternal / Assistant Implementors&W" ); break; act_info.c: case MAX_LEVEL - 4: sprintf( buf+strlen(buf), "<P>%-75s", " &RAncient / Administrators&W" ); break; act_info.c: case MAX_LEVEL - 5: sprintf( buf+strlen(buf), "<P>%-75s", " &cExalted / Coders&W" ); break; act_info.c: case MAX_LEVEL - 6: sprintf( buf+strlen(buf), "<P>%-75s", " &cAscendant / Representatives&W" ); break; act_info.c: case MAX_LEVEL - 7: sprintf( buf+strlen(buf), "<P>%-75s", " &cMaster Gods / Master Builders&W" ); break; act_info.c: case MAX_LEVEL - 8: sprintf( buf+strlen(buf), "<P>%-75s", " &cGreater Gods / Greater Builders&W" ); break; act_info.c: case MAX_LEVEL - 9: sprintf( buf+strlen(buf), "<P>%-75s", " &cGods / Builders&W" ); break; act_info.c: case MAX_LEVEL - 10: sprintf( buf+strlen(buf), "<P>%-75s", " &cLesser Gods / Lesser Builders&W" ); break; act_info.c: case MAX_LEVEL - 11: sprintf( buf+strlen(buf), "<P>%-75s", " &cNew Gods / New Builders&W" ); break; act_info.c: case MAX_LEVEL - 12: sprintf( buf+strlen(buf), "<P>%-75s", " &cSaviors / General Staff&W" ); break; act_info.c: case MAX_LEVEL - 13: sprintf( buf+strlen(buf), "<P>%-75s", " &BCreators / Immortal Family&W" ); break; act_info.c: case MAX_LEVEL - 14: sprintf( buf+strlen(buf), "<P>%-75s", " &BAcolytes / Inter-MUD Guest&W" ); break; act_info.c: case MAX_LEVEL - 15: sprintf( buf+strlen(buf), "<P>%-75s", " &BNeophytes / Ambassador&W" ); break; act_info.c: case MAX_LEVEL - 16: sprintf( buf+strlen(buf), "<P>%-75s", " &BRetired&W" ); break; act_info.c: case MAX_LEVEL - 17: sprintf( buf+strlen(buf), "<P>%-75s", " &BGuests&W" ); break; act_info.c: default: sprintf( buf+strlen(buf), "<P>%-75s", " &BServants&W" ); break; act_info.c: sprintf( buf, "<P>&W[Level %3d] & & &Y%-25s & & %-35s<br>", ilevel, act_info.c: imm->name, imm->email ); act_info.c: sprintf( buf+strlen( buf ), "<P>`----------------------------------------------------------------------------'" ); act_info.c: immnext = imm->next; act_info.c: DISPOSE(imm->name); act_info.c: pArea2 = pArea2->next; act_info.c: ch_printf( ch, "%-39s%-39s\n\r", act_info.c: pArea1->name, pArea2 ? pArea2->name : "" ); act_info.c: pArea1 = pArea1->next; act_info.c: pArea2 = pArea2->next; act_info.c: send_to_pager("-------------+--------------------------------------+-------------+-----------\n\r", ch); act_info.c: for ( pArea = first_area; pArea; pArea = pArea->next ) act_info.c: ch_printf(ch, "%-12s | %-36s | %4d - %-4d | %3d - %-3d \n\r", act_info.c: pArea->author, pArea->name, pArea->low_soft_range, act_info.c: pArea->hi_soft_range, pArea->low_hard_range, act_info.c: pArea->hi_hard_range); act_info.c: * New do_areas, written by Fireblade, last modified - 4/27/97 act_info.c: * Syntax: area -> lists areas in alphanumeric order act_info.c: * area <a> -> lists areas with soft max less than act_info.c: * area <a> <b> -> lists areas with soft max bewteen act_info.c: * area old -> list areas in order loaded act_info.c: char *header_string2 = "-------------+-----------------" act_info.c: "---------------------+----" act_info.c: "---------+-----------\n\r"; act_info.c: char *print_string = "&c%-12s&w | &C%-36s&w | &Y%4d - %-4d&w | &R%3d - " act_info.c: "%-3d&w \n\r"; act_info.c: for (pArea = first_area; pArea;pArea = pArea->next) act_info.c: pArea->author, pArea->name, act_info.c: pArea->low_soft_range, act_info.c: pArea->hi_soft_range, act_info.c: pArea->low_hard_range, act_info.c: pArea->hi_hard_range); act_info.c: for (pArea = first_area_name; pArea; pArea = pArea->next_sort_name) act_info.c: if (pArea->hi_soft_range >= lower_bound act_info.c: && pArea->low_soft_range <= upper_bound) act_info.c: pArea->author, pArea->name, act_info.c: pArea->low_soft_range, act_info.c: pArea->hi_soft_range, act_info.c: pArea->low_hard_range, act_info.c: pArea->hi_hard_range); act_info.c: if xIS_SET(ch->act, PLR_AFK) act_info.c: xREMOVE_BIT(ch->act, PLR_AFK); act_info.c: if( ch->pcdata->afkmsg ) act_info.c: STRFREE( ch->pcdata->afkmsg ); act_info.c: ch->pcdata->afkmsg = NULL; act_info.c: xSET_BIT(ch->act, PLR_AFK); act_info.c: ch->pcdata->afkmsg = STRALLOC( buf ); act_info.c:* Created by Desden, el Chaman Tibetano - Jun 1999 * act_info.c:if (ch->class==CLASS_WARRIOR) act_info.c: send_to_pager(" -----------------------\n\r", ch); act_info.c: if(ch->pcdata->learned[sn] < 1 || act_info.c: !skill->name || !skill->min_mana ) act_info.c: if(ch->level>=skill->skill_level[ch->class] ) act_info.c: if(ch->pcdata->condition[COND_BLOODTHIRST] >= BLOOD) act_info.c: pager_printf_color(ch, "&Y%-12.12s:%4d ", act_info.c: skill->name, BLOOD); act_info.c: pager_printf_color(ch, "&R%-12.12s:%4d ", act_info.c: skill->name, BLOOD); act_info.c: if(ch->mana >= MANA) act_info.c: pager_printf_color(ch, "&Y%-12.12s:%4d ", act_info.c: skill->name, MANA ); act_info.c: pager_printf_color(ch, "&R%-12.12s:%4d ", act_info.c: skill->name, MANA ); act_info.c: if(!skill->min_mana) act_info.c: ch_printf(ch, "%s, '%s' doesn't use %s points.\n\r", ch->name, skill->name, IS_VAMPIRE(ch)?"blood":"mana"); act_info.c: if(ch->pcdata->learned[sn] < 1) act_info.c: if ( ch->level < skill->skill_level[ch->class] ) act_info.c: pager_printf(ch,"You need %d %s points to cast '%s' with success.\n\r",IS_VAMPIRE(ch)?BLOOD:MANA,IS_VAMPIRE(ch)?"blood":"mana", skill->name); act_info.c: if ( !str_cmp(class_table[clnum]->who_name, arg1) ) act_info.c: sprintf( buf, "&c%s&w\n\r", class_table[clnum]->who_name ); act_info.c: if ( !skill_table[sn]->name ) act_info.c: if ( skill_table[sn]->type != lasttype ) act_info.c: lasttype = skill_table[sn]->type; act_info.c: if ( ch->pcdata->learned[sn] <= 0 act_info.c: switch (skill_table[sn]->minimum_position) act_info.c: sprintf(buf, "&Rfighting &c(&Wevasive&c)&w"); /* Fighting style support -haus */ act_info.c: if( i == skill_table[sn]->skill_level[clnum] ) act_info.c: pager_printf( ch, "&c-----[ &WLevel %d &c]-----&w\n\r", i ); act_info.c: pager_printf(ch, "&c%7s&w: %20.20s \t &cCurrent&w: %-3d &cMax&w: %-3d &cMinPos&w: %s \n\r", act_info.c: skn, skill_table[sn]->name, act_info.c: ch->pcdata->learned[sn], act_info.c: skill_table[sn]->skill_adept[clnum], act_info.c: send_to_pager("&c------------------------\n\r\n\r",ch); act_info.c: if ( !skill_table[sn]->name ) act_info.c: if ( skill_table[sn]->type != lasttype ) act_info.c: lasttype = skill_table[sn]->type; act_info.c: if ( ch->pcdata->learned[sn] <= 0 act_info.c: switch (skill_table[sn]->minimum_position) act_info.c: sprintf(buf, "&Rfighting &c(&Wevasive&c)&w"); /* Fighting style support -haus */ act_info.c: if( i == skill_table[sn]->skill_level[ch->class] ) act_info.c: pager_printf( ch, "&c-----[ &WLevel %d &c]-----&w\n\r", i ); act_info.c: pager_printf(ch, "&c%7s&w: %20.20s \t &cCurrent&w: %-3d &cMax&w: %-3d &cMinPos&w: %s \n\r", act_info.c: skn, skill_table[sn]->name, act_info.c: ch->pcdata->learned[sn], act_info.c: skill_table[sn]->skill_adept[ch->class], act_info.c: if( ch->level2 != -1 ) act_info.c: if( i == skill_table[sn]->skill_level[ch->class2] && !gotFirst && i < ch->level2 ) act_info.c: pager_printf( ch, "&c-----[ &WLevel %d &c]-----&w\n\r", i ); act_info.c: pager_printf(ch, "&c%7s&w: %20.20s \t &cCurrent&w: %-3d &cMax&w: %-3d &cMinPos&w: %s \n\r", act_info.c: skn, skill_table[sn]->name, act_info.c: ch->pcdata->learned[sn], act_info.c: skill_table[sn]->skill_adept[ch->class2], act_info.c: sprintf( buf, " and a %d %s", victim->level2, npc_class[victim->class2] ); act_info.c: if( (IS_SET( victim->pcdata->flags, PCFLAG_ANONYMOUS) act_info.c: && !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY )) act_info.c: || !IS_SET( victim->pcdata->flags, PCFLAG_ANONYMOUS )) act_info.c: victim->pcdata->extraname ? victim->pcdata->extraname : "", act_info.c: victim->name, act_info.c: victim->pcdata->lastname ? victim->pcdata->lastname : "", act_info.c: victim->sex == SEX_MALE ? "&CHe&W" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&W" : "&GIt&W", act_info.c: victim->sex == SEX_MALE ? "&Cmale&W" : act_info.c: victim->sex == SEX_FEMALE ? "&pfemale&W" : "&Gneutral&W", act_info.c: capitalize(npc_race[victim->race]), act_info.c: victim->level, act_info.c: npc_class[victim->class], act_info.c: (victim->level2 != -1) ? buf : "", act_info.c: victim->name, act_info.c: victim->pcdata->title ? victim->pcdata->title : "", act_info.c: victim->sex == SEX_MALE ? "&CHe&W" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&W" : "&GIt&W", act_info.c: capitalize(npc_race[victim->race]), act_info.c: victim->sex == 0 ? "It" : act_info.c: victim->sex == 1 ? "He" : "She", act_info.c: victim->pcdata->ch_height, victim->pcdata->ch_build, victim->pcdata->hair_length, act_info.c: victim->pcdata->hair_color, victim->pcdata->eye_color, victim->pcdata->skin_tone ); act_info.c: if ( victim->pcdata->clan ) act_info.c: CLAN_DATA *pclan = victim->pcdata->clan; act_info.c: if ( pclan->clan_type == CLAN_ORDER ) act_info.c: if ( !str_cmp( victim->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number2 ) ) act_info.c: else if ( pclan->clan_type == CLAN_GUILD ) act_info.c: if ( !str_cmp( victim->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number2 ) ) act_info.c: if ( !str_cmp( victim->name, pclan->deity ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->leader ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number1 ) ) act_info.c: else if ( !str_cmp( victim->name, pclan->number2 ) ) act_info.c: send_to_pager( victim->pcdata->clan->name, ch ); act_info.c: if(victim->pcdata->council) act_info.c: victim->sex == SEX_MALE ? "&CHe&B" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&B" : "&GIt&B", act_info.c: victim->pcdata->council->name ); act_info.c: if(victim->pcdata->council2) act_info.c: victim->sex == SEX_MALE ? "&CHe&B" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&B" : "&GIt&B", act_info.c: victim->pcdata->council2->name ); act_info.c: if(victim->pcdata->deity) act_info.c: victim->sex == SEX_MALE ? "&CHe&Y" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&Y" : "&GIt&Y", act_info.c: victim->pcdata->deity->name); act_info.c: if(victim->pcdata->homepage && victim->pcdata->homepage[0] != '\0') act_info.c: victim->sex == SEX_MALE ? "&CHis&O" : act_info.c: victim->sex == SEX_FEMALE ? "&pHer&O" : "&GIts&O", act_info.c: show_tilde( victim->pcdata->homepage ) ); act_info.c: if(victim->pcdata->email && victim->pcdata->email[0] != '\0') act_info.c: victim->sex == SEX_MALE ? "&CHis&O" : act_info.c: victim->sex == SEX_FEMALE ? "&pHer&O" : "&GIts&O", act_info.c: show_tilde( victim->pcdata->email ) ); act_info.c: if (xIS_SET(victim->act, PLR_MARRIED)) act_info.c: if( !victim->pcdata->wedto ) act_info.c: victim->name, __LINE__, __FILE__ ); act_info.c: xREMOVE_BIT( victim->act, PLR_MARRIED ); act_info.c: victim->sex == SEX_MALE ? "&CHe&g" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&g" : "&GIt&g", act_info.c: victim->pcdata->wedto ); act_info.c: victim->sex == SEX_MALE ? "&CHe&g" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&g" : "&GIt&g" ); act_info.c:/* Limited bounty info for morts - Garinan */ act_info.c: if(victim->bounty > 0) act_info.c: pager_printf(ch, "&Y %s has a bounty on %s head!\n\r", victim->name, act_info.c: victim->sex == SEX_MALE ? "his" : act_info.c: victim->sex == SEX_FEMALE ? "her" : "its" ); act_info.c: if(victim->belig != 1 && victim->belig != 0) act_info.c: pager_printf(ch, "&p%s has an invalid belig value: %d (Correcting)", victim->name, victim->belig ); act_info.c: victim->belig = 0; act_info.c: if(victim->belig == 1 && !victim->bounty > 0 && !IS_IMMORTAL(victim)) act_info.c: pager_printf(ch, "&Y %s is eligible have a bounty on %s head!\n\r", victim->name, act_info.c: victim->sex == SEX_MALE ? "his" : act_info.c: victim->sex == SEX_FEMALE ? "her" : "its" ); act_info.c:/* End of bounty info - Garinan */ act_info.c: if(victim->pcdata->bio && victim->pcdata->bio[0] != '\0') act_info.c: pager_printf(ch, "\n\r&c-----[ &W%s's personal bio &c]-----&w\n\r%s", act_info.c: victim->name, act_info.c: victim->pcdata->bio); act_info.c: victim->name ); act_info.c: send_to_pager("\n\r&c-----[ &WInfo for immortals &c]-----\n\r", ch); act_info.c:/* Bounty Info for immortals - Garinan */ act_info.c: if (victim->bounty > 0) act_info.c: pager_printf(ch, "&Y%s's bounty is worth %d.\n\r", victim->name, victim->bounty ); act_info.c: if (victim->first_abit) act_info.c: for (bit = victim->first_abit; bit; bit = bit->next) act_info.c: if (strlen(bit->desc) > 3) act_info.c: pager_printf(ch, "%s\r\n", bit->desc); act_info.c: if (victim->pcdata->first_qbit) act_info.c: for (bit = victim->pcdata->first_qbit; bit; bit = bit->next) act_info.c: if (strlen(bit->desc) > 3) act_info.c: pager_printf(ch, "%s\r\n", bit->desc); act_info.c: if ( victim->pcdata->authed_by && victim->pcdata->authed_by[0] != '\0' ) act_info.c: victim->name, victim->pcdata->authed_by ); act_info.c: victim->name, victim->pcdata->mkills, victim->pcdata->mdeaths ); act_info.c: if ( victim->pcdata->pkills || victim->pcdata->pdeaths ) act_info.c: victim->name, victim->pcdata->pkills, victim->pcdata->pdeaths ); act_info.c: if ( victim->pcdata->illegal_pk ) act_info.c: victim->name, victim->pcdata->illegal_pk ); act_info.c: victim->name, act_info.c: (victim->pcdata->release_date == 0) ? "&Gnot&O " : ""); act_info.c: if (victim->pcdata->nuisance ) act_info.c: pager_printf_color( ch, "&RNuisance &cStage: (&R%d&c/%d) Power: &w%d &cTime: &w%s.\n\r", victim->pcdata->nuisance->flags, act_info.c: MAX_NUISANCE_STAGE, victim->pcdata->nuisance->power, act_info.c: ctime(&victim->pcdata->nuisance->time)); act_info.c: if(victim->pcdata->release_date != 0) act_info.c: victim->sex == SEX_MALE ? "&CHe&O" : act_info.c: victim->sex == SEX_FEMALE ? "&pShe&O" : "&GIt&O", act_info.c: victim->pcdata->helled_by, act_info.c: ctime(&victim->pcdata->release_date)); act_info.c: if(xIS_SET(victim->act, PLR_SILENCE) || xIS_SET(victim->act, PLR_NO_EMOTE) act_info.c: || xIS_SET(victim->act, PLR_NO_TELL) || xIS_SET(victim->act, PLR_THIEF) act_info.c: || xIS_SET(victim->act, PLR_KILLER) ) act_info.c: if(xIS_SET(victim->act, PLR_SILENCE)) act_info.c: if(xIS_SET(victim->act, PLR_NO_EMOTE)) act_info.c: if(xIS_SET(victim->act, PLR_NO_TELL) ) act_info.c: if(xIS_SET(victim->act, PLR_THIEF) ) act_info.c: if(xIS_SET(victim->act, PLR_KILLER) ) act_info.c: if ( victim->desc && victim->desc->host[0]!='\0' ) /* added by Gorog */ act_info.c: sprintf (buf2, "&C%s's IP info: %s ", victim->name, victim->desc->host); act_info.c: strcat (buf2, victim->desc->user); act_info.c: if ( IS_SET(ch->pcdata->flags, PCFLAG_PAGERON) ) act_info.c: do_config(ch, "-pager"); act_info.c: ch_printf( ch, "Pager is now enabled at %d lines.\n\r", ch->pcdata->pagerlen ); act_info.c: ch->pcdata->pagerlen = atoi(arg); act_info.c: if ( ch->pcdata->pagerlen < 5 ) act_info.c: ch->pcdata->pagerlen = 5; act_info.c: ch_printf( ch, "Page pausing set to %d lines.\n\r", ch->pcdata->pagerlen ); act_info.c: * ignore - lists players currently ignored act_info.c: * ignore none - sets it so no players are ignored act_info.c: * ignore <player> - start ignoring player if not already act_info.c: * ignore reply - start ignoring last player to send a act_info.c: * - Fireblade act_info.c: ch_printf(ch, "\n\r----------------------------------------\n\r"); act_info.c: ch_printf(ch, "----------------------------------------\n\r"); act_info.c: if(!ch->pcdata->first_ignored) act_info.c: for(temp = ch->pcdata->first_ignored; temp; act_info.c: temp = temp->next) act_info.c: ch_printf(ch,"\t - %s\n\r",temp->name); act_info.c: for(temp = ch->pcdata->first_ignored; temp; temp = next) act_info.c: next = temp->next; act_info.c: UNLINK(temp, ch->pcdata->first_ignored, act_info.c: ch->pcdata->last_ignored, act_info.c: STRFREE(temp->name); act_info.c: else if(!strcmp(arg, "self") || nifty_is_name(arg, ch->name)) act_info.c: if(!ch->reply) act_info.c: strcpy(arg, ch->reply->name); act_info.c: for(temp = ch->pcdata->first_ignored, i = 0; temp; act_info.c: temp = temp->next, i++) act_info.c: if(!strcmp(temp->name, capitalize(arg))) act_info.c: UNLINK(temp, ch->pcdata->first_ignored, act_info.c: ch->pcdata->last_ignored, act_info.c: temp->name); act_info.c: STRFREE(temp->name); act_info.c: /* is valid. This if-statement may seem like overkill */ act_info.c: if( stat(fname, &fst) == -1 && act_info.c: strcmp(capitalize(arg),victim->name) != 0)) act_info.c: strcpy(capitalize(arg),victim->name); act_info.c: new->name = STRALLOC(capitalize(arg)); act_info.c: new->next = NULL; act_info.c: new->prev = NULL; act_info.c: LINK(new, ch->pcdata->first_ignored, act_info.c: ch->pcdata->last_ignored, next, prev); act_info.c: ch_printf(ch,"You now ignore %s.\n\r", new->name); act_info.c: * - Fireblade act_info.c: for(temp = ch->pcdata->first_ignored; temp; temp = temp->next) act_info.c: if(nifty_is_name(temp->name, ign_ch->name)) act_info.c: "--------------\n\r", ch ); act_info.c: for( d = first_descriptor ; d ; d = d->next ) act_info.c: if( (victim = d->character) != NULL && IS_NEEDHELP( victim ) ) act_info.c: ch_printf_color( ch, "&c%-10s &W(&c %s &W)&w\n\r", act_info.c: victim->name, victim->pcdata->help_message ); act_info.c: for( d = first_descriptor ; d ; d = d->next ) act_info.c: if( (victim = d->character) != NULL act_info.c: && !str_cmp( victim->name, arg ) ) /* We want it to be exact */ act_info.c: xREMOVE_BIT( victim->act, PLR_NEEDHELP ); act_info.c: victim->name ); act_info.c: if( victim->pcdata->help_message ) act_info.c: DISPOSE( victim->pcdata->help_message ); act_info.c: xSET_BIT( ch->act, PLR_NEEDHELP ); act_info.c: sprintf( buf, "%s is requesting help: %s", ch->name, argument ); act_info.c: ch->pcdata->help_message = str_dup( argument ); act_info.c: ch->pcdata->killed[track].vnum; track++) act_info.c: tmob = get_mob_index(ch->pcdata->killed[track].vnum); act_info.c: ch_printf(ch, " %-25s", capitalize(tmob->short_descr)); act_info.c: ch_printf(ch, " - killed %d times.\n\r", act_info.c: ch->pcdata->killed[track].count); act_info.c: for ( command = command_hash[hash]; command; command = command->next ) act_info.c: if ((command->level < LEVEL_AVATAR act_info.c: && command->level >= LEVEL_PCAVATAR ) act_info.c: && command->level <= get_trust( ch ) act_info.c: && (command->name[0] != 'm' act_info.c: && command->name[1] != 'p') ) act_info.c: pager_printf( ch, "%-12s", command->name ); act_info.c: for ( command = command_hash[hash]; command; command = command->next ) act_info.c: if ((command->level < LEVEL_AVATAR act_info.c: && command->level > LEVEL_PCAVATAR ) act_info.c: && command->level <= get_trust( ch ) act_info.c: && !str_prefix(argument, command->name) act_info.c: && (command->name[0] != 'm' act_info.c: && command->name[1] != 'p') ) act_info.c: pager_printf( ch, "%-12s", command->name ); act_move.c: * -----------------------------------------------------------| (0...0) * act_move.c: * -----------------------------------------------------------| {o o} * act_move.c: * ------------------------------------------------------------------------ * act_move.c: * ------------------------------------------------------------------------ * act_move.c: if ( ln>0 && line[ln-1] == '.' ) act_move.c: int sector = room->sector_type; act_move.c: if ( room->name ) act_move.c: STRFREE( room->name ); act_move.c: if ( room->description ) act_move.c: STRFREE( room->description ); act_move.c: room->name = STRALLOC( "In a virtual room" ); act_move.c: room->description = STRALLOC( "You're on a pathway.\n\r" ); act_move.c: * wrong with it. --Shaddai act_move.c: room->name = STRALLOC( sect_names[sector][0] ); act_move.c: previous[iRand] = -1; act_move.c: while ( previous[iRand] == -1 ) act_move.c: x = number_range( 0, sent_total[sector]-1 ); act_move.c: switch( number_range(1, 2 * (iRand == nRand -1) ? 1 : 2) ) act_move.c: if ( iRand != nRand -1 ) act_move.c: if ( buf[len-1] == '.' ) act_move.c: if ( len > 5 && buf[len-1] == '.' ) act_move.c: /* Below is the line that causes the uninitialized memory read --Shaddai */ act_move.c: room->description = STRALLOC( buf2 ); act_move.c: * Remove any unused virtual rooms -Thoric act_move.c: && !vroom_hash[hash]->first_person act_move.c: && !vroom_hash[hash]->first_content ) act_move.c: vroom_hash[hash] = room->next; act_move.c: --top_vroom; act_move.c: room_next = room->next; act_move.c: if ( !room->first_person && !room->first_content ) act_move.c: prev->next = room_next; act_move.c: --top_vroom; act_move.c: * Function to get the equivelant exit of DIR 0-MAXDIR out of linked list. act_move.c: * Made to allow old-style diku-merc exit functions to work. -Thoric act_move.c: for (xit = room->first_exit; xit; xit = xit->next ) act_move.c: if ( xit->vdir == dir ) act_move.c: for (xit = room->first_exit; xit; xit = xit->next ) act_move.c: if ( xit->vdir == dir && xit->vnum == vnum ) act_move.c: * Function to get the nth exit of a room -Thoric act_move.c: for (cnt = 0, xit = room->first_exit; xit; xit = xit->next ) act_move.c: * Modify movement due to encumbrance -Thoric act_move.c: cur = ch->carry_weight; act_move.c: * Check to see if a character can fall down, checks for looping -Thoric act_move.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NOFLOOR ) act_move.c: || ( ch->mount && !IS_AFFECTED( ch->mount, AFF_FLYING ) ) ) ) act_move.c: bug( "Falling (in a loop?) more than 80 rooms: vnum %d", ch->in_room->vnum ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_DOWN), ++fall ); act_move.c: * create a 'virtual' room -Thoric act_move.c: understand virtual rooms - shogar */ act_move.c: int virtual=in_room->virtual; act_move.c: int distance = -1; act_move.c: int vdir = orig_exit->vdir; act_move.c: serial = in_room->vnum; act_move.c: roomnum = in_room->tele_vnum; act_move.c: if ( (serial) == orig_exit->vnum ) act_move.c: --roomnum; act_move.c: distance = orig_exit->distance - 1; act_move.c: int r1 = in_room->vnum; act_move.c: int r2 = orig_exit->vnum; act_move.c: distance = orig_exit->distance - 1; act_move.c: for ( room = vroom_hash[hash]; room; room = room->next ) act_move.c: if ( room->vnum == serial && room->tele_vnum == roomnum ) act_move.c: room->area = in_room->area; act_move.c: room->vnum = serial; act_move.c: room->virtual = virtual; act_move.c: room->tele_vnum = roomnum; act_move.c: room->sector_type = in_room->sector_type; act_move.c: room->room_flags = in_room->room_flags; act_move.c: room->next = vroom_hash[hash]; act_move.c: xit = make_exit(room, orig_exit->to_room, vdir); act_move.c: xit->keyword = STRALLOC( "" ); act_move.c: xit->description = STRALLOC( "" ); act_move.c: xit->key = -1; act_move.c: xit->distance = distance; act_move.c: bxit->keyword = STRALLOC( "" ); act_move.c: bxit->description = STRALLOC( "" ); act_move.c: bxit->key = -1; act_move.c: if ( (serial ) != orig_exit->vnum ) act_move.c: bxit->distance = roomnum; act_move.c: int fulldist = tmp->distance; act_move.c: bxit->distance = fulldist - distance; act_move.c: if (ch->on != NULL) /* is char on floor ??? */ act_move.c: if ( IS_DRUNK( ch, 2 ) && ( ch->position != POS_SHOVE ) act_move.c: && ( ch->position != POS_DRAG ) ) act_move.c: * -Shaddai act_move.c: if ( ch->pcdata->nuisance && ch->pcdata->nuisance->flags > 8 && act_move.c: ( ch->position != POS_SHOVE ) && ( ch->position != POS_DRAG ) && act_move.c: number_percent() > (ch->pcdata->nuisance->flags*ch->pcdata->nuisance->power)) act_move.c: pexit = get_exit( ch->in_room, door ); act_move.c: sprintf( buf, "move_char: %s to door %d", ch->name, pexit->vdir ); act_move.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_MOUNTED) ) act_move.c: in_room = ch->in_room; act_move.c: if ( !pexit || (to_room = pexit->to_room) == NULL ) act_move.c: if ( drunk && ch->position != POS_MOUNTED act_move.c: && ch->in_room->sector_type != SECT_WATER_SWIM act_move.c: && ch->in_room->sector_type != SECT_WATER_NOSWIM act_move.c: && ch->in_room->sector_type != SECT_UNDERWATER act_move.c: && ch->in_room->sector_type != SECT_OCEANFLOOR ) act_move.c: ch->position = POS_RESTING; act_move.c: ch->position = POS_INCAP; act_move.c: door = pexit->vdir; act_move.c: distance = pexit->distance; act_move.c: * unless it's a door with a window in it -Thoric act_move.c: if ( IS_SET( pexit->exit_info, EX_WINDOW ) act_move.c: && !IS_SET( pexit->exit_info, EX_ISDOOR ) ) act_move.c: if ( IS_SET(pexit->exit_info, EX_PORTAL) act_move.c: if ( IS_SET(pexit->exit_info, EX_NOMOB) act_move.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) act_move.c: || IS_SET(pexit->exit_info, EX_NOPASSDOOR)) ) act_move.c: if ( !IS_SET( pexit->exit_info, EX_SECRET ) act_move.c: && !IS_SET( pexit->exit_info, EX_DIG ) ) act_move.c: NULL, pexit->keyword, TO_ROOM ); act_move.c: NULL, pexit->keyword, TO_CHAR ); act_move.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, pexit->keyword, TO_CHAR ); act_move.c: * Crazy virtual room idea, created upon demand. -Thoric act_move.c: so bail out. - added return rNONE - shogar */ act_move.c: && ch->master act_move.c: && in_room == ch->master->in_room ) act_move.c: && ch->in_room->area != to_room->area ) act_move.c: if ( ch->level < to_room->area->low_hard_range ) act_move.c: switch( to_room->area->low_hard_range - ch->level ) act_move.c: if ( ch->level > to_room->area->hi_hard_range ) act_move.c: && IS_SET( to_room->area->flags, AFLAG_CLOSED ) act_move.c: && ch->in_room->area != to_room->area ) act_move.c: the new dh. -- Narn act_move.c: if ( iClass != ch->class act_move.c: && to_room->vnum == class_table[iClass]->guild ) act_move.c:/* Prevent deadlies from entering a nopkill-flagged area from a act_move.c: non-flagged area, but allow them to move around if already act_move.c: inside a nopkill area. - Blodkai act_move.c:/* if ( IS_SET( to_room->area->flags, AFLAG_NOPKILL ) act_move.c: && !IS_SET( ch->in_room->area->flags, AFLAG_NOPKILL ) act_move.c: } This is effectively a no-mort zone with this uncommented since every player is "deadly" -- Scion */ act_move.c: if ( in_room->sector_type == SECT_AIR act_move.c: || to_room->sector_type == SECT_AIR act_move.c: || IS_SET( pexit->exit_info, EX_FLY ) ) act_move.c: if ( ch->mount && !IS_AFFECTED( ch->mount, AFF_FLYING ) ) act_move.c: if ( !ch->mount && !IS_AFFECTED(ch, AFF_FLYING) ) act_move.c: if ( in_room->sector_type == SECT_WATER_NOSWIM act_move.c: || to_room->sector_type == SECT_WATER_NOSWIM ) act_move.c: if ( (ch->mount && !IS_FLOATING(ch->mount)) || !IS_FLOATING(ch) ) act_move.c: if ( ch->mount ) act_move.c: if ( IS_SET( pexit->exit_info, EX_CLIMB ) ) act_move.c: if ( ch->mount && IS_AFFECTED( ch->mount, AFF_FLYING ) ) act_move.c: if ( !found && !ch->mount ) act_move.c: || drunk || ch->mental_state < -90 ) act_move.c: if ( pexit->vdir == DIR_DOWN ) act_move.c: retcode = damage( ch, ch, (pexit->vdir == DIR_UP ? 10 : 5), act_move.c: WAIT_STATE( ch, skill_table[gsn_climb]->beats ); act_move.c: if ( ch->mount ) act_move.c: switch (ch->mount->position) act_move.c: if ( !IS_FLOATING(ch->mount) ) act_move.c: move = movement_loss[UMIN(SECT_MAX-1, in_room->sector_type)]; act_move.c: if ( ch->mount->move < move ) act_move.c: move = encumbrance( ch, movement_loss[UMIN(SECT_MAX-1, in_room->sector_type)] ); act_move.c: if ( ch->move < move ) act_move.c: if ( ch->mount ) act_move.c: ch->mount->move -= move; act_move.c: ch->move -= move; act_move.c: if ( to_room->tunnel > 0 ) act_move.c: int count = ch->mount ? 1 : 0; act_move.c: for ( ctmp = to_room->first_person; ctmp; ctmp = ctmp->next_in_room ) act_move.c: if ( ++count >= to_room->tunnel ) act_move.c: if ( ch->mount && count == to_room->tunnel ) act_move.c: /* check for traps on exit - later */ act_move.c: && ( IS_NPC(ch) || !xIS_SET(ch->act, PLR_WIZINVIS) ) ) act_move.c: if ( ch->mount ) act_move.c: if ( IS_AFFECTED( ch->mount, AFF_FLOATING ) ) act_move.c: if ( IS_AFFECTED( ch->mount, AFF_FLYING ) ) act_move.c: if ( ch->position == POS_SHOVE ) act_move.c: if ( ch->position == POS_DRAG ) act_move.c: if ( ch->mount ) act_move.c: act( AT_ACTION, buf, ch, NULL, ch->mount, TO_NOTVICT ); act_move.c: if ( ch->mount ) act_move.c: rprog_leave_trigger( ch->mount ); act_move.c: if( ch->mount ) act_move.c: char_from_room( ch->mount ); act_move.c: char_to_room( ch->mount, to_room ); act_move.c: && ( IS_NPC(ch) || !xIS_SET(ch->act, PLR_WIZINVIS) ) ) act_move.c: if ( ch->mount ) act_move.c: if ( IS_AFFECTED( ch->mount, AFF_FLOATING ) ) act_move.c: if ( IS_AFFECTED( ch->mount, AFF_FLYING ) ) act_move.c: if ( ch->position == POS_SHOVE ) act_move.c: if ( ch->position == POS_DRAG ) act_move.c: if ( ch->mount ) act_move.c: act( AT_ACTION, buf, ch, NULL, ch->mount, TO_ROOM ); act_move.c: && ch->in_room->area != to_room->area ) act_move.c: if ( ch->level < to_room->area->low_soft_range ) act_move.c: if ( ch->level > to_room->area->hi_soft_range ) act_move.c: if ( IS_SET( ch->in_room->room_flags, ROOM_DEATH ) && !IS_IMMORTAL( ch ) ) act_move.c: if ( xIS_SET(ch->act, PLR_BRIEF) ) act_move.c: xREMOVE_BIT(ch->act, PLR_BRIEF); act_move.c: xSET_BIT(ch->act, PLR_BRIEF); act_move.c: * Put good-old EQ-munching death traps back in! -Thoric act_move.c: if ( IS_SET( ch->in_room->room_flags, ROOM_DEATH ) && !IS_IMMORTAL( ch ) ) act_move.c: ch->name, ch->in_room->vnum ); act_move.c: the right number of them. -- Narn act_move.c: for ( fch = from_room->first_person; fch; fch = fch->next_in_room ) act_move.c: for ( fch = from_room->first_person; fch && ( count < chars ); fch = nextinroom ) act_move.c: nextinroom = fch->next_in_room; act_move.c: && fch->master == ch act_move.c: && fch->position == POS_STANDING ) act_move.c: if ( ch->in_room->first_content ) act_move.c: || ( ch->mount && !IS_AFFECTED( ch->mount, AFF_FLOATING ) ) ) act_move.c: move_char( ch, get_exit(ch->in_room, DIR_NORTH), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_EAST), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_SOUTH), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_WEST), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_UP), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_DOWN), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_NORTHEAST), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_NORTHWEST), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_SOUTHEAST), 0 ); act_move.c: move_char( ch, get_exit(ch->in_room, DIR_SOUTHWEST), 0 ); act_move.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_move.c: if ( (quiet || IS_SET(pexit->exit_info, EX_ISDOOR)) act_move.c: && pexit->keyword act_move.c: && nifty_is_name( arg, pexit->keyword ) ) act_move.c: if ( (pexit = get_exit( ch->in_room, door )) == NULL ) act_move.c: if ( IS_SET(pexit->exit_info, EX_SECRET) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_ISDOOR) ) act_move.c: SET_BIT(pexit->exit_info, flag); act_move.c: if ( (pexit_rev = pexit->rexit) != NULL act_move.c: SET_BIT( pexit_rev->exit_info, flag ); act_move.c: REMOVE_BIT(pexit->exit_info, flag); act_move.c: if ( (pexit_rev = pexit->rexit) != NULL act_move.c: REMOVE_BIT( pexit_rev->exit_info, flag ); act_move.c: TOGGLE_BIT(pexit->exit_info, flag); act_move.c: if ( (pexit_rev = pexit->rexit) != NULL act_move.c: TOGGLE_BIT( pexit_rev->exit_info, flag ); act_move.c: if ( IS_SET(pexit->exit_info, EX_SECRET) act_move.c: && pexit->keyword && !nifty_is_name( arg, pexit->keyword ) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_ISDOOR) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_CLOSED) ) act_move.c: if ( IS_SET(pexit->exit_info, EX_LOCKED) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_SECRET) act_move.c: || (pexit->keyword && nifty_is_name( arg, pexit->keyword )) ) act_move.c: act( AT_ACTION, "$n opens the $d.", ch, NULL, pexit->keyword, TO_ROOM ); act_move.c: act( AT_ACTION, "You open the $d.", ch, NULL, pexit->keyword, TO_CHAR ); act_move.c: if ( (pexit_rev = pexit->rexit) != NULL act_move.c: && pexit_rev->to_room == ch->in_room ) act_move.c: for ( rch = pexit->to_room->first_person; rch; rch = rch->next_in_room ) act_move.c: act( AT_ACTION, "The $d opens.", rch, NULL, pexit_rev->keyword, TO_CHAR ); act_move.c: if ( (door=pexit->vdir) >= 0 && door < 10 ) act_move.c: if ( obj->item_type != ITEM_CONTAINER ) act_move.c: ch_printf( ch, "%s is not a container.\n\r", capitalize( obj->short_descr ) ); act_move.c: if ( !IS_SET(obj->value[1], CONT_CLOSED) ) act_move.c: ch_printf( ch, "%s is already open.\n\r", capitalize( obj->short_descr ) ); act_move.c: if ( !IS_SET(obj->value[1], CONT_CLOSEABLE) ) act_move.c: ch_printf( ch, "%s cannot be opened or closed.\n\r", capitalize( obj->short_descr ) ); act_move.c: if ( IS_SET(obj->value[1], CONT_LOCKED) ) act_move.c: ch_printf( ch, "%s is locked.\n\r", capitalize( obj->short_descr ) ); act_move.c: REMOVE_BIT(obj->value[1], CONT_CLOSED); act_move.c: if ( !IS_SET(pexit->exit_info, EX_ISDOOR) ) act_move.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) ) act_move.c: act( AT_ACTION, "$n closes the $d.", ch, NULL, pexit->keyword, TO_ROOM ); act_move.c: act( AT_ACTION, "You close the $d.", ch, NULL, pexit->keyword, TO_CHAR ); act_move.c: if ( ( pexit_rev = pexit->rexit ) != NULL act_move.c: && pexit_rev->to_room == ch->in_room ) act_move.c: SET_BIT( pexit_rev->exit_info, EX_CLOSED ); act_move.c: for ( rch = pexit->to_room->first_person; rch; rch = rch->next_in_room ) act_move.c: act( AT_ACTION, "The $d closes.", rch, NULL, pexit_rev->keyword, TO_CHAR ); act_move.c: if ( (door=pexit->vdir) >= 0 && door < 10 ) act_move.c: if ( obj->item_type != ITEM_CONTAINER ) act_move.c: ch_printf( ch, "%s is not a container.\n\r", capitalize( obj->short_descr ) ); act_move.c: if ( IS_SET(obj->value[1], CONT_CLOSED) ) act_move.c: ch_printf( ch, "%s is already closed.\n\r", capitalize( obj->short_descr ) ); act_move.c: if ( !IS_SET(obj->value[1], CONT_CLOSEABLE) ) act_move.c: ch_printf( ch, "%s cannot be opened or closed.\n\r", capitalize( obj->short_descr ) ); act_move.c: SET_BIT(obj->value[1], CONT_CLOSED); act_move.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) act_move.c: if ( obj->pIndexData->vnum == key || (obj->item_type == ITEM_KEY && obj->value[0] == key) ) act_move.c: if ( obj->item_type == ITEM_KEYRING ) act_move.c: for ( obj2 = obj->first_content; obj2; obj2 = obj2->next_content ) act_move.c: if ( obj2->pIndexData->vnum == key || obj2->value[0] == key ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_ISDOOR) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_CLOSED) ) act_move.c: if ( pexit->key < 0 ) act_move.c: if ( (key=has_key(ch, pexit->key)) == NULL ) act_move.c: if ( IS_SET(pexit->exit_info, EX_LOCKED) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_SECRET) act_move.c: || (pexit->keyword && nifty_is_name( arg, pexit->keyword )) ) act_move.c: count = key->count; act_move.c: key->count = 1; act_move.c: act( AT_ACTION, "$n locks the $d with $p.", ch, key, pexit->keyword, TO_ROOM ); act_move.c: key->count = count; act_move.c: if ( obj->item_type != ITEM_CONTAINER ) act_move.c: if ( !IS_SET(obj->value[1], CONT_CLOSED) ) act_move.c: if ( obj->value[2] < 0 ) act_move.c: if ( (key=has_key(ch, obj->value[2])) == NULL ) act_move.c: if ( IS_SET(obj->value[1], CONT_LOCKED) ) act_move.c: SET_BIT(obj->value[1], CONT_LOCKED); act_move.c: count = key->count; act_move.c: key->count = 1; act_move.c: key->count = count; act_move.c: if ( !IS_SET(pexit->exit_info, EX_ISDOOR) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_CLOSED) ) act_move.c: if ( pexit->key < 0 ) act_move.c: if ( (key=has_key(ch, pexit->key)) == NULL ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_LOCKED) ) act_move.c: if ( !IS_SET(pexit->exit_info, EX_SECRET) act_move.c: || (pexit->keyword && nifty_is_name( arg, pexit->keyword )) ) act_move.c: count = key->count; act_move.c: key->count = 1; act_move.c: act( AT_ACTION, "$n unlocks the $d with $p.", ch, key, pexit->keyword, TO_ROOM ); act_move.c: key->count = count; act_move.c: if ( IS_SET(pexit->exit_info, EX_EATKEY) ) act_move.c: if ( obj->item_type != ITEM_CONTAINER ) act_move.c: if ( !IS_SET(obj->value[1], CONT_CLOSED) ) act_move.c: if ( obj->value[2] < 0 ) act_move.c: if ( (key=has_key(ch, obj->value[2])) == NULL ) act_move.c: if ( !IS_SET(obj->value[1], CONT_LOCKED) ) act_move.c: REMOVE_BIT(obj->value[1], CONT_LOCKED); act_move.c: count = key->count; act_move.c: key->count = 1; act_move.c: key->count = count; act_move.c: if ( IS_SET(obj->value[1], CONT_EATKEY) ) act_move.c: && (ch->level < skill_table[gsn_bashdoor]->skill_level[ch->class] act_move.c: || ch->level < skill_table[gsn_bashdoor]->skill_level[ch->class2]) ) act_move.c: if ( ch->fighting ) act_move.c: if ( !IS_SET( pexit->exit_info, EX_CLOSED ) ) act_move.c: WAIT_STATE( ch, skill_table[gsn_bashdoor]->beats ); act_move.c: if ( IS_SET( pexit->exit_info, EX_SECRET ) ) act_move.c: keyword = pexit->keyword; act_move.c: if ( IS_SET( pexit->exit_info, EX_LOCKED ) ) act_move.c: if ( !IS_SET( pexit->exit_info, EX_BASHPROOF ) act_move.c: && ch->move >= 15 act_move.c: && number_percent( ) < ( chance + 4 * ( get_curr_str( ch ) - 19 ) ) ) act_move.c: REMOVE_BIT( pexit->exit_info, EX_CLOSED ); act_move.c: if ( IS_SET( pexit->exit_info, EX_LOCKED ) ) act_move.c: REMOVE_BIT( pexit->exit_info, EX_LOCKED ); act_move.c: SET_BIT( pexit->exit_info, EX_BASHED ); act_move.c: if ( (to_room = pexit->to_room) != NULL act_move.c: && (pexit_rev = pexit->rexit) != NULL act_move.c: && pexit_rev->to_room == ch->in_room ) act_move.c: REMOVE_BIT( pexit_rev->exit_info, EX_CLOSED ); act_move.c: if ( IS_SET( pexit_rev->exit_info, EX_LOCKED ) ) act_move.c: REMOVE_BIT( pexit_rev->exit_info, EX_LOCKED ); act_move.c: SET_BIT( pexit_rev->exit_info, EX_BASHED ); act_move.c: for ( rch = to_room->first_person; rch; rch = rch->next_in_room ) act_move.c: rch, NULL, pexit_rev->keyword, TO_CHAR ); act_move.c: damage( ch, ch, ( ch->max_hit / 20 ), gsn_bashdoor ); act_move.c: damage( ch, ch, ( ch->max_hit / 20 ) + 10, gsn_bashdoor ); act_move.c: damage( ch, ch, ( ch->max_hit / 20 ) + 10, gsn_bashdoor ); act_move.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) act_move.c: && !gch->fighting act_move.c: && ( ch->level - gch->level <= 4 ) act_move.c: if (ch->position == POS_FIGHTING) act_move.c: ch->fur_pos = FURNITURE_UNUSED; act_move.c: ch->position = POS_STANDING; act_move.c: if (ch->on) act_move.c: for ( paf = ch->on->pIndexData->first_affect; paf; paf = paf->next ) act_move.c: for ( paf = ch->on->first_affect; paf; paf = paf->next ) act_move.c: ch->on = NULL; act_move.c: obj = get_obj_list(ch, arg,ch->in_room->first_content); act_move.c: if (obj->item_type != ITEM_FURNITURE ) act_move.c: if (((type == ST_ON) && (!IS_SET(obj->value[2], STAND_ON))) act_move.c: || ((type == ST_AT) && (!IS_SET(obj->value[2], STAND_AT))) act_move.c: || ((type == ST_IN) && (!IS_SET(obj->value[2], STAND_IN))) act_move.c: || ((ch->on != obj) && (count_users(obj) >= obj->value[0]))) act_move.c: type_word, obj->short_descr); act_move.c: ch->on=obj; act_move.c: ch->fur_pos=type; act_move.c: for ( paf = ch->on->pIndexData->first_affect; paf; paf = paf->next ) act_move.c: for ( paf = ch->on->first_affect; paf; paf = paf->next ) act_move.c: switch ( ch->position ) act_move.c: ch->position = POS_STANDING; act_move.c: ch->position = POS_STANDING; act_move.c: ch->position = POS_STANDING; act_move.c: if(!ch->on) act_move.c: if(ch->on) act_move.c: ch->position = POS_STANDING; act_move.c: for ( paf = ch->on->pIndexData->first_affect; paf; paf = paf->next ) act_move.c: for ( paf = ch->on->first_affect; paf; paf = paf->next ) act_move.c: ch->on = NULL; act_move.c: ch->fur_pos = FURNITURE_UNUSED; act_move.c: switch ( ch->position ) act_move.c: ch->position = POS_SITTING; act_move.c: ch->position = POS_SITTING; act_move.c: obj = get_obj_list(ch, arg,ch->in_room->first_content); act_move.c: if (obj->item_type != ITEM_FURNITURE ) act_move.c: if (((type == SI_ON) && (!IS_SET(obj->value[2], SIT_ON))) act_move.c: || ((type == SI_AT) && (!IS_SET(obj->value[2], SIT_AT))) act_move.c: || ((type == SI_IN) && (!IS_SET(obj->value[2], SIT_IN))) act_move.c: || ((ch->on != obj) && (count_users(obj) >= obj->value[0]))) act_move.c: type_word, obj->short_descr); act_move.c: ch->position = POS_SITTING; act_move.c: /* Heavy characters ought to break furniture! -- Scion :P */ act_move.c: if (ch->weight >= ((obj->value[0] * 300) + number_range(-30, 30))) { act_move.c: ch->position = POS_RESTING; act_move.c: ch->on = obj; act_move.c: ch->fur_pos = type; act_move.c: /* By Standing on object... get affects -- Maniac -- */ act_move.c: for ( paf = ch->on->pIndexData->first_affect; paf; paf = paf->next ) act_move.c: for ( paf = ch->on->first_affect; paf; paf = paf->next ) act_move.c: ch->position = POS_SITTING; act_move.c: send_to_char( "You are already sitting - on your mount.\n\r", ch ); act_move.c: switch ( ch->position ) act_move.c: ch->position = POS_RESTING; act_move.c: obj = get_obj_list(ch, arg,ch->in_room->first_content); act_move.c: if (obj->item_type != ITEM_FURNITURE ) act_move.c: if (((type == RE_ON) && (!IS_SET(obj->value[2], REST_ON))) act_move.c: || ((type == RE_AT) && (!IS_SET(obj->value[2], REST_AT))) act_move.c: || ((type == RE_IN) && (!IS_SET(obj->value[2], REST_IN))) act_move.c: || ((ch->on != obj) && (count_users(obj) >= obj->value[0]))) act_move.c: type_word, obj->short_descr); act_move.c: /* Heavy characters ought to break furniture! -- Scion :P */ act_move.c: if (ch->weight >= ((obj->value[0] * 300) + number_range(-30, 30))) { act_move.c: ch->position = POS_RESTING; act_move.c: ch->position = POS_RESTING; act_move.c: ch->on = obj; act_move.c: ch->fur_pos = type; act_move.c: /* By Standing on object... get affects -- Maniac -- */ act_move.c: for ( paf = ch->on->pIndexData->first_affect; paf; paf = paf->next ) act_move.c: for ( paf = ch->on->first_affect; paf; paf = paf->next ) act_move.c: ch->position = POS_RESTING; act_move.c: ch->position = POS_RESTING; act_move.c: switch ( ch->position ) act_move.c: if ( ch->mental_state > 30 && (number_percent()+10) < ch->mental_state ) act_move.c: ch->position = POS_SLEEPING; act_move.c: if ( ch->mental_state > 30 && (number_percent()+5) < ch->mental_state ) act_move.c: ch->position = POS_SLEEPING; act_move.c: if ( ch->mental_state > 30 && number_percent() < ch->mental_state ) act_move.c: obj = get_obj_list(ch, arg,ch->in_room->first_content); act_move.c: if (obj->item_type != ITEM_FURNITURE ) act_move.c: if (((type == SL_ON) && (!IS_SET(obj->value[2], SLEEP_ON))) act_move.c: || ((type == SL_AT) && (!IS_SET(obj->value[2], SLEEP_AT))) act_move.c: || ((type == SL_IN) && (!IS_SET(obj->value[2], SLEEP_IN))) act_move.c: || ((ch->on != obj) && (count_users(obj) >= obj->value[0]))) act_move.c: type_word, obj->short_descr); act_move.c: /* Heavy characters ought to break furniture! -- Scion :P */ act_move.c: if (ch->weight >= ((obj->value[0] * 300) + number_range(-30, 30))) { act_move.c: ch->position = POS_RESTING; act_move.c: ch->position = POS_SLEEPING; act_move.c: ch->on = obj; act_move.c: ch->fur_pos = type; act_move.c: /* By Standing on object... get affects -- Maniac -- */ act_move.c: for ( paf = ch->on->pIndexData->first_affect; paf; paf = paf->next ) act_move.c: for ( paf = ch->on->first_affect; paf; paf = paf->next ) act_move.c: ch->position = POS_SLEEPING; act_move.c: if ( IS_AFFECTED(victim, AFF_SLEEP) || victim->position < POS_SLEEPING ) act_move.c: victim->position = POS_STANDING; act_move.c: if ( IS_SET( ch->in_room->room_flags, ROOM_DEATH ) && !IS_IMMORTAL( ch ) ) act_move.c: ch->name, ch->in_room->vnum ); act_move.c: ROOM_INDEX_DATA *start = ch->in_room, *dest; act_move.c: for ( nch = start->first_person; nch; nch = nch_next ) act_move.c: nch_next = nch->next_in_room; act_move.c: for ( obj = start->first_content; obj; obj = obj_next ) act_move.c: obj_next = obj->next_content; act_move.c: * "Climb" in a certain direction. -Thoric act_move.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_move.c: if ( IS_SET( pexit->exit_info, EX_xCLIMB ) ) act_move.c: && IS_SET( pexit->exit_info, EX_xCLIMB )) act_move.c: * "enter" something (moves through an exit) -Thoric act_move.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_move.c: if ( IS_SET( pexit->exit_info, EX_xENTER ) ) act_move.c: if ( ch->in_room->sector_type != SECT_INSIDE && IS_OUTSIDE(ch) ) act_move.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_move.c: if ( pexit->to_room && (pexit->to_room->sector_type == SECT_INSIDE act_move.c: || IS_SET(pexit->to_room->room_flags, ROOM_INDOORS)) ) act_move.c: && IS_SET( pexit->exit_info, EX_xENTER )) act_move.c: * Leave through an exit. -Thoric act_move.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_move.c: if ( IS_SET( pexit->exit_info, EX_xLEAVE ) ) act_move.c: if ( ch->in_room->sector_type == SECT_INSIDE || !IS_OUTSIDE(ch) ) act_move.c: for ( pexit = ch->in_room->first_exit; pexit; pexit = pexit->next ) act_move.c: if ( pexit->to_room && pexit->to_room->sector_type != SECT_INSIDE act_move.c: && !IS_SET(pexit->to_room->room_flags, ROOM_INDOORS) ) act_move.c: && IS_SET( pexit->exit_info, EX_xLEAVE )) act_move.c: * Some types may cause damage. -Thoric act_move.c: if ( (room=ch->in_room) == NULL ) act_move.c: bug( "pullcheck: %s not in a room?!?", ch->name ); act_move.c: for ( xtmp = room->first_exit; xtmp; xtmp = xtmp->next ) act_move.c:/* lets try this, the || will let the if continue, and the abs(xit->pull act_move.c: will crash the mud so.... add another set of parens - shogar act_move.c: if ( xtmp->pull && xtmp->to_room && (!xit || abs(xtmp->pull) > abs(xit->pull)) ) act_move.c: if ( xtmp->pull act_move.c: && xtmp->to_room act_move.c: || (abs(xtmp->pull) > abs(xit->pull))) ) act_move.c: pull = xit->pull; act_move.c: pullfact = URANGE(1, 20-(abs(pull)/5), 20); act_move.c: for ( xit = room->first_exit; xit; xit = xit->next ) act_move.c: if ( xit->pull && xit->to_room ) act_move.c: pull = xit->pull; act_move.c: pullfact = URANGE(1, 20-(abs(pull)/5), 20); act_move.c: if ( (xit=get_exit(room, rev_dir[xit->vdir])) == NULL ) act_move.c: dtxt = rev_exit(xit->vdir); act_move.c: switch(xit->pulltype) act_move.c: switch(room->sector_type) act_move.c: if ( xit->pulltype == PULL_CURRENT ) act_move.c: if ( (ch->mount && !IS_FLOATING(ch->mount)) act_move.c: || (!ch->mount && !IS_FLOATING(ch)) ) act_move.c: /* light breeze -- very limited moving power */ act_move.c: if ( (ch->mount && !IS_FLOATING(ch->mount)) act_move.c: || (!ch->mount && !IS_FLOATING(ch)) ) act_move.c: switch(xit->pulltype) act_move.c: act(AT_PLAIN, tochar, ch, NULL, dir_name[xit->vdir], TO_CHAR ); act_move.c: act(AT_PLAIN, toroom, ch, NULL, dir_name[xit->vdir], TO_ROOM ); act_move.c: if ( destrm && xit->to_room->first_person ) act_move.c: act(AT_PLAIN, destrm, xit->to_room->first_person, NULL, dtxt, TO_CHAR ); act_move.c: act(AT_PLAIN, destrm, xit->to_room->first_person, NULL, dtxt, TO_ROOM ); act_move.c: if ( xit->pulltype == PULL_SLIP ) act_move.c: char_to_room(ch, xit->to_room); act_move.c: if ( ch->mount ) act_move.c: char_from_room(ch->mount); act_move.c: char_to_room(ch->mount, xit->to_room); act_move.c: do_look(ch->mount, "auto"); act_move.c: for ( obj = room->first_content; obj; obj = obj_next ) act_move.c: obj_next = obj->next_content; act_move.c: switch(obj->item_type) act_move.c: if ( objmsg && room->first_person ) act_move.c: act(AT_PLAIN, objmsg, room->first_person, obj, dir_name[xit->vdir], TO_CHAR); act_move.c: act(AT_PLAIN, objmsg, room->first_person, obj, dir_name[xit->vdir], TO_ROOM); act_move.c: if ( destob && xit->to_room->first_person ) act_move.c: act(AT_PLAIN, destob, xit->to_room->first_person, obj, dtxt, TO_CHAR); act_move.c: act(AT_PLAIN, destob, xit->to_room->first_person, obj, dtxt, TO_ROOM); act_move.c: obj_to_room(obj, xit->to_room); act_move.c:/* Sets a character's home room -- Scion */ act_move.c: room=get_room_index(ch->pcdata->memorize[slot]); act_move.c: sprintf(arg, "%d: %s\r\n", slot, (room ? room->name : "None")); act_move.c: switch (ch->substate) act_move.c: ch->recall=slot; act_move.c: ch->substate=SUB_NONE; act_move.c: ch->substate = SUB_NONE; act_move.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NO_ASTRAL ) ) act_move.c: ch->pcdata->memorize[ch->recall]=ch->in_room->vnum; act_obj.c: * -----------------------------------------------------------| (0...0) * act_obj.c: * -----------------------------------------------------------| {o o} * act_obj.c: * ------------------------------------------------------------------------ * act_obj.c: * ------------------------------------------------------------------------ * act_obj.c: * how resistant an object is to damage -Thoric act_obj.c: resist -= number_fuzzy(5); act_obj.c: resist += (obj->level / 10) - 2; act_obj.c: if (obj->item_type == ITEM_ARMOR || obj->item_type == ITEM_WEAPON) act_obj.c: resist += (obj->value[0] / 2) - 2; act_obj.c: if( ch->class == class ) act_obj.c: if( ch->level2 == -1 ) act_obj.c: if( ch->class == class ) act_obj.c: if( ch->class == class || ch->class2 == class ) act_obj.c: int amt; /* gold per-race multipliers */ act_obj.c: && (ch->level < sysdata.level_getobjnotake ) ) act_obj.c: if ( IS_SET( obj->magic_flags, ITEM_PKDISARMED ) ) act_obj.c: if ( ch->level - obj->value[5] > 5 act_obj.c: || obj->value[5] - ch->level > 5 ) act_obj.c: REMOVE_BIT( obj->magic_flags, ITEM_PKDISARMED ); act_obj.c: obj->value[5] = 0; act_obj.c: if ( ch->carry_number + get_obj_number( obj ) > can_carry_n( ch ) ) act_obj.c: ch, NULL, obj->name, TO_CHAR ); act_obj.c: weight = obj->weight; act_obj.c: if ( ch->carry_weight + weight > can_carry_w( ch ) ) act_obj.c: ch, NULL, obj->name, TO_CHAR ); act_obj.c: if ( container->item_type == ITEM_KEYRING && !IS_OBJ_STAT(container, ITEM_COVERING) ) act_obj.c: && !IS_NPC( ch ) && str_cmp( container->name+7, ch->name ) ) act_obj.c: container->value[5]++; act_obj.c: if ( IS_SET(ch->in_room->room_flags, ROOM_CLANSTOREROOM) act_obj.c: && (!container || container->carried_by == NULL) ) act_obj.c: for ( clan = first_clan; clan; clan = clan->next ) act_obj.c: if ( clan->storeroom == ch->in_room->vnum ) act_obj.c: if ( obj->item_type != ITEM_CONTAINER ) act_obj.c: if ( obj->item_type == ITEM_MONEY ) act_obj.c: amt = obj->value[0]; act_obj.c: * lead to more confusion than it warrants. -h act_obj.c: switch(ch->race){ act_obj.c: case(6): amt *=0.92; break;/* half-ogre */ act_obj.c: case(7): amt *=0.94; break;/* half-orc */ act_obj.c: case(8): amt *=0.90; break;/* half-troll */ act_obj.c: case(9): amt *=1.04; break;/* half-elf */ act_obj.c: ch->gold += amt; act_obj.c: if ( (ch->carry_number + number) > can_carry_n(ch) ) act_obj.c: obj = get_obj_list( ch, arg1, ch->in_room->first_content ); act_obj.c: if ( IS_SET( ch->in_room->room_flags, ROOM_DONATION ) ) act_obj.c: for ( obj = ch->in_room->last_content; obj; obj = obj_next ) act_obj.c: obj_next = obj->prev_content; act_obj.c: if ( ( fAll || nifty_is_name( chk, obj->name ) ) act_obj.c: if ( number && (cnt + obj->count) > number ) act_obj.c: split_obj( obj, number - cnt ); act_obj.c: cnt += obj->count; act_obj.c: || ch->carry_number >= can_carry_n( ch ) act_obj.c: || ch->carry_weight >= can_carry_w( ch ) act_obj.c: switch ( container->item_type ) act_obj.c: if ( ch->carry_weight + container->weight > can_carry_w( ch ) ) act_obj.c: pd = container->short_descr; act_obj.c: && str_cmp( name, ch->name ) ) act_obj.c: /* Killer/owner loot only if die to pkill blow --Blod */ act_obj.c: && container->action_desc[0] !='\0' act_obj.c: && str_cmp( name, ch->name ) act_obj.c: && str_cmp( container->action_desc, ch->name ) ) act_obj.c: && !IS_NPC(ch) && str_cmp( name, ch->name ) act_obj.c: && container->value[5] >= 3 ) act_obj.c: *** -- Scion 5/10/1999 act_obj.c: && !IS_NPC(ch) /*&& IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) */ act_obj.c: && container->value[4] - ch->level < 10 act_obj.c: && container->value[4] - ch->level > -10 ) act_obj.c: if ( str_cmp( name, ch->name ) && !IS_IMMORTAL(ch) ) act_obj.c: for ( gch = first_char; gch; gch = gch->next ) act_obj.c: && !str_cmp( name, gch->name ) ) act_obj.c: } Anyone can loot corpses! -- Scion */ act_obj.c: && IS_SET(container->value[1], CONT_CLOSED) ) act_obj.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, container->name, TO_CHAR ); act_obj.c: obj = get_obj_list( ch, arg1, container->first_content ); act_obj.c: if( container->item_type == ITEM_CORPSE_PC ) act_obj.c: pd = container->short_descr; act_obj.c: if( str_cmp( name, ch->name ) ) act_obj.c: sprintf( buf, "%s is looting %s's corpse! %s(room %d)", ch->name, act_obj.c: capitalize(name), xIS_SET( obj->extra_flags, ITEM_CLANOBJECT ) ? act_obj.c: "(ClanObject) " : "", ch->in_room->vnum ); act_obj.c: sprintf( buf, "%s is looting %s's corpse at %s!", ch->name, capitalize( name ), ch->in_room->name ); act_obj.c: * --Shaddai act_obj.c: if ( container->item_type == ITEM_CORPSE_PC ) act_obj.c: write_corpses( NULL, container->short_descr+14, NULL ); act_obj.c: && str_cmp( ch->name, container->name+7 ) ) act_obj.c: for ( obj = container->first_content; obj; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if ( ( fAll || nifty_is_name( chk, obj->name ) ) act_obj.c: if ( number && (cnt + obj->count) > number ) act_obj.c: split_obj( obj, number - cnt ); act_obj.c: cnt += obj->count; act_obj.c: || ch->carry_number >= can_carry_n( ch ) act_obj.c: || ch->carry_weight >= can_carry_w( ch ) act_obj.c: if ( container->item_type == ITEM_KEYRING && !IS_OBJ_STAT(container, ITEM_COVERING) ) act_obj.c: if ( container->item_type == ITEM_KEYRING && !IS_OBJ_STAT(container, ITEM_COVERING) ) act_obj.c: * --Shaddai act_obj.c: if ( container->item_type == ITEM_CORPSE_PC ) act_obj.c: write_corpses( NULL, container->short_descr+14, NULL ); act_obj.c: if ( !container->carried_by && IS_SET(sysdata.save_flags, SV_PUT) ) act_obj.c: if ( ch->carry_weight + container->weight > can_carry_w(ch) ) act_obj.c: if ( container->item_type != ITEM_CONTAINER act_obj.c: && container->item_type != ITEM_KEYRING act_obj.c: && container->item_type != ITEM_QUIVER ) act_obj.c: if ( IS_SET(container->value[1], CONT_CLOSED) ) act_obj.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, container->name, TO_CHAR ); act_obj.c: if ( container->item_type == ITEM_KEYRING && obj->item_type != ITEM_KEY ) act_obj.c: if ( container->item_type == ITEM_QUIVER && obj->item_type != ITEM_PROJECTILE ) act_obj.c: && (get_obj_weight(obj) / obj->count) act_obj.c: > ((get_obj_weight(container) / container->count) act_obj.c: - container->weight)) ) act_obj.c: if ( (get_real_obj_weight(obj) / obj->count) act_obj.c: + (get_real_obj_weight(container) / container->count) act_obj.c: > container->value[0] ) act_obj.c: count = obj->count; act_obj.c: obj->count = 1; act_obj.c: if ( container->item_type == ITEM_KEYRING && !IS_OBJ_STAT(container, ITEM_COVERING) ) act_obj.c: obj->count = count; act_obj.c: * --Shaddai act_obj.c: if ( container->item_type == ITEM_CORPSE_PC ) act_obj.c: write_corpses( NULL, container->short_descr+14, NULL ); act_obj.c: if ( IS_SET(ch->in_room->room_flags, ROOM_CLANSTOREROOM) act_obj.c: && container->carried_by == NULL) act_obj.c: for ( clan = first_clan; clan; clan = clan->next ) act_obj.c: if ( clan->storeroom == ch->in_room->vnum ) act_obj.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if ( ( fAll || nifty_is_name( chk, obj->name ) ) act_obj.c: && obj->wear_loc == WEAR_NONE act_obj.c: && (container->item_type != ITEM_KEYRING || obj->item_type == ITEM_KEY) act_obj.c: && (container->item_type != ITEM_QUIVER || obj->item_type == ITEM_PROJECTILE) act_obj.c: <= container->value[0] ) act_obj.c: if ( number && (cnt + obj->count) > number ) act_obj.c: split_obj(obj, number - cnt); act_obj.c: cnt += obj->count; act_obj.c: if ( container->item_type == ITEM_KEYRING ) act_obj.c: * Don't bother to save anything if nothing was dropped -Thoric act_obj.c: * --Shaddai act_obj.c: if ( container->item_type == ITEM_CORPSE_PC ) act_obj.c: write_corpses( NULL, container->short_descr+14, NULL ); act_obj.c: if ( IS_SET(ch->in_room->room_flags, ROOM_CLANSTOREROOM) act_obj.c: && container->carried_by == NULL ) act_obj.c: for ( clan = first_clan; clan; clan = clan->next ) act_obj.c: if ( clan->storeroom == ch->in_room->vnum ) act_obj.c: if ( xIS_SET( ch->act, PLR_LITTERBUG ) ) act_obj.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NODROP ) act_obj.c: if ( ch->gold < number ) act_obj.c: ch->gold -= number; act_obj.c: for ( obj = ch->in_room->first_content; obj; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: switch ( obj->pIndexData->vnum ) act_obj.c: number += obj->value[0]; act_obj.c: obj_to_room( create_money( number ), ch->in_room ); act_obj.c: obj = obj_to_room( obj, ch->in_room ); act_obj.c: if ( IS_SET(ch->in_room->room_flags, ROOM_CLANSTOREROOM) ) act_obj.c: for ( clan = first_clan; clan; clan = clan->next ) act_obj.c: if ( clan->storeroom == ch->in_room->vnum ) act_obj.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NODROPALL ) act_obj.c: || IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) act_obj.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if ( (fAll || nifty_is_name( chk, obj->name ) ) act_obj.c: && obj->wear_loc == WEAR_NONE act_obj.c: if ( HAS_PROG(obj->pIndexData, DROP_PROG) && obj->count > 1 ) act_obj.c: obj_next = ch->first_carrying; act_obj.c: if ( number && (cnt + obj->count) > number ) act_obj.c: split_obj( obj, number - cnt ); act_obj.c: cnt += obj->count; act_obj.c: obj = obj_to_room( obj, ch->in_room ); act_obj.c: if ( ch->gold < amount ) act_obj.c: ch->gold -= amount; act_obj.c: victim->gold += amount; act_obj.c: if ( obj->wear_loc != WEAR_NONE ) act_obj.c: if ( victim->carry_number + (get_obj_number(obj)/obj->count) > can_carry_n( victim ) ) act_obj.c: if ( victim->carry_weight + (get_obj_weight(obj)/obj->count) > can_carry_w( victim ) ) act_obj.c: * Damage an object. -Thoric act_obj.c: ch = obj->carried_by; act_obj.c: if ( !IS_NPC(ch) && (!IS_PKILL(ch) || (IS_PKILL(ch) && !IS_SET(ch->pcdata->flags, PCFLAG_GAG))) ) act_obj.c: if ( obj->in_room && ( ch = obj->in_room->first_person ) != NULL ) act_obj.c: if( obj->item_type != ITEM_LIGHT && !IS_OBJ_STAT( obj, ITEM_NOSCRAP ) && !in_arena( ch ) ) act_obj.c: switch( obj->item_type ) act_obj.c: if (--obj->value[3] <= 0) act_obj.c: obj->value[3] = 1; act_obj.c: if (--obj->value[0] <= 0) act_obj.c: obj->value[0] = 1; act_obj.c: if ( ch && obj->value[0] >= 1 ) act_obj.c: ch->armor += apply_ac( obj, obj->wear_loc ); act_obj.c: if (--obj->value[0] <= 0) act_obj.c: obj->value[0] = 1; act_obj.c: ch->armor -= apply_ac( obj, obj->wear_loc ); act_obj.c: if ( ch && obj->value[0] >= 1 ) act_obj.c: ch->armor -= apply_ac( obj, obj->wear_loc ); act_obj.c: if (--obj->value[0] <= 0) act_obj.c: obj->value[0] = 1; act_obj.c: && ch->carry_number + get_obj_number( obj ) > can_carry_n( ch ) ) act_obj.c: ch, NULL, obj->name, TO_CHAR ); act_obj.c: tmpobj->wear_loc = WEAR_WIELD; act_obj.c: * See if char could be capable of dual-wielding -Thoric act_obj.c: if ( IS_NPC(ch) || ch->pcdata->learned[gsn_dual_wield] ) act_obj.c: * See if char can dual wield at this time -Thoric act_obj.c: sh_int objlayers = obj->pIndexData->layers; act_obj.c: for ( otmp = ch->first_carrying; otmp; otmp = otmp->next_content ) act_obj.c: if ( otmp->wear_loc == wear_loc ) act_obj.c: if ( !otmp->pIndexData->layers ) act_obj.c: bitlayers |= otmp->pIndexData->layers; act_obj.c: * Restructured a bit to allow for specifying body location -Thoric act_obj.c: if ( (get_trust( ch ) < obj->level) && (obj->level >= LEVEL_IMMORTAL) ) act_obj.c: obj->level ); act_obj.c: }*/ /* -- Removing levels and such, no need for them -- Scion */ act_obj.c: * objects above level 50 -- Kratas act_obj.c: * -Garinan act_obj.c: if( ch->level2 == -1 && obj->level > get_trust( ch ) ) act_obj.c: obj->level ); act_obj.c: /* Note, ch->level HAS to be used as opposed to get_trust because ch->level act_obj.c: else if( ch->level2 != -1 && obj->level > ch->level && !IS_IMMORTAL( ch ) ) act_obj.c: obj->level ); act_obj.c: || ( IS_OBJ_STAT(obj, ITEM_ANTI_VAMPIRE) && ch->race == RACE_VAMPIRE ) act_obj.c: if ( wear_bit > -1 ) act_obj.c: for ( bit = -1, tmp = 1; tmp < 31; tmp++ ) act_obj.c: /* currently cannot have a light in non-light position */ act_obj.c: if ( obj->item_type == ITEM_LIGHT ) act_obj.c: if ( bit == -1 ) act_obj.c: bug( "wear_obj: uknown/unused item_wear bit %d. %s room %d", bit, ch->name, ch->in_room->vnum ); act_obj.c: if ( obj->item_type == ITEM_MISSILE_WIELD ) act_obj.c: act( AT_ACTION, "$n dual-wields $p.", ch, obj, NULL, TO_ROOM ); act_obj.c: act( AT_ACTION, "You dual-wield $p.", ch, obj, NULL, TO_CHAR ); act_obj.c: if ( obj->item_type == ITEM_WAND act_obj.c: || obj->item_type == ITEM_STAFF act_obj.c: || obj->item_type == ITEM_FOOD act_obj.c: || obj->item_type == ITEM_COOK act_obj.c: || obj->item_type == ITEM_PILL act_obj.c: || obj->item_type == ITEM_POTION act_obj.c: || obj->item_type == ITEM_SCROLL act_obj.c: || obj->item_type == ITEM_DRINK_CON act_obj.c: || obj->item_type == ITEM_BLOOD act_obj.c: || obj->item_type == ITEM_PIPE act_obj.c: || obj->item_type == ITEM_HERB act_obj.c: || obj->item_type == ITEM_KEY act_obj.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if ( obj->wear_loc == WEAR_NONE && can_see_obj( ch, obj ) ) act_obj.c: wear_obj( ch, obj, FALSE, -1 ); act_obj.c: wear_bit = -1; act_obj.c: for ( obj = ch->first_carrying; obj != NULL ; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if ( obj->wear_loc != WEAR_NONE && can_see_obj ( ch, obj ) ) act_obj.c: remove_obj ( ch, obj->wear_loc, TRUE ); act_obj.c: if ( (obj_next=get_eq_char(ch, obj->wear_loc)) != obj ) act_obj.c: remove_obj( ch, obj->wear_loc, TRUE ); act_obj.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) act_obj.c: if ( obj->item_type == ITEM_SHOVEL ) act_obj.c: obj = get_obj_list_rev( ch, arg, ch->in_room->last_content ); act_obj.c: || IS_NPC(ch) || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) act_obj.c: switch( ch->in_room->sector_type ) act_obj.c: if ( obj->weight > (UMAX(5, (can_carry_w(ch) / 10))) act_obj.c: move = (obj->weight * 50 * (shovel ? 1 : 5)) / UMAX(1, can_carry_w(ch)); act_obj.c: if ( move > ch->move ) act_obj.c: ch->move -= move; act_obj.c: if ( obj->item_type == ITEM_CORPSE_NPC act_obj.c: || obj->item_type == ITEM_CORPSE_PC ) act_obj.c: xSET_BIT( obj->extra_flags, ITEM_BURIED ); act_obj.c: if ( IS_SET( obj->magic_flags, ITEM_PKDISARMED ) ) act_obj.c: if ( ch->level - obj->value[5] > 5 act_obj.c: || obj->value[5] - ch->level > 5 ) act_obj.c: obj->short_descr ); act_obj.c:// if( obj->first_content ) act_obj.c: obj->short_descr ); act_obj.c: for( tmpObj = obj->first_content ; tmpObj ; tmpObj = tmpObj->next ) act_obj.c: obj_to_room( tmpObj, ch->in_room ); act_obj.c: ch->gold += 1; act_obj.c: if ( obj->item_type == ITEM_CORPSE_NPC act_obj.c: || obj->item_type == ITEM_CORPSE_PC ) act_obj.c: if ( cur_obj == obj->serial ) act_obj.c: if ( arg[0] == '\0' || !str_cmp( arg, ch->name ) ) act_obj.c: if ( !IS_NPC( ch ) && ch->pcdata->deity && ch->pcdata->deity->name[0] != '\0' ) act_obj.c: strcpy( name, ch->pcdata->deity->name ); act_obj.c: else if ( !IS_NPC( ch ) && ch->pcdata->clan && ch->pcdata->clan->deity[0] != '\0' ) act_obj.c: strcpy( name, ch->pcdata->clan->deity ); act_obj.c: for( obj = ch->in_room->first_content ; obj ; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if( !IS_SET(obj->wear_flags, ITEM_TAKE) && obj->item_type != ITEM_CORPSE_NPC ) act_obj.c: amount = obj->count; act_obj.c: obj = get_obj_list_rev( ch, arg, ch->in_room->last_content ); act_obj.c: * Allow saccing of any item that is able to be picked up -- Kratas act_obj.c: * if ( obj->item_type != ITEM_CORPSE_NPC ) act_obj.c: if( !IS_SET(obj->wear_flags, ITEM_TAKE) && obj->item_type != ITEM_CORPSE_NPC ) act_obj.c: if ( staff->item_type != ITEM_STAFF ) act_obj.c: if ( ( sn = staff->value[3] ) < 0 act_obj.c: || skill_table[sn]->spell_fun == NULL ) act_obj.c: bug( "Do_brandish: bad sn %d on object vnum %d.", sn, staff->pIndexData->vnum ); act_obj.c: if ( staff->value[2] > 0 ) act_obj.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) act_obj.c: vch_next = vch->next_in_room; act_obj.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) act_obj.c: && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) act_obj.c: switch ( skill_table[sn]->target ) act_obj.c: retcode = obj_cast_spell( staff->value[3], staff->value[0], ch, vch, NULL ); act_obj.c: if ( --staff->value[2] <= 0 ) act_obj.c: if ( staff->serial == cur_obj ) act_obj.c: if ( arg[0] == '\0' && !ch->fighting ) act_obj.c: if ( wand->item_type != ITEM_WAND ) act_obj.c: if ( ch->fighting ) act_obj.c: if ( wand->value[2] > 0 ) act_obj.c: retcode = obj_cast_spell( wand->value[3], wand->value[0], ch, victim, obj ); act_obj.c: if ( --wand->value[2] <= 0 ) act_obj.c: if ( wand->serial == cur_obj ) act_obj.c: * Save items in a clan storage room -Scryn & Thoric act_obj.c: sprintf( filename, "%s%s.vault", CLAN_DIR, clan->filename ); act_obj.c: templvl = ch->level; act_obj.c: ch->level = LEVEL_HERO; /* make sure EQ doesn't get lost */ act_obj.c: contents = ch->in_room->last_content; act_obj.c: ch->level = templvl; act_obj.c: if ( ch->level < 3 ) act_obj.c: && auction->item == NULL act_obj.c: if (auction->item != NULL) act_obj.c: obj = auction->item; act_obj.c: if (auction->bet > 0) act_obj.c: sprintf (buf, "\n\rCurrent bid on this item is %d gold.\n\r",auction->bet); act_obj.c:/* spell_identify (0, LEVEL_HERO - 1, ch, auction->item); */ act_obj.c: obj->name, act_obj.c: extra_bit_name( &obj->extra_flags ), act_obj.c:/* magic_bit_name( obj->magic_flags ), -- currently unused */ act_obj.c: obj->weight, act_obj.c: obj->cost, act_obj.c: obj->level ); act_obj.c: if ( obj->item_type != ITEM_LIGHT && obj->wear_flags-1 > 0 ) act_obj.c: flag_string(obj->wear_flags -1, w_flags ) ); act_obj.c: switch ( obj->item_type ) act_obj.c: ch_printf( ch, "%s appears to %s.\n\r", capitalize(obj->short_descr), act_obj.c: obj->value[0] < 76 ? "have a small capacity" : act_obj.c: obj->value[0] < 150 ? "have a small to medium capacity" : act_obj.c: obj->value[0] < 300 ? "have a medium capacity" : act_obj.c: obj->value[0] < 500 ? "have a medium to large capacity" : act_obj.c: obj->value[0] < 751 ? "have a large capacity" : act_obj.c: sprintf( buf, "Level %d spells of:", obj->value[0] ); act_obj.c: if ( obj->value[1] >= 0 && obj->value[1] < top_sn ) act_obj.c: send_to_char( skill_table[obj->value[1]]->name, ch ); act_obj.c: if ( obj->value[2] >= 0 && obj->value[2] < top_sn ) act_obj.c: send_to_char( skill_table[obj->value[2]]->name, ch ); act_obj.c: if ( obj->value[3] >= 0 && obj->value[3] < top_sn ) act_obj.c: send_to_char( skill_table[obj->value[3]]->name, ch ); act_obj.c: obj->value[1], obj->value[2], obj->value[0] ); act_obj.c: if ( obj->value[3] >= 0 && obj->value[3] < top_sn ) act_obj.c: send_to_char( skill_table[obj->value[3]]->name, ch ); act_obj.c: obj->value[1], obj->value[2], act_obj.c: ( obj->value[1] + obj->value[2] ) / 2, act_obj.c: sprintf( buf, "Armor class is %d.\n\r", obj->value[0] ); act_obj.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) act_obj.c: for ( paf = obj->first_affect; paf; paf = paf->next ) act_obj.c: if ( (( obj->item_type == ITEM_CONTAINER || obj->item_type == ITEM_KEYRING act_obj.c: || obj->item_type == ITEM_QUIVER) && obj->first_content ) act_obj.c: && str_cmp( auction->seller->name, "Kratas" ) ) act_obj.c: show_list_to_char( obj->first_content, ch, TRUE, FALSE ); act_obj.c: auction->seller->name, auction->buyer->name, act_obj.c: (auction->going + 1)); act_obj.c: sprintf(buf, "Time left in round: %d.\n\r", auction->pulse); act_obj.c: if (auction->item == NULL) act_obj.c: auction->item->short_descr); act_obj.c: obj_to_char (auction->item, auction->seller); act_obj.c: save_char_obj(auction->seller); act_obj.c: auction->item = NULL; act_obj.c: if (auction->buyer != NULL && auction->buyer != auction->seller) /* return money to the buyer */ act_obj.c: auction->buyer->gold += auction->bet; act_obj.c: send_to_char ("Your money has been returned.\n\r",auction->buyer); act_obj.c: if (auction->item != NULL) act_obj.c:/* if ( ch->level < auction->item->level ) act_obj.c:-- Removing level limits slowly but surely -- Scion act_obj.c: if ( ch == auction->seller) act_obj.c: /* make - perhaps - a bet now */ act_obj.c: newbet = parsebet (auction->bet, arg2); act_obj.c: if (newbet < auction->starting) act_obj.c: is higher up - changed to 10000 for our high economy act_obj.c: if (newbet < (auction->bet + 10000)) act_obj.c: if (newbet > ch->gold) act_obj.c: /* Is it the item they really want to bid on? --Shaddai */ act_obj.c: !nifty_is_name( arg3, auction->item->name ) ) act_obj.c: if (auction->buyer != NULL && auction->buyer != auction->seller) act_obj.c: auction->buyer->gold += auction->bet; act_obj.c: ch->gold -= newbet; /* substract the gold - important :) */ act_obj.c: auction->buyer = ch; act_obj.c: auction->bet = newbet; act_obj.c: auction->going = 0; act_obj.c: auction->pulse = PULSE_AUCTION; /* start the auction over again */ act_obj.c: sprintf (buf,"A bid of %d gold has been received on %s.\n\r",newbet,auction->item->short_descr); act_obj.c: if (obj->timer > 0) act_obj.c: for(i = 0; i < AUCTION_MEM && auction->history[i]; i++) act_obj.c: if(auction->history[i] == obj->pIndexData) act_obj.c: auction->starting = 0; act_obj.c: if (auction->item == NULL) act_obj.c: switch (obj->item_type) act_obj.c: auction->item = obj; act_obj.c: auction->bet = 0; act_obj.c: auction->buyer = ch; act_obj.c: auction->seller = ch; act_obj.c: auction->pulse = PULSE_AUCTION; act_obj.c: auction->going = 0; act_obj.c: auction->starting = atoi(arg2); act_obj.c: memmove((char *) auction->history+sizeof(OBJ_INDEX_DATA *), act_obj.c: auction->history, (AUCTION_MEM - 1)*sizeof(OBJ_INDEX_DATA *)); act_obj.c: auction->history[0] = obj->pIndexData; act_obj.c: auction->hist_timer = 0; act_obj.c: if (auction->starting > 0) act_obj.c: auction->bet = auction->starting; act_obj.c: sprintf (buf, "A new item is being auctioned: %s at %d gold.", obj->short_descr, auction->starting); act_obj.c: act (AT_TELL, "Try again later - $p is being auctioned right now!",ch,auction->item,NULL,TO_CHAR); act_obj.c:/* Make objects in rooms that are nofloor fall - Scryn 1/23/96 */ act_obj.c: static bool is_falling; /* Stop loops from the call to obj_to_room() -- Altrag */ act_obj.c: if ( !obj->in_room || is_falling ) act_obj.c: if ( IS_SET( obj->in_room->room_flags, ROOM_NOFLOOR ) act_obj.c: pexit = get_exit( obj->in_room, DIR_DOWN ); act_obj.c: to_room = pexit->to_room; act_obj.c: if (obj->in_room == to_room) act_obj.c: to_room->vnum); act_obj.c: if (obj->in_room->first_person) act_obj.c: obj->in_room->first_person, obj, NULL, TO_ROOM ); act_obj.c: obj->in_room->first_person, obj, NULL, TO_CHAR ); act_obj.c: if (obj->in_room->first_person) act_obj.c: obj->in_room->first_person, obj, NULL, TO_ROOM ); act_obj.c: obj->in_room->first_person, obj, NULL, TO_CHAR ); act_obj.c: if (!IS_SET( obj->in_room->room_flags, ROOM_NOFLOOR ) && through ) act_obj.c:/* int dam = (int)9.81*sqrt(fall_count*2/9.81)*obj->weight/2; act_obj.c:*/ int dam = fall_count*obj->weight/2; act_obj.c: if ( obj->in_room->first_person && number_percent() > 15 ) act_obj.c: for ( rch = obj->in_room->first_person; rch; act_obj.c: rch = rch->next_in_room, chcnt++ ) act_obj.c: damage( vch, vch, dam*vch->level, TYPE_UNDEFINED ); act_obj.c: switch( obj->item_type ) act_obj.c: if ( (obj->value[0] - dam) <= 0 ) act_obj.c: if (obj->in_room->first_person) act_obj.c: obj->in_room->first_person, obj, NULL, TO_ROOM ); act_obj.c: obj->in_room->first_person, obj, NULL, TO_CHAR ); act_obj.c: obj->value[0] -= dam; act_obj.c: if (obj->in_room->first_person) act_obj.c: obj->in_room->first_person, obj, NULL, TO_ROOM ); act_obj.c: obj->in_room->first_person, obj, NULL, TO_CHAR ); act_obj.c: * blank. 7/6/98 -- Shaddai act_obj.c: obj = recursive_note_find(ch->first_carrying, argument); act_obj.c: if(obj->in_obj) act_obj.c: wear_obj(ch, obj, TRUE, -1); act_obj.c: switch(obj->item_type) act_obj.c: if ((subject = get_extra_descr( "_subject_", obj->first_extradesc))==NULL) act_obj.c: if(obj->first_content) act_obj.c: returned_obj = recursive_note_find(obj->first_content, argument); act_obj.c: return recursive_note_find(obj->next_content, argument); act_obj.c: bug( "Donation room %d is non-existant!", ROOM_VNUM_DONATE ); act_obj.c: if ( IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) act_obj.c: for ( clan = first_clan; clan; clan = clan->next ) act_obj.c: if ( clan->storeroom == ch->in_room->vnum ) act_obj.c: * Junk command installed by Samson 1-13-98 act_obj.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) act_obj.c: obj_next = obj->next_content; act_obj.c: if ( ( nifty_is_name( chk, obj->name ) ) act_obj.c: && obj->wear_loc == WEAR_NONE ) act_obj.c: if (!can_drop_obj(ch, obj) && ch->level < LEVEL_IMMORTAL ) act_obj.c:/* Connect pieces of an ITEM -- Originally from ACK! * act_obj.c: if ( first_ob->item_type != ITEM_PIECE || second_ob->item_type != ITEM_PIECE ) act_obj.c: if ( ( first_ob->value[0] == second_ob->pIndexData->vnum ) act_obj.c: || ( first_ob->value[1] == second_ob->pIndexData->vnum ) ) act_obj.c: new_ob = create_object( get_obj_index( first_ob->value[2] ), ch->level ); act_wiz.c: * -----------------------------------------------------------| (0...0) * act_wiz.c: * -----------------------------------------------------------| {o o} * act_wiz.c: * ------------------------------------------------------------------------ * act_wiz.c: * ------------------------------------------------------------------------ * act_wiz.c:#include "imc-mercbase.h" act_wiz.c:static int bpid = -1; act_wiz.c: "Bald", "Crew-Cut", "Short", "Medium", "Long", "Waist" act_wiz.c: "Aqua", "Brown", "Green", "Teal", "Blue-Green", "Hazel", "Blue", act_wiz.c: "Hazel-Blue", "Hazel-Green", "Light Brown", "Baby Blue", act_wiz.c: "Jade", "Red", "Blood-Red", "Silver" act_wiz.c: return -1; act_wiz.c: for( d = first_descriptor ; d ; d = d->next ) act_wiz.c:// for ( vch = first_char; vch; vch = vch->next ) act_wiz.c: if( !d->character ) act_wiz.c: vch = d->character; act_wiz.c: /* pager_printf( ch, "Saving %-s...\n\r", vch->name ); */ act_wiz.c: for ( tarea = first_build; tarea; tarea = tarea->next ) act_wiz.c: if ( !IS_SET(tarea->status, AREA_LOADED ) ) act_wiz.c: sprintf( filename, "%s%s", BUILD_DIR, tarea->filename ); act_wiz.c: for ( pHelp = first_help; pHelp; pHelp = pHelp->next ) act_wiz.c: pHelp->level, pHelp->keyword, help_fix(pHelp->text) ); act_wiz.c: sprintf( fname, "%s%s", WATCH_DIR, strlower( ch->name ) ); act_wiz.c: sprintf( fname, "%s%s", WATCH_DIR, strlower( ch->name ) ); act_wiz.c: sprintf( fname, "%s%s", WATCH_DIR, strlower( ch->name ) ); act_wiz.c: pager_printf( ch, "%-12s %-14s %-15s\n\r", act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( get_trust(ch) >= pw->imm_level ) act_wiz.c: pager_printf( ch, "%-14s %-12s %-15s\n\r", act_wiz.c: pw->imm_name, pw->target_name?pw->target_name:" ", act_wiz.c: pw->player_site?pw->player_site:" " ); act_wiz.c: pager_printf( ch, "%-3s %-12s %-14s %-15s\n\r", act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( !str_cmp(ch->name, pw->imm_name) ) act_wiz.c: pager_printf( ch, "%3d %-12s %-14s %-15s\n\r", act_wiz.c: ++cou, pw->imm_name, pw->target_name?pw->target_name:" ", act_wiz.c: pw->player_site?pw->player_site:" " ); act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( !str_cmp(ch->name, pw->imm_name) ) act_wiz.c: /* Oops someone forgot to clear up the memory --Shaddai */ act_wiz.c: if ( pw->imm_name ) DISPOSE ( pw->imm_name ); act_wiz.c: if ( pw->player_site ) DISPOSE( pw->player_site ); act_wiz.c: if ( pw->target_name ) DISPOSE( pw->target_name ); act_wiz.c: * pointer -- Shaddai act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( !str_cmp(ch->name, pw->imm_name) act_wiz.c: && pw->target_name act_wiz.c: && !str_cmp(arg2 , pw->target_name) ) act_wiz.c: pinsert->imm_level = get_trust(ch); act_wiz.c: pinsert->imm_name = str_dup( strlower( ch->name ) ); act_wiz.c: pinsert->target_name = str_dup( strlower( arg2 ) ); act_wiz.c: pinsert->player_site = NULL; act_wiz.c: /* so I do a str_cmp to make sure it finds the right player --Gorog */ act_wiz.c: if ( (!IS_NPC(vic)) && !str_cmp(arg2, vic->name) ) act_wiz.c: SET_BIT( vic->pcdata->flags, PCFLAG_WATCH ); act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( strcmp(pinsert->imm_name, pw->imm_name) < 0 ) act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( !str_cmp(ch->name, pw->imm_name) act_wiz.c: && pw->player_site act_wiz.c: && !str_cmp(arg2 , pw->player_site) ) act_wiz.c: pinsert->imm_level = get_trust(ch); act_wiz.c: pinsert->imm_name = str_dup( strlower( ch->name ) ); act_wiz.c: pinsert->player_site = str_dup( strlower( arg2 ) ); act_wiz.c: pinsert->target_name = NULL; act_wiz.c: for ( vic = first_char; vic; vic = vic->next ) act_wiz.c: if ( !IS_NPC(vic) && vic->desc && *pinsert->player_site act_wiz.c: && !str_prefix( pinsert->player_site, vic->desc->host ) act_wiz.c: && get_trust(vic) < pinsert->imm_level ) act_wiz.c: SET_BIT( vic->pcdata->flags, PCFLAG_WATCH ); act_wiz.c: for ( pw = first_watch; pw; pw = pw->next ) act_wiz.c: if ( strcmp(pinsert->imm_name, pw->imm_name) < 0 ) act_wiz.c: * Watch a specific command - FB act_wiz.c: for(pw = first_watch; pw; pw = pw->next) act_wiz.c: if(!str_cmp(ch->name, pw->imm_name) act_wiz.c: && pw->target_name act_wiz.c: && !str_cmp(arg2, pw->target_name)) act_wiz.c: for(cmd = command_hash[LOWER(arg2[0])%126]; cmd; cmd = cmd->next ) act_wiz.c: if(!strcmp(arg2, cmd->name)) act_wiz.c: SET_BIT(cmd->flags, CMD_WATCH); act_wiz.c: pinsert->imm_level = get_trust(ch); act_wiz.c: pinsert->imm_name = str_dup(strlower(ch->name)); act_wiz.c: pinsert->player_site = NULL; act_wiz.c: pinsert->target_name = str_dup(arg2); act_wiz.c: for(pw = first_watch; pw; pw = pw->next) act_wiz.c: if(strcmp(pinsert->imm_name, pw->imm_name) < 0) act_wiz.c: for ( cmd = command_hash[hash]; cmd; cmd = cmd->next ) act_wiz.c: if ( cmd->level >= LEVEL_HERO act_wiz.c: && cmd->level <= get_trust( ch ) ) act_wiz.c: pager_printf( ch, "%-12s", cmd->name ); act_wiz.c: * for(level = LEVEL_IMMORTAL - 1; level <= LEVEL_SUPREME + 1; level++ ) act_wiz.c: for( level = LEVEL_IMMORTAL -1 ; level <= get_trust( ch ) ; level ++ ) act_wiz.c: for ( cmd = command_hash[hash]; cmd; cmd = cmd->next ) act_wiz.c: if ( cmd->level >= LEVEL_HERO act_wiz.c: && cmd->level <= get_trust( ch ) act_wiz.c: && cmd->level == level ) act_wiz.c: pager_printf( ch, "%-12s", cmd->name ); act_wiz.c: for ( cmd = command_hash[hash]; cmd; cmd = cmd->next ) act_wiz.c: if ( !str_prefix( arg, cmd->name ) act_wiz.c: && cmd->level <= get_trust( ch ) ) act_wiz.c: sprintf(buf, "%s show", cmd->name); act_wiz.c:/* ch_printf( ch, "%s is at level %d.\n\r", cmd->name, cmd->level );*/ act_wiz.c: cmd->level = level; act_wiz.c: cmd->name, level ); act_wiz.c: ch->name, cmd->name, level ); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( d->character && (!str_prefix( name, d->character->name )) && act_wiz.c: IS_WAITING_FOR_AUTH(d->character) ) act_wiz.c: ret_char = d->character; /* return current char on exit */ act_wiz.c: send_to_char( "---------------------------------------------\n\r", ch ); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( (victim = d->character) != NULL && IS_WAITING_FOR_AUTH(victim) ) act_wiz.c: victim->name, act_wiz.c: victim->desc->host, act_wiz.c: race_table[victim->race]->race_name, act_wiz.c: class_table[victim->class]->who_name ); act_wiz.c: victim->pcdata->auth_state = 3; act_wiz.c: if ( victim->pcdata->authed_by ) act_wiz.c: STRFREE( victim->pcdata->authed_by ); act_wiz.c: victim->pcdata->authed_by = QUICKLINK( ch->name ); act_wiz.c: sprintf( buf, "%s: authorized", victim->name); act_wiz.c: ch_printf( ch, "You have authorized %s.\n\r", victim->name); act_wiz.c: /* Below sends a message to player when name is accepted - Brittany */ act_wiz.c: "this area.\n\r", victim->name); act_wiz.c: sprintf( buf, "%s: denied authorization", victim->name); act_wiz.c: ch_printf( ch, "You have denied %s.\n\r", victim->name); act_wiz.c: victim->pcdata->auth_state = 2; act_wiz.c: sprintf( buf, "%s: name denied", victim->name); act_wiz.c: "Immortal's name.\n\r", victim->name); act_wiz.c: ch_printf( ch, "You requested %s change names.\n\r", victim->name); act_wiz.c: DISPOSE( ch->pcdata->bamfin ); act_wiz.c: ch->pcdata->bamfin = str_dup( argument ); act_wiz.c: strcpy(newbamf, ch->name); act_wiz.c: strcat(newbamf, ch->name); act_wiz.c: a+=strlen(ch->name); act_wiz.c: DISPOSE( ch->pcdata->bamfin ); act_wiz.c: ch->pcdata->bamfin = str_dup( newbamf ); act_wiz.c: DISPOSE( ch->pcdata->bamfout ); act_wiz.c: ch->pcdata->bamfout = str_dup( argument ); act_wiz.c: strcpy(newbamf, ch->name); act_wiz.c: strcat(newbamf, ch->name); act_wiz.c: a+=strlen(ch->name); act_wiz.c: DISPOSE( ch->pcdata->bamfout ); act_wiz.c: ch->pcdata->bamfout = str_dup( newbamf ); act_wiz.c: if( ch->level2 != -1 ) act_wiz.c: if( ch->level < LEVEL_PCAVATAR ) act_wiz.c: DISPOSE( ch->pcdata->rank ); act_wiz.c: ch->pcdata->rank = str_dup( "" ); act_wiz.c: ch->pcdata->rank = str_dup( argument ); act_wiz.c: if ( victim->level < LEVEL_SAVIOR ) act_wiz.c: REMOVE_BIT( victim->pcdata->flags, PCFLAG_RETIRED ); act_wiz.c: ch_printf( ch, "%s returns from retirement.\n\r", victim->name ); act_wiz.c: ch_printf( victim, "%s brings you back from retirement.\n\r", ch->name ); act_wiz.c: SET_BIT( victim->pcdata->flags, PCFLAG_RETIRED ); act_wiz.c: ch_printf( ch, "%s is now a retired immortal.\n\r", victim->name ); act_wiz.c: ch_printf( victim, "Courtesy of %s, you are now a retired immortal.\n\r", ch->name ); act_wiz.c: victim->wait = 0; act_wiz.c: ch_printf( ch, "You've delayed %s for %d rounds.\n\r", victim->name, delay ); act_wiz.c: xSET_BIT(victim->act, PLR_DENY); act_wiz.c: ch_printf( ch, "You have denied access to %s.\n\r", victim->name ); act_wiz.c: if ( victim->fighting ) act_wiz.c: if ( victim->desc == NULL ) act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( d == victim->desc ) act_wiz.c: if ( victim->level != 1 ) act_wiz.c: if ( victim->fighting ) act_wiz.c: ch_printf( ch, "You have forced %s to quit.\n\r", victim->name ); act_wiz.c: /* this is a nasty and dangerous command , so , log it - shogar */ act_wiz.c: sprintf(arg,"Forceclose issued by %s on %s",ch->name,argument); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( d->descriptor == desc ) act_wiz.c: if ( d->character && get_trust(d->character) >= get_trust(ch) ) act_wiz.c: and polymorphed-shogar also beware extracted chars */ act_wiz.c: if(! d->character) act_wiz.c: if(d->original || d->character->switched) act_wiz.c: if ( xIS_SET(victim->act, PLR_ATTACKER) ) act_wiz.c: xREMOVE_BIT( victim->act, PLR_ATTACKER ); act_wiz.c: ch_printf( ch, "Attacker flag removed from %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_KILLER) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_KILLER ); act_wiz.c: ch_printf( ch, "Killer flag removed from %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_THIEF) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_THIEF ); act_wiz.c: ch_printf( ch, "Thief flag removed from %s.\n\r", victim->name ); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: miss out on important info like upcoming reboots. --Narn */ act_wiz.c: if ( d->connected == CON_PLAYING || d->connected == CON_EDITING act_wiz.c: || ( d->connected >= CON_NOTE_TO act_wiz.c: && d->connected <= CON_NOTE_FINISH)) act_wiz.c: if ( tar == ECHOTAR_PC && IS_NPC(d->character) ) act_wiz.c: else if ( tar == ECHOTAR_IMM && !IS_IMMORTAL(d->character) ) act_wiz.c: set_char_color( AT_COLOR, d->character ); act_wiz.c: send_to_char( argument, d->character ); act_wiz.c: send_to_char( "\n\r", d->character ); act_wiz.c: if ( xIS_SET(ch->act, PLR_NO_EMOTE) ) { act_wiz.c: for ( vic = room->first_person; vic; vic = vic->next_in_room ) act_wiz.c: if ( xIS_SET(ch->act, PLR_NO_EMOTE) ) { act_wiz.c: echo_to_room ( color, ch->in_room, argument ); act_wiz.c: echo_to_room ( AT_IMMORT, ch->in_room, argument ); act_wiz.c: return victim->in_room; act_wiz.c: return obj->in_room; act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( d->connected == CON_PLAYING act_wiz.c: && d->character != ch act_wiz.c: && d->character->in_room act_wiz.c: && d->newstate != 2 act_wiz.c: && can_see( ch, d->character ) ) act_wiz.c: sprintf( buf, "%s %s", d->character->name, arg2 ); act_wiz.c: location = ch->in_room; act_wiz.c: if ( !victim->in_room ) act_wiz.c: if(!IS_NPC(victim) && IS_SET(victim->pcdata->flags,PCFLAG_IMMPROOF)) act_wiz.c: send_to_char("They will have to CONFIG -IMMPROOF first\n\r",ch); act_wiz.c: if ( victim->fighting ) act_wiz.c: victim->retran = victim->in_room->vnum; act_wiz.c: && !in_hard_range( victim, location->area ) ) act_wiz.c: sprintf(buf, "'%s' %d", victim->name, victim->retran); act_wiz.c: sprintf(buf, "%d", ch->regoto); act_wiz.c: * --Shaddai act_wiz.c: || !IS_NPC(wch) || wch->in_room == NULL) act_wiz.c: location = wch->in_room; act_wiz.c: original = ch->in_room; act_wiz.c: || !obj->in_room ) act_wiz.c: location = obj->in_room; act_wiz.c: original = ch->in_room; act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if(( d->connected != CON_PLAYING act_wiz.c: && d->connected != CON_EDITING) act_wiz.c: || ( d->connected <= CON_NOTE_TO act_wiz.c: && d->connected >= CON_NOTE_FINISH) act_wiz.c: || !can_see( ch, d->character ) || str_cmp(d->character->name,arg)) act_wiz.c: location = d->character->in_room; act_wiz.c: original = ch->in_room; act_wiz.c: original = ch->in_room; act_wiz.c: location = ch->in_room; act_wiz.c: location->name, location->vnum ); act_wiz.c: for ( cnt = 0, pexit = location->first_exit; pexit; pexit = pexit->next ) act_wiz.c: "&W%2d) &w%2s to %-5d &cKey: &w%d &cFlags: &w%d &cKeywords: '&w%s&c'\n\r Exdesc: &w%s\n\r &cBack link: &w%d &cVnum: &w%d &cDistance: &w%d &cPulltype: &w%s &cPull: &w%d\n\r", act_wiz.c: dir_text[pexit->vdir], act_wiz.c: pexit->to_room ? pexit->to_room->vnum : 0, act_wiz.c: pexit->key, act_wiz.c: pexit->exit_info, act_wiz.c: pexit->keyword, act_wiz.c: pexit->description[0] != '\0' act_wiz.c: ? pexit->description : "(none).\n\r", act_wiz.c: pexit->rexit ? pexit->rexit->vnum : 0, act_wiz.c: pexit->rvnum, act_wiz.c: pexit->distance, act_wiz.c: pull_type_name(pexit->pulltype), act_wiz.c: pexit->pull ); act_wiz.c: location = ( arg[0] == '\0' ) ? ch->in_room : find_location( ch, arg ); act_wiz.c: if ( ch->in_room != location && room_is_private( location ) ) act_wiz.c: location->name, act_wiz.c: location->area ? location->area->name : "None????", act_wiz.c: location->area ? location->area->filename : "None????" ); act_wiz.c: switch( ch->in_room->sector_type ) { act_wiz.c: location->vnum, act_wiz.c: location->sector_type, act_wiz.c: location->light ); act_wiz.c: if ( location->tunnel > 0 ) act_wiz.c: ch_printf_color( ch, " &cTunnel: &W%d", location->tunnel ); act_wiz.c: if ( location->tele_delay > 0 || location->tele_vnum > 0 ) act_wiz.c: location->tele_delay, act_wiz.c: location->tele_vnum ); act_wiz.c: flag_string(location->room_flags, r_flags) ); act_wiz.c: if( !ch->in_room->compress ) act_wiz.c: ch_printf_color( ch, "&cDescription:\n\r&w%s", location->description ); act_wiz.c: decompressRoom( ch->in_room ); act_wiz.c: ch_printf_color( ch, "&cDescription:\n\r&w%s", location->uncomp_desc ); act_wiz.c: DISPOSE( ch->in_room->uncomp_desc ); act_wiz.c: showRoom( ch, ch->in_room ); act_wiz.c: if ( location->first_extradesc ) act_wiz.c: for ( ed = location->first_extradesc; ed; ed = ed->next ) act_wiz.c: send_to_char( ed->keyword, ch ); act_wiz.c: if ( ed->next ) act_wiz.c: for ( paf = location->first_affect; paf; paf = paf->next ) act_wiz.c: affect_loc_name( paf->location ), paf->modifier ); act_wiz.c:/* lets see if we can make life easier , show the progtypes - shogar */ act_wiz.c: ext_flag_string(&location->progtypes,mprog_flags)); act_wiz.c: for ( rch = location->first_person; rch; rch = rch->next_in_room ) act_wiz.c: one_argument( rch->name, buf ); act_wiz.c: for ( obj = location->first_content; obj; obj = obj->next_content ) act_wiz.c: one_argument( obj->name, buf ); act_wiz.c: if ( location->first_exit ) act_wiz.c: send_to_char_color( "&c------------------- &wEXITS &c-------------------\n\r", ch ); act_wiz.c: for ( cnt = 0, pexit = location->first_exit; pexit; pexit = pexit->next ) act_wiz.c: "%2d) %-2s to %-5d. Key: %d Flags: %d Keywords: %s.\n\r", act_wiz.c: dir_text[pexit->vdir], act_wiz.c: pexit->to_room ? pexit->to_room->vnum : 0, act_wiz.c: pexit->key, act_wiz.c: pexit->exit_info, act_wiz.c: pexit->keyword[0] != '\0' ? pexit->keyword : "(none)" ); act_wiz.c: /* lets see the exflags here - shogar */ act_wiz.c: ch_printf(ch," FlagsStr: %s\n",flag_string(pexit->exit_info,ex_flags)); act_wiz.c:/* Face-lift by Demora */ act_wiz.c: ch_printf_color( ch, "&cName: &C%s\n\r", obj->name ); act_wiz.c: ch_printf_color( ch, "&cVnum: &w%d ", obj->pIndexData->vnum ); act_wiz.c: ch_printf_color( ch, "&cCount: &w%d ", obj->pIndexData->count ); act_wiz.c: ch_printf_color( ch, "&cGcount: &w%d\n\r", obj->count ); act_wiz.c: ch_printf_color( ch, "&cSerial#: &w%d ", obj->serial ); act_wiz.c: ch_printf_color( ch, "&cTopIdxSerial#: &w%d ", obj->pIndexData->serial ); act_wiz.c: ch_printf_color( ch, "&cShort description: &C%s\n\r", obj->short_descr); act_wiz.c: ch_printf_color( ch, "&cLong description : &C%s\n\r", obj->description); act_wiz.c: if ( obj->action_desc[0] != '\0' ) act_wiz.c: ch_printf_color( ch, "&cAction description: &w%s\n\r", obj->action_desc ); act_wiz.c: ch_printf_color( ch, "&cWear flags : &w%s\n\r", flag_string(obj->wear_flags,w_flags) ); act_wiz.c: ch_printf_color( ch, "&cExtra flags: &w%s\n\r", ext_flag_string(&obj->extra_flags, o_flags) ); act_wiz.c: ch_printf_color( ch, "&cMagic flags: &w%s\n\r", magic_bit_name( obj->magic_flags ) ); act_wiz.c: ch_printf_color( ch, "&cWeight: &w%d/%d ", obj->weight, get_obj_weight(obj) ); act_wiz.c: ch_printf_color( ch, "&cLayers: &w%d ", obj->pIndexData->layers ); act_wiz.c: ch_printf_color( ch, "&cWear_loc: &w%d\n\r", obj->wear_loc ); act_wiz.c: ch_printf_color( ch, "&cCost: &Y%d ", obj->cost ); act_wiz.c: ch_printf_color( ch, "&cRent: &w%d ", obj->pIndexData->rent ); act_wiz.c: if ( obj->timer > 0 ) act_wiz.c: ch_printf_color( ch, "&R%d ", obj->timer ); act_wiz.c: ch_printf_color( ch, "&w%d ", obj->timer ); act_wiz.c: ch_printf_color( ch, "&cLevel: &P%d\n\r", obj->level ); act_wiz.c: ch_printf_color( ch, "&cIn room: &w%d ", obj->in_room == NULL ? 0 : obj->in_room->vnum ); act_wiz.c: ch_printf_color( ch, "&cIn object: &w%s ", obj->in_obj == NULL ? "(none)" : obj->in_obj->short_descr ); act_wiz.c: ch_printf_color( ch, "&cCarried by: &C%s\n\r", obj->carried_by == NULL ? "(none)" : obj->carried_by->name ); act_wiz.c: obj->pIndexData->value[0], obj->pIndexData->value[1], act_wiz.c: obj->pIndexData->value[2], obj->pIndexData->value[3], act_wiz.c: obj->pIndexData->value[4], obj->pIndexData->value[5] ); act_wiz.c: if(obj->pIndexData->item_type == ITEM_FURNITURE) act_wiz.c: ch_printf_color(ch,"&cFurnitureFlags: &w%s\n\r",flag_string(obj->pIndexData->value[2],fur_pos)); act_wiz.c: obj->value[0], obj->value[1], obj->value[2], obj->value[3], act_wiz.c: obj->value[4], obj->value[5] ); act_wiz.c: if(obj->item_type == ITEM_FURNITURE) act_wiz.c: ch_printf_color(ch,"&cFurnitureFlags: &w%s\n\r",flag_string(obj->value[2],fur_pos)); act_wiz.c: if ( obj->pIndexData->first_extradesc ) act_wiz.c: for ( ed = obj->pIndexData->first_extradesc; ed; ed = ed->next ) act_wiz.c: send_to_char( ed->keyword, ch ); act_wiz.c: if ( ed->next ) act_wiz.c: if ( obj->first_extradesc ) act_wiz.c: for ( ed = obj->first_extradesc; ed; ed = ed->next ) act_wiz.c: send_to_char( ed->keyword, ch ); act_wiz.c: if ( ed->next ) act_wiz.c:/* lets see if we can make life easier , show the progtypes - shogar */ act_wiz.c: ext_flag_string(&obj->pIndexData->progtypes,mprog_flags)); act_wiz.c: -- Kratas */ act_wiz.c: for ( count = 1, paf = obj->first_affect; paf; paf = paf->next, count++ ) act_wiz.c: count, affect_loc_name( paf->location ), paf->modifier ); act_wiz.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next, count++ ) act_wiz.c: count, affect_loc_name( paf->location ), paf->modifier ); act_wiz.c: pager_printf_color( ch, "\n\r&c%s: &C%-20s", IS_NPC(victim) ? "Mobile name" : "Name", victim->name ); act_wiz.c: pager_printf_color( ch, "&cStatus : &w%-10s", CAN_PKILL(victim) ? "Deadly" : act_wiz.c: IS_PKILL(victim) ? "Pre-Deadly" : "Non-Deadly" ); -- Scion */ act_wiz.c: if ( !IS_NPC(victim) && victim->pcdata->clan ) act_wiz.c: victim->pcdata->clan->clan_type == CLAN_ORDER ? "Order" : act_wiz.c: victim->pcdata->clan->clan_type == CLAN_GUILD ? "Guild" : "Clan", act_wiz.c: victim->pcdata->clan->name ); act_wiz.c: if ( get_trust(ch) >= LEVEL_GOD && !IS_NPC(victim) && victim->desc ) act_wiz.c: victim->desc->user, victim->desc->host, victim->desc->descriptor, act_wiz.c: victim->trust, victim->pcdata->authed_by != NULL ? act_wiz.c: victim->pcdata->authed_by : "(unknown)" ); act_wiz.c: if ( !IS_NPC(victim) && victim->pcdata->release_date != 0 ) act_wiz.c: ctime(&victim->pcdata->release_date), act_wiz.c: victim->pcdata->helled_by); act_wiz.c: pager_printf_color( ch, "&cVnum: &w%-5d &cSex: &w%-6s &cRoom: &w%-5d &cCount: &w%d &cKilled: &w%d\n\r", act_wiz.c: IS_NPC(victim) ? victim->pIndexData->vnum : 0, act_wiz.c: victim->sex == SEX_MALE ? "male" : act_wiz.c: victim->sex == SEX_FEMALE ? "female" : "neutral", act_wiz.c: victim->in_room == NULL ? 0 : victim->in_room->vnum, act_wiz.c: IS_NPC(victim) ? victim->pIndexData->count : 1, act_wiz.c: IS_NPC(victim) ? victim->pIndexData->killed act_wiz.c: : victim->pcdata->mdeaths + victim->pcdata->pdeaths ); act_wiz.c: if ( victim->class < MAX_NPC_CLASS && (victim->class >= 0 || victim->class2 >= 0) act_wiz.c: && victim->race < MAX_NPC_RACE && victim->race >= 0 ) act_wiz.c: pager_printf_color( ch, "&cLevel : &P%-3d &cClass : &w%-2.2d/%-10s &cRace : &w%-2.2d/%-10s\n\r", act_wiz.c: victim->level, act_wiz.c: victim->class, act_wiz.c: npc_class[victim->class], act_wiz.c: victim->race, act_wiz.c: npc_race[victim->race] /*, act_wiz.c: victim->position*/ ); act_wiz.c: pager_printf_color( ch, "&cLevel : &P%-3d &cClass : &w%-2.2d/%-10s\n\r", act_wiz.c: victim->level2, act_wiz.c: victim->class2, act_wiz.c: npc_class[victim->class2] ); act_wiz.c: sprintf( hpbuf, "%d/%d", victim->hit, victim->max_hit ); act_wiz.c: sprintf( mnbuf, "%d/%d", victim->mana, victim->max_mana ); act_wiz.c: sprintf( mvbuf, "%d/%d", victim->move, victim->max_move ); act_wiz.c: sprintf( bdbuf, "%d/%d", victim->pcdata->condition[COND_BLOODTHIRST], act_wiz.c: 10 + victim->level ); act_wiz.c: pager_printf_color( ch, "&cHps : &w%-12s &cBlood : &w%-12s &cMove : &w%-12s\n\r", act_wiz.c: pager_printf_color( ch, "&cHps : &w%-12s &cMana : &w%-12s &cMove : &w%-12s\n\r", act_wiz.c: pager_printf_color( ch, "&cHitroll : &C%-5d &cAlign : &w%-5d &cArmorClass: &w%d\n\r", act_wiz.c: get_hitroll( victim, TRUE ), victim->alignment, GET_AC(victim) ); act_wiz.c: pager_printf_color( ch, "&cDamroll : &C%-5d &cWimpy : &w%-5d &cPosition : &w%d\n\r", act_wiz.c: get_damroll( victim, TRUE ), victim->wimpy, victim->position ); act_wiz.c: pager_printf_color( ch, "&cFighting: &w%-13s &cMaster : &w%-13s &cLeader : &w%s\n\r", act_wiz.c: victim->fighting ? victim->fighting->who->name : "(none)", act_wiz.c: victim->master ? victim->master->name : "(none)", act_wiz.c: victim->leader ? victim->leader->name : "(none)" ); act_wiz.c: pager_printf_color( ch, "&cHating : &w%-13s &cHunting: &w%-13s &cFearing : &w%s\n\r", act_wiz.c: victim->hating ? victim->hating->name : "(none)", act_wiz.c: victim->hunting ? victim->hunting->name : "(none)", act_wiz.c: victim->fearing ? victim->fearing->name : "(none)" ); act_wiz.c: pager_printf_color( ch, "&cDeity : &w%-13s&w &cFavor : &w%-5d &cGlory : &w%-d (%d)\n\r", act_wiz.c: victim->pcdata->deity ? victim->pcdata->deity->name : "(none)", act_wiz.c: victim->pcdata->favor, act_wiz.c: victim->pcdata->quest_curr, act_wiz.c: victim->pcdata->quest_accum ); act_wiz.c: victim->pIndexData->hitnodice, act_wiz.c: victim->pIndexData->hitsizedice, act_wiz.c: victim->pIndexData->hitplus, act_wiz.c: victim->pIndexData->damnodice, act_wiz.c: victim->pIndexData->damsizedice, act_wiz.c: victim->pIndexData->damplus, act_wiz.c: victim->numattacks ); act_wiz.c: pager_printf_color( ch, "&cMentalState: &w%-3d &cEmotionalState: &w%-3d ", act_wiz.c: victim->mental_state, victim->emotional_state ); act_wiz.c: victim->pcdata->condition[COND_THIRST], act_wiz.c: victim->pcdata->condition[COND_FULL], act_wiz.c: victim->pcdata->condition[COND_DRUNK] ); act_wiz.c: victim->saving_poison_death, act_wiz.c: victim->saving_wand, act_wiz.c: victim->saving_para_petri, act_wiz.c: victim->saving_breath, act_wiz.c: victim->saving_spell_staff, act_wiz.c: victim->carry_number, act_wiz.c: victim->carry_weight, act_wiz.c: pager_printf_color( ch, "&cYear: &w%-5d &cSecs: &w%d &cTimer: &w%d &cGold: &Y%d &cBalance: &Y%d\n\r", act_wiz.c: get_age( victim ), (int) victim->played, victim->timer, victim->gold, act_wiz.c: IS_NPC(victim) ? 0 : victim->pcdata->balance ); act_wiz.c: if ( !IS_NPC(victim) && (victim->pcdata->council || victim->pcdata->council2) ) act_wiz.c: victim->pcdata->council_name, victim->pcdata->council2_name); act_wiz.c: pager_printf_color( ch, "&cAct Flags : &w%s\n\r", ext_flag_string(&victim->act, act_flags) ); act_wiz.c: pager_printf_color( ch, "&cPlayerFlags: &w%s\n\r", ext_flag_string( &victim->act, plr_flags ) ); act_wiz.c: pager_printf_color( ch, "&cPcflags : &w%s\n\r", flag_string( victim->pcdata->flags, pc_flags ) ); act_wiz.c: if ( victim->pcdata->nuisance ) act_wiz.c: pager_printf_color( ch, "&RNuisance &cStage: (&R%d&c/%d) Power: &w%d &cTime: &w%s.\n\r", victim->pcdata->nuisance->flags, act_wiz.c: MAX_NUISANCE_STAGE, victim->pcdata->nuisance->power, act_wiz.c: ctime(&victim->pcdata->nuisance->time)); act_wiz.c: if ( victim->morph ) act_wiz.c: if ( victim->morph->morph ) act_wiz.c: victim->morph->morph->vnum, victim->morph->morph->short_desc, act_wiz.c: victim->morph->timer ); act_wiz.c: affect_bit_name( &victim->affected_by ) ); act_wiz.c: victim->speaks, victim->speaking, victim->exp ); act_wiz.c: if ( !IS_NPC( victim ) && victim->wait ) act_wiz.c: victim->wait/12 ); act_wiz.c: || (IS_NPC(victim) && victim->speaks == 0) ) act_wiz.c: if ( IS_SET(lang_array[x], victim->speaking) act_wiz.c: || (IS_NPC(victim) && !victim->speaking) ) act_wiz.c: if ( IS_SET(lang_array[x], victim->speaking) act_wiz.c: || (IS_NPC(victim) && !victim->speaking) ) act_wiz.c: if (victim->practice) act_wiz.c: pager_printf_color( ch, "&cPractice Sessions: &w%d\n\r", victim->practice); act_wiz.c: if( !IS_NPC( victim ) && victim->pcdata->arena_wins != 0 ) act_wiz.c: victim->pcdata->arena_wins ); act_wiz.c: if ( victim->pcdata && victim->pcdata->bestowments act_wiz.c: && victim->pcdata->bestowments[0] != '\0' ) act_wiz.c: pager_printf_color( ch, "&cBestowments: &w%s\n\r", victim->pcdata->bestowments ); act_wiz.c: victim->short_descr != NULL ? victim->short_descr : "(none set)", act_wiz.c: victim->long_descr != NULL ? victim->long_descr : "(none set)\n\r" ); act_wiz.c: if ( victim->short_descr != NULL ) act_wiz.c: victim->short_descr ); act_wiz.c: if ( victim->long_descr != NULL ) act_wiz.c: victim->long_descr ); act_wiz.c: if ( IS_NPC(victim) && victim->spec_fun ) act_wiz.c: lookup_spec( victim->spec_fun ) ); act_wiz.c: flag_string(victim->xflags, part_flags) ); act_wiz.c: if ( victim->resistant > 0 ) act_wiz.c: pager_printf_color( ch, "&cResistant : &w%s\n\r", flag_string(victim->resistant, ris_flags) ); act_wiz.c: if ( victim->immune > 0 ) act_wiz.c: pager_printf_color( ch, "&cImmune : &w%s\n\r", flag_string(victim->immune, ris_flags) ); act_wiz.c: if ( victim->susceptible > 0 ) act_wiz.c: pager_printf_color( ch, "&cSusceptible: &w%s\n\r", flag_string(victim->susceptible, ris_flags) ); act_wiz.c: ext_flag_string(&victim->attacks, attack_flags) ); act_wiz.c: ext_flag_string(&victim->defenses, defense_flags) ); act_wiz.c:/* lets see if we can make life easier , show the progtypes - shogar */ act_wiz.c: ext_flag_string(&victim->pIndexData->progtypes,mprog_flags)); act_wiz.c: for ( paf = victim->first_affect; paf; paf = paf->next ) act_wiz.c: if ( (skill=get_skilltype(paf->type)) != NULL ) act_wiz.c: skill_tname[skill->type], act_wiz.c: skill->name, act_wiz.c: affect_loc_name( paf->location ), act_wiz.c: paf->modifier, act_wiz.c: paf->duration, act_wiz.c: affect_bit_name( &paf->bitvector ) act_wiz.c: * get_mob_index()... which loops itself, an average of 1-2 times... act_wiz.c: * -Thoric act_wiz.c: pMobIndex = pMobIndex->next ) act_wiz.c: if ( fAll || nifty_is_name( arg, pMobIndex->player_name ) ) act_wiz.c: pMobIndex->vnum, capitalize( pMobIndex->short_descr ) ); act_wiz.c: * get_obj_index()... which loops itself, an average of 2-3 times... act_wiz.c: * -Thoric act_wiz.c: pObjIndex = pObjIndex->next ) act_wiz.c: if ( fAll || nifty_is_name( arg, pObjIndex->name ) ) act_wiz.c: pObjIndex->vnum, capitalize( pObjIndex->short_descr ) ); act_wiz.c: for ( victim = first_char; victim; victim = victim->next ) act_wiz.c: && victim->in_room act_wiz.c: && nifty_is_name( arg, victim->name ) ) act_wiz.c: pager_printf( ch, "[%5d] %-28s [%5d] %s\n\r", act_wiz.c: victim->pIndexData->vnum, act_wiz.c: victim->short_descr, act_wiz.c: victim->in_room->vnum, act_wiz.c: victim->in_room->name ); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( (d->connected == CON_PLAYING || d->connected == CON_EDITING act_wiz.c: || ( d->connected >= CON_NOTE_TO act_wiz.c: && d->connected <= CON_NOTE_FINISH)) act_wiz.c: && ( victim = d->character ) != NULL && !IS_NPC(victim) && victim->in_room act_wiz.c: && victim->level >= low && victim->level <= high ) act_wiz.c: pager_printf_color( ch, "&c(&C%2d&c) &w%-12.12s [%-5d - %-19.19s] &c%-25.25s\n\r", act_wiz.c: victim->level, victim->name, victim->in_room->vnum, victim->in_room->area->name, victim->in_room->name ); act_wiz.c: for ( victim = first_char; victim; victim = victim->next ) act_wiz.c: && victim->in_room && can_see( ch, victim ) act_wiz.c: && victim->level >= low && victim->level <= high ) act_wiz.c: pager_printf_color( ch, "&c(&C%2d&c) &w%-12.12s [%-5d - %-19.19s] &c%-25.25s\n\r", act_wiz.c: victim->level, victim->name, victim->in_room->vnum, victim->in_room->area->name, victim->in_room->name ); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( (d->connected == CON_PLAYING || d->connected == CON_EDITING act_wiz.c: || ( d->connected >= CON_NOTE_TO act_wiz.c: && d->connected <= CON_NOTE_FINISH)) act_wiz.c: && ( victim = d->character ) != NULL && !IS_NPC( victim ) && victim->in_room act_wiz.c: && victim->fighting && victim->level >= low && victim->level <= high ) act_wiz.c: pager_printf_color( ch, "&w%-12.12s &C|%2d &wvs &C%2d| &w%-16.16s [%5d] &c%-20.20s [%5d]\n\r", act_wiz.c: victim->name, victim->level, victim->fighting->who->level, act_wiz.c: IS_NPC( victim->fighting->who ) ? victim->fighting->who->short_descr : victim->fighting->who->name, act_wiz.c: IS_NPC( victim->fighting->who ) ? victim->fighting->who->pIndexData->vnum : 0, act_wiz.c: victim->in_room->area->name, victim->in_room == NULL ? 0 : victim->in_room->vnum ); act_wiz.c: for ( victim = first_char; victim; victim = victim->next ) act_wiz.c: && victim->in_room && can_see( ch, victim ) act_wiz.c: && victim->fighting && victim->level >= low && victim->level <= high ) act_wiz.c: pager_printf_color( ch, "&w%-12.12s &C|%2d &wvs &C%2d| &w%-16.16s [%5d] &c%-20.20s [%5d]\n\r", act_wiz.c: victim->name, victim->level, victim->fighting->who->level, act_wiz.c: IS_NPC( victim->fighting->who ) ? victim->fighting->who->short_descr : victim->fighting->who->name, act_wiz.c: IS_NPC( victim->fighting->who ) ? victim->fighting->who->pIndexData->vnum : 0, act_wiz.c: victim->in_room->area->name, victim->in_room == NULL ? 0 : victim->in_room->vnum ); act_wiz.c: for ( victim = first_char; victim; victim = victim->next ) act_wiz.c: && victim->in_room && can_see( ch, victim ) act_wiz.c: && victim->hating && victim->level >= low && victim->level <= high ) act_wiz.c: pager_printf_color( ch, "&w%-12.12s &C|%2d &wvs &C%2d| &w%-16.16s [%5d] &c%-20.20s [%5d]\n\r", act_wiz.c: victim->name, victim->level, victim->hating->who->level, IS_NPC( victim->hating->who ) ? act_wiz.c: victim->hating->who->short_descr : victim->hating->who->name, IS_NPC( victim->hating->who ) ? act_wiz.c: victim->hating->who->pIndexData->vnum : 0, victim->in_room->area->name, victim->in_room == NULL ? 0 : act_wiz.c: victim->in_room->vnum ); act_wiz.c: for ( victim = first_char; victim; victim = victim->next ) act_wiz.c: && victim->in_room && can_see( ch, victim ) act_wiz.c: && victim->hunting && victim->level >= low && victim->level <= high ) act_wiz.c: pager_printf_color( ch, "&w%-12.12s &C|%2d &wvs &C%2d| &w%-16.16s [%5d] &c%-20.20s [%5d]\n\r", act_wiz.c: victim->name, victim->level, victim->hunting->who->level, IS_NPC( victim->hunting->who ) ? act_wiz.c: victim->hunting->who->short_descr : victim->hunting->who->name, IS_NPC( victim->hunting->who ) ? victim->hunting->who->pIndexData->vnum : 0, act_wiz.c: victim->in_room->area->name, victim->in_room == NULL ? 0 : victim->in_room->vnum ); act_wiz.c:/* Added 'show' argument for lowbie imms without ostat -- Blodkai */ act_wiz.c:/* Trimmed size, added vict info, put lipstick on the pig -- Blod */ act_wiz.c: for ( obj = first_object; obj; obj = obj->next ) act_wiz.c: if ( obj->in_room act_wiz.c: && !str_cmp( buf2, obj->short_descr ) act_wiz.c: && (obj->pIndexData->vnum == 11 ) ) act_wiz.c: pager_printf_color( ch, "&P%s: %s%-12.12s &PIn: &w%-22.22s &P[&w%5d&P] &PTimer: %s%2d", act_wiz.c: obj->in_room->area->name, act_wiz.c: obj->in_room->vnum, act_wiz.c: obj->timer < 1 ? "&w" : obj->timer < 5 ? "&R" : obj->timer < 10 ? "&Y" : "&w", act_wiz.c: obj->timer ); act_wiz.c: obj->timer = -1; act_wiz.c: for ( owner = first_char; owner; owner = owner->next ) act_wiz.c: if ( can_see( ch, owner) && !str_cmp( arg1, owner->name ) ) act_wiz.c: if ( owner->pcdata->deity ) act_wiz.c: owner->name, act_wiz.c: owner->level, act_wiz.c: owner->pcdata->favor, act_wiz.c: owner->pcdata->deity->name, act_wiz.c: owner->pcdata->deity->scorpse ); act_wiz.c: owner->name, owner->level ); act_wiz.c: for ( ; obj->in_obj; obj = obj->in_obj ) act_wiz.c: pager_printf(ch, "[%5d] %-28s in object [%5d] %s\n\r", act_wiz.c: obj->pIndexData->vnum, obj_short(obj), act_wiz.c: obj->in_obj->pIndexData->vnum, obj->in_obj->short_descr); act_wiz.c: sprintf(buf, "[%5d] %-28s in ", obj->pIndexData->vnum, act_wiz.c: if ( obj->carried_by ) act_wiz.c: (IS_NPC(obj->carried_by) ? obj->carried_by->pIndexData->vnum act_wiz.c: : 0), PERS(obj->carried_by, ch)); act_wiz.c: else if ( obj->in_room ) act_wiz.c: obj->in_room->vnum, obj->in_room->name); act_wiz.c: else if ( obj->in_obj ) act_wiz.c: bug("do_owhere: obj->in_obj after NULL!",0); act_wiz.c: for ( obj = first_object; obj; obj = obj->next ) act_wiz.c: if ( !nifty_is_name( arg, obj->name ) ) act_wiz.c: sprintf(buf, "(%3d) [%5d] %-28s in ", ++icnt, obj->pIndexData->vnum, act_wiz.c: if ( obj->carried_by ) act_wiz.c: (IS_NPC(obj->carried_by) ? obj->carried_by->pIndexData->vnum act_wiz.c: : 0), PERS(obj->carried_by, ch)); act_wiz.c: else if ( obj->in_room ) act_wiz.c: obj->in_room->vnum, obj->in_room->name); act_wiz.c: else if ( obj->in_obj ) act_wiz.c: obj->in_obj->pIndexData->vnum, obj_short(obj->in_obj)); act_wiz.c: for ( obj = first_object; obj; obj = obj->next ) act_wiz.c: sprintf(buf, "(%3d) [%5d] %-28s in ", ++icnt, obj->pIndexData->vnum, act_wiz.c: if ( obj->carried_by ) act_wiz.c: (IS_NPC(obj->carried_by) ? obj->carried_by->pIndexData->vnum act_wiz.c: : 0), PERS(obj->carried_by, ch)); act_wiz.c: else if ( obj->in_room ) act_wiz.c: obj->in_room->vnum, obj->in_room->name); act_wiz.c: else if ( obj->in_obj ) act_wiz.c: obj->in_obj->pIndexData->vnum, obj_short(obj->in_obj)); act_wiz.c: if ( auction->item ) act_wiz.c: sprintf( buf, "Reboot by %s.", ch->name ); act_wiz.c: for ( vch = first_char; vch; vch = vch->next ) act_wiz.c: execlp("/usr/bin/sh", "sh", "-c", "tar -czf ../backup.tgz ../src/", 0); act_wiz.c: execlp("/usr/bin/sh", "sh", "-c", "tar -czf ../log/logbackup.tgz ../log/.log", 0); act_wiz.c: /* do_asave (NULL, ""); - autosave changed areas */ act_wiz.c: sprintf( buf1, "\n\r&R[&WINFO&R] &cThe world darkens as %s recreates it and the rest of the universe.\n\r", ch->name); act_wiz.c: d_next = d->next; /* We delete from the list , so need to save this */ act_wiz.c: if (!d->character || d->connected < 0) /* drop those logging on */ act_wiz.c: fprintf (fp, "%d %s %s\n", d->descriptor, och->name, d->host); act_wiz.c: if (och->level == 1) act_wiz.c: och->level++; /* Advance_level doesn't do that */ act_wiz.c: if ( d->out_compress ) act_wiz.c: do_compress( d->character, "" ); act_wiz.c: && xIS_SET( och->act, PLR_SAVREBOOT ) ) act_wiz.c: send_to_char( buf1, d->character ); act_wiz.c: fprintf (fp, "-1\n"); act_wiz.c: /* C lose reserve and other always-open files and release other resources */ act_wiz.c: /* exec - descriptors are inherited */ act_wiz.c: /* Failed - sucessful exec will not return */ act_wiz.c: set_boot_time->manual = 0; act_wiz.c: new_boot_time to new_boot_struct again. -- Alty */ act_wiz.c: new_boot_time->tm_mday += 2; /* Should set reboots for every 3 days */ act_wiz.c: if(new_boot_time->tm_hour > 12) act_wiz.c: new_boot_time->tm_mday += 1; act_wiz.c: new_boot_time->tm_sec = 0; act_wiz.c: new_boot_time->tm_min = 0; act_wiz.c: new_boot_time->tm_hour = 6; act_wiz.c: else if( atoi( arg ) < 0 ) /* Uh-huh... A value less than 0? */ act_wiz.c: now_time->tm_min = now_time->tm_min + i; act_wiz.c: reboot_in = reboot = mktime(now_time) - current_time; act_wiz.c: if ( auction->item ) act_wiz.c: sprintf( buf, "Shutdown by %s.", ch->name ); act_wiz.c: for ( vch = first_char; vch; vch = vch->next ) act_wiz.c: if ( !victim->desc ) act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( d->snoop_by == ch->desc ) act_wiz.c: d->snoop_by = NULL; act_wiz.c: if ( victim->desc->snoop_by ) act_wiz.c: || (victim->pcdata && victim->pcdata->min_snoop > get_trust( ch )) ) act_wiz.c: if ( ch->desc ) act_wiz.c: for ( d = ch->desc->snoop_by; d; d = d->snoop_by ) act_wiz.c: if ( d->character == victim || d->original == victim ) act_wiz.c: write_to_descriptor( victim->desc, "\n\rYou feel like someone is watching your every move...\n\r", 0 ); act_wiz.c: victim->desc->snoop_by = ch->desc; act_wiz.c: if ( !ch->desc ) act_wiz.c: if ( ch->desc->original ) act_wiz.c: if ( victim->desc ) act_wiz.c: if ( !IS_NPC(victim) && ch->level < LEVEL_GREATER ) act_wiz.c: if ( ch->level <= victim->level ) { act_wiz.c: ch->desc->character = victim; act_wiz.c: ch->desc->original = ch; act_wiz.c: victim->desc = ch->desc; act_wiz.c: ch->desc = NULL; act_wiz.c: ch->switched = victim; act_wiz.c: if ( !ch->desc ) act_wiz.c: if ( !ch->desc->original ) act_wiz.c: xREMOVE_BIT( ch->affected_by, AFF_POSSESS ); act_wiz.c: ch->desc->character = ch->desc->original; act_wiz.c: ch->desc->original = NULL; act_wiz.c: ch->desc->character->desc = ch->desc; act_wiz.c: ch->desc->character->switched = NULL; act_wiz.c: ch->desc = NULL; act_wiz.c: vnum = -1; act_wiz.c: pMobIndex = pMobIndex->next ) act_wiz.c: if ( nifty_is_name( arg2, pMobIndex->player_name ) act_wiz.c: vnum = pMobIndex->vnum; act_wiz.c: if ( vnum == -1 ) act_wiz.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) act_wiz.c: if ( vnum < pArea->low_m_vnum act_wiz.c: && vnum > pArea->hi_m_vnum ) act_wiz.c: char_to_room( victim, ch->in_room ); act_wiz.c: /*How about seeing what we're invoking for a change. -Blodkai*/ act_wiz.c: ch_printf_color( ch, "&YYou invoke %s (&W#%d &Y- &W%s &Y- &Wlvl %d&Y)\n\r", act_wiz.c: pMobIndex->short_descr, pMobIndex->vnum, pMobIndex->player_name, victim->level ); act_wiz.c: vnum = -1; act_wiz.c: pObjIndex = pObjIndex->next ) act_wiz.c: if ( nifty_is_name( arg, pObjIndex->name ) act_wiz.c: vnum = pObjIndex->vnum; act_wiz.c: if ( vnum == -1 ) act_wiz.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) act_wiz.c: if ( vnum < pArea->low_o_vnum act_wiz.c: && vnum > pArea->hi_o_vnum ) act_wiz.c: && pObjIndex->count > 5 ) act_wiz.c: obj = obj_to_room( obj, ch->in_room ); act_wiz.c: /* I invoked what? --Blodkai */ act_wiz.c: ch_printf_color( ch, "&YYou invoke %s (&W#%d &Y- &W%s &Y- &Wlvl %d&Y)\n\r", act_wiz.c: pObjIndex->short_descr, pObjIndex->vnum, pObjIndex->name, obj->level ); act_wiz.c: for ( victim = ch->in_room->first_person; victim; victim = vnext ) act_wiz.c: vnext = victim->next_in_room; act_wiz.c: for ( obj = ch->in_room->first_content; obj; obj = obj_next ) act_wiz.c: obj_next = obj->next_content; act_wiz.c: /* fixed to get things in room first -- i.e., purge portal (obj), act_wiz.c: * -- Tri */ act_wiz.c:/* Single object purge in room for high level purge - Scryn 8/12*/ act_wiz.c: if ( victim->level >= get_trust( ch ) ) { act_wiz.c: sprintf( buf, "Balzhur screams, 'You are MINE %s!!!'", victim->name ); act_wiz.c: victim->level = 2; act_wiz.c: victim->trust = 0; act_wiz.c: victim->exp = 2000; act_wiz.c: victim->max_hit = 10; act_wiz.c: victim->max_mana = 100; act_wiz.c: victim->max_move = 100; act_wiz.c: victim->pcdata->learned[sn] = 0; act_wiz.c: victim->practice = 0; act_wiz.c: victim->hit = victim->max_hit; act_wiz.c: victim->mana = victim->max_mana; act_wiz.c: victim->move = victim->max_move; act_wiz.c: name = capitalize(victim->name); act_wiz.c: ch_printf( ch, "Unknown error #%d - %s (immortal data). Report to Thoric\n\r", act_wiz.c: sprintf( buf2, "%s balzhuring %s", ch->name, buf ); act_wiz.c: for ( pArea = first_build; pArea; pArea = pArea->next ) act_wiz.c: if ( !str_cmp( pArea->filename, buf2 ) ) act_wiz.c: if ( IS_SET( pArea->status, AREA_LOADED ) ) act_wiz.c: ch_printf( ch, "Unknown error #%d - %s (area data). Report to Thoric.\n\r", act_wiz.c: sprintf( buf2, "%s destroying %s", ch->name, buf ); act_wiz.c: while ( victim->first_carrying ) act_wiz.c: extract_obj( victim->first_carrying ); act_wiz.c: /*You can demote yourself but not someone else at your own trust.-- Narn*/ act_wiz.c: * -- Swiftest act_wiz.c: * Few minor text changes as well. -- Blod act_wiz.c: if ( level <= victim->level ) act_wiz.c: if ( level < victim->level ) act_wiz.c: ch_printf( ch, "Demoting %s from level %d to level %d!\n\r", victim->name, victim->level, level ); act_wiz.c: ch_printf( ch, "%s is already level %d. Re-advancing...\n\r", victim->name, level ); act_wiz.c: send_to_char( "Deja vu! Your mind reels as you re-live your past levels!\n\r", victim ); act_wiz.c: victim->level = 1; act_wiz.c: victim->exp = exp_level(victim, 1); act_wiz.c: victim->max_hit = 20; act_wiz.c: victim->max_mana = 100; act_wiz.c: victim->max_move = 100; act_wiz.c: victim->pcdata->learned[sn] = 0; act_wiz.c: victim->practice = 0; act_wiz.c: victim->hit = victim->max_hit; act_wiz.c: victim->mana = victim->max_mana; act_wiz.c: victim->move = victim->max_move; act_wiz.c: DISPOSE( victim->pcdata->rank ); act_wiz.c: victim->pcdata->rank = str_dup( "" ); act_wiz.c: if ( xIS_SET(victim->act, PLR_WIZINVIS ) ) act_wiz.c: victim->pcdata->wizinvis = victim->trust; act_wiz.c: if ( xIS_SET(victim->act, PLR_WIZINVIS ) act_wiz.c: && ( victim->level <= LEVEL_AVATAR ) ) { act_wiz.c: xREMOVE_BIT(victim->act, PLR_WIZINVIS ); act_wiz.c: victim->pcdata->wizinvis = victim->trust; act_wiz.c: ch_printf( ch, "Raising %s from level %d to level %d!\n\r", victim->name, victim->level, level ); act_wiz.c: if (victim->level >= LEVEL_AVATAR) act_wiz.c: while ( victim->first_carrying ) act_wiz.c: extract_obj( victim->first_carrying ); act_wiz.c: for ( iLevel = victim->level ; iLevel < level; iLevel++ ) act_wiz.c: victim->level += 1; act_wiz.c: victim->exp = exp_level( victim, victim->level ); act_wiz.c: victim->trust = 0; act_wiz.c: logged - shogar */ act_wiz.c: sprintf(arg,"elevate issued by %s on %s",ch->name,argument); act_wiz.c: if( victim->level == LEVEL_IMMORTAL ) { act_wiz.c: victim->level = LEVEL_ACOLYTE; act_wiz.c: victim->exp = exp_level( victim, victim->level ); act_wiz.c: victim->trust = 0; act_wiz.c: if( victim->level == LEVEL_ACOLYTE ) { act_wiz.c: victim->level = LEVEL_CREATOR; act_wiz.c: victim->exp = exp_level( victim, victim->level ); act_wiz.c: victim->trust = 0; act_wiz.c: if ( victim->level != LEVEL_AVATAR ) { act_wiz.c: while ( victim->first_carrying ) act_wiz.c: extract_obj( victim->first_carrying ); act_wiz.c: victim->level = LEVEL_IMMORTAL; act_wiz.c: if ( victim->pcdata->clan ) act_wiz.c: if ( victim->pcdata->clan->clan_type == CLAN_GUILD) act_wiz.c: if (skill_table[sn]->guild == victim->pcdata->clan->class act_wiz.c: && skill_table[sn]->name != NULL) act_wiz.c: victim->pcdata->learned[sn] = 0; act_wiz.c: if (victim->speaking & LANG_CLAN) act_wiz.c: victim->speaking = LANG_COMMON; act_wiz.c: REMOVE_BIT (victim->speaks, LANG_CLAN); act_wiz.c: --victim->pcdata->clan->num_members; act_wiz.c: if (!str_cmp (victim->name, victim->pcdata->clan->leader) ) act_wiz.c: STRFREE (victim->pcdata->clan->leader); act_wiz.c: victim->pcdata->clan->leader = STRALLOC (""); act_wiz.c: if (!str_cmp (victim->name, victim->pcdata->clan->number1)) act_wiz.c: STRFREE (victim->pcdata->clan->number1); act_wiz.c: victim->pcdata->clan->number1 = STRALLOC (""); act_wiz.c: if (!str_cmp (victim->name, victim->pcdata->clan->number2)) act_wiz.c: STRFREE (victim->pcdata->clan->number2); act_wiz.c: victim->pcdata->clan->number2 = STRALLOC (""); act_wiz.c: victim->pcdata->clan = NULL; act_wiz.c: STRFREE (victim->pcdata->clan_name); act_wiz.c: CREATE(victim->pcdata->tell_history, char *, 26); act_wiz.c: victim->pcdata->tell_history[i] = NULL; act_wiz.c: victim->exp = exp_level( victim, victim->level ); act_wiz.c: victim->trust = 0; act_wiz.c: victim->trust = level; act_wiz.c:/* Summer 1997 --Blod */ act_wiz.c: if ( !IS_SET(pRoomIndex->room_flags, ROOM_PRIVATE) act_wiz.c: && !IS_SET(pRoomIndex->room_flags, ROOM_SOLITARY) act_wiz.c: && !IS_SET(pRoomIndex->room_flags, ROOM_NO_ASTRAL) act_wiz.c: && !IS_SET(pRoomIndex->room_flags, ROOM_PROTOTYPE) ) act_wiz.c: if ( victim->fighting ) stop_fighting( victim, TRUE ); act_wiz.c: victim->position = POS_RESTING; act_wiz.c: if ( victim->gold < 1) { act_wiz.c: victim->gold = 0; act_wiz.c: if ( !IS_SET(pRoomIndex->room_flags, ROOM_PRIVATE) act_wiz.c: && !IS_SET(pRoomIndex->room_flags, ROOM_SOLITARY) act_wiz.c: && !IS_SET(pRoomIndex->room_flags, ROOM_NO_ASTRAL) act_wiz.c: && !IS_SET(pRoomIndex->room_flags, ROOM_PROTOTYPE) ) act_wiz.c: for ( obj_lose=victim->first_carrying; obj_lose; obj_lose=obj_next ) { act_wiz.c: obj_next = obj_lose->next_content; act_wiz.c: pager_printf_color( ch, "\t&w%s sent to %d\n\r", capitalize(obj_lose->short_descr), pRoomIndex->vnum ); act_wiz.c: for ( obj_lose=victim->first_carrying; obj_lose; obj_lose=obj_next ) { act_wiz.c: obj_next = obj_lose->next_content; act_wiz.c: capitalize(obj_lose->short_descr), obj_lose->name ); act_wiz.c: if ( !ch->pcdata ) act_wiz.c: if ( current_time - last_restore_all_time < RESTORE_INTERVAL ) act_wiz.c: ch->pcdata->restore_time = current_time; act_wiz.c: vch_next = vch->next; act_wiz.c: vch->hit = vch->max_hit; act_wiz.c: vch->mana = vch->max_mana; act_wiz.c: vch->move = vch->max_move; act_wiz.c: vch->pcdata->condition[COND_BLOODTHIRST] = (10 + vch->level); act_wiz.c: && !( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE ) ) ) act_wiz.c: victim->hit = victim->max_hit; act_wiz.c: victim->mana = victim->max_mana; act_wiz.c: victim->move = victim->max_move; act_wiz.c: if ( victim->pcdata ) act_wiz.c: victim->pcdata->condition[COND_BLOODTHIRST] = (10 + victim->level); act_wiz.c: time_passed = current_time - last_restore_all_time; act_wiz.c: minute = (int) ( ( time_passed - ( hour * 3600 ) ) / 60 ); act_wiz.c: if ( !ch->pcdata ) act_wiz.c: if ( !ch->pcdata->restore_time ) act_wiz.c: time_passed = current_time - ch->pcdata->restore_time; act_wiz.c: minute = (int) ( ( time_passed - ( hour * 3600 ) ) / 60 ); act_wiz.c: ch_printf( victim, "%s is attempting to freeze you.\n\r", ch->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_FREEZE ) ) { act_wiz.c: xREMOVE_BIT(victim->act, PLR_FREEZE ); act_wiz.c: ch_printf( ch, "%s is now unfrozen.\n\r", victim->name ); act_wiz.c: xSET_BIT(victim->act, PLR_FREEZE ); act_wiz.c: ch_printf( ch, "You have frozen %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_LOG ) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_LOG ); act_wiz.c: ch_printf( ch, "LOG removed from %s.\n\r", victim->name ); act_wiz.c: xSET_BIT(victim->act, PLR_LOG ); act_wiz.c: ch_printf( ch, "LOG applied to %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_LITTERBUG) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_LITTERBUG); act_wiz.c: ch_printf( ch, "LITTERBUG removed from %s.\n\r", victim->name ); act_wiz.c: xSET_BIT(victim->act, PLR_LITTERBUG); act_wiz.c: ch_printf( ch, "LITTERBUG set on %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_NO_EMOTE) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_NO_EMOTE); act_wiz.c: ch_printf( ch, "NOEMOTE removed from %s.\n\r", victim->name ); act_wiz.c: xSET_BIT(victim->act, PLR_NO_EMOTE); act_wiz.c: ch_printf( ch, "NOEMOTE applied to %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_NO_TELL) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_NO_TELL); act_wiz.c: ch_printf( ch, "NOTELL removed from %s.\n\r", victim->name ); act_wiz.c: xSET_BIT(victim->act, PLR_NO_TELL); act_wiz.c: ch_printf( ch, "NOTELL applied to %s.\n\r", victim->name ); act_wiz.c: if ( IS_SET(victim->pcdata->flags, PCFLAG_NOTITLE) ) act_wiz.c: REMOVE_BIT(victim->pcdata->flags, PCFLAG_NOTITLE); act_wiz.c: ch_printf( ch, "NOTITLE removed from %s.\n\r", victim->name ); act_wiz.c: SET_BIT(victim->pcdata->flags, PCFLAG_NOTITLE); act_wiz.c: title_table [victim->class] [victim->level] act_wiz.c: [victim->sex == SEX_FEMALE ? 1 : 0] ); act_wiz.c: ch_printf( ch, "NOTITLE set on %s.\n\r", victim->name ); act_wiz.c: if ( xIS_SET(victim->act, PLR_SILENCE) ) act_wiz.c: xSET_BIT(victim->act, PLR_SILENCE); act_wiz.c: ch_printf( ch, "You SILENCE %s.\n\r", victim->name ); act_wiz.c:/* Much better than toggling this with do_silence, yech --Blodkai */ act_wiz.c: if ( xIS_SET(victim->act, PLR_SILENCE) ) act_wiz.c: xREMOVE_BIT(victim->act, PLR_SILENCE); act_wiz.c: ch_printf( ch, "SILENCE removed from %s.\n\r", victim->name ); act_wiz.c: for ( rch = ch->in_room->first_person; rch; rch = rch->next_in_room ) act_wiz.c: if ( rch->fighting ) act_wiz.c: for ( pwatch = first_watch; pwatch; pwatch = pwatch->next ) act_wiz.c: fprintf( fp, "%d %s~%s~%s~\n", pwatch->imm_level, pwatch->imm_name, act_wiz.c: pwatch->target_name?pwatch->target_name:" ", act_wiz.c: pwatch->player_site?pwatch->player_site:" " ); act_wiz.c: fprintf( fp, "-1\n" ); act_wiz.c: send_to_char( "Game un-wizlocked.\n\r", ch ); act_wiz.c: strcat(buf, "&w----+---+----+------+-------------------------------"); act_wiz.c: strcat(buf, "&w+---------"); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: || (d->character && can_see( ch, d->character )) ) act_wiz.c: " &C%3d&w| &c%2d&w|&G%4d&w|&g%6d&w| &Y%-12s&O@%-16s ", act_wiz.c: d->descriptor, act_wiz.c: d->connected, act_wiz.c: d->idle / 4, act_wiz.c: d->port, act_wiz.c: d->original ? d->original->name : act_wiz.c: d->character ? d->character->name : "&B(none)&w", act_wiz.c: d->host); act_wiz.c: sprintf( buf + strlen( buf ), "&w| &R%s", d->user ); act_wiz.c: || (d->character && can_see( ch, d->character )) ) act_wiz.c: && ( !str_prefix( arg, d->host ) act_wiz.c: || ( d->character && !str_prefix( arg, d->character->name ) ) ) ) act_wiz.c: " &C%3d&w| &c%2d&w|&G%4d&w|&g%6d&w| &Y%-12s&O@%-16s ", act_wiz.c: d->descriptor, act_wiz.c: d->connected, act_wiz.c: d->idle / 4, act_wiz.c: d->port, act_wiz.c: d->original ? d->original->name : act_wiz.c: d->character ? d->character->name : "&B(none)", act_wiz.c: d->host act_wiz.c: sprintf(buf, "&w| &R%s", d->user); act_wiz.c: bprintf( buf, "&W----+----------------+-----+---------------------------+-------------\n\r" ); act_wiz.c: for( d = first_descriptor ; d ; d = d->next ) act_wiz.c: switch( d->connected ) act_wiz.c: || ( d->character && can_see( ch, d->character )) ) act_wiz.c: bprintf( buf, "&C %3d&W|&c%-15s&W|&G%5d&W|&Y%-11s&O@%-15s&W|&r%s\n\r", act_wiz.c: d->descriptor, connected, d->idle/4, act_wiz.c: d->original ? d->original->name : act_wiz.c: d->character ? d->character->name : "none", act_wiz.c: d->host, d->user ); act_wiz.c: || ( d->character && can_see( ch, d->character )) ) act_wiz.c: && ( !str_prefix( arg, d->host ) act_wiz.c: || ( d->character && !str_prefix( arg, d->character->name )))) act_wiz.c: bprintf( buf, "&C %3d&W|&c%15s&W|&G%5d&W|&Y%-12s&O@%-16s&W|&r%s\n\r", act_wiz.c: d->descriptor, connected, d->idle/4, act_wiz.c: d->original ? d->original->name : act_wiz.c: d->character ? d->character->name : "none", act_wiz.c: d->host, d->user ); act_wiz.c: pager_printf_color( ch, buf->data ); act_wiz.c: vch_next = vch->next; act_wiz.c: if(!IS_NPC(victim) && IS_SET(victim->pcdata->flags,PCFLAG_IMMPROOF)) act_wiz.c: send_to_char("They will have to CONFIG -IMMPROOF first\n\r",ch); act_wiz.c: ch->pcdata->wizinvis = level; act_wiz.c: ch->mobinvis = level; act_wiz.c: if ( ch->pcdata->wizinvis < 2 ) act_wiz.c: ch->pcdata->wizinvis = ch->level; act_wiz.c: if ( ch->mobinvis < 2 ) act_wiz.c: ch->mobinvis = ch->level; act_wiz.c: if ( xIS_SET(ch->act, PLR_WIZINVIS) ) act_wiz.c: xREMOVE_BIT(ch->act, PLR_WIZINVIS); act_wiz.c: xSET_BIT(ch->act, PLR_WIZINVIS); act_wiz.c: if ( xIS_SET(ch->act, PLR_HOLYLIGHT) ) act_wiz.c: xREMOVE_BIT(ch->act, PLR_HOLYLIGHT); act_wiz.c: xSET_BIT(ch->act, PLR_HOLYLIGHT); act_wiz.c: victim->pcdata->r_range_lo = r_lo; act_wiz.c: victim->pcdata->r_range_hi = r_hi; act_wiz.c: ch_printf( victim, "%s has assigned you the room vnum range %d - %d.\n\r", act_wiz.c: ch->name, r_lo, r_hi ); act_wiz.c: if ( !victim->pcdata->area ) act_wiz.c: REMOVE_BIT ( victim->pcdata->area->status, AREA_LOADED ); act_wiz.c: SET_BIT( victim->pcdata->area->status, AREA_DELETED ); act_wiz.c: SET_BIT( victim->pcdata->area->status, AREA_LOADED ); act_wiz.c: REMOVE_BIT( victim->pcdata->area->status, AREA_DELETED ); act_wiz.c: victim->pcdata->o_range_lo = o_lo; act_wiz.c: victim->pcdata->o_range_hi = o_hi; act_wiz.c: ch_printf( victim, "%s has assigned you the object vnum range %d - %d.\n\r", act_wiz.c: ch->name, o_lo, o_hi ); act_wiz.c: victim->pcdata->m_range_lo = m_lo; act_wiz.c: victim->pcdata->m_range_hi = m_hi; act_wiz.c: ch_printf( victim, "%s has assigned you the monster vnum range %d - %d.\n\r", act_wiz.c: ch->name, m_lo, m_hi ); act_wiz.c: for ( cmd = command_hash[hash]; cmd; cmd = cmd->next ) act_wiz.c: pager_printf(ch,"%-6.6s %4d\t",cmd->name,cmd->userec.num_uses); act_wiz.c: pager_printf(ch,"%-6.6s %4d\n\r", cmd->name,cmd->userec.num_uses ); act_wiz.c: for(cmd = command_hash[hash]; cmd; cmd = cmd->next) act_wiz.c: if(!cmd->lag_count) act_wiz.c: pager_printf(ch,"%-6.6s %4d\t",cmd->name,cmd->lag_count); act_wiz.c: pager_printf(ch,"%-6.6s %4d\n\r", cmd->name,cmd->lag_count); act_wiz.c: if ( stat( fname, &fst ) != -1 ) act_wiz.c: d->next = NULL; act_wiz.c: d->prev = NULL; act_wiz.c: d->connected = CON_GET_NAME; act_wiz.c: d->outsize = 2000; act_wiz.c: CREATE( d->outbuf, char, d->outsize ); act_wiz.c: add_char( d->character ); act_wiz.c: old_room_vnum = d->character->in_room->vnum; act_wiz.c: char_to_room( d->character, ch->in_room ); act_wiz.c: if ( get_trust(d->character) >= get_trust( ch ) ) act_wiz.c: do_say( d->character, "Do *NOT* disturb me again!" ); act_wiz.c: d->character->desc = NULL; act_wiz.c: do_quit( d->character, "" ); act_wiz.c: d->character->desc = NULL; act_wiz.c: victim = d->character; act_wiz.c: d->character = NULL; act_wiz.c: DISPOSE( d->outbuf ); act_wiz.c: victim->level = LEVEL_AVATAR; act_wiz.c: victim->exp = exp_level(victim, LEVEL_AVATAR); act_wiz.c: victim->max_hit = 800; act_wiz.c: victim->max_mana = 800; act_wiz.c: victim->max_move = 800; act_wiz.c: victim->pcdata->learned[sn] = 0; act_wiz.c: victim->practice = 0; act_wiz.c: victim->hit = victim->max_hit; act_wiz.c: victim->mana = victim->max_mana; act_wiz.c: victim->move = victim->max_move; act_wiz.c: DISPOSE( victim->pcdata->rank ); act_wiz.c: victim->pcdata->rank = str_dup( "" ); act_wiz.c: if ( xIS_SET(victim->act, PLR_WIZINVIS) ) act_wiz.c: victim->pcdata->wizinvis = victim->trust; act_wiz.c: if ( xIS_SET(victim->act, PLR_WIZINVIS) act_wiz.c: && (victim->level <= LEVEL_AVATAR)) act_wiz.c: xREMOVE_BIT(victim->act, PLR_WIZINVIS); act_wiz.c: victim->pcdata->wizinvis = victim->trust; act_wiz.c: sprintf( buf, "%s%s", GOD_DIR, capitalize(victim->name) ); act_wiz.c: ch_printf( ch, "Unknown error #%d - %s (immortal data). Report to Thoric\n\r", act_wiz.c: sprintf( buf2, "%s mortalizing %s", ch->name, buf ); act_wiz.c: for ( pArea = first_build; pArea; pArea = pArea->next ) act_wiz.c: if ( !strcmp( pArea->filename, buf2 ) ) act_wiz.c: if ( IS_SET( pArea->status, AREA_LOADED ) ) act_wiz.c: ch_printf( ch, "Unknown error #%d - %s (area data). Report to Thoric.\n\r", act_wiz.c: sprintf( buf2, "%s mortalizing %s", ch->name, buf ); act_wiz.c: while ( victim->first_carrying ) act_wiz.c: extract_obj( victim->first_carrying ); act_wiz.c: for ( temp = first_char; temp; temp = temp->next ) act_wiz.c: if ( can_see (ch, temp) && !str_cmp( name, temp->name ) ) act_wiz.c: if ( stat( fname, &fst ) != -1 ) act_wiz.c: d->next = NULL; act_wiz.c: d->prev = NULL; act_wiz.c: d->connected = CON_GET_NAME; act_wiz.c: d->outsize = 2000; act_wiz.c: CREATE( d->outbuf, char, d->outsize ); act_wiz.c: add_char( d->character ); act_wiz.c: old_room_vnum = d->character->in_room->vnum; act_wiz.c: char_to_room( d->character, ch->in_room ); act_wiz.c: if ( get_trust(d->character) >= get_trust( ch ) ) act_wiz.c: do_say( d->character, "Do *NOT* disturb me again!" ); act_wiz.c: d->character->desc = NULL; act_wiz.c: do_quit( d->character, "" ); act_wiz.c: d->character->desc = NULL; act_wiz.c: d->character->retran = old_room_vnum; act_wiz.c: d->character = NULL; act_wiz.c: DISPOSE( d->outbuf ); act_wiz.c:/* victim->armor = 100; act_wiz.c: victim->mod_str = 0; act_wiz.c: victim->mod_dex = 0; act_wiz.c: victim->mod_wis = 0; act_wiz.c: victim->mod_int = 0; act_wiz.c: victim->mod_con = 0; act_wiz.c: victim->mod_cha = 0; act_wiz.c: victim->mod_lck = 0; act_wiz.c: victim->damroll = 0; act_wiz.c: victim->hitroll = 0; act_wiz.c: victim->alignment = URANGE( -1000, victim->alignment, 1000 ); act_wiz.c: victim->saving_spell_staff = 0; */ act_wiz.c: if ( ( victim->level < 1 ) || ( victim->level > 5 ) ) act_wiz.c: if ( (victim->class == 0) || (victim->class == 2) act_wiz.c: || (victim->class == 4) || (victim->class == 7) ) act_wiz.c: else if ( (victim->class == 1) || (victim->class == 5) ) act_wiz.c: else if ( (victim->class == 3) || (victim->class == 6) || (victim->class == 8) ) act_wiz.c: called New Darkhaven Academy - Brittany */ act_wiz.c: ch_printf( ch, "You have re-equipped %s.\n\r", victim->name ); act_wiz.c: * e.g. "aset joe.are sedit susan.are cset" --> "joe.are susan.are" act_wiz.c: * - Gorog act_wiz.c: if ( (len=strlen(buf)) >= 5 && !strcmp(".are", pbuf+len-4) ) act_wiz.c: * e.g. "aset joe.are sedit susan.are cset" --> "aset sedit cset" act_wiz.c: * - Gorog act_wiz.c: if ( (len=strlen(buf)) < 5 || strcmp(".are", pbuf+len-4) ) act_wiz.c: if (!victim->pcdata->bestowments) act_wiz.c: victim->pcdata->bestowments = str_dup(""); act_wiz.c: extract_area_names (victim->pcdata->bestowments, buf); act_wiz.c: remove_area_names (victim->pcdata->bestowments, buf); act_wiz.c: DISPOSE( victim->pcdata->bestowments ); act_wiz.c: victim->pcdata->bestowments = str_dup( buf ); act_wiz.c: || argument[arg_len-4] != '.' || argument[arg_len-3] != 'a' act_wiz.c: || argument[arg_len-2] != 'r' || argument[arg_len-1] != 'e' ) act_wiz.c: sprintf( buf, "%s %s", victim->pcdata->bestowments, argument ); act_wiz.c: DISPOSE( victim->pcdata->bestowments ); act_wiz.c: victim->pcdata->bestowments = str_dup( buf ); act_wiz.c: ch->name, argument ); act_wiz.c: if (!victim->pcdata->bestowments) act_wiz.c: victim->pcdata->bestowments = str_dup(""); act_wiz.c: victim->name, victim->pcdata->bestowments ); act_wiz.c: DISPOSE( victim->pcdata->bestowments ); act_wiz.c: victim->pcdata->bestowments = str_dup(""); act_wiz.c: ch_printf( ch, "Bestowments removed from %s.\n\r", victim->name ); act_wiz.c: ch_printf( victim, "%s has removed your bestowed commands.\n\r", ch->name ); act_wiz.c: sprintf( buf, "%s %s", victim->pcdata->bestowments, argument ); act_wiz.c: DISPOSE( victim->pcdata->bestowments ); act_wiz.c: victim->pcdata->bestowments = str_dup( buf ); act_wiz.c: ch->name, argument ); act_wiz.c: reboot_time, set_boot_time->manual ); act_wiz.c: if ( (now_time->tm_hour = atoi(arg)) < 0 || now_time->tm_hour > 23 ) act_wiz.c: if ( (now_time->tm_min = atoi(arg1)) < 0 || now_time->tm_min > 59 ) act_wiz.c: if ( (now_time->tm_mday = atoi(arg)) < 1 || now_time->tm_mday > 31 ) act_wiz.c: if ( (now_time->tm_mon = atoi(arg)) < 1 || now_time->tm_mon > 12 ) act_wiz.c: now_time->tm_mon--; act_wiz.c: if ( (now_time->tm_year = atoi(arg)-1900) < 0 || act_wiz.c: now_time->tm_year > 199 ) act_wiz.c: now_time->tm_sec = 0; act_wiz.c: if (set_boot_time->manual == 0) act_wiz.c: set_boot_time->manual = 1; act_wiz.c: set_boot_time->manual = atoi(arg1); act_wiz.c: set_boot_time->manual = 0; act_wiz.c: new_boot_time->tm_mday += 1; act_wiz.c: if (new_boot_time->tm_hour > 12) act_wiz.c: new_boot_time->tm_mday += 1; act_wiz.c: new_boot_time->tm_hour = 6; act_wiz.c: new_boot_time->tm_min = 0; act_wiz.c: new_boot_time->tm_sec = 0; act_wiz.c: * of a name/password would be, taking in 2 arguments - the name and the act_wiz.c: * password - can still only change the password if you have access to act_wiz.c: * Purge a player file. No more player. -- Altrag act_wiz.c: * This could have other applications too.. move if needed. -- Altrag act_wiz.c: ech_next = ech->next; act_wiz.c: if ( ech->fighting ) act_wiz.c: if ( URANGE(pArea->low_m_vnum, ech->pIndexData->vnum, act_wiz.c: pArea->hi_m_vnum) == ech->pIndexData->vnum || act_wiz.c: (ech->in_room && ech->in_room->area == pArea) ) act_wiz.c: if ( ech->in_room && ech->in_room->area == pArea ) act_wiz.c: eobj_next = eobj->next; act_wiz.c: if ( URANGE(pArea->low_o_vnum, eobj->pIndexData->vnum, act_wiz.c: pArea->hi_o_vnum) == eobj->pIndexData->vnum || act_wiz.c: (eobj->in_room && eobj->in_room->area == pArea) ) act_wiz.c: rid_next = rid->next; act_wiz.c: for ( exit = rid->first_exit; exit; exit = exit_next ) act_wiz.c: exit_next = exit->next; act_wiz.c: if ( rid->area == pArea || exit->to_room->area == pArea ) act_wiz.c: STRFREE( exit->keyword ); act_wiz.c: STRFREE( exit->description ); act_wiz.c: UNLINK( exit, rid->first_exit, rid->last_exit, next, prev ); act_wiz.c: * But you CAN NOT iterate over a link-list and DELETE from it or act_wiz.c: * Nasty things can and will happen. --Shaddai act_wiz.c: exit = rid->first_exit; act_wiz.c: if ( rid->area != pArea ) act_wiz.c: STRFREE(rid->name); act_wiz.c: STRFREE(rid->description); act_wiz.c: if ( rid->first_person ) act_wiz.c: bug( "close_area: room with people #%d", rid->vnum ); act_wiz.c: for ( ech = rid->first_person; ech; ech = ech_next ) act_wiz.c: ech_next = ech->next_in_room; act_wiz.c: if ( ech->fighting ) act_wiz.c: if ( rid->first_content ) act_wiz.c: bug( "close_area: room with contents #%d", rid->vnum ); act_wiz.c: for ( eobj = rid->first_content; eobj; eobj = eobj_next ) act_wiz.c: eobj_next = eobj->next_content; act_wiz.c: for ( eed = rid->first_extradesc; eed; eed = eed_next ) act_wiz.c: eed_next = eed->next; act_wiz.c: STRFREE( eed->keyword ); act_wiz.c: STRFREE( eed->description ); act_wiz.c: for ( mpact = rid->mpact; mpact; mpact = mpact_next ) act_wiz.c: mpact_next = mpact->next; act_wiz.c: STRFREE( mpact->buf ); act_wiz.c: for ( mprog = rid->mudprogs; mprog; mprog = mprog_next ) act_wiz.c: mprog_next = mprog->next; act_wiz.c: STRFREE( mprog->arglist ); act_wiz.c: STRFREE( mprog->comlist ); act_wiz.c: room_index_hash[icnt] = rid->next; act_wiz.c: for ( trid = room_index_hash[icnt]; trid; trid = trid->next ) act_wiz.c: if ( trid->next == rid ) act_wiz.c: bug( "Close_area: rid not in hash list %d", rid->vnum ); act_wiz.c: trid->next = rid->next; act_wiz.c: mid_next = mid->next; act_wiz.c: if ( mid->vnum < pArea->low_m_vnum || mid->vnum > pArea->hi_m_vnum ) act_wiz.c: STRFREE( mid->player_name ); act_wiz.c: STRFREE( mid->short_descr ); act_wiz.c: STRFREE( mid->long_descr ); act_wiz.c: STRFREE( mid->description ); act_wiz.c: if ( mid->pShop ) act_wiz.c: UNLINK( mid->pShop, first_shop, last_shop, next, prev ); act_wiz.c: DISPOSE( mid->pShop ); act_wiz.c: if ( mid->rShop ) act_wiz.c: UNLINK( mid->rShop, first_repair, last_repair, next, prev ); act_wiz.c: DISPOSE( mid->rShop ); act_wiz.c: for ( mprog = mid->mudprogs; mprog; mprog = mprog_next ) act_wiz.c: mprog_next = mprog->next; act_wiz.c: STRFREE(mprog->arglist); act_wiz.c: STRFREE(mprog->comlist); act_wiz.c: mob_index_hash[icnt] = mid->next; act_wiz.c: for ( tmid = mob_index_hash[icnt]; tmid; tmid = tmid->next ) act_wiz.c: if ( tmid->next == mid ) act_wiz.c: bug( "Close_area: mid not in hash list %d", mid->vnum ); act_wiz.c: tmid->next = mid->next; act_wiz.c: oid_next = oid->next; act_wiz.c: if ( oid->vnum < pArea->low_o_vnum || oid->vnum > pArea->hi_o_vnum ) act_wiz.c: STRFREE(oid->name); act_wiz.c: STRFREE(oid->short_descr); act_wiz.c: STRFREE(oid->description); act_wiz.c: STRFREE(oid->action_desc); act_wiz.c: for ( eed = oid->first_extradesc; eed; eed = eed_next ) act_wiz.c: eed_next = eed->next; act_wiz.c: STRFREE(eed->keyword); act_wiz.c: STRFREE(eed->description); act_wiz.c: for ( paf = oid->first_affect; paf; paf = paf_next ) act_wiz.c: paf_next = paf->next; act_wiz.c: for ( mprog = oid->mudprogs; mprog; mprog = mprog_next ) act_wiz.c: mprog_next = mprog->next; act_wiz.c: STRFREE(mprog->arglist); act_wiz.c: STRFREE(mprog->comlist); act_wiz.c: obj_index_hash[icnt] = oid->next; act_wiz.c: for ( toid = obj_index_hash[icnt]; toid; toid = toid->next ) act_wiz.c: if ( toid->next == oid ) act_wiz.c: bug( "Close_area: oid not in hash list %d", oid->vnum ); act_wiz.c: toid->next = oid->next; act_wiz.c: for ( ereset = pArea->first_reset; ereset; ereset = ereset_next ) act_wiz.c: ereset_next = ereset->next; act_wiz.c: DISPOSE(pArea->name); act_wiz.c: DISPOSE(pArea->filename); act_wiz.c: STRFREE(pArea->author); act_wiz.c: for ( victim = first_char; victim; victim = victim->next ) act_wiz.c: if ( !IS_NPC(victim) && !str_cmp(victim->name, arg) ) act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( (victim = d->character) && !IS_NPC(victim) && act_wiz.c: !str_cmp(victim->name, arg) ) act_wiz.c: drop_artifacts(ch, ch->last_carrying); act_wiz.c: ch_printf( ch, "Unknown error #%d - %s (immortal data). Report to Scion.\n\r", act_wiz.c: sprintf( buf2, "%s destroying %s", ch->name, buf ); act_wiz.c: if( ch->pcdata->council ) act_wiz.c: ch->pcdata->council->num_members--; act_wiz.c: rem_council_member( ch->pcdata->council, ch->name ); act_wiz.c: if( ch->pcdata->council2 ) act_wiz.c: ch->pcdata->council->num_members--; act_wiz.c: rem_council_member( ch->pcdata->council, ch->name ); act_wiz.c: if( ch->pcdata->clan ) act_wiz.c: ch->pcdata->clan->num_members--; act_wiz.c: rem_clan_member( ch->pcdata->clan, ch->name ); act_wiz.c: for ( pArea = first_build; pArea; pArea = pArea->next ) act_wiz.c: if ( !str_cmp( pArea->filename, buf2 ) ) act_wiz.c: if ( IS_SET( pArea->status, AREA_LOADED ) ) act_wiz.c: ch_printf( ch, "Unknown error #%d - %s (area data). Report to Scion.\n\r", act_wiz.c: sprintf( buf2, "%s destroying %s", ch->name, buf ); act_wiz.c: ch_printf( ch, "Unknown error #%d - %s. Report to Scion.\n\r", act_wiz.c: sprintf( buf, "%s destroying %s", ch->name, arg ); act_wiz.c:/* Super-AT command: act_wiz.c:at least one target, but only once per room. # cannot be used with FOR EVERY- act_wiz.c:FOR ALL SMILE -> you will only smile once in a room with 2 players. act_wiz.c:FOR ALL TWIDDLE # -> In a room with A and B, you will twiddle A then B. act_wiz.c: character within a room. E.g. the second 'guard' -> 2. guard act_wiz.c: return ch->name; act_wiz.c: one_argument (ch->name, name); /* copy the first word into name */ act_wiz.c: /* ->people changed to ->first_person -- TRI */ act_wiz.c: for (rch = ch->in_room->first_person; rch && (rch != ch);rch = act_wiz.c: rch->next_in_room) act_wiz.c: if (is_name (name, rch->name)) act_wiz.c: CHAR_DATA *p, *p_prev; /* p_next to p_prev -- TRI */ act_wiz.c: /* char_list - last_char, p_next - gch_prev -- TRI */ act_wiz.c: p_prev = p->prev; /* TRI */ act_wiz.c: /* p_next = p->next; */ /* In case someone DOES try to AT MOBS SLAY # */ act_wiz.c: if (!(p->in_room) || room_is_private(p->in_room) || (p == ch)) act_wiz.c: else if (!IS_NPC(p) && p->level >= LEVEL_IMMORTAL && fGods) act_wiz.c: else if (!IS_NPC(p) && p->level < LEVEL_IMMORTAL && fMortals) act_wiz.c: old_room = ch->in_room; act_wiz.c: char_to_room (ch,p->in_room); act_wiz.c: for (room = room_index_hash[i] ; room ; room = room->next) act_wiz.c: else if (!room->first_person) /* Skip it if room is empty */ act_wiz.c: /* ->people changed to first_person -- TRI */ act_wiz.c: /* ->people to ->first_person -- TRI */ act_wiz.c: for (p = room->first_person; p && !found; p = p->next_in_room) act_wiz.c: else if (!IS_NPC(p) && (p->level >= LEVEL_IMMORTAL) && fGods) act_wiz.c: else if (!IS_NPC(p) && (p->level <= LEVEL_IMMORTAL) && fMortals) act_wiz.c: old_room = ch->in_room; act_wiz.c: pager_printf_color(ch, "&WOther:\n\r &wForce on players : &W%-2d ", act_wiz.c: pager_printf_color(ch, "&wPrivate && immproof override: &W%-2d\n\r", act_wiz.c: pager_printf_color(ch, " &wPenalty to bash plr vs. plr : &W%-7d", act_wiz.c: pager_printf_color(ch, "&wPenalty to non-tank bash : &W%-3d\n\r", act_wiz.c: pager_printf_color(ch, " &wPenalty to gouge plr vs. plr: &W%-7d", act_wiz.c: pager_printf_color(ch, "&wPenalty to non-tank gouge : &W%-3d\n\r", act_wiz.c: pager_printf_color(ch, " &wPenalty regular stun chance : &W%-7d", act_wiz.c: pager_printf_color(ch, "&wPenalty to stun plr vs. plr : &W%-3d\n\r", act_wiz.c: pager_printf_color(ch, " &wPercent damage plr vs. plr : &W%-7d", act_wiz.c: pager_printf_color(ch, "&wPercent damage plr vs. mob : &W%-3d \n\r", act_wiz.c: pager_printf_color(ch, " &wPercent damage mob vs. plr : &W%-7d", act_wiz.c: pager_printf_color(ch, "&wPercent damage mob vs. mob : &W%-3d\n\r", act_wiz.c: pager_printf_color(ch, " &wGet object without take flag: &W%-7d", act_wiz.c: pager_printf_color(ch, " &wMax level difference bestow : &W%-7d", act_wiz.c: pager_printf_color(ch, " &wMorph Optimization is : &W%-7s", act_wiz.c: pager_printf_color(ch, " &wIdents retries : &W%-7d", sysdata.ident_retries); act_wiz.c: if ( x == -1 ) act_wiz.c: if ( victim->pcdata->release_date != 0 ) act_wiz.c: ctime(&victim->pcdata->release_date), victim->pcdata->helled_by); act_wiz.c: tms->tm_hour += time; act_wiz.c: tms->tm_mday += time; act_wiz.c: victim->pcdata->release_date = mktime(tms); act_wiz.c: victim->pcdata->helled_by = STRALLOC(ch->name); act_wiz.c: ch_printf(ch, "%s will be released from hell at %24.24s.\n\r", victim->name, act_wiz.c: ctime(&victim->pcdata->release_date)); act_wiz.c: /* fix hell bug - shogar */ act_wiz.c: location = ch->in_room; act_wiz.c:/*ch->in_room = get_room_index(8);*/ act_wiz.c:/*ch->in_room = location; The case of unhell self, etc.*/ act_wiz.c:/* must be rod a thing only one hell here. -shogar */ act_wiz.c: if ( victim->in_room->vnum != 8 act_wiz.c: && victim->in_room->vnum != 1206 act_wiz.c: && victim->in_room->vnum != 6 ) act_wiz.c: if ( victim->in_room->vnum != ROOM_VNUM_HELL) act_wiz.c: if ( victim->pcdata->clan ) act_wiz.c: location = get_room_index(victim->pcdata->clan->recall); act_wiz.c: location = ch->in_room; act_wiz.c: if ( victim->pcdata->helled_by ) act_wiz.c: if( str_cmp(ch->name, victim->pcdata->helled_by) ) act_wiz.c: victim->pcdata->helled_by); act_wiz.c: STRFREE(victim->pcdata->helled_by); act_wiz.c: victim->pcdata->helled_by = NULL; act_wiz.c: victim->pcdata->release_date = 0; act_wiz.c: for ( obj = first_object; obj != NULL; obj = obj->next ) act_wiz.c: if ( !can_see_obj( ch, obj ) || !( argi == obj->pIndexData->vnum )) act_wiz.c: for ( in_obj = obj; in_obj->in_obj != NULL; act_wiz.c: in_obj = in_obj->in_obj ); act_wiz.c: if ( in_obj->carried_by != NULL ) act_wiz.c: obj->level, obj_short(obj), act_wiz.c: PERS( in_obj->carried_by, ch ) ); act_wiz.c: pager_printf( ch, "[%2d] [%-5d] %s in %s.\n\r", obj_counter, act_wiz.c: ( ( in_obj->in_room ) ? in_obj->in_room->vnum : 0 ), act_wiz.c: obj_short(obj), ( in_obj->in_room == NULL ) ? act_wiz.c: "somewhere" : in_obj->in_room->name ); act_wiz.c: if ( victim->pcdata ) act_wiz.c: victim->pcdata->condition[COND_DRUNK] = 0; act_wiz.c: * Free a social structure -Thoric act_wiz.c: if ( social->name ) act_wiz.c: DISPOSE( social->name ); act_wiz.c: if ( social->char_no_arg ) act_wiz.c: DISPOSE( social->char_no_arg ); act_wiz.c: if ( social->others_no_arg ) act_wiz.c: DISPOSE( social->others_no_arg ); act_wiz.c: if ( social->char_found ) act_wiz.c: DISPOSE( social->char_found ); act_wiz.c: if ( social->others_found ) act_wiz.c: DISPOSE( social->others_found ); act_wiz.c: if ( social->vict_found ) act_wiz.c: DISPOSE( social->vict_found ); act_wiz.c: if ( social->char_auto ) act_wiz.c: DISPOSE( social->char_auto ); act_wiz.c: if ( social->others_auto ) act_wiz.c: DISPOSE( social->others_auto ); act_wiz.c: * Remove a social from it's hash index -Thoric act_wiz.c: if ( social->name[0] < 'a' || social->name[0] > 'z' ) act_wiz.c: hash = (social->name[0] - 'a') + 1; act_wiz.c: social_index[hash] = tmp->next; act_wiz.c: tmp_next = tmp->next; act_wiz.c: tmp->next = tmp_next->next; act_wiz.c: * Add a social to the social index table -Thoric act_wiz.c: if ( !social->name ) act_wiz.c: bug( "Add_social: NULL social->name", 0 ); act_wiz.c: if ( !social->char_no_arg ) act_wiz.c: bug( "Add_social: NULL social->char_no_arg", 0 ); act_wiz.c: for ( x = 0; social->name[x] != '\0'; x++ ) act_wiz.c: social->name[x] = LOWER(social->name[x]); act_wiz.c: if ( social->name[0] < 'a' || social->name[0] > 'z' ) act_wiz.c: hash = (social->name[0] - 'a') + 1; act_wiz.c: social->next = social_index[hash]; act_wiz.c: for ( ; tmp; tmp = tmp->next ) act_wiz.c: if ( (x=strcmp(social->name, tmp->name)) == 0 ) act_wiz.c: social->next = social_index[hash]; act_wiz.c: prev->next = social; act_wiz.c: social->next = tmp; act_wiz.c: prev->next = social; act_wiz.c: social->next = NULL; act_wiz.c: * Social editor/displayer/save/delete -Thoric act_wiz.c: social->name = str_dup( arg1 ); act_wiz.c: social->char_no_arg = str_dup( arg2 ); act_wiz.c: social->name, social->char_no_arg ); act_wiz.c: social->others_no_arg ? social->others_no_arg : "(not set)", act_wiz.c: social->char_found ? social->char_found : "(not set)", act_wiz.c: social->others_found ? social->others_found : "(not set)" ); act_wiz.c: social->vict_found ? social->vict_found : "(not set)", act_wiz.c: social->char_auto ? social->char_auto : "(not set)", act_wiz.c: social->others_auto ? social->others_auto : "(not set)" ); act_wiz.c: if ( social->char_no_arg ) act_wiz.c: DISPOSE( social->char_no_arg ); act_wiz.c: social->char_no_arg = str_dup( argument ); act_wiz.c: if ( social->others_no_arg ) act_wiz.c: DISPOSE( social->others_no_arg ); act_wiz.c: social->others_no_arg = str_dup( argument ); act_wiz.c: if ( social->char_found ) act_wiz.c: DISPOSE( social->char_found ); act_wiz.c: social->char_found = str_dup( argument ); act_wiz.c: if ( social->others_found ) act_wiz.c: DISPOSE( social->others_found ); act_wiz.c: social->others_found = str_dup( argument ); act_wiz.c: if ( social->vict_found ) act_wiz.c: DISPOSE( social->vict_found ); act_wiz.c: social->vict_found = str_dup( argument ); act_wiz.c: if ( social->char_auto ) act_wiz.c: DISPOSE( social->char_auto ); act_wiz.c: social->char_auto = str_dup( argument ); act_wiz.c: if ( social->others_auto ) act_wiz.c: DISPOSE( social->others_auto ); act_wiz.c: social->others_auto = str_dup( argument ); act_wiz.c: if ( arg1[0] != social->name[0] ) act_wiz.c: if ( social->name ) act_wiz.c: DISPOSE( social->name ); act_wiz.c: social->name = str_dup( arg1 ); act_wiz.c: * Free a command structure -Thoric act_wiz.c: if ( command->name ) act_wiz.c: DISPOSE( command->name ); act_wiz.c: * Remove a command from it's hash index -Thoric act_wiz.c: hash = command->name[0]%126; act_wiz.c: command_hash[hash] = tmp->next; act_wiz.c: tmp_next = tmp->next; act_wiz.c: tmp->next = tmp_next->next; act_wiz.c: * Add a command to the command hash table -Thoric act_wiz.c: if ( !command->name ) act_wiz.c: bug( "Add_command: NULL command->name", 0 ); act_wiz.c: if ( !command->do_fun ) act_wiz.c: bug( "Add_command: NULL command->do_fun", 0 ); act_wiz.c: for ( x = 0; command->name[x] != '\0'; x++ ) act_wiz.c: command->name[x] = LOWER(command->name[x]); act_wiz.c: hash = command->name[0] % 126; act_wiz.c: command->next = command_hash[hash]; act_wiz.c: for ( ; tmp; tmp = tmp->next ) act_wiz.c: if ( !tmp->next ) act_wiz.c: tmp->next = command; act_wiz.c: command->next = NULL; act_wiz.c: * Command editor/displayer/save/delete -Thoric act_wiz.c: * Added support for interpret flags -Shaddai act_wiz.c: if ( get_trust(ch) > LEVEL_SUB_IMPLEM || !str_cmp(ch->name, "Nivek")) act_wiz.c: if ((get_trust(ch) > LEVEL_GREATER || !str_cmp(ch->name, "Nivek")) act_wiz.c: if ( (!str_cmp(ch->name, "Nivek") || get_trust(ch) > LEVEL_SUB_IMPLEM) act_wiz.c: command->lag_count = 0; /* FB */ act_wiz.c: command->name = str_dup( arg1 ); act_wiz.c: command->level = get_trust(ch); act_wiz.c: command->do_fun = skill_function( arg2 ); act_wiz.c: if ( command->do_fun == skill_notfound ) act_wiz.c: if ( command->level > get_trust(ch) && str_cmp(ch->name, "Nivek")) act_wiz.c: command->name, command->level, command->position, command->log, act_wiz.c: skill_name(command->do_fun),flag_string(command->flags, cmd_flags)); act_wiz.c: if ( command->userec.num_uses ) act_wiz.c: send_timer(&command->userec, ch); act_wiz.c: if ( get_trust(ch) <= LEVEL_SUB_IMPLEM && str_cmp(ch->name, "Nivek")) act_wiz.c: int hash = command->name[0] % 126; act_wiz.c: if ( tmp->next == command ) act_wiz.c: tmp_next = tmp->next; act_wiz.c: tmp->next = command->next; act_wiz.c: command->next = tmp; act_wiz.c: ch_printf( ch, "Moved %s above %s.\n\r", command->name, command->next->name ); act_wiz.c: for ( ; tmp; tmp = tmp->next ) act_wiz.c: tmp_next = tmp->next; act_wiz.c: if ( tmp_next->next == command ) act_wiz.c: tmp->next = command; act_wiz.c: tmp_next->next = command->next; act_wiz.c: command->next = tmp_next; act_wiz.c: ch_printf( ch, "Moved %s above %s.\n\r", command->name, command->next->name ); act_wiz.c: send_to_char( "ERROR -- Not Found!\n\r", ch ); act_wiz.c: int hash = command->name[0] % 126; act_wiz.c: if ( command->next == NULL ) act_wiz.c: tmp_next = tmp->next; act_wiz.c: command_hash[hash] = command->next; act_wiz.c: command->next = tmp_next->next; act_wiz.c: tmp_next->next = command; act_wiz.c: ch_printf( ch, "Moved %s below %s.\n\r", command->name, tmp_next->name ); act_wiz.c: for ( ; tmp; tmp = tmp->next ) act_wiz.c: if ( tmp->next == command ) act_wiz.c: tmp_next = command->next; act_wiz.c: tmp->next = tmp_next; act_wiz.c: command->next = tmp_next->next; act_wiz.c: tmp_next->next = command; act_wiz.c: ch_printf( ch, "Moved %s below %s.\n\r", command->name, tmp_next->name ); act_wiz.c: send_to_char( "ERROR -- Not Found!\n\r", ch ); act_wiz.c: int hash = command->name[0] % 126; act_wiz.c: pager_printf( ch, "Priority placement for [%s]:\n\r", command->name ); act_wiz.c: for ( tmp = command_hash[hash]; tmp; tmp = tmp->next ) act_wiz.c: pager_printf( ch, " %s\n\r", tmp->name ); act_wiz.c: command->do_fun = fun; act_wiz.c: command->level = level; act_wiz.c: command->log = log; act_wiz.c: command->position = position; act_wiz.c: TOGGLE_BIT( command->flags, 1 << flag ); act_wiz.c: if ( arg1[0] != command->name[0] ) act_wiz.c: if ( command->name ) act_wiz.c: DISPOSE( command->name ); act_wiz.c: command->name = str_dup( arg1 ); act_wiz.c: * Display class information -Thoric act_wiz.c: if ( !str_cmp(class_table[cl]->who_name, arg1) ) act_wiz.c: pager_printf_color( ch, "&wCLASS: &W%s\n\r&wPrime Attribute: &W%-14s &wWeapon: &W%-5d &wGuild: &W%-5d\n\r", act_wiz.c: class->who_name, affect_loc_name(class->attr_prime), class->weapon, class->guild ); act_wiz.c: pager_printf_color( ch, "&wMax Skill Adept: &W%-3d &wThac0 : &W%-5d &wThac32: &W%d\n\r", act_wiz.c: class->skill_adept, class->thac0_00, class->thac0_32 ); act_wiz.c: pager_printf_color( ch, "&wHp Min/Hp Max : &W%-2d/%-2d &wMana : &W%-3s &wExpBase: &W%d\n\r", act_wiz.c: class->hp_min, class->hp_max, class->fMana ? "yes" : "no ", class->exp_base ); act_wiz.c: pager_printf_color( ch, "&wBase Alignment : &W%-2d\n\r", act_wiz.c: class->alignment ); /* Scion 3/20/99 */ act_wiz.c: pager_printf( ch, "Male: %-30s Female: %s\n\r", act_wiz.c: if ( skill_table[y]->skill_level[cl] == x ) act_wiz.c: pager_printf( ch, " %-7s %-19s%3d ", act_wiz.c: skill_tname[skill_table[y]->type], act_wiz.c: skill_table[y]->name, skill_table[y]->skill_adept[cl] ); act_wiz.c: * Edit class information -Thoric act_wiz.c: if ( !str_cmp(class_table[cl]->who_name, arg1) ) act_wiz.c: STRFREE(class->who_name ); act_wiz.c: class->who_name = STRALLOC( argument ); act_wiz.c: class->attr_prime = x; act_wiz.c: class->weapon = atoi( argument ); act_wiz.c: class->guild = atoi( argument ); act_wiz.c: class->thac0_00 = atoi( argument ); act_wiz.c: class->thac0_32 = atoi( argument ); act_wiz.c: class->hp_min = atoi( argument ); act_wiz.c: class->hp_max = atoi( argument ); act_wiz.c: class->fMana = TRUE; act_wiz.c: class->fMana = FALSE; act_wiz.c: class->exp_base = atoi( argument ); act_wiz.c: class->alignment = atoi( argument ); act_wiz.c: if (class->alignment>1000) act_wiz.c: else if (class->alignment<-1000) act_wiz.c: send_to_char("Warning: min alignment is -1000.\n\r",ch); act_wiz.c: if ( !str_cmp(race_table[ra]->race_name, arg1) ) act_wiz.c: sprintf(race->race_name,"%-.16s",argument); act_wiz.c: race->str_plus = (sh_int) atoi( argument ); act_wiz.c: race->dex_plus = (sh_int) atoi( argument ); act_wiz.c: race->wis_plus = (sh_int) atoi( argument ); act_wiz.c: race->int_plus = (sh_int) atoi( argument ); act_wiz.c: race->con_plus = (sh_int) atoi( argument ); act_wiz.c: race->cha_plus = (sh_int) atoi( argument ); act_wiz.c: race->lck_plus = (sh_int) atoi( argument ); act_wiz.c: race->hit = (sh_int) atoi( argument ); act_wiz.c: race->mana = (sh_int) atoi( argument ); act_wiz.c: xTOGGLE_BIT( race->affected, value ); act_wiz.c: TOGGLE_BIT( race->resist, 1 << value ); act_wiz.c: TOGGLE_BIT( race->suscept, 1 << value ); act_wiz.c: race->language = atoi( argument ); act_wiz.c: if( !str_cmp(argument,class_table[i]->who_name) ) act_wiz.c: TOGGLE_BIT( race->class_restriction, 1 << i); /* k, that's boggling */ act_wiz.c: race->ac_plus = atoi( argument ); act_wiz.c: race->alignment = atoi( argument ); act_wiz.c: xTOGGLE_BIT( race->defenses, value ); act_wiz.c: xTOGGLE_BIT( race->attacks, value ); act_wiz.c: race->minalign = atoi( argument ); act_wiz.c: race->maxalign = atoi( argument ); act_wiz.c: race->height = atoi( argument ); act_wiz.c: race->weight = atoi( argument ); act_wiz.c: race->thirst_mod = atoi( argument ); act_wiz.c: race->hunger_mod = atoi( argument ); act_wiz.c: race->maxalign = atoi( argument ); act_wiz.c: race->exp_multiplier = atoi( argument ); act_wiz.c: race->saving_poison_death = atoi( argument ); act_wiz.c: race->saving_wand = atoi( argument ); act_wiz.c: race->saving_para_petri = atoi( argument ); act_wiz.c: race->saving_breath = atoi( argument ); act_wiz.c: race->saving_spell_staff = atoi( argument ); act_wiz.c: race->mana_regen = atoi( argument ); act_wiz.c: race->hp_regen = atoi( argument ); act_wiz.c: race->race_recall = atoi( argument ); act_wiz.c: race->acplus = atoi( argument ); act_wiz.c: race->acplus = atoi( argument ); act_wiz.c: race->base_age = atoi( argument ); act_wiz.c: send_to_char( " - haircolor\t- hairlength\t- eyecolor\n\r", ch ); act_wiz.c: send_to_char( " - skintone\t- build\t\t- height\n\r", ch ); act_wiz.c: send_to_char( buffer->data, ch ); act_wiz.c: TOGGLE_BIT( race->attribs[HAIR_COLOR], 1 << bitv ); act_wiz.c: send_to_char( buf->data, ch ); act_wiz.c: TOGGLE_BIT( race->attribs[HAIR_LENGTH], 1 << bitv ); act_wiz.c: send_to_char( buf->data, ch ); act_wiz.c: TOGGLE_BIT( race->attribs[EYE_COLOR], 1 << bitv ); act_wiz.c: send_to_char( buf->data, ch ); act_wiz.c: TOGGLE_BIT( race->attribs[SKIN_TONE], 1 << bitv ); act_wiz.c: send_to_char( buf->data, ch ); act_wiz.c: TOGGLE_BIT( race->attribs[RACE_BUILD], 1 << bitv ); act_wiz.c: send_to_char( buf->data, ch ); act_wiz.c: TOGGLE_BIT( race->attribs[RACE_HEIGHT], 1 << bitv ); act_wiz.c: if ( !str_cmp(race_table[ra]->race_name, arg1) ) act_wiz.c: sprintf( buf, "RACE: %s\n\r",race->race_name); act_wiz.c: if( IS_SET(race->class_restriction, 1 << i) ) act_wiz.c: sprintf(buf,"%s ", class_table[i]->who_name); act_wiz.c: if( !IS_SET(race->class_restriction, 1 << i) ) act_wiz.c: sprintf(buf,"%s ", class_table[i]->who_name); act_wiz.c: sprintf( buf, "Race_recall: %d\n\r", race->race_recall); act_wiz.c: sprintf( buf, "Str Plus: %-3d\tDex Plus: %-3d\tWis Plus: %-3d\tInt Plus: %-3d\t\n\r", act_wiz.c: race->str_plus, race->dex_plus, race->wis_plus, race->int_plus); act_wiz.c: sprintf( buf, "Con Plus: %-3d\tCha Plus: %-3d\tLck Plus: %-3d\n\r", act_wiz.c: race->con_plus, race->cha_plus, race->lck_plus); act_wiz.c: sprintf( buf, "Hit Pts: %-3d\tMana: %-3d\tAlign: %-4d\tAC: %-d\n\r", act_wiz.c: race->hit, race->mana, race->alignment, race->ac_plus); act_wiz.c: sprintf( buf, "Min Align: %d\tMax Align: %-d\t\tXP Mult: %-d%%\n\r", act_wiz.c: race->minalign, race->maxalign, race->exp_multiplier); act_wiz.c: race->height, race->weight, race->hunger_mod, race->thirst_mod); act_wiz.c: send_to_char( affect_bit_name( &race->affected ), ch); act_wiz.c: send_to_char( flag_string(race->resist, ris_flags), ch); act_wiz.c: send_to_char( flag_string(race->suscept, ris_flags), ch); act_wiz.c: race->saving_poison_death, act_wiz.c: race->saving_wand, act_wiz.c: race->saving_para_petri, act_wiz.c: race->saving_breath, act_wiz.c: race->saving_spell_staff); act_wiz.c: send_to_char( ext_flag_string(&race->attacks, attack_flags), ch); act_wiz.c: send_to_char( ext_flag_string(&race->defenses, defense_flags), ch); act_wiz.c: sprintf(buf, "Base Age: %d\r\n", race->base_age); act_wiz.c: ch_printf( ch, "\n\r -" ); act_wiz.c: ch_printf( ch, "&w(%s&w)%-15s", IS_SET( race->attribs[HAIR_COLOR], 1 << bitv ) ? "&GE" : " ", act_wiz.c: ch_printf( ch, "\n\r -" ); act_wiz.c: ch_printf( ch, "&w(%s&w)%-15s", IS_SET( race->attribs[HAIR_LENGTH], 1 << bitv ) ? "&GE" : " ", act_wiz.c: ch_printf( ch, "\n\r -" ); act_wiz.c: ch_printf( ch, "&w(%s&w)%-15s", IS_SET( race->attribs[EYE_COLOR], 1 << bitv ) ? "&GE" : " ", act_wiz.c: ch_printf( ch, "\n\r -" ); act_wiz.c: ch_printf( ch, "&w(%s&w)%-15s", IS_SET( race->attribs[SKIN_TONE], 1 << bitv ) ? "&GE" : " ", act_wiz.c: ch_printf( ch, "\n\r -" ); act_wiz.c: ch_printf( ch, "&w(%s&w)%-15s", IS_SET( race->attribs[RACE_BUILD], 1 << bitv ) ? "&GE" : " ", act_wiz.c: ch_printf( ch, "\n\r -" ); act_wiz.c: ch_printf( ch, "&w(%s&w)%-15s", IS_SET( race->attribs[RACE_HEIGHT], 1 << bitv ) ? "&GE" : " ", act_wiz.c: * quest point set - TRI act_wiz.c: if (( str_cmp( ch->pcdata->council_name, "Quest Council" ) act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Quest Council")) act_wiz.c: victim->pcdata->quest_curr += amount; act_wiz.c: victim->pcdata->quest_accum += amount; act_wiz.c: victim->name, amount ); act_wiz.c: if ( victim->pcdata->quest_curr - amount < 0 ) act_wiz.c: victim->name, amount ); act_wiz.c: victim->pcdata->quest_curr -= amount; act_wiz.c: victim->name, amount ); act_wiz.c:/* Easy way to check a player's glory -- Blodkai, June 97 */ act_wiz.c: victim->name ); act_wiz.c: victim->name, act_wiz.c: victim->pcdata->quest_curr, act_wiz.c: victim->pcdata->quest_accum ); act_wiz.c:/* Simple, small way to make keeping track of small mods easier - Blod */ act_wiz.c: sprintf( buf, "&g|&G%-2.2d/%-2.2d &g| &G%5d&g| %s: &G%s", act_wiz.c: t->tm_mon+1, t->tm_mday, ch->in_room ? ch->in_room->vnum : 0, act_wiz.c: IS_NPC( ch ) ? ch->short_descr : ch->name, argument ); act_wiz.c: for (res = first_reserved; res; res = res->next) act_wiz.c: fprintf(fp, "%s~\n", res->name); act_wiz.c: send_to_char("-- Reserved Names --\n\r", ch); act_wiz.c: for (res = first_reserved; res; res = res->next) act_wiz.c: ch_printf(ch, "%c%-17s ", (*res->name == '*' ? '*' : ' '), act_wiz.c: (*res->name == '*' ? res->name+1 : res->name)); act_wiz.c: for (res = first_reserved; res; res = res->next) act_wiz.c: if (!str_cmp(arg, res->name)) act_wiz.c: DISPOSE(res->name); act_wiz.c: res->name = str_dup(arg); act_wiz.c: ch_printf(ch, "%-40s%-8s %-8s %-8s\n\r", act_wiz.c: for(pArea = first_area; pArea; pArea = pArea->next) act_wiz.c: nifty_is_name_prefix(arg, pArea->name)) act_wiz.c: ch_printf(ch, "%-40s", pArea->name); act_wiz.c: ch_printf(ch, "%3d", pArea->weather->temp); act_wiz.c: ch_printf(ch, "%3d", pArea->weather->temp_vector); act_wiz.c: ch_printf(ch, "%3d", pArea->weather->precip); act_wiz.c: ch_printf(ch, "%3d", pArea->weather->precip_vector); act_wiz.c: ch_printf(ch, "%3d", pArea->weather->wind); act_wiz.c: ch_printf(ch, "%3d", pArea->weather->wind_vector); act_wiz.c: ch_printf(ch, "%-15s%-6s\n\r", act_wiz.c: ch_printf(ch, "%-15s%-6d\n\r", act_wiz.c: ch_printf(ch, "%-15s%-6d\n\r", act_wiz.c: ch_printf(ch, "%-15s%-6d\n\r", act_wiz.c: ch_printf(ch, "%-15s%-6d\n\r", act_wiz.c: ch_printf(ch, "%-15s%-6d\n\r", act_wiz.c: "%d to %d.\n\r", -3*weath_unit, act_wiz.c: "%d to %d.\n\r", -1*max_vector, act_wiz.c: ch_printf(ch, "Kill history for %s:\n\r", vch->name); act_wiz.c: vch->pcdata->killed[track].vnum; track++) act_wiz.c: tmob = get_mob_index(vch->pcdata->killed[track].vnum); act_wiz.c: ch_printf(ch, " %-30s", capitalize(tmob->short_descr)); act_wiz.c: ch_printf(ch, "%-5d", tmob->vnum); act_wiz.c: ch_printf(ch, " - killed %d times.\n\r", act_wiz.c: vch->pcdata->killed[track].count); act_wiz.c: if( !ch->desc ) act_wiz.c: switch( ch->substate ) act_wiz.c: if ( !ch->pnote ) act_wiz.c: if ( ch->dest_buf != ch->pnote ) act_wiz.c: bug( "do_project: sub_writing_note: ch->dest_buf != ch->pnote", 0 ); act_wiz.c: STRFREE( ch->pnote->text ); act_wiz.c: ch->pnote->text = copy_buffer( ch ); act_wiz.c: if ( !ch->dest_buf ) act_wiz.c: bug( "do_project: sub_project_desc: NULL ch->dest_buf", 0 ); act_wiz.c: ch->substate = SUB_NONE; act_wiz.c: pproject = ch->dest_buf; act_wiz.c: STRFREE( pproject->description ); act_wiz.c: pproject->description = copy_buffer ( ch ); act_wiz.c: ch->substate = ch->tempnum; act_wiz.c:"---|-------------|----------------------|--------------------------|-----------\n\r"); act_wiz.c: for( pproject = first_project; pproject; pproject = pproject->next ) act_wiz.c: if ( (pproject->status && str_cmp(pproject->status, "approved")) act_wiz.c: || pproject->coder != NULL) act_wiz.c: pager_printf(ch, "%2d | %-11s | %-20s |\n\r", act_wiz.c: pproject->owner ? pproject->owner : "(None)", act_wiz.c: pproject->name); act_wiz.c:"---|-------------|----------------------|---------------|------------|----------\n\r"); act_wiz.c: for( pproject = first_project; pproject; pproject = pproject->next ) act_wiz.c: if ( MINE &&(!pproject->owner||str_cmp( ch->name, pproject->owner)) act_wiz.c: && (!pproject->coder || str_cmp( ch->name, pproject->coder )) ) act_wiz.c: else if (!MINE && pproject->status && act_wiz.c: !str_cmp("Done", pproject->status ) ) act_wiz.c: for ( log = pproject->first_log; log; log=log->next ) act_wiz.c: pager_printf(ch, "%2d | %-11s | %-20s | %-13s | %-10s | %3d\n\r", act_wiz.c: pproject->owner ? pproject->owner : "(None)", act_wiz.c: pproject->name, act_wiz.c: pproject->coder ? pproject->coder : "(None)", act_wiz.c: pproject->status ? pproject->status : "(None)", act_wiz.c:"---|-------------|----------------------|--------------------------|-----------\n\r"); act_wiz.c: pager_printf(ch, "---|----------------------|--------------------------\n\r"); act_wiz.c: for( pproject = first_project; pproject; pproject = pproject->next ) act_wiz.c: if (pproject->status && !str_cmp("Done", pproject->status ) ) act_wiz.c: pager_printf(ch, "%2d | %-11s | %-20s | %-24s | %-10s\n\r", act_wiz.c: pproject->owner ? pproject->owner : "(None)", act_wiz.c: pproject->name, act_wiz.c: pproject->date, act_wiz.c: pproject->status ? pproject->status : "(None)"); act_wiz.c: if( !pproject->taken ) act_wiz.c: pager_printf(ch, "%2d | %-20s | %s\n\r", act_wiz.c: pproject->name, act_wiz.c: pproject->date); act_wiz.c: str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: new_project->name = str_dup(argument); act_wiz.c: new_project->coder = NULL; act_wiz.c: new_project->taken = FALSE; act_wiz.c: new_project->description = STRALLOC( "" ); act_wiz.c: strtime[strlen(strtime)-1] = '\0'; act_wiz.c: new_project->date = STRALLOC( strtime ); act_wiz.c: str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: ch->tempnum = SUB_NONE; act_wiz.c: ch->substate = SUB_PROJ_DESC; act_wiz.c: ch->dest_buf = pproject; act_wiz.c: if ( pproject->description == NULL ) act_wiz.c: pproject->description = STRALLOC(""); act_wiz.c: start_editing( ch, pproject->description ); act_wiz.c: if( str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council")) && act_wiz.c: log = pproject->last_log; act_wiz.c: UNLINK( log, pproject->first_log, pproject->last_log, next, prev ); act_wiz.c: tlog = log->prev; act_wiz.c: DISPOSE( pproject->name ); act_wiz.c: if ( pproject->coder ) act_wiz.c: DISPOSE( pproject->coder ); act_wiz.c: if( pproject->owner ) act_wiz.c: STRFREE( pproject->owner ); act_wiz.c: if( pproject->description ) act_wiz.c: STRFREE( pproject->description ); act_wiz.c: if ( pproject->date ) act_wiz.c: STRFREE( pproject->date ); act_wiz.c: if ( pproject->status ) act_wiz.c: STRFREE( pproject->status ); act_wiz.c: if( pproject->taken && pproject->owner && act_wiz.c: !str_cmp(pproject->owner, ch->name ) ) act_wiz.c: pproject->taken = FALSE; act_wiz.c: STRFREE( pproject->owner ); act_wiz.c: pproject->owner = NULL; act_wiz.c: else if ( pproject->taken ) act_wiz.c: if( pproject->owner ) act_wiz.c: STRFREE( pproject->owner ); act_wiz.c: pproject->owner = STRALLOC( ch->name ); act_wiz.c: pproject->taken = TRUE; act_wiz.c: if ( pproject->coder && !str_cmp(ch->name, pproject->coder)) act_wiz.c: DISPOSE( pproject->coder ); act_wiz.c: pproject->coder = NULL; act_wiz.c: else if ( pproject->coder ) act_wiz.c: pproject->coder = str_dup( ch->name ); act_wiz.c: if( pproject->owner && str_cmp( pproject->owner, ch->name ) && act_wiz.c: && pproject->coder && str_cmp(pproject->coder, ch->name) && act_wiz.c: str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: if(pproject->status) act_wiz.c: STRFREE(pproject->status); act_wiz.c: pproject->status = STRALLOC(argument); act_wiz.c: if ( pproject->description ) act_wiz.c: send_to_char ( pproject->description, ch ); act_wiz.c: ch->substate = SUB_WRITING_NOTE; act_wiz.c: ch->dest_buf = ch->pnote; act_wiz.c: start_editing( ch, ch->pnote->text); act_wiz.c: STRFREE(ch->pnote->subject); act_wiz.c: ch->pnote->subject = STRALLOC( argument ); act_wiz.c: if( pproject->owner && str_cmp(ch->name, pproject->owner) && act_wiz.c: pproject->coder && str_cmp(ch->name, pproject->coder) && act_wiz.c: get_trust(ch) < LEVEL_GREATER && str_cmp(ch->name, "Kali") && act_wiz.c: (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: if ( !ch->pnote ) act_wiz.c: if ( !ch->pnote->subject ) act_wiz.c: strtime[strlen(strtime)-1] = '\0'; act_wiz.c: ch->pnote->date = STRALLOC( strtime ); act_wiz.c: ch->pnote->sender = ch->name; act_wiz.c: plog = ch->pnote; act_wiz.c: ch->pnote = NULL; act_wiz.c: LINK(plog, pproject->first_log, pproject->last_log, next, prev); act_wiz.c: if( pproject->owner && pproject->coder && act_wiz.c: str_cmp(ch->name, pproject->owner) && get_trust(ch) < LEVEL_SAVIOR act_wiz.c: && str_cmp(ch->name, pproject->coder) act_wiz.c: && str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: pager_printf(ch, "Project: %-12s: %s\n\r", act_wiz.c: pproject->owner ? pproject->owner : "(None)", act_wiz.c: pproject->name); act_wiz.c: for( plog = pproject->first_log; plog; plog = plog->next ) act_wiz.c: pager_printf( ch, "%2d) %-12s: %s\n\r", act_wiz.c: plog->sender, act_wiz.c: plog->subject ); act_wiz.c: if( pproject->owner && str_cmp(ch->name, pproject->owner) && act_wiz.c: pproject->coder && str_cmp(ch->name, pproject->coder ) && act_wiz.c: str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: UNLINK( plog, pproject->first_log, pproject->last_log, next, prev ); act_wiz.c: if( pproject->owner && pproject->coder && act_wiz.c: str_cmp(ch->name, pproject->owner) && get_trust(ch) < LEVEL_SAVIOR act_wiz.c: && str_cmp(ch->name, pproject->coder ) act_wiz.c: && str_cmp(ch->name, "Kali") act_wiz.c: && (str_cmp(ch->pcdata->council_name, "Code Council") act_wiz.c: || str_cmp(ch->pcdata->council2_name, "Code Council"))) act_wiz.c: plog->sender, act_wiz.c: plog->subject, act_wiz.c: plog->date, act_wiz.c: plog->text ); act_wiz.c: for( pproject = first_project; pproject; pproject = pproject->next ) act_wiz.c: for( plog = pproject->first_log; plog; plog = plog->next ) act_wiz.c: * --Shaddai act_wiz.c: * 2 in the morning :) --Shaddai act_wiz.c: int count = 0, times = -1; act_wiz.c: for ( d = first_descriptor; d; d = d->next) act_wiz.c: for ( hmm = first_ip; hmm; hmm = hmm->next ) act_wiz.c: if ( !str_cmp( hmm->host, d->host ) ) act_wiz.c: temp->host = str_dup ( d->host ); act_wiz.c: hmm_next = hmm->next; act_wiz.c: if ( hmm->host ) act_wiz.c: DISPOSE( hmm->host ); act_wiz.c: strcat (buf, "----+---+----+------+-------------"); act_wiz.c: strcat (buf, "------------------" ); act_wiz.c: strcat (buf, "+---------"); act_wiz.c: for ( d = first_descriptor; d; d = d->next) act_wiz.c: if(((d->connected != CON_PLAYING act_wiz.c: && d->connected != CON_EDITING) act_wiz.c: || ( d->connected <= CON_NOTE_TO act_wiz.c: && d->connected >= CON_NOTE_FINISH)) act_wiz.c: || d->character == NULL || !CAN_PKILL(d->character) act_wiz.c: || !can_see (ch, d->character) ) act_wiz.c: temp->host = str_dup ( d->host ); act_wiz.c: temp->descriptor = d->descriptor; act_wiz.c: temp->connected = d->connected; act_wiz.c: temp->idle = d->idle; act_wiz.c: temp->port = d->port; act_wiz.c: temp->name = (d->original ? str_dup( d->original->name ) : act_wiz.c: d->character? str_dup( d->character->name ) : act_wiz.c: temp->user = str_dup(d->user); act_wiz.c: temp->count = 0; act_wiz.c: temp->printed = FALSE; act_wiz.c: for ( d = first_descriptor; d; d = d->next) act_wiz.c: if(((d->connected != CON_PLAYING act_wiz.c: && d->connected != CON_EDITING) act_wiz.c: || ( d->connected <= CON_NOTE_TO act_wiz.c: && d->connected >= CON_NOTE_FINISH)) act_wiz.c: || d->character == NULL || !can_see (ch, d->character)) act_wiz.c: for ( hmm = first_ip; hmm; hmm = hmm->next ) act_wiz.c: if ( !str_cmp( hmm->host, d->host) && act_wiz.c: str_cmp(hmm->name, (d->original ? d->original->name : act_wiz.c: d->character? d->character->name : "(none)" ))) act_wiz.c: hmm->count++; act_wiz.c: if ( !hmm->printed && hmm->count > 0) act_wiz.c: " %3d| %2d|%4d|%6d| %-12s", act_wiz.c: hmm->descriptor, act_wiz.c: hmm->connected, act_wiz.c: hmm->idle / 4, act_wiz.c: hmm->port, act_wiz.c: hmm->name ); act_wiz.c: sprintf(buf + strlen (buf), "@%-16s ", hmm->host ); act_wiz.c: sprintf (buf + strlen (buf), "| %s", hmm->user); act_wiz.c: hmm->printed = TRUE; act_wiz.c: " %3d| %2d|%4d|%6d| %-12s", act_wiz.c: d->descriptor, act_wiz.c: d->connected, act_wiz.c: d->idle / 4, act_wiz.c: d->port, act_wiz.c: d->original ? d->original->name : act_wiz.c: d->character ? d->character->name : "(none)"); act_wiz.c: sprintf(buf + strlen (buf), "@%-16s ", d->host ); act_wiz.c: sprintf (buf + strlen (buf), "| %s", d->user); act_wiz.c: hmm_next = hmm->next; act_wiz.c: if ( hmm->name ) act_wiz.c: DISPOSE( hmm->name ); act_wiz.c: if ( hmm->host ) act_wiz.c: DISPOSE( hmm->host ); act_wiz.c: if ( hmm->user ) act_wiz.c: DISPOSE( hmm->user ); act_wiz.c: if ( ( victim = get_char_world( ch, arg ) ) != NULL && victim->desc) act_wiz.c: addie = victim->desc->host; act_wiz.c: if ( addie[strlen(addie) -1] == '*' ) act_wiz.c: addie[strlen(addie)-1] = '\0'; act_wiz.c: strcat (buf, "----+---+----+------+-------------"); act_wiz.c: strcat (buf, "------------------" ); act_wiz.c: strcat (buf, "+---------"); act_wiz.c: for ( d = first_descriptor; d; d = d->next) act_wiz.c: if ( !d->character ||((d->connected != CON_PLAYING act_wiz.c: && d->connected != CON_EDITING) act_wiz.c: || (d->connected <= CON_NOTE_TO act_wiz.c: && d->connected >= CON_NOTE_FINISH)) act_wiz.c: || !can_see (ch, d->character) ) act_wiz.c: if ( inroom && ch->in_room != d->character->in_room ) act_wiz.c: if ( inarea && ch->in_room->area != d->character->in_room->area ) act_wiz.c: if ( times > 0 && count == (times - 1 ) ) act_wiz.c: if ( prefix && suffix && strstr( addie, d->host ) ) act_wiz.c: else if ( prefix && !str_suffix( addie , d->host) ) act_wiz.c: else if ( suffix && !str_prefix( addie , d->host) ) act_wiz.c: else if ( !str_cmp( d->host, addie ) ) act_wiz.c: " %3d| %2d|%4d|%6d| %-12s", act_wiz.c: d->descriptor, act_wiz.c: d->connected, act_wiz.c: d->idle / 4, act_wiz.c: d->port, act_wiz.c: d->original ? d->original->name : act_wiz.c: d->character ? d->character->name : "(none)"); act_wiz.c: sprintf(buf + strlen (buf), "@%-16s ", d->host ); act_wiz.c: sprintf (buf + strlen (buf), "| %s", d->user); act_wiz.c: * New nuisance flag to annoy people that deserve it :) --Shaddai act_wiz.c: send_to_char(" power <level 1-10>\n\r", ch ); act_wiz.c: send_to_char("Defaults: Time -- forever, power -- 1, maxtime 8 days.\n\r", ch ); act_wiz.c: if ( victim->pcdata->nuisance ) act_wiz.c: send_to_char("Power must be 1 - 10.\n\r", ch ); act_wiz.c: send_to_char("Hours must be 1 - 23.\n\r", ch ); act_wiz.c: send_to_char("Days must be 1 - 999.\n\r", ch ); act_wiz.c: CREATE ( victim->pcdata->nuisance, NUISANCE_DATA, 1 ); act_wiz.c: victim->pcdata->nuisance->time = current_time; act_wiz.c: victim->pcdata->nuisance->flags = 1; act_wiz.c: victim->pcdata->nuisance->power = power; act_wiz.c: now_time->tm_min += max_time; act_wiz.c: now_time->tm_hour+= max_time; act_wiz.c: now_time->tm_mday+= max_time; act_wiz.c: victim->pcdata->nuisance->max_time = mktime(now_time); act_wiz.c: if ( !victim->pcdata->nuisance ) act_wiz.c: for (timer = victim->first_timer; timer; timer = timer_next) act_wiz.c: timer_next = timer->next; act_wiz.c: if ( timer->type == TIMER_NUISANCE ) act_wiz.c: DISPOSE( victim->pcdata->nuisance ); act_wiz.c: * too --Shaddai act_wiz.c: sprintf( oldname, "%s%c/%s",PLAYER_DIR,tolower(victim->pcdata->filename[0]), act_wiz.c: capitalize( victim->pcdata->filename ) ); act_wiz.c: sprintf( backname,"%s%c/%s",BACKUP_DIR,tolower(victim->pcdata->filename[0]), act_wiz.c: capitalize( victim->pcdata->filename ) ); act_wiz.c: sprintf(godname, "%s%s", GOD_DIR, capitalize(victim->pcdata->filename)); act_wiz.c: if ( ch->pcdata->area ) act_wiz.c: sprintf( filename, "%s%s.are", BUILD_DIR, victim->name); act_wiz.c: sprintf( filename, "%s%s.are.bak", BUILD_DIR, victim->name); act_wiz.c: STRFREE( victim->name ); act_wiz.c: victim->name = STRALLOC( capitalize(arg2) ); act_wiz.c: STRFREE( victim->pcdata->filename ); act_wiz.c: victim->pcdata->filename = STRALLOC( capitalize(arg2) ); act_wiz.c: for ( d = first_descriptor; d; d = d->next ) act_wiz.c: if ( d->connected == CON_PLAYING ) act_wiz.c: ch_printf_color( d->character, "&R[&WINFO&R] &c%s\n\r", argument ); act_wiz.c: for( area = first_asort ; area ; area = area->next ) act_wiz.c: for( vnum = area->low_r_vnum ; vnum <= area->hi_r_vnum ; vnum++ ) act_wiz.c: if( IS_SET( room->room_flags, 1 << value ) ) act_wiz.c: room->vnum ); act_wiz.c: || !str_cmp( victim->name, "Kratas" )) act_wiz.c: victim->hit = victim->hit *.5; act_wiz.c: victim->mana = victim->mana *.5; act_wiz.c: victim->move = victim->move *.5; act_wiz.c: victim->pcdata->smites++; act_wiz.c: adjust_hiscore( "smite", victim, victim->pcdata->smites ); act_wiz.c: ch->pcdata->smited++; act_wiz.c: adjust_hiscore( "smiter", ch, ch->pcdata->smited ); act_wiz.c: ch_printf( ch, "You have smitten %s!\n\r", victim->name ); act_wiz.c: if( str_cmp( ch->name, "Kratas" ) ) antitank.c: * Anti-tanking code antitank.c: * one the mob is currently fighting, then powerlevel-tanking has antitank.c: for( lowbie = ch->in_room->first_person ; lowbie ; lowbie = lowbie->next_in_room ) antitank.c: && lowbie->level < victim->level - 10 ) antitank.c: tanker->name, lowbie->name, antitank.c: ch->pIndexData->vnum ); arena.c: low_level=-1; /* Ignore level settings if not specified */ arena.c: low_level=-1; arena.c: hi_level=-1; /* Ignore level settings if not specified */ arena.c: hi_level=-1; arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: victim = d->character; arena.c: if( !victim->pcdata->arena ) arena.c: DISPOSE( victim->pcdata->arena ); arena.c: if (hi_level>0 && low_level==-1) arena.c: sprintf(buf, "%s has ^zOPENED^x the arena with a MAX level of %d!",ch->name, hi_level); arena.c: else if (low_level>0 && hi_level==-1) arena.c: sprintf(buf, "%s has ^zOPENED^x the arena with a MIN level of %d!",ch->name, low_level); arena.c: else if (low_level == -1 && hi_level == -1) arena.c: sprintf(buf, "%s has ^zOPENED^x the arena!", ch->name); arena.c: sprintf(buf,"%s has ^zOPENED^x the arena for levels %d through %d!", ch->name, low_level, hi_level); arena.c: sprintf(buf, "%s has closed betting. Let the games begin!", ch->name); arena.c: sprintf(buf, "%s has canceled the arena match!",ch->name); arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: victim = d->character; arena.c: if( !victim->pcdata->arena ) arena.c: if( victim->pcdata->arena->status == 1 ) arena.c: victim->gold += victim->pcdata->arena->bet; arena.c: DISPOSE( victim->pcdata->arena ); arena.c: if( victim->pcdata->arena->status != 2 ) arena.c: victim->position = POS_STANDING; arena.c: victim->gold += arena_fee; arena.c: char_to_room( victim, get_room_index(victim->retran) ); arena.c: victim->pcdata->arena->status = 0; arena.c: if( victim->pcdata->arena ) arena.c: DISPOSE( victim->pcdata->arena ); arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: victim = d->character; arena.c: if( !victim->pcdata->arena ) arena.c: if( victim->pcdata->arena->status == 0 ) arena.c: DISPOSE( victim->pcdata->arena ); arena.c: switch( victim->pcdata->arena->status ) arena.c: sprintf(cmd, "Betting (%-12s -- %d)", arena.c: victim->pcdata->arena->bet_on->name, arena.c: victim->pcdata->arena->bet ); arena.c: sprintf(buf, "%15s: %s\n\r", victim->name, cmd); arena.c: if( ch->pcdata->arena ) arena.c: /* Made a bit more readable -- Kratas */ arena.c: switch( ch->pcdata->arena->status ) arena.c: if ((ch->gold < arena_fee) && !IS_IMMORTAL(ch)) arena.c: if (ch->level<low_level && low_level != -1) arena.c: if (ch->level>hi_level && hi_level != -1) arena.c: if (ch->fighting) arena.c: for ( arenaarea = first_area; arenaarea; arenaarea = arenaarea->next ) arena.c: if ( !str_cmp( arenaarea->filename, "arena.are" ) ) arena.c: lo_vnum=arenaarea->low_r_vnum; arena.c: hi_vnum=arenaarea->hi_r_vnum; arena.c: bug("Cannot find a room in the arena for %s!", ch->name); arena.c: ch->position = POS_STANDING; arena.c: ch->retran = ch->in_room->vnum; arena.c: sprintf(buf, "Bill Gates donates %d coins for %s\'s entrance fee!",arena_fee, ch->name); arena.c: ch->gold-=arena_fee; arena.c: sprintf(buf, "%s has joined the arena match!", ch->name); arena.c: CREATE( ch->pcdata->arena, ARENA_DATA, 1 ); arena.c: ch->pcdata->arena->status = 2; arena.c: if (ch->fighting) arena.c: ch->name ); arena.c: sprintf( buf, "%s has challenged %s to a duel!", ch->name, victim->name ); arena.c: CREATE( victim->pcdata->arena, ARENA_DATA, 1 ); arena.c: victim->pcdata->arena->challenged_by = ch; arena.c: if (ch->fighting) arena.c: for ( arenaarea = first_area; arenaarea; arenaarea = arenaarea->next ) arena.c: if ( !str_cmp( arenaarea->filename, "arena.are" ) ) arena.c: lo_vnum=arenaarea->low_r_vnum; arena.c: hi_vnum=arenaarea->hi_r_vnum; arena.c: bug("Cannot find a room in the arena for %s!", ch->name); arena.c: ch->position = POS_STANDING; arena.c: ch->retran = ch->in_room->vnum; arena.c: sprintf(buf, "Bill Gates donates %d coins for %s\'s entrance fee!",arena_fee, ch->name); arena.c: ch->gold -= 10000; arena.c: sprintf(buf, "%s has joined the arena match!", ch->name); arena.c: CREATE( ch->pcdata->arena, ARENA_DATA, 1 ); arena.c: ch->pcdata->arena->status = 2; arena.c: ch->name, ch->pcdata->arena->challenged_by->name ); arena.c: DISPOSE( ch->pcdata->arena ); arena.c: if( !ch->pcdata->arena ) arena.c: if( ch->pcdata->arena->status != 2 ) arena.c: if (ch->fighting) arena.c: ch->position = POS_STANDING; arena.c: char_to_room( ch, get_room_index(ch->retran) ); arena.c: sprintf(buf, "%s has wimped out of the arena match!", ch->name); arena.c: DISPOSE( ch->pcdata->arena ); arena.c: arena_add(-1,FALSE); arena.c: if( ch->pcdata->arena ) arena.c: if( ch->gold < betamt ) arena.c: if( victim->pcdata->arena && victim->pcdata->arena->status != 2 ) arena.c: sprintf(buf, "A bid of %d coins has been placed on %s to win!", betamt, victim->name); arena.c: CREATE( ch->pcdata->arena, ARENA_DATA, 1 ); arena.c: ch->pcdata->arena->bet = betamt; arena.c: ch->gold -= ch->pcdata->arena->bet; arena.c: ch->pcdata->arena->bet_on = victim; arena.c: ch->pcdata->arena->bet_on->pcdata->arena->num_bets++; arena.c: arena_total_bets+=ch->pcdata->arena->bet; arena.c: ch->pcdata->arena->status = 1; arena.c: if (ch->pcdata->arena && ch->pcdata->arena->status == 2) arena.c: if (sysdata.arena==1 && (ch->pcdata->arena && ch->pcdata->arena->status == 0)) arena.c: sprintf(buf, "\n\rThe arena has %d minutes left in the betting stage.\n\r",(arena_bet_time - arena_update_mode)); arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: victim = d->character; arena.c: if( !victim->pcdata->arena ) arena.c: if( victim->pcdata->arena->status == 1 ) arena.c: victim->gold += victim->pcdata->arena->bet; arena.c: DISPOSE( victim->pcdata->arena ); arena.c: if( victim->pcdata->arena->status != 2 ) arena.c: victim->position = POS_STANDING; arena.c: victim->gold += arena_fee; arena.c: char_to_room( victim, get_room_index(victim->retran) ); arena.c: DISPOSE( victim->pcdata->arena ); arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: victim = d->character; arena.c: if( !victim->pcdata->arena ) arena.c: if( victim->pcdata->arena->status == 1 ) arena.c: victim->gold += victim->pcdata->arena->bet; arena.c: DISPOSE( victim->pcdata->arena ); arena.c: if( victim->pcdata->arena->status != 2 ) arena.c: victim->position = POS_STANDING; arena.c: victim->gold += arena_fee; arena.c: char_to_room( victim, get_room_index(victim->retran) ); arena.c: DISPOSE( victim->pcdata->arena ); arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: victim = d->character; arena.c: if( !victim->pcdata->arena ) arena.c: if( victim->pcdata->arena->challenged_by != NULL ) arena.c: DISPOSE( victim->pcdata->arena ); arena.c: for( d = first_descriptor ; d ; d = d->next ) arena.c: if( !d->character ) arena.c: ch = d->character; arena.c: if( ch->pcdata->arena && ch->pcdata->arena->status == 2 ) arena.c: for( d = first_descriptor ; d ; d = d->next ) /* if number is positive, we've just added */ arena.c: if( !d->character ) arena.c: ch = d->character; arena.c: if( !ch->pcdata->arena ) arena.c: switch( ch->pcdata->arena->status ) arena.c: if( ch->pcdata->arena->bet_on != arena_winner ) arena.c: if (ch->pcdata->arena->bet_on->pcdata->arena->num_bets <= 0) arena.c: ch->pcdata->arena->bet_on->pcdata->arena->num_bets=1; arena.c: /* percent = ch->pcdata->arenabet/arena_total_bets; arena.c: percent = (arena_total_bets/ch->pcdata->arenabet); arena.c: percent = 1/ch->pcdata->arena->bet_on->pcdata->arena->num_bets; arena.c: amount = ch->pcdata->arena->bet * percent; arena.c: gold = ch->pcdata->arena->bet + amount; arena.c: ch->gold += gold; arena.c: DISPOSE( ch->pcdata->arena ); arena.c: sprintf(buf, "%s has ^zWON^x the arena match, and ^z%d^x coins!", ch->name, arena_prize); arena.c: ch->gold += arena_prize; arena.c: ch->pcdata->arena_wins++; arena.c: adjust_hiscore("arena_pkill", ch, ch->pcdata->arena_wins); arena.c: ch->position=POS_STANDING; arena.c: ch->hit = ch->max_hit; arena.c: ch->mana = ch->max_mana; arena.c: ch->move = ch->max_move; arena.c: ch->pcdata->condition[COND_BLOODTHIRST] = (10 + ch->level); arena.c: char_to_room( ch, get_room_index(ch->retran)); arena.c: DISPOSE( ch->pcdata->arena ); arena.c: DISPOSE( ch->pcdata->arena ); arena.c: DISPOSE( ch->pcdata->arena ); arena.c: if( victim->pcdata->arena->status == 2 ) arena.c: sprintf( buf, "%s has been defeated by %s in the arena!", victim->name, ch->name); arena.c: victim->name, arena.c: victim->level, arena.c: (IS_NPC(ch) ? ch->short_descr : ch->name), arena.c: victim->in_room->vnum ); arena.c: ch->pcdata->arena_kills++; arena.c: victim->pcdata->arena_deaths++; arena.c: victim->position=POS_STANDING; arena.c: victim->hit = victim->max_hit; arena.c: victim->mana = victim->max_mana; arena.c: victim->move = victim->max_move; arena.c: victim->pcdata->condition[COND_BLOODTHIRST] = (10 + victim->level); arena.c: char_to_room( victim, get_room_index(victim->retran)); arena.c: victim->pcdata->arena->status = 3; /* 0==no arena, 1==betting, 2==fighting, 3==dead, 4==watching */ arena.c: arena_add(-1,TRUE); /* Reduce the player count by one */ assa.c: if ( (IS_NPC( ch ) && ( ch->desc->original )) assa.c: if ( ch->mount ) assa.c: /* Added Stabbing Weapon -Tsunami */ assa.c: || ( obj->value[3] != 11 && obj->value[3] != 2 ) ) assa.c: if ( victim->fighting ) assa.c: /* Can assassinate a char even if it's hurt as long as it's sleeping. -Tsunami */ assa.c: if ( victim->hit < victim->max_hit && IS_AWAKE( victim ) ) assa.c: WAIT_STATE( ch, skill_table[gsn_assassinate]->beats ); assa.c: percent = number_percent() + UMAX(0, (victim->level - ch->level) * 2); assa.c: if( IS_NPC(ch) || percent < ch->pcdata->learned[gsn_assassinate] ) axsmaug.c: for(subit = firstsubskill; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubspell; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubobjflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubmobflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubareaflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubaffectedflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubmobrace; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubmobclass; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubmoblang; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubmobpos; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubsector; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubbodypart; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubrisflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubattack; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubdefense; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubobjtype; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubwearflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubcontflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubwearlayerflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubliquid; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubherb; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubtrigger; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubtraptype; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubtrapflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubweapontype; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubobjaffects; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubroomflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubexitdir; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubexitflag; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubspec; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubwearloc; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubprogtrig; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(subit = firstsubprogcomm; subit; subit=subit->next) axsmaug.c: if(!strcmp(subit->from,s)) axsmaug.c: return subit->to; axsmaug.c: for(sub1=firstsubskill;sub1;sub1=sub1->next) axsmaug.c: STRFREE(sub1->to); axsmaug.c: STRFREE(sub1->from); axsmaug.c: for(sub2=firstsubspell;sub2;sub2=sub2->next) axsmaug.c: STRFREE(sub2->to); axsmaug.c: STRFREE(sub2->from); axsmaug.c: for(sub3=firstsubobjflag;sub3;sub3=sub3->next) axsmaug.c: STRFREE(sub3->to); axsmaug.c: STRFREE(sub3->from); axsmaug.c: for(sub4=firstsubmobflag;sub4;sub4=sub4->next) axsmaug.c: STRFREE(sub4->to); axsmaug.c: STRFREE(sub4->from); axsmaug.c: for(sub5=firstsubareaflag;sub5;sub5=sub5->next) axsmaug.c: STRFREE(sub5->to); axsmaug.c: STRFREE(sub5->from); axsmaug.c: for(sub6=firstsubaffectedflag;sub6;sub6=sub6->next) axsmaug.c: STRFREE(sub6->to); axsmaug.c: STRFREE(sub6->from); axsmaug.c: for(sub7=firstsubmobrace;sub7;sub7=sub7->next) axsmaug.c: STRFREE(sub7->to); axsmaug.c: STRFREE(sub7->from); axsmaug.c: for(sub8=firstsubmobclass;sub8;sub8=sub8->next) axsmaug.c: STRFREE(sub8->to); axsmaug.c: STRFREE(sub8->from); axsmaug.c: for(sub9=firstsubmoblang;sub9;sub9=sub9->next) axsmaug.c: STRFREE(sub9->to); axsmaug.c: STRFREE(sub9->from); axsmaug.c: for(sub10=firstsubmobpos;sub10;sub10=sub10->next) axsmaug.c: STRFREE(sub10->to); axsmaug.c: STRFREE(sub10->from); axsmaug.c: for(sub11=firstsubsector;sub11;sub11=sub11->next) axsmaug.c: STRFREE(sub11->to); axsmaug.c: STRFREE(sub11->from); axsmaug.c: for(sub12=firstsubbodypart;sub12;sub12=sub12->next) axsmaug.c: STRFREE(sub12->to); axsmaug.c: STRFREE(sub12->from); axsmaug.c: for(sub13=firstsubrisflag;sub13;sub13=sub13->next) axsmaug.c: STRFREE(sub13->to); axsmaug.c: STRFREE(sub13->from); axsmaug.c: for(sub14=firstsubattack;sub14;sub14=sub14->next) axsmaug.c: STRFREE(sub14->to); axsmaug.c: STRFREE(sub14->from); axsmaug.c: for(sub15=firstsubdefense;sub15;sub15=sub15->next) axsmaug.c: STRFREE(sub15->to); axsmaug.c: STRFREE(sub15->from); axsmaug.c: for(sub16=firstsubobjtype;sub16;sub16=sub16->next) axsmaug.c: STRFREE(sub16->to); axsmaug.c: STRFREE(sub16->from); axsmaug.c: for(sub17=firstsubwearflag;sub17;sub17=sub17->next) axsmaug.c: STRFREE(sub17->to); axsmaug.c: STRFREE(sub17->from); axsmaug.c: for(sub18=firstsubcontflag;sub18;sub18=sub18->next) axsmaug.c: STRFREE(sub18->to); axsmaug.c: STRFREE(sub18->from); axsmaug.c: for(sub19=firstsubwearlayerflag;sub19;sub19=sub19->next) axsmaug.c: STRFREE(sub19->to); axsmaug.c: STRFREE(sub19->from); axsmaug.c: for(sub20=firstsubliquid;sub20;sub20=sub20->next) axsmaug.c: STRFREE(sub20->to); axsmaug.c: STRFREE(sub20->from); axsmaug.c: for(sub21=firstsubherb;sub21;sub21=sub21->next) axsmaug.c: STRFREE(sub21->to); axsmaug.c: STRFREE(sub21->from); axsmaug.c: for(sub22=firstsubtrigger;sub22;sub22=sub22->next) axsmaug.c: STRFREE(sub22->to); axsmaug.c: STRFREE(sub22->from); axsmaug.c: for(sub23=firstsubtraptype;sub23;sub23=sub23->next) axsmaug.c: STRFREE(sub23->to); axsmaug.c: STRFREE(sub23->from); axsmaug.c: for(sub24=firstsubtrapflag;sub24;sub24=sub24->next) axsmaug.c: STRFREE(sub24->to); axsmaug.c: STRFREE(sub24->from); axsmaug.c: for(sub25=firstsubweapontype;sub25;sub25=sub25->next) axsmaug.c: STRFREE(sub25->to); axsmaug.c: STRFREE(sub25->from); axsmaug.c: for(sub26=firstsubobjaffects;sub26;sub26=sub26->next) axsmaug.c: STRFREE(sub26->to); axsmaug.c: STRFREE(sub26->from); axsmaug.c: for(sub27=firstsubroomflag;sub27;sub27=sub27->next) axsmaug.c: STRFREE(sub27->to); axsmaug.c: STRFREE(sub27->from); axsmaug.c: for(sub28=firstsubexitdir;sub28;sub28=sub28->next) axsmaug.c: STRFREE(sub28->to); axsmaug.c: STRFREE(sub28->from); axsmaug.c: for(sub29=firstsubexitflag;sub29;sub29=sub29->next) axsmaug.c: STRFREE(sub29->to); axsmaug.c: STRFREE(sub29->from); axsmaug.c: for(sub30=firstsubspec;sub30;sub30=sub30->next) axsmaug.c: STRFREE(sub30->to); axsmaug.c: STRFREE(sub30->from); axsmaug.c: for(sub31=firstsubwearloc;sub31;sub31=sub31->next) axsmaug.c: STRFREE(sub31->to); axsmaug.c: STRFREE(sub31->from); axsmaug.c: for(sub32=firstsubprogtrig;sub32;sub32=sub32->next) axsmaug.c: STRFREE(sub32->to); axsmaug.c: STRFREE(sub32->from); axsmaug.c: for(sub33=firstsubprogcomm;sub33;sub33=sub33->next) axsmaug.c: STRFREE(sub33->to); axsmaug.c: STRFREE(sub33->from); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: subit->from=STRALLOC(arg1); axsmaug.c: subit->to=STRALLOC(arg2); axsmaug.c: if(vnum < tarea->low_m_vnum axsmaug.c: || vnum > tarea->hi_m_vnum) axsmaug.c: if(vnum < tarea->low_o_vnum axsmaug.c: || vnum > tarea->hi_o_vnum) axsmaug.c: for(vnum=tarea->low_m_vnum;vnum<= tarea->hi_m_vnum;vnum++) axsmaug.c: if (IS_SET(pMobIndex->act,ACT_DELETED)) axsmaug.c: for(vnum=tarea->low_o_vnum;vnum<= tarea->hi_o_vnum;vnum++) axsmaug.c: if (pObjIndex->item_type == ITEM_DELETED) axsmaug.c: for ( treset = tarea->first_reset; treset; treset = treset->next ) axsmaug.c: switch( treset->command ) /* extra arg1 arg2 arg3 */ axsmaug.c: vnum=treset->arg1; axsmaug.c: if(vnum >= tarea->low_o_vnum axsmaug.c: && vnum <= tarea->hi_o_vnum) axsmaug.c: vnum=treset->arg1; axsmaug.c: if(vnum >= tarea->low_m_vnum axsmaug.c: && vnum <= tarea->hi_m_vnum) axsmaug.c: if(isdigit(arg[strlen(arg)-1])) axsmaug.c: if(isdigit(arg[strlen(arg)-1])) axsmaug.c: if(isdigit(arg[strlen(arg)-1])) axsmaug.c: if(isdigit(arg[strlen(arg)-1])) axsmaug.c: area->name=STRALLOC(buf); axsmaug.c: area->filename=STRALLOC(filename); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: top_area--; axsmaug.c: area->author=STRALLOC(buf); axsmaug.c: area->low_soft_range=IN_LEVEL(atof(word)); axsmaug.c: area->hi_soft_range=IN_LEVEL(atof(word)); axsmaug.c: area->low_hard_range=IN_LEVEL(atof(word)); axsmaug.c: area->hi_hard_range=IN_LEVEL(atof(word)); axsmaug.c: area->low_r_vnum=IN_VNUM(atoi(word)); axsmaug.c: area->hi_r_vnum=IN_VNUM(atoi(word)); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: for(tarea=first_area;tarea;tarea=tarea->next) axsmaug.c: if((area->low_r_vnum >=tarea->low_r_vnum axsmaug.c: && area->low_r_vnum <= tarea->hi_r_vnum) axsmaug.c: || (area->hi_r_vnum >=tarea->low_r_vnum axsmaug.c: && area->hi_r_vnum <= tarea->hi_r_vnum)) axsmaug.c: sprintf(buff,"%s (%d - %d) would overlap %s (%d - %d) rooms\n\r", axsmaug.c: area->name, axsmaug.c: area->low_r_vnum, axsmaug.c: area->hi_r_vnum, axsmaug.c: tarea->name, axsmaug.c: tarea->low_r_vnum, axsmaug.c: tarea->hi_r_vnum); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: for(tarea=first_build;tarea;tarea=tarea->next) axsmaug.c: if((area->low_r_vnum >=tarea->low_r_vnum axsmaug.c: && area->low_r_vnum <= tarea->hi_r_vnum) axsmaug.c: || (area->hi_r_vnum >=tarea->low_r_vnum axsmaug.c: && area->hi_r_vnum <= tarea->hi_r_vnum)) axsmaug.c: sprintf(buff,"%s (%d - %d) would overlap %s (%d - %d) rooms\n\r", axsmaug.c: area->name, axsmaug.c: area->low_r_vnum, axsmaug.c: area->hi_r_vnum, axsmaug.c: tarea->name, axsmaug.c: tarea->low_r_vnum, axsmaug.c: tarea->hi_r_vnum); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: area->low_m_vnum=IN_VNUM(atoi(word)); axsmaug.c: area->hi_m_vnum=IN_VNUM(atoi(word)); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: for(tarea=first_area;tarea;tarea=tarea->next) axsmaug.c: if((area->low_m_vnum >=tarea->low_m_vnum axsmaug.c: && area->low_m_vnum <= tarea->hi_m_vnum) axsmaug.c: || (area->hi_m_vnum >=tarea->low_m_vnum axsmaug.c: && area->hi_m_vnum <= tarea->hi_m_vnum)) axsmaug.c: sprintf(buff,"%s (%d - %d) would overlap %s (%d - %d) mobs\n\r", axsmaug.c: area->name, axsmaug.c: area->low_m_vnum, axsmaug.c: area->hi_m_vnum, axsmaug.c: tarea->name, axsmaug.c: tarea->low_m_vnum, axsmaug.c: tarea->hi_m_vnum); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: for(tarea=first_build;tarea;tarea=tarea->next) axsmaug.c: if((area->low_m_vnum >=tarea->low_m_vnum axsmaug.c: && area->low_m_vnum <= tarea->hi_m_vnum) axsmaug.c: || (area->hi_m_vnum >=tarea->low_m_vnum axsmaug.c: && area->hi_m_vnum <= tarea->hi_m_vnum)) axsmaug.c: sprintf(buff,"%s (%d - %d) would overlap %s (%d - %d) mobs\n\r", axsmaug.c: area->name, axsmaug.c: area->low_m_vnum, axsmaug.c: area->hi_m_vnum, axsmaug.c: tarea->name, axsmaug.c: tarea->low_m_vnum, axsmaug.c: tarea->hi_m_vnum); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: area->low_o_vnum=IN_VNUM(atoi(word)); axsmaug.c: area->hi_o_vnum=IN_VNUM(atoi(word)); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: for(tarea=first_area;tarea;tarea=tarea->next) axsmaug.c: if((area->low_o_vnum >=tarea->low_o_vnum axsmaug.c: && area->low_o_vnum <= tarea->hi_o_vnum) axsmaug.c: || (area->hi_o_vnum >=tarea->low_o_vnum axsmaug.c: && area->hi_o_vnum <= tarea->hi_o_vnum)) axsmaug.c: sprintf(buff,"%s (%d - %d) would overlap %s (%d - %d) objects\n\r", axsmaug.c: area->name, axsmaug.c: area->low_o_vnum, axsmaug.c: area->hi_o_vnum, axsmaug.c: tarea->name, axsmaug.c: tarea->low_o_vnum, axsmaug.c: tarea->hi_o_vnum); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: for(tarea=first_build;tarea;tarea=tarea->next) axsmaug.c: if((area->low_o_vnum >=tarea->low_o_vnum axsmaug.c: && area->low_o_vnum <= tarea->hi_o_vnum) axsmaug.c: || (area->hi_o_vnum >=tarea->low_o_vnum axsmaug.c: && area->hi_o_vnum <= tarea->hi_o_vnum)) axsmaug.c: sprintf(buff,"%s (%d - %d) would overlap %s (%d - %d) objects\n\r", axsmaug.c: area->name, axsmaug.c: area->low_o_vnum, axsmaug.c: area->hi_o_vnum, axsmaug.c: tarea->name, axsmaug.c: tarea->low_o_vnum, axsmaug.c: tarea->hi_o_vnum); axsmaug.c: STRFREE(area->filename); axsmaug.c: STRFREE(area->name); axsmaug.c: STRFREE(area->author); axsmaug.c: area->resetmsg=STRALLOC(buf); axsmaug.c: area->reset_frequency = atoi(buf); axsmaug.c: if((i=get_areaflag(word)) > -1) axsmaug.c: SET_BIT(area->flags,1 << i); axsmaug.c: area->high_economy=atoi(word); axsmaug.c: area->low_economy=atoi(word); axsmaug.c: pMobIndex->vnum=IN_VNUM(atoi(buf)); axsmaug.c: iHash = pMobIndex->vnum % MAX_KEY_HASH; axsmaug.c: pMobIndex->next = mob_index_hash[iHash]; axsmaug.c: pMobIndex->talk=STRALLOC(""); axsmaug.c: pMobIndex->player_name = STRALLOC(buf); axsmaug.c: pMobIndex->short_descr = STRALLOC(buf); axsmaug.c: pMobIndex->long_descr = STRALLOC(buf); axsmaug.c: pMobIndex->description=fread_string(fp); axsmaug.c: pMobIndex->talk=fread_string(fp); axsmaug.c: if((i=get_actflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->act,1 << i); axsmaug.c: xSET_BIT(pMobIndex->act,i); axsmaug.c: if((i=get_aflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->affected_by,1 << i); axsmaug.c: xSET_BIT(pMobIndex->affected_by,i); axsmaug.c: pMobIndex->alignment=(int)(atof(buf) * MAX_ALIGNMENT); axsmaug.c: pMobIndex->level=IN_LEVEL(atof(buf)); axsmaug.c: pMobIndex->mobthac0=atoi(buf); axsmaug.c: pMobIndex->ac=(int)(atof(buf) * MAX_MOBARMORCLASS); axsmaug.c: pMobIndex->hitnodice=IN_DICE(atof(buf)); axsmaug.c: pMobIndex->hitsizedice=IN_DICE(atof(buf)); axsmaug.c: pMobIndex->hitplus=IN_DICE(atof(buf)); axsmaug.c: pMobIndex->damnodice=IN_DICE(atof(buf)); axsmaug.c: pMobIndex->damsizedice=IN_DICE(atof(buf)); axsmaug.c: pMobIndex->damplus=IN_DICE(atof(buf)); axsmaug.c: pMobIndex->gold= GOLDADJ(atoi(buf)); axsmaug.c: pMobIndex->exp=atoi(buf); axsmaug.c: pMobIndex->position=i; axsmaug.c: pMobIndex->defposition=i; axsmaug.c: pMobIndex->sex=i; axsmaug.c: pMobIndex->perm_str = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->perm_int = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->perm_wis = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->perm_dex = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->perm_con = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->perm_cha = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->perm_lck = (int) (atof(buf) * MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->saving_poison_death=atoi(buf); axsmaug.c: pMobIndex->saving_wand=atoi(buf); axsmaug.c: pMobIndex->saving_para_petri=atoi(buf); axsmaug.c: pMobIndex->saving_breath=atoi(buf); axsmaug.c: pMobIndex->saving_spell_staff=atoi(buf); axsmaug.c: pMobIndex->saving_psionics=atoi(buf); axsmaug.c: if((i=get_npc_race(word)) > -1) axsmaug.c: pMobIndex->race=i; axsmaug.c: if((i=get_npc_class(word)) > -1) axsmaug.c: pMobIndex->class=i; axsmaug.c: pMobIndex->height=atoi(buf); axsmaug.c: pMobIndex->weight=atoi(buf); axsmaug.c: if((i=get_langflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->speaks,1 << i); axsmaug.c: if((i=get_langflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->speaking,1 << i); axsmaug.c: pMobIndex->numattacks=atoi(buf); axsmaug.c: pMobIndex->hoard=IN_VNUM(atoi(buf)); axsmaug.c: pMobIndex->terrain=i; axsmaug.c: pMobIndex->hitroll=atoi(buf); axsmaug.c: pMobIndex->damroll=atoi(buf); axsmaug.c: if((i=get_partflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->xflags,1 << i); axsmaug.c: if((i=get_risflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->resistant,1 << i); axsmaug.c: if((i=get_risflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->immune,1 << i); axsmaug.c: if((i=get_risflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->susceptible,1 << i); axsmaug.c: if((i=get_attackflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->attacks,1 << i); axsmaug.c: xSET_BIT(pMobIndex->attacks, i); axsmaug.c: else if((i=get_attackflag2(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->attack2,1 << i); axsmaug.c: if((i=get_defenseflag(word)) > -1) axsmaug.c: SET_BIT(pMobIndex->defenses,1 << i); axsmaug.c: xSET_BIT(pMobIndex->defenses, i); axsmaug.c: pMobIndex->spec_fun=spec_lookup(buf); axsmaug.c: if(pMobIndex->mudprogs) axsmaug.c: mprog->comlist=STRALLOC(progbuf); axsmaug.c: CREATE( mprog->next, MPROG_DATA, 1 ); axsmaug.c: mprog = mprog->next; axsmaug.c: pMobIndex->mudprogs=mprog; axsmaug.c: mprog->type=i; axsmaug.c: xSET_BIT(pMobIndex->progtypes,mprog->type); axsmaug.c: pMobIndex->progtypes = pMobIndex->progtypes | mprog->type; axsmaug.c: mprog->arglist=STRALLOC(buf); axsmaug.c: mprog->comlist=STRALLOC(progbuf); axsmaug.c: mprog->next = NULL; axsmaug.c: for ( mprog = pMobIndex->mudprogs; mprog; mprog = mprog->next ) axsmaug.c: prog=make_in_prog(mprog->comlist, axsmaug.c: pMobIndex->player_name, axsmaug.c: pMobIndex->vnum, axsmaug.c: area->low_m_vnum, axsmaug.c: area->hi_m_vnum, axsmaug.c: STRFREE(mprog->comlist); axsmaug.c: mprog->comlist=STRALLOC(prog); axsmaug.c: pObjIndex->vnum=IN_VNUM(atoi(buf)); axsmaug.c: iHash = pObjIndex->vnum % MAX_KEY_HASH; axsmaug.c: pObjIndex->next = obj_index_hash[iHash]; axsmaug.c: pObjIndex->action_desc = STRALLOC(""); axsmaug.c: pObjIndex->level=IN_VNUM(atoi(buf)); axsmaug.c: pObjIndex->name = STRALLOC(buf); axsmaug.c: pObjIndex->short_descr = STRALLOC(buf); axsmaug.c: pObjIndex->description = STRALLOC(buf); axsmaug.c: STRFREE(pObjIndex->action_desc); axsmaug.c: pObjIndex->action_desc = STRALLOC(buf); axsmaug.c: if((i=get_otype(word)) > -1) axsmaug.c: pObjIndex->item_type=i; axsmaug.c: if((i=get_oflag(word)) > -1) axsmaug.c: SET_BIT(pObjIndex->extra_flags,1 << i); axsmaug.c: xSET_BIT(pObjIndex->extra_flags, i); axsmaug.c: else if((i=get_mflag(word)) > -1) axsmaug.c: SET_BIT(pObjIndex->magic_flags,1 << i); axsmaug.c: if((i=get_wflag(word)) > -1) axsmaug.c: SET_BIT(pObjIndex->wear_flags,1 << i); axsmaug.c: SET_BIT(pObjIndex->layers,1 << i); axsmaug.c: switch ( pObjIndex->item_type ) axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: if((i=get_cont_flag(word)) > -1) axsmaug.c: SET_BIT(pObjIndex->value[1], 1 << i); axsmaug.c: pObjIndex->value[2]= -1; axsmaug.c: pObjIndex->value[2]=IN_VNUM(atoi(buf)); axsmaug.c: if(pObjIndex->value[2] < area->low_o_vnum axsmaug.c: || pObjIndex->value[2] > area->hi_o_vnum) axsmaug.c: if(pObjIndex->value[2] > 0) axsmaug.c: pObjIndex->vnum); axsmaug.c: pObjIndex->value[3]=atoi(buf); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[2]=i; axsmaug.c: pObjIndex->value[3]=atoi(buf); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[3]=atoi(buf); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[3]=atoi(buf); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: if(!strcmp(word,herb_table[i]->name)) axsmaug.c: pObjIndex->value[2]=i; axsmaug.c: pObjIndex->value[0]=IN_VNUM(atoi(buf)); axsmaug.c: if((i=get_trigflag(word)) > -1) axsmaug.c: SET_BIT(pObjIndex->value[0],1 << i); axsmaug.c: if ( IS_SET( pObjIndex->value[0], TRIG_TELEPORT ) axsmaug.c: || IS_SET( pObjIndex->value[0], TRIG_TELEPORTALL ) axsmaug.c: || IS_SET( pObjIndex->value[0], TRIG_TELEPORTPLUS ) ) axsmaug.c: pObjIndex->value[1]=IN_VNUM(atoi(buf)); axsmaug.c: if ( IS_SET( pObjIndex->value[0], TRIG_RAND4 ) axsmaug.c: || IS_SET( pObjIndex->value[0], TRIG_RAND6 ) ) axsmaug.c: pObjIndex->value[1]=IN_VNUM(atoi(buf)); axsmaug.c: if ( IS_SET( pObjIndex->value[0], TRIG_DOOR ) ) axsmaug.c: pObjIndex->value[1]=IN_VNUM(atoi(buf)); axsmaug.c: pObjIndex->value[2]=IN_VNUM(atoi(buf)); axsmaug.c: pObjIndex->value[2]=IN_VNUM(atoi(buf)); axsmaug.c: pObjIndex->value[1]=GOLDADJ(atoi(buf)); axsmaug.c: pObjIndex->value[2]=atoi(buf); axsmaug.c: pObjIndex->value[0]=IN_LEVEL(atof(buf)); axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: pObjIndex->value[1]=i; axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: pObjIndex->value[2]=i; axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: pObjIndex->value[3]=i; axsmaug.c: pObjIndex->value[0]=IN_LEVEL(atof(buf)); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[2]=atoi(buf); axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: pObjIndex->value[3]=i; axsmaug.c: pObjIndex->value[0]=IN_LEVEL(atof(buf)); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[2]=atoi(buf); axsmaug.c: pObjIndex->value[3]=atoi(buf); axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: pObjIndex->value[4]=i; axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: pObjIndex->value[5]=i; axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=i; axsmaug.c: pObjIndex->value[2]=IN_LEVEL(atof(buf)); axsmaug.c: if((i=get_trapflag(word)) > -1) axsmaug.c: SET_BIT(pObjIndex->value[3],1 << i); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=atoi(buf); axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: pObjIndex->value[1]=IN_DICE(atof(buf)); axsmaug.c: pObjIndex->value[2]=IN_DICE(atof(buf)); axsmaug.c: pObjIndex->value[3]=i; axsmaug.c: pObjIndex->value[0]=atoi(buf); axsmaug.c: display(o_types[pObjIndex->item_type]); axsmaug.c: display("-Unknown itemtype for values\n\r"); axsmaug.c: pObjIndex->weight=atoi(buf); axsmaug.c: pObjIndex->cost=GOLDADJ(atoi(buf)); axsmaug.c: pObjIndex->rent=GOLDADJ(atoi(buf)); axsmaug.c: ed->keyword = STRALLOC(buf); axsmaug.c: ed->description = fread_string( fp ); axsmaug.c: LINK( ed, pObjIndex->first_extradesc, axsmaug.c: pObjIndex->last_extradesc, next, prev ); axsmaug.c: paf->type = -1; axsmaug.c: paf->duration = -1; axsmaug.c: paf->location=i; axsmaug.c: paf->bitvector = 0; axsmaug.c: xCLEAR_BITS(paf->bitvector); axsmaug.c: paf->modifier = atoi(buf); axsmaug.c: LINK( paf, pObjIndex->first_affect, pObjIndex->last_affect, axsmaug.c: paf->type = -1; axsmaug.c: paf->duration = -1; axsmaug.c: paf->location=i; axsmaug.c: paf->bitvector = 0; axsmaug.c: xCLEAR_BITS(paf->bitvector); axsmaug.c: SET_BIT(paf->modifier,1 << i); axsmaug.c: LINK( paf, pObjIndex->first_affect, axsmaug.c: pObjIndex->last_affect, axsmaug.c: paf->type = -1; axsmaug.c: paf->duration = -1; axsmaug.c: paf->location=i; axsmaug.c: paf->bitvector = 0; axsmaug.c: xCLEAR_BITS(paf->bitvector); axsmaug.c: SET_BIT(paf->modifier,1 << i); axsmaug.c: LINK( paf, pObjIndex->first_affect, pObjIndex->last_affect, axsmaug.c: paf->type = -1; axsmaug.c: paf->duration = -1; axsmaug.c: paf->location=i; axsmaug.c: paf->bitvector = 0; axsmaug.c: xCLEAR_BITS(paf->bitvector); axsmaug.c: if(!strcmp(word,skill_table[i]->name)) axsmaug.c: paf->modifier=i; axsmaug.c: LINK( paf, pObjIndex->first_affect, pObjIndex->last_affect, axsmaug.c: if(pObjIndex->mudprogs) axsmaug.c: mprog->comlist=STRALLOC(progbuf); axsmaug.c: CREATE( mprog->next, MPROG_DATA, 1 ); axsmaug.c: mprog = mprog->next; axsmaug.c: pObjIndex->mudprogs=mprog; axsmaug.c: mprog->type=i; axsmaug.c: xSET_BIT(pObjIndex->progtypes,mprog->type); axsmaug.c: pObjIndex->progtypes = pObjIndex->progtypes | mprog->type; axsmaug.c: mprog->arglist=STRALLOC(buf); axsmaug.c: mprog->comlist=STRALLOC(progbuf); axsmaug.c: mprog->next = NULL; axsmaug.c: for ( mprog = pObjIndex->mudprogs; mprog; mprog = mprog->next ) axsmaug.c: prog=make_in_prog(mprog->comlist, axsmaug.c: pObjIndex->name, axsmaug.c: pObjIndex->vnum, axsmaug.c: area->low_o_vnum, axsmaug.c: area->hi_o_vnum, axsmaug.c: STRFREE(mprog->comlist); axsmaug.c: mprog->comlist=STRALLOC(prog); axsmaug.c: pRoomIndex->vnum=IN_VNUM(atoi(buf)); axsmaug.c: pRoomIndex->area=area; axsmaug.c: iHash = pRoomIndex->vnum % MAX_KEY_HASH; axsmaug.c: pRoomIndex->next = room_index_hash[iHash]; axsmaug.c: pRoomIndex->name = STRALLOC(buf); axsmaug.c: pRoomIndex->description=fread_string(fp); axsmaug.c: if((i=get_rflag(word)) > -1) axsmaug.c: SET_BIT(pRoomIndex->room_flags,1 << i); axsmaug.c: else if((i=get_rflag2(word)) > -1) axsmaug.c: SET_BIT(pRoomIndex->room_flag2,1 << i); axsmaug.c: pRoomIndex->sector_type=i; axsmaug.c: pRoomIndex->tele_delay = atoi(buf); axsmaug.c: pRoomIndex->tele_vnum = IN_VNUM(atoi(buf)); axsmaug.c: pRoomIndex->tunnel = atoi(buf); axsmaug.c: pExit->vdir = door; axsmaug.c: pExit->key = -1; axsmaug.c: pExit->description = STRALLOC(""); axsmaug.c: pExit->keyword = STRALLOC(""); axsmaug.c: STRFREE(pExit->description); axsmaug.c: pExit->description = fread_string(fp); axsmaug.c: STRFREE(pExit->keyword); axsmaug.c: pExit->keyword = STRALLOC(buf); axsmaug.c: if((i=get_exflag(word)) > -1) axsmaug.c: SET_BIT(pExit->exit_info,1 << i); axsmaug.c: pExit->key = -1; axsmaug.c: pExit->key=IN_VNUM(atoi(buf)); axsmaug.c: if(pExit->key < area->low_o_vnum axsmaug.c: || pExit->key > area->hi_o_vnum) axsmaug.c: if(pExit->key > 0) axsmaug.c: fprintf(axlog,"Key from outside the area in room %d - exit %s", axsmaug.c: pRoomIndex->vnum,dir_name[door]); axsmaug.c: pExit->vnum=IN_VNUM(atoi(buf)); axsmaug.c: pExit->distance = atoi(buf); axsmaug.c: ed->keyword = STRALLOC(buf); axsmaug.c: ed->description = fread_string( fp ); axsmaug.c: LINK( ed, pRoomIndex->first_extradesc, axsmaug.c: pRoomIndex->last_extradesc, next, prev ); axsmaug.c: if(pRoomIndex->mudprogs) axsmaug.c: mprog->comlist=STRALLOC(progbuf); axsmaug.c: CREATE( mprog->next, MPROG_DATA, 1 ); axsmaug.c: mprog = mprog->next; axsmaug.c: pRoomIndex->mudprogs=mprog; axsmaug.c: mprog->type=i; axsmaug.c: xSET_BIT(pRoomIndex->progtypes,mprog->type); axsmaug.c: pRoomIndex->progtypes = pRoomIndex->progtypes | mprog->type; axsmaug.c: mprog->arglist=STRALLOC(buf); axsmaug.c: mprog->comlist=STRALLOC(progbuf); axsmaug.c: mprog->next = NULL; axsmaug.c: for ( mprog = pRoomIndex->mudprogs; mprog; mprog = mprog->next ) axsmaug.c: prog=make_in_prog(mprog->comlist, axsmaug.c: pRoomIndex->name, axsmaug.c: pRoomIndex->vnum, axsmaug.c: area->low_r_vnum, axsmaug.c: area->hi_r_vnum, axsmaug.c: STRFREE(mprog->comlist); axsmaug.c: mprog->comlist=STRALLOC(prog); axsmaug.c: d=pRoomIndex->description; axsmaug.c: for ( xit = pRoomIndex->first_exit; xit; xit = xit->next ) axsmaug.c: if(xit->vdir == dir) axsmaug.c: pRoomIndex->vnum,word); axsmaug.c: fprintf(axlog,"%s\n",strip_cr(pRoomIndex->description)); axsmaug.c: if((i=get_wearloc(buf)) > -1) axsmaug.c: if((i=get_dir(buf)) > -1 ) axsmaug.c: if((i=get_exflag(word)) > -1) axsmaug.c: if((i=get_trapflag(word)) > -1) axsmaug.c: pShop->keeper=IN_VNUM(atoi(buf)); axsmaug.c: if ( (pMobIndex = get_mob_index(pShop->keeper)) != NULL ) axsmaug.c: pMobIndex->pShop=pShop; axsmaug.c: if ( (pShop = pMobIndex->pShop) == NULL ) axsmaug.c: if((i=get_otype(word)) > -1) axsmaug.c: pShop->buy_type[buyslot++]=i; axsmaug.c: if ( (pShop = pMobIndex->pShop) == NULL ) axsmaug.c: pShop->profit_buy=atoi(buf); axsmaug.c: if ( (pShop = pMobIndex->pShop) == NULL ) axsmaug.c: pShop->profit_sell=atoi(buf); axsmaug.c: if ( (pShop = pMobIndex->pShop) == NULL ) axsmaug.c: pShop->open_hour=atoi(buf); axsmaug.c: if ( (pShop = pMobIndex->pShop) == NULL ) axsmaug.c: pShop->close_hour=atoi(buf); axsmaug.c: last_shop->next = pShop; axsmaug.c: pShop->next = NULL; axsmaug.c: pShop->prev = last_shop; axsmaug.c: rShop->keeper=IN_VNUM(atoi(buf)); axsmaug.c: if ( (pMobIndex = get_mob_index(rShop->keeper)) != NULL ) axsmaug.c: pMobIndex->rShop=rShop; axsmaug.c: if ( (rShop = pMobIndex->rShop) == NULL ) axsmaug.c: if((i=get_otype(word)) > -1) axsmaug.c: rShop->fix_type[buyslot++]=i; axsmaug.c: if ( (rShop = pMobIndex->rShop) == NULL ) axsmaug.c: rShop->profit_fix=atoi(buf); axsmaug.c: if ( (rShop = pMobIndex->rShop) == NULL ) axsmaug.c: rShop->shop_type=atoi(buf); axsmaug.c: if ( (rShop = pMobIndex->rShop) == NULL ) axsmaug.c: rShop->open_hour=atoi(buf); axsmaug.c: if ( (rShop = pMobIndex->rShop) == NULL ) axsmaug.c: rShop->close_hour=atoi(buf); axsmaug.c: last_repair->next = rShop; axsmaug.c: rShop->next = NULL; axsmaug.c: rShop->prev = last_repair; axsmaug.c: /* initialize weather data - FB */ axsmaug.c: CREATE(area->weather, WEATHER_DATA, 1); axsmaug.c: area->weather->temp = 0; axsmaug.c: area->weather->precip = 0; axsmaug.c: area->weather->wind = 0; axsmaug.c: area->weather->temp_vector = 0; axsmaug.c: area->weather->precip_vector = 0; axsmaug.c: area->weather->wind_vector = 0; axsmaug.c: area->weather->climate_temp = 2; axsmaug.c: area->weather->climate_precip = 2; axsmaug.c: area->weather->climate_wind = 2; axsmaug.c: area->weather->first_neighbor = NULL; axsmaug.c: area->weather->last_neighbor = NULL; axsmaug.c: area->weather->echo = NULL; axsmaug.c: area->weather->echo_color = AT_GREY; axsmaug.c: SET_BIT(area->status,AREA_LOADED); axsmaug.c: tarea=ch->in_room->area; axsmaug.c: sprintf( buf, "exporting %s...", tarea->filename ); axsmaug.c: startvnum=tarea->low_r_vnum; axsmaug.c: fprintf( fpout, "#AREANAME %s\n", tarea->name ); axsmaug.c: fprintf( fpout, "#AUTHOR %s\n", tarea->author ); axsmaug.c: fprintf( fpout, "#SOFTRANGE %f %f\n", OUT_LEVEL(tarea->low_soft_range), axsmaug.c: OUT_LEVEL(tarea->hi_soft_range)); axsmaug.c: OUT_LEVEL(tarea->low_hard_range), axsmaug.c: OUT_LEVEL(tarea->hi_hard_range)); axsmaug.c: OUT_VNUM(tarea->low_r_vnum),OUT_VNUM(tarea->hi_r_vnum)); axsmaug.c: OUT_VNUM(tarea->low_m_vnum),OUT_VNUM(tarea->hi_m_vnum)+addmobrange); axsmaug.c: OUT_VNUM(tarea->low_o_vnum),OUT_VNUM(tarea->hi_o_vnum)+addobjrange); axsmaug.c: if ( tarea->resetmsg ) /* Rennard */ axsmaug.c: fprintf( fpout, "#RESETMSG %s\n", tarea->resetmsg ); axsmaug.c: if ( tarea->reset_frequency ) axsmaug.c: tarea->reset_frequency ); axsmaug.c: fprintf(fpout, "#RECALL %d\n",OUT_VNUM(tarea->recall)); axsmaug.c: fprintf( fpout, "#AREAFLAGS %s\n", flag_string(tarea->flags,area_flags) ); axsmaug.c: fprintf( fpout, "#ECONOMY %d %d\n\n", tarea->high_economy, tarea->low_economy ); axsmaug.c: newrange=tarea->hi_m_vnum+1; axsmaug.c:// for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) axsmaug.c: if (IS_SET(pMobIndex->act,ACT_DELETED)) axsmaug.c: fprintf( fpout, "@mobkeywordname %s\n",pMobIndex->player_name ); axsmaug.c: fprintf( fpout, "@mobactionname %s\n", pMobIndex->short_descr ); axsmaug.c: fprintf( fpout, "@mobinroomname %s\n", strip_cr(pMobIndex->long_descr) ); axsmaug.c: fprintf( fpout, "%s\n", strip_cr(pMobIndex->description)); axsmaug.c: if(pMobIndex->talk) axsmaug.c: fprintf(fpout,"%s\n",strip_cr(pMobIndex->talk)); axsmaug.c: fprintf( fpout, "@mobactflags %s\n",flag_string(pMobIndex->act,act_flags)); axsmaug.c: fprintf( fpout, "@mobactflags %s\n",ext_flag_string(&pMobIndex->act,act_flags)); axsmaug.c: fprintf( fpout, "@mobaffectedby %s\n",flag_string(pMobIndex->affected_by,a_flags)); axsmaug.c: fprintf( fpout, "@mobaffectedby %s\n",ext_flag_string(&pMobIndex->affected_by,a_flags)); axsmaug.c: fprintf( fpout, "@mobalignment %f\n",(float) pMobIndex->alignment/MAX_ALIGNMENT); axsmaug.c: fprintf( fpout, "@moblevel %f\n",OUT_LEVEL(pMobIndex->level)); axsmaug.c: fprintf( fpout, "@mobthac0 %d\n",pMobIndex->mobthac0); axsmaug.c: fprintf( fpout, "@mobarmorclass %f\n",(float)pMobIndex->ac/MAX_MOBARMORCLASS); axsmaug.c: fprintf( fpout, "@mobnumberofhitdice %f\n",OUT_DICE(pMobIndex->hitnodice)); axsmaug.c: fprintf( fpout, "@mobsizeofhitdice %f\n",OUT_DICE(pMobIndex->hitsizedice)); axsmaug.c: fprintf( fpout, "@mobplustohitdice %f\n",OUT_DICE(pMobIndex->hitplus)); axsmaug.c: fprintf( fpout, "@mobnumberofdamagedice %f\n",OUT_DICE(pMobIndex->damnodice)); axsmaug.c: fprintf( fpout, "@mobsizeofdamagedice %f\n",OUT_DICE(pMobIndex->damsizedice)); axsmaug.c: fprintf( fpout, "@mobplustodamagedice %f\n",OUT_DICE(pMobIndex->damplus)); axsmaug.c: fprintf( fpout, "@mobgold %d\n",pMobIndex->gold); axsmaug.c: fprintf( fpout, "@mobexperience %d\n",pMobIndex->exp); axsmaug.c: fprintf( fpout, "@mobposition %s\n",ax_position[pMobIndex->position]); axsmaug.c: fprintf( fpout, "@mobdefaultposition %s\n",ax_position[pMobIndex->defposition]); axsmaug.c: fprintf( fpout, "@mobsex %s\n",ax_sex[pMobIndex->sex]); axsmaug.c: fprintf( fpout, "@mobstrength %f\n",(float)pMobIndex->perm_str/MAX_PRIME_ATTRIB); axsmaug.c: fprintf( fpout, "@mobintelligence %f\n",(float) pMobIndex->perm_int/MAX_PRIME_ATTRIB); axsmaug.c: fprintf( fpout, "@mobwisdom %f\n",(float) pMobIndex->perm_wis/MAX_PRIME_ATTRIB); axsmaug.c: fprintf( fpout, "@mobdexterity %f\n",(float) pMobIndex->perm_dex/MAX_PRIME_ATTRIB); axsmaug.c: fprintf( fpout, "@mobconstitution %f\n",(float) pMobIndex->perm_con/MAX_PRIME_ATTRIB); axsmaug.c: fprintf( fpout, "@mobcharisma %f\n",(float) pMobIndex->perm_cha/MAX_PRIME_ATTRIB); axsmaug.c: fprintf( fpout, "@mobluck %f\n",(float) pMobIndex->perm_lck/MAX_PRIME_ATTRIB); axsmaug.c: pMobIndex->saving_poison_death); axsmaug.c: pMobIndex->saving_wand); axsmaug.c: pMobIndex->saving_para_petri); axsmaug.c: pMobIndex->saving_breath); axsmaug.c: pMobIndex->saving_spell_staff); axsmaug.c: pMobIndex->saving_psionics); axsmaug.c: fprintf( fpout, "@mobrace %s\n", npc_race[pMobIndex->race]); axsmaug.c: fprintf( fpout, "@mobclass %s\n", npc_class[pMobIndex->class]); axsmaug.c: if(pMobIndex->height) axsmaug.c: fprintf( fpout, "@mobheight %d\n", pMobIndex->height); axsmaug.c: if(pMobIndex->weight) axsmaug.c: fprintf( fpout, "@mobweight %d\n", pMobIndex->weight); axsmaug.c: if (IS_SET(pMobIndex->speaks, lang_array[i]) ) axsmaug.c: if (IS_SET(pMobIndex->speaking, lang_array[i]) ) axsmaug.c: fprintf( fpout, "@mobnumberofattacks %d\n", pMobIndex->numattacks); axsmaug.c: if(pMobIndex->hoard) axsmaug.c: fprintf( fpout, "@mobhoardroom %d\n", OUT_VNUM(pMobIndex->hoard)); axsmaug.c: if(IS_SET(pMobIndex->act,ACT_STAYTERRAIN)) axsmaug.c: ax_sector_names[pMobIndex->terrain]); axsmaug.c: fprintf( fpout, "@mobhitroll %d\n", pMobIndex->hitroll); axsmaug.c: fprintf( fpout, "@mobdamageroll %d\n", pMobIndex->damroll); axsmaug.c: fprintf( fpout, "@mobbodyparts %s\n", flag_string(pMobIndex->xflags,part_flags) ); axsmaug.c: fprintf( fpout, "@mobisresistant %s\n", flag_string(pMobIndex->resistant,ris_flags) ); axsmaug.c: fprintf( fpout, "@mobisimmune %s\n", flag_string(pMobIndex->immune,ris_flags) ); axsmaug.c: fprintf( fpout, "@mobissusceptible %s\n", flag_string(pMobIndex->susceptible,ris_flags) ); axsmaug.c: fprintf( fpout, "@mobattacks %s\n", flag_string(pMobIndex->attacks,attack_flags) ); axsmaug.c: fprintf( fpout, "@mobattacks %s\n", ext_flag_string(&pMobIndex->attacks,attack_flags) ); axsmaug.c: fprintf( fpout, "@mobattacks %s\n", flag_string(pMobIndex->attack2,attack2_flags) ); axsmaug.c: fprintf( fpout, "@mobdefenses %s\n", flag_string(pMobIndex->defenses,defense_flags) ); axsmaug.c: fprintf( fpout, "@mobdefenses %s\n", ext_flag_string(&pMobIndex->defenses,defense_flags) ); axsmaug.c: if(pMobIndex->spec_fun) axsmaug.c: fprintf( fpout, "@mobspecial %s\n",lookup_spec(pMobIndex->spec_fun)); axsmaug.c: if ( pMobIndex->mudprogs ) axsmaug.c: for ( mprog = pMobIndex->mudprogs; mprog; mprog = mprog->next ) axsmaug.c: mprog_type_to_name( mprog->type ), axsmaug.c: mprog->arglist, axsmaug.c: strip_cr(make_out_prog(mprog->comlist)) ); axsmaug.c: newrange=tarea->hi_o_vnum + 1; axsmaug.c:// for ( vnum = tarea->low_o_vnum; vnum <= tarea->hi_o_vnum; vnum++ ) axsmaug.c: if (pObjIndex->item_type == ITEM_DELETED) axsmaug.c: if (!pObjIndex->item_type) /* no support for boards/mail at this time */ axsmaug.c: for ( obj = first_object; obj; obj = obj->next ) axsmaug.c: if(obj->pIndexData->vnum == pObjIndex->vnum) axsmaug.c: pObjIndex->level=obj->level; axsmaug.c: fprintf( fpout, "@objlevel %f\n",OUT_LEVEL(pObjIndex->level)); axsmaug.c: fprintf( fpout, "@objkeywordname %s\n", pObjIndex->name); axsmaug.c: fprintf( fpout, "@objinventoryname %s\n",pObjIndex->short_descr); axsmaug.c: fprintf( fpout, "@objinroomname %s\n",pObjIndex->description); axsmaug.c: fprintf( fpout, "@objactiondescription %s\n",pObjIndex->action_desc); axsmaug.c: fprintf( fpout, "@objitemtype %s\n",o_types[pObjIndex->item_type]); axsmaug.c: fprintf( fpout, "@objflags %s\n", flag_string(pObjIndex->extra_flags,o_flags) ); axsmaug.c: fprintf( fpout, "@objflags %s\n", ext_flag_string(&pObjIndex->extra_flags,o_flags) ); axsmaug.c: fprintf( fpout, "@objflags %s\n", flag_string(pObjIndex->magic_flags,mag_flags) ); axsmaug.c: fprintf( fpout, "@objwearflags %s\n", flag_string(pObjIndex->wear_flags,w_flags) ); axsmaug.c: fprintf( fpout, "@objwearlayers %s\n",flag_string(pObjIndex->layers,ax_layers)); axsmaug.c: val0=pObjIndex->value[0]; axsmaug.c: val1=pObjIndex->value[1]; axsmaug.c: val2=pObjIndex->value[2]; axsmaug.c: val3=pObjIndex->value[3]; axsmaug.c: val4=pObjIndex->value[4]; axsmaug.c: val5=pObjIndex->value[5]; axsmaug.c: switch ( pObjIndex->item_type ) axsmaug.c: fprintf( fpout, "@objherbname %s\n",herb_table[val2]->name); axsmaug.c: fprintf( fpout, "@objspelllevel %f\n",OUT_LEVEL(pObjIndex->value[0])); axsmaug.c: fprintf( fpout, "@objspell1 '%s'\n",skill_table[val1]->name); axsmaug.c: fprintf( fpout, "@objspell2 '%s'\n",skill_table[val2]->name); axsmaug.c: fprintf( fpout, "@objspell3 '%s'\n",skill_table[val3]->name); axsmaug.c: fprintf( fpout, "@objspelllevel %f\n",OUT_LEVEL(pObjIndex->value[0])); axsmaug.c: fprintf( fpout, "@objspell1 '%s'\n",skill_table[val3]->name); axsmaug.c: fprintf( fpout, "@objspelllevel %f\n",OUT_LEVEL(pObjIndex->value[0])); axsmaug.c: fprintf( fpout, "@objspell1 '%s'\n",skill_table[val4]->name); axsmaug.c: fprintf( fpout, "@objspell2 '%s'\n",skill_table[val5]->name); axsmaug.c: display(o_types[pObjIndex->item_type]); axsmaug.c: display("-Unknown itemtype for values\n\r"); axsmaug.c: fprintf( fpout, "@objvalue0 %d\n",pObjIndex->value[0]); axsmaug.c: fprintf( fpout, "@objvalue1 %d\n",pObjIndex->value[1]); axsmaug.c: fprintf( fpout, "@objvalue2 %d\n",pObjIndex->value[2]); axsmaug.c: fprintf( fpout, "@objvalue3 %d\n",pObjIndex->value[3]); axsmaug.c: fprintf( fpout, "@objvalue4 %d\n",pObjIndex->value[4]); axsmaug.c: fprintf( fpout, "@objvalue5 %d\n",pObjIndex->value[5]); axsmaug.c: fprintf( fpout, "@objweight %d\n",pObjIndex->weight); axsmaug.c: fprintf( fpout, "@objcost %d\n",pObjIndex->cost); axsmaug.c: fprintf( fpout, "@objrent %d\n",pObjIndex->rent); axsmaug.c: for ( ed = pObjIndex->first_extradesc; ed; ed = ed->next ) axsmaug.c: ed->keyword); axsmaug.c: strip_cr( ed->description )); axsmaug.c: for ( paf = pObjIndex->first_affect; paf; paf = paf->next ) axsmaug.c: if ( paf->location != APPLY_NONE && paf->modifier != 0 ) axsmaug.c: switch(paf->location) axsmaug.c: a_types[paf->location], axsmaug.c: paf->modifier); axsmaug.c: a_types[paf->location], axsmaug.c: flag_string(paf->modifier, ris_flags) ); axsmaug.c: a_types[paf->location], axsmaug.c: affect_bit_name(paf->modifier) ); axsmaug.c: a_types[paf->location]); axsmaug.c: if ( IS_SET( paf->modifier, 1 << i ) ) axsmaug.c: a_types[paf->location], axsmaug.c: IS_VALID_SN(paf->modifier) ? skill_table[paf->modifier]->name : axsmaug.c: if(!IS_VALID_SN(paf->modifier)) axsmaug.c: paf->modifier); axsmaug.c: if ( pObjIndex->mudprogs ) axsmaug.c: for ( mprog = pObjIndex->mudprogs; mprog; mprog = mprog->next ) axsmaug.c: mprog_type_to_name( mprog->type ), axsmaug.c: mprog->arglist, axsmaug.c: strip_cr(make_out_prog(mprog->comlist)) ); axsmaug.c: ax_exit(fpout,tarea,tarea->low_r_vnum,tarea->hi_r_vnum); axsmaug.c: ax_entrance(fpout,tarea,tarea->low_r_vnum,tarea->hi_r_vnum); axsmaug.c: for ( vnum = tarea->low_r_vnum; vnum <= tarea->hi_r_vnum; vnum++ ) axsmaug.c: if (room->sector_type == SECT_DELETED) axsmaug.c: fprintf( fpout, "@roomname %s\n",room->name); axsmaug.c: fprintf( fpout, "@roomdescription\n%s\n",strip_cr(room->description) ); axsmaug.c: fprintf( fpout, "@roomflags %s\n",flag_string(room->room_flags,r_flags)); axsmaug.c: fprintf( fpout, "@roomflags %s\n",flag_string(room->room_flag2,r_flag2)); axsmaug.c: fprintf( fpout, "@roomsectortype %s\n",ax_sector_names[room->sector_type]); axsmaug.c: fprintf( fpout, "@roomteleportdelay %d\n",room->tele_delay); axsmaug.c: if(room->tele_vnum) axsmaug.c: fprintf( fpout, "@roomteleportvnum %d\n",OUT_VNUM(room->tele_vnum)); axsmaug.c: fprintf( fpout, "@roomtunnelcapacity %d\n",room->tunnel); axsmaug.c: for ( xit = room->first_exit; xit; xit = xit->next ) axsmaug.c: if ( IS_SET(xit->exit_info, EX_PORTAL) ) /* don't fold portals */ axsmaug.c: fprintf( fpout, "^roomexit %s\n",dir_name[xit->vdir] ); axsmaug.c: fprintf( fpout, "@roomexitdesc \n%s\n",strip_cr( xit->description ) ); axsmaug.c: fprintf( fpout, "@roomexitkeyword %s\n",strip_cr( xit->keyword ) ); axsmaug.c: fprintf( fpout, "@roomexitexitinfo %s\n",flag_string(xit->exit_info & ~EX_BASHED,ex_flags)); axsmaug.c: if(xit->key > 0) axsmaug.c: fprintf( fpout, "@roomexitkey %d\n",OUT_VNUM(xit->key)); axsmaug.c: fprintf( fpout, "@roomexittovnum %d\n",OUT_VNUM(xit->vnum)); axsmaug.c: fprintf( fpout, "@roomexitdistance %d\n",xit->distance); axsmaug.c: if(xit->vnum < tarea->low_r_vnum || xit->vnum > tarea->hi_r_vnum) axsmaug.c: for ( ed = room->first_extradesc; ed; ed = ed->next ) axsmaug.c: fprintf( fpout, "@roomextradesckeywords %s\n", ed->keyword); axsmaug.c: fprintf( fpout, "%s\n",strip_cr( ed->description )); axsmaug.c: if ( room->map ) /* maps */ axsmaug.c: fprintf( fpout, "%s~\n", strip_cr( room->map ) ); axsmaug.c: fprintf( fpout, "M %d %d %d %c\n", room->map->vnum axsmaug.c: , room->map->x axsmaug.c: , room->map->y axsmaug.c: , room->map->entry ); axsmaug.c: if ( room->mudprogs ) axsmaug.c: for ( mprog = room->mudprogs; mprog; mprog = mprog->next ) axsmaug.c: mprog_type_to_name( mprog->type ), axsmaug.c: mprog->arglist, axsmaug.c: strip_cr(make_out_prog(mprog->comlist)) ); axsmaug.c: for ( treset = tarea->first_reset; treset; treset = treset->next ) axsmaug.c: switch( treset->command ) /* extra arg1 arg2 arg3 */ axsmaug.c: fprintf(fpout, "!mobresetvnum %d\n",OUT_VNUM(getmobext(tarea,treset->arg1))); axsmaug.c: fprintf(fpout, "@mobresetinroom %d\n",OUT_VNUM(treset->arg3)); axsmaug.c: fprintf(fpout, "@mobresetlimit %d\n",treset->arg2); axsmaug.c: fprintf(fpout, "!objresetvnum %d\n",OUT_VNUM(getobjext(tarea,treset->arg1))); axsmaug.c: lastobj=getobjext(tarea,treset->arg1); axsmaug.c: fprintf(fpout, "@objresetinroom %d\n",OUT_VNUM(treset->arg3)); axsmaug.c: fprintf(fpout, "@objresetlimit %d\n",treset->arg2); axsmaug.c: fprintf(fpout, "!putobjvnum %d\n",OUT_VNUM(getobjext(tarea,treset->arg1))); axsmaug.c: if(treset->arg3) axsmaug.c: fprintf(fpout, "@putobjinobjvnum %d\n",OUT_VNUM(getobjext(tarea,treset->arg3))); axsmaug.c: fprintf(fpout, "@putobjresetlimit %d\n",treset->arg2); axsmaug.c: fprintf( fpout, "!equipobjvnum %d\n",OUT_VNUM(getobjext(tarea,treset->arg1))); axsmaug.c: fprintf( fpout,"@equipwearlocation %s\n",wear_locs[treset->arg3]); axsmaug.c: fprintf( fpout, "!doorinroomvnum %d\n",OUT_VNUM(treset->arg1)); axsmaug.c: fprintf( fpout, "@doordirection %s\n",dir_name[treset->arg2]); axsmaug.c: fprintf( fpout, "@doorstate %s\n",flag_string(treset->arg3,ex_flags)); axsmaug.c: fprintf( fpout, "!trapflag %s\n",flag_string(treset->extra,trap_flags)); axsmaug.c: fprintf( fpout, "@traptype %s\n",ax_traps[treset->arg1]); axsmaug.c: fprintf( fpout, "@trapcharges %d\n",treset->arg2); axsmaug.c: fprintf( fpout, "@trapvnum %d\n",OUT_VNUM(treset->arg3)); axsmaug.c: fprintf(fpout ,"!giveobj %d\n",OUT_VNUM(getobjext(tarea,treset->arg1))); axsmaug.c: fprintf(fpout, "@giveobjresetlimit %d\n",treset->arg2); axsmaug.c: fprintf(fpout, "!randomexitsforroom %d\n",OUT_VNUM(treset->arg1)); axsmaug.c: fprintf(fpout, "@randomexitlastdoor %d\n",treset->arg2); axsmaug.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) axsmaug.c: if ( (pShop = pMobIndex->pShop) == NULL ) axsmaug.c: keeper=getmobext(tarea,pShop->keeper); axsmaug.c: if(pShop->buy_type[0]) axsmaug.c: fprintf( fpout, "@shopbuys %s\n",o_types[pShop->buy_type[0]]); axsmaug.c: if(pShop->buy_type[1]) axsmaug.c: fprintf( fpout, "@shopbuys %s\n",o_types[pShop->buy_type[1]]); axsmaug.c: if(pShop->buy_type[2]) axsmaug.c: fprintf( fpout, "@shopbuys %s\n",o_types[pShop->buy_type[2]]); axsmaug.c: if(pShop->buy_type[3]) axsmaug.c: fprintf( fpout, "@shopbuys %s\n",o_types[pShop->buy_type[3]]); axsmaug.c: if(pShop->buy_type[4]) axsmaug.c: fprintf( fpout, "@shopbuys %s\n",o_types[pShop->buy_type[4]]); axsmaug.c: fprintf( fpout, "@shopprofitbuy %d\n",pShop->profit_buy); axsmaug.c: fprintf( fpout, "@shopprofitsell %d\n",pShop->profit_sell); axsmaug.c: fprintf( fpout, "@shopopenhour %d\n",pShop->open_hour); axsmaug.c: fprintf( fpout, "@shopclosehour %d\n",pShop->close_hour); axsmaug.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) axsmaug.c: if ( (pRepair = pMobIndex->rShop) == NULL ) axsmaug.c: keeper=getmobext(tarea,pRepair->keeper); axsmaug.c: if(pRepair->fix_type[0]) axsmaug.c: fprintf( fpout, "@shoprepairs %s\n",o_types[pRepair->fix_type[0]]); axsmaug.c: if(pRepair->fix_type[1]) axsmaug.c: fprintf( fpout, "@shoprepairs %s\n",o_types[pRepair->fix_type[1]]); axsmaug.c: if(pRepair->fix_type[2]) axsmaug.c: fprintf( fpout, "@shoprepairs %s\n",o_types[pRepair->fix_type[2]]); axsmaug.c: fprintf( fpout, "@shopprofitfix %d\n",pRepair->profit_fix); axsmaug.c: fprintf( fpout, "@shoprepairtype %s\n",ax_shoptypes[pRepair->shop_type]); axsmaug.c: fprintf( fpout, "@shoprepairopenhour %d\n",pRepair->open_hour); axsmaug.c: fprintf( fpout, "@shoprepairclosehour %d\n",pRepair->close_hour); axsmaug.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) axsmaug.c: if ( !pMobIndex->spec_fun ) axsmaug.c: fprintf( fpout, "@mobspecial %s\n",lookup_spec(pMobIndex->spec_fun)); ban.c: * -----------------------------------------------------------| (0...0) * ban.c: * -----------------------------------------------------------| {o o} * ban.c: * ------------------------------------------------------------------------ * ban.c: * ------------------------------------------------------------------------ * ban.c: pban->name = fread_string_nohash ( fp ); ban.c: pban->user = NULL; ban.c: pban->level = fread_number( fp ); ban.c: pban->duration = fread_number( fp ); ban.c: pban->unban_date = fread_number( fp ); ban.c: pban->prefix = fread_number( fp ); ban.c: pban->suffix = fread_number( fp ); ban.c: pban->warn = fread_number( fp ); ban.c: pban->ban_by = fread_string_nohash( fp ); ban.c: pban->ban_time = fread_string_nohash( fp ); ban.c: pban->note = fread_string( fp ); ban.c: if ( !str_cmp( class_table[i]->who_name, pban->name ) ) ban.c: if ( !str_cmp( race_table[i]->race_name, pban->name ) ) ban.c: for ( i = 0; i < strlen( pban->name); i ++ ) ban.c: if ( pban->name[i] == '@' ) ban.c: temp = str_dup( pban->name ); ban.c: temp2 = &pban->name[i+1]; ban.c: DISPOSE( pban->name ); ban.c: pban->name = str_dup( temp2 ); ban.c: pban->user = str_dup( temp ); ban.c: pban->flag = i; ban.c: for (pban = first_ban; pban; pban = pban->next) { ban.c: if ( pban->user ) ban.c: fprintf ( fp, "%s@%s~\n", pban->user, pban->name ); ban.c: fprintf (fp, "%s~\n", pban->name ); ban.c: fprintf (fp, "%d %d %d %d %d %d\n", pban->level, pban->duration, ban.c: pban->unban_date, pban->prefix, pban->suffix, pban->warn ); ban.c: fprintf (fp, "%s~\n%s~\n%s~\n", pban->ban_by, pban->ban_time, ban.c: pban->note ); ban.c: for (pban = first_ban_race; pban; pban = pban->next ) { ban.c: fprintf (fp, "%s~\n", pban->name ); ban.c: fprintf (fp, "%d %d %d %d\n", pban->level, pban->duration, ban.c: pban->unban_date, pban->warn ); ban.c: fprintf (fp, "%s~\n%s~\n%s~\n", pban->ban_by, pban->ban_time, ban.c: pban->note ); ban.c: for (pban = first_ban_class; pban; pban = pban->next ) { ban.c: fprintf (fp, "%s~\n", pban->name ); ban.c: fprintf (fp, "%d %d %d %d\n", pban->level, pban->duration, ban.c: pban->unban_date, pban->warn ); ban.c: fprintf (fp, "%s~\n%s~\n%s~\n", pban->ban_by, pban->ban_time, ban.c: pban->note ); ban.c: if (!ch->desc) /* No desc means no go :) */ ban.c: time = -1; ban.c: /* -1 is default, but no reason the time should be greater than 1000 ban.c: if ( time != -1 && ( time < 1 || time > 1000 ) ) ban.c: send_to_char("Time value is -1 (forever) or from 1 to 1000.\n\r", ch); ban.c: * Need to be carefull with sub-states or everything will get messed up. ban.c: switch ( ch->substate ) { ban.c: ch->tempnum = SUB_NONE; ban.c: if ( temp[strlen(temp)-1] == '*' ) ban.c: temp[strlen(temp)-1] = '\0'; ban.c: for ( ; pban; pban = pban->next ) ban.c: if ( value == 1 || !str_cmp ( pban->name, temp ) ) ban.c: value--; ban.c: ch_printf(ch, "Banned by: %s\n\r", pban->ban_by ); ban.c: send_to_char ( pban->note, ch ); ban.c: if (!ch->desc) /* No desc is a bad thing */ ban.c: if ( temp[strlen(temp) - 1] == '*' ) ban.c: temp[ strlen(temp) -1] = '\0'; ban.c: for ( pban = first_ban; pban; pban = pban->next ) ban.c: if ( value == 1 || !str_cmp ( pban->name, temp ) ) ban.c: value--; ban.c: for ( pban = first_ban_race; pban; pban = pban->next ) ban.c: if ( value == 1 || !str_cmp ( pban->name, arg2 ) ) ban.c: value--; ban.c: for ( pban = first_ban_class; pban; pban = pban->next ) ban.c: if ( value == 1 || !str_cmp ( pban->name, arg2 ) ) ban.c: value--; ban.c: int count = -1, type; ban.c: * Don't want mobs or link-deads doing this. ban.c: if (!ch->desc) ban.c: type = -1; ban.c: for ( ; pban && count != 0; count--, pban = pban->next ) ban.c: if ( count == -1 && !str_cmp(pban->name, arg2 ) ) ban.c: if ( pban->warn ){ ban.c: if ( pban->level == BAN_WARN ) { ban.c: pban->warn = FALSE; ban.c: pban->warn = TRUE; ban.c: switch ( ch->substate ) { ban.c: if( !str_cmp( class_table[i]->who_name, arg ) ) ban.c: for( temp = first_ban_class; temp; temp = temp->next ) ban.c: if ( temp->flag == value ) ban.c: if ( temp->level == level ) ban.c: temp->level = level; ban.c: if ( temp->level == BAN_WARN ) ban.c: temp->warn = TRUE; ban.c: temp->ban_time = str_dup (buf); ban.c: if ( temp->ban_by ) ban.c: DISPOSE( temp->ban_by ); ban.c: temp->ban_by = str_dup ( ch->name ); ban.c: pban->name = str_dup ( class_table[value]->who_name ); ban.c: pban->flag = value; ban.c: pban->level = level; ban.c: pban->ban_by = str_dup ( ch->name ); ban.c: if ( !str_cmp(race_table[i]->race_name, arg) ) ban.c: for( temp = first_ban_race; temp; temp = temp->next ) ban.c: if ( temp->flag == value ) ban.c: if ( temp->level == level ) ban.c: temp->level = level; ban.c: if ( temp->level == BAN_WARN ) ban.c: temp->warn = TRUE; ban.c: temp->ban_time = str_dup (buf); ban.c: if ( temp->ban_by ) ban.c: DISPOSE( temp->ban_by ); ban.c: temp->ban_by = str_dup ( ch->name ); ban.c: pban->name = str_dup ( race_table[value]->race_name ); ban.c: pban->flag = value; ban.c: pban->level = level; ban.c: pban->ban_by = str_dup ( ch->name ); ban.c: if ( name[strlen(name) - 1] == '*' ) ban.c: name[strlen(name) - 1] = '\0'; ban.c: for( temp = first_ban; temp; temp = temp->next ) ban.c: if ( !str_cmp ( temp->name, name ) ) ban.c: if ( temp->level == level && (prefix && temp->prefix) ban.c: && ( suffix && temp->suffix ) && (!user_name || ban.c: (user_name && !str_cmp(temp->user, temp_user)))) ban.c: temp->suffix = suffix; ban.c: temp->prefix = prefix; ban.c: if ( temp->level == BAN_WARN ) ban.c: temp->warn = TRUE; ban.c: temp->level = level; ban.c: temp->ban_time = str_dup (buf); ban.c: if ( temp->ban_by ) ban.c: DISPOSE( temp->ban_by ); ban.c: temp->ban_by = str_dup ( ch->name ); ban.c: pban->ban_by = str_dup ( ch->name ); ban.c: pban->suffix = suffix; ban.c: pban->prefix = prefix; ban.c: pban->name = str_dup( name ); ban.c: pban->level = level; ban.c: pban->user = str_dup( temp_user ); ban.c: pban->ban_time = str_dup (buf); ban.c: pban->duration = time; ban.c: tms->tm_mday += time; ban.c: pban->unban_date = mktime(tms); ban.c: pban->duration = -1; ban.c: pban->unban_date = -1; ban.c: if ( pban->level == BAN_WARN ) ban.c: pban->warn = TRUE; ban.c: ch->substate = SUB_BAN_DESC; ban.c: ch->dest_buf = pban; ban.c: if ( !pban->note ) ban.c: pban->note = STRALLOC ("");; ban.c: start_editing( ch, pban->note ); ban.c: pban = ch->dest_buf; ban.c: bug ("do_ban: sub_ban_desc: NULL ch->dest_buf", 0); ban.c: ch->substate = SUB_NONE; ban.c: if ( pban->note ) ban.c: STRFREE( pban->note ); ban.c: pban->note = copy_buffer( ch ); ban.c: ch->substate = ch->tempnum; ban.c: if ( pban->duration > 0 ) ban.c: if ( !pban->user ) ban.c: ch_printf (ch, "%s banned for %d days.\n\r", pban->name, pban->duration ); ban.c: ch_printf (ch, "%s@%s banned for %d days.\n\r", pban->user, pban->name, pban->duration ); ban.c: if ( !pban->user ) ban.c: ch_printf (ch, "%s banned forever.\n\r", pban->name ); ban.c: ch_printf (ch, "%s@%s banned forever.\n\r", pban->user, pban->name ); ban.c: send_to_pager("---- ---- ---- ------------------------ --------------- ---- ---------------\n\r", ch); ban.c: for ( bnum=1; pban; pban=pban->next, bnum++) ban.c: if ( !pban->user ) ban.c: pager_printf (ch, "[%2d] %-4s (%2d) %-24s %-15s %4d %c%s%c\n\r", ban.c: bnum, (pban->warn)?"YES":"no", pban->level, ban.c: pban->ban_time, pban->ban_by, pban->duration, ban.c: (pban->prefix)?'*':' ', ban.c: pban->name, (pban->suffix)?'*':' '); ban.c: pager_printf (ch, "[%2d] %-4s (%2d) %-24s %-15s %4d %s@%c%s%c\n\r", ban.c: bnum, (pban->warn)?"YES":"no", pban->level, ban.c: pban->ban_time, pban->ban_by, pban->duration, ban.c: pban->user, ban.c: (pban->prefix)?'*':' ', ban.c: pban->name, (pban->suffix)?'*':' '); ban.c: send_to_pager("---- ---- ---- ------------------------ --------------- ---- ---------------\n\r", ch); ban.c: for ( bnum=1; pban; pban=pban->next, bnum++) ban.c: pager_printf (ch, "[%2d] %-4s (%2d) %-24s %-15s %4d %s\n\r", bnum, ban.c: (pban->warn)?"YES":"no", pban->level, pban->ban_time, pban->ban_by, ban.c: pban->duration, pban->name); ban.c: for ( i = 0; i < (int) strlen( d->host ) ; i++ ) ban.c: new_host[i] = LOWER( d->host[i] ); ban.c: for ( pban = first_ban; pban; pban = pban->next ) { ban.c: if ( pban->level != LEVEL_SUPREME ) ban.c: if ( pban->user && str_cmp( d->user, pban->user ) ) ban.c: if ( pban->prefix && pban->suffix && ban.c: strstr( pban->name, new_host ) ) ban.c: if ( pban->suffix && !str_suffix( pban->name, new_host ) ) ban.c: if ( pban->prefix && !str_prefix( pban->name, new_host ) ) ban.c: if ( !str_cmp( pban->name, new_host ) ) ban.c: for ( i = 0; i < (int) ( strlen( ch->desc->host ) ); i++ ) ban.c: new_host[i] = LOWER( ch->desc->host[i] ); ban.c: for ( ; pban; pban = pban->next ) { ban.c: if ( type == BAN_CLASS && (pban->flag == ch->class || pban->flag == ch->class2) ) ban.c: if ( ch->level > pban->level ) ban.c: if ( pban->warn ) ban.c: pban->name, ch->desc->host ); ban.c: if ( type == BAN_RACE && pban->flag == ch->race ) ban.c: if ( ch->level > pban->level ) ban.c: if ( pban->warn ) { ban.c: pban->name, ch->desc->host ); ban.c: if ( pban->prefix && pban->suffix && ban.c: strstr( pban->name, new_host ) ) ban.c: else if ( pban->prefix && !str_suffix( pban->name, new_host ) ) ban.c: else if ( pban->suffix && !str_prefix( pban->name, new_host ) ) ban.c: else if ( !str_cmp( pban->name, new_host ) ) ban.c: if ( fMatch && pban->user && ban.c: str_cmp(pban->user, ch->desc->user) ) ban.c: if ( ch->level > pban->level ) ban.c: if ( pban->warn ) { ban.c: ch->name, ch->desc->host ); ban.c: if ( pban->unban_date < 0 ) ban.c: if ( pban->unban_date <= current_time ) ban.c: sprintf( buf, "%s ban has expired.", pban->name ); ban.c: if ( pban->name ) ban.c: DISPOSE( pban->name ); ban.c: if ( pban->ban_time ) ban.c: DISPOSE( pban->ban_time ); ban.c: if ( pban->note ) ban.c: STRFREE( pban->note ); ban.c: if ( pban->user ) ban.c: DISPOSE( pban->user ); ban.c: if ( pban->ban_by ) ban.c: DISPOSE( pban->ban_by ); ban.c: if ( pban->ban_time ) ban.c: DISPOSE( pban->ban_time ); bank.c: * -----------------------------------------------------------| (0...0) * bank.c: * -----------------------------------------------------------| {o o} * bank.c: * ------------------------------------------------------------------------ * bank.c: * ------------------------------------------------------------------------ * bank.c: * -= Minas Ravenblood =- * bank.c: don't forget to declare it - Minas */ bank.c:/* NOTE: Smaug 1.02a Users - Your compiler probably died on this bank.c: function - if so, remove the x in front of IS_SET and recompile */ bank.c: for ( banker = ch->in_room->first_person; banker; banker = banker->next_in_room ) bank.c: if ( IS_NPC( banker ) && xIS_SET( banker->act, ACT_BANKER ) ) bank.c: sprintf( buf, "Sorry, %s, we don't do business with mobs.", ch->short_descr ); bank.c: sprintf( buf, "%s How much gold do you wish to deposit?", ch->name ); bank.c: sprintf( buf, "%s How much gold do you wish to deposit?", ch->name ); bank.c: amount = ch->gold; bank.c: if ( amount > ch->gold ) bank.c: sprintf( buf, "%s Sorry, but you don't have that much gold to deposit.", ch->name ); bank.c: sprintf( buf, "%s Oh, I see.. I didn't know i was doing business with a comedian.", ch->name ); bank.c: if( ch->pcdata->balance == 5000000 ) bank.c: if( ch->pcdata->balance + amount > 5000000 ) bank.c: amount = 5000000 - ch->pcdata->balance; bank.c: ch->gold -= amount; bank.c: ch->pcdata->balance += amount; bank.c: sprintf( buf, "Sorry, %s, we don't do business with mobs.", ch->short_descr ); bank.c: sprintf( buf, "%s How much gold do you wish to withdraw?", ch->name ); bank.c: sprintf( buf, "%s How much gold do you wish to withdraw?", ch->name ); bank.c: amount = ch->pcdata->balance; bank.c: if ( amount > ch->pcdata->balance ) bank.c: sprintf( buf, "%s But you do not have that much gold in your account!", ch->name ); bank.c: sprintf( buf, "%s Oh I see.. I didn't know i was doing business with a comedian.", ch->name ); bank.c: ch->pcdata->balance -= amount; bank.c: ch->gold += amount; bank.c: sprintf( buf, "Sorry, %s, we don't do business with mobs.", ch->short_descr ); bank.c: ch->pcdata->balance, (ch->pcdata->balance == 1) ? "" : "s" ); bank.c: sprintf( buf, "Sorry, %s, we don't do business with mobs.", ch->short_descr ); bank.c: sprintf( buf, "%s How much gold do you wish to send to who?", ch->name ); bank.c: sprintf( buf, "%s How much gold do you wish to send to who?", ch->name ); bank.c: sprintf( buf, "%s %s could not be located.", ch->name, capitalize(arg2) ); bank.c: sprintf( buf, "%s We do not do business with mobiles...", ch->name ); bank.c: amount = ch->pcdata->balance; bank.c: if ( amount > ch->pcdata->balance ) bank.c: sprintf( buf, "%s You are very generous, but you don't have that much gold!", ch->name ); bank.c: sprintf( buf, "%s Oh I see.. I didn't know I was doing business with a comedian.", ch->name ); bank.c: ch->pcdata->balance -= amount; bank.c: victim->pcdata->balance += amount; bank.c: amount, (amount != 1) ? "s" : "", victim->name ); bank.c: ch->name, amount, (amount != 1) ? "s" : "" ); base64.c: * while using -Wall base64.c: nprbytes = bufin - bufcoded - 1; base64.c: nprbytes -= 4; base64.c: if(pr2six[(int)bufin[-2]] > 63) base64.c: nbytesdecoded -= 2; base64.c: nbytesdecoded -= 1; bits.c:/* bits.c -- Abits and Qbits for the Rogue Winds by Scion bits.c: to get a note from you at keeler@teleport.com. Thanks! -- Scion bits.c: of boolean variables you can put on a player or mob with a mob prog. -- Scion bits.c: for (bit = first_abit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: for (bit = first_qbit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: for (bit = ch->first_abit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: for (bit = ch->pcdata->first_qbit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: for (bit = start_bit; bit; bit = bit->next) { bits.c: fprintf(fpout, "Number %d\n", bit->number); bits.c: fprintf(fpout, "Desc %s~\n", bit->desc); bits.c: strcpy(bit->desc, fread_string(fp)); bits.c: bit->number = fread_number(fp); bits.c: for (proto_bit = first_abit; proto_bit; proto_bit = proto_bit->next) { bits.c: if (proto_bit->number == number) bits.c: bit->number = proto_bit->number; bits.c: strcpy(bit->desc, proto_bit->desc); bits.c: LINK(bit, ch->first_abit, ch->last_abit, next, prev); bits.c: for (proto_bit = first_qbit; proto_bit; proto_bit = proto_bit->next) { bits.c: if (proto_bit->number == number) bits.c: bit->number = proto_bit->number; bits.c: strcpy(bit->desc, proto_bit->desc); bits.c: LINK(bit, ch->pcdata->first_qbit, ch->pcdata->last_qbit, next, prev); bits.c: if (!ch->first_abit) bits.c: bit = ch->first_abit; bits.c: if (bit->number == number) { bits.c: bit = bit->next; bits.c: UNLINK(tmp, ch->first_abit, ch->last_abit, next, prev); bits.c: bit = bit->next; bits.c: if (!ch->pcdata->first_qbit) bits.c: bit = ch->pcdata->first_qbit; bits.c: if (bit->number == number) { bits.c: bit = bit->next; bits.c: UNLINK(tmp, ch->pcdata->first_qbit, ch->pcdata->last_qbit, next, prev); bits.c: bit = bit->next; bits.c: for (bit = first_abit; bit; bit = bit->next) { bits.c: sprintf(buf, "&wABIT: %d <%25.25s>\r\n", bit->number, bit->desc); bits.c: for (bit = first_abit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: sprintf(buf, "&wABIT: %d\n\r", bit->number); bits.c: sprintf(buf, "'%s&w'\n\r", bit->desc); bits.c: for (bit = first_qbit; bit; bit = bit->next) { bits.c: sprintf(buf, "&wQBIT: %d <%25.25s>\r\n", bit->number, bit->desc); bits.c: for (bit = first_qbit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: sprintf(buf, "&wQBIT: %d\r\n", bit->number); bits.c: sprintf(buf, "'%s&w'\n\r", bit->desc); bits.c: for (bit = first_abit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: bit->number = number; bits.c: strcpy(bit->desc, ""); bits.c: sprintf(buf, "Abit %d created.\r\n", bit->number); bits.c: strcpy(bit->desc, arg); bits.c: sprintf(buf, "Description for abit %d set to '%s&w'.\r\n", bit->number, bit->desc); bits.c: for (bit = first_qbit; bit; bit = bit->next) { bits.c: if (bit->number == number) bits.c: bit->number = number; bits.c: strcpy(bit->desc, ""); bits.c: sprintf(buf, "Qbit %d created.\r\n", bit->number); bits.c: strcpy(bit->desc, arg); bits.c: sprintf(buf, "Description for qbit %d set to '%s&w'.\r\n", bit->number, bit->desc); bits.c: if (!ch->first_abit) { bits.c: for (bit = victim->first_abit; bit; bit = bit->next) { bits.c: sprintf(buf, "%4.4d: <%30.30s&w>\r\n", bit->number, bit->desc); bits.c: sprintf(buf, "Removed abit %d from %s.\r\n", abit, victim->name); bits.c: sprintf(buf, "Added abit %d to %s.\r\n", abit, victim->name); bits.c: if (!victim->pcdata->first_qbit) { bits.c: for (bit = victim->pcdata->first_qbit; bit; bit = bit->next) { bits.c: sprintf(buf, "%4.4d: <%30.30s&w>\r\n", bit->number, bit->desc); bits.c: sprintf(buf, "Removed qbit %d from %s.\r\n", qbit, victim->name); bits.c: sprintf(buf, "Added qbit %d to %s.\r\n", qbit, victim->name); bits.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) bits.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) boards.c: * -----------------------------------------------------------| (0...0) * boards.c: * -----------------------------------------------------------| {o o} * boards.c: * ------------------------------------------------------------------------ * boards.c: * ------------------------------------------------------------------------ * boards.c:#include "imc-mercbase.h" boards.c:/* Defines for voting on notes. -- Narn */ boards.c: if ( get_trust( ch ) >= board->min_remove_level ) boards.c: if ( board->extra_removers[0] != '\0' ) boards.c: if ( is_name( ch->name, board->extra_removers ) ) boards.c: if ( get_trust( ch ) >= board->min_read_level ) boards.c: if ( board->read_group[0] != '\0' ) boards.c: if ( ch->pcdata->clan && !str_cmp( ch->pcdata->clan->name, board->read_group ) ) boards.c: if ( ch->pcdata->council && !str_cmp( ch->pcdata->council->name, board->read_group ) ) boards.c: if ( ch->pcdata->council2 && !str_cmp( ch->pcdata->council2->name, board->read_group ) ) boards.c: if ( board->extra_readers[0] != '\0' ) boards.c: if ( is_name( ch->name, board->extra_readers ) ) boards.c: if ( get_trust( ch ) >= board->min_post_level ) boards.c: if ( board->post_group[0] != '\0' ) boards.c: if ( ch->pcdata->clan && !str_cmp( ch->pcdata->clan->name, board->post_group ) ) boards.c: if ( ch->pcdata->council && !str_cmp( ch->pcdata->council->name, board->post_group ) ) boards.c: if ( ch->pcdata->council2 && !str_cmp( ch->pcdata->council2->name, board->post_group ) ) boards.c: for ( tboard = first_board; tboard; tboard = tboard->next ) boards.c: fprintf( fpout, "Filename %s~\n", tboard->note_file ); boards.c: fprintf( fpout, "Vnum %d\n", tboard->board_obj ); boards.c: fprintf( fpout, "Min_read_level %d\n", tboard->min_read_level ); boards.c: fprintf( fpout, "Min_post_level %d\n", tboard->min_post_level ); boards.c: fprintf( fpout, "Min_remove_level %d\n", tboard->min_remove_level ); boards.c: fprintf( fpout, "Max_posts %d\n", tboard->max_posts ); boards.c: fprintf( fpout, "Type %d\n", tboard->type ); boards.c: fprintf( fpout, "Read_group %s~\n", tboard->read_group ); boards.c: fprintf( fpout, "Post_group %s~\n", tboard->post_group ); boards.c: fprintf( fpout, "Extra_readers %s~\n", tboard->extra_readers ); boards.c: fprintf( fpout, "Extra_removers %s~\n", tboard->extra_removers ); boards.c: for ( board = first_board; board; board = board->next ) boards.c: if ( board->board_obj == obj->pIndexData->vnum ) boards.c: for ( obj = ch->in_room->first_content; boards.c: obj = obj->next_content ) boards.c: if ( !str_cmp( ch->name, pnote->sender ) ) boards.c: if ( is_name( "all", pnote->to_list ) ) boards.c: if ( IS_HERO(ch) && is_name( "immortal", pnote->to_list ) ) boards.c: if ( is_name( ch->name, pnote->to_list ) ) boards.c: if ( ch->pnote ) boards.c: pnote->next = NULL; boards.c: pnote->prev = NULL; boards.c: pnote->sender = QUICKLINK( ch->name ); boards.c: pnote->date = STRALLOC( "" ); boards.c: pnote->to_list = STRALLOC( "" ); boards.c: pnote->subject = STRALLOC( "" ); boards.c: pnote->text = STRALLOC( "" ); boards.c: ch->pnote = pnote; boards.c: sprintf( filename, "%s%s", BOARD_DIR, board->note_file ); boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: pnote->sender, boards.c: pnote->date, boards.c: pnote->to_list, boards.c: pnote->subject, boards.c: pnote->voting, boards.c: pnote->yesvotes, boards.c: pnote->novotes, boards.c: pnote->abstentions, boards.c: pnote->text boards.c: STRFREE( pnote->text ); boards.c: STRFREE( pnote->subject ); boards.c: STRFREE( pnote->to_list ); boards.c: STRFREE( pnote->date ); boards.c: STRFREE( pnote->sender ); boards.c: if ( pnote->yesvotes ) boards.c: DISPOSE( pnote->yesvotes ); boards.c: if ( pnote->novotes ) boards.c: DISPOSE( pnote->novotes ); boards.c: if ( pnote->abstentions ) boards.c: DISPOSE( pnote->abstentions ); boards.c: UNLINK( pnote, board->first_note, board->last_note, next, prev ); boards.c: --board->num_posts; boards.c: for ( quill = ch->last_carrying; quill; quill = quill->prev_content ) boards.c: if ( quill->item_type == ITEM_PEN boards.c: switch( ch->substate ) boards.c: if (board->type != BOARD_NOTE) boards.c: switch( ch->substate ) boards.c: if (board->type != BOARD_MAIL) boards.c: if ( !ch->desc ) boards.c: switch( ch->substate ) boards.c: || paper->item_type != ITEM_PAPER ) boards.c: ed = ch->dest_buf; boards.c: STRFREE( ed->description ); boards.c: ed->description = copy_buffer( ch ); boards.c: * of a better way to do it. --Shaddai boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: pager_printf( ch, "&W%2d&w%c &W%-12.12s&w |&W%c&w| %-24s | &W%-32.32s&w\n\r", boards.c: pnote->sender, boards.c: (pnote->voting != VOTE_NONE) ? (pnote->voting == VOTE_OPEN ? 'O' : 'C') : ' ', boards.c: pnote->date, boards.c: pnote->subject ); boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: ch_printf( ch, "&W%2d&w) &W%-12.12s&w |&W%c&w| %-24s | &W%-32.32s&w\n\r", boards.c: pnote->sender, boards.c: is_note_to( ch, pnote ) ? '+' : '-', boards.c: pnote->date, boards.c: pnote->subject ); boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: pager_printf( ch, "&W%2d&w%c &W%-12.12s&w | &W%c&w | &W%-12.12s&w | &W%-35.35s&w\n\r", boards.c: /* pager_printf( ch, "%2d%c %-12s%c %-12.12s : %s\n\r", */ boards.c: pnote->sender, boards.c: (pnote->voting != VOTE_NONE) ? (pnote->voting == VOTE_OPEN ? 'O' : 'C') : ' ', boards.c: pnote->to_list, boards.c: pnote->subject ); boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: ch_printf( ch, "&W%2d&w) &W%-12.12s&w |&W%c&w| &W%-12.12s&w | &W%-44.44s&w\n\r", boards.c: pnote->sender, boards.c: is_note_to( ch, pnote ) ? '+' : '-', boards.c: pnote->to_list, boards.c: pnote->subject ); boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: "&wSubject: &W%-70.70s\n\r\n\r&w%s", boards.c: pnote->to_list, boards.c: pnote->sender, boards.c: pnote->date, boards.c: pnote->subject, boards.c: pnote->text ); boards.c: if ( pnote->yesvotes[0] != '\0' || pnote->novotes[0] != '\0' boards.c: || pnote->abstentions[0] != '\0' ) boards.c: pnote->yesvotes, pnote->novotes, pnote->abstentions ); boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: if ( ch->gold < 10 boards.c: ch->gold -= 10; boards.c: "&wSubject: &W%-70.70s\n\r\n\r&w%s", boards.c: pnote->to_list, boards.c: pnote->sender, boards.c: pnote->date, boards.c: pnote->subject, boards.c: pnote->text ); boards.c: for ( pnote = board->first_note; pnote && vnum < anum; pnote = pnote->next ) boards.c: if ( str_cmp( ch->name, pnote->sender ) ) boards.c: pnote->voting = VOTE_OPEN; boards.c: if ( str_cmp( ch->name, pnote->sender ) ) boards.c: pnote->voting = VOTE_CLOSED; boards.c: if ( pnote->voting != VOTE_OPEN ) boards.c: pnote->yesvotes, pnote->novotes, pnote->abstentions ); boards.c: if ( is_name( ch->name, buf ) ) boards.c: sprintf( buf, "%s %s", pnote->yesvotes, ch->name ); boards.c: DISPOSE( pnote->yesvotes ); boards.c: pnote->yesvotes = str_dup( buf ); boards.c: sprintf( buf, "%s %s", pnote->novotes, ch->name ); boards.c: DISPOSE( pnote->novotes ); boards.c: pnote->novotes = str_dup( buf ); boards.c: sprintf( buf, "%s %s", pnote->abstentions, ch->name ); boards.c: DISPOSE( pnote->abstentions ); boards.c: pnote->abstentions = str_dup( buf ); boards.c: if ( ch->substate == SUB_RESTRICTED ) boards.c: if ( quill->value[0] < 1 ) boards.c: || paper->item_type != ITEM_PAPER ) boards.c: if (paper->value[0] < 2 ) boards.c: paper->value[0] = 1; boards.c: ch->substate = SUB_WRITING_NOTE; boards.c: ch->dest_buf = ed; boards.c: --quill->value[0]; boards.c: start_editing( ch, ed->description ); boards.c: if ( quill->value[0] < 1 ) boards.c: || paper->item_type != ITEM_PAPER ) boards.c: if (paper->value[1] > 1 ) boards.c: paper->value[1] = 1; boards.c: STRFREE( ed->description ); boards.c: ed->description = STRALLOC( arg_passed ); boards.c: if ( quill->value[0] < 1 ) boards.c: || paper->item_type != ITEM_PAPER ) boards.c: if (paper->value[2] > 1) boards.c: if ( !IS_MAIL || imc || stat( fname, &fst ) != -1 || !str_cmp(arg_passed, "all") ) boards.c: paper->value[2] = 1; boards.c: STRFREE( ed->description ); boards.c: ed->description = STRALLOC( arg_passed ); boards.c: || paper->item_type != ITEM_PAPER ) boards.c:/* point 8 (new note - note show) */ boards.c: if ( (subject = get_extra_descr( "_subject_", paper->first_extradesc )) == NULL ) boards.c: if ( (to_list = get_extra_descr( "_to_", paper->first_extradesc )) == NULL ) boards.c: "&wSubject: &W%-70.70s\n\r\n\r&w", boards.c: ch->name, boards.c: if ( (text = get_extra_descr( "_text_", paper->first_extradesc )) == NULL ) boards.c: || paper->item_type != ITEM_PAPER ) boards.c: if ( paper->value[0] == 0 ) boards.c: if ( paper->value[1] == 0 ) boards.c: if (paper->value[2] == 0) boards.c: strtime[strlen(strtime)-1] = '\0'; boards.c: to = get_extra_descr( "_to_", paper->first_extradesc ); boards.c: subj = get_extra_descr( "_subject_", paper->first_extradesc ); boards.c: text = get_extra_descr( "_text_", paper->first_extradesc ); boards.c: if ( (imc && board->board_obj != sysdata.imc_mail_vnum) || boards.c: (!imc && board->board_obj == sysdata.imc_mail_vnum) ) boards.c: if ( board->num_posts >= board->max_posts ) boards.c: pnote->date = STRALLOC( strtime ); boards.c: pnote->to_list = to ? STRALLOC( to ) : STRALLOC( "all" ); boards.c: pnote->text = text ? STRALLOC( text ) : STRALLOC( "" ); boards.c: pnote->subject = subj ? STRALLOC( subj ) : STRALLOC( "" ); boards.c: pnote->sender = QUICKLINK( ch->name ); boards.c: pnote->voting = 0; boards.c: pnote->yesvotes = str_dup( "" ); boards.c: pnote->novotes = str_dup( "" ); boards.c: pnote->abstentions = str_dup( "" ); boards.c: imc_post_mail(ch, pnote->sender, pnote->to_list, pnote->date, boards.c: pnote->subject, pnote->text); boards.c: LINK( pnote, board->first_note, board->last_note, next, prev ); boards.c: board->num_posts++; boards.c: for ( pnote = board->first_note; pnote; pnote = pnote->next ) boards.c: if ( (is_name("all", pnote->to_list)) boards.c: if ( ch->gold < 50 && get_trust(ch) < sysdata.read_mail_free ) boards.c: ch->gold -= 50; boards.c: STRFREE( ed->description ); boards.c: ed->description = QUICKLINK(pnote->sender); boards.c: STRFREE( ed->description ); boards.c: ed->description = QUICKLINK(pnote->text); boards.c: STRFREE( ed->description ); boards.c: ed->description = QUICKLINK( pnote->to_list ); boards.c: STRFREE( ed->description ); boards.c: ed->description = QUICKLINK( pnote->subject ); boards.c: STRFREE( ed->description ); boards.c: ed->description = QUICKLINK( pnote->date ); boards.c: STRFREE( ed->description ); boards.c: strcat(notebuf, pnote->sender); boards.c: strcat(notebuf, pnote->to_list); boards.c: strcat(notebuf, pnote->subject); boards.c: strcat(notebuf, pnote->text); boards.c: ed->description = STRALLOC(notebuf); boards.c: paper->value[0] = 2; boards.c: paper->value[1] = 2; boards.c: paper->value[2] = 2; boards.c: pnote->sender, pnote->to_list); boards.c: STRFREE(paper->short_descr); boards.c: paper->short_descr = STRALLOC(short_desc_buf); boards.c: pnote->sender, pnote->to_list); boards.c: STRFREE(paper->description); boards.c: paper->description = STRALLOC(long_desc_buf); boards.c: pnote->to_list); boards.c: STRFREE(paper->name); boards.c: paper->name = STRALLOC(keyword_buf); boards.c: KEY( "Extra_readers", board->extra_readers, fread_string_nohash( fp ) ); boards.c: KEY( "Extra_removers", board->extra_removers, fread_string_nohash( fp ) ); boards.c: board->num_posts = 0; boards.c: board->first_note = NULL; boards.c: board->last_note = NULL; boards.c: board->next = NULL; boards.c: board->prev = NULL; boards.c: if ( !board->read_group ) boards.c: board->read_group = str_dup( "" ); boards.c: if ( !board->post_group ) boards.c: board->post_group = str_dup( "" ); boards.c: if ( !board->extra_readers ) boards.c: board->extra_readers = str_dup( "" ); boards.c: if ( !board->extra_removers ) boards.c: board->extra_removers = str_dup( "" ); boards.c: KEY( "Filename", board->note_file, fread_string_nohash( fp ) ); boards.c: KEY( "Min_read_level", board->min_read_level, fread_number( fp ) ); boards.c: KEY( "Min_post_level", board->min_post_level, fread_number( fp ) ); boards.c: KEY( "Min_remove_level", board->min_remove_level,fread_number( fp ) ); boards.c: KEY( "Max_posts", board->max_posts, fread_number( fp ) ); boards.c: KEY( "Post_group", board->post_group, fread_string_nohash( fp ) ); boards.c: KEY( "Read_group", board->read_group, fread_string_nohash( fp ) ); boards.c: KEY( "Type", board->type, fread_number( fp ) ); boards.c: KEY( "Vnum", board->board_obj, fread_number( fp ) ); boards.c: pnote->sender = fread_string( fp ); boards.c: pnote->date = fread_string( fp ); boards.c: pnote->to_list = fread_string( fp ); boards.c: pnote->subject = fread_string( fp ); boards.c: pnote->voting = fread_number( fp ); boards.c: pnote->yesvotes = fread_string_nohash( fp ); boards.c: pnote->novotes = fread_string_nohash( fp ); boards.c: pnote->abstentions = fread_string_nohash( fp ); boards.c: pnote->text = fread_string( fp ); boards.c: if ( !pnote->yesvotes ) pnote->yesvotes = str_dup( "" ); boards.c: if ( !pnote->novotes ) pnote->novotes = str_dup( "" ); boards.c: if ( !pnote->abstentions ) pnote->abstentions = str_dup( "" ); boards.c: pnote->next = NULL; boards.c: pnote->prev = NULL; boards.c: sprintf( notefile, "%s%s", BOARD_DIR, board->note_file ); boards.c: LINK( pnote, board->first_note, board->last_note, next, prev ); boards.c: board->num_posts++; boards.c: board->note_file = str_dup( strlower( argument ) ); boards.c: board->read_group = str_dup( "" ); boards.c: board->post_group = str_dup( "" ); boards.c: board->extra_readers = str_dup( "" ); boards.c: board->extra_removers = str_dup( "" ); boards.c: for ( board = first_board; board; board = board->next ) boards.c: if ( !str_cmp( arg1, board->note_file ) ) boards.c: board->board_obj = value; boards.c: board->min_read_level = value; boards.c: DISPOSE( board->read_group ); boards.c: board->read_group = str_dup( "" ); boards.c: board->read_group = str_dup( argument ); boards.c: DISPOSE( board->post_group ); boards.c: board->post_group = str_dup( "" ); boards.c: board->post_group = str_dup( argument ); boards.c: sprintf( buf, "%s %s", board->extra_removers, argument ); boards.c: DISPOSE( board->extra_removers ); boards.c: board->extra_removers = str_dup( buf ); boards.c: sprintf( buf, "%s %s", board->extra_readers, argument ); boards.c: DISPOSE( board->extra_readers ); boards.c: board->extra_readers = str_dup( buf ); boards.c: DISPOSE( board->note_file ); boards.c: board->note_file = str_dup( argument ); boards.c: board->min_post_level = value; boards.c: board->min_remove_level = value; boards.c: board->max_posts = value; boards.c: board->type = value; boards.c: for ( board = first_board; board; board = board->next ) boards.c: if ( !str_cmp( arg, board->note_file ) ) boards.c: ch_printf_color( ch, "\n\r&GFilename: &W%-15.15s &GOVnum: &W%-5d &GRead: &W%-2d &GPost: &W%-2d &GRemove: &W%-2d\n\r&GMaxpost: &W%-3d >ype: &W%d\n\r&GPosts: %d\n\r", boards.c: board->note_file, board->board_obj, boards.c: board->min_read_level, board->min_post_level, boards.c: board->min_remove_level, board->max_posts, boards.c: board->type, board->num_posts ); boards.c: board->read_group, board->post_group, board->extra_readers, board->extra_removers ); boards.c: for ( board = first_board; board; board = board->next ) boards.c: pager_printf_color( ch, "&G%-15.15s #: %5d Read: %2d Post: %2d Rmv: %2d Max: %3d Posts: &g%3d >ype: %d\n\r", boards.c: board->note_file, board->board_obj, boards.c: board->min_read_level, board->min_post_level, boards.c: board->min_remove_level, board->max_posts, board->num_posts, boards.c: board->type); boards.c: for ( board = first_board; board; board = board->next ) { boards.c: if ( board->type == BOARD_MAIL && can_read(ch, board) ) boards.c: for ( note = board->first_note; note; note = note->next ) boards.c: obj = get_obj_index(board->board_obj); boards.c: ch_printf(ch, "You have %d mail message%swaiting on %s.\r\n", cnt, (cnt > 1) ? "s " : " ", obj->short_descr); bounty.c: * -----------------------------------------------------------| (0...0) * bounty.c: * -----------------------------------------------------------| {o o} * bounty.c: * ------------------------------------------------------------------------ * bounty.c: * ------------------------------------------------------------------------ * bounty.c: * Bounty Add-On * bounty.c: * - Garinan * bounty.c: for ( bounty = ch->in_room->first_person; bounty; bounty = bounty->next_in_room ) bounty.c: if ( IS_NPC( bounty ) && xIS_SET( bounty->act, ACT_BOUNTY ) ) bounty.c: * alter below to suit your needs. - Garinan */ bounty.c: * the value of their bounty? They shouldn't :P - Garinan */ bounty.c: else if ( ch->bounty > 0 ) bounty.c: ch_printf( ch, "&YYou have a bounty worth %d gold on your head.\n\r", ch->bounty ); bounty.c: else if ( ch->bowed > 0 ) bounty.c: ch_printf( ch, "&YYou are owed %d gold in bounty earnings.\n\r", ch->bowed ); bounty.c: ch->short_descr ); bounty.c: * - Garinan */ bounty.c: else if ( ch->bounty > 0 ) bounty.c: ch_printf( ch, "&YYou have a bounty worth %d gold on your head.\n\r", ch->bounty ); bounty.c: else if ( ch->bowed > 0 ) bounty.c: ch_printf( ch, "&YYou are owed %d gold in bounty earnings.\n\r", ch->bowed ); bounty.c: if ( victim->bounty > 0 ) bounty.c: ch->name, victim->name, victim->bounty ); bounty.c: sprintf( buf, "%s That player has no bounty.", ch->name ); bounty.c: if ( ch->belig == 0 ) bounty.c: sprintf( buf, "%s You are already uneligible to have a bounty on your head!", ch->name ); bounty.c: if ( ch->gold < cost ) bounty.c: sprintf( buf, "%s I'm sorry, you can't afford this.", ch->name ); bounty.c: ch->gold -= cost; bounty.c: ch->belig = 0; bounty.c: sprintf( buf, "%s You are no longer eligible to have a bounty on your head.", ch->name ); bounty.c: if ( ch->bowed <= 0 ) bounty.c: sprintf( buf, "%s I owe you nothing %s!", ch->name, ch->name ); bounty.c: ch->gold += ch->bowed; bounty.c: sprintf( buf, "&YYou collect %d gold worth of bounties.\n\r", ch->bowed ); bounty.c: ch->bowed = 0; bounty.c: sprintf( buf, "%s A pleasure doing business with you.", ch->name ); bounty.c: amount = ch->gold; bounty.c: if ( amount > ch->gold ) bounty.c: sprintf( buf, "%s Check your pockets and try again, you don't have that much gold!", ch->name ); bounty.c: sprintf( buf, "%s That amount is too frugal, try again!", ch->name ); bounty.c: sprintf( buf, "%s How do you expect me to stay in business at those prices!?", ch->name ); bounty.c: if ( ( amount + victim->bounty ) > bountymax ) bounty.c: sprintf( buf, "%s That would exceed the maximum allowable bounty of %d gold!", ch->name, bountymax ); bounty.c: if ( victim->level >= LEVEL_IMMORTAL && ch != victim ) bounty.c: sprintf( buf, "%s You may not place a bounty on the head of an immortal!", ch->name ); bounty.c: if ( !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) && victim->belig == 0 && ch != victim ) bounty.c: sprintf( buf, "%s You may only place a bounty on the head of a pkiller, or an eligible peaceful.", ch->name ); bounty.c: sprintf( buf, "%s Place a bounty on yourself? Ever considered suicide?", ch->name ); bounty.c: if ( !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) && ch->belig == 0 ) bounty.c: sprintf( buf, "%s By doing this you are now eligible to have bounties set on your own head!", ch->name ); bounty.c: sprintf( buf, "%s You can become uneligible again by typing bounty buy, at a cost of %d gold", ch->name, cost ); bounty.c: ch->belig = 1; bounty.c: if ( victim->bounty < 0 ) bounty.c: victim->bounty = 0; bounty.c: ch->gold -= amount; bounty.c: if (victim->bounty > 0) bounty.c: sprintf( buf, "%s The bounty on %s has been increased by %d gold!", ch->name, victim->name, amount ); bounty.c: victim->bounty += amount; bounty.c: victim->bounty += amount; bounty.c: sprintf( buf, "A bounty worth %d gold has been placed on the head of %s!", amount, victim->name ); bounty.c: if ( victim->bounty > 0 ) bounty.c: victim->bounty = 0; bsnip.c: tarea = ch->in_room->area; bsnip.c: trange = tarea->hi_r_vnum; bsnip.c: lrange = tarea->low_r_vnum; bsnip.c: if(pexit->to_room->area != tarea) bsnip.c: pager_printf(ch, "To: %-20.20s %s\n\r",pexit->to_room->area->filename,pexit->to_room->area->name); bsnip.c: pager_printf( ch,"%15d %-30.30s -> %15d (%s)\n\r", vnum, room->name,pexit->vnum,dir_name[i] ); bsnip.c: tarea = ch->in_room->area; bsnip.c: for ( otherarea=first_area; otherarea; otherarea=otherarea->next) bsnip.c: trange = otherarea->hi_r_vnum; bsnip.c: lrange = otherarea->low_r_vnum; bsnip.c: if(pexit->to_room->area == tarea) bsnip.c: pager_printf(ch, "From: %-20.20s %s\n\r",otherarea->filename,otherarea->name); bsnip.c: pager_printf(ch, "%15d %-30.30s -> %15d (%s)\n\r", vnum, room->name,pexit->vnum,dir_name[i] ); buffer.c: The buffer is primarily used for null-terminated character strings. buffer.c:#define EMEM_SIZE -1 /* find_mem_size returns this when block is too large */ buffer.c: 16, 32, 64, 128, 256, 1024, 2048, 4096, 8192, 16384, 32768-64 buffer.c:#else /* debugging - expect filename and line */ buffer.c: buffer->size = size; buffer.c: CREATE( buffer->data, char, size ); buffer.c: buffer->overflowed = FALSE; buffer.c: buffer->len = 0; buffer.c:#else /* debugging - expect filename and line */ buffer.c: if (buffer->overflowed) /* Do not attempt to add anymore if buffer is already overflowed */ buffer.c: if ((text_len+buffer->len+1) > buffer->size) /* expand? */ buffer.c: // new_size = find_mem_size (buffer->size + text_len + 1); buffer.c: new_size = buffer->size + text_len + 1 ; buffer.c: sprintf (buf, "Buffer overflow, wanted %d bytes (%s:%u).", text_len+buffer->len, file, line); buffer.c: sprintf (buf, "Buffer overflow, wanted %d bytes.",text_len+buffer->len); buffer.c: buffer->overflowed = TRUE; buffer.c: memcpy (new_data, buffer->data, buffer->len); buffer.c: DISPOSE(buffer->data); buffer.c: buffer->data = new_data; buffer.c: buffer->size = new_size; buffer.c: memcpy (buffer->data + buffer->len, text, text_len); /* Start copying */ buffer.c: buffer->len += text_len; /* Adjust length */ buffer.c: buffer->data[buffer->len] = NUL; /* Null-terminate at new end */ buffer.c: DISPOSE (buffer->data); buffer.c: buffer->overflowed = FALSE; buffer.c: DISPOSE( buffer->data ); buffer.c: CREATE( buffer->data, char, 200 ); buffer.c: buffer->size = 200; buffer.c: buffer->len = 0; buffer.c: if (res >= MAX_STRING_LENGTH-1) build.c: * -----------------------------------------------------------| (0...0) * build.c: * -----------------------------------------------------------| {o o} * build.c: * ------------------------------------------------------------------------ * build.c: * ------------------------------------------------------------------------ * build.c: * ie: drop -- for an object, it would be triggered when that object is build.c: * dropped; -- for a room, it would be triggered when anything is dropped build.c: * -- for a mob, it would be triggered when anything is dropped build.c: buf[--x] = '\0'; build.c: buf[--x] = '\0'; build.c: int vnum = room->vnum; build.c: if ( !IS_SET( room->room_flags, ROOM_PROTOTYPE) ) build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum >= pArea->low_r_vnum build.c: && vnum <= pArea->hi_r_vnum ) build.c: int vnum = obj->pIndexData->vnum; build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum >= pArea->low_o_vnum build.c: && vnum <= pArea->hi_o_vnum ) build.c: int vnum = obj->vnum; build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum >= pArea->low_o_vnum build.c: && vnum <= pArea->hi_o_vnum ) build.c: vnum = mob->pIndexData->vnum; build.c: if ( !xIS_SET(mob->act, ACT_PROTOTYPE) ) build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum >= pArea->low_m_vnum build.c: && vnum <= pArea->hi_m_vnum ) build.c: int vnum = mob->vnum; build.c: if ( !xIS_SET(mob->act, ACT_PROTOTYPE) ) build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum >= pArea->low_m_vnum build.c: && vnum <= pArea->hi_m_vnum ) build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: * For use with cedit --Shaddai build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: return -1; build.c: last = strptr[len-1]; build.c: *str = '-'; build.c: strptr[len-1] = last; build.c: if ( !ch->desc ) build.c: if ( ch->substate == SUB_RESTRICTED ) build.c: bug( "NOT GOOD: start_editing: ch->substate == SUB_RESTRICTED", 0 ); build.c: send_to_char( "-----------------------------------------------------------------------\n\r> ", ch ); build.c: if ( ch->editor ) build.c: edit->numlines = 0; build.c: edit->on_line = 0; build.c: edit->size = 0; build.c: edit->line[lines][lpos] = '\0'; build.c: edit->line[lines][lpos] = '\0'; build.c: edit->line[lines][lpos++] = c; build.c: edit->line[lines][lpos] = '\0'; build.c: edit->line[lines][lpos] = '~'; build.c: edit->line[lines][lpos+1] = '\0'; build.c: edit->numlines = lines; build.c: edit->size = size; build.c: edit->on_line = lines; build.c: ch->editor = edit; build.c: ch->desc->connected = CON_EDITING; build.c: if ( !ch->editor ) build.c: for ( x = 0; x < ch->editor->numlines; x++ ) build.c: strcpy( tmp, ch->editor->line[x] ); build.c: if ( tmp && tmp[len-1] == '~' ) build.c: tmp[len-1] = '\0'; build.c: DISPOSE( ch->editor ); build.c: ch->editor = NULL; build.c: ch->dest_buf = NULL; build.c: ch->spare_ptr = NULL; build.c: ch->substate = SUB_NONE; build.c: if ( !ch->desc ) build.c: ch->desc->connected = CON_PLAYING; build.c: || vnum < 1 || IS_NPC(ch) || !ch->pcdata->area ) build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum < pArea->low_r_vnum build.c: || vnum > pArea->hi_r_vnum ) build.c: location->area = ch->pcdata->area; build.c: in_room = ch->in_room; build.c: if ( ch->fighting ) build.c: if (ch->position != POS_STANDING) build.c: sprintf(buf2, "%s leaves in a swirling mist.", ch->name); build.c: for ( fch = in_room->first_person; fch; fch = fch_next ) build.c: fch_next = fch->next_in_room; build.c: && ((get_trust(fch) >= (IS_NPC(ch) ? ch->level : ch->pcdata->wizinvis)) build.c: || !xIS_SET(ch->act, PLR_WIZINVIS)) ) build.c: sprintf(buf, "&Y%s&w\r\n", (ch->pcdata && ch->pcdata->bamfout[0] != '\0') ? ch->pcdata->bamfout : buf2); build.c: ch->regoto = ch->in_room->vnum; build.c: if ( ch->mount ) build.c: char_from_room( ch->mount ); build.c: char_to_room( ch->mount, location ); build.c: sprintf(buf2, "&Y%s appears in a swirling mist.&w", ch->name); build.c: for ( fch = ch->in_room->first_person; fch; fch = fch_next ) build.c: fch_next = fch->next_in_room; build.c: if (fch != ch && ((get_trust(fch) >= (IS_NPC(ch) ? ch->level : ch->pcdata->wizinvis)) || !xIS_SET(ch->act, PLR_WIZINVIS)) ) { build.c: sprintf(buf, "&Y%s&w\r\n", (ch->pcdata && ch->pcdata->bamfin[0] != '\0') ? ch->pcdata->bamfin : buf2); build.c: if ( ch->in_room == in_room ) build.c: for ( fch = in_room->first_person; fch; fch = fch_next ) build.c: fch_next = fch->next_in_room; build.c: if ( fch->master == ch && IS_IMMORTAL(fch) ) build.c: else if ( IS_NPC(fch) && fch->master == ch ) build.c: if ( !ch->desc ) build.c: switch( ch->substate ) build.c: if ( !ch->dest_buf ) build.c: bug( "do_mset: sub_mob_desc: NULL ch->dest_buf", 0 ); build.c: ch->substate = SUB_NONE; build.c: victim = ch->dest_buf; build.c: STRFREE( victim->description ); build.c: victim->description = copy_buffer( ch ); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: STRFREE( victim->pIndexData->description ); build.c: victim->pIndexData->description = QUICKLINK( victim->description ); build.c: ch->substate = ch->tempnum; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: victim = ch->dest_buf; build.c: do_mstat( ch, victim->name ); build.c: ch->substate = SUB_NONE; build.c: ch->dest_buf = NULL; build.c: if ( ch->pcdata && ch->pcdata->subprompt ) build.c: STRFREE( ch->pcdata->subprompt ); build.c: ch->pcdata->subprompt = NULL; build.c: strcpy( arg1, victim->name ); build.c: if ( arg1[0] == '\0' || (arg2[0] == '\0' && ch->substate != SUB_REPEATCMD) build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->dest_buf = NULL; build.c: ch->dest_buf = victim; build.c: victim->name ); build.c: ch->substate = SUB_REPEATCMD; build.c: ch->dest_buf = victim; build.c: if ( ch->pcdata ) build.c: if ( ch->pcdata->subprompt ) build.c: STRFREE( ch->pcdata->subprompt ); build.c: sprintf( buf, "<&CMset &W#%d&w> %%i", victim->pIndexData->vnum ); build.c: sprintf( buf, "<&CMset &W%s&w> %%i", victim->name ); build.c: ch->pcdata->subprompt = STRALLOC( buf ); build.c: value = is_number( arg3 ) ? atoi( arg3 ) : -1; build.c: if ( atoi(arg3) < -1 && value == -1 ) build.c: victim->perm_str = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_str = value; build.c: victim->perm_int = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_int = value; build.c: victim->perm_wis = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_wis = value; build.c: victim->perm_dex = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_dex = value; build.c: victim->perm_con = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_con = value; build.c: victim->perm_cha = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_cha = value; build.c: victim->perm_lck = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->perm_lck = value; build.c: victim->height = URANGE( 10, value, 100 ); build.c: victim->weight = URANGE( 10, value, 500 ); build.c: if ( value < -30 || value > 30 ) build.c: send_to_char( "Saving throw range is -30 to 30.\n\r", ch ); build.c: victim->saving_poison_death = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->saving_poison_death = value; build.c: if ( value < -30 || value > 30 ) build.c: send_to_char( "Saving throw range is -30 to 30.\n\r", ch ); build.c: victim->saving_wand = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->saving_wand = value; build.c: if ( value < -30 || value > 30 ) build.c: send_to_char( "Saving throw range is -30 to 30.\n\r", ch ); build.c: victim->saving_para_petri = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->saving_para_petri = value; build.c: if ( value < -30 || value > 30 ) build.c: send_to_char( "Saving throw range is -30 to 30.\n\r", ch ); build.c: victim->saving_breath = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->saving_breath = value; build.c: if ( value < -30 || value > 30 ) build.c: send_to_char( "Saving throw range is -30 to 30.\n\r", ch ); build.c: victim->saving_spell_staff = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->saving_spell_staff = value; build.c: victim->sex = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->sex = value; build.c: ch_printf( ch, "NPC Class range is 0 to %d.\n", MAX_NPC_CLASS-1 ); build.c: victim->class = value; build.c: if ( xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->class = value; build.c: victim->class = value; build.c: ch_printf( ch, "NPC Class range is 0 to %d.\n", MAX_NPC_CLASS-1 ); build.c: victim->class = value; build.c: if ( xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->class = value; build.c: victim->class2 = value; build.c: ch_printf( ch, "Race range is 0 to %d.\n", MAX_RACE-1 ); build.c: ch_printf( ch, "Race range is 0 to %d.\n", MAX_NPC_RACE-1 ); build.c: victim->race = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->race = value; build.c: if ( value < -300 || value > 300 ) build.c: send_to_char( "AC range is -300 to 300.\n\r", ch ); build.c: victim->armor = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->ac = value; build.c: ch->pcdata->balance = value; build.c: victim->level = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->level = value; build.c: if ( value < -1 || value > LEVEL_AVATAR + 5 ) build.c: ch_printf( ch, "Level2 range is -1 to %d.\n\r", LEVEL_AVATAR + 5 ); build.c: victim->level2 = value; build.c: victim->numattacks = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->numattacks = value; build.c: victim->gold = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->gold = value; build.c: victim->hitroll = URANGE(0, value, 85); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->hitroll = victim->hitroll; build.c: victim->damroll = URANGE(0, value, 65); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->damroll = victim->damroll; build.c: victim->max_hit = value; build.c: victim->max_mana = value; build.c: victim->max_move = value; build.c: victim->practice = value; build.c: if ( value < -1000 || value > 1000 ) build.c: send_to_char( "Alignment range is -1000 to 1000.\n\r", ch ); build.c: victim->alignment = value; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->alignment = value; build.c: pwdnew = crypt( arg3, ch->name ); build.c: DISPOSE( victim->pcdata->pwd ); build.c: victim->pcdata->pwd = str_dup( pwdnew ); build.c: ch_printf( victim, "Your password has been changed by %s.\n\r", ch->name ); build.c: DISPOSE( victim->pcdata->rank ); build.c: victim->pcdata->rank = str_dup( "" ); build.c: victim->pcdata->rank = str_dup( argument ); build.c: victim->pcdata->quest_number = value; build.c: victim->pcdata->quest_accum = value; build.c: victim->pcdata->quest_curr = value; build.c: if ( value < -2500 || value > 2500 ) build.c: send_to_char( "Range is from -2500 to 2500.\n\r", ch ); build.c: victim->pcdata->favor = value; build.c: if ( value < -100 || value > 100 ) build.c: send_to_char( "Value must be in range -100 to +100.\n\r", ch ); build.c: victim->mental_state = value; build.c: if ( value < -100 || value > 100 ) build.c: send_to_char( "Value must be in range -100 to +100.\n\r", ch ); build.c: victim->emotional_state = value; build.c: if ( value < -1 || value > 100 ) build.c: send_to_char( "Thirst range is -1 to 100.\n\r", ch ); build.c: victim->pcdata->condition[COND_THIRST] = value; build.c: victim->pcdata->condition[COND_DRUNK] = value; build.c: if ( value < -1 || value > 100 ) build.c: send_to_char( "Full range is -1 to 100.\n\r", ch ); build.c: victim->pcdata->condition[COND_FULL] = value; build.c: if ( value < -1 || value > MAX_LEVEL+10 ) build.c: ch_printf( ch, "Blood range is -1 to %d.\n\r", MAX_LEVEL+10 ); build.c: victim->pcdata->condition[COND_BLOODTHIRST] = value; build.c: STRFREE( victim->name ); build.c: victim->name = STRALLOC( arg3 ); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: STRFREE( victim->pIndexData->player_name ); build.c: victim->pIndexData->player_name = QUICKLINK( victim->name ); build.c: if ( victim->pcdata ) build.c: victim->pcdata->min_snoop = value; build.c: * But it was early in the morning :P --Shaddai build.c: if ( victim->pcdata->clan == NULL ) build.c: * any membership space. --Shaddai build.c: --victim->pcdata->clan->num_members; build.c: save_clan( victim->pcdata->clan ); build.c: STRFREE( victim->pcdata->clan_name ); build.c: victim->pcdata->clan_name = STRALLOC( "" ); build.c: victim->pcdata->clan = NULL; build.c: if ( victim->pcdata->clan != NULL && !IS_IMMORTAL( victim ) ) build.c: --victim->pcdata->clan->num_members; build.c: save_clan( victim->pcdata->clan ); build.c: STRFREE( victim->pcdata->clan_name ); build.c: victim->pcdata->clan_name = QUICKLINK( clan->name ); build.c: victim->pcdata->clan = clan; build.c: ++victim->pcdata->clan->num_members; build.c: save_clan( victim->pcdata->clan ); build.c: STRFREE( victim->pcdata->deity_name ); build.c: victim->pcdata->deity_name = STRALLOC( "" ); build.c: victim->pcdata->deity = NULL; build.c: STRFREE( victim->pcdata->deity_name ); build.c: victim->pcdata->deity_name = QUICKLINK( deity->name ); build.c: victim->pcdata->deity = deity; build.c: STRFREE( victim->pcdata->council_name ); build.c: victim->pcdata->council_name = STRALLOC( "" ); build.c: victim->pcdata->council = NULL; build.c: STRFREE( victim->pcdata->council_name ); build.c: victim->pcdata->council_name = QUICKLINK( council->name ); build.c: victim->pcdata->council = council; build.c: STRFREE( victim->pcdata->council2_name ); build.c: victim->pcdata->council2_name = STRALLOC( "" ); build.c: victim->pcdata->council2 = NULL; build.c: STRFREE( victim->pcdata->council2_name ); build.c: victim->pcdata->council2_name = QUICKLINK( council->name ); build.c: victim->pcdata->council2 = council; build.c: STRFREE( victim->short_descr ); build.c: victim->short_descr = STRALLOC( arg3 ); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: STRFREE( victim->pIndexData->short_descr ); build.c: victim->pIndexData->short_descr = QUICKLINK( victim->short_descr ); build.c: STRFREE( victim->long_descr ); build.c: victim->long_descr = STRALLOC( buf ); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: STRFREE( victim->pIndexData->long_descr ); build.c: victim->pIndexData->long_descr = QUICKLINK( victim->long_descr ); build.c: STRFREE( victim->description ); build.c: victim->description = STRALLOC( arg3 ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: STRFREE(victim->pIndexData->description ); build.c: victim->pIndexData->description = QUICKLINK( victim->description ); build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->tempnum = SUB_REPEATCMD; build.c: ch->tempnum = SUB_NONE; build.c: ch->substate = SUB_MOB_DESC; build.c: ch->dest_buf = victim; build.c: start_editing( ch, victim->description ); build.c: victim->spec_fun = NULL; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->spec_fun = victim->spec_fun; build.c: if ( ( victim->spec_fun = spec_lookup( arg3 ) ) == 0 ) build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->spec_fun = victim->spec_fun; build.c: && !is_name("protoflag", ch->pcdata->bestowments) ) build.c: TOGGLE_BIT( victim->pcdata->flags, 1 << value ); build.c: xTOGGLE_BIT( victim->act, value ); build.c: victim->pIndexData->act = victim->act; build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->act = victim->act; build.c: xTOGGLE_BIT( victim->affected_by, value ); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->affected_by = victim->affected_by; build.c: * save some more finger-leather for setting RIS stuff build.c: TOGGLE_BIT( victim->resistant, 1 << value ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->resistant = victim->resistant; build.c: TOGGLE_BIT( victim->immune, 1 << value ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->immune = victim->immune; build.c: TOGGLE_BIT( victim->susceptible, 1 << value ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->susceptible = victim->susceptible; build.c: TOGGLE_BIT( victim->xflags, 1 << value ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->xflags = victim->xflags; build.c: xTOGGLE_BIT( victim->attacks, value ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->attacks = victim->attacks; build.c: xTOGGLE_BIT( victim->defenses, value ); build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->defenses = victim->defenses; build.c: victim->position = value; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->position = victim->position; build.c: victim->defposition = value; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->defposition = victim->defposition; build.c: * save some finger-leather build.c: * save some more finger-leather build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->hitnodice = value; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->hitsizedice = value; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->hitplus = value; build.c: if( ch->pcdata->wedto ) build.c: STRFREE( ch->pcdata->wedto ); build.c: ch->pcdata->wedto = STRALLOC( arg3 ); build.c: ch->pcdata->wedto = NULL; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->damnodice = value; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->damsizedice = value; build.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->damplus = value; build.c: if ( !IS_SET(victim->pcdata->area->status, AREA_LOADED ) ) build.c: SET_BIT( victim->pcdata->area->status, AREA_LOADED ); build.c: REMOVE_BIT( victim->pcdata->area->status, AREA_LOADED ); build.c: send_to_char( "Your area set to NOT-LOADED!\n\r", victim ); build.c: send_to_char( "Area set to NON-LOADED!\n\r", ch ); build.c:/* if ( IS_SET(victim->pcdata->flags, PCFLAG_DEADLY) ) build.c: REMOVE_BIT(victim->pcdata->flags, PCFLAG_DEADLY ); build.c: xSET_BIT(victim->act, PLR_NICE); build.c: send_to_char( "You are now a NON-PKILL player.\n\r", victim ); build.c: send_to_char( "That player is now non-pkill.\n\r", ch ); build.c: SET_BIT(victim->pcdata->flags, PCFLAG_DEADLY); build.c: xREMOVE_BIT(victim->act, PLR_NICE); build.c: } -- Scion */ build.c: if ( victim->pcdata->clan && !IS_IMMORTAL(victim)) build.c: if ( victim->pcdata->clan->clan_type == CLAN_GUILD) build.c: if (skill_table[sn]->guild == victim->pcdata->clan->class build.c: && skill_table[sn]->name != NULL) build.c: victim->pcdata->learned[sn] = 0; build.c: if (victim->speaking & LANG_CLAN) build.c: victim->speaking = LANG_COMMON; build.c: REMOVE_BIT (victim->speaks, LANG_CLAN); build.c: --victim->pcdata->clan->num_members; build.c: if (!str_cmp (victim->name, victim->pcdata->clan->leader) ) build.c: STRFREE (victim->pcdata->clan->leader); build.c: victim->pcdata->clan->leader = STRALLOC (""); build.c: if (!str_cmp (victim->name, victim->pcdata->clan->number1)) build.c: STRFREE (victim->pcdata->clan->number1); build.c: victim->pcdata->clan->number1 = STRALLOC (""); build.c: if (!str_cmp (victim->name, victim->pcdata->clan->number2)) build.c: STRFREE (victim->pcdata->clan->number2); build.c: victim->pcdata->clan->number2 = STRALLOC (""); build.c: save_clan( victim->pcdata->clan ); build.c: STRFREE (victim->pcdata->clan_name); build.c: victim->pcdata->clan_name = STRALLOC( "" ); build.c: victim->pcdata->clan = NULL; build.c: if ( v2 == -1 ) build.c: TOGGLE_BIT( victim->speaks, 1 << v2 ); build.c: REMOVE_BIT( victim->speaks, race_table[victim->race]->language ); build.c: if ( !knows_language( victim, victim->speaking, victim ) ) build.c: victim->speaking = race_table[victim->race]->language; build.c: if ( xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->speaks = victim->speaks; build.c: if ( v2 == -1 ) build.c: TOGGLE_BIT( victim->speaking, 1 << v2 ); build.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: victim->pIndexData->speaking = victim->speaking; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->substate = SUB_RESTRICTED; build.c: ch->substate = SUB_REPEATCMD; build.c: ch->last_cmd = do_mset; build.c: if ( !ch->desc ) build.c: switch( ch->substate ) build.c: if ( !ch->dest_buf ) build.c: bug( "do_oset: sub_obj_extra: NULL ch->dest_buf", 0 ); build.c: ch->substate = SUB_NONE; build.c: * the object and index-object lists, searching through the build.c: ed = ch->dest_buf; build.c: STRFREE( ed->description ); build.c: ed->description = copy_buffer( ch ); build.c: tmpobj = ch->spare_ptr; build.c: ch->dest_buf = tmpobj; build.c: ch->substate = ch->tempnum; build.c: if ( !ch->dest_buf ) build.c: bug( "do_oset: sub_obj_long: NULL ch->dest_buf", 0 ); build.c: ch->substate = SUB_NONE; build.c: obj = ch->dest_buf; build.c: STRFREE( obj->description ); build.c: obj->description = copy_buffer( ch ); build.c: STRFREE( obj->pIndexData->description ); build.c: obj->pIndexData->description = QUICKLINK( obj->description ); build.c: tmpobj = ch->spare_ptr; build.c: ch->substate = ch->tempnum; build.c: ch->dest_buf = tmpobj; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: obj = ch->dest_buf; build.c: do_ostat( ch, obj->name ); build.c: ch->substate = SUB_NONE; build.c: ch->dest_buf = NULL; build.c: if ( ch->pcdata && ch->pcdata->subprompt ) build.c: STRFREE( ch->pcdata->subprompt ); build.c: ch->pcdata->subprompt = NULL; build.c: strcpy( arg1, obj->name ); build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->dest_buf = obj; build.c: ch->dest_buf = NULL; build.c: obj->name, obj->pIndexData->vnum ); build.c: ch->substate = SUB_REPEATCMD; build.c: ch->dest_buf = obj; build.c: if ( ch->pcdata ) build.c: if ( ch->pcdata->subprompt ) build.c: STRFREE( ch->pcdata->subprompt ); build.c: sprintf( buf, "<&COset &W#%d&w> %%i", obj->pIndexData->vnum ); build.c: ch->pcdata->subprompt = STRALLOC( buf ); build.c: STRFREE( obj->name ); build.c: obj->name = STRALLOC( arg3 ); build.c: STRFREE(obj->pIndexData->name ); build.c: obj->pIndexData->name = QUICKLINK( obj->name ); build.c: STRFREE( obj->short_descr ); build.c: obj->short_descr = STRALLOC( arg3 ); build.c: STRFREE(obj->pIndexData->short_descr ); build.c: obj->pIndexData->short_descr = QUICKLINK( obj->short_descr ); build.c: STRFREE( obj->short_descr ); build.c: obj->short_descr = STRALLOC( arg3 ); build.c: if ( str_infix( "rename", obj->name ) ) build.c: sprintf( buf, "%s %s", obj->name, "rename" ); build.c: STRFREE( obj->name ); build.c: obj->name = STRALLOC( buf ); build.c: STRFREE( obj->description ); build.c: obj->description = STRALLOC( arg3 ); build.c: STRFREE(obj->pIndexData->description ); build.c: obj->pIndexData->description = QUICKLINK( obj->description ); build.c: STRFREE( obj->description ); build.c: obj->description = STRALLOC( arg3 ); build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->tempnum = SUB_REPEATCMD; build.c: ch->tempnum = SUB_NONE; build.c: ch->spare_ptr = obj; build.c: ch->spare_ptr = NULL; build.c: ch->substate = SUB_OBJ_LONG; build.c: ch->dest_buf = obj; build.c: start_editing( ch, obj->description ); build.c: obj->value[0] = value; build.c: obj->pIndexData->value[0] = value; build.c: obj->value[1] = value; build.c: obj->pIndexData->value[1] = value; build.c: if(obj->item_type == ITEM_FURNITURE) build.c: TOGGLE_BIT(obj->value[2],1 << value); build.c: TOGGLE_BIT(obj->pIndexData->value[2],1 << value); build.c: obj->value[2]=obj->pIndexData->value[2]; build.c: obj->value[2] = value; build.c: obj->pIndexData->value[2] = value; build.c: if ( obj->item_type == ITEM_WEAPON && value != 0 ) build.c: obj->value[2] = obj->pIndexData->value[1] * obj->pIndexData->value[2]; build.c: obj->value[3] = value; build.c: obj->pIndexData->value[3] = value; build.c: obj->value[4] = value; build.c: obj->pIndexData->value[4] = value; build.c: obj->value[5] = value; build.c: obj->pIndexData->value[5] = value; build.c: obj->item_type = (sh_int) value; build.c: obj->pIndexData->item_type = obj->item_type; build.c: && !is_name ("protoflag", ch->pcdata->bestowments) ) build.c: xTOGGLE_BIT(obj->extra_flags, value); build.c: obj->pIndexData->extra_flags = obj->extra_flags; build.c: obj->pIndexData->extra_flags = obj->extra_flags; build.c: TOGGLE_BIT( obj->wear_flags, 1 << value ); build.c: obj->pIndexData->wear_flags = obj->wear_flags; build.c: obj->level = value; build.c: obj->weight = value; build.c: obj->pIndexData->weight = value; build.c: obj->cost = value; build.c: obj->pIndexData->cost = value; build.c: obj->pIndexData->rent = value; build.c: obj->pIndexData->layers = value; build.c: obj->timer = value; build.c: STRFREE( obj->action_desc ); build.c: obj->action_desc = STRALLOC( arg3 ); build.c: STRFREE(obj->pIndexData->action_desc ); build.c: obj->pIndexData->action_desc = QUICKLINK( obj->action_desc ); build.c: value = bsearch_skill_exact(arg3, gsn_first_spell, gsn_first_skill - 1); build.c: if (value == -1) build.c: paf->type = -1; build.c: paf->duration = -1; build.c: paf->location = loc; build.c: paf->modifier = value; build.c: xCLEAR_BITS(paf->bitvector); build.c: paf->next = NULL; build.c: LINK(paf, obj->pIndexData->first_affect, build.c: obj->pIndexData->last_affect, next, prev); build.c: LINK(paf, obj->first_affect, obj->last_affect, next, prev); build.c: pObjIndex = obj->pIndexData; build.c: for ( paf = pObjIndex->first_affect; paf; paf = paf->next ) build.c: UNLINK( paf, pObjIndex->first_affect, pObjIndex->last_affect, next, prev ); build.c: --top_affect; build.c: for ( paf = obj->first_affect; paf; paf = paf->next ) build.c: UNLINK( paf, obj->first_affect, obj->last_affect, next, prev ); build.c: --top_affect; build.c: if ( obj->timer ) build.c: if ( obj->item_type == ITEM_PAPER ) build.c: ed = SetOExtraProto( obj->pIndexData, arg3 ); build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->tempnum = SUB_REPEATCMD; build.c: ch->tempnum = SUB_NONE; build.c: ch->spare_ptr = obj; build.c: ch->spare_ptr = NULL; build.c: ch->substate = SUB_OBJ_EXTRA; build.c: ch->dest_buf = ed; build.c: start_editing( ch, ed->description ); build.c: if ( DelOExtraProto( obj->pIndexData, arg3 ) ) build.c: * save some finger-leather build.c: * -Thoric build.c: tmp = -1; build.c: switch( obj->item_type ) build.c: value = -1; build.c: obj->value[tmp] = value; build.c: obj->pIndexData->value[tmp] = value; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->substate = SUB_RESTRICTED; build.c: ch->substate = SUB_REPEATCMD; build.c: ch->last_cmd = do_oset; build.c: if ( IS_SET( location->room_flags, ROOM_PROTOTYPE ) ) build.c: location->room_flags = value; build.c: SET_BIT( location->room_flags, ROOM_PROTOTYPE ); build.c: location->sector_type = value; build.c: * Returns value 0 - 9 based on directional text. build.c: int rvnum = -1; build.c: if ( ch->in_room ) build.c: rvnum = ch->in_room->vnum; build.c: switch( pReset->command ) build.c: pReset->command, build.c: pReset->extra, build.c: pReset->arg1, build.c: pReset->arg2, build.c: pReset->arg3 ); build.c: mob = get_mob_index( pReset->arg1 ); build.c: room = get_room_index( pReset->arg3 ); build.c: strcpy( mobname, mob->player_name ); build.c: strcpy( roomname, room->name ); build.c: sprintf( buf, "%2d) %s (%d) -> %s (%d) [%d]\n\r", build.c: pReset->arg1, build.c: pReset->arg3, build.c: pReset->arg2 ); build.c: if ( (obj = get_obj_index( pReset->arg1 )) == NULL ) build.c: strcpy( objname, obj->name ); build.c: sprintf( buf, "%2d) %s (%d) -> %s (%s) [%d]\n\r", build.c: pReset->arg1, build.c: wear_locs[pReset->arg3], build.c: pReset->arg2 ); build.c: if ( pReset->arg1 > 0 build.c: && (obj = get_obj_index( pReset->arg1 )) == NULL ) build.c: obj ? obj->vnum : pReset->arg1 ); build.c: if ( (obj = get_obj_index( pReset->arg1 )) == NULL ) build.c: strcpy( objname, obj->name ); build.c: sprintf( buf, "%2d) %s (%d) -> %s (carry) [%d]\n\r", build.c: pReset->arg1, build.c: pReset->arg2 ); build.c: if ( (obj = get_obj_index( pReset->arg1 )) == NULL ) build.c: strcpy( objname, obj->name ); build.c: room = get_room_index( pReset->arg3 ); build.c: strcpy( roomname, room->name ); build.c: sprintf( buf, "%2d) (object) %s (%d) -> %s (%d) [%d]\n\r", build.c: pReset->arg1, build.c: pReset->arg3, build.c: pReset->arg2 ); build.c: if ( (obj2 = get_obj_index( pReset->arg1 )) == NULL ) build.c: strcpy( objname, obj2->name ); build.c: if ( pReset->arg3 > 0 build.c: && (obj = get_obj_index( pReset->arg3 )) == NULL ) build.c: strcpy( roomname, obj->name ); build.c: sprintf( buf, "%2d) (Put) %s (%d) -> %s (%d) [%d]\n\r", build.c: pReset->arg1, build.c: obj ? obj->vnum : pReset->arg3, build.c: pReset->arg2 ); build.c: if ( pReset->arg2 < 0 || pReset->arg2 > MAX_DIR+1 ) build.c: pReset->arg2 = 0; build.c: if ( (room = get_room_index( pReset->arg1 )) == NULL ) build.c: dir_name[pReset->arg2] ); build.c: strcpy( roomname, room->name ); build.c: dir_name[pReset->arg2], build.c: get_exit(room,pReset->arg2) ? "" : " (NO EXIT!)" ); build.c: switch( pReset->arg3 ) build.c: pReset->arg3, build.c: pReset->arg2, build.c: pReset->arg1 ); build.c: if ( (room = get_room_index( pReset->arg1 )) == NULL ) build.c: strcpy( roomname, room->name ); build.c: sprintf( buf, "%2d) Randomize exits 0 to %d -> %s (%d)\n\r", build.c: pReset->arg2, build.c: pReset->arg1 ); build.c: pReset->extra, build.c: pReset->arg1, build.c: pReset->arg2, build.c: pReset->arg3, build.c: flag_string(pReset->extra, trap_flags) ); build.c: if ( rlist && (!room || (room && room->vnum != rvnum)) ) build.c: if ( !ch->desc ) build.c: switch( ch->substate ) build.c: location = ch->dest_buf; build.c: bug( "redit: sub_room_desc: NULL ch->dest_buf", 0 ); build.c: location = ch->in_room; build.c: //STRFREE( location->description ); build.c: DISPOSE( location->description ); build.c: location->description = copy_buffer_nohash( ch ); build.c: DISPOSE( location->compress ); build.c: STRFREE( location->description ); build.c: location->description = copy_buffer_nohash(ch); build.c: ch->substate = ch->tempnum; build.c: ed = ch->dest_buf; build.c: bug( "redit: sub_room_extra: NULL ch->dest_buf", 0 ); build.c: STRFREE( ed->description ); build.c: ed->description = copy_buffer( ch ); build.c: ch->substate = ch->tempnum; build.c: location = ch->in_room; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: if ( ch->pcdata && ch->pcdata->subprompt ) build.c: STRFREE( ch->pcdata->subprompt ); build.c: ch->pcdata->subprompt = NULL; build.c: ch->substate = SUB_NONE; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->substate = SUB_REPEATCMD; build.c: if ( ch->pcdata ) build.c: if ( ch->pcdata->subprompt ) build.c: STRFREE( ch->pcdata->subprompt ); build.c: ch->pcdata->subprompt = STRALLOC( "<&CRedit &W#%r&w> %i" ); build.c: ch->inter_substate = SUB_NORTH; build.c: ch->inter_substate = SUB_EAST; build.c: ch->inter_substate = SUB_SOUTH; build.c: ch->inter_substate = SUB_WEST; build.c: ch->inter_substate = SUB_UP; build.c: ch->inter_substate = SUB_DOWN; build.c: STRFREE( location->name ); build.c: location->name = STRALLOC( argument ); build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->tempnum = SUB_REPEATCMD; build.c: ch->tempnum = SUB_NONE; build.c: ch->substate = SUB_ROOM_DESC; build.c: ch->dest_buf = location; build.c: if ( !location->compress ) build.c: start_editing( ch, location->description ); build.c: start_editing( ch, location->description ); build.c: start_editing( ch, location->description ); build.c: location->tunnel = URANGE( 0, atoi(argument), 1000 ); build.c: value = bsearch_skill_exact(arg3, gsn_first_spell, gsn_first_skill - 1); build.c: if (value == -1) build.c: paf->type = -1; build.c: paf->duration = -1; build.c: paf->location = loc; build.c: paf->modifier = value; build.c: xCLEAR_BITS(paf->bitvector); build.c: paf->next = NULL; build.c: LINK(paf, location->first_affect, location->last_affect, next, prev); build.c: for ( paf = location->first_affect; paf; paf = paf->next ) build.c: UNLINK(paf, location->first_affect, location->last_affect, next, prev); build.c: --top_affect; build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->tempnum = SUB_REPEATCMD; build.c: ch->tempnum = SUB_NONE; build.c: ch->substate = SUB_ROOM_EXTRA; build.c: ch->dest_buf = ed; build.c: start_editing( ch, ed->description ); build.c: tarea = location->area; build.c: if ( !tarea->first_reset ) build.c: for ( pReset = tarea->first_reset; pReset; pReset = pReset->next ) build.c: TOGGLE_BIT( location->room_flags, 1 << value ); build.c: location->tele_delay = atoi( argument ); build.c: location->tele_vnum = atoi( argument ); build.c: location->sector_type = atoi( argument ); build.c: if ( location->sector_type < 0 || location->sector_type >= SECT_MAX ) build.c: location->sector_type = 1; build.c: xit->key = value; build.c: STRFREE( xit->keyword ); build.c: xit->keyword = STRALLOC( argument ); build.c: xit->vdir, xit->keyword, xit->key ); build.c: if ( IS_SET( xit->exit_info, 1 << value ) ) build.c: TOGGLE_BIT( xit->exit_info, 1 << value ); build.c: switch(ch->inter_substate) build.c: TOGGLE_BIT( xit->exit_info, 1 << value ); build.c: switch(ch->inter_substate) build.c: send_to_char( "Non-existant room.\n\r", ch ); build.c: xit->vnum = evnum; build.c: switch(ch->inter_substate) build.c: xit->key = atoi( arg2 ); build.c: switch(ch->inter_substate) build.c: switch(ch->inter_substate) build.c: sprintf( buf, "%s %s", xit->keyword, argument ); build.c: STRFREE( xit->keyword ); build.c: xit->keyword = STRALLOC( buf ); build.c: edir = xit->vdir; build.c: send_to_char( "Non-existant room.\n\r", ch ); build.c: if ( addexit && xit && get_exit_to(location, edir, tmp->vnum) ) build.c: xit->keyword = STRALLOC( "" ); build.c: xit->description = STRALLOC( "" ); build.c: xit->key = -1; build.c: xit->exit_info = 0; build.c: if ( xit->to_room != tmp ) build.c: xit->to_room = tmp; build.c: xit->vnum = evnum; build.c: texit = get_exit_to( xit->to_room, rev_dir[edir], location->vnum ); build.c: texit->rexit = xit; build.c: xit->rexit = texit; build.c: xit->exit_info = atoi( arg3 ); build.c: xit->key = ekey; build.c: STRFREE( xit->keyword ); build.c: xit->keyword = STRALLOC( argument ); build.c: * Twisted and evil, but works -Thoric build.c: send_to_char( "Create, change or remove a two-way exit.\n\r", ch ); build.c: edir = xit->vdir; build.c: vnum = xit->vnum; build.c: sprintf( rvnum, "%d", tmploc->vnum ); build.c: if ( xit->to_room ) build.c: rxit = get_exit(xit->to_room, rev_dir[edir]); build.c: vnum = xit->vnum; build.c: sprintf( rvnum, "%d", tmploc->vnum ); build.c: if ( xit->to_room ) build.c: rxit = get_exit(xit->to_room, rev_dir[edir]); build.c: if ( (pt=get_pulltype(argument)) == -1 ) build.c: xit->pulltype = pt; build.c: xit->pull = URANGE(-100, atoi(argument), 100); build.c: xit->pull = URANGE(-100, -(atoi(argument)), 100); build.c: xit->distance = URANGE( 1, atoi(argument), 50 ); build.c: STRFREE( xit->description ); build.c: xit->description = STRALLOC( "" ); build.c: xit->description = STRALLOC( buf ); build.c: if ( ch->substate == SUB_REPEATCMD ) build.c: ch->substate = SUB_RESTRICTED; build.c: ch->substate = SUB_REPEATCMD; build.c: ch->last_cmd = do_redit; build.c: vnum = is_number( arg ) ? atoi( arg ) : -1; build.c: if ( vnum == -1 || !argument || argument[0] == '\0' ) build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum < pArea->low_o_vnum build.c: || vnum > pArea->hi_o_vnum ) build.c: pObjIndex->short_descr,pObjIndex->vnum, pObjIndex->name ); build.c: vnum = is_number( arg ) ? atoi( arg ) : -1; build.c: if ( vnum == -1 || !argument || argument[0] == '\0' ) build.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) build.c: if ( vnum < pArea->low_m_vnum build.c: || vnum > pArea->hi_m_vnum ) build.c: char_to_room( mob, ch->in_room ); build.c: pMobIndex->short_descr, pMobIndex->vnum, pMobIndex->player_name ); build.c: * Simple but nice and handy line editor. -Thoric build.c: if ( (d = ch->desc) == NULL ) build.c: if ( d->connected != CON_EDITING ) build.c: bug( "Edit_buffer: d->connected != CON_EDITING", 0 ); build.c: if ( ch->substate <= SUB_PAUSE ) build.c: bug( "Edit_buffer: illegal ch->substate (%d)", ch->substate ); build.c: d->connected = CON_PLAYING; build.c: if ( !ch->editor ) build.c: d->connected = CON_PLAYING; build.c: edit = ch->editor; build.c: if ( ch->substate == SUB_MPROG_EDIT || ch->substate == SUB_HELP_EDIT ) build.c: send_to_char( "Editing commands\n\r---------------------------------\n\r", ch ); build.c: edit->numlines = 0; build.c: edit->on_line = 0; build.c: /* added format command - shogar */ build.c: int x,linecnt = -1, spacercnt=0; build.c: for ( x = edit->on_line; x < edit->numlines; x++ ) build.c: lwptr = edit->line[linecnt]; build.c: tptr = edit->line[x]; build.c: lwptr = edit->line[linecnt]; build.c: lwptr = edit->line[linecnt]; build.c: strcpy(cline,edit->line[x]); build.c: if((strlen(edit->line[linecnt]) + strlen(cword) + 1) > 79) build.c: if ( edit->numlines >= max_buf_lines ) build.c: strcpy(edit->line[edit->numlines],""); build.c: edit->numlines++; build.c: lwptr = edit->line[linecnt]; build.c: if(linecnt != -1) build.c: for ( x = linecnt + 1; x < edit->numlines; x++ ) build.c: strcpy(edit->line[x],""); build.c: edit->numlines = linecnt + 2; build.c: edit->on_line = linecnt + 1; build.c: for ( x = edit->on_line; x < edit->numlines; x++ ) build.c: lwptr = edit->line[x]; build.c: if (lineln + wptr - edit->line[x] > 79) build.c: if ( edit->numlines >= max_buf_lines ) build.c: line = atoi( argument + 2 ) - 1; build.c: line = edit->on_line; build.c: line = edit->on_line; build.c: if ( line < 0 || line > edit->numlines ) build.c: for ( x = ++edit->numlines; x > line; x-- ) build.c: strcpy( edit->line[x], edit->line[x-1] ); build.c: strcpy( edit->line[line], "" ); build.c: if ( edit->numlines == 0 ) build.c: line = atoi( argument + 2 ) - 1; build.c: line = edit->on_line; build.c: line = edit->on_line; build.c: if ( line < 0 || line > edit->numlines ) build.c: if ( line == 0 && edit->numlines == 1 ) build.c: edit->numlines = 0; build.c: edit->on_line = 0; build.c: for ( x = line; x < (edit->numlines - 1); x++ ) build.c: strcpy( edit->line[x], edit->line[x+1] ); build.c: strcpy( edit->line[edit->numlines--], "" ); build.c: if ( edit->on_line > edit->numlines ) build.c: edit->on_line = edit->numlines; build.c: if ( edit->numlines == 0 ) build.c: line = atoi( argument + 2 ) - 1; build.c: line = edit->on_line; build.c: if ( line < 0 || line > edit->numlines ) build.c: edit->on_line = line; build.c: if ( edit->numlines == 0 ) build.c: send_to_char( "------------------\n\r", ch ); build.c: for ( x = 0; x < edit->numlines; x++ ) build.c: ch_printf( ch, "%2d> %s\n\r", x+1, edit->line[x] ); build.c: send_to_char( "------------------\n\r> ", ch ); build.c: int substate = ch->substate; build.c: last_cmd = ch->last_cmd; build.c: ch->substate = SUB_RESTRICTED; build.c: ch->substate = substate; build.c: ch->last_cmd = last_cmd; build.c: d->connected = CON_PLAYING; build.c: if ( !ch->last_cmd ) build.c: (*ch->last_cmd) ( ch, "" ); build.c: if ( edit->size + strlen(argument) + 1 >= MAX_STRING_LENGTH - 1 ) build.c: strcpy( edit->line[edit->on_line++], buf ); build.c: if ( edit->on_line > edit->numlines ) build.c: edit->numlines++; build.c: if ( edit->numlines > max_buf_lines ) build.c: edit->numlines = max_buf_lines; build.c: d->connected = CON_PLAYING; build.c: if ( !ch->last_cmd ) build.c: (*ch->last_cmd) ( ch, "" ); build.c: UNLINK( res, are->first_reset, are->last_reset, next, prev ); build.c: DISPOSE( are->name ); build.c: DISPOSE( are->filename ); build.c: while ( are->first_reset ) build.c: free_reset( are, are->first_reset ); build.c: && ch->pcdata->r_range_lo build.c: && ch->pcdata->r_range_hi ) build.c: tarea = ch->pcdata->area; build.c: sprintf( taf, "%s.are", capitalize( ch->name ) ); build.c: for ( tmp = first_build; tmp; tmp = tmp->next ) build.c: if ( !str_cmp( taf, tmp->filename ) ) build.c: sprintf( buf, "Creating area entry for %s", ch->name ); build.c: log_string_plus( buf, LOG_NORMAL, ch->level ); build.c: tarea->first_reset = NULL; build.c: tarea->last_reset = NULL; build.c: sprintf( buf, "{PROTO} %s's area in progress", ch->name ); build.c: tarea->name = str_dup( buf ); build.c: tarea->filename = str_dup( taf ); build.c: sprintf( buf2, "%s", ch->name ); build.c: tarea->author = STRALLOC( buf2 ); build.c: tarea->age = 0; build.c: tarea->nplayer = 0; build.c: CREATE(tarea->weather, WEATHER_DATA, 1); /* FB */ build.c: tarea->weather->temp = 0; build.c: tarea->weather->precip = 0; build.c: tarea->weather->wind = 0; build.c: tarea->weather->temp_vector = 0; build.c: tarea->weather->precip_vector = 0; build.c: tarea->weather->wind_vector = 0; build.c: tarea->weather->climate_temp = 2; build.c: tarea->weather->climate_precip = 2; build.c: tarea->weather->climate_wind = 2; build.c: tarea->weather->first_neighbor = NULL; build.c: tarea->weather->last_neighbor = NULL; build.c: tarea->weather->echo = NULL; build.c: tarea->weather->echo_color = AT_GREY; build.c: sprintf( buf, "Updating area entry for %s", ch->name ); build.c: log_string_plus( buf, LOG_NORMAL, ch->level ); build.c: tarea->low_r_vnum = ch->pcdata->r_range_lo; build.c: tarea->low_o_vnum = ch->pcdata->o_range_lo; build.c: tarea->low_m_vnum = ch->pcdata->m_range_lo; build.c: tarea->hi_r_vnum = ch->pcdata->r_range_hi; build.c: tarea->hi_o_vnum = ch->pcdata->o_range_hi; build.c: tarea->hi_m_vnum = ch->pcdata->m_range_hi; build.c: ch->pcdata->area = tarea; build.c: ch->pcdata->area = NULL; build.c: if ( !ch->pcdata->area ) build.c: || (is_name( buf, ch->pcdata->bestowments ) build.c: for ( tmp = first_area; tmp; tmp = tmp->next ) build.c: if ( !str_cmp( buf, tmp->filename ) ) build.c: for ( tmp = first_build; tmp; tmp = tmp->next ) build.c: if ( !str_cmp( buf, tmp->filename ) ) build.c: || is_name( tmp->filename, ch->pcdata->bestowments ) || build.c: (ch->pcdata->council && is_name( "aassign", build.c: ch->pcdata->council->powers )) build.c: || ( ch->pcdata->council2 && is_name( "aassign", build.c: ch->pcdata->council2->powers )) ) build.c: ch->pcdata->area = tarea; build.c: ch_printf( ch, "Assigning you: %s\n\r", tarea->name ); build.c: for ( ed = room->first_extradesc; ed; ed = ed->next ) build.c: if ( is_name( keywords, ed->keyword ) ) build.c: LINK( ed, room->first_extradesc, room->last_extradesc, next, prev ); build.c: ed->keyword = STRALLOC( keywords ); build.c: ed->description = STRALLOC( "" ); build.c: for ( rmed = room->first_extradesc; rmed; rmed = rmed->next ) build.c: if ( is_name( keywords, rmed->keyword ) ) build.c: UNLINK( rmed, room->first_extradesc, room->last_extradesc, next, prev ); build.c: STRFREE( rmed->keyword ); build.c: STRFREE( rmed->description ); build.c: top_ed--; build.c: for ( ed = obj->first_extradesc; ed; ed = ed->next ) build.c: if ( is_name( keywords, ed->keyword ) ) build.c: LINK( ed, obj->first_extradesc, obj->last_extradesc, next, prev ); build.c: ed->keyword = STRALLOC( keywords ); build.c: ed->description = STRALLOC( "" ); build.c: for ( rmed = obj->first_extradesc; rmed; rmed = rmed->next ) build.c: if ( is_name( keywords, rmed->keyword ) ) build.c: UNLINK( rmed, obj->first_extradesc, obj->last_extradesc, next, prev ); build.c: STRFREE( rmed->keyword ); build.c: STRFREE( rmed->description ); build.c: top_ed--; build.c: for ( ed = obj->first_extradesc; ed; ed = ed->next ) build.c: if ( is_name( keywords, ed->keyword ) ) build.c: LINK( ed, obj->first_extradesc, obj->last_extradesc, next, prev ); build.c: ed->keyword = STRALLOC( keywords ); build.c: ed->description = STRALLOC( "" ); build.c: for ( rmed = obj->first_extradesc; rmed; rmed = rmed->next ) build.c: if ( is_name( keywords, rmed->keyword ) ) build.c: UNLINK( rmed, obj->first_extradesc, obj->last_extradesc, next, prev ); build.c: STRFREE( rmed->keyword ); build.c: STRFREE( rmed->description ); build.c: top_ed--; build.c: sprintf( buf, "Saving %s...", tarea->filename ); build.c: fprintf( fpout, "#AREA %s~\n\n\n\n", tarea->name ); build.c: fprintf( fpout, "#AUTHOR %s~\n\n", tarea->author ); build.c: fprintf( fpout, "%d %d %d %d\n", tarea->low_soft_range, build.c: tarea->hi_soft_range, build.c: tarea->low_hard_range, build.c: tarea->hi_hard_range ); build.c: if ( tarea->resetmsg ) /* Rennard */ build.c: fprintf( fpout, "#RESETMSG %s~\n\n", tarea->resetmsg ); build.c: if ( tarea->reset_frequency ) build.c: tarea->flags, tarea->reset_frequency ); build.c: fprintf( fpout, "#FLAGS\n%d\n\n", tarea->flags ); build.c: fprintf( fpout, "#ECONOMY %d %d\n\n", tarea->high_economy, tarea->low_economy ); build.c: /* Climate info - FB */ build.c: fprintf( fpout, "#CLIMATE %d %d %d\n\n", tarea->weather->climate_temp, build.c: tarea->weather->climate_precip, build.c: tarea->weather->climate_wind); build.c: /* neighboring weather systems - FB */ build.c: for(neigh = tarea->weather->first_neighbor; neigh; neigh = neigh->next) build.c: fprintf( fpout, "#NEIGHBOR %s~\n\n", neigh->name); build.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) build.c: xREMOVE_BIT(pMobIndex->act, ACT_PROTOTYPE); build.c: if ( pMobIndex->perm_str != 13 || pMobIndex->perm_int != 13 build.c: || pMobIndex->perm_wis != 13 || pMobIndex->perm_dex != 13 build.c: || pMobIndex->perm_con != 13 || pMobIndex->perm_cha != 13 build.c: || pMobIndex->perm_lck != 13 build.c: || pMobIndex->hitroll != 0 || pMobIndex->damroll != 0 build.c: || pMobIndex->race != 0 || pMobIndex->class != 3 build.c: || !xIS_EMPTY(pMobIndex->attacks) build.c: || !xIS_EMPTY(pMobIndex->defenses) build.c: || pMobIndex->height != 0 || pMobIndex->weight != 0 build.c: || pMobIndex->speaks != 0 || pMobIndex->speaking != 0 build.c: || pMobIndex->xflags != 0 || pMobIndex->numattacks != 0 ) build.c: fprintf( fpout, "%s~\n", pMobIndex->player_name ); build.c: fprintf( fpout, "%s~\n", pMobIndex->short_descr ); build.c: fprintf( fpout, "%s~\n", strip_cr(pMobIndex->long_descr) ); build.c: fprintf( fpout, "%s~\n", strip_cr(pMobIndex->description)); build.c: fprintf( fpout, "%s ", print_bitvector(&pMobIndex->act)); build.c: fprintf( fpout, "%s %d %c\n", print_bitvector(&pMobIndex->affected_by), build.c: pMobIndex->alignment, build.c: fprintf( fpout, "%d %d %d ", pMobIndex->level, build.c: pMobIndex->mobthac0, build.c: pMobIndex->ac ); build.c: fprintf( fpout, "%dd%d+%d ", pMobIndex->hitnodice, build.c: pMobIndex->hitsizedice, build.c: pMobIndex->hitplus ); build.c: fprintf( fpout, "%dd%d+%d\n", pMobIndex->damnodice, build.c: pMobIndex->damsizedice, build.c: pMobIndex->damplus ); build.c: fprintf( fpout, "%d %d\n", pMobIndex->gold, build.c: pMobIndex->exp ); build.c:/* Need to convert to new positions correctly on loadup sigh -Shaddai */ build.c: fprintf( fpout, "%d %d %d\n", pMobIndex->position+100, build.c: pMobIndex->defposition+100, build.c: pMobIndex->sex ); build.c: pMobIndex->perm_str, build.c: pMobIndex->perm_int, build.c: pMobIndex->perm_wis, build.c: pMobIndex->perm_dex, build.c: pMobIndex->perm_con, build.c: pMobIndex->perm_cha, build.c: pMobIndex->perm_lck ); build.c: pMobIndex->saving_poison_death, build.c: pMobIndex->saving_wand, build.c: pMobIndex->saving_para_petri, build.c: pMobIndex->saving_breath, build.c: pMobIndex->saving_spell_staff ); build.c: pMobIndex->race, build.c: pMobIndex->class, build.c: pMobIndex->height, build.c: pMobIndex->weight, build.c: pMobIndex->speaks, build.c: pMobIndex->speaking, build.c: pMobIndex->numattacks ); build.c: pMobIndex->hitroll, build.c: pMobIndex->damroll, build.c: pMobIndex->xflags, build.c: pMobIndex->resistant, build.c: pMobIndex->immune, build.c: pMobIndex->susceptible, build.c: print_bitvector(&pMobIndex->attacks) ); build.c: print_bitvector(&pMobIndex->defenses) ); build.c: if ( pMobIndex->mudprogs ) build.c: for ( mprog = pMobIndex->mudprogs; mprog; mprog = mprog->next ) build.c: mprog_type_to_name( mprog->type ), build.c: mprog->arglist, strip_cr(mprog->comlist) ); build.c: if ( install && vnum < tarea->hi_m_vnum ) build.c: tarea->hi_m_vnum = vnum - 1; build.c: for ( vnum = tarea->low_o_vnum; vnum <= tarea->hi_o_vnum; vnum++ ) build.c: xREMOVE_BIT( pObjIndex->extra_flags, ITEM_PROTOTYPE ); build.c: fprintf( fpout, "%s~\n", pObjIndex->name ); build.c: fprintf( fpout, "%s~\n", pObjIndex->short_descr ); build.c: fprintf( fpout, "%s~\n", pObjIndex->description ); build.c: fprintf( fpout, "%s~\n", pObjIndex->action_desc ); build.c: if ( pObjIndex->layers ) build.c: fprintf( fpout, "%d %s %d %d\n", pObjIndex->item_type, build.c: print_bitvector(&pObjIndex->extra_flags), build.c: pObjIndex->wear_flags, build.c: pObjIndex->layers ); build.c: fprintf( fpout, "%d %s %d\n", pObjIndex->item_type, build.c: print_bitvector(&pObjIndex->extra_flags), build.c: pObjIndex->wear_flags ); build.c: val0 = pObjIndex->value[0]; build.c: val1 = pObjIndex->value[1]; build.c: val2 = pObjIndex->value[2]; build.c: val3 = pObjIndex->value[3]; build.c: val4 = pObjIndex->value[4]; build.c: val5 = pObjIndex->value[5]; build.c: switch ( pObjIndex->item_type ) build.c: val1 = skill_table[val1]->slot; build.c: {if ( AREA_VERSION_WRITE == 0 ) val2 = skill_table[val2]->slot; build.c: {if ( AREA_VERSION_WRITE == 0 ) val3 = skill_table[val3]->slot; build.c: {if ( AREA_VERSION_WRITE == 0 ) val3 = skill_table[val3]->slot; build.c: {if ( AREA_VERSION_WRITE == 0 ) val4 = skill_table[val4]->slot; build.c: {if ( AREA_VERSION_WRITE == 0 ) val5 = skill_table[val5]->slot; build.c: fprintf( fpout, "%d %d %d\n", pObjIndex->weight, build.c: pObjIndex->cost, build.c: pObjIndex->rent ? pObjIndex->rent : build.c: (int) (pObjIndex->cost / 10) ); build.c: switch ( pObjIndex->item_type ) build.c: IS_VALID_SN(pObjIndex->value[1])? build.c: skill_table[pObjIndex->value[1]]->name:"NONE", build.c: IS_VALID_SN(pObjIndex->value[2])? build.c: skill_table[pObjIndex->value[2]]->name :"NONE", build.c: IS_VALID_SN(pObjIndex->value[3])? build.c: skill_table[pObjIndex->value[3]]->name:"NONE" ); build.c: IS_VALID_SN(pObjIndex->value[3])? build.c: skill_table[pObjIndex->value[3]]->name:"NONE" ); build.c: IS_VALID_SN(pObjIndex->value[4])? build.c: skill_table[pObjIndex->value[4]]->name:"NONE", build.c: IS_VALID_SN(pObjIndex->value[5])? build.c: skill_table[pObjIndex->value[5]]->name:"NONE" ); build.c: for ( ed = pObjIndex->first_extradesc; ed; ed = ed->next ) build.c: ed->keyword, strip_cr( ed->description ) ); build.c: for ( paf = pObjIndex->first_affect; paf; paf = paf->next ) build.c: fprintf( fpout, "A\n%d %d\n", paf->location, build.c: ((paf->location == APPLY_WEAPONSPELL build.c: || paf->location == APPLY_WEARSPELL build.c: || paf->location == APPLY_REMOVESPELL build.c: || paf->location == APPLY_STRIPSN build.c: || paf->location == APPLY_RECURRINGSPELL) build.c: && IS_VALID_SN(paf->modifier)) build.c: ? skill_table[paf->modifier]->slot : paf->modifier ); build.c: if ( pObjIndex->mudprogs ) build.c: for ( mprog = pObjIndex->mudprogs; mprog; mprog = mprog->next ) build.c: mprog_type_to_name( mprog->type ), build.c: mprog->arglist, strip_cr(mprog->comlist) ); build.c: if ( install && vnum < tarea->hi_o_vnum ) build.c: tarea->hi_o_vnum = vnum - 1; build.c: for ( vnum = tarea->low_r_vnum; vnum <= tarea->hi_r_vnum; vnum++ ) build.c: REMOVE_BIT( room->room_flags, ROOM_PROTOTYPE ); build.c: for ( victim = room->first_person; victim; victim = vnext ) build.c: vnext = victim->next_in_room; build.c: for ( obj = room->first_content; obj; obj = obj_next ) build.c: obj_next = obj->next_content; build.c: fprintf( fpout, "%s~\n", room->name ); build.c: if (!room->compress) build.c: fprintf( fpout, "%s~\n", strip_cr( room->description ) ); build.c: fprintf( fpout, "%s~\n", strip_cr( room->description ) ); build.c:// DISPOSE( room->uncomp_desc ); build.c: if ( (room->tele_delay > 0 && room->tele_vnum > 0) || room->tunnel > 0 ) build.c: fprintf( fpout, "0 %d %d %d %d %d\n", room->room_flags, build.c: room->sector_type, build.c: room->tele_delay, build.c: room->tele_vnum, build.c: room->tunnel ); build.c: fprintf( fpout, "0 %d %d\n", room->room_flags, build.c: room->sector_type ); build.c: for ( xit = room->first_exit; xit; xit = xit->next ) build.c: if ( IS_SET(xit->exit_info, EX_PORTAL) ) /* don't fold portals */ build.c: fprintf( fpout, "D%d\n", xit->vdir ); build.c: fprintf( fpout, "%s~\n", strip_cr( xit->description ) ); build.c: fprintf( fpout, "%s~\n", strip_cr( xit->keyword ) ); build.c: if ( xit->distance > 1 || xit->pull ) build.c: xit->exit_info & ~EX_BASHED, build.c: xit->key, build.c: xit->vnum, build.c: xit->distance, build.c: xit->pulltype, build.c: xit->pull ); build.c: fprintf( fpout, "%d %d %d\n", xit->exit_info & ~EX_BASHED, build.c: xit->key, build.c: xit->vnum ); build.c: for ( ed = room->first_extradesc; ed; ed = ed->next ) build.c: ed->keyword, strip_cr( ed->description )); build.c: if ( room->map ) /* maps */ build.c: fprintf( fpout, "%s~\n", strip_cr( room->map ) ); build.c: fprintf( fpout, "M %d %d %d %c\n", room->map->vnum, build.c: room->map->x, build.c: room->map->y, build.c: room->map->entry ); build.c: if ( room->mudprogs ) build.c: for ( mprog = room->mudprogs; mprog; mprog = mprog->next ) build.c: mprog_type_to_name( mprog->type ), build.c: mprog->arglist, strip_cr(mprog->comlist) ); build.c: if ( install && vnum < tarea->hi_r_vnum ) build.c: tarea->hi_r_vnum = vnum - 1; build.c: for ( treset = tarea->first_reset; treset; treset = treset->next ) build.c: switch( treset->command ) /* extra arg1 arg2 arg3 */ build.c: fprintf( fpout, "%c %d %d %d %d\n", UPPER(treset->command), build.c: treset->extra, treset->arg1, treset->arg2, treset->arg3 ); build.c: fprintf( fpout, "%c %d %d %d\n", UPPER(treset->command), build.c: treset->extra, treset->arg1, treset->arg2 ); build.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) build.c: if ( (pShop = pMobIndex->pShop) == NULL ) build.c: pShop->keeper, build.c: pShop->buy_type[0], build.c: pShop->buy_type[1], build.c: pShop->buy_type[2], build.c: pShop->buy_type[3], build.c: pShop->buy_type[4], build.c: pShop->profit_buy, build.c: pShop->profit_sell ); build.c: pShop->open_hour, build.c: pShop->close_hour, build.c: pMobIndex->short_descr ); build.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) build.c: if ( (pRepair = pMobIndex->rShop) == NULL ) build.c: pRepair->keeper, build.c: pRepair->fix_type[0], build.c: pRepair->fix_type[1], build.c: pRepair->fix_type[2], build.c: pRepair->profit_fix, build.c: pRepair->shop_type ); build.c: pRepair->open_hour, build.c: pRepair->close_hour, build.c: pMobIndex->short_descr ); build.c: for ( vnum = tarea->low_m_vnum; vnum <= tarea->hi_m_vnum; vnum++ ) build.c: if ( !pMobIndex->spec_fun ) build.c: fprintf( fpout, "M %d %s\n", pMobIndex->vnum, build.c: lookup_spec( pMobIndex->spec_fun ) ); build.c: if ( IS_NPC(ch) || get_trust( ch ) < LEVEL_CREATOR || !ch->pcdata build.c: || ( argument[0] == '\0' && !ch->pcdata->area) ) build.c: tarea = ch->pcdata->area; build.c: for ( found = FALSE, tarea = first_build; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, argument ) ) build.c:/* Ensure not wiping out their area with save before load - Scryn 8/11 */ build.c: if ( !IS_SET(tarea->status, AREA_LOADED ) ) build.c: sprintf( filename, "%s%s", BUILD_DIR, tarea->filename ); build.c: if ( IS_NPC(ch) || get_trust( ch ) < LEVEL_CREATOR || !ch->pcdata build.c: || ( argument[0] == '\0' && !ch->pcdata->area) ) build.c: tarea = ch->pcdata->area; build.c: for ( found = FALSE, tarea = first_build; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, argument ) ) build.c:/* Stops char from loading when already loaded - Scryn 8/11 */ build.c: if ( IS_SET ( tarea->status, AREA_LOADED) ) build.c: sprintf( filename, "%s%s", BUILD_DIR, tarea->filename ); build.c: if ( tarea->first_reset ) build.c: tmp = tarea->nplayer; build.c: tarea->nplayer = 0; build.c: tarea->nplayer = tmp; build.c: * NOTE: Use of this command is not recommended. -Thoric build.c: for ( tarea = first_area; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, argument ) ) build.c: fold_area( tarea, tarea->filename, FALSE ); build.c: for ( tarea = first_area; tarea; tarea = tarea->next ) build.c: fprintf( fpout, "%s\n", tarea->filename ); build.c: * A complicated to use command as it currently exists. -Thoric build.c: * Once area->author and area->name are cleaned up... it will be easier build.c: for ( tarea = first_build; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, arg ) ) build.c: DISPOSE( tarea->name ); build.c: tarea->name = str_dup( argument ); build.c: /* Fold area with install flag -- auto-removes prototype flags */ build.c: fold_area( tarea, tarea->filename, TRUE ); build.c: for ( d = first_descriptor; d; d = d->next ) build.c: if ( d->character build.c: && d->character->pcdata build.c: && d->character->pcdata->area == tarea ) build.c: d->character->pcdata->area = NULL; build.c: d->character->pcdata->r_range_lo = 0; build.c: d->character->pcdata->r_range_hi = 0; build.c: d->character->pcdata->o_range_lo = 0; build.c: d->character->pcdata->o_range_hi = 0; build.c: d->character->pcdata->m_range_lo = 0; build.c: d->character->pcdata->m_range_hi = 0; build.c: num = tarea->nplayer; build.c: tarea->nplayer = 0; build.c: tarea->nplayer = num; build.c: sprintf( buf, "%s%s.installed", BUILD_DIR, tarea->filename ); build.c: sprintf( arg, "%s%s", BUILD_DIR, tarea->filename ); build.c: for ( obj = obj->first_content; obj; obj = obj->next_content ) build.c: limit = obj->pIndexData->count; build.c: add_reset( tarea, 'P', 1, obj->pIndexData->vnum, limit, build.c: obj->in_obj->pIndexData->vnum ); build.c: if ( obj->first_content ) build.c: || !IS_SET( pexit->exit_info, EX_ISDOOR ) ) build.c: for ( tarea = first_area; tarea; tarea = tarea->next ) build.c: pdeaths += tarea->pdeaths; build.c: mdeaths += tarea->mdeaths; build.c: pkills += tarea->pkills; build.c: mkills += tarea->mkills; build.c: for ( tarea = first_area; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, argument ) ) build.c: for ( tarea = first_build; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, argument ) ) build.c: tarea = ch->in_room->area; build.c: ch_printf_color( ch, "\n\r&wName: &W%s\n\r&wFilename: &W%-20s &wPrototype: &W%s\n\r&wAuthor: &W%s\n\r", build.c: tarea->name, build.c: tarea->filename, build.c: tarea->author ); build.c: ch_printf_color( ch, "&wAge: &W%-3d &wCurrent number of players: &W%-3d &wMax players: &W%d\n\r", build.c: tarea->age, build.c: tarea->nplayer, build.c: tarea->max_players ); build.c: if ( tarea->high_economy ) build.c: tarea->high_economy, build.c: tarea->low_economy ); build.c: tarea->low_economy ); build.c: tarea->gold_looted ); build.c: tarea->mdeaths, build.c: tarea->mkills, build.c: tarea->pdeaths, build.c: tarea->pkills, build.c: tarea->illegal_pk ); build.c: tarea->low_r_vnum, build.c: tarea->hi_r_vnum ); build.c: tarea->low_o_vnum, build.c: tarea->hi_o_vnum ); build.c: tarea->low_m_vnum, build.c: tarea->hi_m_vnum ); build.c: ch_printf_color( ch, "&wsoft range: &W%d - %d &whard range: &W%d - %d\n\r", build.c: tarea->low_soft_range, build.c: tarea->hi_soft_range, build.c: tarea->low_hard_range, build.c: tarea->hi_hard_range ); build.c: ch_printf_color( ch, "&wArea flags: &W%s\n\r", flag_string(tarea->flags, area_flags) ); build.c: ch_printf_color( ch, "&wResetmsg: &W%s\n\r", tarea->resetmsg ? tarea->resetmsg build.c: tarea->reset_frequency ? tarea->reset_frequency : 15 ); build.c: for ( tarea = first_area; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, arg1 ) ) build.c: for ( tarea = first_build; tarea; tarea = tarea->next ) build.c: if ( !str_cmp( tarea->filename, arg1 ) ) build.c: DISPOSE( tarea->name ); build.c: tarea->name = str_dup( argument ); build.c: DISPOSE( tarea->filename ); build.c: tarea->filename = str_dup( argument ); build.c: tarea->low_economy = vnum; build.c: tarea->high_economy = vnum; build.c: tarea->low_r_vnum = vnum; build.c: tarea->hi_r_vnum = vnum; build.c: tarea->low_o_vnum = vnum; build.c: tarea->hi_o_vnum = vnum; build.c: tarea->low_m_vnum = vnum; build.c: tarea->hi_m_vnum = vnum; build.c: tarea->low_soft_range = vnum; build.c: tarea->hi_soft_range = vnum; build.c: tarea->low_hard_range = vnum; build.c: tarea->hi_hard_range = vnum; build.c: STRFREE( tarea->author ); build.c: tarea->author = STRALLOC( argument ); build.c: if ( tarea->resetmsg ) build.c: DISPOSE( tarea->resetmsg ); build.c: tarea->resetmsg = str_dup( argument ); build.c: tarea->reset_frequency = vnum; build.c: if ( IS_SET( tarea->flags, 1 << value ) ) build.c: REMOVE_BIT( tarea->flags, 1 << value ); build.c: SET_BIT( tarea->flags, 1 << value ); build.c: if ( IS_NPC(ch) || get_trust( ch ) < LEVEL_CREATOR || !ch->pcdata build.c: || ( !ch->pcdata->area && get_trust( ch ) < LEVEL_GREATER ) ) build.c: tarea = ch->pcdata->area; build.c: lrange = tarea->low_r_vnum; /* here. -Thoric */ build.c: trange = tarea->hi_r_vnum; build.c: if ( ( lrange < tarea->low_r_vnum || trange > tarea->hi_r_vnum ) build.c: pager_printf( ch, "%5d) %s\n\r", vnum, room->name ); build.c: * Greater+ can list out of assigned range - Tri (mlist/rlist as well) build.c: if ( IS_NPC(ch) || get_trust( ch ) < LEVEL_CREATOR || !ch->pcdata build.c: || ( !ch->pcdata->area && get_trust( ch ) < LEVEL_GREATER ) ) build.c: tarea = ch->pcdata->area; build.c: lrange = tarea->low_o_vnum; /* here. -Thoric */ build.c: trange = tarea->hi_o_vnum; build.c: if ((lrange < tarea->low_o_vnum || trange > tarea->hi_o_vnum) build.c: pager_printf( ch, "%5d) %-20s (%s)\n\r", vnum, build.c: obj->name, build.c: obj->short_descr ); build.c: if ( IS_NPC(ch) || get_trust( ch ) < LEVEL_CREATOR || !ch->pcdata build.c: || ( !ch->pcdata->area && get_trust( ch ) < LEVEL_GREATER ) ) build.c: tarea = ch->pcdata->area; build.c: lrange = tarea->low_m_vnum; /* here. -Thoric */ build.c: trange = tarea->hi_m_vnum; build.c: if ( ( lrange < tarea->low_m_vnum || trange > tarea->hi_m_vnum ) build.c: pager_printf( ch, "%5d) %-20s '%s'\n\r", vnum, build.c: mob->player_name, build.c: mob->short_descr ); build.c: if ( mptype != -1 ) build.c: mprg->type = mptype; build.c: if ( mprg->arglist ) build.c: STRFREE( mprg->arglist ); build.c: mprg->arglist = STRALLOC( argument ); build.c: ch->substate = SUB_MPROG_EDIT; build.c: ch->dest_buf = mprg; build.c: if ( !mprg->comlist ) build.c: mprg->comlist = STRALLOC( "" ); build.c: start_editing( ch, mprg->comlist ); build.c: * Mobprogram editing - cumbersome -Thoric build.c: int value, mptype = -1, cnt; build.c: if ( !ch->desc ) build.c: switch( ch->substate ) build.c: if ( !ch->dest_buf ) build.c: bug( "do_mpedit: sub_mprog_edit: NULL ch->dest_buf", 0 ); build.c: ch->substate = SUB_NONE; build.c: mprog = ch->dest_buf; build.c: if ( mprog->comlist ) build.c: STRFREE( mprog->comlist ); build.c: mprog->comlist = copy_buffer( ch ); build.c: if ( get_trust( ch ) < victim->level || !IS_NPC(victim) ) build.c: if ( !xIS_SET(victim->act, ACT_PROTOTYPE) ) build.c: mprog = victim->pIndexData->mudprogs; build.c: for(mprg = mprog; mprg; mprg = mprg->next) build.c: mprog_type_to_name(mprg->type), build.c: mprg->arglist); build.c: for(mprg = mprog; mprg; mprg = mprg->next) build.c: mprog_type_to_name(mprg->type), build.c: mprg->arglist, build.c: mprg->comlist); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: mprog_type_to_name( mprg->type ), build.c: mprg->arglist, build.c: mprg->comlist ); build.c: if ( mptype == -1 ) build.c: mptype = -1; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: xCLEAR_BITS(victim->pIndexData->progtypes); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: xSET_BIT(victim->pIndexData->progtypes, mprg->type); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: mptype = mprg->type; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: if ( mprg->type == mptype ) build.c: mprg_next = victim->pIndexData->mudprogs; build.c: victim->pIndexData->mudprogs = mprg_next->next; build.c: mprg_next = mprg->next; build.c: if ( ++cnt == (value - 1) ) build.c: mprg->next = mprg_next->next; build.c: STRFREE( mprg_next->arglist ); build.c: STRFREE( mprg_next->comlist ); build.c: xREMOVE_BIT( victim->pIndexData->progtypes, mptype ); build.c: if ( mptype == -1 ) build.c: xSET_BIT(victim->pIndexData->progtypes, mptype); build.c: mprg->next = mprog; build.c: victim->pIndexData->mudprogs = mprg; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: if ( ++cnt == value && mprg->next ) build.c: xSET_BIT(victim->pIndexData->progtypes, mptype); build.c: mprg_next->next = mprg->next; build.c: mprg->next = mprg_next; build.c: if ( mptype == -1 ) build.c: for ( ; mprog->next; mprog = mprog->next ); build.c: mprog->next = mprg; build.c: victim->pIndexData->mudprogs = mprg; build.c: xSET_BIT(victim->pIndexData->progtypes, mptype); build.c: mprg->next = NULL; build.c: int value, mptype = -1, cnt; build.c: if ( !ch->desc ) build.c: switch( ch->substate ) build.c: if ( !ch->dest_buf ) build.c: bug( "do_opedit: sub_oprog_edit: NULL ch->dest_buf", 0 ); build.c: ch->substate = SUB_NONE; build.c: mprog = ch->dest_buf; build.c: if ( mprog->comlist ) build.c: STRFREE( mprog->comlist ); build.c: mprog->comlist = copy_buffer( ch ); build.c: mprog = obj->pIndexData->mudprogs; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: mprog_type_to_name( mprg->type ), build.c: mprg->arglist, build.c: mprg->comlist ); build.c: if ( mptype == -1 ) build.c: mptype = -1; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: xCLEAR_BITS(obj->pIndexData->progtypes); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: xSET_BIT(obj->pIndexData->progtypes, mprg->type); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: mptype = mprg->type; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: if ( mprg->type == mptype ) build.c: mprg_next = obj->pIndexData->mudprogs; build.c: obj->pIndexData->mudprogs = mprg_next->next; build.c: mprg_next = mprg->next; build.c: if ( ++cnt == (value - 1) ) build.c: mprg->next = mprg_next->next; build.c: STRFREE( mprg_next->arglist ); build.c: STRFREE( mprg_next->comlist ); build.c: xREMOVE_BIT( obj->pIndexData->progtypes, mptype ); build.c: if ( mptype == -1 ) build.c: xSET_BIT(obj->pIndexData->progtypes, mptype); build.c: mprg->next = mprog; build.c: obj->pIndexData->mudprogs = mprg; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: if ( ++cnt == value && mprg->next ) build.c: xSET_BIT(obj->pIndexData->progtypes, mptype); build.c: mprg_next->next = mprg->next; build.c: mprg->next = mprg_next; build.c: if ( mptype == -1 ) build.c: for ( ; mprog->next; mprog = mprog->next ); build.c: mprog->next = mprg; build.c: obj->pIndexData->mudprogs = mprg; build.c: xSET_BIT(obj->pIndexData->progtypes, mptype); build.c: mprg->next = NULL; build.c: if ( mptype != -1 ) build.c: mprg->type = mptype; build.c: if ( mprg->arglist ) build.c: STRFREE( mprg->arglist ); build.c: mprg->arglist = STRALLOC( argument ); build.c: ch->substate = SUB_MPROG_EDIT; build.c: ch->dest_buf = mprg; build.c: if(!mprg->comlist) build.c: mprg->comlist = STRALLOC(""); build.c: start_editing( ch, mprg->comlist ); build.c: int value, mptype = -1, cnt; build.c: if ( !ch->desc ) build.c: switch( ch->substate ) build.c: if ( !ch->dest_buf ) build.c: bug( "do_opedit: sub_oprog_edit: NULL ch->dest_buf", 0 ); build.c: ch->substate = SUB_NONE; build.c: mprog = ch->dest_buf; build.c: if ( mprog->comlist ) build.c: STRFREE( mprog->comlist ); build.c: mprog->comlist = copy_buffer( ch ); build.c: if ( !can_rmodify( ch, ch->in_room ) ) build.c: mprog = ch->in_room->mudprogs; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: mprog_type_to_name( mprg->type ), build.c: mprg->arglist, build.c: mprg->comlist ); build.c: if ( mptype == -1 ) build.c: mptype = -1; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: xCLEAR_BITS(ch->in_room->progtypes); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: xSET_BIT(ch->in_room->progtypes, mprg->type); build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: mptype = mprg->type; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: if ( mprg->type == mptype ) build.c: mprg_next = ch->in_room->mudprogs; build.c: ch->in_room->mudprogs = mprg_next->next; build.c: mprg_next = mprg->next; build.c: if ( ++cnt == (value - 1) ) build.c: mprg->next = mprg_next->next; build.c: STRFREE( mprg_next->arglist ); build.c: STRFREE( mprg_next->comlist ); build.c: xREMOVE_BIT( ch->in_room->progtypes, mptype ); build.c: if ( mptype == -1 ) build.c: xSET_BIT(ch->in_room->progtypes, mptype); build.c: mprg->next = mprog; build.c: ch->in_room->mudprogs = mprg; build.c: for ( mprg = mprog; mprg; mprg = mprg->next ) build.c: if ( ++cnt == value && mprg->next ) build.c: xSET_BIT(ch->in_room->progtypes, mptype); build.c: mprg_next->next = mprg->next; build.c: mprg->next = mprg_next; build.c: if ( mptype == -1 ) build.c: for ( ; mprog->next; mprog = mprog->next ); build.c: mprog->next = mprg; build.c: ch->in_room->mudprogs = mprg; build.c: xSET_BIT(ch->in_room->progtypes, mptype); build.c: mprg->next = NULL; build.c: && ( location->vnum < ch->pcdata->r_range_lo || build.c: location->vnum > ch->pcdata->r_range_hi ) ) build.c: if ( location->first_person || location->first_content ) build.c: The function to do it is in db.c so it can access the top-room build.c: obj = temp->pIndexData; build.c: && ( obj->vnum < ch->pcdata->o_range_lo || build.c: obj->vnum > ch->pcdata->o_range_hi ) ) build.c: The function to do it is in db.c so it can access the top-room build.c: mob = temp->pIndexData; build.c: && ( mob->vnum < ch->pcdata->m_range_lo || build.c: mob->vnum > ch->pcdata->m_range_hi ) ) build.c: else if(!ch->in_room) build.c: else if(!ch->in_room->area) build.c: else if(!ch->in_room->area->weather) build.c: area = ch->in_room->area; build.c: ch_printf(ch, "%s:\n\r", area->name); build.c: temp_settings[area->weather->climate_temp]); build.c: precip_settings[area->weather->climate_precip]); build.c: wind_settings[area->weather->climate_wind]); build.c: if(area->weather->first_neighbor) build.c: for(neigh = area->weather->first_neighbor; neigh; build.c: neigh = neigh->next) build.c: ch_printf(ch, "\t%s\n\r", neigh->name); build.c: area->weather->climate_temp = i; build.c: "for %s is now %s.\n\r", area->name, build.c: area->weather->climate_precip = i; build.c: "for %s is now %s.\n\r", area->name, build.c: area->weather->climate_wind = i; build.c: "is now %s.\n\r", area->name, build.c: for(neigh = area->weather->first_neighbor; neigh; build.c: neigh = neigh->next) build.c: if(nifty_is_name(argument, neigh->name)) build.c: if(! (tarea = neigh->address) ) build.c: tarea = get_area(neigh->name); build.c: tarea = neigh->address; build.c: for(tneigh = tarea->weather->first_neighbor; build.c: tneigh; tneigh = tneigh->next) build.c: if(!strcmp(area->name, tneigh->name)) build.c: tarea->weather->first_neighbor, build.c: tarea->weather->last_neighbor, build.c: STRFREE(tneigh->name); build.c: area->weather->first_neighbor, build.c: area->weather->last_neighbor, build.c: neigh->name, area->name); build.c: STRFREE(neigh->name); build.c: "own weather.\n\r", area->name); build.c: neigh->name = STRALLOC(tarea->name); build.c: neigh->address = tarea; build.c: area->weather->first_neighbor, build.c: area->weather->last_neighbor, build.c: neigh->name = STRALLOC(area->name); build.c: neigh->address = area; build.c: tarea->weather->first_neighbor, build.c: tarea->weather->last_neighbor, build.c: "affect one another.\n\r", tarea->name, build.c: area->name); build.c:/* displays all exits from the area that the imm is physically in - shogar */ build.c: tarea = ch->in_room->area; build.c: trange = tarea->hi_r_vnum; build.c: lrange = tarea->low_r_vnum; build.c: if(pexit->to_room->area != tarea) build.c: pager_printf(ch, "To: %-20.20s %s\n\r", build.c: pexit->to_room->area->filename, build.c: pexit->to_room->area->name); build.c: pager_printf( ch,"%15d %-30.30s -> %15d (%s)\n\r", build.c: vnum, room->name,pexit->vnum,dir_name[i] ); build.c:/* displays all entrances to the area that the imm is physically in - shogar */ build.c: tarea = ch->in_room->area; build.c: for ( otherarea=first_area; otherarea; otherarea=otherarea->next) build.c: trange = otherarea->hi_r_vnum; build.c: lrange = otherarea->low_r_vnum; build.c: if(pexit->to_room->area == tarea) build.c: pager_printf(ch, "From: %-20.20s %s\n\r", build.c: otherarea->filename,otherarea->name); build.c: pager_printf(ch, "%15d %-30.30s -> %15d (%s)\n\r", build.c: vnum, room->name,pexit->vnum,dir_name[i] ); clans.c: * -----------------------------------------------------------| (0...0) * clans.c: * -----------------------------------------------------------| {o o} * clans.c: * ------------------------------------------------------------------------ * clans.c: for ( clan = first_clan; clan; clan = clan->next ) clans.c: if ( !str_cmp( name, clan->name ) ) clans.c: for ( council = first_council; council; council = council->next ) clans.c: if ( !str_cmp( name, council->name ) ) clans.c: for ( tclan = first_clan; tclan; tclan = tclan->next ) clans.c: fprintf( fpout, "%s\n", tclan->filename ); clans.c: for ( tcouncil = first_council; tcouncil; tcouncil = tcouncil->next ) clans.c: fprintf( fpout, "%s\n", tcouncil->filename ); clans.c: if ( !clan->filename || clan->filename[0] == '\0' ) clans.c: sprintf( buf, "save_clan: %s has no filename", clan->name ); clans.c: sprintf( filename, "%s%s", CLAN_DIR, clan->filename ); clans.c: fprintf( fp, "Name %s~\n", clan->name ); clans.c: fprintf( fp, "Filename %s~\n", clan->filename ); clans.c: fprintf( fp, "Motto %s~\n", clan->motto ); clans.c: fprintf( fp, "Description %s~\n", clan->description ); clans.c: fprintf( fp, "Deity %s~\n", clan->deity ); clans.c: fprintf( fp, "Leader %s~\n", clan->leader ); clans.c: fprintf( fp, "NumberOne %s~\n", clan->number1 ); clans.c: fprintf( fp, "NumberTwo %s~\n", clan->number2 ); clans.c: fprintf( fp, "Badge %s~\n", clan->badge ); clans.c: clan->pkills[0], clan->pkills[1], clan->pkills[2], clans.c: clan->pkills[3], clan->pkills[4], clan->pkills[5], clans.c: clan->pkills[6]); clans.c: clan->pdeaths[0], clan->pdeaths[1], clan->pdeaths[2], clans.c: clan->pdeaths[3], clan->pdeaths[4], clan->pdeaths[5], clans.c: clan->pdeaths[6]); clans.c: fprintf( fp, "MKills %d\n", clan->mkills ); clans.c: fprintf( fp, "MDeaths %d\n", clan->mdeaths ); clans.c: fprintf( fp, "IllegalPK %d\n", clan->illegal_pk ); clans.c: fprintf( fp, "Score %d\n", clan->score ); clans.c: fprintf( fp, "Type %d\n", clan->clan_type ); clans.c: fprintf( fp, "Class %d\n", clan->class ); clans.c: fprintf( fp, "Favour %d\n", clan->favour ); clans.c: fprintf( fp, "Strikes %d\n", clan->strikes ); clans.c: fprintf( fp, "Members %d\n", clan->num_members ); clans.c: fprintf( fp, "NameMembers %s~\n", clan->members ); clans.c: fprintf( fp, "MemLimit %d\n", clan->mem_limit ); clans.c: fprintf( fp, "Alignment %d\n", clan->alignment ); clans.c: fprintf( fp, "Board %d\n", clan->board ); clans.c: fprintf( fp, "ClanObjOne %d\n", clan->clanobj1 ); clans.c: fprintf( fp, "ClanObjTwo %d\n", clan->clanobj2 ); clans.c: fprintf( fp, "ClanObjThree %d\n", clan->clanobj3 ); clans.c: fprintf( fp, "ClanObjFour %d\n", clan->clanobj4 ); clans.c: fprintf( fp, "ClanObjFive %d\n", clan->clanobj5 ); clans.c: fprintf( fp, "Recall %d\n", clan->recall ); clans.c: fprintf( fp, "Storeroom %d\n", clan->storeroom ); clans.c: fprintf( fp, "GuardOne %d\n", clan->guard1 ); clans.c: fprintf( fp, "GuardTwo %d\n", clan->guard2 ); clans.c: if( (endstr = strstr( council->members, name ) ) == NULL ) clans.c: length = strlen( council->members ); clans.c: length -= strlen( endstr ); clans.c: memcpy( newstring, council->members, length ); clans.c: if( (strlen( endstr ) + strlen( name ) + 1) >= strlen( council->members ) ) clans.c: DISPOSE( council->members ); clans.c: council->members = str_dup( finishedstring ); clans.c: sprintf( buf, "%s %s", council->members, name ); clans.c: DISPOSE( council->members ); clans.c: council->members = str_dup( buf ); clans.c: if( (endstr = strstr( clan->members, name ) ) == NULL ) clans.c: length = strlen( clan->members ); clans.c: length -= strlen( endstr ); clans.c: memcpy( newstring, clan->members, length ); clans.c: if( (strlen( endstr ) + strlen( name ) + 1) >= strlen( clan->members ) ) clans.c: DISPOSE( clan->members ); clans.c: clan->members = str_dup( finishedstring ); clans.c: sprintf( buf, "%s %s", clan->members, name ); clans.c: DISPOSE( clan->members ); clans.c: clan->members = str_dup( buf ); clans.c: if ( !council->filename || council->filename[0] == '\0' ) clans.c: sprintf( buf, "save_council: %s has no filename", council->name ); clans.c: sprintf( filename, "%s%s", COUNCIL_DIR, council->filename ); clans.c: fprintf( fp, "Name %s~\n", council->name ); clans.c: fprintf( fp, "Filename %s~\n", council->filename ); clans.c: fprintf( fp, "Description %s~\n", council->description ); clans.c: fprintf( fp, "Head %s~\n", council->head ); clans.c: if ( council->head2 != NULL) clans.c: fprintf (fp, "Head2 %s~\n", council->head2); clans.c: fprintf( fp, "Members %d\n", council->num_members ); clans.c: fprintf( fp, "NameMembers %s~\n", council->members ); clans.c: fprintf( fp, "Board %d\n", council->board ); clans.c: fprintf( fp, "Meeting %d\n", council->meeting ); clans.c: fprintf( fp, "Powers %s~\n", council->powers ); clans.c: * tracking support. --Shaddai clans.c: * have set using setclan. --Shaddai clans.c: clan->mem_limit = 0; /* Set up defaults */ clans.c: KEY( "Alignment", clan->alignment, fread_number( fp ) ); clans.c: KEY( "Badge", clan->badge, fread_string( fp ) ); clans.c: KEY( "Board", clan->board, fread_number( fp ) ); clans.c: KEY( "ClanObjOne", clan->clanobj1, fread_number( fp ) ); clans.c: KEY( "ClanObjTwo", clan->clanobj2, fread_number( fp ) ); clans.c: KEY( "ClanObjThree",clan->clanobj3, fread_number( fp ) ); clans.c: KEY( "ClanObjFour", clan->clanobj4, fread_number( fp ) ); clans.c: KEY( "ClanObjFive", clan->clanobj5, fread_number( fp ) ); clans.c: KEY( "Class", clan->class, fread_number( fp ) ); clans.c: KEY( "Deity", clan->deity, fread_string( fp ) ); clans.c: KEY( "Description", clan->description, fread_string( fp ) ); clans.c: if (!clan->name) clans.c: clan->name = STRALLOC( "" ); clans.c: if (!clan->leader) clans.c: clan->leader = STRALLOC( "" ); clans.c: if (!clan->description) clans.c: clan->description = STRALLOC( "" ); clans.c: if (!clan->motto) clans.c: clan->motto = STRALLOC( "" ); clans.c: if (!clan->number1) clans.c: clan->number1 = STRALLOC( "" ); clans.c: if (!clan->number2) clans.c: clan->number2 = STRALLOC( "" ); clans.c: if (!clan->deity) clans.c: clan->deity = STRALLOC( "" ); clans.c: if (!clan->badge) clans.c: clan->badge = STRALLOC( "" ); clans.c: if( !clan->members ) clans.c: clan->members = str_dup( "" ); clans.c: KEY( "Favour", clan->favour, fread_number( fp ) ); clans.c: KEY( "Filename", clan->filename, fread_string_nohash( fp ) ); clans.c: KEY( "GuardOne", clan->guard1, fread_number( fp ) ); clans.c: KEY( "GuardTwo", clan->guard2, fread_number( fp ) ); clans.c: KEY( "IllegalPK", clan->illegal_pk, fread_number( fp ) ); clans.c: KEY( "Leader", clan->leader, fread_string( fp ) ); clans.c: KEY( "MDeaths", clan->mdeaths, fread_number( fp ) ); clans.c: KEY( "Members", clan->num_members, fread_number( fp ) ); clans.c: KEY( "MemLimit", clan->mem_limit, fread_number( fp ) ); clans.c: KEY( "MKills", clan->mkills, fread_number( fp ) ); clans.c: KEY( "Motto", clan->motto, fread_string( fp ) ); clans.c: KEY( "Name", clan->name, fread_string( fp ) ); clans.c: KEY( "NameMembers", clan->members, fread_string_nohash( fp ) ); clans.c: KEY( "NumberOne", clan->number1, fread_string( fp ) ); clans.c: KEY( "NumberTwo", clan->number2, fread_string( fp ) ); clans.c: KEY( "PDeaths", clan->pdeaths[6], fread_number( fp ) ); clans.c: KEY( "PKills", clan->pkills[6], fread_number( fp ) ); clans.c: clan->pdeaths[0] = fread_number( fp ); clans.c: clan->pdeaths[1] = fread_number( fp ); clans.c: clan->pdeaths[2] = fread_number( fp ); clans.c: clan->pdeaths[3] = fread_number( fp ); clans.c: clan->pdeaths[4] = fread_number( fp ); clans.c: clan->pdeaths[5] = fread_number( fp ); clans.c: clan->pdeaths[6] = fread_number( fp ); clans.c: clan->pkills[0] = fread_number( fp ); clans.c: clan->pkills[1] = fread_number( fp ); clans.c: clan->pkills[2] = fread_number( fp ); clans.c: clan->pkills[3] = fread_number( fp ); clans.c: clan->pkills[4] = fread_number( fp ); clans.c: clan->pkills[5] = fread_number( fp ); clans.c: clan->pkills[6] = fread_number( fp ); clans.c: KEY( "Recall", clan->recall, fread_number( fp ) ); clans.c: KEY( "Score", clan->score, fread_number( fp ) ); clans.c: KEY( "Strikes", clan->strikes, fread_number( fp ) ); clans.c: KEY( "Storeroom", clan->storeroom, fread_number( fp ) ); clans.c: KEY( "Type", clan->clan_type, fread_number( fp ) ); clans.c: KEY( "Board", council->board, fread_number( fp ) ); clans.c: KEY( "Description", council->description, fread_string( fp ) ); clans.c: if (!council->name) clans.c: council->name = STRALLOC( "" ); clans.c: if (!council->description) clans.c: council->description= STRALLOC( "" ); clans.c: if (!council->powers) clans.c: council->powers = STRALLOC( "" ); clans.c: if( !council->members ) clans.c: council->members = str_dup( "" ); clans.c: KEY( "Filename", council->filename, fread_string_nohash( fp ) ); clans.c: KEY( "Head", council->head, fread_string( fp ) ); clans.c: KEY ("Head2", council->head2, fread_string( fp ) ); clans.c: KEY( "Members", council->num_members, fread_number( fp ) ); clans.c: KEY( "Meeting", council->meeting, fread_number( fp ) ); clans.c: KEY( "Name", council->name, fread_string( fp ) ); clans.c: KEY( "NameMembers", council->members, fread_string_nohash( fp ) ); clans.c: KEY( "Powers", council->powers, fread_string( fp ) ); clans.c: /* Make sure we default these to 0 --Shaddai */ clans.c: clan->pkills[0] = 0; clans.c: clan->pkills[1] = 0; clans.c: clan->pkills[2] = 0; clans.c: clan->pkills[3] = 0; clans.c: clan->pkills[4] = 0; clans.c: clan->pkills[5] = 0; clans.c: clan->pkills[6] = 0; clans.c: clan->pdeaths[0]= 0; clans.c: clan->pdeaths[1]= 0; clans.c: clan->pdeaths[2]= 0; clans.c: clan->pdeaths[3]= 0; clans.c: clan->pdeaths[4]= 0; clans.c: clan->pdeaths[5]= 0; clans.c: clan->pdeaths[6]= 0; clans.c: if ( clan->storeroom == 0 clans.c: || (storeroom = get_room_index( clan->storeroom )) == NULL ) clans.c: sprintf( filename, "%s%s.vault", CLAN_DIR, clan->filename ); clans.c: bug( clan->name, 0 ); clans.c: bug( clan->name, 0 ); clans.c: for ( tobj = supermob->first_carrying; tobj; tobj = tobj_next ) clans.c: tobj_next = tobj->next_content; clans.c: if ( IS_NPC( ch ) || !ch->pcdata->clan ) clans.c: clan = ch->pcdata->clan; clans.c: if ( str_cmp( ch->name, clan->leader ) clans.c: && str_cmp( ch->name, clan->deity ) clans.c:/* && (clan->clan_type != CLAN_GUILD clans.c: || (str_cmp( ch->name, clan->number1 ) clans.c: || str_cmp( ch->name, clan->number2 ))) ) */ clans.c: && str_cmp( ch->name, clan->number1 ) clans.c: && str_cmp( ch->name, clan->number2 ) ) clans.c: pObjIndex = get_obj_index( clan->clanobj1 ); clans.c: strcat(buf, (pObjIndex ? pObjIndex->name : "")); clans.c: pObjIndex = get_obj_index( clan->clanobj2 ); clans.c: strcat(buf, (pObjIndex ? pObjIndex->name : "")); clans.c: pObjIndex = get_obj_index( clan->clanobj3 ); clans.c: strcat(buf, (pObjIndex ? pObjIndex->name : "")); clans.c: pObjIndex = get_obj_index( clan->clanobj4 ); clans.c: strcat(buf, (pObjIndex ? pObjIndex->name : "")); clans.c: pObjIndex = get_obj_index( clan->clanobj5 ); clans.c: strcat(buf, (pObjIndex ? pObjIndex->name : "")); clans.c: pObjIndex = get_obj_index( clan->clanobj1 ); clans.c: if ( !pObjIndex || !is_name( arg, pObjIndex->name ) ) clans.c: pObjIndex = get_obj_index( clan->clanobj2 ); clans.c: if ( !pObjIndex || !is_name( arg, pObjIndex->name ) ) clans.c: pObjIndex = get_obj_index( clan->clanobj3 ); clans.c: if ( !pObjIndex || !is_name( arg, pObjIndex->name ) ) clans.c: pObjIndex = get_obj_index( clan->clanobj4 ); clans.c: if ( !pObjIndex || !is_name( arg, pObjIndex->name ) ) clans.c: pObjIndex = get_obj_index( clan->clanobj5 ); clans.c: if ( !pObjIndex || !is_name( arg, pObjIndex->name ) ) clans.c: xSET_BIT( obj->extra_flags, ITEM_CLANOBJECT ); clans.c: obj = obj_to_room( obj, ch->in_room ); clans.c: if ( IS_NPC( ch ) || !ch->pcdata->clan ) clans.c: clan = ch->pcdata->clan; clans.c: if ( (ch->pcdata && ch->pcdata->bestowments clans.c: && is_name("induct", ch->pcdata->bestowments)) clans.c: || !str_cmp( ch->name, clan->deity ) clans.c: || !str_cmp( ch->name, clan->leader ) clans.c: || !str_cmp( ch->name, clan->number1 ) clans.c: || !str_cmp( ch->name, clan->number2 ) clans.c: || IS_SET( ch->pcdata->flags, PCFLAG_INDUCTOR) ) clans.c: if ( clan->clan_type == CLAN_GUILD ) clans.c: if ( is_class( victim, clan->class)) clans.c: if ( victim->level < 10 ) clans.c: if ( victim->level > ch->level ) clans.c: if ( victim->pcdata->clan ) clans.c: if ( victim->pcdata->clan->clan_type == CLAN_ORDER ) clans.c: if ( victim->pcdata->clan == clan ) clans.c: else if ( victim->pcdata->clan->clan_type == CLAN_GUILD ) clans.c: if ( victim->pcdata->clan == clan ) clans.c: if ( victim->pcdata->clan == clan ) clans.c: if ( clan->mem_limit && clan->num_members >= clan->mem_limit ) clans.c: clan->num_members++; clans.c: if ( clan->clan_type != CLAN_ORDER && clan->clan_type != CLAN_GUILD ) clans.c: SET_BIT(victim->speaks, LANG_CLAN); clans.c:/* if ( clan->clan_type != CLAN_NOKILL && clan->clan_type != CLAN_ORDER clans.c: && clan->clan_type != CLAN_GUILD ) clans.c: SET_BIT( victim->pcdata->flags, PCFLAG_DEADLY ); -- Scion */ clans.c: if ( clan->clan_type != CLAN_GUILD && clan->clan_type != CLAN_ORDER clans.c: && clan->clan_type != CLAN_NOKILL ) clans.c: if (skill_table[sn]->guild == clan->class && clans.c: skill_table[sn]->name != NULL ) clans.c: victim->pcdata->learned[sn] = GET_ADEPT(victim, sn); clans.c: ch_printf( victim, "%s instructs you in the ways of %s.\n\r", ch->name, skill_table[sn]->name); clans.c: victim->pcdata->clan = clan; clans.c: STRFREE(victim->pcdata->clan_name); clans.c: victim->pcdata->clan_name = QUICKLINK( clan->name ); clans.c: add_clan_member( clan, victim->name ); clans.c: act( AT_MAGIC, "You induct $N into $t", ch, clan->name, victim, TO_CHAR ); clans.c: act( AT_MAGIC, "$n inducts $N into $t", ch, clan->name, victim, TO_NOTVICT ); clans.c: act( AT_MAGIC, "$n inducts you into $t", ch, clan->name, victim, TO_VICT ); clans.c: sprintf(buf, "%s has been inducted into %s!", victim->name, clan->name); clans.c: if ((council->head == NULL || str_cmp (ch->name, council->head)) clans.c: && ( council->head2 == NULL || str_cmp ( ch->name, council->head2 )) clans.c: && str_cmp (council->name, "mortal council")) clans.c:/* if ( victim->level < LEVEL_NEOPHYTE ) clans.c: if ( council != ch->pcdata->council clans.c: && council != ch->pcdata->council2 ) clans.c: if ( victim->pcdata->council ) clans.c: if ( victim->pcdata->council2 ) clans.c: council->num_members++; clans.c: victim->pcdata->council2 = council; clans.c: STRFREE(victim->pcdata->council2_name); clans.c: victim->pcdata->council2_name = QUICKLINK( council->name ); clans.c: act( AT_MAGIC, "You induct $N into $t", ch, council->name, victim, TO_CHAR ); clans.c: act( AT_MAGIC, "$n inducts $N into $t", ch, council->name, victim, TO_ROOM ); clans.c: act( AT_MAGIC, "$n inducts you into $t", ch, council->name, victim, TO_VICT ); clans.c: add_council_member( council, victim->name ); clans.c: council->num_members++; clans.c: victim->pcdata->council = council; clans.c: STRFREE(victim->pcdata->council_name); clans.c: victim->pcdata->council_name = QUICKLINK( council->name ); clans.c: act( AT_MAGIC, "You induct $N into $t", ch, council->name, victim, TO_CHAR ); clans.c: act( AT_MAGIC, "$n inducts $N into $t", ch, council->name, victim, TO_ROOM ); clans.c: act( AT_MAGIC, "$n inducts you into $t", ch, council->name, victim, TO_VICT ); clans.c: sprintf(buf, "%s has been inducted into %s!", victim->name, council->name); clans.c: add_council_member( council, victim->name ); clans.c: if ( IS_NPC( ch ) || !ch->pcdata->clan ) clans.c: clan = ch->pcdata->clan; clans.c: if ( (ch->pcdata && ch->pcdata->bestowments clans.c: && is_name("outcast", ch->pcdata->bestowments)) clans.c: || !str_cmp( ch->name, clan->deity ) clans.c: || !str_cmp( ch->name, clan->leader ) clans.c: || !str_cmp( ch->name, clan->number1 ) clans.c: || !str_cmp( ch->name, clan->number2 ) clans.c: || IS_SET( ch->pcdata->flags, PCFLAG_INDUCTOR)) clans.c: if ( ch->pcdata->clan->clan_type == CLAN_ORDER ) clans.c: if ( ch->pcdata->clan->clan_type == CLAN_GUILD ) clans.c: if ( victim->level > ch->level ) clans.c: if ( victim->pcdata->clan != ch->pcdata->clan ) clans.c: if ( ch->pcdata->clan->clan_type == CLAN_ORDER ) clans.c: if ( ch->pcdata->clan->clan_type == CLAN_GUILD ) clans.c: if ( clan->clan_type != CLAN_GUILD && clan->clan_type != CLAN_ORDER clans.c: && clan->clan_type != CLAN_NOKILL ) clans.c: if ( skill_table[sn]->guild == victim->pcdata->clan->class clans.c: && skill_table[sn]->name != NULL ) clans.c: victim->pcdata->learned[sn] = 0; clans.c: ch_printf( victim, "You forget the ways of %s.\n\r", skill_table[sn]->name); clans.c: if ( victim->speaking & LANG_CLAN ) clans.c: victim->speaking = LANG_COMMON; clans.c: REMOVE_BIT( victim->speaks, LANG_CLAN ); clans.c: --clan->num_members; clans.c: if ( !str_cmp( victim->name, ch->pcdata->clan->number1 ) ) clans.c: STRFREE( ch->pcdata->clan->number1 ); clans.c: ch->pcdata->clan->number1 = STRALLOC( "" ); clans.c: if ( !str_cmp( victim->name, ch->pcdata->clan->number2 ) ) clans.c: STRFREE( ch->pcdata->clan->number2 ); clans.c: ch->pcdata->clan->number2 = STRALLOC( "" ); clans.c: victim->pcdata->clan = NULL; clans.c: STRFREE(victim->pcdata->clan_name); clans.c: victim->pcdata->clan_name = STRALLOC( "" ); clans.c: act( AT_MAGIC, "You outcast $N from $t", ch, clan->name, victim, TO_CHAR ); clans.c: act( AT_MAGIC, "$n outcasts $N from $t", ch, clan->name, victim, TO_ROOM ); clans.c: act( AT_MAGIC, "$n outcasts you from $t", ch, clan->name, victim, TO_VICT ); clans.c: if ( clan->clan_type != CLAN_GUILD ) clans.c: sprintf(buf, "%s has been outcasted from %s!", victim->name, clan->name); clans.c: rem_clan_member( clan, victim->name ); clans.c:/* if ( clan->clan_type != CLAN_GUILD ) clans.c: xSET_BIT(victim->act, PLR_OUTCAST); clans.c: if ((council->head == NULL || str_cmp (ch->name, council->head)) clans.c: && ( council->head2 == NULL || str_cmp ( ch->name, council->head2 )) clans.c: && str_cmp (council->name, "mortal council")) clans.c: if ( council != ch->pcdata->council clans.c: && council != ch->pcdata->council2 ) clans.c: if ( victim->pcdata->council != council ) clans.c: if ( victim->pcdata->council2 != council ) clans.c: --council->num_members; clans.c: victim->pcdata->council2 = NULL; clans.c: STRFREE(victim->pcdata->council2_name); clans.c: victim->pcdata->council2_name = STRALLOC( "" ); clans.c: act( AT_MAGIC, "You outcast $N from $t", ch, council->name, victim, TO_CHAR ); clans.c: act( AT_MAGIC, "$n outcasts $N from $t", ch, council->name, victim, TO_ROOM ); clans.c: act( AT_MAGIC, "$n outcasts you from $t", ch, council->name, victim, TO_VICT ); clans.c: sprintf(buf, "%s has been outcasted from %s", victim->name, council->name); clans.c: rem_council_member( council, victim->name ); clans.c: --council->num_members; clans.c: victim->pcdata->council2 = NULL; clans.c: STRFREE(victim->pcdata->council2_name); clans.c: victim->pcdata->council2_name = STRALLOC( "" ); clans.c: act( AT_MAGIC, "You outcast $N from $t", ch, council->name, victim, TO_CHAR ); clans.c: act( AT_MAGIC, "$n outcasts $N from $t", ch, council->name, victim, TO_ROOM ); clans.c: act( AT_MAGIC, "$n outcasts you from $t", ch, council->name, victim, TO_VICT ); clans.c: rem_council_member( council, victim->name ); clans.c: send_to_char(" pkill1-7 pdeath1-7\n\r", ch ); clans.c: STRFREE( clan->deity ); clans.c: clan->deity = STRALLOC( argument ); clans.c: STRFREE( clan->leader ); clans.c: clan->leader = STRALLOC( argument ); clans.c: STRFREE( clan->number1 ); clans.c: clan->number1 = STRALLOC( argument ); clans.c: STRFREE( clan->number2 ); clans.c: clan->number2 = STRALLOC( argument ); clans.c: STRFREE( clan->badge ); clans.c: clan->badge = STRALLOC( argument ); clans.c: clan->board = atoi( argument ); clans.c: clan->mem_limit = atoi( argument ); clans.c: clan->num_members = atoi( argument ); clans.c: clan->recall = atoi( argument ); clans.c: clan->storeroom = atoi( argument ); clans.c: clan->clanobj1 = atoi( argument ); clans.c: clan->clanobj2 = atoi( argument ); clans.c: clan->clanobj3 = atoi( argument ); clans.c: clan->clanobj4 = atoi( argument ); clans.c: clan->clanobj5 = atoi( argument ); clans.c: clan->guard1 = atoi( argument ); clans.c: clan->guard2 = atoi( argument ); clans.c: clan->alignment = atoi( argument ); clans.c: clan->clan_type = CLAN_ORDER; clans.c: clan->clan_type = CLAN_GUILD; clans.c: clan->clan_type = atoi( argument ); clans.c: clan->class = atoi( argument ); clans.c: STRFREE( clan->name ); clans.c: clan->name = STRALLOC( argument ); clans.c: DISPOSE( clan->filename ); clans.c: clan->filename = str_dup( argument ); clans.c: STRFREE( clan->motto ); clans.c: clan->motto = STRALLOC( argument ); clans.c: STRFREE( clan->description ); clans.c: clan->description = STRALLOC( argument ); clans.c: clan->pkills[temp_value] = atoi( argument ); clans.c: clan->pdeaths[temp_value] = atoi( argument ); clans.c: STRFREE( council->head ); clans.c: council->head = STRALLOC( argument ); clans.c: if ( council->head2 != NULL ) clans.c: STRFREE (council->head2); clans.c: council->head2 = NULL; clans.c: council->head2 = STRALLOC (argument); clans.c: council->board = atoi( argument ); clans.c: council->num_members = atoi( argument ); clans.c: council->meeting = atoi( argument ); clans.c: STRFREE( council->name ); clans.c: council->name = STRALLOC( argument ); clans.c: DISPOSE( council->filename ); clans.c: council->filename = str_dup( argument ); clans.c: STRFREE( council->description ); clans.c: council->description = STRALLOC( argument ); clans.c: STRFREE( council->powers ); clans.c: council->powers = STRALLOC( argument ); clans.c: * Added multiple levels on pkills and pdeaths. -- Shaddai clans.c: clan->clan_type == CLAN_ORDER ? "Order" : clans.c: (clan->clan_type == CLAN_GUILD ? "Guild" : "Clan"), clans.c: clan->name, clans.c: clan->badge ? clan->badge : "(not set)", clans.c: clan->filename, clans.c: clan->motto ); clans.c: clan->description, clans.c: clan->deity, clans.c: clan->leader ); clans.c: clan->number1, clans.c: clan->number2); clans.c: ch_printf_color( ch, "&wPKills : &w1-9:&W%-3d &w10-14:&W%-3d &w15-19:&W%-3d &w20-29:&W%-3d &w30-39:&W%-3d &w40-49:&W%-3d &w50:&W%-3d\n\r", clans.c: clan->pkills[0], clan->pkills[1], clan->pkills[2], clans.c: clan->pkills[3], clan->pkills[4], clan->pkills[5], clans.c: clan->pkills[6]); clans.c: ch_printf_color( ch, "&wPDeaths : &w1-9:&W%-3d &w10-14:&W%-3d &w15-19:&W%-3d &w20-29:&W%-3d &w30-39:&W%-3d &w40-49:&W%-3d &w50:&W%-3d\n\r", clans.c: clan->pdeaths[0], clan->pdeaths[1], clan->pdeaths[2], clans.c: clan->pdeaths[3], clan->pdeaths[4], clan->pdeaths[5], clans.c: clan->pdeaths[6] ); clans.c: ch_printf_color( ch, "&wIllegalPK: &W%-6d\n\r", clans.c: clan->illegal_pk ); clans.c: ch_printf_color( ch, "&wMKills : &W%-6d &wMDeaths: &W%-6d\n\r", clans.c: clan->mkills, clans.c: clan->mdeaths ); clans.c: ch_printf_color( ch, "&wScore : &W%-6d &wFavor : &W%-6d &wStrikes: &W%d\n\r", clans.c: clan->score, clans.c: clan->favour, clans.c: clan->strikes ); clans.c: ch_printf_color( ch, "&wMembers : &W%-6d &wMLimit : &W%-6d &wAlign : &W%-6d", clans.c: clan->num_members, clans.c: clan->mem_limit, clans.c: clan->alignment ); clans.c: if ( clan->clan_type == CLAN_GUILD ) clans.c: clan->class, clans.c: npc_class[clan->class] ); clans.c: ch_printf_color( ch, "&wMembers : &W%s\n\r", clan->members ); clans.c: ch_printf_color( ch, "&wBoard : &W%-5d &wRecall : &W%-5d &wStorage: &W%-5d\n\r", clans.c: clan->board, clans.c: clan->recall, clans.c: clan->storeroom ); clans.c: ch_printf_color( ch, "&wGuard1 : &W%-5d &wGuard2 : &W%-5d\n\r", clans.c: clan->guard1, clans.c: clan->guard2 ); clans.c: clan->clanobj1, clans.c: clan->clanobj2, clans.c: clan->clanobj3, clans.c: clan->clanobj4, clans.c: clan->clanobj5 ); clans.c: council->name, clans.c: council->filename ); clans.c: ch_printf_color (ch, "&wHead: &W%s\n\r", council->head ); clans.c: ch_printf_color (ch, "&wHead2: &W%s\n\r", (council->head2) ? clans.c: council->head2 : "" ); clans.c: ch_printf_color (ch, "&wMembers: &W%-d\n\r", council->num_members ); clans.c: ch_printf_color (ch, "&wMembers: &W%s\n\r", council->members ); clans.c: ch_printf_color( ch, "&wBoard: &W%-5d\n\r&wMeeting: &W%-5d\n\r&wPowers: &W%s\n\r", clans.c: council->board, clans.c: council->meeting, clans.c: council->powers ); clans.c: ch_printf_color( ch, "&wDescription:\n\r&W%s\n\r", council->description ); clans.c: clan->name = STRALLOC( argument ); clans.c: clan->motto = STRALLOC( "" ); clans.c: clan->description = STRALLOC( "" ); clans.c: clan->deity = STRALLOC( "" ); clans.c: clan->leader = STRALLOC( "" ); clans.c: clan->number1 = STRALLOC( "" ); clans.c: clan->number2 = STRALLOC( "" ); clans.c: clan->badge = STRALLOC( "" ); clans.c: clan->members = str_dup( "" ); clans.c: council->name = STRALLOC( argument ); clans.c: council->head = STRALLOC( "" ); clans.c: council->head2 = NULL; clans.c: council->powers = STRALLOC( "" ); clans.c: council->members = str_dup( "" ); clans.c: * Added multiple level pkill and pdeath support. --Shaddai clans.c: for ( clan = first_clan; clan; clan = clan->next ) clans.c: if ( clan->clan_type == CLAN_ORDER || clan->clan_type == CLAN_GUILD ) clans.c: ch_printf( ch, "%-13s %-13s %-13s", clan->name, clan->deity, clan->leader ); clans.c: clan->pkills[6], clans.c: (clan->pkills[2]+clan->pkills[3]+ clans.c: clan->pkills[4]+clan->pkills[5]) ); clans.c: if ( !clan || clan->clan_type == CLAN_GUILD || clan->clan_type == CLAN_ORDER ) clans.c: ch_printf( ch, "\n\r%s, '%s'\n\r\n\r", clan->name, clan->motto ); clans.c: ch_printf_color( ch, " &w15-19... &r%-4d\n\r &w20-29... &r%-4d\n\r &w30-39... &r%-4d\n\r &w40-49... &r%-4d\n\r", clans.c: clan->pkills[2], clans.c: clan->pkills[3], clans.c: clan->pkills[4], clans.c: clan->pkills[5] ); clans.c: ch_printf_color( ch, " &wAvatar... &r%-4d\n\r", clans.c: clan->pkills[6] ); clans.c: clan->leader, clans.c: clan->number1, clans.c: clan->number2, clans.c: clan->deity ); clans.c: if ( !str_cmp( ch->name, clan->deity ) clans.c: || !str_cmp( ch->name, clan->leader ) clans.c: || !str_cmp( ch->name, clan->number1 ) clans.c: || !str_cmp( ch->name, clan->number2 ) ) clans.c: ch_printf( ch, "# of Members: %d\n\r", clan->num_members ); clans.c: ch_printf( ch, "Current members: %s\n\r", clan->members ); clans.c: ch_printf( ch, "\n\rDescription: %s\n\r", clan->description ); clans.c: for ( order = first_clan; order; order = order->next ) clans.c: if ( order->clan_type == CLAN_ORDER ) clans.c: ch_printf( ch, "%-16s %-14s %-14s %-7d %5d\n\r", clans.c: order->name, order->deity, order->leader, order->mkills, order->mdeaths ); clans.c: if ( !order || order->clan_type != CLAN_ORDER ) clans.c: ch_printf( ch, "\n\rOrder of %s\n\r'%s'\n\r\n\r", order->name, order->motto ); clans.c: order->deity, clans.c: order->leader, clans.c: order->number1, clans.c: order->number2 ); clans.c: if ( !str_cmp( ch->name, order->deity ) clans.c: || !str_cmp( ch->name, order->leader ) clans.c: || !str_cmp( ch->name, order->number1 ) clans.c: || !str_cmp( ch->name, order->number2 ) ) clans.c: ch_printf( ch, "# of Members: %d\n\r", order->num_members ); clans.c: ch_printf( ch, "Current members: %s\n\r", order->members ); clans.c: ch_printf( ch, "\n\rDescription:\n\r%s\n\r", order->description ); clans.c: for (council = first_council; council; council = council->next) clans.c: if ( council->head2 != NULL ) clans.c: ch_printf_color (ch, "&w%-24s %s and %s\n\r", council->name, clans.c: council->head, council->head2 ); clans.c: ch_printf_color (ch, "&w%-24s %-14s\n\r", council->name, council->head); clans.c: ch_printf_color( ch, "&c\n\r%s\n\r", council->name ); clans.c: if ( council->head2 == NULL ) clans.c: council->head, council->num_members ); clans.c: ch_printf_color (ch, "&cCo-Heads: &w%s &cand &w%s\n\r&cMembers: &w%d\n\r", clans.c: council->head, council->head2, council->num_members ); clans.c: ch_printf_color( ch, "&cMembers: &w%s\n\r", council->members ); clans.c: council->description ); clans.c: for ( guild = first_clan; guild; guild = guild->next ) clans.c: if ( guild->clan_type == CLAN_GUILD ) clans.c: ch_printf( ch, "%-20s %-14s %-6d %6d\n\r", guild->name, guild->leader, guild->mkills, guild->mdeaths ); clans.c: if ( !guild || guild->clan_type != CLAN_GUILD ) clans.c: ch_printf( ch, "\n\r%s\n\r", guild->name ); clans.c: guild->leader, clans.c: guild->number1, clans.c: guild->number2, clans.c: guild->motto ); clans.c: if ( !str_cmp( ch->name, guild->deity ) clans.c: || !str_cmp( ch->name, guild->leader ) clans.c: || !str_cmp( ch->name, guild->number1 ) clans.c: || !str_cmp( ch->name, guild->number2 ) ) clans.c: ch_printf( ch, "# of Members: %d\n\r", guild->num_members ); clans.c: ch_printf( ch, "Current members: %s\n\r", guild->members ); clans.c: ch_printf( ch, "Guild Description:\n\r%s\n\r", guild->description ); clans.c: if ( IS_NPC( ch ) || !ch->pcdata->clan ) { clans.c: if ( ch->pcdata->clan->clan_type != CLAN_ORDER clans.c: && ch->pcdata->clan->clan_type != CLAN_GUILD ) { clans.c: CLAN_DIR, ch->pcdata->clan->name ); clans.c: if ( !str_cmp( ch->name, ch->pcdata->clan->leader ) clans.c: || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) clans.c: } -- Scion */ clans.c: || !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) ) clans.c: } -- Scion */ clans.c: if ( ch->level - victim->level > 10 clans.c: || victim->level - ch->level > 10 ) clans.c: if ( (victim->position) != POS_STANDING ) clans.c: if ( IS_SET(victim->in_room->room_flags, ROOM_SAFE) clans.c: victim->position = POS_SHOVE; clans.c: if ((pexit = get_exit(ch->in_room, exit_dir)) == NULL ) clans.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) clans.c: || IS_SET(pexit->exit_info, EX_NOPASSDOOR)) ) clans.c: victim->position = POS_STANDING; clans.c: to_room = pexit->to_room; clans.c: if (IS_SET(to_room->room_flags, ROOM_DEATH)) clans.c: victim->position = POS_STANDING; clans.c: if (ch->in_room->area != to_room->area clans.c: && !in_hard_range( victim, to_room->area ) ) clans.c: victim->position = POS_STANDING; clans.c: chance += ((get_curr_str(ch) - 15) * 3); clans.c: chance += (ch->level - victim->level); clans.c: if (ch->race == 1) clans.c: race_bonus = -3; clans.c: else if (ch->race == 2) clans.c: else if (ch->race == 3) clans.c: race_bonus = -5; clans.c: else if (ch->race == 4) clans.c: race_bonus = -7; clans.c: else if (ch->race == 6) clans.c: else if (ch->race == 7) clans.c: else if (ch->race == 8) clans.c: else if (ch->race == 9) clans.c: race_bonus = -2; clans.c: /* Debugging purposes - show percentage for testing */ clans.c: /* sprintf(buf, "Shove percentage of %s = %d", ch->name, chance); clans.c: victim->position = POS_STANDING; clans.c: move_char( victim, get_exit(ch->in_room,exit_dir), 0); clans.c: victim->position = POS_STANDING; clans.c: /* Remove protection from shove/drag if char shoves -- Blodkai */ clans.c: if ( IS_SET(ch->in_room->room_flags, ROOM_SAFE) clans.c: /* || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) */ clans.c: /* || !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) ) */ clans.c: if ( !xIS_SET( victim->act, PLR_SHOVEDRAG) clans.c:/* && !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY) -- Scion */) clans.c: if ( victim->fighting ) clans.c:/* if( !IS_SET(ch->pcdata->flags, PCFLAG_DEADLY ) && IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) ){ clans.c: } -- Scion */ clans.c: if ( /*!IS_SET(victim->pcdata->flags, PCFLAG_DEADLY) && -- Scion */ victim->position > 3 ) clans.c: if ( ch->level - victim->level > 10 clans.c: || victim->level - ch->level > 10 ) clans.c:/* if ( IS_SET(victim->pcdata->flags, PCFLAG_DEADLY) clans.c: && IS_SET(ch->pcdata->flags, PCFLAG_DEADLY) ) -- Scion */ clans.c: if ( IS_SET(victim->in_room->room_flags, ROOM_SAFE) clans.c: if ((pexit = get_exit(ch->in_room, exit_dir)) == NULL ) clans.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) clans.c: || IS_SET(pexit->exit_info, EX_NOPASSDOOR)) ) clans.c: to_room = pexit->to_room; clans.c: if (IS_SET(to_room->room_flags, ROOM_DEATH)) clans.c: if (ch->in_room->area != to_room->area clans.c: && !in_hard_range( victim, to_room->area ) ) clans.c: victim->position = POS_STANDING; clans.c: chance += ((get_curr_str(ch) - 15) * 3); clans.c: chance += (ch->level - victim->level); clans.c: if (ch->race == 1) clans.c: race_bonus = -3; clans.c: else if (ch->race == 2) clans.c: else if (ch->race == 3) clans.c: race_bonus = -5; clans.c: else if (ch->race == 4) clans.c: race_bonus = -7; clans.c: else if (ch->race == 6) clans.c: else if (ch->race == 7) clans.c: else if (ch->race == 8) clans.c: else if (ch->race == 9) clans.c: race_bonus = -2; clans.c: sprintf(buf, "Drag percentage of %s = %d", ch->name, chance); clans.c: victim->position = POS_STANDING; clans.c: if ( victim->position < POS_STANDING ) clans.c: temp = victim->position; clans.c: victim->position = POS_DRAG; clans.c: move_char( victim, get_exit(ch->in_room,exit_dir), 0); clans.c: victim->position = temp; clans.c:/* Move ch to the room too.. they are doing dragging - Scryn */ clans.c: move_char( ch, get_exit(ch->in_room,exit_dir), 0); comm.c: * -----------------------------------------------------------| (0...0) * comm.c: * -----------------------------------------------------------| {o o} * comm.c: * ------------------------------------------------------------------------ * comm.c: * ------------------------------------------------------------------------ * comm.c: * Low-level communication module * comm.c:/* For ispell -- Kratas */ comm.c: * OS-dependent local functions. comm.c: * Other local functions (OS-independent). comm.c: desc_next = desc->next; comm.c: if( desc->character ) comm.c: desc->character->desc = NULL; comm.c: desc->character = NULL; comm.c: ch_next = ch->next; comm.c: cmd_next = cmd->next; comm.c: help_next = help->next; comm.c: STRFREE( help->text ); comm.c: STRFREE( help->keyword ); comm.c: morph_next = morph->next; comm.c: social_next = social->next; comm.c: board_next = board->next; comm.c: for( note = board->first_note ; note ; note = note_next ) comm.c: note_next = note->next; comm.c: DISPOSE( board->note_file ); comm.c: DISPOSE( board->read_group ); comm.c: DISPOSE( board->post_group ); comm.c: DISPOSE( board->extra_readers ); comm.c: DISPOSE( board->extra_removers ); comm.c: area_next = area->next; comm.c: DISPOSE( area->weather ); comm.c: for( ch = room->first_person ; ch ; ch = ch->next ) comm.c: if( !skill_table[sn]->name ) comm.c: DISPOSE( skill->name ); comm.c: if( skill->affects ) comm.c: for( aff = skill->affects ; aff ; aff = aff_next ) comm.c: aff_next = aff->next; comm.c: DISPOSE( aff->duration ); comm.c: DISPOSE( aff->modifier ); comm.c: DISPOSE( skill->components ); comm.c: DISPOSE( skill->noun_damage ); comm.c: DISPOSE( skill->dice ); comm.c: if( skill->die_char ) comm.c: DISPOSE( skill->die_char ); comm.c: if( skill->die_room ) comm.c: DISPOSE( skill->die_room ); comm.c: if( skill->die_vict ) comm.c: DISPOSE( skill->die_vict ); comm.c: DISPOSE( skill->hit_char ); comm.c: DISPOSE( skill->hit_dest ); comm.c: DISPOSE( skill->hit_room ); comm.c: DISPOSE( skill->hit_vict ); comm.c: DISPOSE( skill->imm_char ); comm.c: DISPOSE( skill->imm_room ); comm.c: DISPOSE( skill->imm_vict ); comm.c: DISPOSE( skill->miss_char ); comm.c: DISPOSE( skill->miss_room ); comm.c: DISPOSE( skill->miss_vict ); comm.c: DISPOSE( skill->teachers ); comm.c: DISPOSE( skill->msg_off ); comm.c: score_next = score->next; comm.c: destroy_hitable( score->keyword ); comm.c: plane_next = plane->next; comm.c: STRFREE(plane->name); comm.c: watch_next =watch->next; comm.c: /* Oops someone forgot to clear up the memory --Shaddai */ comm.c: if ( watch->imm_name ) DISPOSE ( watch->imm_name ); comm.c: if ( watch->player_site ) DISPOSE( watch->player_site ); comm.c: if ( watch->target_name ) DISPOSE( watch->target_name ); comm.c: * pointer -- Shaddai comm.c: if( race->where_name[i] ) comm.c: DISPOSE( race->where_name[i] ); comm.c: shop_next = shop->next; comm.c: if( !class || !class->who_name ) comm.c: STRFREE( class->who_name ); comm.c: boot_time = time(0); /* <-- I think this is what you wanted */ comm.c: set_boot_time->manual = 0; comm.c: new_boot_time to new_boot_struct again. -- Alty */ comm.c: new_boot_time->tm_mday += 1; /* Should set reboots for every 1 days */ comm.c: if(new_boot_time->tm_hour > 12) comm.c: new_boot_time->tm_mday += 1; comm.c: new_boot_time->tm_sec = 0; comm.c: new_boot_time->tm_min = 0; comm.c: new_boot_time->tm_hour = 6; comm.c: /* Start Ispell -- Kratas */ comm.c: have one handy, and the man pages are ever-so-helpful.. -- Alty */ comm.c: /* Save the world's position -- Scion */ comm.c: for (vch = first_char; vch; vch = vch->next) { comm.c: for ( vch = first_char; vch; vch = vch->next ) comm.c: if ( bind( fd, (struct sockaddr *) &sa, sizeof(sa) ) == -1 ) comm.c: for ( ch = first_char; ch; ch = ch->next ) comm.c: sprintf( buf, "%cPC: %-20s room: %d", IS_NPC(ch) ? 'N' : ' ', comm.c: ch->name, ch->in_room->vnum ); comm.c: * LAG alarm! -Thoric comm.c: * Fixed little alarm_section bug in the sprintf -- Kratas comm.c: * Determine whether this player is to be watched --Gorog comm.c: for ( pw = first_watch; pw; pw = pw->next ) comm.c: if ( pw->target_name ) comm.c: if ( !str_cmp(pw->target_name, player_name) comm.c: && player_level < pw->imm_level ) comm.c: if ( pw->player_site ) comm.c: if ( !str_prefix(pw->player_site, player_site) comm.c: && player_level < pw->imm_level ) comm.c: for ( d = first_descriptor; d; d = d->next ) comm.c: maxdesc = UMAX( maxdesc, d->descriptor ); comm.c: FD_SET( d->descriptor, &in_set ); comm.c: FD_SET( d->descriptor, &out_set ); comm.c: FD_SET( d->descriptor, &exc_set ); comm.c: * --Callidyrr comm.c: if ( d == d->next ) comm.c: d->next = NULL; comm.c: d_next = d->next; comm.c: d->idle++; /* make it so a descriptor can idle out */ comm.c: if ( FD_ISSET( d->descriptor, &exc_set ) ) comm.c: FD_CLR( d->descriptor, &in_set ); comm.c: FD_CLR( d->descriptor, &out_set ); comm.c: if ( d->character comm.c: && ( d->connected == CON_PLAYING comm.c: || d->connected == CON_EDITING comm.c: || ( d->connected >= CON_NOTE_TO comm.c: && d->connected <= CON_NOTE_FINISH))) comm.c: save_char_obj( d->character ); comm.c: d->outtop = 0; comm.c: if ( (!d->character && d->idle > 360) /* 2 mins */ comm.c: || ( d->connected != CON_PLAYING && d->idle > 1200) /* 5 mins */ comm.c: || d->idle > 28800 ) /* 2 hrs */ comm.c: d->outtop = 0; comm.c: d->fcommand = FALSE; comm.c: if ( FD_ISSET( d->descriptor, &in_set ) ) comm.c: d->idle = 0; comm.c: if ( d->character ) comm.c: d->character->timer = 0; comm.c: FD_CLR( d->descriptor, &out_set ); comm.c: if ( d->character comm.c: && ( d->connected == CON_PLAYING comm.c: || d->connected == CON_EDITING comm.c: || ( d->connected >= CON_NOTE_TO comm.c: && d->connected <= CON_NOTE_FINISH))) comm.c: save_char_obj( d->character ); comm.c: d->outtop = 0; comm.c: if ( d->character && d->character->wait > 0 ) comm.c: --d->character->wait; comm.c: /* Check for running aliases -- Scion */ comm.c: if ( d->connected == CON_PLAYING && d->character->pcdata && d->character->pcdata->alias_queue != NULL ) comm.c: temp=d->character->pcdata->alias_queue; comm.c: interpret( d->character, d->character->pcdata->alias_queue->cmd ); comm.c: d->character->pcdata->alias_queue = d->character->pcdata->alias_queue->next; comm.c: d->character->pcdata->alias_used++; comm.c: if (d->character->pcdata->alias_used >= 20) { comm.c: d->character->pcdata->alias_queue=NULL; comm.c: d->character->pcdata->alias_used=0; comm.c: send_to_char("Infinite loop detected... Your alias has been terminated.\r\n", d->character); comm.c: if ( d->incomm[0] != '\0' ) comm.c: d->fcommand = TRUE; comm.c: stop_idling( d->character ); comm.c: strcpy( cmdline, d->incomm ); comm.c: d->incomm[0] = '\0'; comm.c: if ( d->character ) comm.c: set_cur_char( d->character ); comm.c: if( d->character ) comm.c: if( IS_NPC( d->character ) ) comm.c: d->character->pIndexData->vnum, d->character->name, d->character->in_room ? comm.c: d->character->in_room->vnum : 0, cmdline ); comm.c: d->character->name, d->character->in_room ? d->character->in_room->vnum : 0, cmdline ); comm.c: if ( d->pagepoint ) comm.c: switch( d->connected ) comm.c: if (d->character && !IS_NPC(d->character)) comm.c: d->character->pcdata->alias_used=0; comm.c: interpret( d->character, cmdline ); comm.c: edit_buffer( d->character, cmdline ); comm.c: handle_con_note_text( d->character, cmdline ); comm.c: d_next = d->next; comm.c: if ( ( d->fcommand || d->outtop > 0 ) comm.c: && FD_ISSET(d->descriptor, &out_set) ) comm.c: if ( d->pagepoint ) comm.c: if ( d->character comm.c: && ( d->connected == CON_PLAYING comm.c: || d->connected == CON_EDITING comm.c: || ( d->connected >= CON_NOTE_TO comm.c: && d->connected <= CON_NOTE_FINISH))) comm.c: save_char_obj( d->character ); comm.c: d->outtop = 0; comm.c: if ( d->character comm.c: && ( d->connected == CON_PLAYING comm.c: || d->connected == CON_EDITING comm.c: || ( d->connected >= CON_NOTE_TO comm.c: && d->connected <= CON_NOTE_FINISH))) comm.c: save_char_obj( d->character ); comm.c: d->outtop = 0; comm.c: * Sleep( last_time + 1/PULSE_PER_SECOND - now ). comm.c: usecDelta = ((int) last_time.tv_usec) - ((int) now_time.tv_usec) comm.c: secDelta = ((int) last_time.tv_sec ) - ((int) now_time.tv_sec ); comm.c: secDelta -= 1; comm.c: usecDelta -= 1000000; comm.c: /* Save morphs so can sort later. --Shaddai */ comm.c: dnew->next = NULL; comm.c: dnew->descriptor = desc; comm.c: dnew->connected = CON_ANSI; /* Josh */ comm.c: dnew->outsize = 2000; comm.c: dnew->idle = 0; comm.c: dnew->lines = 0; comm.c: dnew->scrlen = 24; comm.c: dnew->user = STRALLOC("unknown"); comm.c: dnew->newstate = 0; comm.c: dnew->prevcolor = 0x07; comm.c: CREATE( dnew->outbuf, char, dnew->outsize ); comm.c: if ( ioctlsocket(desc, FIONBIO, &arg) == -1 ) comm.c: if ( fcntl( desc, F_SETFL, FNDELAY ) == -1 ) comm.c: dnew->port = ntohs( sock.sin_port ); comm.c: buf, dnew->port ); comm.c: dnew->host = STRALLOC( buf ); comm.c: dnew->host = STRALLOC( (char *)( from ? from->h_name : buf) ); comm.c: for ( d = first_descriptor; d; d = d->next ) comm.c: if ( !d->next ) comm.c: write_to_buffer( dnew, buf, 0 ); /* -- Kratas */ comm.c: sprintf( log_buf, "Broke all-time maximum player record: %d", sysdata.alltimemax ); comm.c: closesocket( d->descriptor ); comm.c: STRFREE( d->host ); comm.c: DISPOSE( d->outbuf ); comm.c: STRFREE( d->user ); /* identd */ comm.c: if ( d->pagebuf ) comm.c: DISPOSE( d->pagebuf ); comm.c:/* --num_descriptors; This is called from more than close_socket -- Alty */ comm.c: if ( !force && dclose->outtop > 0 ) comm.c: if ( dclose->snoop_by ) comm.c: write_to_buffer( dclose->snoop_by, comm.c: for ( d = first_descriptor; d; d = d->next ) comm.c: if ( d->snoop_by == dclose ) comm.c: d->snoop_by = NULL; comm.c: /* Check for switched people who go link-dead. -- Altrag */ comm.c: if ( dclose->original ) comm.c: if ( ( ch = dclose->character ) != NULL ) comm.c: bug( "Close_socket: dclose->original without character %s", comm.c: (dclose->original->name ? dclose->original->name : "unknown") ); comm.c: dclose->character = dclose->original; comm.c: dclose->original = NULL; comm.c: ch = dclose->character; comm.c: if ( !dclose->prev && dclose != first_descriptor ) comm.c: bug( "Close_socket: %s desc:%p != first_desc:%p and desc->prev = NULL!", comm.c: ch ? ch->name : d->host, dclose, first_descriptor ); comm.c: dn = d->next; comm.c: ch ? ch->name : d->host, dclose, dp ); comm.c: dclose->prev = dp; comm.c: if ( !dclose->prev ) comm.c: ch ? ch->name : dclose->host, dclose ); comm.c: if ( !dclose->next && dclose != last_descriptor ) comm.c: bug( "Close_socket: %s desc:%p != last_desc:%p and desc->next = NULL!", comm.c: ch ? ch->name : d->host, dclose, last_descriptor ); comm.c: dp = d->prev; comm.c: ch ? ch->name : d->host, dclose, dn ); comm.c: dclose->next = dn; comm.c: if ( !dclose->next ) comm.c: ch ? ch->name : dclose->host, dclose ); comm.c: if ( dclose->character ) comm.c: drop_artifacts(ch, ch->last_carrying); comm.c: sprintf( log_buf, "Closing link to %s.", ch->pcdata->filename ); comm.c: log_string_plus( log_buf, LOG_COMM, UMAX( sysdata.log_level, ch->level ) ); comm.c: if ( ch->level < LEVEL_DEMI ) comm.c: to_channel( log_buf, CHANNEL_MONITOR, "Monitor", ch->level ); comm.c: if ( (dclose->connected == CON_PLAYING comm.c: || dclose->connected == CON_EDITING) comm.c: ||(dclose->connected >= CON_NOTE_TO comm.c: && dclose->connected <= CON_NOTE_FINISH)) comm.c: if ( dclose->connected == CON_PLAYING comm.c: || dclose->connected == CON_EDITING ) */ comm.c: ch->desc = NULL; comm.c: else if ( dclose->connected == CON_OEDIT comm.c: || dclose->connected == CON_REDIT comm.c: || dclose->connected == CON_MEDIT ) comm.c: ch->desc = NULL; comm.c: dclose->character->desc = NULL; comm.c: free_char( dclose->character ); comm.c: d_next = d_next->next; comm.c: if ( dclose->descriptor == maxdesc ) comm.c: --maxdesc; comm.c: --num_descriptors; comm.c: if ( d->incomm[0] != '\0' ) comm.c: iStart = strlen(d->inbuf); comm.c: if ( iStart >= sizeof(d->inbuf) - 10 ) comm.c: sprintf( log_buf, "%s input overflow!", d->host ); comm.c: nRead = recv( d->descriptor, d->inbuf + iStart, comm.c: sizeof(d->inbuf) - 10 - iStart, 0 ); comm.c: if ( d->inbuf[iStart-1] == '\n' || d->inbuf[iStart-1] == '\r' ) comm.c: d->inbuf[iStart] = '\0'; comm.c: if ( d->incomm[0] != '\0' ) comm.c: for ( i = 0; d->inbuf[i] != '\n' && d->inbuf[i] != '\r' && i<MAX_INBUF_SIZE; comm.c: if ( d->inbuf[i] == '\0' ) comm.c: for ( i = 0, k = 0; d->inbuf[i] != '\n' && d->inbuf[i] != '\r'; i++ ) comm.c: for ( ; d->inbuf[i] != '\0' || i>= MAX_INBUF_SIZE ; i++ ) comm.c: if ( d->inbuf[i] == '\n' || d->inbuf[i] == '\r' ) comm.c: d->inbuf[i] = '\n'; comm.c: d->inbuf[i+1] = '\0'; comm.c: if ( d->inbuf[i] == (signed char)IAC ) comm.c: else if ( iac==1 && (d->inbuf[i] == (signed char)DO || d->inbuf[i] == (signed char)DONT) ) comm.c: if ( d->inbuf[i] == (signed char)TELOPT_COMPRESS ) comm.c: if ( d->inbuf[i-1] == (signed char)DO ) comm.c: else if ( d->inbuf[i-1] == (signed char)DONT ) comm.c: if ( d->inbuf[i] == '\b' && k > 0 ) comm.c: --k; comm.c: else if ( isascii(d->inbuf[i]) && isprint(d->inbuf[i]) ) comm.c: d->incomm[k++] = d->inbuf[i]; comm.c: d->incomm[k++] = ' '; comm.c: d->incomm[k] = '\0'; comm.c: if ( k > 1 || d->incomm[0] == '!' ) comm.c: if ( d->incomm[0] != '!' && strcmp( d->incomm, d->inlast ) ) comm.c: d->repeat = 0; comm.c: /* Was 20, now 40 -- Kratas */ comm.c: if ( ++d->repeat >= 40 ) comm.c:/* sprintf( log_buf, "%s input spamming!", d->host ); comm.c: strcpy( d->incomm, "quit" ); comm.c: if(d->incomm[0] == '!' && d->incomm[1] == '!') comm.c: strcpy(d->incomm, d->incomm + 2); comm.c: strcat(d->incomm," "); comm.c: strcat(d->incomm,d->inlast); comm.c: else if ( d->incomm[0] == '!' ) comm.c: strcpy( d->incomm, d->inlast ); comm.c: strcpy( d->inlast, d->incomm ); comm.c: while ( d->inbuf[i] == '\n' || d->inbuf[i] == '\r' ) comm.c: for ( j = 0; ( d->inbuf[j] = d->inbuf[i+j] ) != '\0'; j++ ) comm.c: * If buffer has more than 4K inside, spit out .5K at a time -Thoric comm.c: if ( !mud_down && d->outtop > 4096 ) comm.c: memcpy( buf, d->outbuf, 512 ); comm.c: memmove( d->outbuf, d->outbuf + 512, d->outtop - 512 ); comm.c: d->outtop -= 512; comm.c: if ( d->snoop_by ) comm.c: if ( d->character && d->character->name ) comm.c: if (d->original && d->original->name) comm.c: sprintf( snoopbuf, "%s (%s)", d->character->name, d->original->name ); comm.c: sprintf( snoopbuf, "%s", d->character->name); comm.c: write_to_buffer( d->snoop_by, snoopbuf, 0); comm.c: write_to_buffer( d->snoop_by, "% ", 2 ); comm.c: write_to_buffer( d->snoop_by, buf, 0 ); comm.c: d->outtop = 0; comm.c: if ( fPrompt && !mud_down && d->connected == CON_PLAYING ) comm.c: ch = d->original ? d->original : d->character; comm.c: if ( xIS_SET(ch->act, PLR_BLANK) ) comm.c: if ( xIS_SET(ch->act, PLR_PROMPT) ) comm.c: if ( xIS_SET(ch->act, PLR_TELNET_GA) ) comm.c: * Short-circuit if nothing to write. comm.c: if ( d->outtop == 0 ) comm.c: * Snoop-o-rama. comm.c: if ( d->snoop_by ) comm.c: /* without check, 'force mortal quit' while snooped caused crash, -h */ comm.c: if ( d->character && d->character->name ) comm.c: /* Show original snooped names. -- Altrag */ comm.c: if ( d->original && d->original->name ) comm.c: sprintf( buf, "%s (%s)", d->character->name, d->original->name ); comm.c: sprintf( buf, "%s", d->character->name); comm.c: write_to_buffer( d->snoop_by, buf, 0); comm.c: write_to_buffer( d->snoop_by, "% ", 2 ); comm.c: write_to_buffer( d->snoop_by, d->outbuf, d->outtop ); comm.c: * OS-dependent output. comm.c: if ( !write_to_descriptor( d, d->outbuf, d->outtop ) ) comm.c: d->outtop = 0; comm.c: d->outtop = 0; comm.c: if ( !d->outbuf ) comm.c: if ( d->outtop == 0 && !d->fcommand ) comm.c: d->outbuf[0] = '\n'; comm.c: d->outbuf[1] = '\r'; comm.c: d->outtop = 2; comm.c: while ( d->outtop + length >= d->outsize ) comm.c: if (d->outsize > 32000) comm.c: d->outtop = 0; comm.c: bug("Buffer overflow. Closing (%s).", d->character ? d->character->name : "???" ); comm.c: d->outsize *= 2; comm.c: RECREATE( d->outbuf, char, d->outsize ); comm.c: strncpy( d->outbuf + d->outtop, txt, length ); comm.c: d->outtop += length; comm.c: d->outbuf[d->outtop] = '\0'; comm.c: nBlock = UMIN( length - iStart, 4096 ); comm.c: if( d->out_compress ) comm.c: return write_to_descriptor2( d->descriptor, txt, length ); comm.c: return write_to_descriptor2( d->descriptor, txt, length ); comm.c: ch = d->character; comm.c: if ( !IS_SET( ch->pcdata->flags, PCFLAG_NOINTRO ) ) comm.c: if (xIS_SET(ch->act, PLR_RIP)) comm.c: if (xIS_SET(ch->act, PLR_ANSI)) comm.c: d->connected = CON_PRESS_ENTER; comm.c: * -- Kratas comm.c: if( !str_cmp( d->character->pcdata->hair_length, "Bald" ) ) comm.c: d->character->pcdata->hair_color = STRALLOC( "Non-Existant" ); comm.c: d->connected = CON_GET_EYE_COLOR; comm.c: if( IS_SET( race->attribs[HAIR_COLOR], 1 << x ) ) comm.c: write_to_buffer( d, buf->data, 0 ); comm.c: x = toupper(answer) - 'A'; /* Gets Number */ comm.c: if( IS_SET( race->attribs[HAIR_COLOR], 1 << x ) ) comm.c: d->character->pcdata->hair_color = STRALLOC( hair_colors[x] ); comm.c: d->connected = CON_GET_EYE_COLOR; comm.c: "Bald", "Crew-Cut", "Short", "Medium", "Long", "Waist", NULL comm.c: if( IS_SET( race->attribs[HAIR_LENGTH], 1 << x ) ) comm.c: write_to_buffer( d, buf->data, 0 ); comm.c: x = toupper(answer) - 'A'; /* Gets Number */ comm.c: if( IS_SET( race->attribs[HAIR_LENGTH], 1 << x ) ) comm.c: d->character->pcdata->hair_length = STRALLOC( hair_lengths[x] ); comm.c: d->connected = CON_GET_HAIR_COLOR; comm.c: "Aqua", "Brown", "Green", "Teal", "Blue-Green", "Hazel", "Blue", comm.c: "Hazel-Blue", "Hazel-Green", "Light Brown", "Baby Blue", comm.c: "Jade", "Red", "Blood-Red", "Silver", NULL comm.c: if( IS_SET( race->attribs[EYE_COLOR], 1 << x ) ) comm.c: write_to_buffer( d, buf->data, 0 ); comm.c: x = toupper(answer) - 'A'; /* Gets Number */ comm.c: if( IS_SET( race->attribs[EYE_COLOR], 1 << x ) ) comm.c: d->character->pcdata->eye_color = STRALLOC( eye_colors[x] ); comm.c: d->connected = CON_GET_SKIN_TONE; comm.c: if( IS_SET( race->attribs[SKIN_TONE], 1 << x ) ) comm.c: write_to_buffer( d, buf->data, 0 ); comm.c: x = toupper(answer) - 'A'; /* Gets Number */ comm.c: if( IS_SET( race->attribs[SKIN_TONE], 1 << x ) ) comm.c: d->character->pcdata->skin_tone = STRALLOC( skin_tones[x] ); comm.c: d->connected = CON_GET_BUILD; comm.c: if( IS_SET( race->attribs[RACE_BUILD], 1 << x ) ) comm.c: write_to_buffer( d, buf->data, 0 ); comm.c: x = toupper(answer) - 'A'; /* Gets Number */ comm.c: if( IS_SET( race->attribs[RACE_BUILD], 1 << x ) ) comm.c: d->character->pcdata->ch_build = STRALLOC( builds[x] ); comm.c: d->connected = CON_GET_HEIGHT; comm.c: if( IS_SET( race->attribs[RACE_HEIGHT], 1 << x ) ) comm.c: write_to_buffer( d, buf->data, 0 ); comm.c: x = toupper(answer) - 'A'; /* Gets Number */ comm.c: if( IS_SET( race->attribs[RACE_HEIGHT], 1 << x ) ) comm.c: d->character->pcdata->ch_height = STRALLOC( heights[x] ); comm.c: ch = d->character; comm.c: switch ( d->connected ) comm.c: bug( "Nanny: bad d->connected %d.", d->connected ); comm.c: d->character = tmp; comm.c: tmp->desc = d; comm.c: xSET_BIT( tmp->act, PLR_ANSI ); comm.c: d->ansi = TRUE; comm.c: send_to_char_color("&RAnsi enabled!&w\n\r",d->character); comm.c: d->connected = CON_GET_NAME; comm.c: send_to_char_color( help_greeting+1, d->character ); comm.c: send_to_char_color( help_greeting , d->character ); comm.c: tmp->desc = NULL; comm.c: d->character = NULL; comm.c: d->ansi = FALSE; comm.c: d->connected = CON_GET_NAME; comm.c: /* Old players can keep their characters. -- Alty */ comm.c: if ( !check_parse_name( argument, (d->newstate != 0) ) ) comm.c: if (d->newstate == 0) comm.c: d->newstate++; comm.c: d->connected = CON_GET_NAME; comm.c: if ( !d->character ) comm.c: sprintf( log_buf, "Bad player file %s@%s.", argument, d->host ); comm.c: ch = d->character; comm.c: if ( xIS_SET(ch->act, PLR_DENY) ) comm.c: sprintf( log_buf, "Denying access to %s@%s.", argument, d->host ); comm.c: if (d->newstate != 0) comm.c: d->connected = CON_GET_NAME; comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); /* Big Memory Leak before --Shaddai */ comm.c: d->character = NULL; comm.c: && !check_immortal_domain( ch , d->host) ) comm.c: sprintf (log_buf, "%s's char being hacked from %s.", argument, d->host); comm.c: if (d->newstate != 0) comm.c: d->connected = CON_GET_NAME; comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); /* Big Memory Leak before --Shaddai */ comm.c: d->character = NULL; comm.c: d->connected = CON_GET_OLD_PASSWORD; comm.c: if (d->newstate == 0) comm.c: d->connected = CON_GET_NAME; comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); /* Big Memory Leak before --Shaddai */ comm.c: d->character = NULL; comm.c: STRFREE( ch->name ); comm.c: ch->name = STRALLOC( argument ); comm.c: d->connected = CON_CONFIRM_NEW_NAME; comm.c: if ( strcmp( crypt( argument, ch->pcdata->pwd ), ch->pcdata->pwd ) ) comm.c: d->character->desc = NULL; comm.c: if ( check_playing( d, ch->pcdata->filename, TRUE ) ) comm.c: chk = check_reconnect( d, ch->pcdata->filename, TRUE ); comm.c: if ( d->character && d->character->desc ) comm.c: d->character->desc = NULL; comm.c: sprintf( buf, ch->pcdata->filename ); comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); comm.c: d->character = NULL; comm.c: ch = d->character; comm.c: if ( ch->position == POS_FIGHTING comm.c: || ch->position == POS_EVASIVE comm.c: || ch->position == POS_DEFENSIVE comm.c: || ch->position == POS_AGGRESSIVE comm.c: || ch->position == POS_BERSERK ) comm.c: ch->position = POS_STANDING; comm.c: sprintf( log_buf, "%s@%s(%s) has connected.", ch->pcdata->filename, comm.c: d->host, d->user ); comm.c: if ( ch->level < LEVEL_DEMI ) comm.c: /*to_channel( log_buf, CHANNEL_MONITOR, "Monitor", ch->level );*/ comm.c: log_string_plus( log_buf, LOG_COMM, ch->level ); comm.c:/* i need this for debugging - shogar */ comm.c: ch->name, echo_off_str ); comm.c: d->connected = CON_GET_NEW_PASSWORD; comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); comm.c: d->character = NULL; comm.c: d->connected = CON_GET_NAME; comm.c: pwdnew = crypt( argument, ch->name ); comm.c: DISPOSE( ch->pcdata->pwd ); comm.c: ch->pcdata->pwd = str_dup( pwdnew ); comm.c: d->connected = CON_CONFIRM_NEW_PASSWORD; comm.c: if ( strcmp( crypt( argument, ch->pcdata->pwd ), ch->pcdata->pwd ) ) comm.c: d->connected = CON_GET_NEW_PASSWORD; comm.c: d->connected = CON_GET_NEW_SEX; comm.c: /* All switch statements below are now simplified a bit. -- Kratas */ comm.c: case 'M': ch->sex = SEX_MALE; break; comm.c: case 'F': ch->sex = SEX_FEMALE; break; comm.c: case 'N': ch->sex = SEX_NEUTRAL; break; comm.c: if ( strlen(buf)+strlen(class_table[iClass]->who_name) > 77 ) comm.c: strcat( buf, class_table[iClass]->who_name ); comm.c: d->connected = CON_GET_NEW_CLASS; comm.c: STRFREE(ch->pcdata->hair_color); comm.c: race = race_table[d->character->race]; comm.c: ch->pcdata->hair_color = STRALLOC( "" ); comm.c:// d->connected = CON_GET_EYE_COLOR; comm.c: d->connected = CON_GET_EYE_COLOR; comm.c: STRFREE(ch->pcdata->hair_length); comm.c: race = race_table[d->character->race]; comm.c: ch->pcdata->hair_length = STRALLOC( "" ); comm.c:// d->connected = CON_GET_HAIR_COLOR; comm.c: d->connected = CON_GET_HAIR_COLOR; comm.c: STRFREE(ch->pcdata->eye_color); comm.c: race = race_table[d->character->race]; comm.c: ch->pcdata->eye_color = STRALLOC( "" ); comm.c:// d->connected = CON_GET_SKIN_TONE; comm.c: d->connected = CON_GET_SKIN_TONE; comm.c: STRFREE(ch->pcdata->skin_tone); comm.c: race = race_table[d->character->race]; comm.c: ch->pcdata->skin_tone = STRALLOC(""); comm.c:// d->connected = CON_GET_BUILD; comm.c: d->connected = CON_GET_BUILD; comm.c: STRFREE(ch->pcdata->ch_build); comm.c: race = race_table[d->character->race]; comm.c: ch->pcdata->ch_build = STRALLOC(""); comm.c:// d->connected = CON_GET_HEIGHT; comm.c: d->connected = CON_GET_HEIGHT; comm.c: STRFREE(ch->pcdata->ch_height); comm.c: race = race_table[d->character->race]; comm.c: ch->pcdata->ch_height = STRALLOC(""); comm.c: d->connected = CON_GET_WANT_RIPANSI; comm.c: d->connected = CON_GET_WANT_RIPANSI; comm.c: if ( toupper(argument[0]) == toupper(class_table[iClass]->who_name[0]) comm.c: && !str_prefix( argument, class_table[iClass]->who_name ) ) comm.c: if ( toupper(arg[0]) == toupper(class_table[iClass]->who_name[0]) comm.c: && !str_prefix( arg, class_table[iClass]->who_name ) ) comm.c: ch->class = iClass; comm.c: if (race_table[iRace]->race_name && race_table[iRace]->race_name[0] != '\0' comm.c: && !IS_SET(race_table[iRace]->class_restriction, 1 << ch->class) comm.c: && str_cmp(race_table[iRace]->race_name,"unused") ) comm.c: if ( strlen(buf)+strlen(race_table[iRace]->race_name) > 77 ) comm.c: strcat( buf, race_table[iRace]->race_name ); comm.c: d->connected = CON_GET_NEW_RACE; comm.c: if ( toupper(argument[0]) == toupper(race_table[iRace]->race_name[0]) comm.c: && !str_prefix( argument, race_table[iRace]->race_name) ) comm.c: if ( toupper(arg[0]) == toupper(race_table[iRace]->race_name[0]) comm.c: && !str_prefix( arg, race_table[iRace]->race_name ) ) comm.c: ch->race = iRace; comm.c: || !race_table[iRace]->race_name || race_table[iRace]->race_name[0] == '\0' comm.c: || IS_SET(race_table[iRace]->class_restriction, 1 << ch->class ) comm.c: || !str_cmp(race_table[iRace]->race_name,"unused") comm.c: race = race_table[d->character->race]; comm.c: d->connected = CON_GET_HAIR_LENGTH; comm.c: d->connected = CON_GET_HAIR_LENGTH; comm.c: d->connected = CON_GET_WANT_RIPANSI; comm.c: case 'a': case 'A': xSET_BIT(ch->act,PLR_ANSI); break; comm.c: sprintf( log_buf, "%s@%s new %s %s.", ch->name, d->host, comm.c: race_table[ch->race]->race_name, comm.c: class_table[ch->class]->who_name ); comm.c: ch->level = 0; comm.c: ch->position = POS_STANDING; comm.c: d->connected = CON_MAINMENU; /* Change that to CON_PRESS_ENTER to show the motd -- Scion */ comm.c: /* fixes 2nd , 3rd pager pages from not showing up - shogar */ comm.c: if ( chk_watch(get_trust(ch), ch->name, d->host) ) /* --Gorog */ comm.c: SET_BIT( ch->pcdata->flags, PCFLAG_WATCH ); comm.c: REMOVE_BIT( ch->pcdata->flags, PCFLAG_WATCH ); comm.c: if ( xIS_SET(ch->act, PLR_RIP) ) comm.c: if ( xIS_SET(ch->act, PLR_ANSI) ) comm.c: else if (ch->level == 0) comm.c: if (xIS_SET(ch->act, PLR_NOMENU) || (ch->level < 2)) comm.c: d->connected = CON_READ_MOTD; comm.c: d->connected = CON_MAINMENU; comm.c: if (ch->level < 2) { comm.c: d->connected=CON_READ_MOTD; /* Skip mainmenu cause newbies can't see -- Scion */ comm.c: if ( xIS_SET(ch->act, PLR_ANSI) ) comm.c: if ( !xIS_SET(ch->act, PLR_NOMENU) ) { comm.c: d->connected = CON_MAINMENU2; comm.c: d->connected = CON_READ_MOTD; comm.c: value = is_number( arg ) ? atoi( arg ) : -1; comm.c: if ( atoi(arg) < -1 && value == -1) comm.c: d->connected=CON_READ_MOTD; comm.c: d->connected=CON_MAINMENU; comm.c: d->connected=CON_MAINMENU; comm.c: if ( ch->level == 50) comm.c: if ( ch->level < 50 && ch->level > 0 ) comm.c: if ( ch->level == 0 ) comm.c: d->connected=CON_MAINMENU; comm.c: d->connected=CON_MAINMENU; comm.c: d->connected=CON_MAINMENU; comm.c: d->connected=CON_MAINMENU; comm.c: d->connected=CON_MAINMENU; comm.c: d->connected = CON_PLAYING; comm.c: if ( ch->level == 0 ) comm.c: ch->pcdata->clan_name = STRALLOC( "" ); comm.c: ch->pcdata->clan = NULL; comm.c: switch ( class_table[ch->class]->attr_prime ) comm.c: case APPLY_STR: ch->perm_str = 16; break; comm.c: case APPLY_INT: ch->perm_int = 16; break; comm.c: case APPLY_WIS: ch->perm_wis = 16; break; comm.c: case APPLY_DEX: ch->perm_dex = 16; break; comm.c: case APPLY_CON: ch->perm_con = 16; break; comm.c: case APPLY_CHA: ch->perm_cha = 16; break; comm.c: case APPLY_LCK: ch->perm_lck = 16; break; comm.c: ch->perm_str += race_table[ch->race]->str_plus; comm.c: ch->perm_int += race_table[ch->race]->int_plus; comm.c: ch->perm_wis += race_table[ch->race]->wis_plus; comm.c: ch->perm_dex += race_table[ch->race]->dex_plus; comm.c: ch->perm_con += race_table[ch->race]->con_plus; comm.c: ch->perm_cha += race_table[ch->race]->cha_plus; comm.c: ch->affected_by = race_table[ch->race]->affected; comm.c: ch->perm_lck += race_table[ch->race]->lck_plus; comm.c: ch->armor += race_table[ch->race]->ac_plus; comm.c: /* Scion -- Average the two alignments. This way a drow paladin is comm.c: ch->alignment += (race_table[ch->race]->alignment + class_table[ch->class]->alignment) / 2; comm.c: ch->attacks = race_table[ch->race]->attacks; comm.c: ch->defenses = race_table[ch->race]->defenses; comm.c: ch->saving_poison_death = race_table[ch->race]->saving_poison_death; comm.c: ch->saving_wand = race_table[ch->race]->saving_wand; comm.c: ch->saving_para_petri = race_table[ch->race]->saving_para_petri; comm.c: ch->saving_breath = race_table[ch->race]->saving_breath; comm.c: ch->saving_spell_staff = race_table[ch->race]->saving_spell_staff; comm.c: ch->height = number_range(race_table[ch->race]->height *.9, race_table[ch->race]->height *1.1); comm.c: ch->weight = number_range(race_table[ch->race]->weight *.9, race_table[ch->race]->weight *1.1); comm.c: ch->pcdata->learned[iLang] = 100; comm.c: if ( lang_array[iLang] == race_table[ch->race]->language ) comm.c: ch->pcdata->learned[iLang] = 100; comm.c: /* ch->resist += race_table[ch->race]->resist; drats */ comm.c: /* ch->susceptible += race_table[ch->race]->suscept; drats */ comm.c: ch->level = 1; comm.c: ch->exp = 0; comm.c: ch->hit = ch->max_hit; comm.c: ch->mana = ch->max_mana; comm.c: ch->hit += race_table[ch->race]->hit; comm.c: ch->mana += race_table[ch->race]->mana; comm.c: ch->move = ch->max_move; comm.c: if( ch->pcdata->clan ) comm.c: ch->pcdata->memorize[0] = ch->pcdata->clan->recall; comm.c: ch->pcdata->memorize[0] = ROOM_VNUM_TEMPLE; comm.c: title_table [ch->class] [ch->level] comm.c: [ch->sex == SEX_FEMALE ? 1 : 0] ); comm.c: xSET_BIT( ch->act, PLR_AUTOGOLD ); comm.c: xSET_BIT( ch->act, PLR_AUTOEXIT ); comm.c: obj = create_object( get_obj_index(class_table[ch->class]->weapon), comm.c: ch->pcdata->auth_state = 0; comm.c: SET_BIT(ch->pcdata->flags, PCFLAG_UNAUTHED); comm.c: ch->pcdata->prompt = STRALLOC(""); comm.c: else if ( !IS_IMMORTAL(ch) && ch->pcdata->release_date > 0 && comm.c: ch->pcdata->release_date > current_time ) comm.c: if ( ch->in_room->vnum == 6 ) comm.c: char_to_room( ch, ch->in_room ); comm.c: else if ( ch->in_room && ( IS_IMMORTAL( ch ) comm.c: || !IS_SET( ch->in_room->room_flags, ROOM_PROTOTYPE ) ) ) comm.c: char_to_room( ch, ch->in_room ); comm.c: ch->pcdata->outputprefix=NULL; comm.c: ch->pcdata->outputsuffix=NULL; comm.c: ch->pcdata->alias_queue=NULL; comm.c:/* for ( vch = first_char; vch; vch = vch->next ) comm.c: Don't really need this.. just annoys me :) -- Scion comm.c: sprintf(buf, "%s has entered the realm.", ch->name); comm.c: /* This should just do descriptor since it skips npcs anyway -- Kratas*/ comm.c: for( tmp = first_descriptor ; tmp ; tmp = tmp->next ) comm.c: if( tmp->connected != CON_PLAYING ) comm.c: wch = tmp->original ? tmp->original : tmp->character; comm.c: log_string_plus( buf, LOG_COMM, ch->level+1 ); comm.c: if ( ch->pcdata->pet ) comm.c: ch->pcdata->pet, NULL, ch, TO_NOTVICT ); comm.c: ch, NULL, ch->pcdata->pet, TO_CHAR ); comm.c: pool -- TRI */ comm.c: SET_BIT(ch->pcdata->flags,PCFLAG_IMMPROOF); comm.c: if ( !ch->was_in_room && ch->in_room == get_room_index( ROOM_VNUM_TEMPLE )) comm.c: ch->was_in_room = get_room_index( ROOM_VNUM_TEMPLE ); comm.c: else if ( ch->was_in_room == get_room_index( ROOM_VNUM_TEMPLE )) comm.c: ch->was_in_room = get_room_index( ROOM_VNUM_TEMPLE ); comm.c: else if ( !ch->was_in_room ) comm.c: ch->was_in_room = ch->in_room; comm.c: for (res = first_reserved; res; res = res->next) comm.c: if ((*res->name == '*' && !str_infix(res->name+1, name)) || comm.c: !str_cmp(res->name, name)) comm.c: * players too though, so I don't mind that removal. -- Alty comm.c: * Outdated stuff -- Alty comm.c: * Look for link-dead player to reconnect. comm.c: for ( ch = first_char; ch; ch = ch->next ) comm.c: && ( !fConn || !ch->desc ) comm.c: && ch->pcdata->filename comm.c: && !str_cmp( name, ch->pcdata->filename ) ) comm.c: if ( fConn && ch->switched ) comm.c: d->connected = CON_GET_NAME; comm.c: if ( d->character ) comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); comm.c: d->character = NULL; comm.c: DISPOSE( d->character->pcdata->pwd ); comm.c: d->character->pcdata->pwd = str_dup( ch->pcdata->pwd ); comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); comm.c: d->character = ch; comm.c: ch->desc = d; comm.c: ch->timer = 0; comm.c: ch->pcdata->filename, d->host, d->user ); comm.c: log_string_plus( log_buf, LOG_COMM, UMAX( sysdata.log_level, ch->level ) ); comm.c: if ( ch->level < LEVEL_SAVIOR ) comm.c: to_channel( log_buf, CHANNEL_MONITOR, "Monitor", ch->level ); comm.c: d->connected = CON_PLAYING; comm.c: if (ch->pcdata->in_progress) comm.c: for ( dold = first_descriptor; dold; dold = dold->next ) comm.c: && ( dold->character || dold->original ) comm.c: && !str_cmp( name, dold->original comm.c: ? dold->original->pcdata->filename : comm.c: dold->character->pcdata->filename ) ) comm.c: cstate = dold->connected; comm.c: ch = dold->original ? dold->original : dold->character; comm.c: if ( !ch->name comm.c: write_to_buffer( d, "Already connected - try again.\n\r", 0 ); comm.c: ch->pcdata->filename ); comm.c: d->character->desc = NULL; comm.c: free_char( d->character ); comm.c: d->character = ch; comm.c: ch->desc = d; comm.c: ch->timer = 0; comm.c: if ( ch->switched ) comm.c: do_return( ch->switched, "" ); comm.c: ch->switched = NULL; comm.c: ch->pcdata->filename, d->host ); comm.c: log_string_plus( log_buf, LOG_COMM, UMAX( sysdata.log_level, ch->level ) ); comm.c: if ( ch->level < LEVEL_SAVIOR ) comm.c: to_channel( log_buf, CHANNEL_MONITOR, "Monitor", ch->level ); comm.c: d->connected = cstate; comm.c: || !ch->desc comm.c: || ch->desc->connected != CON_PLAYING comm.c: || !ch->was_in_room comm.c: || ch->in_room != get_room_index( ROOM_VNUM_LIMBO ) ) comm.c: ch->timer = 0; comm.c: was_in_room = ch->was_in_room; comm.c: ch->was_in_room = NULL; comm.c: if ( txt && ch->desc ) comm.c: write_to_buffer( ch->desc, txt, strlen(txt) ); comm.c: if ( !txt || !ch->desc ) comm.c: d = ch->desc; comm.c: write_to_buffer(d, prevstr, (colstr-prevstr)); comm.c: if ( !d->pagebuf ) comm.c: d->pagesize = MAX_STRING_LENGTH; comm.c: CREATE( d->pagebuf, char, d->pagesize ); comm.c: if ( !d->pagepoint ) comm.c: d->pagepoint = d->pagebuf; comm.c: d->pagetop = 0; comm.c: d->pagecmd = '\0'; comm.c: if ( d->pagetop == 0 && !d->fcommand ) comm.c: d->pagebuf[0] = '\n'; comm.c: d->pagebuf[1] = '\r'; comm.c: d->pagetop = 2; comm.c: pageroffset = d->pagepoint - d->pagebuf; /* pager fix (goofup fixed 08/21/97) */ comm.c: while ( d->pagetop + length >= d->pagesize ) comm.c: if ( d->pagesize > 32000 ) comm.c: d->pagetop = 0; comm.c: d->pagepoint = NULL; comm.c: DISPOSE(d->pagebuf); comm.c: d->pagesize = MAX_STRING_LENGTH; comm.c: d->pagesize *= 2; comm.c: RECREATE(d->pagebuf, char, d->pagesize); comm.c: d->pagepoint = d->pagebuf + pageroffset; /* pager fix (goofup fixed 08/21/97) */ comm.c: strncpy(d->pagebuf+d->pagetop, txt, length); comm.c: d->pagetop += length; comm.c: d->pagebuf[d->pagetop] = '\0'; comm.c: if ( txt && ch->desc ) comm.c: DESCRIPTOR_DATA *d = ch->desc; comm.c: ch = d->original ? d->original : d->character; comm.c: if ( IS_NPC(ch) || !IS_SET(ch->pcdata->flags, PCFLAG_PAGERON) ) comm.c: send_to_char(txt, d->character); comm.c: if ( !txt || !ch->desc ) comm.c: d = ch->desc; comm.c: ch = d->original ? d->original : d->character; comm.c: if ( IS_NPC(ch) || !IS_SET(ch->pcdata->flags, PCFLAG_PAGERON) ) comm.c: send_to_char_color(txt, d->character); comm.c: write_to_pager(d, prevstr, (colstr-prevstr)); comm.c: if ( !ch || !ch->desc ) comm.c: och = (ch->desc->original ? ch->desc->original : ch); comm.c: if ( !IS_NPC(och) && xIS_SET(och->act, PLR_ANSI) ) comm.c: ch->desc->prevcolor = AType; /* added this, was in 1.02 */ comm.c: ch->desc->pagecolor = AType; /* cooridnate page & nopage shogar*/ comm.c: write_to_buffer( ch->desc, buf, strlen(buf) ); comm.c: if ( !ch || !ch->desc ) comm.c: och = (ch->desc->original ? ch->desc->original : ch); comm.c: if ( !IS_NPC(och) && xIS_SET(och->act, PLR_ANSI) ) comm.c: ch->desc->pagecolor = AType; comm.c: ch->desc->prevcolor = AType; /* cooridnate page & nopage shogar*/ comm.c: * since it contains keywords that may not look proper. -Thoric comm.c: if ( !str_prefix("a ", obj->short_descr) ) comm.c: return obj->short_descr + 2; comm.c: if ( !str_prefix("an ", obj->short_descr) ) comm.c: return obj->short_descr + 3; comm.c: if ( !str_prefix("the ", obj->short_descr) ) comm.c: return obj->short_descr + 4; comm.c: if ( !str_prefix("some ", obj->short_descr) ) comm.c: return obj->short_descr + 5; comm.c: return obj->short_descr; comm.c: if ( obj->count > 1 ) comm.c: sprintf( buf, "%s (%d)", obj->short_descr, obj->count ); comm.c: return obj->short_descr; comm.c:/* Major overhaul. -- Alty */ comm.c:#define MORPHNAME(ch) ((ch->morph&&ch->morph->morph)? \ comm.c: ch->morph->morph->short_desc: \ comm.c: IS_NPC(ch) ? ch->short_descr : ch->name) comm.c:#define NAME(ch) (IS_NPC(ch) ? ch->short_descr : ch->name) comm.c: if ( ch->morph == NULL ) comm.c: if ( vch->morph == NULL ) comm.c: case 'e': if (ch->sex > 2 || ch->sex < 0) comm.c: bug("act_string: player %s has sex set at %d!", ch->name, comm.c: ch->sex); comm.c: i = he_she [URANGE(0, ch->sex, 2)]; comm.c: case 'E': if (vch->sex > 2 || vch->sex < 0) comm.c: bug("act_string: player %s has sex set at %d!", vch->name, comm.c: vch->sex); comm.c: i = he_she [URANGE(0, vch->sex, 2)]; comm.c: case 'm': if (ch->sex > 2 || ch->sex < 0) comm.c: bug("act_string: player %s has sex set at %d!", ch->name, comm.c: ch->sex); comm.c: i = him_her[URANGE(0, ch->sex, 2)]; comm.c: case 'M': if (vch->sex > 2 || vch->sex < 0) comm.c: bug("act_string: player %s has sex set at %d!", vch->name, comm.c: vch->sex); comm.c: i = him_her[URANGE(0, vch->sex, 2)]; comm.c: case 's': if (ch->sex > 2 || ch->sex < 0) comm.c: bug("act_string: player %s has sex set at %d!", ch->name, comm.c: ch->sex); comm.c: i = his_her[URANGE(0, ch->sex, 2)]; comm.c: case 'S': if (vch->sex > 2 || vch->sex < 0) comm.c: bug("act_string: player %s has sex set at %d!", vch->name, comm.c: vch->sex); comm.c: i = his_her[URANGE(0, vch->sex, 2)]; comm.c: his_her[URANGE(0, ch->sex, 2)]; break; comm.c: * Discard null and zero-length messages. comm.c: if ( !ch->in_room ) comm.c: to = ch->in_room->first_person; comm.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_SECRETIVE) && type != TO_CHAR ) comm.c: bug( "%s (%s)", ch->name, format ); comm.c: if ( !vch->in_room ) comm.c: bug( "%s -> %s (%s)", ch->name, vch->name, format ); comm.c:/* to = vch->in_room->first_person;*/ comm.c: if ( HAS_PROG(to->in_room, ACT_PROG) ) comm.c: rprog_act_trigger(txt, to->in_room, ch, (OBJ_DATA *)arg1, (void *)arg2); comm.c: for ( to_obj = to->in_room->first_content; to_obj; comm.c: to_obj = to_obj->next_content ) comm.c: if ( HAS_PROG(to_obj->pIndexData, ACT_PROG) ) comm.c: room when we're only sending to one char anyways..? -- Alty */ comm.c: ? NULL : to->next_in_room ) comm.c: if ((!to->desc comm.c: && ( IS_NPC(to) && !HAS_PROG(to->pIndexData, ACT_PROG) )) comm.c: /* OasisOLC II check - Tagith */ comm.c: if ( to->desc comm.c: && is_inolc( to->desc ) ) comm.c: (!IS_IMMORTAL(to) && !IS_NPC(ch) && (xIS_SET(ch->act, PLR_WIZINVIS) comm.c: && (get_trust(to) < (ch->pcdata ? ch->pcdata->wizinvis : 0) ) ) ) ) ) comm.c: if (to->desc) comm.c: /* write_to_buffer( to->desc, txt, strlen(txt) ); */ comm.c: /* Note: use original string, not string with ANSI. -- Alty */ comm.c: if ( !NOT_AUTHED(ch) || ch->pcdata->auth_state != 2) comm.c: if (!str_cmp(ch->name, argument)) comm.c: for ( tmp = first_char; tmp; tmp = tmp->next ) comm.c: if (!str_cmp(argument, tmp->name)) comm.c: if ( stat( fname, &fst ) != -1 ) comm.c: STRFREE( ch->name ); comm.c: ch->name = STRALLOC( argument ); comm.c: STRFREE( ch->pcdata->filename ); comm.c: ch->pcdata->filename = STRALLOC( argument ); comm.c: ch->pcdata->auth_state = 0; comm.c: return -1; comm.c: CHAR_DATA *ch = d->character; comm.c: CHAR_DATA *och = (d->original ? d->original : d->character); comm.c: bool ansi = (!IS_NPC(och) && xIS_SET(och->act, PLR_ANSI)); comm.c: if ( !IS_NPC(ch) && !IS_SET(ch->pcdata->flags, PCFLAG_HELPSTART ) ) comm.c:else if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_AFK) ) comm.c: else if ( !IS_NPC(ch) && ch->substate != SUB_NONE && ch->pcdata->subprompt comm.c: && ch->pcdata->subprompt[0] != '\0' ) comm.c: prompt = ch->pcdata->subprompt; comm.c: else if (IS_NPC (ch) || (!ch->fighting && (!ch->pcdata->prompt comm.c: || !*ch->pcdata->prompt) ) ) comm.c: else if ( ch->fighting ) comm.c: if ( !ch->pcdata->fprompt || !*ch->pcdata->fprompt ) comm.c: prompt = ch->pcdata->fprompt; comm.c: prompt = ch->pcdata->prompt; comm.c: d->prevcolor = 0x07; comm.c: if ( *prompt == *(prompt-1) ) comm.c: switch(*(prompt-1)) comm.c: bug( "Display_prompt: bad command char '%c'.", *(prompt-1) ); comm.c: stat = make_color_sequence(&prompt[-1], pbuf, d); comm.c: --prompt; comm.c: if ( ch->level >= 10 ) comm.c: stat = ch->alignment; comm.c: if ( !ch->fighting || ( victim = ch->fighting->who ) == NULL ) comm.c: else if(!victim->fighting||(victim = victim->fighting->who)==NULL) comm.c: if ( victim->max_hit > 0 ) comm.c: percent = (100 * victim->hit) / victim->max_hit; comm.c: percent = -1; comm.c: if ( !ch->fighting || ( victim = ch->fighting->who ) == NULL ) comm.c: if ( victim->max_hit > 0 ) comm.c: percent = (100 * victim->hit) / victim->max_hit; comm.c: percent = -1; comm.c: stat = ch->hit; comm.c: stat = ch->max_hit; comm.c: stat = ch->mana; comm.c: stat = ch->max_mana; comm.c: if ( !ch->fighting || ( victim = ch->fighting->who ) == NULL ) comm.c: else if(!victim->fighting||(victim=victim->fighting->who)==NULL) comm.c: strcpy ( pbuf, victim->short_descr ); comm.c: strcpy ( pbuf, victim->name ); comm.c: if (!ch->fighting || (victim = ch->fighting->who) == NULL ) comm.c: strcpy ( pbuf, victim->short_descr ); comm.c: strcpy ( pbuf, victim->name ); comm.c: stat = ch->pcdata->condition[COND_BLOODTHIRST]; comm.c: stat = ch->level + 10; comm.c: stat = ch->move; comm.c: stat = ch->max_move; comm.c: stat = ch->gold; comm.c: stat = ch->in_room->vnum; comm.c: sprintf( pbuf, "%s", flag_string( ch->in_room->room_flags, r_flags) ); comm.c: if ( xIS_SET(och->act, PLR_ROOMVNUM) ) comm.c: sprintf(pbuf, "<#%d> ", ch->in_room->vnum); comm.c: if ( xIS_SET(ch->act, PLR_AFK) ) comm.c: stat = ch->exp; comm.c: stat = exp_level(ch, ch->level+1) - ch->exp; comm.c: if ( ch->style == STYLE_BERSERK ) strcpy( pbuf, "B" ); comm.c: else if ( ch->style == STYLE_AGGRESSIVE ) strcpy( pbuf, "A" ); comm.c: else if ( ch->style == STYLE_DEFENSIVE ) strcpy( pbuf, "D" ); comm.c: else if ( ch->style == STYLE_EVASIVE ) strcpy( pbuf, "E" ); comm.c: if ( (!IS_NPC(ch) && xIS_SET(ch->act, PLR_WIZINVIS)) || comm.c: (IS_NPC(ch) && xIS_SET(ch->act, ACT_MOBINVIS)) ) comm.c: sprintf(pbuf, "(Invis %d) ", (IS_NPC(ch) ? ch->mobinvis : ch->pcdata->wizinvis)); comm.c: stat = (IS_NPC(ch) ? (xIS_SET(ch->act, ACT_MOBINVIS) ? ch->mobinvis : 0) comm.c: : (xIS_SET(ch->act, PLR_WIZINVIS) ? ch->pcdata->wizinvis : 0)); comm.c: write_to_buffer(d, buf, (pbuf-buf)); comm.c: och = (d->original ? d->original : d->character); comm.c: ansi = (!IS_NPC(och) && xIS_SET(och->act, PLR_ANSI)); comm.c: ln = -1; comm.c: ln = -1; comm.c: cl = d->prevcolor; comm.c: ln = -1; comm.c: if ( *col == '-' ) comm.c: if ( cl == d->prevcolor ) comm.c: if ( (cl & 0x88) != (d->prevcolor & 0x88) ) comm.c: d->prevcolor = 0x07 | (cl & 0x88); comm.c: if ( (cl & 0x07) != (d->prevcolor & 0x07) ) comm.c: if ( (cl & 0x70) != (d->prevcolor & 0x70) ) comm.c: if ( buf[ln-1] == ';' ) comm.c: buf[ln-1] = 'm'; comm.c: d->prevcolor = cl; comm.c: d->pagecmd = *argument; comm.c: if ( !d || !d->pagepoint || d->pagecmd == -1 ) comm.c: ch = d->original ? d->original : d->character; comm.c: pclines = UMAX(ch->pcdata->pagerlen, 5) - 1; comm.c: switch(LOWER(d->pagecmd)) comm.c: lines = -1-(pclines*2); comm.c: lines = -1-pclines; comm.c: d->pagetop = 0; comm.c: d->pagepoint = NULL; comm.c: DISPOSE(d->pagebuf); comm.c: d->pagesize = MAX_STRING_LENGTH; comm.c: while ( lines < 0 && d->pagepoint >= d->pagebuf ) comm.c: if ( *(--d->pagepoint) == '\n' ) comm.c: if ( *d->pagepoint == '\n' && *(++d->pagepoint) == '\r' ) comm.c: ++d->pagepoint; comm.c: if ( d->pagepoint < d->pagebuf ) comm.c: d->pagepoint = d->pagebuf; comm.c: for ( lines = 0, last = d->pagepoint; lines < pclines; ++last ) comm.c: if ( last != d->pagepoint ) comm.c: if ( !write_to_descriptor(d, d->pagepoint, comm.c: (last-d->pagepoint)) ) comm.c: d->pagepoint = last; comm.c: d->pagetop = 0; comm.c: d->pagepoint = NULL; comm.c: DISPOSE(d->pagebuf); comm.c: d->pagesize = MAX_STRING_LENGTH; comm.c: d->pagecmd = -1; comm.c: if ( xIS_SET( ch->act, PLR_ANSI ) ) comm.c: if ( xIS_SET( ch->act, PLR_ANSI ) ) comm.c: if ( d->pagecolor == 7 ) comm.c: sprintf(buf, "\033[0;%d;%s%dm", (d->pagecolor & 8) == 8, comm.c: (d->pagecolor > 15 ? "5;" : ""), (d->pagecolor & 7)+30); comm.c:/* CrashGuard - A reduced version of Warm reboot - Josh */ comm.c: * --Callidyrr comm.c: sprintf (buf, "\r\n&R[&WINFO&R] &cCRASHGUARD - please remain seated!\r\n\a"); comm.c: d_next = d->next; comm.c: if( d && d->out_compress ) comm.c: if (!d->character || d->connected < 0) comm.c: fprintf (fp, "%d %s %s\n", d->descriptor, och->name, d->host); comm.c: if (och->level == 1) comm.c: och->level++; comm.c: send_to_char( buf, d->character ); comm.c: fprintf (fp, "-1\n"); comm.c:/* End of CrashGuard - Josh */ comm.c: /* do_asave (NULL, ""); - autosave changed areas */ comm.c: sprintf (buf, "\r\n[INFO] COPYOVER by %s - please remain seated!\r\n\a", ch->name); comm.c: d_next = d->next; /* We delete from the list , so need to save this */ comm.c: if( d && d->out_compress ) comm.c: if (!d->character || d->connected < 0) /* drop those logging on */ comm.c: fprintf (fp, "%d %s %s\n", d->descriptor, och->name, d->host); comm.c: if (och->level == 1) comm.c: och->level++; /* Advance_level doesn't do that */ comm.c: fprintf (fp, "-1\n"); comm.c: /* Close reserve and other always-open files and release other resources */ comm.c: /* more redhat fixes - shogar */ comm.c: /* exec - descriptors are inherited */ comm.c: /* Failed - sucessful exec will not return */ comm.c: /* If it failed, lets get imc and everything back up? -- Kratas */ comm.c:/* Recover from a copyover - load players */ comm.c: - doesn't prevent reading */ comm.c: if (desc == -1) comm.c: /* Write something, and check if it goes error-free */ comm.c: d->host = STRALLOC( host ); comm.c: d->connected = CON_COPYOVER_RECOVER; /* negative so close_socket comm.c: /* no longer needed - but save for rainy day, shogar */ comm.c: if (!d->character->in_room) comm.c: d->character->in_room = get_room_index (ROOM_VNUM_TEMPLE); comm.c: LINK( d->character, first_char, last_char, next, prev ); comm.c: d->character->pcdata->board = &boards[0]; comm.c: char_to_room (d->character, d->character->in_room); comm.c: do_look (d->character, "auto noprog"); comm.c: act (AT_ACTION, "$n materializes!", d->character, NULL, NULL, TO_ROOM); comm.c: d->connected = CON_PLAYING; comm.c: int space = ( size - const_color_str_len( argument ) ); comm.c: int space = ( size - color_str_len( argument ) ); comm.c: if ( count < maxlength ) return ((str - count) + maxlength); comm.c: if ( count < maxlength ) return ((str - count) + maxlength); comm.c:/* Signal handling - Josh */ comm.c: /* Block other terminal-generated signals while handler runs. */ comm.c: /* Ignore SIGSEGV and SIGBUS by Josh - Signal Blocking by Josh */ comm.c: if (sysdata.crashguard == FALSE) /* in case I -want- a core dump -- Scion */ comm.c:/* End of Signal Handler - Josh */ comments.c: * -----------------------------------------------------------| (0...0) * comments.c: * -----------------------------------------------------------| {o o} * comments.c: * ------------------------------------------------------------------------ * comments.c: * ------------------------------------------------------------------------ * comments.c: * and problem players. -haus 6/25/1995 * comments.c: * save.c:107: if ( ch->comments ) (* saves comments *) comments.c: * save.c:411: ch->comments = NULL; (* nulls ch->comments *) comments.c: if ( !victim->comments ) comments.c: if ( !pnote->prev ) comments.c: victim->comments = pnote->next; comments.c: pnote->prev->next = pnote->next; comments.c: STRFREE( pnote->text ); comments.c: STRFREE( pnote->subject ); comments.c: STRFREE( pnote->to_list ); comments.c: STRFREE( pnote->date ); comments.c: STRFREE( pnote->sender ); comments.c: if ( !ch->desc ) comments.c: from within the editor. -Narn */ comments.c: if ( ch->desc->connected == CON_EDITING || ch->desc->connected == CON_NOTE_TO ) comments.c: switch( ch->substate ) comments.c: if ( !ch->pnote ) comments.c: if ( ch->dest_buf != ch->pnote ) comments.c: bug( "do_comment: sub_writing_note: ch->dest_buf != ch->pnote", 0 ); comments.c: STRFREE( ch->pnote->text ); comments.c: ch->pnote->text = copy_buffer( ch ); comments.c: if ( !victim->comments ) comments.c: for ( pnote = victim->comments; pnote; pnote = pnote->next ) comments.c: sprintf( buf, "%2d) %-10s [%s] %s\n\r", comments.c: pnote->sender, comments.c: pnote->date, comments.c: pnote->subject ); comments.c: if ( !victim->comments ) comments.c: for ( pnote = victim->comments; pnote; pnote = pnote->next ) comments.c: pnote->sender, comments.c: pnote->subject, comments.c: pnote->date, comments.c: pnote->to_list comments.c: send_to_char( pnote->text, ch ); comments.c: ch->substate = SUB_WRITING_NOTE; comments.c: ch->dest_buf = ch->pnote; comments.c: start_editing( ch, ch->pnote->text ); comments.c: STRFREE( ch->pnote->subject ); comments.c: ch->pnote->subject = STRALLOC( argument ); comments.c: STRFREE( ch->pnote->to_list ); comments.c: ch->pnote->to_list = STRALLOC( argument ); comments.c: if ( ch->pnote ) comments.c: STRFREE( ch->pnote->text ); comments.c: STRFREE( ch->pnote->subject ); comments.c: STRFREE( ch->pnote->to_list ); comments.c: STRFREE( ch->pnote->date ); comments.c: STRFREE( ch->pnote->sender ); comments.c: DISPOSE( ch->pnote ); comments.c: ch->pnote = NULL; comments.c: if ( !ch->pnote ) comments.c: ch->pnote->sender, comments.c: ch->pnote->subject, comments.c: ch->pnote->to_list comments.c: send_to_char( ch->pnote->text, ch ); comments.c: if ( !ch->pnote ) comments.c: strtime[strlen(strtime)-1] = '\0'; comments.c: ch->pnote->date = STRALLOC( strtime ); comments.c: pnote = ch->pnote; comments.c: ch->pnote = NULL; comments.c: pnote->next = victim->comments; comments.c: if (victim->comments) comments.c: victim->comments->prev = pnote; comments.c: pnote->prev = NULL; comments.c: victim->comments = pnote; comments.c: sprintf( notefile, "%s/%s", BOARD_DIR, board->note_file ); comments.c: pnote->sender, comments.c: pnote->date, comments.c: pnote->to_list, comments.c: pnote->subject, comments.c: pnote->text comments.c: for ( pnote = victim->comments; pnote; pnote = pnote->next ) comments.c: if(!ch->comments) comments.c: for(pnote=ch->comments;pnote;pnote=pnote->next) comments.c: fprintf( fp,"sender %s~\n",pnote->sender); comments.c: fprintf( fp,"date %s~\n",pnote->date); comments.c: fprintf( fp,"to %s~\n",pnote->to_list); comments.c: fprintf( fp,"subject %s~\n",pnote->subject); comments.c: fprintf( fp,"text\n%s~\n",pnote->text); comments.c: pnote->sender = fread_string( fp ); comments.c: pnote->date = fread_string( fp ); comments.c: pnote->to_list = fread_string( fp ); comments.c: pnote->subject = fread_string( fp ); comments.c: pnote->text = fread_string( fp ); comments.c: pnote->next = ch->comments; comments.c: pnote->prev = NULL; comments.c: ch->comments = pnote; comments.c:----------------------------------------------------------------------- const.c: * -----------------------------------------------------------| (0...0) * const.c: * -----------------------------------------------------------| {o o} * const.c: * ------------------------------------------------------------------------ * const.c: * ------------------------------------------------------------------------ * const.c: "Elf", {{1 << AFF_DETECT_MAGIC,0,0,0}}, -1, 2, 0, 1,-1, 1, 0, -2,10, 0, 0, 0, LANG_ELVEN const.c: "Dwarf", {{1 << AFF_INFRARED,0,0,0}}, 1, 0, 1, 0, 2,-1, 0, 6,-6, 0, 0, (1 << CLASS_MAGE) | (1 << 8), LANG_DWARVEN const.c: "Halfling", {{1<<AFF_SNEAK,0,0,0}}, -2, 1, 0, 0, 1, 0, 0, -3,10, 0, 0, (1 << CLASS_MAGE) | (1 << CLASS_DRUID) | (1 << CLASS_CLERIC) | (1 << CLASS_AUGURER) | (1 << 8), LANG_HALFLING const.c: "Pixie", {{1<<AFF_FLYING,0,0,0}}, -4, 3, 0,-1,-2, 3, 0, -5,40, 0, 0, const.c: "Vampire", {{1<<AFF_INFRARED,0,0,0}}, 1, 0, 0, 0, 2,-2, 0, 0, LANG_COMMON const.c: "Half-Ogre", {{1<<AFF_INFRARED,0,0,0}}, 2,-3,-1,-2, 3,-4, 0, 5,-8, 0, 0, const.c: "Half-Orc", {{1<<AFF_INFRARED,0,0,0}}, 1,-2,-2,-1, 2,-4, 0, 6,-9, 0, 0, const.c: "Half-Troll", {{1<<AFF_INFRARED,0,0,0}}, 3,-2,-2, 1, 2,-5, 0, 7,-9, 0, 0, const.c: "Half-Elf", {{1<<AFF_INFRARED,0,0,0}}, -1, 1, 0, 1,-1, 1, 0, 3, 3, 0, 0, const.c: "Gith", {{1<<AFF_DETECT_INVIS,0,0,0}}, 1, 2,-1, 1,-2,-5, 1, 4,20, 0, 0, const.c: "Centaur", {{1<<AFF_SCRYING,0,0,0}}, 2,-4,-1,+2,+1,-2, 0, 5, 0, 0,0, const.c: "Minotaur", {{1<<AFF_INFRARED,0,0,0}}, 2,-3,-1,-2,3,-4,0,5,-8,0,0, const.c: "Sprite", {{1<<AFF_FLYING,0,0,0}}, -4,3,0,-1,-2,3,0,-5,40,0,0, const.c: "Leprechaun", {{1<<AFF_SNEAK, 0,0,0}}, -2,1,0,0,1,0,0,-3,10,0,0, const.c: "Kender", {{1<<AFF_SNEAK, 0,0,0}}, -2,1,0,0,1,0,0,-3,10,0,0, const.c: "Ariel", {{1<<AFF_DETECT_MAGIC,0,0,0}}, -1,2,0,1,-1,1,0,-2,10,0,0,0,LANG_ELVEN const.c: "Slith", {{1<<AFF_INFRARED,0,0,0}}, 1,0,1,0,2,-1,0,6,-6,0,0, (1<<CLASS_MAGE) | (1<<8), LANG_DWARVEN const.c: "Mrrshan", {{1<<AFF_DETECT_INVIS,0,0,0}},1,2,-1,1,-2,-5,1,4,20,0,0, const.c:"half-ogre", "half-orc", "half-troll", "half-elf", "gith", "drow", /* 12 */ const.c:"sea-elf", "lizardman", "gnome", "minotaur", "sprite", "leprechaun", /* 18 */ const.c:"assassin", "warlock", "battlemage", "knight", "anti-paladin", "harper", const.c: { -5, -4, 0, 0 }, /* 0 */ const.c: { -5, -4, 3, 1 }, /* 1 */ const.c: { -3, -2, 3, 2 }, const.c: { -3, -1, 10, 3 }, /* 3 */ const.c: { -2, -1, 25, 4 }, const.c: { -2, -1, 55, 5 }, /* 5 */ const.c: { -1, 0, 80, 6 }, const.c: { -1, 0, 90, 7 }, const.c: { - 10 }, /* 15 */ const.c: { - 15 }, const.c: { - 20 }, const.c: { - 30 }, const.c: { - 40 }, const.c: { - 50 }, /* 20 */ const.c: { - 60 }, const.c: { - 75 }, const.c: { - 90 }, const.c: { -105 }, const.c: { -120 } /* 25 */ const.c: { -4, 20 }, /* 0 */ const.c: { -3, 25 }, /* 1 */ const.c: { -2, 30 }, const.c: { -2, 35 }, /* 3 */ const.c: { -1, 40 }, const.c: { -1, 45 }, /* 5 */ const.c: { -1, 50 }, const.c: { - 60 }, /* 0 */ const.c: { - 50 }, /* 1 */ const.c: { - 50 }, const.c: { - 40 }, const.c: { - 30 }, const.c: { - 20 }, /* 5 */ const.c: { - 10 }, const.c: { - 5 }, const.c: { - 1 }, const.c:/* Have to fix this up - not exactly sure how it works (Scryn) */ const.c: { - 10 }, /* 15 */ const.c: { - 15 }, const.c: { - 20 }, const.c: { - 30 }, const.c: { - 40 }, const.c: { - 50 }, /* 20 */ const.c: { - 60 }, const.c: { - 75 }, const.c: { - 90 }, const.c: { -105 }, const.c: { -120 } /* 25 */ const.c: { "slime mold juice", "green", { 0, 4, -8 } }, const.c: { "blood", "red", { 0, 2, -1 } }, const.c: { "salt water", "clear", { 0, 1, -2 } }, const.c:/* Weather constants - FB */ const.c: "Gale-like winds whip up the warm air", copyover.c:#define CH(descriptor) ((descriptor)->original ? \ copyover.c:(descriptor)->original : (descriptor)->character) copyover.c:COPYOVER_FILE - temporary data file used copyover.c:EXE_FILE - file to be exec'ed (i.e. the MUD) copyover.c:Note that I advance level 1 chars to level 2 - this is necessary in MERC and copyover.c:the connected state so that negative states represent logging-in, while as copyover.c:The command was inspired by the discussion on merc-l about how Fusion's MUD++ copyover.c:could reboot without players having to re-login :) copyover.c: /* do_asave (NULL, ""); - autosave changed areas */ copyover.c: sprintf (buf, "\n\r&R[&WINFO&R] &cCOPYOVER initiated by %s, sorry for the inconvenience!\n\r", ch->name); copyover.c: d_next = d->next; /* We delete from the list , so need to save this */ copyover.c: if (!d->character || d->connected > CON_PLAYING) /* drop those logging on */ copyover.c: write_to_descriptor (d->descriptor, "\n\rSorry, we are rebooting. Come back in a few minutes.\n\r", 0); copyover.c: fprintf (fp, "%d %s %s\n", d->descriptor, och->name, d->host); copyover.c: if (och->level == 1) copyover.c: write_to_descriptor (d->descriptor, "Since you are level one, and level one characters do not save, you gain a free level!\n\r", 0); copyover.c: och->level++; /* Advance_level doesn't do that */ copyover.c: write_to_descriptor (d->descriptor, buf, 0); copyover.c: fprintf (fp, "-1\n"); copyover.c: /* Close reserve and other always-open files and release other resources */ copyover.c: /* exec - descriptors are inherited */ copyover.c: /* Failed - sucessful exec will not return */ copyover.c:/* Recover from a copyover - load players */ copyover.c: unlink (COPYOVER_FILE); /* In case something crashes - doesn't prevent reading */ copyover.c: if (desc == -1) copyover.c: /* Write something, and check if it goes error-free */ copyover.c: d->host = str_dup (host); copyover.c: d->next = descriptor_list; copyover.c: d->connected = CON_COPYOVER_RECOVER; /* -15, so close_socket frees the char */ copyover.c: if (!d->character->in_room) copyover.c: d->character->in_room = get_room_index (ROOM_VNUM_TEMPLE); copyover.c: d->character->next = char_list; copyover.c: char_list = d->character; copyover.c: char_to_room (d->character, d->character->in_room); copyover.c: do_look (d->character, ""); copyover.c: act ("$n materializes!", d->character, NULL, NULL, TO_ROOM); copyover.c: d->connected = CON_PLAYING; crwrapper.c:#include "imc-mercbase.h" db.c: * -----------------------------------------------------------| (0...0) * db.c: * -----------------------------------------------------------| {o o} * db.c: * ------------------------------------------------------------------------ * db.c: * ------------------------------------------------------------------------ * db.c:/* spell casting skills -- Scion */ db.c:/* For styles? Trying to rebuild from some kind of accident here - Blod */ db.c:/* sharpen skill --Cronel */ db.c: * Semi-locals. db.c: boot_log( "---------------------[ Boot Log ]--------------------" ); db.c: if ( !gsn_first_spell && skill_table[x]->type == SKILL_SPELL ) db.c: if ( !gsn_first_skill && skill_table[x]->type == SKILL_SKILL ) db.c: if ( !gsn_first_weapon && skill_table[x]->type == SKILL_WEAPON ) db.c: if ( !gsn_first_tongue && skill_table[x]->type == SKILL_TONGUE ) db.c: auction->item = NULL; db.c: auction->hist_timer = 0; db.c: auction->history[x] = NULL; db.c: lhour = (current_time - 650336715) db.c: ASSIGN_GSN( gsn_sharpen, "sharpen" ); /* sharpen skill --Cronel */ db.c:/* hiscore shtuff -- Scion */ db.c: log_string( "Loading slay tables" ); /* Online slay tables - Samson 8-3-98 */ db.c:/* Morphs MUST be loaded after class and race tables are set up --Shaddai */ db.c: pArea->first_reset = NULL; db.c: pArea->last_reset = NULL; db.c: pArea->name = fread_string_nohash( fp ); db.c: pArea->author = STRALLOC( "unknown" ); db.c: pArea->filename = str_dup( strArea ); db.c: pArea->age = 15; db.c: pArea->nplayer = 0; db.c: pArea->low_r_vnum = 0; db.c: pArea->low_o_vnum = 0; db.c: pArea->low_m_vnum = 0; db.c: pArea->hi_r_vnum = 0; db.c: pArea->hi_o_vnum = 0; db.c: pArea->hi_m_vnum = 0; db.c: pArea->low_soft_range = 0; db.c: pArea->hi_soft_range = MAX_LEVEL; db.c: pArea->low_hard_range = 0; db.c: pArea->hi_hard_range = MAX_LEVEL; db.c: /* initialize weather data - FB */ db.c: CREATE(pArea->weather, WEATHER_DATA, 1); db.c: pArea->weather->temp = 0; db.c: pArea->weather->precip = 0; db.c: pArea->weather->wind = 0; db.c: pArea->weather->temp_vector = 0; db.c: pArea->weather->precip_vector = 0; db.c: pArea->weather->wind_vector = 0; db.c: pArea->weather->climate_temp = 2; db.c: pArea->weather->climate_precip = 2; db.c: pArea->weather->climate_wind = 2; db.c: pArea->weather->first_neighbor = NULL; db.c: pArea->weather->last_neighbor = NULL; db.c: pArea->weather->echo = NULL; db.c: pArea->weather->echo_color = AT_GREY; db.c: * the #AREA here. --Shaddai db.c: if ( tarea->author ) db.c: STRFREE( tarea->author ); db.c: tarea->author = fread_string( fp ); db.c: tarea->high_economy = fread_number( fp ); db.c: tarea->low_economy = fread_number( fp ); db.c: if ( tarea->resetmsg ) db.c: DISPOSE( tarea->resetmsg ); db.c: tarea->resetmsg = fread_string_nohash( fp ); db.c: tarea->flags = x1; db.c: tarea->reset_frequency = x2; db.c: tarea->age = x2; db.c: * Page is insert-sorted by keyword. -Thoric db.c: for ( tHelp = first_help; tHelp; tHelp = tHelp->next ) db.c: if ( pHelp->level == tHelp->level db.c: && strcmp(pHelp->keyword, tHelp->keyword) == 0 ) db.c: bug( "add_help: duplicate: %s. Deleting.", pHelp->keyword ); db.c: STRFREE( pHelp->text ); db.c: STRFREE( pHelp->keyword ); db.c: if ( (match=strcmp(pHelp->keyword[0]=='\'' ? pHelp->keyword+1 : pHelp->keyword, db.c: tHelp->keyword[0]=='\'' ? tHelp->keyword+1 : tHelp->keyword)) < 0 db.c: || (match == 0 && pHelp->level > tHelp->level) ) db.c: if ( !tHelp->prev ) db.c: tHelp->prev->next = pHelp; db.c: pHelp->prev = tHelp->prev; db.c: pHelp->next = tHelp; db.c: tHelp->prev = pHelp; db.c: pHelp->level = fread_number( fp ); db.c: pHelp->keyword = fread_string( fp ); db.c: if ( pHelp->keyword[0] == '$' ) db.c: STRFREE( pHelp->keyword ); db.c: pHelp->text = fread_string( fp ); db.c: if ( pHelp->keyword[0] == '\0' ) db.c: STRFREE( pHelp->text ); db.c: STRFREE( pHelp->keyword ); db.c: if ( !str_cmp( pHelp->keyword, "greeting" ) ) db.c: help_greeting = pHelp->text; db.c: if ( !str_cmp( pHelp->keyword, "greeting2" ) ) /* Josh */ db.c: help_greeting2 = pHelp->text; db.c: * Add a character to the list of all characters -Thoric db.c: pMobIndex->vnum = vnum; db.c: if ( !tarea->low_m_vnum ) db.c: tarea->low_m_vnum = vnum; db.c: if ( vnum > tarea->hi_m_vnum ) db.c: tarea->hi_m_vnum = vnum; db.c: pMobIndex->player_name = fread_string( fp ); db.c: pMobIndex->short_descr = fread_string( fp ); db.c: pMobIndex->long_descr = fread_string( fp ); db.c: pMobIndex->description = fread_string( fp ); db.c: pMobIndex->long_descr[0] = UPPER(pMobIndex->long_descr[0]); db.c: pMobIndex->description[0] = UPPER(pMobIndex->description[0]); db.c: pMobIndex->act = fread_bitvector( fp ); db.c: xSET_BIT(pMobIndex->act, ACT_IS_NPC); db.c: pMobIndex->affected_by = fread_bitvector( fp ); db.c: pMobIndex->pShop = NULL; db.c: pMobIndex->rShop = NULL; db.c: pMobIndex->alignment = fread_number( fp ); db.c: pMobIndex->level = fread_number( fp ); db.c: but it stops here - shogar) db.c: if(pMobIndex->level > (LEVEL_AVATAR + 5)) db.c: vnum,pMobIndex->level,LEVEL_AVATAR); db.c: pMobIndex->level=LEVEL_AVATAR; db.c: pMobIndex->mobthac0 = fread_number( fp ); db.c: pMobIndex->ac = fread_number( fp ); db.c: pMobIndex->hitnodice = fread_number( fp ); db.c: pMobIndex->hitsizedice = fread_number( fp ); db.c: pMobIndex->hitplus = fread_number( fp ); db.c: pMobIndex->damnodice = fread_number( fp ); db.c: pMobIndex->damsizedice = fread_number( fp ); db.c: pMobIndex->damplus = fread_number( fp ); db.c: pMobIndex->gold = fread_number( fp ); db.c: pMobIndex->exp = fread_number( fp ); db.c: /* pMobIndex->position = fread_number( fp ); */ db.c: pMobIndex->position = fread_number( fp ); db.c: if(pMobIndex->position<100){ db.c: switch(pMobIndex->position){ db.c: case 5: pMobIndex->position=6; break; db.c: case 6: pMobIndex->position=8; break; db.c: case 7: pMobIndex->position=9; break; db.c: case 8: pMobIndex->position=12; break; db.c: case 9: pMobIndex->position=13; break; db.c: case 10: pMobIndex->position=14; break; db.c: case 11: pMobIndex->position=15; break; db.c: pMobIndex->position-=100; db.c: /* pMobIndex->defposition = fread_number( fp ); */ db.c: pMobIndex->defposition = fread_number( fp ); db.c: if(pMobIndex->defposition<100){ db.c: switch(pMobIndex->defposition){ db.c: case 5: pMobIndex->defposition=6; break; db.c: case 6: pMobIndex->defposition=8; break; db.c: case 7: pMobIndex->defposition=9; break; db.c: case 8: pMobIndex->defposition=12; break; db.c: case 9: pMobIndex->defposition=13; break; db.c: case 10: pMobIndex->defposition=14; break; db.c: case 11: pMobIndex->defposition=15; break; db.c: pMobIndex->defposition-=100; db.c: pMobIndex->sex = fread_number( fp ); db.c: if ( letter == 'C' ) /* Realms complex mob -Thoric */ db.c: pMobIndex->perm_str = fread_number( fp ); db.c: pMobIndex->perm_int = fread_number( fp ); db.c: pMobIndex->perm_wis = fread_number( fp ); db.c: pMobIndex->perm_dex = fread_number( fp ); db.c: pMobIndex->perm_con = fread_number( fp ); db.c: pMobIndex->perm_cha = fread_number( fp ); db.c: pMobIndex->perm_lck = fread_number( fp ); db.c: pMobIndex->saving_poison_death = fread_number( fp ); db.c: pMobIndex->saving_wand = fread_number( fp ); db.c: pMobIndex->saving_para_petri = fread_number( fp ); db.c: pMobIndex->saving_breath = fread_number( fp ); db.c: pMobIndex->saving_spell_staff = fread_number( fp ); db.c: pMobIndex->race = x1; db.c: pMobIndex->class = x2; db.c: pMobIndex->height = x3; db.c: pMobIndex->weight = x4; db.c: pMobIndex->speaks = x5; db.c: pMobIndex->speaking = x6; db.c: pMobIndex->numattacks = x7; db.c: if ( !pMobIndex->speaks ) db.c: pMobIndex->speaks = race_table[pMobIndex->race]->language | LANG_COMMON; db.c: if ( !pMobIndex->speaking ) db.c: pMobIndex->speaking = race_table[pMobIndex->race]->language; db.c: pMobIndex->hitroll = x1; db.c: pMobIndex->damroll = x2; db.c: pMobIndex->xflags = x3; db.c: pMobIndex->resistant = x4; db.c: pMobIndex->immune = x5; db.c: pMobIndex->susceptible = x6; db.c: pMobIndex->attacks = x7; db.c: pMobIndex->defenses = x8; db.c: pMobIndex->hitroll = fread_number(fp); db.c: pMobIndex->damroll = fread_number(fp); db.c: pMobIndex->xflags = fread_number(fp); db.c: pMobIndex->resistant = fread_number(fp); db.c: pMobIndex->immune = fread_number(fp); db.c: pMobIndex->susceptible = fread_number(fp); db.c: pMobIndex->attacks = fread_bitvector(fp); db.c: pMobIndex->defenses = fread_bitvector(fp); db.c: pMobIndex->perm_str = 13; db.c: pMobIndex->perm_dex = 13; db.c: pMobIndex->perm_int = 13; db.c: pMobIndex->perm_wis = 13; db.c: pMobIndex->perm_cha = 13; db.c: pMobIndex->perm_con = 13; db.c: pMobIndex->perm_lck = 13; db.c: pMobIndex->race = 0; db.c: pMobIndex->class = 3; db.c: pMobIndex->xflags = 0; db.c: pMobIndex->resistant = 0; db.c: pMobIndex->immune = 0; db.c: pMobIndex->susceptible = 0; db.c: pMobIndex->numattacks = 0; db.c: xCLEAR_BITS(pMobIndex->attacks); db.c: xCLEAR_BITS(pMobIndex->defenses); db.c: pMobIndex->attacks = 0; db.c: pMobIndex->defenses = 0; db.c: pMobIndex->next = mob_index_hash[iHash]; db.c: pObjIndex->vnum = vnum; db.c: if ( !tarea->low_o_vnum ) db.c: tarea->low_o_vnum = vnum; db.c: if ( vnum > tarea->hi_o_vnum ) db.c: tarea->hi_o_vnum = vnum; db.c: pObjIndex->name = fread_string( fp ); db.c: pObjIndex->short_descr = fread_string( fp ); db.c: pObjIndex->description = fread_string( fp ); db.c: pObjIndex->action_desc = fread_string( fp ); db.c: /*pObjIndex->short_descr[0] = LOWER(pObjIndex->short_descr[0]);*/ db.c: pObjIndex->description[0] = UPPER(pObjIndex->description[0]); db.c: pObjIndex->item_type = fread_number(fp); db.c: pObjIndex->extra_flags = fread_bitvector(fp); db.c: pObjIndex->wear_flags = x1; db.c: pObjIndex->layers = x2; db.c: pObjIndex->value[0] = x1; db.c: pObjIndex->value[1] = x2; db.c: pObjIndex->value[2] = x3; db.c: pObjIndex->value[3] = x4; db.c: pObjIndex->value[4] = x5; db.c: pObjIndex->value[5] = x6; db.c: pObjIndex->weight = fread_number( fp ); db.c: pObjIndex->weight = UMAX( 1, pObjIndex->weight ); db.c: pObjIndex->cost = fread_number( fp ); db.c: pObjIndex->rent = fread_number( fp ); /* unused */ db.c: switch ( pObjIndex->item_type ) db.c: pObjIndex->value[1] = skill_lookup ( fread_word( fp )) ; db.c: pObjIndex->value[2] = skill_lookup ( fread_word( fp )) ; db.c: pObjIndex->value[3] = skill_lookup ( fread_word( fp )) ; db.c: pObjIndex->value[3] = skill_lookup ( fread_word( fp )) ; db.c: pObjIndex->value[4] = skill_lookup ( fread_word( fp )) ; db.c: pObjIndex->value[5] = skill_lookup ( fread_word( fp )) ; db.c: paf->type = -1; db.c: paf->duration = -1; db.c: paf->location = fread_number( fp ); db.c: if ( paf->location == APPLY_WEAPONSPELL db.c: || paf->location == APPLY_WEARSPELL db.c: || paf->location == APPLY_REMOVESPELL db.c: || paf->location == APPLY_STRIPSN db.c: || paf->location == APPLY_RECURRINGSPELL ) db.c: paf->modifier = slot_lookup( fread_number(fp) ); db.c: paf->modifier = fread_number( fp ); db.c: xCLEAR_BITS(paf->bitvector); db.c: LINK( paf, pObjIndex->first_affect, pObjIndex->last_affect, db.c: ed->keyword = fread_string( fp ); db.c: ed->description = fread_string( fp ); db.c: LINK( ed, pObjIndex->first_extradesc, pObjIndex->last_extradesc, db.c: switch ( pObjIndex->item_type ) db.c: pObjIndex->value[1] = slot_lookup( pObjIndex->value[1] ); db.c: pObjIndex->value[2] = slot_lookup( pObjIndex->value[2] ); db.c: pObjIndex->value[3] = slot_lookup( pObjIndex->value[3] ); db.c: pObjIndex->value[3] = slot_lookup( pObjIndex->value[3] ); db.c: pObjIndex->value[4] = slot_lookup( pObjIndex->value[4] ); db.c: pObjIndex->value[5] = slot_lookup( pObjIndex->value[5] ); db.c: pObjIndex->next = obj_index_hash[iHash]; db.c: if ( tarea->first_reset ) db.c: for ( rtmp = tarea->first_reset; rtmp; rtmp = rtmp->next ) db.c: sprintf( buf, "Cleaning resets: %s", tarea->name ); db.c: boot_log( "Load_resets: %s (%d) bad command '%c'.", tarea->filename, count, letter ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, arg3 ); db.c: tarea->filename, count, letter, arg1 ); db.c: tarea->filename, count, letter, arg3 ); db.c: tarea->filename, count, letter, arg1 ); db.c: tarea->filename, count, arg3 );} db.c: tarea->filename, count, letter, arg1 ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, door ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, arg2 & BIT_RESET_TYPE_MASK ); db.c: tarea->filename, count, arg1 ); db.c: || !IS_SET( pexit->exit_info, EX_ISDOOR ) ) db.c: tarea->filename, count, arg2 ); db.c: tarea->filename, count, arg3 ); db.c: tarea->filename, count, arg1 ); db.c: tarea->filename, count, arg2 ); db.c: if( room->compress ) db.c: if( !room->description ) db.c: length = strlen( room->description ); db.c: room->desc_size = length; db.c:// room->desc_alloc = length*2+15; db.c: room->desc_alloc = length*2+15; db.c: CREATE( room->compress_desc, unsigned char, room->desc_alloc ); db.c: s->next_in = room->description; db.c: s->avail_in = length; db.c: s->next_out = room->compress_desc; db.c: s->avail_out = room->desc_alloc; db.c: s->zalloc = zlib_alloc; db.c: s->zfree = zlib_free; db.c: s->opaque = NULL; db.c: DISPOSE( room->compress_desc ); db.c:// compress( room->compress_desc, (length+(length*.5)+24) , room->description, length ); db.c: room->compress = s; db.c: while( s->avail_in ) db.c: s->avail_out = room->desc_alloc - (s->next_out - room->compress_desc); db.c: if( s->avail_out ) db.c: s->next_out = room->compress_desc; db.c: status = deflate( room->compress, Z_FINISH ); db.c: // bug( "Failed compressing of room! %d", room->vnum ); db.c: bug( "stream error: %d", room->vnum ); db.c: DISPOSE( room->compress_desc ); db.c: bug( "buf error: %d", room->vnum ); db.c: DISPOSE( room->compress_desc ); db.c: bug( "Failed compressing of room! %d", room->vnum ); db.c: DISPOSE( room->compress_desc ); db.c: deflateEnd( room->compress ); db.c: room->desc_alloc = strlen( room->compress_desc ); db.c: RECREATE( room->compress_desc, unsigned char, room->desc_alloc ); db.c: /* Get rid of old description! -- Kratas */ db.c: DISPOSE( room->description ); db.c: rdecomp->room = room; db.c: room->rdecomp = rdecomp; db.c: rdecomp->ttl_decomp = 8; db.c: rdecomp->room->rdecomp = NULL; db.c: DISPOSE( rdecomp->room->description ); db.c: if( !room->compress ) db.c: if( room->description ) db.c: room->rdecomp->ttl_decomp = 8; db.c: /* This here will soon be obsolete -- Kratas */ db.c: if( room->description ) db.c: DISPOSE( room->description ); db.c: CREATE( room->description, unsigned char, room->desc_size ); db.c: if( !room->description ) db.c: CREATE( room->description, unsigned char, room->desc_size ); db.c: s = room->compress; db.c: s->next_in = room->compress_desc; db.c: s->next_out = room->description; db.c: s->avail_in = strlen( room->compress_desc )+1; db.c: s->avail_out = room->desc_size; db.c: DISPOSE( room->compress_desc ); db.c: DISPOSE( room->description ); db.c: room->compress = s; db.c:// status = uncompress( room->description, room->desc_size, db.c: if( !room->compress ) db.c: room->compress->avail_in = 0; db.c: room->compress->next_in = dummy; db.c: if( deflate( room->compress, Z_FINISH) != Z_STREAM_END ) db.c: deflateEnd( room->compress ); db.c: DISPOSE( room->compress_desc ); db.c: DISPOSE( room->compress ); db.c: for( rdecomp = first_decompress ; rdecomp ; rdecomp = rdecomp->next ) db.c: if( rdecomp->ttl_decomp <= 0 ) db.c: bug( "room_update: Decompress room: %d.", rdecomp->room->vnum ); db.c: rdecomp->ttl_decomp -= 1; db.c: pRoomIndex->first_person = NULL; db.c: pRoomIndex->last_person = NULL; db.c: pRoomIndex->first_content = NULL; db.c: pRoomIndex->last_content = NULL; db.c: pRoomIndex->area = tarea; db.c: pRoomIndex->vnum = vnum; db.c: pRoomIndex->first_extradesc = NULL; db.c: pRoomIndex->last_extradesc = NULL; db.c: if ( !tarea->low_r_vnum ) db.c: tarea->low_r_vnum = vnum; db.c: if ( vnum > tarea->hi_r_vnum ) db.c: tarea->hi_r_vnum = vnum; db.c: pRoomIndex->name = fread_string( fp ); db.c: pRoomIndex->description = fread_string_nohash( fp ); db.c: DISPOSE( pRoomIndex->description ); */ db.c: pRoomIndex->room_flags = x2; db.c: pRoomIndex->sector_type = x3; db.c: pRoomIndex->tele_delay = x4; db.c: pRoomIndex->tele_vnum = x5; db.c: pRoomIndex->tunnel = x6; db.c: if (pRoomIndex->sector_type < 0 || pRoomIndex->sector_type == SECT_MAX) db.c: pRoomIndex->sector_type); db.c: pRoomIndex->sector_type = 1; db.c: pRoomIndex->light = 0; db.c: pRoomIndex->first_exit = NULL; db.c: pRoomIndex->last_exit = NULL; db.c: pexit->description = fread_string( fp ); db.c: pexit->keyword = fread_string( fp ); db.c: pexit->exit_info = 0; db.c: pexit->key = x2; db.c: pexit->vnum = x3; db.c: pexit->vdir = door; db.c: pexit->distance = x4; db.c: pexit->pulltype = x5; db.c: pexit->pull = x6; db.c: case 1: pexit->exit_info = EX_ISDOOR; break; db.c: case 2: pexit->exit_info = EX_ISDOOR | EX_PICKPROOF; break; db.c: default: pexit->exit_info = locks; db.c: ed->keyword = fread_string( fp ); db.c: ed->description = fread_string( fp ); db.c: LINK( ed, pRoomIndex->first_extradesc, pRoomIndex->last_extradesc, db.c: map->vnum = fread_number( fp ); db.c: map->x = fread_number( fp ); db.c: map->y = fread_number( fp ); db.c: map->entry = fread_letter( fp ); db.c: pRoomIndex->map = map; db.c: if( (map_index = get_map_index(map->vnum)) == NULL ) db.c: map_index->vnum = map->vnum; db.c: map_index->next = first_map; db.c: map_index->map_of_vnums[i][j] = -1; */ db.c: /* map_index->map_of_ptrs[i][j] = NULL; */ db.c: if( (map->y <0) || (map->y >48) ) db.c: bug("Map y coord out of range. Room %d\n\r", map->y); db.c: if( (map->x <0) || (map->x >78) ) db.c: bug("Map x coord out of range. Room %d\n\r", map->x); db.c: if( (map->x >0) db.c: &&(map->x <80) db.c: &&(map->y >0) db.c: &&(map->y <48) ) db.c: map_index->map_of_vnums[map->y][map->x]=pRoomIndex->vnum; db.c: pRoomIndex->next = room_index_hash[iHash]; db.c: pShop->keeper = fread_number( fp ); db.c: if ( pShop->keeper == 0 ) db.c: pShop->buy_type[iTrade] = fread_number( fp ); db.c: pShop->profit_buy = fread_number( fp ); db.c: pShop->profit_sell = fread_number( fp ); db.c: pShop->profit_buy = URANGE( pShop->profit_sell+5, pShop->profit_buy, 1000 ); db.c: pShop->profit_sell = URANGE( 0, pShop->profit_sell, pShop->profit_buy-5 ); db.c: pShop->open_hour = fread_number( fp ); db.c: pShop->close_hour = fread_number( fp ); db.c: pMobIndex = get_mob_index( pShop->keeper ); db.c: pMobIndex->pShop = pShop; db.c: last_shop->next = pShop; db.c: pShop->next = NULL; db.c: pShop->prev = last_shop; db.c: * Load a repair shop section. -Thoric db.c: rShop->keeper = fread_number( fp ); db.c: if ( rShop->keeper == 0 ) db.c: rShop->fix_type[iFix] = fread_number( fp ); db.c: rShop->profit_fix = fread_number( fp ); db.c: rShop->shop_type = fread_number( fp ); db.c: rShop->open_hour = fread_number( fp ); db.c: rShop->close_hour = fread_number( fp ); db.c: pMobIndex = get_mob_index( rShop->keeper ); db.c: pMobIndex->rShop = rShop; db.c: last_repair->next = rShop; db.c: rShop->next = NULL; db.c: rShop->prev = last_repair; db.c: pMobIndex->spec_fun = spec_lookup ( fread_word ( fp ) ); db.c: if ( pMobIndex->spec_fun == 0 ) db.c: bug( "Load_specials: 'M': vnum %d.", pMobIndex->vnum ); db.c: tarea->low_soft_range = x1; db.c: tarea->hi_soft_range = x2; db.c: tarea->low_hard_range = x3; db.c: tarea->hi_hard_range = x4; db.c: tarea->weather->climate_temp = fread_number(fp); db.c: tarea->weather->climate_precip = fread_number(fp); db.c: tarea->weather->climate_wind = fread_number(fp); db.c: new->next = NULL; db.c: new->prev = NULL; db.c: new->address = NULL; db.c: new->name = fread_string(fp); db.c: tarea->weather->first_neighbor, db.c: tarea->weather->last_neighbor, db.c: for ( tarea = first_area; tarea; tarea = tarea->next ) db.c: if ( tarea->high_economy > 0 || tarea->low_economy > 10000 ) db.c: rng = tarea->hi_soft_range - tarea->low_soft_range; db.c: for ( idx = tarea->low_m_vnum; idx < tarea->hi_m_vnum; idx++ ) db.c: boost_economy( tarea, mob->gold * 10 ); db.c: pRoomIndex = pRoomIndex->next ) db.c: for ( pexit = pRoomIndex->first_exit; pexit; pexit = pexit_next ) db.c: pexit_next = pexit->next; db.c: pexit->rvnum = pRoomIndex->vnum; db.c: if ( pexit->vnum <= 0 db.c: || (pexit->to_room=get_room_index(pexit->vnum)) == NULL ) db.c: pRoomIndex->vnum, dir_name[pexit->vdir], pexit->vnum ); db.c: bug( "Deleting %s exit in room %d", dir_name[pexit->vdir], db.c: pRoomIndex->vnum ); db.c: SET_BIT( pRoomIndex->room_flags, ROOM_NO_MOB ); db.c: /* Set all the rexit pointers -Thoric */ db.c: pRoomIndex = pRoomIndex->next ) db.c: for ( pexit = pRoomIndex->first_exit; pexit; pexit = pexit->next ) db.c: if ( pexit->to_room && !pexit->rexit ) db.c: rev_exit = get_exit_to( pexit->to_room, rev_dir[pexit->vdir], pRoomIndex->vnum ); db.c: pexit->rexit = rev_exit; db.c: rev_exit->rexit = pexit; db.c: * Get diku-compatable exit by number -Thoric db.c: for ( pexit = room->first_exit; pexit; pexit = pexit->next ) db.c: d1 = (*xit1)->vdir; db.c: d2 = (*xit2)->vdir; db.c: return -1; db.c: for ( pexit = room->first_exit; pexit; pexit = pexit->next ) db.c: exits[x]->prev = exits[x-1]; db.c: exits[x]->prev = NULL; db.c: room->first_exit = exits[x]; db.c: if ( x >= (nexits - 1) ) db.c: exits[x]->next = NULL; db.c: room->last_exit = exits[x]; db.c: exits[x]->next = exits[x+1]; db.c: for ( pexit = room->first_exit; pexit; pexit = pexit->next ) db.c: vdirs[nexits++] = pexit->vdir; db.c: while ( vdirs[(d1 = number_range( d0, nexits - 1 ))] > maxdir db.c: for ( pexit = room->first_exit; pexit; pexit = pexit->next ) db.c: pexit->vdir = vdirs[count++]; db.c: for ( pArea = first_area; pArea; pArea = pArea->next ) db.c: int reset_age = pArea->reset_frequency ? pArea->reset_frequency : 15; db.c: if( !IS_SET( pArea->flags, AFLAG_PLR_LOADED ) ) db.c: if ( (reset_age == -1 && pArea->age == -1) db.c: || ++pArea->age < (reset_age-1) ) db.c: if( pArea->ttl == 0 && pArea->nplayer < 1 ) db.c: if( IS_SET( pArea->flags, AFLAG_RESET_ON_BOOT ) ) db.c: pArea->ttl = -1; db.c: sprintf( buf, "Unloading %s.", pArea->filename ); db.c: for( vnum = pArea->low_r_vnum ; vnum <= pArea->hi_r_vnum ; db.c: if( IS_SET( room->room_flags, ROOM_DONATION ) db.c: || IS_SET( room->room_flags, ROOM_CLANSTOREROOM ) ) db.c: for( victim = room->first_person ; victim ; db.c: vic_next = victim->next; db.c: for ( obj = room->first_content; obj; obj = obj_next ) db.c: obj_next = obj->next_content; db.c: if( obj->item_type == ITEM_CORPSE_PC ) db.c: REMOVE_BIT( pArea->flags, AFLAG_PLR_LOADED ); db.c: else if( pArea->nplayer > 0 ) db.c: pArea->ttl = -1; db.c: if( pArea->ttl > 0 ) db.c: pArea->ttl--; db.c: if ( pArea->nplayer > 0 && pArea->age == (reset_age-1) ) db.c: if ( pArea->resetmsg ) db.c: sprintf( buf, "%s\n\r", pArea->resetmsg ); db.c: for ( pch = first_char; pch; pch = pch->next ) db.c: && pch->in_room db.c: && pch->in_room->area == pArea db.c: && (pch->desc db.c: && pch->desc->connected == CON_PLAYING ) ) db.c:/* -- Don't reset the area if players are in it. -- Scion */ db.c:/* NEVER RESET if the total number of objects is less than the number of areas * 60 -- Scion */ db.c: if ( (pArea->nplayer == 0 || pArea->age >= reset_age) && db.c: fprintf( lfp, "Resetting: %s\n", pArea->filename ); db.c: if ( reset_age == -1 ) db.c: pArea->age = -1; db.c: pArea->age = number_range( 0, reset_age / 5 ); db.c: if ( pRoomIndex != NULL && pArea == pRoomIndex->area db.c: && pArea->reset_frequency == 0 ) db.c: pArea->age = 15 - 3; db.c: mob->pIndexData = pMobIndex; db.c: mob->editor = NULL; db.c: mob->name = QUICKLINK( pMobIndex->player_name ); db.c: mob->short_descr = QUICKLINK( pMobIndex->short_descr ); db.c: mob->long_descr = QUICKLINK( pMobIndex->long_descr ); db.c: mob->description = QUICKLINK( pMobIndex->description ); db.c: mob->spec_fun = pMobIndex->spec_fun; db.c: mob->mpscriptpos = 0; db.c: mob->level = number_fuzzy( pMobIndex->level ); db.c: mob->act = pMobIndex->act; db.c: if ( xIS_SET( mob->act, ACT_MOBINVIS) ) db.c: mob->mobinvis = mob->level; db.c: mob->affected_by = pMobIndex->affected_by; db.c: mob->alignment = pMobIndex->alignment; db.c: mob->sex = pMobIndex->sex; db.c: * was: if ( !pMobIndex->ac ) db.c: if ( pMobIndex->ac ) db.c: mob->armor = pMobIndex->ac; db.c: mob->armor = interpolate( mob->level, 100, -100 ); db.c: if ( !pMobIndex->hitnodice ) db.c: mob->max_hit = mob->level * 8 + number_range( db.c: mob->level * mob->level / 4, db.c: mob->level * mob->level ); db.c: mob->max_hit = pMobIndex->hitnodice * number_range(1, pMobIndex->hitsizedice ) db.c: + pMobIndex->hitplus; db.c: mob->hit = mob->max_hit; db.c: /* lets put things back the way they used to be! -Thoric */ db.c: mob->gold = pMobIndex->gold; db.c: mob->exp = pMobIndex->exp; db.c: mob->position = pMobIndex->position; db.c: mob->defposition = pMobIndex->defposition; db.c: mob->barenumdie = pMobIndex->damnodice; db.c: mob->baresizedie = pMobIndex->damsizedice; db.c: mob->mobthac0 = pMobIndex->mobthac0; db.c: mob->hitplus = pMobIndex->hitplus; db.c: mob->damplus = pMobIndex->damplus; db.c: mob->perm_str = pMobIndex->perm_str; db.c: mob->perm_dex = pMobIndex->perm_dex; db.c: mob->perm_wis = pMobIndex->perm_wis; db.c: mob->perm_int = pMobIndex->perm_int; db.c: mob->perm_con = pMobIndex->perm_con; db.c: mob->perm_cha = pMobIndex->perm_cha; db.c: mob->perm_lck = pMobIndex->perm_lck; db.c: mob->hitroll = pMobIndex->hitroll; db.c: mob->damroll = pMobIndex->damroll; db.c: mob->race = pMobIndex->race; db.c: mob->class = pMobIndex->class; db.c: mob->xflags = pMobIndex->xflags; db.c: mob->saving_poison_death = pMobIndex->saving_poison_death; db.c: mob->saving_wand = pMobIndex->saving_wand; db.c: mob->saving_para_petri = pMobIndex->saving_para_petri; db.c: mob->saving_breath = pMobIndex->saving_breath; db.c: mob->saving_spell_staff = pMobIndex->saving_spell_staff; db.c: mob->height = pMobIndex->height; db.c: mob->weight = pMobIndex->weight; db.c: mob->resistant = pMobIndex->resistant; db.c: mob->immune = pMobIndex->immune; db.c: mob->susceptible = pMobIndex->susceptible; db.c: mob->attacks = pMobIndex->attacks; db.c: mob->defenses = pMobIndex->defenses; db.c: mob->numattacks = pMobIndex->numattacks; db.c: mob->speaks = pMobIndex->speaks; db.c: mob->speaking = pMobIndex->speaking; db.c: * Perhaps add this to the index later --Shaddai db.c: xCLEAR_BITS(mob->no_affected_by); db.c: mob->no_resistant = 0; db.c: mob->no_immune = 0; db.c: mob->no_susceptible = 0; db.c: pMobIndex->count++; db.c: obj->pIndexData = pObjIndex; db.c: obj->in_room = NULL; db.c: obj->level = level; db.c: obj->wear_loc = -1; db.c: obj->count = 1; db.c: cur_obj_serial = UMAX((cur_obj_serial + 1 ) & (BV30-1), 1); db.c: obj->serial = obj->pIndexData->serial = cur_obj_serial; db.c: obj->name = QUICKLINK( pObjIndex->name ); db.c: obj->short_descr = QUICKLINK( pObjIndex->short_descr ); db.c: obj->description = QUICKLINK( pObjIndex->description ); db.c: obj->action_desc = QUICKLINK( pObjIndex->action_desc ); db.c: obj->item_type = pObjIndex->item_type; db.c: obj->extra_flags = pObjIndex->extra_flags; db.c: obj->wear_flags = pObjIndex->wear_flags; db.c: obj->value[0] = pObjIndex->value[0]; db.c: obj->value[1] = pObjIndex->value[1]; db.c: obj->value[2] = pObjIndex->value[2]; db.c: obj->value[3] = pObjIndex->value[3]; db.c: obj->value[4] = pObjIndex->value[4]; db.c: obj->value[5] = pObjIndex->value[5]; db.c: obj->weight = pObjIndex->weight; db.c: obj->cost = pObjIndex->cost; db.c: obj->cost = number_fuzzy( 10 ) db.c: switch ( obj->item_type ) db.c: bug( "Read_object: vnum %d bad type.", pObjIndex->vnum ); db.c: bug( "------------------------> ", obj->item_type ); db.c: * optional food condition (rotting food) -Thoric db.c: if ( obj->value[4] ) db.c: obj->timer = obj->value[4]; db.c: obj->timer = obj->value[1]; db.c: obj->value[3] = number_fuzzy( obj->value[3] ); db.c: obj->value[0] = number_fuzzy( obj->value[0] ); db.c: obj->value[0] = number_fuzzy( obj->value[0] ); db.c: obj->value[1] = number_fuzzy( obj->value[1] ); db.c: obj->value[2] = obj->value[1]; db.c: if ( obj->value[1] && obj->value[2] ) db.c: obj->value[2] *= obj->value[1]; db.c: obj->value[1] = number_fuzzy( number_fuzzy( 1 * level / 4 + 2 ) ); db.c: obj->value[2] = number_fuzzy( number_fuzzy( 3 * level / 4 + 6 ) ); db.c: if (obj->value[0] == 0) db.c: obj->value[0] = INIT_WEAPON_CONDITION; db.c: if ( obj->value[0] == 0 ) db.c: obj->value[0] = number_fuzzy( level / 4 + 2 ); db.c: if (obj->value[1] == 0) db.c: obj->value[1] = obj->value[0]; db.c: obj->value[0] = number_fuzzy( number_fuzzy( obj->value[0] ) ); db.c: obj->value[0] = obj->cost; db.c: if ( obj->value[0] == 0 ) db.c: obj->value[0] = 1; db.c: ++pObjIndex->count; db.c: ch->editor = NULL; db.c: ch->hunting = NULL; db.c: ch->fearing = NULL; db.c: ch->hating = NULL; db.c: ch->name = NULL; db.c: ch->short_descr = NULL; db.c: ch->long_descr = NULL; db.c: ch->description = NULL; db.c: ch->next = NULL; db.c: ch->prev = NULL; db.c: ch->reply = NULL; db.c: ch->retell = NULL; db.c: ch->first_carrying = NULL; db.c: ch->last_carrying = NULL; db.c: ch->next_in_room = NULL; db.c: ch->prev_in_room = NULL; db.c: ch->fighting = NULL; db.c: ch->switched = NULL; db.c: ch->first_affect = NULL; db.c: ch->last_affect = NULL; db.c: ch->prev_cmd = NULL; /* maps */ db.c: ch->last_cmd = NULL; db.c: ch->dest_buf = NULL; db.c: ch->alloc_ptr = NULL; db.c: ch->spare_ptr = NULL; db.c: ch->mount = NULL; db.c: ch->morph = NULL; db.c: xCLEAR_BITS(ch->affected_by); db.c: ch->logon = current_time; db.c: ch->armor = 100; db.c: ch->position = POS_STANDING; db.c: ch->practice = 0; db.c: ch->hit = 20; db.c: ch->max_hit = 20; db.c: ch->mana = 100; db.c: ch->max_mana = 100; db.c: ch->move = 100; db.c: ch->max_move = 100; db.c: ch->height = 72; db.c: ch->weight = 180; db.c: ch->xflags = 0; db.c: ch->race = 0; db.c: ch->class = 3; db.c: ch->class2 = 0; db.c: ch->level2 = -1; db.c: ch->speaking = LANG_COMMON; db.c: ch->speaks = LANG_COMMON; db.c: ch->barenumdie = 1; db.c: ch->baresizedie = 4; db.c: ch->substate = 0; db.c: ch->tempnum = 0; db.c: ch->perm_str = 13; db.c: ch->perm_dex = 13; db.c: ch->perm_int = 13; db.c: ch->perm_wis = 13; db.c: ch->perm_cha = 13; db.c: ch->perm_con = 13; db.c: ch->perm_lck = 13; db.c: ch->mod_str = 0; db.c: ch->mod_dex = 0; db.c: ch->mod_int = 0; db.c: ch->mod_wis = 0; db.c: ch->mod_cha = 0; db.c: ch->mod_con = 0; db.c: ch->mod_lck = 0; db.c: ch->pagelen = 24; /* BUILD INTERFACE */ db.c: ch->inter_page = NO_PAGE; /* BUILD INTERFACE */ db.c: ch->inter_type = NO_TYPE; /* BUILD INTERFACE */ db.c: ch->inter_editing = NULL; /* BUILD INTERFACE */ db.c: ch->inter_editing_vnum = -1; /* BUILD INTERFACE */ db.c: ch->inter_substate = SUB_NORTH; /* BUILD INTERFACE */ db.c: if ( ch->desc ) db.c: if ( ch->morph ) db.c: free_char_morph( ch->morph ); db.c: while ( (obj = ch->last_carrying) != NULL ) db.c: while ( (paf = ch->last_affect) != NULL ) db.c: while ( (timer = ch->first_timer) != NULL ) db.c: if ( ch->editor ) db.c: STRFREE( ch->name ); db.c: STRFREE( ch->short_descr ); db.c: STRFREE( ch->long_descr ); db.c: STRFREE( ch->description ); db.c: if ( ch->inter_editing ) db.c: DISPOSE( ch->inter_editing ); db.c: if ( ch->pnote ) db.c: free_note( ch->pnote ); db.c: if ( ch->pcdata ) db.c: for(temp = ch->pcdata->first_ignored; temp; temp = next) db.c: next = temp->next; db.c: UNLINK(temp, ch->pcdata->first_ignored, db.c: ch->pcdata->last_ignored, next, prev); db.c: STRFREE(temp->name); db.c: STRFREE( ch->pcdata->filename ); db.c: STRFREE( ch->pcdata->deity_name ); db.c: STRFREE( ch->pcdata->clan_name ); db.c: STRFREE( ch->pcdata->council_name ); db.c: STRFREE( ch->pcdata->council2_name ); db.c: DISPOSE( ch->pcdata->pwd ); /* no hash */ db.c: DISPOSE( ch->pcdata->bamfin ); /* no hash */ db.c: DISPOSE( ch->pcdata->bamfout ); /* no hash */ db.c: DISPOSE( ch->pcdata->rank ); db.c: STRFREE( ch->pcdata->title ); db.c: STRFREE( ch->pcdata->bio ); db.c: STRFREE( ch->pcdata->hair_color ); db.c: STRFREE( ch->pcdata->eye_color ); db.c: STRFREE( ch->pcdata->skin_tone ); db.c: STRFREE( ch->pcdata->ch_build ); db.c: STRFREE( ch->pcdata->hair_length ); db.c: STRFREE( ch->pcdata->ch_height ); db.c: if( ch->pcdata->wedto ) db.c: STRFREE( ch->pcdata->wedto ); db.c: if( ch->pcdata->in_progress ) db.c: free_global_note( ch->pcdata->in_progress ); db.c: if( ch->pcdata->extraname ) db.c: STRFREE( ch->pcdata->extraname ); db.c: if( ch->pcdata->lastname ) db.c: STRFREE( ch->pcdata->lastname ); db.c: for( count = 0 ; ch->pcdata->alias[count] ; count++ ) db.c: DISPOSE( ch->pcdata->alias[count] ); db.c: DISPOSE( ch->pcdata->alias_sub[count] ); db.c: if( ch->pcdata->outputprefix ) db.c: DISPOSE( ch->pcdata->outputprefix ); db.c: if( ch->pcdata->outputsuffix ) db.c: DISPOSE( ch->pcdata->outputsuffix ); db.c: for( alias = ch->pcdata->first_alias ; alias ; alias = alias_next ) db.c: alias_next = alias->next; db.c: STRFREE( alias->alias ); db.c: STRFREE( alias->name ); db.c: if( ch->pcdata->arena ) db.c: DISPOSE( ch->pcdata->arena ); db.c: if( ch->pcdata->say_history[x] ) db.c: DISPOSE( ch->pcdata->say_history[x] ); db.c: if ( ch->pcdata->rreply ) db.c: DISPOSE( ch->pcdata->rreply ); /* no hash */ db.c: if ( ch->pcdata->rreply_name ) db.c: DISPOSE( ch->pcdata->rreply_name ); /* no hash */ db.c: DISPOSE( ch->pcdata->bestowments ); /* no hash */ db.c: DISPOSE( ch->pcdata->homepage ); /* no hash */ db.c: DISPOSE( ch->pcdata->email ); /* no hash */ db.c: STRFREE( ch->pcdata->authed_by ); db.c: STRFREE( ch->pcdata->prompt ); db.c: STRFREE( ch->pcdata->fprompt ); db.c: if ( ch->pcdata->helled_by ) db.c: STRFREE( ch->pcdata->helled_by ); db.c: if ( ch->pcdata->subprompt ) db.c: STRFREE( ch->pcdata->subprompt ); db.c: if(ch->pcdata->tell_history) db.c: if(ch->pcdata->tell_history[i]) db.c: STRFREE(ch->pcdata->tell_history[i]); db.c: DISPOSE(ch->pcdata->tell_history); db.c: DISPOSE(ch->pcdata->ice_listen); db.c: DISPOSE( ch->pcdata ); db.c: for ( mpact = ch->mpact; mpact; mpact = mpact_next ) db.c: mpact_next = mpact->next; db.c: DISPOSE( mpact->buf ); db.c: for ( comments = ch->comments; comments; comments = comments_next ) db.c: comments_next = comments->next; db.c: STRFREE( comments->text ); db.c: STRFREE( comments->to_list ); db.c: STRFREE( comments->subject ); db.c: STRFREE( comments->sender ); db.c: STRFREE( comments->date ); db.c: for ( ; ed; ed = ed->next ) db.c: if ( is_name( name, ed->keyword ) ) db.c: return ed->description; db.c: pMobIndex = pMobIndex->next ) db.c: if ( pMobIndex->vnum == vnum ) db.c: pObjIndex = pObjIndex->next ) db.c: if ( pObjIndex->vnum == vnum ) db.c: pRoomIndex = pRoomIndex->next ) db.c: if ( pRoomIndex->vnum == vnum ) db.c: * should include player files, and in-progress areas that are not loaded db.c: * -- Altrag db.c: else if ( c == '-' ) db.c: number = number * 10 + c - '0'; db.c: number = 0 - number; db.c: * custom str_dup using create -Thoric db.c: if ( ln >= (MAX_STRING_LENGTH - 1) ) db.c: if ( ln >= (MAX_STRING_LENGTH - 1) ) db.c: * Read to end of line into static buffer -Thoric db.c: if ( ln >= (MAX_STRING_LENGTH - 1) ) db.c: send_to_char_color( "\n\r&wSystem Memory [arguments - hash, check, showhigh]\n\r", ch ); db.c: ch_printf_color( ch, "&wPotion Val: &W%-16d &wScribe/Brew: &W%d/%d\n\r", db.c: ch_printf_color( ch, "&wPill Val: &W%-16d &wGlobal loot: &W%d\n\r", db.c: hash = -1; db.c: if ( hash != -1 ) db.c: case 0: number -= 1; break; db.c: if ( ( to = to - from + 1 ) <= 1 ) db.c: while ( ( number = number_mm( ) & (power - 1) ) >= to ) db.c: while ( ( percent = number_mm( ) & (128-1) ) > 99 ) db.c: while ( ( door = number_mm( ) & (16-1) ) > 9 ) db.c: return number_mm( ) & ( ( 1 << width ) - 1 ); db.c: * I've gotten too many bad reports on OS-supplied random number generators. db.c: * This is the Mitchell-Moore algorithm from Knuth Volume II. db.c: * -- Furey db.c: piState[-2] = 55 - 55; db.c: piState[-1] = 55 - 24; db.c: piState[0] = ((int) current_time) & ((1 << 30) - 1); db.c: piState[iState] = (piState[iState-1] + piState[iState-2]) db.c: & ((1 << 30) - 1); db.c: iState1 = piState[-2]; db.c: iState2 = piState[-1]; db.c: & ((1 << 30) - 1); db.c: piState[-2] = iState1; db.c: piState[-1] = iState2; db.c: * Roll some dice. -Thoric db.c: return value_00 + level * (value_32 - value_00) / 32; db.c: * Used for player-entered strings that go into disk files. db.c: *str = '-'; db.c: * Encodes the tildes in a string. -Thoric db.c: * Used for player-entered strings that go into disk files. db.c: for ( ichar = 0; ichar <= sstr2 - sstr1; ichar++ ) db.c: if ( sstr1 <= sstr2 && !str_cmp( astr, bstr + sstr2 - sstr1 ) ) db.c: * Returns an initial-capped string. db.c: if(i && str[i-1] != '&' && str[i-1] != '^') /* color fix - shogar */ db.c: * Returns TRUE or FALSE if a letter is a vowel -Thoric db.c: * Shove either "a " or "an " onto the beginning of a string -Thoric db.c: fpLOG=NULL; /* redhat 5.1 fix - shogar */ db.c: ch->in_room ? ch->in_room->vnum : 0, ch->name, str ); db.c: if ( stat( SHUTDOWN_FILE, &fst ) != -1 ) /* file exists */ db.c: fp=NULL; /* redhat 5.1 fix - shogar */ db.c: fpLOG=NULL; /* redhat 5.1 fix - shogar */ db.c: * Add a string to the boot-up log -Thoric db.c: fpLOG=NULL; /* redhat 5.1 fix - shogar */ db.c: * Dump a text file to a player, a line at a time -Thoric db.c: && num < (MAX_STRING_LENGTH-2)) db.c: * Show the boot log file -Thoric db.c: * Writes a string to the log, extended version -Thoric db.c: strtime[strlen(strtime)-1] = '\0'; db.c: --length; db.c: * wizlist builder! -Thoric db.c: * Modified so seperate function wouldn't be needed for guestlist - Kratas db.c: filler = ( 78-strlen_color( line ) ); db.c: wiz->name = str_dup( name ); db.c: wiz->level = level; db.c: wiz->last = NULL; db.c: wiz->next = NULL; db.c: for ( tmp = first_wiz; tmp; tmp = tmp->next ) db.c: if ( (level > tmp->level) ) db.c: if ( !tmp->last ) db.c: tmp->last->next = wiz; db.c: wiz->last = tmp->last; db.c: wiz->next = tmp; db.c: tmp->last = wiz; db.c: wiz->last = last_wiz; db.c: wiz->next = NULL; db.c: last_wiz->next = wiz; db.c: * Wizlist builder -Thoric db.c: * Now excludes guests -- Scion db.c: if ( dentry->d_name[0] != '.' ) db.c: char *s = strchr( dentry->d_name, '.' ); db.c: sprintf (pbuf, "%s%c", "../player/", LOWER(dentry->d_name[0])); db.c: if (!str_cmp(pentry->d_name, dentry->d_name)) db.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); db.c: /* log_string(buf); *scream* We have too many imms/guests for this! -- Scion */ db.c: ilevel = MAX_LEVEL - 16; db.c: ilevel = MAX_LEVEL - 17; db.c: add_to_wizlist( dentry->d_name, ilevel ); db.c: sprintf(buf, "Immortals - Staff of %s!", sysdata.mud_name); db.c: for ( wiz = first_wiz; wiz; wiz = wiz->next ) db.c: if ( wiz->level < ilevel ) db.c: ilevel = wiz->level; db.c: case MAX_LEVEL - 0: towizfile( " &ROmnipotent &w(Level 116) &ROwner&W", TRUE ); break; db.c: case MAX_LEVEL - 1: towizfile( " &RSupreme Entity &w(Level 115) &RHead Implementors&W", TRUE ); break; db.c: case MAX_LEVEL - 2: towizfile( " &RInfinite &w(Level 114) &RImplementors&W", TRUE ); break; db.c: case MAX_LEVEL - 3: towizfile( " &REternal &w(Level 113) &RAssistant Implementors&W", TRUE ); break; db.c: case MAX_LEVEL - 4: towizfile( " &RAncient &w(Level 112) &RAdministrators&W", TRUE ); break; db.c: case MAX_LEVEL - 5: towizfile( " &cExalted &w(Level 111) &cCoders&W", TRUE ); break; db.c: case MAX_LEVEL - 6: towizfile( " &cAscendant &w(Level 110) &cRepresentatives&W", TRUE ); break; db.c: case MAX_LEVEL - 7: towizfile( " &cMaster Gods &w(Level 109) &cMaster Builders&W", TRUE ); break; db.c: case MAX_LEVEL - 8: towizfile( " &cGreater Gods &w(Level 108) &cGreater Builders&W", TRUE ); break; db.c: case MAX_LEVEL - 9: towizfile( " &cGods &w(Level 107) &cBuilders&W", TRUE ); break; db.c: case MAX_LEVEL - 10: towizfile( " &cLesser Gods &w(Level 106) &cLesser Builders&W", TRUE ); break; db.c: case MAX_LEVEL - 11: towizfile( " &cNew Gods &w(Level 105) &cNew Builders&W", TRUE ); break; db.c: case MAX_LEVEL - 12: towizfile( " &cSaviors &w(Level 104) &cGeneral Staff&W", TRUE ); break; db.c: case MAX_LEVEL - 13: towizfile( " &BCreators &w(Level 103) &BImmortal Family&W", TRUE ); break; db.c: case MAX_LEVEL - 14: towizfile( " &BAcolytes &w(Level 102) &BInter-MUD Guest&W", TRUE ); break; db.c: case MAX_LEVEL - 15: towizfile( " &BNeophytes &w(Level 101) &BAmbassador&W", TRUE ); break; db.c: case MAX_LEVEL - 16: towizfile( " &BRetired&W", TRUE ); break; db.c: case MAX_LEVEL - 17: towizfile( " &BGuests&W", TRUE ); break; db.c: if ( strlen( buf ) + strlen( wiz->name ) > 76 ) db.c: strcat( buf, wiz->name ); db.c: wiznext = wiz->next; db.c: DISPOSE(wiz->name); db.c: * -- Kratas db.c: if ( dentry->d_name[0] != '.' ) db.c: if( strstr( dentry->d_name, "immlist" ) ) db.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); db.c: ilevel = MAX_LEVEL - 16; db.c: ilevel = MAX_LEVEL - 17; db.c: add_to_wizlist( dentry->d_name, ilevel ); db.c: sprintf(buf, "Immortals - Guests of %s!", sysdata.mud_name); db.c: for ( wiz = first_wiz; wiz; wiz = wiz->next ) db.c: if ( wiz->level < ilevel ) db.c: ilevel = wiz->level; db.c: case MAX_LEVEL - 0: towizfile( " &ROmnipotent &w(Level 116) &ROwner&W", FALSE ); break; db.c: case MAX_LEVEL - 1: towizfile( " &RSupreme Entity &w(Level 115) &RHead Implementors&W", FALSE ); break; db.c: case MAX_LEVEL - 2: towizfile( " &RInfinite &w(Level 114) &RImplementors&W", FALSE ); break; db.c: case MAX_LEVEL - 3: towizfile( " &REternal &w(Level 113) &RAssistant Implementors&W", FALSE ); break; db.c: case MAX_LEVEL - 4: towizfile( " &RAncient &w(Level 112) &RAdministrators&W", FALSE ); break; db.c: case MAX_LEVEL - 5: towizfile( " &cExalted &w(Level 111) &cCoders&W", FALSE ); break; db.c: case MAX_LEVEL - 6: towizfile( " &cAscendant &w(Level 110) &cRepresentatives&W", FALSE ); break; db.c: case MAX_LEVEL - 7: towizfile( " &cMaster Gods &w(Level 109) &cMaster Builders&W", FALSE ); break; db.c: case MAX_LEVEL - 8: towizfile( " &cGreater Gods &w(Level 108) &cGreater Builders&W", FALSE ); break; db.c: case MAX_LEVEL - 9: towizfile( " &cGods &w(Level 107) &cBuilders&W", FALSE ); break; db.c: case MAX_LEVEL - 10: towizfile( " &cLesser Gods &w(Level 106) &cLesser Builders&W", FALSE ); break; db.c: case MAX_LEVEL - 11: towizfile( " &cNew Gods &w(Level 105) &cNew Builders&W", FALSE ); break; db.c: case MAX_LEVEL - 12: towizfile( " &cSaviors &w(Level 104) &cGeneral Staff&W", FALSE ); break; db.c: case MAX_LEVEL - 13: towizfile( " &BCreators &w(Level 103) &BImmortal Family&W", FALSE ); break; db.c: case MAX_LEVEL - 14: towizfile( " &BAcolytes &w(Level 102) &BInter-MUD Guest&W", FALSE ); break; db.c: case MAX_LEVEL - 15: towizfile( " &BNeophytes &w(Level 101) &BAmbassador&W", FALSE ); break; db.c: case MAX_LEVEL - 16: towizfile( " &BRetired&W", FALSE ); break; db.c: case MAX_LEVEL - 17: towizfile( " &BGuests&W", FALSE ); break; db.c: if ( strlen( buf ) + strlen( wiz->name ) > 76 ) db.c: strcat( buf, wiz->name ); db.c: wiznext = wiz->next; db.c: DISPOSE(wiz->name); db.c: * Makes a wizlist for showing on the Telnet Interface WWW Site -- KCAH db.c: if ( dentry->d_name[0] != '.' ) db.c: if( strstr( dentry->d_name, "immlist" ) ) db.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); db.c: ilevel = MAX_LEVEL - 15; db.c: ilevel = MAX_LEVEL - 16; db.c: add_to_wizlist( dentry->d_name, ilevel ); db.c: sprintf(buf, "<BR>&YImmortals - Staff of %s!", sysdata.mud_name); db.c: for ( wiz = first_wiz; wiz; wiz = wiz->next ) db.c: if ( wiz->level < ilevel ) db.c: ilevel = wiz->level; db.c: case MAX_LEVEL - 0: towebwiz( "<P>&ROmnipotent &w(Level 116) &ROwner<BR>&W" ); break; db.c: case MAX_LEVEL - 1: towebwiz( "<P>&RSupreme Entity &w(Level 115) &RHead Implementors<BR>&W" ); break; db.c: case MAX_LEVEL - 2: towebwiz( "<P>&RInfinite &w(Level 114) &RImplementors<BR>&W" ); break; db.c: case MAX_LEVEL - 3: towebwiz( "<P>&REternal &w(Level 113) &RAssistant Implementors<BR>&W" ); break; db.c: case MAX_LEVEL - 4: towebwiz( "<P>&RAncient &w(Level 112) &RAdministrators<BR>&W" ); break; db.c: case MAX_LEVEL - 5: towebwiz( "<P>&cExalted &w(Level 111) &cCoders<BR>&W" ); break; db.c: case MAX_LEVEL - 6: towebwiz( "<P>&cAscendant &w(Level 110) &cRepresentatives<BR>&W" ); break; db.c: case MAX_LEVEL - 7: towebwiz( "<P>&cMaster Gods &w(Level 109) &cMaster Builders<BR>&W" ); break; db.c: case MAX_LEVEL - 8: towebwiz( "<P>&cGreater Gods &w(Level 108) &cGreater Builders<BR>&W" ); break; db.c: case MAX_LEVEL - 9: towebwiz( "<P>&cGods &w(Level 107) &cBuilders<BR>&W" ); break; db.c: case MAX_LEVEL - 10: towebwiz( "<P>&cLesser Gods &w(Level 106) &cLesser Builders<BR>&W" ); break; db.c: case MAX_LEVEL - 11: towebwiz( "<P>&cNew Gods &w(Level 105) &cNew Builders<BR>&W" ); break; db.c: case MAX_LEVEL - 12: towebwiz( "<P>&cSaviors &w(Level 104) &cGeneral Staff<BR>&W" ); break; db.c: case MAX_LEVEL - 13: towebwiz( "<P>&BCreators &w(Level 103) &BImmortal Family<BR>&W" ); break; db.c: case MAX_LEVEL - 14: towebwiz( "<P>&BAcolytes &w(Level 102) &BInter-MUD Guest<BR>&W" ); break; db.c: case MAX_LEVEL - 15: towebwiz( "<P>&BNeophytes &w(Level 101) &BAmbassador<BR>&W" ); break; db.c: case MAX_LEVEL - 16: towebwiz( "<P>&BRetired<BR>&W" ); break; db.c: case MAX_LEVEL - 17: towebwiz( "<P>&BGuests<BR>&W" ); break; db.c: if ( strlen( buf ) + strlen( wiz->name ) > 999 ) db.c: strcat( buf, wiz->name ); db.c: wiznext = wiz->next; db.c: DISPOSE(wiz->name); db.c: bug( "Mob: %d couldn't open mudprog file", pMobIndex->vnum ); db.c: mprg2->type = mprog_name_to_type( fread_word( progfile ) ); db.c: switch ( mprg2->type ) db.c: xSET_BIT(pMobIndex->progtypes, mprg2->type); db.c: mprg2->arglist = fread_string( progfile ); db.c: mprg2->comlist = fread_string( progfile ); db.c: mprg_next->next = mprg2; db.c: if ( (original = iMob->mudprogs) != NULL ) db.c: for ( ; original->next; original = original->next ); db.c: original->next = working; db.c: iMob->mudprogs = working; db.c: working->next = NULL; db.c: bug( "Load_mobiles: vnum %d MUDPROG char", pMobIndex->vnum ); db.c: pMobIndex->mudprogs = mprg; db.c: mprg->type = mprog_name_to_type( fread_word( fp ) ); db.c: switch ( mprg->type ) db.c: bug( "Load_mobiles: vnum %d MUDPROG type.", pMobIndex->vnum ); db.c: CREATE( mprg->next, MPROG_DATA, 1 ); db.c: mprg = mprg->next; db.c: mprg->next = NULL; db.c: bug( "Load_mobiles: vnum %d bad MUDPROG.", pMobIndex->vnum ); db.c: xSET_BIT(pMobIndex->progtypes, mprg->type); db.c: mprg->arglist = fread_string( fp ); db.c: mprg->comlist = fread_string( fp ); db.c: CREATE( mprg->next, MPROG_DATA, 1 ); db.c: mprg = mprg->next; db.c: mprg->next = NULL; db.c: bug( "Load_mobiles: vnum %d bad MUDPROG.", pMobIndex->vnum ); db.c: bug( "Obj: %d couldnt open mudprog file", pObjIndex->vnum ); db.c: mprg2->type = mprog_name_to_type( fread_word( progfile ) ); db.c: switch ( mprg2->type ) db.c: xSET_BIT(pObjIndex->progtypes, mprg2->type); db.c: mprg2->arglist = fread_string( progfile ); db.c: mprg2->comlist = fread_string( progfile ); db.c: mprg_next->next = mprg2; db.c: if ( (original = iObj->mudprogs) != NULL ) db.c: for ( ; original->next; original = original->next ); db.c: original->next = working; db.c: iObj->mudprogs = working; db.c: working->next = NULL; db.c: bug( "Load_objects: vnum %d OBJPROG char", pObjIndex->vnum ); db.c: pObjIndex->mudprogs = mprg; db.c: mprg->type = mprog_name_to_type( fread_word( fp ) ); db.c: switch ( mprg->type ) db.c: bug( "Load_objects: vnum %d OBJPROG type.", pObjIndex->vnum ); db.c: CREATE( mprg->next, MPROG_DATA, 1 ); db.c: mprg = mprg->next; db.c: mprg->next = NULL; db.c: bug( "Load_objects: vnum %d bad OBJPROG.", pObjIndex->vnum ); db.c: xSET_BIT(pObjIndex->progtypes, mprg->type); db.c: mprg->arglist = fread_string( fp ); db.c: mprg->comlist = fread_string( fp ); db.c: CREATE( mprg->next, MPROG_DATA, 1 ); db.c: mprg = mprg->next; db.c: mprg->next = NULL; db.c: bug( "Load_objects: vnum %d bad OBJPROG.", pObjIndex->vnum ); db.c: bug( "Room: %d couldnt open roomprog file", RoomIndex->vnum ); db.c: mprg2->type = mprog_name_to_type( fread_word( progfile ) ); db.c: switch ( mprg2->type ) db.c: xSET_BIT(RoomIndex->progtypes, mprg2->type); db.c: mprg2->arglist = fread_string( progfile ); db.c: mprg2->comlist = fread_string( progfile ); db.c: mprg_next->next = mprg2; db.c: if ( (original = iRoom->mudprogs) != NULL ) db.c: for ( ; original->next; original = original->next ); db.c: original->next = working; db.c: iRoom->mudprogs = working; db.c: working->next = NULL; db.c: bug( "Load_rooms: vnum %d ROOMPROG char", pRoomIndex->vnum ); db.c: pRoomIndex->mudprogs = mprg; db.c: mprg->type = mprog_name_to_type( fread_word( fp ) ); db.c: switch ( mprg->type ) db.c: bug( "Load_rooms: vnum %d ROOMPROG type.", pRoomIndex->vnum ); db.c: CREATE( mprg->next, MPROG_DATA, 1 ); db.c: mprg = mprg->next; db.c: mprg->next = NULL; db.c: bug( "Load_rooms: vnum %d bad ROOMPROG.", pRoomIndex->vnum ); db.c: xSET_BIT(pRoomIndex->progtypes, mprg->type); db.c: mprg->arglist = fread_string( fp ); db.c: mprg->comlist = fread_string( fp ); db.c: CREATE( mprg->next, MPROG_DATA, 1 ); db.c: mprg = mprg->next; db.c: mprg->next = NULL; db.c: bug( "Load_rooms: vnum %d bad ROOMPROG.", pRoomIndex->vnum ); db.c: Don't ask me why they return bool.. :).. oh well.. -- Alty db.c: while ((ch = room->first_person) != NULL) db.c: while ((o = room->first_content) != NULL) db.c: while ((ed = room->first_extradesc) != NULL) db.c: room->first_extradesc = ed->next; db.c: STRFREE(ed->keyword); db.c: STRFREE(ed->description); db.c: --top_ed; db.c: while ((ex = room->first_exit) != NULL) db.c: while ((mpact = room->mpact) != NULL) db.c: room->mpact = mpact->next; db.c: DISPOSE(mpact->buf); db.c: while ((mp = room->mudprogs) != NULL) db.c: room->mudprogs = mp->next; db.c: STRFREE(mp->arglist); db.c: STRFREE(mp->comlist); db.c:/* if (room->map) db.c: if ((mapi = get_map_index(room->map->vnum)) != NULL) db.c: if (room->map->x > 0 && room->map->x < 80 && db.c: room->map->y > 0 && room->map->y < 48) db.c: mapi->map_of_vnums[room->map->y][room->map->x] = -1; db.c: DISPOSE(room->map); db.c: STRFREE(room->name); db.c: STRFREE(room->description); db.c: hash = room->vnum%MAX_KEY_HASH; db.c: room_index_hash[hash] = room->next; db.c: for (prev = room_index_hash[hash]; prev; prev = prev->next) db.c: if (prev->next == room) db.c: prev->next = room->next; db.c: bug("delete_room: room %d not in hash bucket %d.", room->vnum, hash); db.c: --top_room; db.c: o_next = o->next; db.c: if (o->pIndexData == obj) db.c: while ((ed = obj->first_extradesc) != NULL) db.c: obj->first_extradesc = ed->next; db.c: STRFREE(ed->keyword); db.c: STRFREE(ed->description); db.c: --top_ed; db.c: while ((af = obj->first_affect) != NULL) db.c: obj->first_affect = af->next; db.c: --top_affect; db.c: while ((mp = obj->mudprogs) != NULL) db.c: obj->mudprogs = mp->next; db.c: STRFREE(mp->arglist); db.c: STRFREE(mp->comlist); db.c: STRFREE(obj->name); db.c: STRFREE(obj->short_descr); db.c: STRFREE(obj->description); db.c: STRFREE(obj->action_desc); db.c: if (auction->history[auc] == obj) db.c: if (auc < AUCTION_MEM-1) db.c: memmove(&auction->history[auc], &auction->history[auc+1], db.c: (AUCTION_MEM-auc-1)*sizeof(OBJ_INDEX_DATA *)); db.c: auction->history[AUCTION_MEM-1] = NULL; db.c: --auc; db.c: hash = obj->vnum%MAX_KEY_HASH; db.c: obj_index_hash[hash] = obj->next; db.c: for (prev = obj_index_hash[hash]; prev; prev = prev->next) db.c: if (prev->next == obj) db.c: prev->next = obj->next; db.c: bug("delete_obj: object %d not in hash bucket %d.", obj->vnum, hash); db.c: --top_obj_index; db.c: ch_next = ch->next; db.c: if (ch->pIndexData == mob) db.c: while ((mp = mob->mudprogs) != NULL) db.c: mob->mudprogs = mp->next; db.c: STRFREE(mp->arglist); db.c: STRFREE(mp->comlist); db.c: if (mob->pShop) db.c: UNLINK(mob->pShop, first_shop, last_shop, next, prev); db.c: DISPOSE(mob->pShop); db.c: --top_shop; db.c: if (mob->rShop) db.c: UNLINK(mob->rShop, first_repair, last_repair, next, prev); db.c: DISPOSE(mob->rShop); db.c: --top_repair; db.c: STRFREE(mob->player_name); db.c: STRFREE(mob->short_descr); db.c: STRFREE(mob->long_descr); db.c: STRFREE(mob->description); db.c: hash = mob->vnum%MAX_KEY_HASH; db.c: mob_index_hash[hash] = mob->next; db.c: for (prev = mob_index_hash[hash]; prev; prev = prev->next) db.c: if (prev->next == mob) db.c: prev->next = mob->next; db.c: bug("delete_mob: mobile %d not in hash bucket %d.", mob->vnum, hash); db.c: --top_mob_index; db.c: * Creat a new room (for online building) -Thoric db.c: pRoomIndex->first_person = NULL; db.c: pRoomIndex->last_person = NULL; db.c: pRoomIndex->first_content = NULL; db.c: pRoomIndex->last_content = NULL; db.c: pRoomIndex->first_extradesc = NULL; db.c: pRoomIndex->last_extradesc = NULL; db.c: pRoomIndex->area = NULL; db.c: pRoomIndex->vnum = vnum; db.c: pRoomIndex->name = STRALLOC("Floating in a void"); db.c: pRoomIndex->description = STRALLOC(""); db.c: pRoomIndex->room_flags = ROOM_PROTOTYPE; db.c: pRoomIndex->sector_type = 1; db.c: pRoomIndex->light = 0; db.c: pRoomIndex->first_exit = NULL; db.c: pRoomIndex->last_exit = NULL; db.c: pRoomIndex->next = room_index_hash[iHash]; db.c: * Create a new INDEX object (for online building) -Thoric db.c: pObjIndex->vnum = vnum; db.c: pObjIndex->name = STRALLOC( name ); db.c: pObjIndex->first_affect = NULL; db.c: pObjIndex->last_affect = NULL; db.c: pObjIndex->first_extradesc = NULL; db.c: pObjIndex->last_extradesc = NULL; db.c: pObjIndex->short_descr = STRALLOC( buf ); db.c: pObjIndex->description = STRALLOC( buf ); db.c: pObjIndex->action_desc = STRALLOC( "" ); db.c: pObjIndex->short_descr[0] = LOWER(pObjIndex->short_descr[0]); db.c: pObjIndex->description[0] = UPPER(pObjIndex->description[0]); db.c: pObjIndex->item_type = ITEM_TRASH; db.c: xCLEAR_BITS(pObjIndex->extra_flags); db.c: xSET_BIT(pObjIndex->extra_flags, ITEM_PROTOTYPE); db.c: pObjIndex->wear_flags = 0; db.c: pObjIndex->value[0] = 0; db.c: pObjIndex->value[1] = 0; db.c: pObjIndex->value[2] = 0; db.c: pObjIndex->value[3] = 0; db.c: pObjIndex->weight = 1; db.c: pObjIndex->cost = 0; db.c: pObjIndex->short_descr = QUICKLINK( cObjIndex->short_descr ); db.c: pObjIndex->description = QUICKLINK( cObjIndex->description ); db.c: pObjIndex->action_desc = QUICKLINK( cObjIndex->action_desc ); db.c: pObjIndex->item_type = cObjIndex->item_type; db.c: pObjIndex->extra_flags = cObjIndex->extra_flags; db.c: xSET_BIT(pObjIndex->extra_flags, ITEM_PROTOTYPE); db.c: pObjIndex->wear_flags = cObjIndex->wear_flags; db.c: pObjIndex->value[0] = cObjIndex->value[0]; db.c: pObjIndex->value[1] = cObjIndex->value[1]; db.c: pObjIndex->value[2] = cObjIndex->value[2]; db.c: pObjIndex->value[3] = cObjIndex->value[3]; db.c: pObjIndex->weight = cObjIndex->weight; db.c: pObjIndex->cost = cObjIndex->cost; db.c: for ( ced = cObjIndex->first_extradesc; ced; ced = ced->next ) db.c: ed->keyword = QUICKLINK( ced->keyword ); db.c: ed->description = QUICKLINK( ced->description ); db.c: LINK( ed, pObjIndex->first_extradesc, pObjIndex->last_extradesc, db.c: for ( cpaf = cObjIndex->first_affect; cpaf; cpaf = cpaf->next ) db.c: paf->type = cpaf->type; db.c: paf->duration = cpaf->duration; db.c: paf->location = cpaf->location; db.c: paf->modifier = cpaf->modifier; db.c: paf->bitvector = cpaf->bitvector; db.c: LINK( paf, pObjIndex->first_affect, pObjIndex->last_affect, db.c: pObjIndex->count = 0; db.c: pObjIndex->next = obj_index_hash[iHash]; db.c: * Create a new INDEX mobile (for online building) -Thoric db.c: pMobIndex->vnum = vnum; db.c: pMobIndex->count = 0; db.c: pMobIndex->killed = 0; db.c: pMobIndex->player_name = STRALLOC( name ); db.c: pMobIndex->short_descr = STRALLOC( buf ); db.c: pMobIndex->long_descr = STRALLOC( buf ); db.c: pMobIndex->description = STRALLOC( "" ); db.c: pMobIndex->short_descr[0] = LOWER(pMobIndex->short_descr[0]); db.c: pMobIndex->long_descr[0] = UPPER(pMobIndex->long_descr[0]); db.c: pMobIndex->description[0] = UPPER(pMobIndex->description[0]); db.c: xCLEAR_BITS(pMobIndex->act); db.c: xSET_BIT(pMobIndex->act, ACT_IS_NPC); db.c: xSET_BIT(pMobIndex->act, ACT_PROTOTYPE); db.c: xCLEAR_BITS(pMobIndex->affected_by); db.c: pMobIndex->pShop = NULL; db.c: pMobIndex->rShop = NULL; db.c: pMobIndex->spec_fun = NULL; db.c: pMobIndex->mudprogs = NULL; db.c: xCLEAR_BITS(pMobIndex->progtypes); db.c: pMobIndex->alignment = 0; db.c: pMobIndex->level = 1; db.c: pMobIndex->mobthac0 = 0; db.c: pMobIndex->ac = 0; db.c: pMobIndex->hitnodice = 0; db.c: pMobIndex->hitsizedice = 0; db.c: pMobIndex->hitplus = 0; db.c: pMobIndex->damnodice = 0; db.c: pMobIndex->damsizedice = 0; db.c: pMobIndex->damplus = 0; db.c: pMobIndex->gold = 0; db.c: pMobIndex->exp = 0; db.c:- shogar db.c: pMobIndex->position = 12; db.c: pMobIndex->defposition = 12; db.c: pMobIndex->position = POS_STANDING; db.c: pMobIndex->defposition = POS_STANDING; db.c: pMobIndex->sex = 0; db.c: pMobIndex->perm_str = 13; db.c: pMobIndex->perm_dex = 13; db.c: pMobIndex->perm_int = 13; db.c: pMobIndex->perm_wis = 13; db.c: pMobIndex->perm_cha = 13; db.c: pMobIndex->perm_con = 13; db.c: pMobIndex->perm_lck = 13; db.c: pMobIndex->race = 0; db.c: pMobIndex->class = 3; db.c: pMobIndex->xflags = 0; db.c: pMobIndex->resistant = 0; db.c: pMobIndex->immune = 0; db.c: pMobIndex->susceptible = 0; db.c: pMobIndex->numattacks = 0; db.c: pMobIndex->speaks = LANG_COMMON; db.c: pMobIndex->speaking = LANG_COMMON; db.c: xCLEAR_BITS(pMobIndex->attacks); db.c: xCLEAR_BITS(pMobIndex->defenses); db.c: pMobIndex->short_descr = QUICKLINK( cMobIndex->short_descr ); db.c: pMobIndex->long_descr = QUICKLINK( cMobIndex->long_descr ); db.c: pMobIndex->description = QUICKLINK( cMobIndex->description ); db.c: pMobIndex->act = cMobIndex->act; db.c: xSET_BIT(pMobIndex->act, ACT_PROTOTYPE); db.c: pMobIndex->affected_by = cMobIndex->affected_by; db.c: pMobIndex->pShop = NULL; db.c: pMobIndex->rShop = NULL; db.c: pMobIndex->spec_fun = cMobIndex->spec_fun; db.c: pMobIndex->mudprogs = NULL; db.c: xCLEAR_BITS(pMobIndex->progtypes); db.c: pMobIndex->alignment = cMobIndex->alignment; db.c: pMobIndex->level = cMobIndex->level; db.c: pMobIndex->mobthac0 = cMobIndex->mobthac0; db.c: pMobIndex->ac = cMobIndex->ac; db.c: pMobIndex->hitnodice = cMobIndex->hitnodice; db.c: pMobIndex->hitsizedice = cMobIndex->hitsizedice; db.c: pMobIndex->hitplus = cMobIndex->hitplus; db.c: pMobIndex->damnodice = cMobIndex->damnodice; db.c: pMobIndex->damsizedice = cMobIndex->damsizedice; db.c: pMobIndex->damplus = cMobIndex->damplus; db.c: pMobIndex->gold = cMobIndex->gold; db.c: pMobIndex->exp = cMobIndex->exp; db.c: pMobIndex->position = cMobIndex->position; db.c: pMobIndex->defposition = cMobIndex->defposition; db.c: pMobIndex->sex = cMobIndex->sex; db.c: pMobIndex->perm_str = cMobIndex->perm_str; db.c: pMobIndex->perm_dex = cMobIndex->perm_dex; db.c: pMobIndex->perm_int = cMobIndex->perm_int; db.c: pMobIndex->perm_wis = cMobIndex->perm_wis; db.c: pMobIndex->perm_cha = cMobIndex->perm_cha; db.c: pMobIndex->perm_con = cMobIndex->perm_con; db.c: pMobIndex->perm_lck = cMobIndex->perm_lck; db.c: pMobIndex->race = cMobIndex->race; db.c: pMobIndex->class = cMobIndex->class; db.c: pMobIndex->xflags = cMobIndex->xflags; db.c: pMobIndex->resistant = cMobIndex->resistant; db.c: pMobIndex->immune = cMobIndex->immune; db.c: pMobIndex->susceptible = cMobIndex->susceptible; db.c: pMobIndex->numattacks = cMobIndex->numattacks; db.c: pMobIndex->attacks = cMobIndex->attacks; db.c: pMobIndex->defenses = cMobIndex->defenses; db.c: pMobIndex->next = mob_index_hash[iHash]; db.c: * to_room and vnum. -Thoric db.c: pexit->vdir = door; db.c: pexit->rvnum = pRoomIndex->vnum; db.c: pexit->to_room = to_room; db.c: pexit->distance = 1; db.c: pexit->vnum = to_room->vnum; db.c: texit = get_exit_to( to_room, rev_dir[door], pRoomIndex->vnum ); db.c: texit->rexit = pexit; db.c: pexit->rexit = texit; db.c: for ( texit = pRoomIndex->first_exit; texit; texit = texit->next ) db.c: if ( door < texit->vdir ) db.c: if ( !pRoomIndex->first_exit ) db.c: pRoomIndex->first_exit = pexit; db.c: /* keep exits in incremental order - insert exit into list */ db.c: if ( !texit->prev ) db.c: pRoomIndex->first_exit = pexit; db.c: texit->prev->next = pexit; db.c: pexit->prev = texit->prev; db.c: pexit->next = texit; db.c: texit->prev = pexit; db.c: pRoomIndex->last_exit->next = pexit; db.c: pexit->next = NULL; db.c: pexit->prev = pRoomIndex->last_exit; db.c: pRoomIndex->last_exit = pexit; db.c: for ( rnum = tarea->low_r_vnum; rnum <= tarea->hi_r_vnum; rnum++ ) db.c: for ( pexit = pRoomIndex->first_exit; pexit; pexit = pexit->next ) db.c: pexit->rvnum = pRoomIndex->vnum; db.c: if ( pexit->vnum <= 0 ) db.c: pexit->to_room = NULL; db.c: pexit->to_room = get_room_index( pexit->vnum ); db.c: SET_BIT( pRoomIndex->room_flags, ROOM_NO_MOB ); db.c: for ( rnum = tarea->low_r_vnum; rnum <= tarea->hi_r_vnum; rnum++ ) db.c: for ( pexit = pRoomIndex->first_exit; pexit; pexit = pexit->next ) db.c: if ( pexit->to_room && !pexit->rexit ) db.c: rev_exit = get_exit_to( pexit->to_room, rev_dir[pexit->vdir], pRoomIndex->vnum ); db.c: pexit->rexit = rev_exit; db.c: rev_exit->rexit = pexit; db.c: --TRI */ db.c: bug( tarea->filename ); db.c: DISPOSE( tarea->name ); db.c: tarea->name = fread_string_nohash( fpArea ); db.c: bug( tarea->filename ); db.c: needs it null if you reuse it. - shogar */ db.c: if( IS_SET( tarea->flags, AFLAG_RESET_ON_BOOT) ) db.c: tarea->ttl = -1; db.c: SET_BIT( tarea->flags, AFLAG_PLR_LOADED ); db.c: fprintf( lfp, "%-14s: Rooms: %5d - %-5d Objs: %5d - %-5d Mobs: %5d - %d\n", db.c: tarea->filename, db.c: tarea->low_r_vnum, tarea->hi_r_vnum, db.c: tarea->low_o_vnum, tarea->hi_o_vnum, db.c: tarea->low_m_vnum, tarea->hi_m_vnum ); db.c: if ( !tarea->author ) db.c: tarea->author = STRALLOC( "" ); db.c: SET_BIT( tarea->status, AREA_LOADED ); db.c: if( !IS_SET( tarea->flags, AFLAG_RESET_ON_BOOT ) ) db.c: REMOVE_BIT( tarea->flags, AFLAG_PLR_LOADED ); db.c: res->name = fread_string_nohash(fp); db.c: if (*res->name == '$') db.c: DISPOSE(res->name); db.c: * them out of the area files. -- Altrag */ db.c: if ( dentry->d_name[0] != '.' ) db.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); db.c: dentry->d_name, low, LEVEL_IMMORTAL ); db.c: sprintf( buf, "%s%s.are", BUILD_DIR, dentry->d_name ); db.c: dentry->d_name ); db.c: sprintf( buf, "%s.are", dentry->d_name ); db.c: pArea->author = STRALLOC( dentry->d_name ); db.c: pArea->filename = str_dup( buf ); db.c: pArea->name = fread_string_nohash( fp ); db.c: sprintf( buf, "{PROTO} %s's area in progress", dentry->d_name ); db.c: pArea->name = str_dup( buf ); db.c: pArea->low_r_vnum = rlow; pArea->hi_r_vnum = rhi; db.c: pArea->low_m_vnum = mlow; pArea->hi_m_vnum = mhi; db.c: pArea->low_o_vnum = olow; pArea->hi_o_vnum = ohi; db.c: pArea->low_soft_range = -1; pArea->hi_soft_range = -1; db.c: pArea->low_hard_range = -1; pArea->hi_hard_range = -1; db.c: CREATE(pArea->weather, WEATHER_DATA, 1); /* FB */ db.c: pArea->weather->temp = 0; db.c: pArea->weather->precip = 0; db.c: pArea->weather->wind = 0; db.c: pArea->weather->temp_vector = 0; db.c: pArea->weather->precip_vector = 0; db.c: pArea->weather->wind_vector = 0; db.c: pArea->weather->climate_temp = 2; db.c: pArea->weather->climate_precip = 2; db.c: pArea->weather->climate_wind = 2; db.c: pArea->weather->first_neighbor = NULL; db.c: pArea->weather->last_neighbor = NULL; db.c: pArea->weather->echo = NULL; db.c: pArea->weather->echo_color = AT_GREY; db.c: pArea->first_reset = NULL; pArea->last_reset = NULL; db.c: fprintf( lfp, "%-14s: Rooms: %5d - %-5d Objs: %5d - %-5d " db.c: "Mobs: %5d - %-5d\n", db.c: pArea->filename, db.c: pArea->low_r_vnum, pArea->hi_r_vnum, db.c: pArea->low_o_vnum, pArea->hi_o_vnum, db.c: pArea->low_m_vnum, pArea->hi_m_vnum ); db.c:/* Rebuilt from broken copy, but bugged - commented out for now - Blod */ db.c: pRes->next = NULL; db.c: pRes->prev = NULL; db.c: for ( res = first_reserved; res; res = res->next ) db.c: if ( strcasecmp(pRes->name, res->name) > 0 ) db.c: * - 4/27/97, Fireblade db.c: temp_area = temp_area->next_sort_name) db.c: if(strcmp(pArea->name, temp_area->name) < 0) db.c: * Sort by room vnums -Altrag & Thoric db.c: pArea->next_sort = NULL; db.c: pArea->prev_sort = NULL; db.c: pArea->prev_sort = NULL; db.c: pArea->next_sort = NULL; db.c: for ( area = first_sort; area; area = area->next_sort ) db.c: if ( pArea->low_r_vnum < area->low_r_vnum ) db.c: if ( !area->prev_sort ) db.c: area->prev_sort->next_sort = pArea; db.c: pArea->prev_sort = area->prev_sort; db.c: pArea->next_sort = area; db.c: area->prev_sort = pArea; db.c: pArea->prev_sort = last_sort; db.c: pArea->next_sort = NULL; db.c: last_sort->next_sort = pArea; db.c: * Display vnums currently assigned to areas -Altrag & Thoric db.c: for ( pArea = first_sort; pArea; pArea = pArea->next_sort ) db.c: if ( IS_SET( pArea->status, AREA_DELETED ) ) db.c: if ( pArea->low_r_vnum < low ) db.c: if ( pArea->hi_r_vnum > high ) db.c: if ( IS_SET(pArea->status, AREA_LOADED) ) db.c: pager_printf(ch, "&W%-15s&w| &cRooms: %5d - %-5d" db.c: " &CObjs: %5d - %-5d &BMobs: %5d - %-5d%s&w\n\r", db.c: (pArea->filename ? pArea->filename : "(invalid)"), db.c: pArea->low_r_vnum, pArea->hi_r_vnum, db.c: pArea->low_o_vnum, pArea->hi_o_vnum, db.c: pArea->low_m_vnum, pArea->hi_m_vnum, db.c: IS_SET(pArea->status, AREA_LOADED) ? loadst : notloadst ); db.c: sys->time_of_max = NULL; db.c: sys->mud_name = NULL; db.c: KEY( "Bashpvp", sys->bash_plr_vs_plr, fread_number( fp ) ); db.c: KEY( "Bashnontank", sys->bash_nontank, fread_number( fp ) ); db.c: KEY( "Bestowdif", sys->bestow_dif, fread_number( fp ) ); db.c: KEY( "Build", sys->build_level, fread_number( fp ) ); db.c: KEY ("BanSiteLevel", sys->ban_site_level, fread_number (fp)); db.c: KEY ("BanClassLevel", sys->ban_class_level, fread_number (fp)); db.c: KEY ("BanRaceLevel", sys->ban_race_level, fread_number (fp)); db.c: KEY ("CheckImmHost", sys->check_imm_host, fread_number (fp)); db.c: KEY ("Crashguard", sys->crashguard, fread_number(fp)); db.c: KEY( "Damplrvsplr", sys->dam_plr_vs_plr, fread_number( fp ) ); db.c: KEY( "Damplrvsmob", sys->dam_plr_vs_mob, fread_number( fp ) ); db.c: KEY( "Dammobvsplr", sys->dam_mob_vs_plr, fread_number( fp ) ); db.c: KEY( "Dammobvsmob", sys->dam_mob_vs_mob, fread_number( fp ) ); db.c: KEY( "Dodgemod", sys->dodge_mod, fread_number( fp ) ); db.c: KEY( "DoubleEXP", sys->double_exp, fread_number( fp ) ); db.c: if ( !sys->time_of_max ) db.c: sys->time_of_max = str_dup("(not recorded)"); db.c: if ( !sys->mud_name ) db.c: sys->mud_name = str_dup("(Name Not Set)"); db.c: KEY( "Forcepc", sys->level_forcepc, fread_number( fp ) ); db.c: KEY( "Gougepvp", sys->gouge_plr_vs_plr, fread_number( fp ) ); db.c: KEY( "Gougenontank", sys->gouge_nontank, fread_number( fp ) ); db.c: KEY( "Guildoverseer", sys->guild_overseer, fread_string( fp ) ); db.c: KEY( "Guildadvisor", sys->guild_advisor, fread_string( fp ) ); db.c: KEY( "Homepage", sys->homepage, fread_string_nohash( fp ) ); db.c: KEY( "Highplayers", sys->alltimemax, fread_number( fp ) ); db.c: KEY( "Highplayertime", sys->time_of_max, fread_string_nohash( fp ) ); db.c: KEY( "IdentTries", sys->ident_retries, fread_number( fp ) ); db.c: KEY( "IMCMailVnum", sys->imc_mail_vnum, fread_number( fp ) ); db.c: KEY( "Imm_arena", sys->imm_arena, fread_number( fp ) ); db.c: KEY( "Log", sys->log_level, fread_number( fp ) ); db.c: KEY ("MorphOpt", sys->morph_opt, fread_number (fp)); db.c: KEY( "Msetplayer", sys->level_mset_player, fread_number( fp ) ); db.c: KEY( "MudName", sys->mud_name, fread_string_nohash(fp)); db.c: KEY( "Muse", sys->muse_level, fread_number( fp ) ); db.c: KEY( "Nameresolving", sys->NO_NAME_RESOLVING, fread_number( fp ) ); db.c: KEY( "Overridepriv", sys->level_override_private, fread_number( fp ) ); db.c: KEY( "Parrymod", sys->parry_mod, fread_number( fp ) ); db.c: KEY( "PetSave", sys->save_pets, fread_number( fp ) ); db.c: KEY( "Protoflag", sys->level_modify_proto, fread_number( fp ) ); db.c: KEY( "Readallmail", sys->read_all_mail, fread_number( fp ) ); db.c: KEY( "Readmailfree", sys->read_mail_free, fread_number( fp ) ); db.c: KEY( "Stunplrvsplr", sys->stun_plr_vs_plr, fread_number( fp ) ); db.c: KEY( "Stunregular", sys->stun_regular, fread_number( fp ) ); db.c: KEY( "Saveflags", sys->save_flags, fread_number( fp ) ); db.c: KEY( "Savefreq", sys->save_frequency, fread_number( fp ) ); db.c: KEY( "Staff", sys->muse_level, fread_number( fp ) ); db.c: KEY( "Takeothersmail", sys->take_others_mail, fread_number( fp ) ); db.c: KEY( "Think", sys->think_level, fread_number( fp ) ); db.c: KEY( "Tumblemod", sys->tumble_mod, fread_number( fp ) ); db.c: KEY ("WebCounter", sys->webcounter, fread_number(fp)); db.c: KEY ("WebServer", sys->webtoggle, fread_number(fp)); db.c: KEY( "Webport", sys->webport, fread_number( fp ) ); db.c: KEY( "Wizlock", sys->wizlock, fread_number( fp ) ); db.c: KEY( "Waitforauth", sys->WAIT_FOR_AUTH, fread_number( fp ) ); db.c: KEY( "Writemailfree", sys->write_mail_free, fread_number( fp ) ); db.c: bug( "Load_watchlist: no -1 found." ); db.c: if ( number == -1 ) db.c: pwatch->imm_level = number; db.c: pwatch->imm_name = fread_string_nohash(fp); db.c: pwatch->target_name = fread_string_nohash(fp); db.c: if ( strlen( pwatch->target_name ) < 2 ) db.c: DISPOSE( pwatch->target_name ); db.c: pwatch->player_site = fread_string_nohash(fp); db.c: if ( strlen ( pwatch->player_site ) < 2 ) db.c: DISPOSE( pwatch->player_site ); db.c: if ( pwatch->target_name ) db.c: for(cmd = command_hash[(int)pwatch->target_name[0]]; cmd; cmd = cmd->next) db.c: if(!str_cmp(pwatch->target_name, cmd->name)) db.c: SET_BIT(cmd->flags, CMD_WATCH); db.c:/* Check to make sure range of vnums is free - Scryn 2/27/96 */ db.c: for ( pArea = first_asort; pArea; pArea = pArea->next_sort ) db.c: if ( IS_SET( pArea->status, AREA_DELETED ) ) db.c: if ( low_range < pArea->low_r_vnum && pArea->low_r_vnum < high_range ) db.c: if ( low_range < pArea->hi_r_vnum && pArea->hi_r_vnum < high_range ) db.c: if ( ( low_range >= pArea->low_r_vnum ) db.c: && ( low_range <= pArea->hi_r_vnum ) ) db.c: if ( ( high_range <= pArea->hi_r_vnum ) db.c: && ( high_range >= pArea->low_r_vnum ) ) db.c: if ( low_range < pArea->low_m_vnum && pArea->low_m_vnum < high_range ) db.c: if ( low_range < pArea->hi_m_vnum && pArea->hi_m_vnum < high_range ) db.c: if ( ( low_range >= pArea->low_m_vnum ) db.c: && ( low_range <= pArea->hi_m_vnum ) ) db.c: if ( ( high_range <= pArea->hi_m_vnum ) db.c: && ( high_range >= pArea->low_m_vnum ) ) db.c: if ( low_range < pArea->low_o_vnum && pArea->low_o_vnum < high_range ) db.c: if ( low_range < pArea->hi_o_vnum && pArea->hi_o_vnum < high_range ) db.c: if ( ( low_range >= pArea->low_o_vnum ) db.c: && ( low_range <= pArea->hi_o_vnum ) ) db.c: if ( ( high_range <= pArea->hi_o_vnum ) db.c: && ( high_range >= pArea->low_o_vnum ) ) db.c: sprintf(buf, "Conflict:%-15s| ", db.c: (pArea->filename ? pArea->filename : "(invalid)")); db.c: sprintf( buf2, "Rooms: %5d - %-5d\n\r", pArea->low_r_vnum, db.c: pArea->hi_r_vnum); db.c: sprintf( buf2, "Mobs: %5d - %-5d\n\r", pArea->low_m_vnum, db.c: pArea->hi_m_vnum); db.c: sprintf( buf2, "Objects: %5d - %-5d\n\r", pArea->low_o_vnum, db.c: pArea->hi_o_vnum); db.c: for ( pArea = first_bsort; pArea; pArea = pArea->next_sort ) db.c: if ( IS_SET( pArea->status, AREA_DELETED ) ) db.c: if ( low_range < pArea->low_r_vnum && pArea->low_r_vnum < high_range ) db.c: if ( low_range < pArea->hi_r_vnum && pArea->hi_r_vnum < high_range ) db.c: if ( ( low_range >= pArea->low_r_vnum ) db.c: && ( low_range <= pArea->hi_r_vnum ) ) db.c: if ( ( high_range <= pArea->hi_r_vnum ) db.c: && ( high_range >= pArea->low_r_vnum ) ) db.c: if ( low_range < pArea->low_m_vnum && pArea->low_m_vnum < high_range ) db.c: if ( low_range < pArea->hi_m_vnum && pArea->hi_m_vnum < high_range ) db.c: if ( ( low_range >= pArea->low_m_vnum ) db.c: && ( low_range <= pArea->hi_m_vnum ) ) db.c: if ( ( high_range <= pArea->hi_m_vnum ) db.c: && ( high_range >= pArea->low_m_vnum ) ) db.c: if ( low_range < pArea->low_o_vnum && pArea->low_o_vnum < high_range ) db.c: if ( low_range < pArea->hi_o_vnum && pArea->hi_o_vnum < high_range ) db.c: if ( ( low_range >= pArea->low_o_vnum ) db.c: && ( low_range <= pArea->hi_o_vnum ) ) db.c: if ( ( high_range <= pArea->hi_o_vnum ) db.c: && ( high_range >= pArea->low_o_vnum ) ) db.c: sprintf(buf, "Conflict:%-15s| ", db.c: (pArea->filename ? pArea->filename : "(invalid)")); db.c: sprintf( buf2, "Rooms: %5d - %-5d\n\r", pArea->low_r_vnum, db.c: pArea->hi_r_vnum); db.c: sprintf( buf2, "Mobs: %5d - %-5d\n\r", pArea->low_m_vnum, db.c: pArea->hi_m_vnum); db.c: sprintf( buf2, "Objects: %5d - %-5d\n\r", pArea->low_o_vnum, db.c: pArea->hi_o_vnum); db.c: for ( pArea = first_asort; pArea; pArea = pArea->next_sort ) db.c: if ( IS_SET( pArea->status, AREA_DELETED ) ) db.c: if((pArea->low_r_vnum >= low_range) db.c: && (pArea->hi_r_vnum <= high_range)) db.c: if((pArea->low_m_vnum >= low_range) db.c: && (pArea->hi_m_vnum <= high_range)) db.c: if((pArea->low_o_vnum >= low_range) db.c: && (pArea->hi_o_vnum <= high_range)) db.c: ch_printf(ch, "Conflict:%-15s| Rooms: %5d - %-5d" db.c: " Objs: %5d - %-5d Mobs: %5d - %-5d\n\r", db.c: (pArea->filename ? pArea->filename : "(invalid)"), db.c: pArea->low_r_vnum, pArea->hi_r_vnum, db.c: pArea->low_o_vnum, pArea->hi_o_vnum, db.c: pArea->low_m_vnum, pArea->hi_m_vnum ); db.c: for ( pArea = first_bsort; pArea; pArea = pArea->next_sort ) db.c: if ( IS_SET( pArea->status, AREA_DELETED ) ) db.c: if((pArea->low_r_vnum >= low_range) db.c: && (pArea->hi_r_vnum <= high_range)) db.c: if((pArea->low_m_vnum >= low_range) db.c: && (pArea->hi_m_vnum <= high_range)) db.c: if((pArea->low_o_vnum >= low_range) db.c: && (pArea->hi_o_vnum <= high_range)) db.c: sprintf(ch, "Conflict:%-15s| Rooms: %5d - %-5d" db.c: " Objs: %5d - %-5d Mobs: %5d - %-5d\n\r", db.c: (pArea->filename ? pArea->filename : "(invalid)"), db.c: pArea->low_r_vnum, pArea->hi_r_vnum, db.c: pArea->low_o_vnum, pArea->hi_o_vnum, db.c: pArea->low_m_vnum, pArea->hi_m_vnum ); db.c: * -- Furey db.c: for(pArea = first_area; pArea; pArea = pArea->next) db.c: cf = pArea->weather->climate_temp - 2; db.c: pArea->weather->temp = db.c: number_range(-weath_unit, weath_unit) + db.c: pArea->weather->temp_vector = db.c: cf + number_range(-rand_factor, rand_factor); db.c: cf = pArea->weather->climate_precip - 2; db.c: pArea->weather->precip = db.c: number_range(-weath_unit, weath_unit) + db.c: pArea->weather->precip_vector = db.c: cf + number_range(-rand_factor, rand_factor); db.c: cf = pArea->weather->climate_wind - 2; db.c: pArea->weather->wind = db.c: number_range(-weath_unit, weath_unit) + db.c: pArea->weather->wind_vector = db.c: cf + number_range(-rand_factor, rand_factor); db.c: for(neigh = pArea->weather->first_neighbor; neigh; db.c: if(!neigh->address) db.c: neigh->address = get_area(neigh->name); db.c: if(!neigh->address) db.c: next_neigh = tneigh->next; db.c: pArea->weather->first_neighbor, db.c: pArea->weather->last_neighbor, db.c: STRFREE(tneigh->name); db.c: fold_area(pArea, pArea->filename, FALSE); db.c: tarea = neigh->address; db.c: for(tneigh = tarea->weather->first_neighbor; tneigh; db.c: tneigh = tneigh->next) db.c: if(!strcmp(pArea->name, tneigh->name)) db.c: tneigh->name = STRALLOC(pArea->name); db.c: tarea->weather->first_neighbor, db.c: tarea->weather->last_neighbor, db.c: fold_area(tarea, tarea->filename, FALSE); db.c: tneigh->address = pArea; db.c: next_neigh = neigh->next; db.c: project->first_log = NULL; db.c: project->last_log = NULL; db.c: project->next = NULL; db.c: project->prev = NULL; db.c: project->coder = NULL; db.c: project->description = STRALLOC(""); db.c: project->name = STRALLOC( "" ); db.c: project->owner = STRALLOC( "" ); db.c: project->date = STRALLOC( "Not Set?!"); db.c: project->status = STRALLOC( "No update." ); db.c: KEY("Coder", project->coder, fread_string_nohash(fp)); db.c: STRFREE(project->date); db.c: STRFREE(project->description); db.c: KEY("Date", project->date, fread_string( fp )); db.c: KEY("Description",project->description,fread_string(fp)); db.c: if ( !project->description ) db.c: project->description = STRALLOC( "" ); db.c: if ( !project->name ) db.c: project->name = STRALLOC( "" ); db.c: if ( !project->owner ) db.c: project->owner = STRALLOC( "" ); db.c: if ( !project->date ) db.c: project->date = STRALLOC( "Not Set?!" ); db.c: if ( !project->status ) db.c: project->status = STRALLOC( "No update." ); db.c: if ( str_cmp(project->owner, "None") ) db.c: project->taken = TRUE; db.c: if(!log->sender) db.c: log->sender = STRALLOC( "" ); db.c: if(!log->date) db.c: log->date = STRALLOC( "" ); db.c: if(!log->subject) db.c: log->subject = STRALLOC( "None" ); db.c: log->to_list = STRALLOC( "" ); db.c: LINK( log, project->first_log, project->last_log, next, prev ); db.c: STRFREE(project->name ); db.c: KEY( "Name", project->name, fread_string_nohash( fp ) ); db.c: STRFREE(project->owner); db.c: KEY( "Owner", project->owner, fread_string( fp ) ); db.c: STRFREE(project->status); db.c: KEY( "Status", project->status, fread_string( fp ) ); db.c: log = project->last_log; db.c: UNLINK( log, project->first_log, project->last_log, next, prev ); db.c: tlog = log->prev; db.c: if ( project->coder ) db.c: DISPOSE( project->coder ); db.c: if ( project->description ) db.c: STRFREE( project->description ); db.c: if ( project->name ) db.c: STRFREE( project->name ); db.c: if ( project->owner ) db.c: STRFREE( project->owner ); db.c: if ( project->date ) db.c: STRFREE( project->date ); db.c: if ( project->status ) db.c: STRFREE( project->status ); db.c: log->sender = fread_string( fp ); db.c: log->date = fread_string( fp ); db.c: log->subject = fread_string( fp ); db.c: log->text = fread_string( fp ); db.c: log->next = NULL; db.c: log->prev = NULL; db.c: for ( project = first_project; project; project = project->next ) db.c: fprintf( fpout, "Name %s~\n", project->name ); db.c: fprintf( fpout, "Owner %s~\n", (project->owner) ? project->owner : "None" ); db.c: if ( project->coder ) db.c: fprintf( fpout, "Coder %s~\n", project->coder ); db.c: fprintf( fpout, "Status %s~\n", (project->status) ? project->status : "No update." ); db.c: fprintf( fpout, "Date %s~\n", (project->date) ? project->date : "Not Set?!?" ); db.c: if ( project->description ) db.c: fprintf( fpout, "Description %s~\n", project->description ); db.c: for( log = project->first_log; log; log = log->next ) db.c: log->sender, db.c: log->date, db.c: log->subject, db.c: log->text deity.c: * -----------------------------------------------------------| (0...0) * deity.c: * -----------------------------------------------------------| {o o} * deity.c: * ------------------------------------------------------------------------ * deity.c: * ------------------------------------------------------------------------ * deity.c: for ( deity = first_deity; deity; deity = deity->next ) deity.c: if ( !str_cmp( name, deity->name ) ) deity.c: for ( tdeity = first_deity; tdeity; tdeity = tdeity->next ) deity.c: fprintf( fpout, "%s\n", tdeity->filename ); deity.c: if ( !deity->filename || deity->filename[0] == '\0' ) deity.c: sprintf( buf, "save_deity: %s has no filename", deity->name ); deity.c: sprintf( filename, "%s%s", DEITY_DIR, deity->filename ); deity.c: fprintf( fp, "Filename %s~\n", deity->filename ); deity.c: fprintf( fp, "Name %s~\n", deity->name ); deity.c: fprintf( fp, "Description %s~\n", deity->description ); deity.c: fprintf( fp, "Alignment %d\n", deity->alignment ); deity.c: fprintf( fp, "Worshippers %d\n", deity->worshippers ); deity.c: fprintf( fp, "Flee %d\n", deity->flee ); deity.c: fprintf( fp, "Flee_npcrace %d\n", deity->flee_npcrace ); deity.c: fprintf( fp, "Flee_npcfoe %d\n", deity->flee_npcfoe ); deity.c: fprintf( fp, "Kill %d\n", deity->kill ); deity.c: fprintf( fp, "Kill_npcrace %d\n", deity->kill_npcrace ); deity.c: fprintf( fp, "Kill_npcfoe %d\n", deity->kill_npcfoe ); deity.c: fprintf( fp, "Kill_magic %d\n", deity->kill_magic ); deity.c: fprintf( fp, "Sac %d\n", deity->sac ); deity.c: fprintf( fp, "Bury_corpse %d\n", deity->bury_corpse ); deity.c: fprintf( fp, "Aid_spell %d\n", deity->aid_spell ); deity.c: fprintf( fp, "Aid %d\n", deity->aid ); deity.c: fprintf( fp, "Steal %d\n", deity->steal ); deity.c: fprintf( fp, "Backstab %d\n", deity->backstab ); deity.c: fprintf( fp, "Die %d\n", deity->die ); deity.c: fprintf( fp, "Die_npcrace %d\n", deity->die_npcrace ); deity.c: fprintf( fp, "Die_npcfoe %d\n", deity->die_npcfoe ); deity.c: fprintf( fp, "Spell_aid %d\n", deity->spell_aid ); deity.c: fprintf( fp, "Dig_corpse %d\n", deity->dig_corpse ); deity.c: fprintf( fp, "Scorpse %d\n", deity->scorpse ); deity.c: fprintf( fp, "Savatar %d\n", deity->savatar ); deity.c: fprintf( fp, "Sdeityobj %d\n", deity->sdeityobj ); deity.c: fprintf( fp, "Srecall %d\n", deity->srecall ); deity.c: fprintf( fp, "Suplift %d\n", deity->suplift ); deity.c: fprintf( fp, "Race %d\n", deity->race ); deity.c: fprintf( fp, "Class %d\n", deity->class ); deity.c: fprintf( fp, "Element %d\n", deity->element ); deity.c: fprintf( fp, "Sex %d\n", deity->sex ); deity.c: fprintf( fp, "Affected %s\n", print_bitvector(&deity->affected) ); deity.c: fprintf( fp, "Npcrace %d\n", deity->npcrace ); deity.c: fprintf( fp, "Npcfoe %d\n", deity->npcfoe ); deity.c: fprintf( fp, "Suscept %d\n", deity->suscept ); deity.c: fprintf( fp, "Race2 %d\n", deity->race2 ); deity.c: fprintf( fp, "Susceptnum %d\n", deity->susceptnum ); deity.c: fprintf( fp, "Elementnum %d\n", deity->elementnum ); deity.c: fprintf( fp, "Affectednum %d\n", deity->affectednum ); deity.c: fprintf( fp, "Objstat %d\n", deity->objstat ); deity.c: KEY( "Affected", deity->affected, fread_bitvector( fp ) ); deity.c: KEY( "Affectednum", deity->affectednum, fread_number( fp ) ); deity.c: KEY( "Aid", deity->aid, fread_number( fp ) ); deity.c: KEY( "Aid_spell", deity->aid_spell, fread_number( fp ) ); deity.c: KEY( "Alignment", deity->alignment, fread_number( fp ) ); deity.c: KEY( "Backstab", deity->backstab, fread_number( fp ) ); deity.c: KEY( "Bury_corpse", deity->bury_corpse, fread_number( fp ) ); deity.c: KEY( "Class", deity->class, fread_number( fp ) ); deity.c: KEY( "Description", deity->description, fread_string( fp ) ); deity.c: KEY( "Die", deity->die, fread_number( fp ) ); deity.c: KEY( "Die_npcrace", deity->die_npcrace, fread_number( fp ) ); deity.c: KEY( "Die_npcfoe", deity->die_npcfoe, fread_number( fp ) ); deity.c: KEY( "Dig_corpse", deity->dig_corpse, fread_number( fp ) ); deity.c: if (!deity->name) deity.c: deity->name = STRALLOC( "" ); deity.c: if (!deity->description) deity.c: deity->description = STRALLOC( "" ); deity.c: KEY( "Element", deity->element, fread_number( fp ) ); deity.c: KEY( "Elementnum", deity->elementnum, fread_number( fp ) ); deity.c: KEY( "Filename", deity->filename, fread_string_nohash( fp ) ); deity.c: KEY( "Flee", deity->flee, fread_number( fp ) ); deity.c: KEY( "Flee_npcrace",deity->flee_npcrace, fread_number( fp ) ); deity.c: KEY( "Flee_npcfoe", deity->flee_npcfoe, fread_number( fp ) ); deity.c: KEY( "Kill", deity->kill, fread_number( fp ) ); deity.c: KEY( "Kill_npcrace",deity->kill_npcrace, fread_number( fp ) ); deity.c: KEY( "Kill_npcfoe", deity->kill_npcfoe, fread_number( fp ) ); deity.c: KEY( "Kill_magic", deity->kill_magic, fread_number( fp ) ); deity.c: KEY( "Name", deity->name, fread_string( fp ) ); deity.c: KEY( "Npcfoe", deity->npcfoe, fread_number( fp ) ); deity.c: KEY( "Npcrace", deity->npcrace, fread_number( fp ) ); deity.c: KEY( "Objstat", deity->objstat, fread_number( fp ) ); deity.c: KEY( "Race", deity->race, fread_number( fp ) ); deity.c: KEY( "Race2", deity->race2, fread_number( fp ) ); deity.c: KEY( "Sac", deity->sac, fread_number( fp ) ); deity.c: KEY( "Savatar", deity->savatar, fread_number( fp ) ); deity.c: KEY( "Scorpse", deity->scorpse, fread_number( fp ) ); deity.c: KEY( "Sdeityobj", deity->sdeityobj, fread_number( fp ) ); deity.c: KEY( "Srecall", deity->srecall, fread_number( fp ) ); deity.c: KEY( "Sex", deity->sex, fread_number( fp ) ); deity.c: KEY( "Spell_aid", deity->spell_aid, fread_number( fp ) ); deity.c: KEY( "Steal", deity->steal, fread_number( fp ) ); deity.c: KEY( "Suplift", deity->suplift, fread_number( fp ) ); deity.c: KEY( "Suscept", deity->suscept, fread_number( fp ) ); deity.c: KEY( "Susceptnum", deity->susceptnum, fread_number( fp ) ); deity.c: KEY( "Worshippers", deity->worshippers, fread_number( fp ) ); deity.c: switch( ch->substate ) deity.c: deity = ch->dest_buf; deity.c: STRFREE( deity->description ); deity.c: deity->description = copy_buffer( ch ); deity.c: ch->substate = ch->tempnum; deity.c: send_to_char( "Objstat - being one of:\n\r", ch ); deity.c: send_to_char( " 0 - 1 - 2 - 3 - 4 - 5 - 6\n\r", ch ); deity.c: STRFREE( deity->name ); deity.c: deity->name = STRALLOC( argument ); deity.c: DISPOSE( deity->filename ); deity.c: deity->filename = str_dup( argument ); deity.c: if ( ch->substate == SUB_REPEATCMD ) deity.c: ch->tempnum = SUB_REPEATCMD; deity.c: ch->tempnum = SUB_NONE; deity.c: ch->substate = SUB_DEITYDESC; deity.c: ch->dest_buf = deity; deity.c: start_editing( ch, deity->description ); deity.c: deity->alignment = atoi( argument ); deity.c: deity->flee = atoi( argument ); deity.c: deity->flee_npcrace = atoi( argument ); deity.c: deity->flee_npcfoe = atoi( argument ); deity.c: deity->kill = atoi( argument ); deity.c: deity->kill_npcrace = atoi( argument ); deity.c: deity->kill_npcfoe = atoi( argument ); deity.c: deity->kill_magic = atoi( argument ); deity.c: deity->sac = atoi( argument ); deity.c: deity->bury_corpse = atoi( argument ); deity.c: deity->aid_spell = atoi( argument ); deity.c: deity->aid = atoi( argument ); deity.c: deity->steal = atoi( argument ); deity.c: deity->backstab = atoi( argument ); deity.c: deity->die = atoi( argument ); deity.c: deity->die_npcrace = atoi( argument ); deity.c: deity->die_npcfoe = atoi( argument ); deity.c: deity->spell_aid = atoi( argument ); deity.c: deity->dig_corpse = atoi( argument ); deity.c: deity->scorpse = atoi( argument ); deity.c: deity->savatar = atoi( argument ); deity.c: deity->sdeityobj = atoi( argument ); deity.c: deity->suplift = atoi( argument ); deity.c: deity->objstat = atoi( argument ); deity.c: deity->srecall = atoi( argument ); deity.c: deity->worshippers = atoi( argument ); deity.c: deity->race = -1; deity.c: deity->race = value; deity.c: deity->race2 = -1; deity.c: deity->race2 = value; deity.c: deity->npcrace = value; deity.c: deity->npcfoe = value; deity.c: deity->class = atoi( argument ); deity.c: if ( ( deity->class < 0 ) || ( deity->class >= MAX_CLASS ) ) deity->class = -1; deity.c: deity->susceptnum = atoi( argument ); deity.c: deity->elementnum = atoi( argument ); deity.c: deity->affectednum = atoi( argument ); deity.c: deity->suscept = 0; deity.c: TOGGLE_BIT( deity->suscept, 1 << value ); deity.c: deity->element = 0; deity.c: TOGGLE_BIT( deity->element, 1 << value ); deity.c: deity->sex = atoi( argument ); deity.c: xCLEAR_BITS(deity->affected); deity.c: xTOGGLE_BIT( deity->affected, value ); deity.c: ch_printf( ch, "Deity: %s\n\rFilename: %s\n\rDescription:\n\r%s\n\r", deity->name, deity->filename, deity->description ); deity.c: ch_printf( ch, "Alignment: %-7dNpcrace: %-9sNpcfoe: %s\n\r", deity.c: deity->alignment, deity.c: ( deity->npcrace < 0 || deity->npcrace > MAX_NPC_RACE ) ? "none" : npc_race[deity->npcrace], deity.c: ( deity->npcfoe < 0 || deity->npcfoe > MAX_NPC_RACE ) ? "none" : npc_race[deity->npcfoe] ); deity.c: ch_printf( ch, "Race: %-12sClass: %-11sSex: %-13sRace2: %s\n\r", deity.c: ( deity->race < 0 || deity->race > MAX_RACE ) ? "none" : npc_race[deity->race], deity.c: ( deity->class < 0 || deity->class > MAX_CLASS ) ? "none" : npc_class[deity->class], deity.c: deity->sex == -1 ? "none" : deity.c: deity->sex == SEX_MALE ? "male" : deity.c: deity->sex == SEX_FEMALE ? "female" : "neutral", deity.c: ( deity->race2 < 0 || deity->race2 > MAX_RACE ) ? "none" : npc_race[deity->race2] ); deity.c: ch_printf( ch, "Objstat: %-9dWorshippers: %d\n\r", deity.c: deity->objstat, deity->worshippers ); deity.c: ch_printf( ch, "Affectednum: %-5dElementnum: %-6dSusceptnum: %d\n\r", deity->affectednum, deity->elementnum, deity->susceptnum ); deity.c: ch_printf( ch, "\n\rAffected: %s\n\r", affect_bit_name(&deity->affected) ); deity.c: ch_printf( ch, "Suscept: %s\n\r", flag_string( deity->suscept, ris_flags )); deity.c: ch_printf( ch, "Element: %s\n\r", flag_string( deity->element, ris_flags )); deity.c: ch_printf( ch, "\n\rFlee: %-12dFlee_npcrace: %-4dKill_npcrace: " deity.c: "%-4dKill: %d\n\r", deity->flee, deity->flee_npcrace, deity.c: deity->kill_npcrace, deity->kill ); deity.c: ch_printf( ch, "Kill_magic: %-6dSac: %-13dBury_corpse: %-5dAid_spell: " deity.c: "%d\n\r", deity->kill_magic, deity->sac, deity->bury_corpse, deity.c: deity->aid_spell ); deity.c: ch_printf( ch, "Aid: %-13dSteal: %-11dBackstab: %-8dDie: %d\n\r", deity.c: deity->aid, deity->steal, deity->backstab, deity->die ); deity.c: ch_printf( ch, "Die_npcrace: %-5dDig_corpse: %-6dSpell_aid: %-7dKill_npcfoe: %d\n\r", deity.c: deity->die_npcrace, deity->dig_corpse, deity->spell_aid, deity->kill_npcfoe ); deity.c: ch_printf( ch, "Die_npcfoe: %-6dFlee_npcfoe: %d\n\r", deity.c: deity->die_npcfoe, deity->flee_npcfoe ); deity.c: ch_printf( ch, "\n\rScorpse: %-9dSavatar: %-9dSdeityobj: %-7d" deity.c: "Srecall: %d Suplift: %d\n\r", deity->scorpse, deity->savatar, deity.c: deity->sdeityobj, deity->srecall, deity->suplift ); deity.c: deity->name = STRALLOC( argument ); deity.c: deity->description = STRALLOC( "" ); deity.c: deity->filename = str_dup( filename ); deity.c:/* if ( ch->level < 5 ) deity.c: if ( !ch->pcdata->deity ) deity.c: --ch->pcdata->deity->worshippers; deity.c: ch->pcdata->favor = -2500; deity.c: ch->mental_state = -80; deity.c: xREMOVE_BITS( ch->affected_by, ch->pcdata->deity->affected ); deity.c: REMOVE_BIT( ch->resistant, ch->pcdata->deity->element ); deity.c: REMOVE_BIT( ch->susceptible, ch->pcdata->deity->suscept ); deity.c: af.modifier = -4; deity.c: save_deity(ch->pcdata->deity); deity.c: ch->pcdata->deity = NULL; deity.c: STRFREE(ch->pcdata->deity_name); deity.c: ch->pcdata->deity_name = STRALLOC( "" ); deity.c: if ( ch->pcdata->deity ) deity.c: if ( ( deity->class != -1 ) deity.c: && ( is_class( ch, deity->class )) ) deity.c: if ( ( deity->sex != -1 ) deity.c: && ( deity->sex != ch->sex ) ) deity.c: if ( ( deity->race == -1 ) && ( deity->race2 == -1 ) ); deity.c: if ( ( deity->race != ch->race ) && ( deity->race2 != ch->race ) ) deity.c: if ( ch->pcdata->deity ) deity.c: --ch->pcdata->deity->worshippers; deity.c: ch->pcdata->favor = -2500; deity.c: xREMOVE_BITs( ch->affected_by, ch->pcdata->deity->affected ); deity.c: REMOVE_BIT( ch->resistant, ch->pcdata->deity->element ); deity.c: af.modifier = -4; deity.c: save_deity(ch->pcdata->deity); deity.c: STRFREE(ch->pcdata->deity_name); deity.c: ch->pcdata->deity_name = QUICKLINK( deity->name ); deity.c: ch->pcdata->deity = deity; deity.c: if ( ch->pcdata->favor > deity->affectednum ) deity.c: xSET_BITS( ch->affected_by, ch->pcdata->deity->affected ); deity.c: if ( ch->pcdata->favor > deity->elementnum ) deity.c: SET_BIT( ch->resistant, ch->pcdata->deity->element ); deity.c: if ( ch->pcdata->favor < deity->susceptnum ) deity.c: SET_BIT( ch->susceptible, ch->pcdata->deity->suscept ); deity.c: act( AT_MAGIC, "Body and soul, you devote yourself to $t!", ch, ch->pcdata->deity_name, NULL, TO_CHAR ); deity.c: ++ch->pcdata->deity->worshippers; deity.c: save_deity(ch->pcdata->deity); deity.c: for ( deity = first_deity; deity; deity = deity->next ) deity.c: pager_printf_color( ch, "&G%-14s &g%19d\n\r", deity->name, deity->worshippers ); deity.c: pager_printf_color( ch, "&gDeity: &G%s\n\r", deity->name ); deity.c: pager_printf_color( ch, "&gDescription:\n\r&G%s", deity->description ); deity.c: if ( IS_NPC(ch) || !ch->pcdata->deity ) deity.c: oldfavor = ch->pcdata->favor; deity.c: if ( ch->pcdata->favor < ch->pcdata->deity->scorpse ) deity.c: if ( IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) deity.c: sprintf(buf2,"the corpse of %s", ch->name); deity.c: for ( obj = first_object; obj; obj = obj->next ) deity.c: if ( obj->in_room deity.c: && !str_cmp( buf2, obj->short_descr ) deity.c: && (obj->pIndexData->vnum == 11 ) ) deity.c: if ( IS_SET( obj->in_room->room_flags, ROOM_NOSUPPLICATE ) || (obj->timer > 35) ) deity.c: obj = obj_to_room(obj, ch->in_room); deity.c: ch->pcdata->favor -= ch->pcdata->deity->scorpse; deity.c: if(ch->pcdata->favor < ch->pcdata->deity->susceptnum) deity.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); deity.c: if((oldfavor > ch->pcdata->deity->affectednum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->affectednum) || deity.c: (oldfavor > ch->pcdata->deity->elementnum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->elementnum) || deity.c: (oldfavor < ch->pcdata->deity->susceptnum && deity.c: ch->pcdata->favor >= ch->pcdata->deity->susceptnum)) deity.c: if ( ch->pcdata->favor < ch->pcdata->deity->savatar ) deity.c: char_to_room( victim, ch->in_room ); deity.c: sprintf( buf, victim->short_descr, ch->pcdata->deity->name ); deity.c: STRFREE( victim->short_descr ); deity.c: victim->short_descr = STRALLOC( buf ); deity.c: sprintf( buf, victim->long_descr, ch->pcdata->deity->name ); deity.c: STRFREE( victim->long_descr ); deity.c: victim->long_descr = STRALLOC( buf ); deity.c: sprintf( buf, victim->description, ch->pcdata->deity->name ); deity.c: STRFREE( victim->description ); deity.c: victim->description = STRALLOC( buf ); deity.c: xSET_BIT( victim->affected_by, AFF_CHARM ); deity.c: victim->level = 10; deity.c: victim->hit = ch->hit*6 + ch->pcdata->favor; deity.c: victim->alignment = ch->pcdata->deity->alignment; deity.c: victim->max_hit = ch->hit*6 + ch->pcdata->favor; deity.c: ch->pcdata->favor -= ch->pcdata->deity->savatar; deity.c: if(ch->pcdata->favor < ch->pcdata->deity->susceptnum) deity.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); deity.c: if((oldfavor > ch->pcdata->deity->affectednum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->affectednum) || deity.c: (oldfavor > ch->pcdata->deity->elementnum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->elementnum) || deity.c: (oldfavor < ch->pcdata->deity->susceptnum && deity.c: ch->pcdata->favor >= ch->pcdata->deity->susceptnum)) deity.c: if ( ch->pcdata->favor < ch->pcdata->deity->sdeityobj ) deity.c: obj = create_object( pObjIndex, ch->level ); deity.c: obj = obj_to_room( obj, ch->in_room ); deity.c: sprintf( buf, "sigil %s", ch->pcdata->deity->name ); deity.c: STRFREE( obj->name ); deity.c: obj->name = STRALLOC( buf ); deity.c: sprintf( buf, obj->short_descr, ch->pcdata->deity->name ); deity.c: STRFREE( obj->short_descr ); deity.c: obj->short_descr = STRALLOC( buf ); deity.c: sprintf( buf, obj->description, ch->pcdata->deity->name ); deity.c: STRFREE( obj->description ); deity.c: obj->description = STRALLOC( buf ); deity.c: ch->pcdata->favor -= ch->pcdata->deity->sdeityobj; deity.c: if(ch->pcdata->favor < ch->pcdata->deity->susceptnum) deity.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); deity.c: if((oldfavor > ch->pcdata->deity->affectednum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->affectednum) || deity.c: (oldfavor > ch->pcdata->deity->elementnum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->elementnum) || deity.c: (oldfavor < ch->pcdata->deity->susceptnum && deity.c: ch->pcdata->favor >= ch->pcdata->deity->susceptnum)) deity.c: paf->type = -1; deity.c: paf->duration = -1; deity.c: switch( ch->pcdata->deity->objstat ) deity.c: case 0: paf->location = APPLY_STR; break; deity.c: case 1: paf->location = APPLY_INT; break; deity.c: case 2: paf->location = APPLY_WIS; break; deity.c: case 3: paf->location = APPLY_CON; break; deity.c: case 4: paf->location = APPLY_DEX; break; deity.c: case 5: paf->location = APPLY_CHA; break; deity.c: case 6: paf->location = APPLY_LCK; break; deity.c: paf->modifier = 1; deity.c: xCLEAR_BITS(paf->bitvector); deity.c: LINK( paf, obj->first_affect, obj->last_affect, next, prev ); deity.c: if (ch->pcdata->favor < ch->pcdata->deity->suplift ) { deity.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NOSUPPLICATE ) ) deity.c: if ((ch->hit) > (ch->max_hit/10)) deity.c: ch->hit+=10; deity.c: if ( ch->pcdata->favor < ch->pcdata->deity->srecall ) deity.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NOSUPPLICATE ) ) deity.c: if (ch->position == POS_FIGHTING) { deity.c: if ( !IS_NPC(ch) && ch->pcdata->clan ) deity.c: location = get_room_index( ch->pcdata->clan->recall ); deity.c: if ( ch->mount ) deity.c: char_from_room( ch->mount ); deity.c: char_to_room( ch->mount, location ); deity.c: ch->pcdata->favor -= ch->pcdata->deity->srecall; deity.c: if(ch->pcdata->favor < ch->pcdata->deity->susceptnum) deity.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); deity.c: if((oldfavor > ch->pcdata->deity->affectednum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->affectednum) || deity.c: (oldfavor > ch->pcdata->deity->elementnum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->elementnum) || deity.c: (oldfavor < ch->pcdata->deity->susceptnum && deity.c: ch->pcdata->favor >= ch->pcdata->deity->susceptnum)) deity.c: || !ch->pcdata->deity ) deity.c: oldfavor = ch->pcdata->favor; deity.c: if ( (ch->alignment - ch->pcdata->deity->alignment > 650 deity.c: || ch->alignment - ch->pcdata->deity->alignment < -650) deity.c: && ch->pcdata->deity->alignment != 0 ) deity.c: ch->pcdata->favor -= 2; deity.c: ch->pcdata->favor = URANGE( -2500, ch->pcdata->favor, 2500 ); deity.c: if(ch->pcdata->favor > ch->pcdata->deity->affectednum) deity.c: xSET_BITS(ch->affected_by, ch->pcdata->deity->affected); deity.c: if(ch->pcdata->favor > ch->pcdata->deity->elementnum) deity.c: SET_BIT(ch->resistant, ch->pcdata->deity->element); deity.c: if(ch->pcdata->favor < ch->pcdata->deity->susceptnum) deity.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); deity.c: if((oldfavor > ch->pcdata->deity->affectednum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->affectednum) || deity.c: (oldfavor > ch->pcdata->deity->elementnum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->elementnum) || deity.c: (oldfavor < ch->pcdata->deity->susceptnum && deity.c: ch->pcdata->favor >= ch->pcdata->deity->susceptnum)) deity.c: case 0: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->flee / mod); break; deity.c: case 1: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->flee_npcrace / mod); break; deity.c: case 2: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->kill / mod); break; deity.c: case 3: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->kill_npcrace / mod); break; deity.c: case 4: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->kill_magic / mod); break; deity.c: case 5: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->sac / mod); break; deity.c: case 6: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->bury_corpse / mod); break; deity.c: case 7: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->aid_spell / mod); break; deity.c: case 8: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->aid / mod); break; deity.c: case 9: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->steal / mod); break; deity.c: case 10: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->backstab / mod); break; deity.c: case 11: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->die / mod); break; deity.c: case 12: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->die_npcrace / mod); break; deity.c: case 13: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->spell_aid / mod); break; deity.c: case 14: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->dig_corpse / mod); break; deity.c: case 15: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->die_npcfoe / mod); break; deity.c: case 16: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->flee_npcfoe / mod); break; deity.c: case 17: ch->pcdata->favor += number_fuzzy(ch->pcdata->deity->kill_npcfoe / mod); break; deity.c: ch->pcdata->favor = URANGE( -2500, ch->pcdata->favor, 2500 ); deity.c: if(ch->pcdata->favor > ch->pcdata->deity->affectednum) deity.c: xSET_BITS(ch->affected_by, ch->pcdata->deity->affected); deity.c: if(ch->pcdata->favor > ch->pcdata->deity->elementnum) deity.c: SET_BIT(ch->resistant, ch->pcdata->deity->element); deity.c: if(ch->pcdata->favor < ch->pcdata->deity->susceptnum) deity.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); deity.c: if((oldfavor > ch->pcdata->deity->affectednum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->affectednum) || deity.c: (oldfavor > ch->pcdata->deity->elementnum && deity.c: ch->pcdata->favor <= ch->pcdata->deity->elementnum) || deity.c: (oldfavor < ch->pcdata->deity->susceptnum && deity.c: ch->pcdata->favor >= ch->pcdata->deity->susceptnum)) disable.c: sprintf( buf, "Disabled commands:\n\r%-10s %5s %-15s\n\r", disable.c: for( disabled = first_disabled ; disabled ; disabled = disabled->next ) disable.c: sprintf( buf+strlen(buf), "%-10s %5d %-15s\n\r", disable.c: disabled->command->name, disabled->level, disable.c: disabled->who ); disable.c: for( disabled = first_disabled ; disabled ; disabled = disabled->next ) disable.c: if( disabled->command == cmd ) disable.c: if( disabled->level > get_trust( ch ) ) disable.c: send_to_char( "You don't have the access to un-disable this command.\n\r", ch ); disable.c: first_disabled = disabled->next; disable.c: for( tmp = first_disabled ; tmp->next != disabled ; tmp = tmp->next ) disable.c: tmp->next = disabled->next; disable.c: STRFREE( disabled->who ); disable.c: if( cmd->level > get_trust( ch ) ) disable.c: disabled->command = cmd; disable.c: disabled->who = STRALLOC( ch->name ); disable.c: disabled->level = get_trust( ch ); disable.c: disabled->next = first_disabled; disable.c: ch_printf( ch, "%s is now disabled.\n\r", cmd->name ); disable.c: disabled->command = cmd; disable.c: disabled->level = fread_number( fp ); disable.c: disabled->who = STRALLOC( fread_word( fp ) ); disable.c: disabled->next = first_disabled; disable.c: for( disabled = first_disabled ; disabled ; disabled = disabled->next ) disable.c: fprintf( fp, "%s %d %s\n", disabled->command->name, disable.c: disabled->level, disabled->who ); disable.c: for( disabled = first_disabled ; disabled ; disabled = disabled->next ) disable.c: if( disabled->command->do_fun == cmd->do_fun ) do.c:#include "imc-mercbase.h" do.c:#include "icec-mercbase.h" do.c: if ( !str_cmp( name, "do_sharpen" )) return do_sharpen; /* sharpen skill --Cronel */ do.c: if ( skill == do_sharpen ) return "do_sharpen"; /* sharpen skill --Cronel */ fear.c: if( !ch->fighting ) fear.c: victim = ch->fighting->who; fear.c: if( (IS_NPC(victim) && xIS_SET(victim->act, ACT_SENTINEL) ) fight.c: * -----------------------------------------------------------| (0...0) * fight.c: * -----------------------------------------------------------| {o o} * fight.c: * ------------------------------------------------------------------------ * fight.c: * ------------------------------------------------------------------------ * fight.c:/* From antitank.c --Cronel */ fight.c: if ( ipk->name ) fight.c: DISPOSE( ipk->name ); fight.c: if ( ipk->vict ) fight.c: DISPOSE( ipk->vict ); fight.c: if ( ipk->date ) fight.c: DISPOSE( ipk->date ); fight.c: for ( illegal_pk = first_pk; illegal_pk; illegal_pk = illegal_pk->next ) fight.c: if ( !illegal_pk->name || illegal_pk->name[0] == '\0' ) fight.c: fprintf( fpout, "Name %s~\n", illegal_pk->name ); fight.c: fprintf( fpout, "Vict %s~\n", illegal_pk->vict ); fight.c: fprintf( fpout, "Date %s~\n", illegal_pk->date ); fight.c: KEY( "Date", illegal_pk->date, fread_string(fp) ); fight.c: if ( !illegal_pk->name ) fight.c: if ( !illegal_pk->vict ) fight.c: KEY( "Name", illegal_pk->name, fread_string(fp) ); fight.c: KEY( "Vict", illegal_pk->vict, fread_string(fp) ); fight.c: /* perma-supression -- bard? (can be reset at end of fight, or spell, etc) */ fight.c: if ( timer->value == -1 ) fight.c: if ( timer->count >= 1 ) fight.c: if( !IS_NPC( ch ) && ch->pcdata->arena && sysdata.arena != 2 ) fight.c: hitroll = ch->hitroll + str_app[get_curr_str(ch)].tohit + 2 fight.c: - (abs((ch)->mental_state)/10); fight.c: damroll = ch->damroll + ch->damplus + str_app[get_curr_str(ch)].todam fight.c: + ((ch->mental_state > 5 && ch->mental_state < 15) ? 1 : 0); fight.c: * hunting, hating and fearing code -Thoric fight.c: if ( !ch->hunting || ch->hunting->who != victim ) fight.c: if ( !ch->hating || ch->hating->who != victim ) fight.c: if ( !ch->fearing || ch->fearing->who != victim ) fight.c: if ( ch->hunting ) fight.c: STRFREE( ch->hunting->name ); fight.c: DISPOSE( ch->hunting ); fight.c: ch->hunting = NULL; fight.c: if ( ch->hating ) fight.c: STRFREE( ch->hating->name ); fight.c: DISPOSE( ch->hating ); fight.c: ch->hating = NULL; fight.c: if ( ch->fearing ) fight.c: STRFREE( ch->fearing->name ); fight.c: DISPOSE( ch->fearing ); fight.c: ch->fearing = NULL; fight.c: if ( ch->hunting ) fight.c: CREATE( ch->hunting, HHF_DATA, 1 ); fight.c: ch->hunting->name = QUICKLINK( victim->name ); fight.c: ch->hunting->who = victim; fight.c: if ( ch->hating ) fight.c: CREATE( ch->hating, HHF_DATA, 1 ); fight.c: ch->hating->name = QUICKLINK( victim->name ); fight.c: ch->hating->who = victim; fight.c: if ( ch->fearing ) fight.c: CREATE( ch->fearing, HHF_DATA, 1 ); fight.c: ch->fearing->name = QUICKLINK( victim->name ); fight.c: ch->fearing->who = victim; fight.c: return -10; fight.c: * Note: This function also handles some non-violence updates. fight.c: if ( ch == first_char && ch->prev ) fight.c: bug( "ERROR: first_char->prev != NULL, fixing...", 0 ); fight.c: ch->prev = NULL; fight.c: gch_prev = ch->prev; fight.c: if ( gch_prev && gch_prev->next != ch ) fight.c: sprintf( buf, "FATAL: violence_update: %s->prev->next doesn't point to ch.", fight.c: ch->name ); fight.c: bug( "Short-cutting here", 0 ); fight.c: ch->prev = NULL; fight.c: if ( !ch->in_room || !ch->name ) fight.c: sprintf( buf, "ch: %d ch->in_room: %d ch->prev: %d ch->next: %d", fight.c: (int) ch, (int) ch->in_room, (int) ch->prev, (int) ch->next ); fight.c: sprintf( buf, "lst_ch: %d lst_ch->prev: %d lst_ch->next: %d", fight.c: (int) lst_ch, (int) lst_ch->prev, (int) lst_ch->next ); fight.c: * Stops from fighting nobody - Garinan fight.c: if ( ( ch->position == POS_FIGHTING fight.c: || ch->position == POS_EVASIVE fight.c: || ch->position == POS_DEFENSIVE fight.c: || ch->position == POS_AGGRESSIVE fight.c: || ch->position == POS_BERSERK ) fight.c: sprintf( buf, "%s fighting NULL! (Correcting)", ch->name ); fight.c: ch->position = POS_STANDING; fight.c: if ( ch->fighting ) fight.c: if ( (++ch->fighting->duration % 24) == 0 ) fight.c: ch->fighting->xp = ((ch->fighting->xp * 9) / 10); fight.c: for ( timer = ch->first_timer; timer; timer = timer_next ) fight.c: timer_next = timer->next; fight.c: if ( --timer->count <= 0 ) fight.c: if ( timer->type == TIMER_ASUPRESSED ) fight.c: if ( timer->value == -1 ) fight.c: timer->count = 1000; fight.c: if ( timer->type == TIMER_NUISANCE ) fight.c: DISPOSE( ch->pcdata->nuisance ); fight.c: if ( timer->type == TIMER_DO_FUN ) fight.c: tempsub = ch->substate; fight.c: ch->substate = timer->value; fight.c: (timer->do_fun)( ch, "" ); fight.c: ch->substate = tempsub; fight.c: * So a melee round sounds good to me... -Thoric fight.c: for ( paf = ch->first_affect; paf; paf = paf_next ) fight.c: paf_next = paf->next; fight.c: if ( paf->duration > 0 ) fight.c: paf->duration--; fight.c: if ( paf->duration < 0 ) fight.c: || paf_next->type != paf->type fight.c: || paf_next->duration > 0 ) fight.c: skill = get_skilltype(paf->type); fight.c: if ( paf->type > 0 && skill && skill->msg_off ) fight.c: send_to_char( skill->msg_off, ch ); fight.c: if (paf->type == gsn_possess) fight.c: ch->desc->character = ch->desc->original; fight.c: ch->desc->original = NULL; fight.c: ch->desc->character->desc = ch->desc; fight.c: ch->desc->character->switched = NULL; fight.c: ch->desc = NULL; fight.c: /* Anti powerlevel tanking code --Cronel */ fight.c: if( ch->pcdata->arena && ch->pcdata->arena->status == 2 && sysdata.arena != 2 ) fight.c: if ( IS_SET(ch->in_room->room_flags, ROOM_SAFE ) && !ch->bounty > 0 && !victim->bounty > 0) fight.c: ch->name, victim->name ); fight.c: else if ( IS_AWAKE(ch) && ch->in_room == victim->in_room ) fight.c: /* haste affect -- Scion */ fight.c: for (i=number_range(0, 5); i>0; i--) fight.c: * NPC special attack flags -Thoric fight.c: if ( !xIS_EMPTY(ch->attacks) ) fight.c: attacktype = -1; fight.c: if ( 30 + (ch->level/4) >= number_percent( ) ) fight.c: attacktype = -1; fight.c: attacktype = number_range( 7, MAX_ATTACK_TYPE-1 ); fight.c: if ( xIS_SET( ch->attacks, attacktype ) ) fight.c: retcode = spell_energy_drain( skill_lookup( "energy drain" ), ch->level, ch, victim ); fight.c: retcode = spell_fire_breath( skill_lookup( "fire breath" ), ch->level, ch, victim ); fight.c: retcode = spell_frost_breath( skill_lookup( "frost breath" ), ch->level, ch, victim ); fight.c: retcode = spell_acid_breath( skill_lookup( "acid breath" ), ch->level, ch, victim ); fight.c: retcode = spell_lightning_breath( skill_lookup( "lightning breath" ), ch->level, ch, victim ); fight.c: retcode = spell_gas_breath( skill_lookup( "gas breath" ), ch->level, ch, victim ); fight.c: ch->level, ch, victim ); fight.c: retcode = spell_poison( gsn_poison, ch->level, ch, victim ); fight.c: retcode = spell_nasty_poison( skill_lookup( "nasty poison" ), ch->level, ch, victim ); fight.c: retcode = spell_gaze( skill_lookup( "gaze" ), ch->level, ch, victim ); fight.c: retcode = spell_blindness( gsn_blindness, ch->level, ch, victim ); fight.c: retcode = spell_cause_serious( skill_lookup( "cause serious" ), ch->level, ch, victim ); fight.c: retcode = spell_earthquake( skill_lookup( "earthquake" ), ch->level, ch, victim ); fight.c: retcode = spell_cause_critical( skill_lookup( "cause critical" ), ch->level, ch, victim ); fight.c: retcode = spell_curse( skill_lookup( "curse" ), ch->level, ch, victim ); fight.c: retcode = spell_flamestrike( skill_lookup( "flamestrike" ), ch->level, ch, victim ); fight.c: retcode = spell_harm( skill_lookup( "harm" ), ch->level, ch, victim ); fight.c: retcode = spell_fireball( skill_lookup( "fireball" ), ch->level, ch, victim ); fight.c: retcode = spell_colour_spray( skill_lookup( "colour spray" ), ch->level, ch, victim ); fight.c: retcode = spell_weaken( skill_lookup( "weaken" ), ch->level, ch, victim ); fight.c: if ( attacktype != -1 && (retcode == rCHAR_DIED || char_died(ch)) ) fight.c: * NPC special defense flags -Thoric fight.c: if ( !xIS_EMPTY(ch->defenses) ) fight.c: attacktype = -1; fight.c: if ( 50 + (ch->level/4) > number_percent( ) ) fight.c: attacktype = -1; fight.c: attacktype = number_range( 2, MAX_DEFENSE_TYPE-1 ); fight.c: if ( xIS_SET( ch->defenses, attacktype ) ) fight.c: if( ch->hit < ch->max_hit ) fight.c: retcode = spell_smaug( skill_lookup( "cure light" ), ch->level, ch, ch ); fight.c: if( ch->hit < ch->max_hit ) fight.c: retcode = spell_smaug( skill_lookup( "cure serious" ), ch->level, ch, ch ); fight.c: if( ch->hit < ch->max_hit ) fight.c: retcode = spell_smaug( skill_lookup( "cure critical" ), ch->level, ch, ch ); fight.c: if( ch->hit < ch->max_hit ) fight.c: retcode = spell_smaug( skill_lookup( "heal" ), ch->level, ch, ch ); fight.c: if( victim->fighting && victim->first_affect ) fight.c: retcode = spell_dispel_magic( skill_lookup( "dispel magic" ), ch->level, ch, victim ); fight.c: retcode = spell_dispel_evil( skill_lookup( "dispel evil" ), ch->level, ch, victim ); fight.c: retcode = spell_smaug( skill_lookup( "shockshield" ), ch->level, ch, ch ); fight.c: retcode = spell_smaug( skill_lookup( "fireshield" ), ch->level, ch, ch ); fight.c: retcode = spell_smaug( skill_lookup( "iceshield" ), ch->level, ch, ch ); fight.c: retcode = spell_smaug( skill_lookup( "true" ), ch->level, ch, ch ); fight.c: retcode = spell_smaug( skill_lookup( "sanctuary" ), ch->level, ch, ch ); fight.c: if ( attacktype != -1 && (retcode == rCHAR_DIED || char_died(ch)) ) fight.c: for ( rch = ch->in_room->first_person; rch; rch = rch_next ) fight.c: rch_next = rch->next_in_room; fight.c: * Then rch is the new tank -h fight.c: &&( rch->fighting ) fight.c: &&( who_fighting(rch->fighting->who) == ch ) fight.c: &&( !xIS_SET( rch->fighting->who->act, ACT_AUTONOMOUS ) ) fight.c: &&( rch->style < ch->style ) fight.c: rch->fighting->who->fighting->who = rch; fight.c: if ( IS_AWAKE(rch) && !rch->fighting ) fight.c: * PC's auto-assist others in their group. fight.c: if ( ( ( !IS_NPC(rch) && rch->desc ) fight.c: && !xIS_SET(rch->act, ACT_NOASSIST) ) fight.c: if ( rch->pIndexData == ch->pIndexData fight.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next ) fight.c: if ( vch->mount && vch->mount == rch ) fight.c: if ( xIS_SET(ch->act, PLR_NICE) ) return rNONE; fight.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_NOATTACK) ) fight.c: /* -- Altrag */ fight.c: dual_bonus = IS_NPC(ch) ? (ch->level / 10) : (LEARNED(ch, gsn_dual_wield) / 10); fight.c: chance = IS_NPC(ch) ? ch->level : LEARNED(ch, gsn_dual_wield); fight.c: if ( ch->move < 10 ) fight.c: dual_bonus = -20; fight.c: * NPC predetermined number of attacks -Thoric fight.c: if ( IS_NPC(ch) && ch->numattacks > 0 ) fight.c: for ( chance = 0; chance < ch->numattacks; chance++ ) fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? ch->level fight.c: chance = IS_NPC(ch) ? (int) (ch->level / 2) : 0; fight.c: move = encumbrance( ch, movement_loss[UMIN(SECT_MAX-1, ch->in_room->sector_type)] ); fight.c: if ( ch->move ) fight.c: ch->move = UMAX( 0, ch->move - move ); fight.c: bonus = 0; *gsn_ptr = -1; fight.c: if ( !IS_NPC(ch) && ch->level > 5 && wield ) fight.c: switch(wield->value[3]) fight.c: default: *gsn_ptr = -1; break; fight.c: if ( *gsn_ptr != -1 ) fight.c: bonus = (int) ((LEARNED(ch, *gsn_ptr) -50)/10); fight.c: ( 1 + abs( ch->alignment - ch->pcdata->clan->alignment ) / 1000 ); fight.c: bonus -= ch->pcdata->favor / -400 ; fight.c: * -- Altrag fight.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) fight.c: if ( paf->location == APPLY_HITROLL ) fight.c: tohit += paf->modifier; fight.c: for ( paf = obj->first_affect; paf; paf = paf->next ) fight.c: if ( paf->location == APPLY_HITROLL ) fight.c: tohit += paf->modifier; fight.c: lvl = UMAX( 1, (ch->level - 10) / 2 ); fight.c: if ( number_percent() + (victim->level - lvl) < 40 ) fight.c: return ch->level; fight.c: lvl = ch->level / 2; fight.c: if ( number_percent() + (victim->level - lvl) < 70 ) fight.c: int prof_gsn = -1; fight.c: * Guard against weird room-leavings. fight.c: if ( victim->position == POS_DEAD || ch->in_room != victim->in_room ) fight.c: * Figure out the weapon doing the damage -Thoric fight.c: * Dual wield support -- switch weapons each attack fight.c: if ( ch->fighting /* make sure fight is already started */ fight.c: && !xIS_EMPTY(ch->attacks) ) fight.c: /* slow affect -- Scion */ fight.c: if ( xIS_SET( ch->attacks, attacktype ) ) fight.c: attacktype = -1; fight.c: attacktype = -1; fight.c: attacktype = -1; fight.c: attacktype = -1; fight.c: if ( wield && wield->item_type == ITEM_WEAPON ) fight.c: dt += wield->value[3]; fight.c: * Calculate to-hit-armor-class-0 versus armor. fight.c: thac0_00 = ch->mobthac0; fight.c: thac0_00 = class_table[ch->class]->thac0_00; fight.c: thac0_32 = class_table[ch->class]->thac0_32; fight.c:// thac0 = interpolate( ch->level, thac0_00, thac0_32 ) - GET_HITROLL(ch); fight.c: thac0 = interpolate( ch->level, thac0_00, thac0_32 ) - get_hitroll( ch, FALSE ); fight.c: victim_ac = UMAX( -19, (int) (GET_AC(victim) / 10) ); fight.c: victim_ac -= 4; fight.c: * given to whoever is more intelligent -Thoric fight.c: if ( ch->fighting && ch->fighting->who == victim ) fight.c: sh_int times = ch->fighting->timeskilled; fight.c: sh_int intdiff = get_curr_int(ch) - get_curr_int(victim); fight.c: || ( diceroll != 19 && diceroll < thac0 - victim_ac ) ) fight.c: if ( prof_gsn != -1 ) fight.c: dam = number_range( ch->barenumdie, ch->baresizedie * ch->barenumdie ); fight.c: dam = number_range( wield->value[1], wield->value[2] ); fight.c: if ( victim->position == POS_BERSERK ) fight.c: else if ( victim->position == POS_AGGRESSIVE ) fight.c: else if ( victim->position == POS_DEFENSIVE ) fight.c: else if ( victim->position == POS_EVASIVE ) fight.c: if ( ch->position == POS_BERSERK ) fight.c: else if ( ch->position == POS_AGGRESSIVE ) fight.c: else if ( ch->position == POS_DEFENSIVE ) fight.c: else if ( ch->position == POS_EVASIVE ) fight.c: if ( !IS_NPC(ch) && ch->pcdata->learned[gsn_enhanced_damage] > 0 ) fight.c: dam *= (2 + URANGE( 2, ch->level - (victim->level/4), 30 ) / 8); fight.c: dam *= (2 + URANGE( 2, ch->level - (victim->level/4), 30 ) / 16); fight.c: * Handle PLUS1 - PLUS6 ris bits vs. weapon hitroll -Thoric fight.c: /* check for RIS_PLUSx -Thoric */ fight.c: imm = res = -1; sus = 1; fight.c: if ( IS_SET( victim->immune, x ) ) fight.c: if ( IS_SET( victim->resistant, x ) ) fight.c: if ( IS_SET( victim->susceptible, x ) ) fight.c: mod -= 10; fight.c: mod -= 2; fight.c: dam = -1; fight.c: if ( prof_gsn != -1 ) fight.c: if ( dam == -1 ) fight.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) fight.c: act( AT_HIT, skill->imm_char, ch, NULL, victim, TO_CHAR ); fight.c: if ( skill->imm_vict && skill->imm_vict[0] != '\0' ) fight.c: act( AT_HITME, skill->imm_vict, ch, NULL, victim, TO_VICT ); fight.c: if ( skill->imm_room && skill->imm_room[0] != '\0' ) fight.c: act( AT_ACTION, skill->imm_room, ch, NULL, victim, TO_NOTVICT ); fight.c: * Weapon spell support -Thoric fight.c: && !IS_SET(victim->immune, RIS_MAGIC) fight.c: && !IS_SET(victim->in_room->room_flags, ROOM_NO_MAGIC) ) fight.c: for ( aff = wield->pIndexData->first_affect; aff; aff = aff->next ) fight.c: if ( aff->location == APPLY_WEAPONSPELL fight.c: && IS_VALID_SN(aff->modifier) fight.c: && skill_table[aff->modifier]->spell_fun ) fight.c: retcode = (*skill_table[aff->modifier]->spell_fun) ( aff->modifier, (wield->level+3)/3, ch, victim ); fight.c: for ( aff = wield->first_affect; aff; aff = aff->next ) fight.c: if ( aff->location == APPLY_WEAPONSPELL fight.c: && IS_VALID_SN(aff->modifier) fight.c: && skill_table[aff->modifier]->spell_fun ) fight.c: retcode = (*skill_table[aff->modifier]->spell_fun) ( aff->modifier, (wield->level+3)/3, ch, victim ); fight.c: * magic shields that retaliate -Thoric fight.c: int prof_gsn = -1; fight.c: if ( projectile->item_type == ITEM_PROJECTILE fight.c: || projectile->item_type == ITEM_WEAPON ) fight.c: dt = TYPE_HIT + projectile->value[3]; fight.c: proj_bonus = number_range(projectile->value[1], projectile->value[2]); fight.c: if ( victim->position == POS_DEAD || char_died(victim) ) fight.c: if ( wield && wield->item_type == ITEM_MISSILE_WEAPON ) fight.c: dt += wield->value[3]; fight.c: * Calculate to-hit-armor-class-0 versus armor. fight.c: thac0_00 = ch->mobthac0; fight.c: thac0_00 = class_table[ch->class]->thac0_00; fight.c: thac0_32 = class_table[ch->class]->thac0_32; fight.c: // thac0 = interpolate( ch->level, thac0_00, thac0_32 ) - GET_HITROLL(ch) + (dist*2); fight.c: thac0 = interpolate( ch->level, thac0_00, thac0_32 ) - get_hitroll( ch, FALSE ) + (dist*2); fight.c: victim_ac = UMAX( -19, (int) (GET_AC(victim) / 10) ); fight.c: victim_ac -= 4; fight.c: || ( diceroll != 19 && diceroll < thac0 - victim_ac ) ) fight.c: if ( prof_gsn != -1 ) fight.c: if ( projectile->in_obj ) fight.c: if ( projectile->carried_by ) fight.c: obj_to_room(projectile, victim->in_room); fight.c: dam = number_range(wield->value[1], wield->value[2]) + (proj_bonus / 10); fight.c: if ( victim->position == POS_BERSERK ) fight.c: else if ( victim->position == POS_AGGRESSIVE ) fight.c: else if ( victim->position == POS_DEFENSIVE ) fight.c: else if ( victim->position == POS_EVASIVE ) fight.c: if ( !IS_NPC(ch) && ch->pcdata->learned[gsn_enhanced_damage] > 0 ) fight.c: * Handle PLUS1 - PLUS6 ris bits vs. weapon hitroll -Thoric fight.c: /* check for RIS_PLUSx -Thoric */ fight.c: imm = res = -1; sus = 1; fight.c: if ( IS_SET( victim->immune, x ) ) fight.c: if ( IS_SET( victim->resistant, x ) ) fight.c: if ( IS_SET( victim->susceptible, x ) ) fight.c: mod -= 10; fight.c: mod -= 2; fight.c: dam = -1; fight.c: if ( prof_gsn != -1 ) fight.c: if ( dam == -1 ) fight.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) fight.c: act( AT_HIT, skill->imm_char, ch, NULL, victim, TO_CHAR ); fight.c: if ( skill->imm_vict && skill->imm_vict[0] != '\0' ) fight.c: act( AT_HITME, skill->imm_vict, ch, NULL, victim, TO_VICT ); fight.c: if ( skill->imm_room && skill->imm_room[0] != '\0' ) fight.c: act( AT_ACTION, skill->imm_room, ch, NULL, victim, TO_NOTVICT ); fight.c: if ( projectile->in_obj ) fight.c: if ( projectile->carried_by ) fight.c: obj_to_room(projectile, victim->in_room); fight.c: if ( projectile->in_obj ) fight.c: if ( projectile->carried_by ) fight.c: obj_to_room(projectile, victim->in_room); fight.c:/* weapon spells -Thoric */ fight.c: && !IS_SET(victim->immune, RIS_MAGIC) fight.c: && !IS_SET(victim->in_room->room_flags, ROOM_NO_MAGIC) ) fight.c: for ( aff = wield->pIndexData->first_affect; aff; aff = aff->next ) fight.c: if ( aff->location == APPLY_WEAPONSPELL fight.c: && IS_VALID_SN(aff->modifier) fight.c: && skill_table[aff->modifier]->spell_fun ) fight.c: retcode = (*skill_table[aff->modifier]->spell_fun) ( aff->modifier, (wield->level+3)/3, ch, victim ); fight.c: for ( aff = wield->first_affect; aff; aff = aff->next ) fight.c: if ( aff->location == APPLY_WEAPONSPELL fight.c: && IS_VALID_SN(aff->modifier) fight.c: && skill_table[aff->modifier]->spell_fun ) fight.c: retcode = (*skill_table[aff->modifier]->spell_fun) ( aff->modifier, (wield->level+3)/3, ch, victim ); fight.c: * -Thoric fight.c: if ( IS_SET(ch->immune, ris ) && !IS_SET(ch->no_immune, ris) ) fight.c: modifier -= 10; fight.c: if ( IS_SET(ch->resistant, ris ) && !IS_SET(ch->no_resistant, ris) ) fight.c: modifier -= 2; fight.c: if ( IS_SET(ch->susceptible, ris ) && !IS_SET(ch->no_susceptible, ris) ) fight.c: return -1; fight.c: sh_int anopc = 0; /* # of (non-pkill) pc in a (ch) */ fight.c: sh_int bnopc = 0; /* # of (non-pkill) pc in b (victim) */ fight.c: sprintf( buf, "Damage: null victim! Player: %s", ch->name ); fight.c: if ( victim->position == POS_DEAD ) fight.c: * Check damage types for RIS -Thoric fight.c: if ( dam == -1 ) fight.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) fight.c: act( AT_HIT, skill->imm_char, ch, NULL, victim, TO_CHAR ); fight.c: if ( skill->imm_vict && skill->imm_vict[0] != '\0' ) fight.c: act( AT_HITME, skill->imm_vict, ch, NULL, victim, TO_VICT ); fight.c: if ( skill->imm_room && skill->imm_room[0] != '\0' ) fight.c: act( AT_ACTION, skill->imm_room, ch, NULL, victim, TO_NOTVICT ); fight.c: if( !victim || !victim->name || victim->name[0] == '\0' ) fight.c: for( attemptFix = first_char ; attemptFix ; attemptFix = attemptFix->next ) fight.c: if( attemptFix->prev ) fight.c: if( attemptFix->prev->next != attemptFix ) fight.c: bug( "damage: attemptFix->prev->next != attemptFix. Fixing." ); fight.c: attemptFix->prev->next = attemptFix; fight.c: if( attemptFix->next ) fight.c: if( attemptFix->next->prev != attemptFix ) fight.c: bug( "damage: attemptFix->next->prev != attemptFix. Fixing." ); fight.c: attemptFix->next->prev = attemptFix; fight.c: if( attemptFix->fighting != NULL && attemptFix->fighting->who->fighting == NULL ) fight.c: if (ch->next) fight.c: if (ch->next->prev != ch) fight.c: bug("who_fighting: ch->next->prev != ch. Shortcutting!!",0); fight.c: ch->next->prev=ch; fight.c: if (ch->prev) fight.c: if (ch->prev->next != ch) fight.c: bug("who_fighting: ch->prev->next != ch. Shortcutting!!",0); fight.c: ch->prev->next=ch; fight.c: * a way out. --Shaddai fight.c: if ( IS_SET(victim->in_room->room_flags, ROOM_SAFE) && !victim->bounty > 0 && !ch->bounty > 0 ) fight.c: if ( !xIS_SET( victim->act, ACT_SENTINEL ) ) fight.c: if ( victim->hunting ) fight.c: if ( victim->hunting->who != ch ) fight.c: STRFREE( victim->hunting->name ); fight.c: victim->hunting->name = QUICKLINK( ch->name ); fight.c: victim->hunting->who = ch; fight.c: if ( !xIS_SET(victim->act, ACT_PACIFIST) ) /* Gorog */ fight.c: if ( victim->hating ) fight.c: if ( victim->hating->who != ch ) fight.c: STRFREE( victim->hating->name ); fight.c: victim->hating->name = QUICKLINK( ch->name ); fight.c: victim->hating->who = ch; fight.c: if ( !xIS_SET(victim->act, ACT_PACIFIST) ) /* Gorog */ fight.c: maxdam = (ch->level2 == -1) ? ch->level * 80 : ch->level2 * 80; fight.c: maxdam = (ch->level2 == -1) ? ch->level * 40 : ch->level2 * 40; fight.c: if ( dam > maxdam && !( ch->level >= 115 ) ) fight.c: sprintf(buf, "** %s (lvl %d) -> %s **", fight.c: ch->name, fight.c: ch->level, fight.c: victim->name); fight.c: if (victim->position > POS_STUNNED) fight.c: if (!victim->fighting && victim->in_room == ch->in_room) fight.c: vwas: victim->position = POS_FIGHTING; fight.c: if ( IS_NPC(victim) && victim->fighting ) fight.c: victim->position = POS_FIGHTING; fight.c: else if (victim->fighting) fight.c: switch (victim->style) fight.c: victim->position = POS_EVASIVE; fight.c: victim->position = POS_DEFENSIVE; fight.c: victim->position = POS_AGGRESSIVE; fight.c: victim->position = POS_BERSERK; fight.c: victim->position = POS_FIGHTING; fight.c: if (victim->position > POS_STUNNED) fight.c: if (!ch->fighting && victim->in_room == ch->in_room) fight.c: && victim->master fight.c: && victim->master->in_room == ch->in_room fight.c: retcode = multi_hit(ch, victim->master, TYPE_UNDEFINED); fight.c: if (victim->master == ch) fight.c: /* count the # of non-pkill pc in a ( not including == ch ) */ fight.c: for (gch = ch->in_room->first_person; gch; gch = gch->next_in_room) fight.c: /* count the # of non-pkill pc in b ( not including == victim ) */ fight.c: for (gch = victim->in_room->first_person; gch; gch = gch->next_in_room) fight.c: /* only consider disbanding if both groups have 1(+) non-pk pc */ fight.c: lch = ch->leader ? ch->leader : ch; fight.c: /* disband non-pk members from lch's group if it is pk */ fight.c: for (gch = ch->in_room->first_person; gch; fight.c: gch = gch->next_in_room) fight.c: for (gch = ch->in_room->first_person; gch; gch = gch->next_in_room) fight.c: /* ch is leader - disband non-pks from group */ fight.c: lch = victim->leader ? victim->leader : victim; fight.c: /* lch is pk, disband non-pk's from group */ fight.c: for (gch = victim->in_room->first_person; gch; fight.c: gch = gch->next_in_room) fight.c: /* victim is leader of group - disband non-pks */ fight.c: for (gch = victim->in_room->first_person; gch; fight.c: gch = gch->next_in_room) fight.c: count the # of non-pkill pc in a ( not including == ch ) fight.c: for (gch = ch->in_room->first_person; gch; gch = gch->next_in_room) fight.c: count the # of non-pkill pc in b ( not including == victim ) fight.c: for (gch = victim->in_room->first_person; gch; gch = gch->next_in_room) fight.c: only consider disbanding if both groups have 1(+) non-pk pc, fight.c: (ch->leader == victim) ? victim : ch, NULL, fight.c: (ch->leader == victim) ? victim->master : ch->master, fight.c: if (ch->leader == victim) fight.c: if (ch->leader != NULL && !IS_NPC(ch->leader) && fight.c: !IS_PKILL(ch->leader)) fight.c: ch->master, TO_NOTVICT); fight.c: for (gch = ch->in_room->first_person; gch; gch = gch->next_in_room) fight.c: gch->master, TO_NOTVICT); fight.c: if (victim->leader != NULL && !IS_NPC(victim->leader) && fight.c: !IS_PKILL(victim->leader)) fight.c: victim->master, TO_NOTVICT); fight.c: for (gch = victim->in_room->first_person; gch; gch = gch->next_in_room) fight.c: gch->master, TO_NOTVICT); fight.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) fight.c: for ( gch = victim->in_room->first_person; gch; gch = gch->next_in_room ) fight.c: xREMOVE_BIT(ch->affected_by, AFF_INVISIBLE); fight.c: xREMOVE_BIT(ch->affected_by, AFF_HIDE); fight.c: dam -= (int) (dam / 4); fight.c: if (dt >= TYPE_HIT && ch->in_room == victim->in_room) fight.c: && xIS_SET(ch->defenses, DFND_DISARM) fight.c: && ch->level > 9 fight.c: && number_percent() < ch->level / 3) /* Was 2 try this --Shaddai*/ fight.c: && xIS_SET(ch->attacks, ATCK_TRIP) fight.c: && ch->level > 5 fight.c: && number_percent() < ch->level / 2) fight.c: * Code to handle equipment getting damaged, and also support -Thoric fight.c: dam -= 5; /* add a bonus for having something to block the blow */ fight.c: victim->hit -= dam; fight.c: * Get experience based on % of damage done -Thoric fight.c: && !IS_NPC(ch) && ch->fighting && ch->fighting->xp ) fight.c: if ( ch->fighting->who == victim ) fight.c: xp_gain = (int) (ch->fighting->xp * dam) / victim->max_hit; fight.c: xp_gain = (int) (xp_compute( ch, victim ) * 0.85 * dam) / victim->max_hit; fight.c: && victim->level >= LEVEL_IMMORTAL fight.c: && victim->hit < 1 fight.c: victim->hit = 1; fight.c: if (!IS_NPC(victim) && NOT_AUTHED(victim) && victim->hit < 1) fight.c: victim->hit = 1; fight.c: && !IS_SET( victim->immune, RIS_POISON ) fight.c: && !saves_poison_death( ch->level, victim ) ) fight.c: af.modifier = -2; fight.c: /* Was ch, supposed to have been victim -- Kratas */ fight.c: victim->mental_state = URANGE( 20, victim->mental_state + (IS_PKILL(ch) ? 1 : 2), 100 ); fight.c: * Vampire self preservation -Thoric fight.c: if ( dam >= (victim->max_hit / 10) ) /* get hit hard, lose blood */ fight.c: gain_condition(victim, COND_BLOODTHIRST, -1 - (victim->level / 20)); fight.c: if ( victim->hit <= (victim->max_hit / 8) fight.c: && victim->pcdata->condition[COND_BLOODTHIRST]>5 ) fight.c: -URANGE(3, victim->level / 10, 8) ); fight.c: victim->hit += URANGE( 4, (victim->max_hit / 30), 15); fight.c: && victim->hit < 1 fight.c: victim->hit = 1; fight.c: switch( victim->position ) fight.c: if ( skill->die_char && skill->die_char[0] != '\0' ) fight.c: act( AT_DEAD, skill->die_char, ch, NULL, victim, TO_CHAR ); fight.c: if ( skill->die_vict && skill->die_vict[0] != '\0' ) fight.c: act( AT_DEAD, skill->die_vict, ch, NULL, victim, TO_VICT ); fight.c: if ( skill->die_room && skill->die_room[0] != '\0' ) fight.c: act( AT_DEAD, skill->die_room, ch, NULL, victim, TO_NOTVICT ); fight.c: if ( dam > victim->max_hit / 4 ) fight.c:/* should be the victim - shogar fight.c: if ( victim->hit < victim->max_hit / 4 ) fight.c:/* should be the victim - shogar fight.c: if ( victim->fighting fight.c: && victim->fighting->who->hunting fight.c: && victim->fighting->who->hunting->who == victim ) fight.c: stop_hunting( victim->fighting->who ); fight.c: if ( victim->fighting fight.c: && victim->fighting->who->hating fight.c: && victim->fighting->who->hating->who == victim ) fight.c: stop_hating( victim->fighting->who ); fight.c: if ( victim->position == POS_DEAD ) fight.c: sprintf(log_buf, "%s has died!", victim->name); fight.c: /* Bounty stuff begins - Garinan */ fight.c: if ( !IS_NPC( ch ) && !IS_NPC( victim ) && victim->bounty > 0 && ch != victim && ch->name != victim->name ) fight.c: ch->bowed += victim->bounty; fight.c: ch->bkills++; fight.c: adjust_hiscore("bounty", ch, ch->bkills); fight.c: sprintf( log_buf, "&YYou have claimed %d gold from the head of %s!\n\r", victim->bounty, victim->name ); fight.c: victim->bounty = 0; fight.c: sprintf( log_buf, "%s has claimed the bounty from the head of %s!", ch->name, victim->name ); fight.c: /* Bounty stuff ends - Garinan */ fight.c: sprintf( log_buf, "%s has been killed by %s!", victim->name, fight.c: (IS_NPC(ch) ? ch->short_descr : ch->name) ); fight.c: victim->name, fight.c: victim->level, fight.c: (IS_NPC(ch) ? ch->short_descr : ch->name), fight.c: victim->in_room->vnum ); fight.c: if (!IS_NPC( ch ) && !IS_IMMORTAL( ch ) && ch->pcdata->clan fight.c: && ch->pcdata->clan->clan_type != CLAN_ORDER fight.c: && ch->pcdata->clan->clan_type != CLAN_GUILD fight.c: sprintf( filename, "%s%s.record", CLAN_DIR, ch->pcdata->clan->name ); fight.c: sprintf( log_buf, "&P(%2d) %-12s &wvs &P(%2d) %s &P%s ... &w%s", fight.c: ch->level, fight.c: ch->name, fight.c: victim->level, fight.c: victim->pcdata->clan ? victim->pcdata->clan->badge : fight.c: victim->name, fight.c: ch->in_room->area->name ); fight.c: if ( victim->pcdata->clan && fight.c: victim->pcdata->clan->name == ch->pcdata->clan->name) fight.c: if ( victim->exp > exp_level(victim, victim->level) ) fight.c: gain_exp( victim, (exp_level(victim, victim->level) - victim->exp)/4 ); fight.c: victim->exp = exp_level( victim, victim->level ); fight.c: if ( ch->in_room == victim->in_room ) fight.c: if ( xIS_SET(ch->act, PLR_AUTOGOLD) ) fight.c: init_gold = ch->gold; fight.c: new_gold = ch->gold; fight.c: gold_diff = (new_gold - init_gold); fight.c: if ( xIS_SET(ch->act, PLR_AUTOLOOT) fight.c: && victim != ch ) /* prevent nasty obj problems -- Blodkai */ fight.c: if ( xIS_SET(ch->act, PLR_AUTOSAC) ) fight.c: if ( !npcvict && !victim->desc fight.c: && !IS_SET( victim->pcdata->flags, PCFLAG_NORECALL ) ) fight.c: if ( number_range( 0, victim->wait ) == 0) fight.c: if ( ( xIS_SET(victim->act, ACT_WIMPY) && number_bits( 1 ) == 0 fight.c: && victim->hit < victim->max_hit / 2 ) fight.c: || ( IS_AFFECTED(victim, AFF_CHARM) && victim->master fight.c: && victim->master->in_room != victim->in_room ) ) fight.c: && victim->hit > 0 fight.c: && victim->hit <= victim->wimpy fight.c: && victim->wait == 0 ) fight.c: if ( !npcvict && xIS_SET( victim->act, PLR_FLEE ) ) fight.c: if ( !victim ) /*Gonna find this is_safe crash bug -Blod*/ fight.c: bug( "Is_safe: %s opponent does not exist!", ch->name ); fight.c: if ( victim->in_room == NULL ) fight.c: bug( "Is_safe: %s has no physical location!", victim->name ); fight.c: if ( IS_SET( victim->in_room->room_flags, ROOM_SAFE ) && !victim->bounty > 0 && !ch->bounty > 0) fight.c:// if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PACIFIST) ) /* Gorog */ fight.c: capitalize(victim->short_descr)); fight.c: if ( !IS_NPC( ch ) && ch->level >= LEVEL_IMMORTAL ) fight.c: && IS_SET( victim->in_room->area->flags, AFLAG_NOPKILL ) ) fight.c: if ( (get_age( ch ) < 18 || ch->level < 5) && !in_arena(ch) ) /* Scion arenacode */ fight.c: if ( (get_age( victim ) < 18 || victim->level < 5) && !in_arena(victim) ) /* Scion arenacode */ fight.c:/* if ( ch->level - victim->level > 5 fight.c: || victim->level - ch->level > 5 ) fight.c: if ((ch->level - victim->level > 10 fight.c: || victim->level - ch->level > 10) fight.c: /* non-charmed mobs can loot anything */ fight.c: if ( IS_NPC(ch) && !ch->master ) fight.c: /* members of different clans can loot too! -Thoric */ fight.c:/* && IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) fight.c: && IS_SET( victim->pcdata->flags, PCFLAG_DEADLY )*/ ) fight.c: level_ratio = URANGE( 1, ch->level / victim->level, LEVEL_AVATAR); fight.c: if ( ch->pcdata->clan ) fight.c: ch->pcdata->clan->mkills++; fight.c: ch->pcdata->mkills++; fight.c: adjust_hiscore("mkill", ch, ch->pcdata->mkills); fight.c: ch->in_room->area->mkills++; fight.c: if ( ch->pcdata->deity ) fight.c: if ( victim->race == ch->pcdata->deity->npcrace ) fight.c: if ( victim->race == ch->pcdata->deity->npcfoe ) fight.c: if ( ch == victim || ch->level >= LEVEL_IMMORTAL ) fight.c: ch->pcdata->pkills++; fight.c: adjust_hiscore("pkill", ch, ch->pcdata->pkills); fight.c: victim->pcdata->pdeaths++; fight.c: if ( xIS_SET(victim->act, PLR_KILLER) fight.c: || xIS_SET(victim->act, PLR_THIEF) ) fight.c: if ( ch->pcdata->clan ) fight.c: if ( victim->level < 10 ) fight.c: ch->pcdata->clan->pkills[0]++; fight.c: else if ( victim->level < 15 ) fight.c: ch->pcdata->clan->pkills[1]++; fight.c: else if ( victim->level < 20 ) fight.c: ch->pcdata->clan->pkills[2]++; fight.c: else if ( victim->level < 30 ) fight.c: ch->pcdata->clan->pkills[3]++; fight.c: else if ( victim->level < 40 ) fight.c: ch->pcdata->clan->pkills[4]++; fight.c: else if ( victim->level < 50 ) fight.c: ch->pcdata->clan->pkills[5]++; fight.c: ch->pcdata->clan->pkills[6]++; fight.c: ch->pcdata->pkills++; fight.c: adjust_hiscore("pkill",ch, ch->pcdata->pkills); fight.c: ch->in_room->area->pkills++; fight.c: /* clan checks -Thoric */ fight.c:/* && IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) fight.c: && IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) */) fight.c: if ( !ch->pcdata->clan fight.c: || !victim->pcdata->clan fight.c: || ( ch->pcdata->clan->clan_type != CLAN_NOKILL fight.c: && victim->pcdata->clan->clan_type != CLAN_NOKILL fight.c: && ch->pcdata->clan != victim->pcdata->clan ) ) fight.c: if ( ch->pcdata->clan ) fight.c: if ( victim->level < 10 ) fight.c: ch->pcdata->clan->pkills[0]++; fight.c: else if ( victim->level < 15 ) fight.c: ch->pcdata->clan->pkills[1]++; fight.c: else if ( victim->level < 20 ) fight.c: ch->pcdata->clan->pkills[2]++; fight.c: else if ( victim->level < 30 ) fight.c: ch->pcdata->clan->pkills[3]++; fight.c: else if ( victim->level < 40 ) fight.c: ch->pcdata->clan->pkills[4]++; fight.c: else if ( victim->level < 50 ) fight.c: ch->pcdata->clan->pkills[5]++; fight.c: ch->pcdata->clan->pkills[6]++; fight.c: ch->pcdata->pkills++; fight.c: adjust_hiscore("pkill",ch,ch->pcdata->pkills); fight.c: ch->hit = ch->max_hit; fight.c: ch->mana = ch->max_mana; fight.c: ch->move = ch->max_move; fight.c: if ( ch->pcdata ) fight.c: ch->pcdata->condition[COND_BLOODTHIRST] = (10 + ch->level); fight.c: act( AT_MAGIC, "Bolts of blue energy rise from the corpse, seeping into $n.", ch, victim->name, NULL, TO_ROOM ); fight.c: act( AT_MAGIC, "Bolts of blue energy rise from the corpse, seeping into you.", ch, victim->name, NULL, TO_CHAR ); fight.c: if ( victim->pcdata->clan ) fight.c: if ( ch->level < 10 ) fight.c: victim->pcdata->clan->pdeaths[0]++; fight.c: else if ( ch->level < 15 ) fight.c: victim->pcdata->clan->pdeaths[1]++; fight.c: else if ( ch->level < 20 ) fight.c: victim->pcdata->clan->pdeaths[2]++; fight.c: else if ( ch->level < 30 ) fight.c: victim->pcdata->clan->pdeaths[3]++; fight.c: else if ( ch->level < 40 ) fight.c: victim->pcdata->clan->pdeaths[4]++; fight.c: else if ( ch->level < 50 ) fight.c: victim->pcdata->clan->pdeaths[5]++; fight.c: victim->pcdata->clan->pdeaths[6]++; fight.c: victim->pcdata->pdeaths++; fight.c: /* xSET_BIT(victim->act, PLR_PK); */ fight.c: * Charm-o-rama. fight.c: if ( !ch->master ) fight.c: IS_NPC(ch) ? ch->short_descr : ch->name ); fight.c: xREMOVE_BIT( ch->affected_by, AFF_CHARM ); fight.c: if ( ch->master ) fight.c: check_killer( ch->master, victim ); fight.c: if ( victim->pcdata->clan ) fight.c: victim->pcdata->clan->mdeaths++; fight.c: victim->pcdata->mdeaths++; fight.c: adjust_hiscore( "mdeath", victim, victim->pcdata->mdeaths ); fight.c: victim->in_room->area->mdeaths++; fight.c: level_ratio = URANGE( 1, ch->level / victim->level, LEVEL_AVATAR ); fight.c: if ( victim->pcdata->deity ) fight.c: if ( ch->race == victim->pcdata->deity->npcrace ) fight.c: if ( ch->race == victim->pcdata->deity->npcfoe ) fight.c: if ( ch->pcdata->clan ) fight.c: ch->pcdata->clan->illegal_pk++; fight.c: ch->pcdata->illegal_pk++; fight.c: ch->in_room->area->illegal_pk++; fight.c: if ( victim->pcdata->clan ) fight.c: if ( ch->level < 10 ) fight.c: victim->pcdata->clan->pdeaths[0]++; fight.c: else if ( ch->level < 15 ) fight.c: victim->pcdata->clan->pdeaths[1]++; fight.c: else if ( ch->level < 20 ) fight.c: victim->pcdata->clan->pdeaths[2]++; fight.c: else if ( ch->level < 30 ) fight.c: victim->pcdata->clan->pdeaths[3]++; fight.c: else if ( ch->level < 40 ) fight.c: victim->pcdata->clan->pdeaths[4]++; fight.c: else if ( ch->level < 50 ) fight.c: victim->pcdata->clan->pdeaths[5]++; fight.c: victim->pcdata->clan->pdeaths[6]++; fight.c: victim->pcdata->pdeaths++; fight.c: victim->in_room->area->pdeaths++; fight.c: if ( xIS_SET(ch->act, PLR_KILLER) ) fight.c: xSET_BIT(ch->act, PLR_KILLER); fight.c: if ( xIS_SET( ch->act, PLR_ATTACKER) ) fight.c: xREMOVE_BIT(ch->act, PLR_ATTACKER); fight.c: * of attacker flags in the realms. -Narn fight.c: || xIS_SET(victim->act, PLR_KILLER) fight.c: || xIS_SET(victim->act, PLR_THIEF) ) fight.c: { if ( !(ch->pcdata->clan && victim->pcdata->clan fight.c: && ch->pcdata->clan == victim->pcdata->clan ) ) return; } fight.c: * Charm-o-rama. fight.c: if ( !ch->master ) fight.c: IS_NPC(ch) ? ch->short_descr : ch->name ); fight.c: xREMOVE_BIT( ch->affected_by, AFF_CHARM ); fight.c: do_murder. -Narn */ fight.c: /* xSET_BIT(ch->master->act, PLR_ATTACKER);*/ fight.c: || ch->level >= LEVEL_IMMORTAL fight.c: || xIS_SET(ch->act, PLR_ATTACKER) fight.c: || xIS_SET(ch->act, PLR_KILLER) fight.c: xSET_BIT(ch->act, PLR_ATTACKER); fight.c: if ( victim->hit > 0 ) fight.c: if ( victim->position <= POS_STUNNED ) fight.c: victim->position = POS_STANDING; fight.c: victim->position = POS_STUNNED; fight.c: if ( IS_NPC(victim) || victim->hit <= -11 ) fight.c: if ( victim->mount ) fight.c: victim, NULL, victim->mount, TO_ROOM ); fight.c: xREMOVE_BIT( victim->mount->act, ACT_MOUNTED ); fight.c: victim->mount = NULL; fight.c: victim->position = POS_DEAD; fight.c: if ( victim->hit <= -6 ) victim->position = POS_MORTAL; fight.c: else if ( victim->hit <= -3 ) victim->position = POS_INCAP; fight.c: else victim->position = POS_STUNNED; fight.c: if ( victim->position > POS_STUNNED fight.c: victim->position = POS_STUNNED; fight.c: if ( victim->mount ) fight.c: victim, NULL, victim->mount, TO_ROOM ); fight.c: xREMOVE_BIT( victim->mount->act, ACT_MOUNTED ); fight.c: victim->mount = NULL; fight.c: if ( ch->fighting ) fight.c: sprintf( buf, "Set_fighting: %s -> %s (already fighting %s)", fight.c: ch->name, victim->name, ch->fighting->who->name ); fight.c: /* Limit attackers -Thoric */ fight.c: if ( victim->num_fighting > max_fight(victim) ) fight.c: fight->who = victim; fight.c: fight->xp = (int) xp_compute( ch, victim ) * 0.85; fight.c: fight->align = align_compute( ch, victim ); fight.c: fight->timeskilled = times_killed(ch, victim); fight.c: ch->num_fighting = 1; fight.c: ch->fighting = fight; fight.c: /* ch->position = POS_FIGHTING; */ fight.c: ch->position = POS_FIGHTING; fight.c: switch(ch->style) fight.c: ch->position = POS_EVASIVE; fight.c: ch->position = POS_DEFENSIVE; fight.c: ch->position = POS_AGGRESSIVE; fight.c: ch->position = POS_BERSERK; fight.c: default: ch->position = POS_FIGHTING; fight.c: victim->num_fighting++; fight.c: if ( victim->switched && IS_AFFECTED(victim->switched, AFF_POSSESS) ) fight.c: send_to_char( "You are disturbed!\n\r", victim->switched ); fight.c: do_return( victim->switched, "" ); fight.c: if ( !ch->fighting ) fight.c: if (ch->next) fight.c: if (ch->next->prev != ch) fight.c: bug("who_fighting: ch->next->prev != ch. Shortcutting!!",0); fight.c: ch->next->prev=ch; fight.c: if (ch->prev) fight.c: if (ch->prev->next != ch) fight.c: bug("who_fighting: ch->prev->next != ch. Shortcutting!!",0); fight.c: ch->prev->next=ch; fight.c: return ch->fighting->who; fight.c: if ( ch->fighting ) fight.c: if ( !char_died(ch->fighting->who) ) fight.c: --ch->fighting->who->num_fighting; fight.c: DISPOSE( ch->fighting ); fight.c: ch->fighting = NULL; fight.c: if ( ch->mount ) fight.c: ch->position = POS_MOUNTED; fight.c: ch->position = POS_STANDING; fight.c: /* Berserk wears off after combat. -- Altrag */ fight.c: send_to_char(skill_table[gsn_berserk]->msg_off, ch); fight.c: for ( fch = first_char; fch; fch = fch->next ) fight.c: for(i = 0;i < 32 && ch->xflags;i++) fight.c: name = IS_NPC(ch) ? ch->short_descr : ch->name; fight.c: obj->timer = number_range( 4, 7 ); fight.c: obj->value[3] = 10; fight.c: sprintf( buf, obj->short_descr, name ); fight.c: STRFREE( obj->short_descr ); fight.c: obj->short_descr = STRALLOC( buf ); fight.c: sprintf( buf, obj->description, name ); fight.c: STRFREE( obj->description ); fight.c: obj->description = STRALLOC( buf ); fight.c: obj = obj_to_room( obj, ch->in_room ); fight.c: was_in_room = ch->in_room; fight.c: for ( pexit = was_in_room->first_exit; pexit; pexit = pexit->next ) fight.c: if ( pexit->to_room fight.c: && pexit->to_room != was_in_room ) fight.c: ch->in_room = pexit->to_room; fight.c: ch->in_room = was_in_room; fight.c: if(victim->morph) fight.c: if ( victim->in_room->sector_type == SECT_OCEANFLOOR fight.c: || victim->in_room->sector_type == SECT_UNDERWATER fight.c: || victim->in_room->sector_type == SECT_WATER_SWIM fight.c: || victim->in_room->sector_type == SECT_WATER_NOSWIM ) fight.c: else if ( victim->in_room->sector_type == SECT_AIR ) fight.c: victim->pIndexData->killed++; fight.c: if ( victim->pcdata->mdeaths + victim->pcdata->pdeaths < 3 ) fight.c: while ( victim->first_affect ) fight.c: affect_remove( victim, victim->first_affect ); fight.c: victim->affected_by = race_table[victim->race]->affected; fight.c: victim->resistant = 0; fight.c: victim->susceptible = 0; fight.c: victim->immune = 0; fight.c: victim->carry_weight= 0; fight.c: victim->armor = 100; fight.c: victim->armor += race_table[victim->race]->ac_plus; fight.c: victim->attacks = race_table[victim->race]->attacks; fight.c: victim->defenses = race_table[victim->race]->defenses; fight.c: victim->mod_str = 0; fight.c: victim->mod_dex = 0; fight.c: victim->mod_wis = 0; fight.c: victim->mod_int = 0; fight.c: victim->mod_con = 0; fight.c: victim->mod_cha = 0; fight.c: victim->mod_lck = 0; fight.c: victim->damroll = 0; fight.c: victim->hitroll = 0; fight.c: victim->mental_state = -10; fight.c: victim->alignment = URANGE( -1000, victim->alignment, 1000 ); fight.c:/* victim->alignment = race_table[victim->race]->alignment; fight.c:-- switched lines just for now to prevent mortals from building up fight.c: victim->saving_poison_death = race_table[victim->race]->saving_poison_death; fight.c: victim->saving_wand = race_table[victim->race]->saving_wand; fight.c: victim->saving_para_petri = race_table[victim->race]->saving_para_petri; fight.c: victim->saving_breath = race_table[victim->race]->saving_breath; fight.c: victim->saving_spell_staff = race_table[victim->race]->saving_spell_staff; fight.c: victim->position = POS_RESTING; fight.c: victim->hit = UMAX( 1, victim->hit ); fight.c: victim->mana = UMAX( 1, victim->mana ); fight.c: victim->move = UMAX( 1, victim->move ); fight.c: * Pardon crimes... -Thoric fight.c: if ( xIS_SET( victim->act, PLR_KILLER) ) fight.c: xREMOVE_BIT( victim->act, PLR_KILLER); fight.c: if ( xIS_SET( victim->act, PLR_THIEF) ) fight.c: xREMOVE_BIT( victim->act, PLR_THIEF); fight.c: victim->pcdata->condition[COND_FULL] = 12; fight.c: victim->pcdata->condition[COND_THIRST] = 12; fight.c: victim->pcdata->condition[COND_BLOODTHIRST] = (victim->level / 2); fight.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) fight.c: if (xIS_SET(ch->act, PLR_QUESTOR)&&IS_NPC(victim)) fight.c: if (ch->questmob == victim->pIndexData->vnum) fight.c: ch->questmob = -1; fight.c: lch = ch->leader ? ch->leader : ch; fight.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) fight.c: if ( gch->level - lch->level > 8 ) fight.c: if ( gch->level - lch->level < -8 ) fight.c: if ( !gch->fighting ) fight.c: gch->alignment = align_compute( gch, victim ); fight.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) fight.c: obj_next = obj->next_content; fight.c: if ( obj->wear_loc == WEAR_NONE ) fight.c: obj = obj_to_room( obj, ch->in_room ); fight.c: if (gch->level <= 5) fight.c: return gch->alignment; fight.c: align = gch->alignment - victim->alignment; fight.c: /* Added divalign to keep neutral chars shifting faster -- Blodkai */ fight.c: if ( gch->alignment > -350 && gch->alignment < 350 ) fight.c: newalign = UMIN( gch->alignment + (align-500)/divalign, 1000 ); fight.c: if ( align < -500 ) fight.c: newalign = UMAX( gch->alignment + (align+500)/divalign, -1000 ); fight.c: newalign = gch->alignment - (int) (gch->alignment/divalign); fight.c: int gchlev = gch->level; fight.c: * URANGE( 0, (victim->level - gchlev) + 10, 13 )) / 10; fight.c: align = gch->alignment - victim->alignment; fight.c: if ( align > 990 || align < -990 ) fight.c: if ( gch->alignment > 300 && align < 250 ) fight.c: /* get 1/4 exp for players -Thoric */ fight.c: /* reduce exp for killing the same mob repeatedly -Thoric */ fight.c: xp = (xp * (20-times)) / 20; fight.c: * semi-intelligent experienced player vs. novice player xp gain fight.c: xp_ratio = (int) gch->played / gchlev; fight.c: * a kill than the amount for your current experience level -Thoric fight.c: return URANGE(0, xp, exp_level(gch, gchlev+1) - exp_level(gch, gchlev) ); fight.c: * Added code to produce different messages based on weapon type - FB fight.c: * Added better bug message so you can track down the bad dt's -Shaddai fight.c: dampc = ( (dam * 1000) / victim->max_hit) + fight.c: ( 50 - ((victim->hit * 50) / victim->max_hit) ); fight.c: if ( ch->in_room != victim->in_room ) fight.c: was_in_room = ch->in_room; fight.c: char_to_room(ch, victim->in_room); fight.c: w_index = dt - TYPE_HIT; fight.c: dt, ch->name, ch->in_room->vnum ); fight.c: d_index = 11 + (dampc - 100)/20; fight.c: d_index = 16 + (dampc - 200)/100; fight.c: (IS_SET(ch->pcdata->flags, PCFLAG_GAG)))) gcflag = TRUE; fight.c: (IS_SET(victim->pcdata->flags, PCFLAG_GAG)))) gvflag = TRUE; fight.c: attack = attack_table[dt - TYPE_HIT]; fight.c: dt, ch->name, ch->in_room->vnum ); fight.c: attack = skill->noun_damage; fight.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) fight.c: act( AT_HIT, skill->miss_char, ch, NULL, victim, TO_CHAR ); fight.c: if ( skill->miss_vict && skill->miss_vict[0] != '\0' ) fight.c: act( AT_HITME, skill->miss_vict, ch, NULL, victim, TO_VICT ); fight.c: if ( skill->miss_room && skill->miss_room[0] != '\0' ) fight.c: if (strcmp( skill->miss_room,"supress" ) ) fight.c: act( AT_ACTION, skill->miss_room, ch, NULL, victim, TO_NOTVICT ); fight.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) fight.c: act( AT_HIT, skill->hit_char, ch, NULL, victim, TO_CHAR ); fight.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) fight.c: act( AT_HITME, skill->hit_vict, ch, NULL, victim, TO_VICT ); fight.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) fight.c: act( AT_ACTION, skill->hit_room, ch, NULL, victim, TO_NOTVICT ); fight.c: attack = obj->short_descr; fight.c: attack = attack_table[dt - TYPE_HIT]; fight.c: dt, ch->name, ch->in_room->vnum ); fight.c: if ( IS_NPC(victim) && victim->morph) fight.c: if ( !xIS_SET(victim->act, PLR_KILLER) fight.c: && !xIS_SET(victim->act, PLR_THIEF) fight.c: if ( IS_AFFECTED(victim, AFF_CHARM) && victim->master != NULL ) fight.c: if ( IS_AFFECTED(ch, AFF_CHARM) && ch->master == victim ) fight.c: if ( ch->position == POS_FIGHTING fight.c: || ch->position == POS_EVASIVE fight.c: || ch->position == POS_DEFENSIVE fight.c: || ch->position == POS_AGGRESSIVE fight.c: || ch->position == POS_BERSERK fight.c: if ( ch->master == victim ) fight.c: if ( ch->master ) fight.c: xSET_BIT(ch->master->act, PLR_ATTACKER); fight.c: if ( ch->position == POS_FIGHTING fight.c: || ch->position == POS_EVASIVE fight.c: || ch->position == POS_DEFENSIVE fight.c: || ch->position == POS_AGGRESSIVE fight.c: || ch->position == POS_BERSERK fight.c: if ( !IS_NPC( victim ) && xIS_SET(ch->act, PLR_NICE ) ) fight.c: if ( !IS_NPC( victim ) && xIS_SET(victim->act, PLR_PK ) ) fight.c: sprintf( log_buf, "%s: murder %s.", ch->name, victim->name ); fight.c: log_string_plus( log_buf, LOG_NORMAL, ch->level ); fight.c:/* sprintf( buf, "Help! I am being attacked by %s!", Spammy crap.. let 'em yell for themselves -- Scion fight.c: IS_NPC( ch ) ? ch->short_descr : ch->name ); fight.c: if ( IS_SET(ch->in_room->room_flags, ROOM_ARENA) ) fight.c: if ( IS_SET(ch->in_room->area->flags, AFLAG_FREEKILL) ) fight.c: if ( ch->in_room->vnum >= 29 && ch->in_room->vnum <= 43 ) fight.c: if ( !str_cmp(ch->in_room->area->filename, "arena.are") ) fight.c: if ( ( !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) || fight.c: !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) || fight.c: /*!IS_SET(victim->pcdata->flags, PCFLAG_DEADLY) fight.c: ||*/ ch->level - victim->level > 10 fight.c: /*|| !IS_SET(ch->pcdata->flags, PCFLAG_DEADLY)*/ ) fight.c: sprintf(buf, " (%s)", ch->name); fight.c: sprintf(buf2, " (%s)", victim->name); fight.c: illegal_pkill->vict = victim->name; fight.c: illegal_pkill->name = ch->name; fight.c: illegal_pkill->date = ctime (¤t_time); fight.c: if ( victim->bounty > 0 && !(ch->level - victim->level) > 10) fight.c: if ( victim->bounty > 0 && !IS_SET(victim->pcdata->flags, PCFLAG_DEADLY) ) fight.c: if ( !IS_SET(ch->pcdata->flags, PCFLAG_DEADLY) && ch->belig == 0) fight.c: ch->belig = 1; fight.c: (IS_NPC(victim) ? victim->short_descr : victim->name), fight.c: victim->in_room->vnum ); fight.c: last_pkroom = victim->in_room->vnum; fight.c: REMOVE_BIT(ch->pcdata->flags,PCFLAG_IMMPROOF); fight.c: if ( ch->position == POS_FIGHTING fight.c: || ch->position == POS_EVASIVE fight.c: || ch->position == POS_DEFENSIVE fight.c: || ch->position == POS_AGGRESSIVE fight.c: || ch->position == POS_BERSERK ) fight.c: if ( ch->mount ) fight.c: ch->position = POS_MOUNTED; fight.c: ch->position = POS_STANDING; fight.c: if ( ch->move <= 0 ) { fight.c: /* No fleeing while more aggressive than standard or hurt. - Haus */ fight.c: if ( !IS_NPC( ch ) && ch->position < POS_FIGHTING ) { fight.c: if ( IS_NPC( ch ) && ch->position <= POS_SLEEPING ) fight.c: was_in = ch->in_room; fight.c: || !pexit->to_room fight.c: || IS_SET( pexit->exit_info, EX_NOFLEE ) fight.c: || ( IS_SET( pexit->exit_info, EX_CLOSED ) fight.c: && IS_SET( pexit->to_room->room_flags, ROOM_NO_MOB ) ) ) fight.c: xREMOVE_BIT ( ch->affected_by, AFF_SNEAK ); fight.c: if ( ch->mount && ch->mount->fighting ) fight.c: stop_fighting( ch->mount, TRUE ); fight.c: if ( ( now_in = ch->in_room ) == was_in ) fight.c: ch->in_room = was_in; fight.c: ch->in_room = now_in; fight.c: los = ( exp_level( ch, ch->level+1 ) - exp_level( ch, ch->level ) ) * 0.0015; fight.c: if ( ch->level < LEVEL_AVATAR ) fight.c: gain_exp( ch, 0 - los ); fight.c: if ( wf && ch->pcdata->deity ) fight.c: int level_ratio = URANGE( 1, wf->level / ch->level, LEVEL_AVATAR ); fight.c: if ( wf && wf->race == ch->pcdata->deity->npcrace ) fight.c: if ( wf && wf->race == ch->pcdata->deity->npcfoe ) fight.c: los = ( exp_level( ch, ch->level+1 ) - exp_level( ch, ch->level ) ) * 0.005; fight.c: if ( ch->level < LEVEL_AVATAR ) fight.c: gain_exp( ch, 0 - los ); fight.c: act( AT_CYAN, "You shout 'kame-a-ma-a' and release an energyball in $N's direction.", ch, NULL, victim, TO_CHAR ); fight.c: act( AT_CYAN, "$n shouts 'kame-a-ma-a' and releases an energyball in your direction.", ch, NULL, victim, TO_VICT ); fight.c: act( AT_CYAN, "$n shouts 'kame-a-ma-a' and releases an energyball in $N's direction.", ch, NULL, victim, TO_NOTVICT ); gboards.c: Note Board system, (c) 1995-96 Erwin S. Andreasen, erwin@pip.dknet.dk gboards.c:#define L_SUP (MAX_LEVEL - 1) /* if not already defined */ gboards.c:#define BOARD_NOACCESS -1 gboards.c:#define BOARD_NOTFOUND -1 gboards.c: if( note->sender ) gboards.c: STRFREE( note->sender ); gboards.c: if( note->to_list ) gboards.c: STRFREE( note->to_list ); gboards.c: if( note->subject ) gboards.c: DISPOSE( note->subject ); gboards.c: if( note->date ) /* was note->datestamp for some reason */ gboards.c: DISPOSE( note->date ); gboards.c: if( note->text ) gboards.c: DISPOSE( note->text ); gboards.c: note->next = NULL; gboards.c: note->sender = NULL; gboards.c: note->expire = 0; gboards.c: note->to_list = NULL; gboards.c: note->subject = NULL; gboards.c: note->date = NULL; gboards.c: note->date_stamp = 0; gboards.c: note->text = NULL; gboards.c: fprintf (fp, "Sender %s~\n", note->sender); gboards.c: fprintf (fp, "Date %s~\n", note->date); gboards.c: fprintf (fp, "Stamp %ld\n", note->date_stamp); gboards.c: fprintf (fp, "Expire %ld\n", note->expire); gboards.c: fprintf (fp, "To %s~\n", note->to_list); gboards.c: fprintf (fp, "Subject %s~\n", note->subject); gboards.c: fprintf (fp, "Text\n%s~\n\n", note->text); gboards.c: note->date_stamp = ++last_note_stamp; gboards.c: note->date_stamp = current_time; gboards.c: if (board->note_first) /* are there any notes in there now? */ gboards.c: for (p = board->note_first; p->next; p = p->next ) gboards.c: p->next = note; gboards.c: board->note_first = note; gboards.c: note_chan( board->short_name, note, FALSE ); gboards.c: sprintf (filename, "%s%s", NOTE_DIR, board->short_name); gboards.c: board->changed = TRUE; /* set it to TRUE hope it will be OK later? */ gboards.c: return -1; gboards.c: return -1; gboards.c: if (board->note_first == note) gboards.c: board->note_first = note->next; gboards.c: for (p = board->note_first; p && p->next != note; p = p->next) gboards.c: p->next = note->next; gboards.c: for (p = board->note_first; p ; p = p->next) gboards.c: sprintf (filename, "%s%s", NOTE_DIR, board->short_name); gboards.c: for (note = board->note_first; note ; note = note->next) gboards.c: int length = strlen( note->sender )-4; gboards.c: num, note->sender, note->subject, gboards.c: note->date, gboards.c: note->to_list, gboards.c: note->text); gboards.c: sprintf (filename, "%s%s", NOTE_DIR, board->short_name); gboards.c: pnote->sender = fread_string( fp ); gboards.c: pnote->date = fread_string_nohash( fp ); gboards.c: pnote->date_stamp = fread_number( fp ); gboards.c: pnote->expire = fread_number( fp ); gboards.c: pnote->to_list = fread_string( fp ); gboards.c: pnote->subject = fread_string_nohash( fp ); gboards.c: pnote->text = fread_string_nohash( fp ); gboards.c: pnote->next = NULL; /* jic */ gboards.c: if (pnote->expire < current_time) gboards.c: sprintf (archive_name, "%s%s.old", NOTE_DIR, board->short_name); gboards.c: board->changed = TRUE; gboards.c: if ( board->note_first == NULL ) gboards.c: board->note_first = pnote; gboards.c: last_note->next = pnote; gboards.c: if (!str_cmp (ch->name, note->sender)) gboards.c: if (is_full_name ("all", note->to_list)) gboards.c: is_full_name ("imm", note->to_list) || gboards.c: is_full_name ("imms", note->to_list) || gboards.c: is_full_name ("immortal", note->to_list) || gboards.c: is_full_name ("god", note->to_list) || gboards.c: is_full_name ("gods", note->to_list) || gboards.c: is_full_name ("immortals", note->to_list))) gboards.c: is_full_name ("imp", note->to_list) || gboards.c: is_full_name ("imps", note->to_list) || gboards.c: is_full_name ("implementor", note->to_list) || gboards.c: is_full_name ("implementors", note->to_list))) gboards.c: if (is_full_name (ch->name, note->to_list)) gboards.c: if (is_number(note->to_list) && get_trust(ch) >= atoi(note->to_list)) gboards.c: if ( !ch->desc ) gboards.c: if ( ch->substate == SUB_RESTRICTED ) gboards.c: bug( "NOT GOOD: start_editing_note: ch->substate == SUB_RESTRICTED", 0 ); gboards.c: if ( ch->editor ) gboards.c: edit->numlines = 0; gboards.c: edit->on_line = 0; gboards.c: edit->size = 0; gboards.c: edit->line[lines][lpos] = '\0'; gboards.c: edit->line[lines][lpos] = '\0'; gboards.c: edit->line[lines][lpos++] = c; gboards.c: edit->line[lines][lpos] = '\0'; gboards.c: edit->line[lines][lpos] = '~'; gboards.c: edit->line[lines][lpos+1] = '\0'; gboards.c: edit->numlines = lines; gboards.c: edit->size = size; gboards.c: edit->on_line = lines; gboards.c: ch->editor = edit; gboards.c: ch->desc->connected = CON_NOTE_TEXT; gboards.c: if ( !ch->editor ) gboards.c: for ( x = 0; x < ch->editor->numlines; x++ ) gboards.c: strcpy( tmp, ch->editor->line[x] ); gboards.c: if ( tmp && tmp[len-1] == '~' ) gboards.c: tmp[len-1] = '\0'; gboards.c: if (board->read_level > get_trust(ch)) gboards.c: last_read = ch->pcdata->last_note[board_number(board)]; gboards.c: for (note = board->note_first; note; note = note->next) gboards.c: if (is_note_to(ch, note) && ((long)last_read < (long)note->date_stamp)) gboards.c: if (get_trust(ch) < ch->pcdata->board->write_level) gboards.c: if (ch->pcdata->in_progress && (!ch->pcdata->in_progress->text)) gboards.c: free_global_note (ch->pcdata->in_progress); gboards.c: ch->pcdata->in_progress = NULL; gboards.c: if (!ch->pcdata->in_progress) gboards.c: ch->pcdata->in_progress = new_note(); gboards.c: ch->pcdata->in_progress->sender = STRALLOC(ch->name); gboards.c: strtime[strlen(strtime)-1] = '\0'; gboards.c: ch->pcdata->in_progress->date = str_dup( strtime ); gboards.c: ch->pcdata->in_progress->text ? "continuing" : "posting", gboards.c: ch->pcdata->board->short_name); gboards.c: sprintf (buf, "&YFrom&w: %s\n\r\n\r", ch->name); gboards.c: if (!ch->pcdata->in_progress->text) /* Are we continuing an old note or not? */ gboards.c: switch (ch->pcdata->board->force_type) gboards.c: ch->pcdata->board->names); gboards.c: ch->pcdata->board->names); gboards.c: ch->pcdata->board->names); gboards.c: ch->desc->connected = CON_NOTE_TO; gboards.c: ch->pcdata->in_progress->to_list, gboards.c: ctime(&ch->pcdata->in_progress->expire), gboards.c: ch->pcdata->in_progress->subject); gboards.c: send_to_char_color (ch->pcdata->in_progress->text,ch); gboards.c: ch->substate = SUB_GBOARD_NOTE; gboards.c: ch->dest_buf = ch->pcdata; gboards.c: ch->pcdata->in_progress->text = str_dup( "" ); gboards.c: start_editing_note( ch, ch->pcdata->in_progress->text ); gboards.c: ch->desc->connected = CON_NOTE_TEXT; gboards.c: time_t *last_note = &ch->pcdata->last_note[board_number(ch->pcdata->board)]; gboards.c: for (p = ch->pcdata->board->note_first; p; p = p->next) gboards.c: *last_note = UMAX (*last_note, p->date_stamp); gboards.c: for (p = ch->pcdata->board->note_first; p ; p = p->next, count++) gboards.c: if ((p->date_stamp > *last_note) && is_note_to(ch,p)) gboards.c: *last_note = UMAX (*last_note, p->date_stamp); gboards.c: sprintf (buf, "Changed to next board, %s.\n\r", ch->pcdata->board->short_name); gboards.c: p = find_note (ch, ch->pcdata->board, atoi(argument)); gboards.c: if (str_cmp(ch->name,p->sender) && (get_trust(ch) < LEVEL_IMPLEMENTOR)) gboards.c: unlink_note (ch->pcdata->board,p); gboards.c: save_board(ch->pcdata->board); /* save the board */ gboards.c: for (p = ch->pcdata->board->note_first; p; p = p->next) gboards.c: last_note = ch->pcdata->last_note[board_number (ch->pcdata->board)]; gboards.c: for (p = ch->pcdata->board->note_first; p; p = p->next) gboards.c: if (!show || ((count-show) < has_shown)) gboards.c: sprintf (buf, "&W%3d&w> &B%c &C%-13s &c%s&w \n\r", gboards.c: last_note < p->date_stamp ? '*' : ' ', gboards.c: p->sender, p->subject); gboards.c: for (p = ch->pcdata->board->note_first; p && p->next; p = p->next); gboards.c: ch->pcdata->last_note[board_number(ch->pcdata->board)] = p->date_stamp; gboards.c: if( ch->pcdata->board == NULL ) gboards.c: ch->pcdata->board = &boards[DEFAULT_BOARD]; gboards.c: sprintf (buf, "\n\rYou current board is &W%s&w.\n\r", ch->pcdata->board->short_name); gboards.c: if (ch->pcdata->board->read_level > get_trust(ch)) gboards.c: else if (ch->pcdata->board->write_level > get_trust(ch)) gboards.c: if (ch->pcdata->in_progress) gboards.c: ch->pcdata->board = &boards[i]; gboards.c: /* Non-number given, find board with that name */ gboards.c: ch->pcdata->board = &boards[i]; gboards.c: note->sender = STRALLOC ((char *)sender); gboards.c: note->to_list = STRALLOC((char *)to); gboards.c: note->subject = str_dup((char *)subject); gboards.c: note->expire = current_time + expire_days * 60 * 60 * 24; gboards.c: note->text = str_dup((char *)text); gboards.c: strtime[strlen(strtime)-1] = '\0'; gboards.c: note->date = str_dup(strtime); gboards.c: int i = board_number (ch->pcdata->board) + 1; gboards.c: ch->pcdata->board = &boards[0]; gboards.c: ch->pcdata->board = &boards[i]; gboards.c: CHAR_DATA *ch = d->character; gboards.c: if (!ch->pcdata->in_progress) gboards.c: d->connected = CON_PLAYING; gboards.c: smash_tilde (buf); /* change ~ to - as we save this field as a string later */ gboards.c: switch (ch->pcdata->board->force_type) gboards.c: ch->pcdata->in_progress->to_list = STRALLOC(ch->pcdata->board->names); gboards.c: sprintf (buf, "Assumed default recipient: &W%s&w\n\r", ch->pcdata->board->names); gboards.c: ch->pcdata->in_progress->to_list = STRALLOC(buf); gboards.c: if (!is_full_name (ch->pcdata->board->names, buf)) gboards.c: strcat (buf, ch->pcdata->board->names); gboards.c: ch->pcdata->in_progress->to_list = STRALLOC(buf); gboards.c: ch->pcdata->board->names, ch->pcdata->in_progress->to_list); gboards.c: ch->pcdata->in_progress->to_list = STRALLOC(buf); gboards.c: if (is_full_name (ch->pcdata->board->names, buf)) gboards.c: "&YTo&w: ", ch->pcdata->board->names); gboards.c: ch->pcdata->in_progress->to_list = STRALLOC(buf); gboards.c: d->connected = CON_NOTE_SUBJECT; gboards.c: CHAR_DATA *ch = d->character; gboards.c: if (!ch->pcdata->in_progress) gboards.c: d->connected = CON_PLAYING; gboards.c: smash_tilde (buf); /* change ~ to - as we save this field as a string later */ gboards.c: ch->pcdata->in_progress->subject = str_dup(buf); gboards.c: ch->pcdata->board->purge_days); gboards.c: d->connected = CON_NOTE_EXPIRE; gboards.c: ch->pcdata->in_progress->expire = gboards.c: current_time + ch->pcdata->board->purge_days * 24L * 3600L; gboards.c: sprintf (buf, "This note will expire %s\r",ctime(&ch->pcdata->in_progress->expire)); gboards.c: ch->substate = SUB_GBOARD_NOTE; gboards.c: ch->dest_buf = ch->pcdata; gboards.c: ch->pcdata->in_progress->text = str_dup( "" ); gboards.c: start_editing_note( ch, ch->pcdata->in_progress->text ); gboards.c: d->connected = CON_NOTE_TEXT; gboards.c: CHAR_DATA *ch = d->character; gboards.c: if (!ch->pcdata->in_progress) gboards.c: d->connected = CON_PLAYING; gboards.c: days = ch->pcdata->board->purge_days; gboards.c: ch->pcdata->in_progress->expire = expire; gboards.c: ch->substate = SUB_GBOARD_NOTE; gboards.c: ch->dest_buf = ch->pcdata; gboards.c: ch->pcdata->in_progress->text = str_dup( "" ); gboards.c: start_editing_note( ch, ch->pcdata->in_progress->text ); gboards.c: d->connected = CON_NOTE_TEXT; gboards.c: if ( (d = ch->desc) == NULL ) gboards.c: if ( d->connected != CON_NOTE_TEXT ) gboards.c: bug( "handle_con_note_text: d->connected != CON_NOTE_TEXT", 0 ); gboards.c: if ( !ch->editor ) gboards.c: d->connected = CON_PLAYING; gboards.c: edit = ch->editor; gboards.c: if ( ch->substate == SUB_MPROG_EDIT || ch->substate == SUB_HELP_EDIT ) gboards.c: send_to_char( "Editing commands\n\r---------------------------------\n\r", ch ); gboards.c: edit->numlines = 0; gboards.c: edit->on_line = 0; gboards.c: /* added format command - shogar */ gboards.c: int x,linecnt = -1, spacercnt=0; gboards.c: for ( x = edit->on_line; x < edit->numlines; x++ ) gboards.c: lwptr = edit->line[linecnt]; gboards.c: tptr = edit->line[x]; gboards.c: lwptr = edit->line[linecnt]; gboards.c: lwptr = edit->line[linecnt]; gboards.c: strcpy(cline,edit->line[x]); gboards.c: if((strlen(edit->line[linecnt]) + strlen(cword) + 1) > 79) gboards.c: if ( edit->numlines >= max_buf_lines ) gboards.c: strcpy(edit->line[edit->numlines],""); gboards.c: edit->numlines++; gboards.c: lwptr = edit->line[linecnt]; gboards.c: if(linecnt != -1) gboards.c: for ( x = linecnt + 1; x < edit->numlines; x++ ) gboards.c: strcpy(edit->line[x],""); gboards.c: edit->numlines = linecnt + 2; gboards.c: edit->on_line = linecnt + 1; gboards.c: for ( x = edit->on_line; x < edit->numlines; x++ ) gboards.c: lwptr = edit->line[x]; gboards.c: if (lineln + wptr - edit->line[x] > 79) gboards.c: if ( edit->numlines >= max_buf_lines ) gboards.c: line = atoi( argument + 2 ) - 1; gboards.c: line = edit->on_line; gboards.c: line = edit->on_line; gboards.c: if ( line < 0 || line > edit->numlines ) gboards.c: for ( x = ++edit->numlines; x > line; x-- ) gboards.c: strcpy( edit->line[x], edit->line[x-1] ); gboards.c: strcpy( edit->line[line], "" ); gboards.c: if ( edit->numlines == 0 ) gboards.c: line = atoi( argument + 2 ) - 1; gboards.c: line = edit->on_line; gboards.c: line = edit->on_line; gboards.c: if ( line < 0 || line > edit->numlines ) gboards.c: if ( line == 0 && edit->numlines == 1 ) gboards.c: edit->numlines = 0; gboards.c: edit->on_line = 0; gboards.c: for ( x = line; x < (edit->numlines - 1); x++ ) gboards.c: strcpy( edit->line[x], edit->line[x+1] ); gboards.c: strcpy( edit->line[edit->numlines--], "" ); gboards.c: if ( edit->on_line > edit->numlines ) gboards.c: edit->on_line = edit->numlines; gboards.c: if ( edit->numlines == 0 ) gboards.c: line = atoi( argument + 2 ) - 1; gboards.c: line = edit->on_line; gboards.c: if ( line < 0 || line > edit->numlines ) gboards.c: edit->on_line = line; gboards.c: if ( edit->numlines == 0 ) gboards.c: send_to_char( "------------------\n\r", ch ); gboards.c: for ( x = 0; x < edit->numlines; x++ ) gboards.c: ch_printf( ch, "%2d> %s\n\r", x+1, edit->line[x] ); gboards.c: send_to_char( "------------------\n\r> ", ch ); gboards.c: free_global_note( ch->pcdata->in_progress ); gboards.c: ch->pcdata->in_progress = NULL; gboards.c: d->connected = CON_PLAYING; gboards.c: int substate = ch->substate; gboards.c: last_cmd = ch->last_cmd; gboards.c: ch->substate = SUB_RESTRICTED; gboards.c: ch->substate = substate; gboards.c: ch->last_cmd = last_cmd; gboards.c: NOTE_DATA *note = ch->pcdata->in_progress; gboards.c: DISPOSE( note->text ); gboards.c: note->text = copy_buffer_nohash( ch ); gboards.c: if( !str_cmp( note->text, "" ) ) gboards.c: d->connected = CON_PLAYING; gboards.c: free_global_note( ch->pcdata->in_progress ); gboards.c: ch->pcdata->in_progress = NULL; gboards.c: d->connected = CON_NOTE_FINISH; gboards.c: if ( edit->size + strlen(argument) + 1 >= MAX_STRING_LENGTH - 1 ) gboards.c: strcpy( edit->line[edit->on_line++], buf ); gboards.c: if ( edit->on_line > edit->numlines ) gboards.c: edit->numlines++; gboards.c: if ( edit->numlines > max_buf_lines ) gboards.c: edit->numlines = max_buf_lines; gboards.c: NOTE_DATA *note = ch->pcdata->in_progress; gboards.c: DISPOSE( note->text ); gboards.c: note->text = copy_buffer_nohash( ch ); gboards.c: d->connected = CON_NOTE_FINISH; gboards.c: CHAR_DATA *ch = d->character; gboards.c: if (!ch->pcdata->in_progress) gboards.c: d->connected = CON_PLAYING; gboards.c: ch->substate = SUB_GBOARD_NOTE; gboards.c: ch->dest_buf = ch->pcdata; gboards.c: ch->pcdata->in_progress->text = str_dup( "" ); gboards.c: start_editing_note( ch, ch->pcdata->in_progress->text ); gboards.c: d->connected = CON_NOTE_TEXT; gboards.c: if (ch->pcdata->in_progress->text) gboards.c: send_to_char_color ( ch->pcdata->in_progress->text, ch); gboards.c: finish_note (ch->pcdata->board, ch->pcdata->in_progress); gboards.c: d->connected = CON_PLAYING; gboards.c: ch->pcdata->in_progress = NULL; gboards.c: free_global_note( ch->pcdata->in_progress ); gboards.c: ch->pcdata->in_progress = NULL; gboards.c: d->connected = CON_PLAYING; grub.c: * -----------------------------------------------------------| (0...0) * grub.c: * -----------------------------------------------------------| {o o} * grub.c: * ------------------------------------------------------------------------ * grub.c:struct field_struct /* field table - info re each field */ grub.c:struct /* operand table - info about each operand */ grub.c:struct /* operand table - info about each op */ grub.c:return *(int*)i - *(int*)j; grub.c:send_to_char( "rgrub st n lo hi - sector type search.\n\r" grub.c:send_to_char( " e.g. rgrub st 6 901 969 - list all rooms in Olympus\n\r" grub.c:send_to_char( " e.g. rgrub st 2 - list all rooms sectortype 2.\n\r", ch ); grub.c: for (pRoom = room_index_hash[cou]; pRoom; pRoom = pRoom->next) grub.c: if (pRoom->vnum >= lo && pRoom->vnum <= hi) grub.c: if ( match == pRoom->sector_type && hit_cou < RGRUB_ST_MAX_SIZE) grub.c: vnum[hit_cou++] = pRoom->vnum; grub.c: return -1; grub.c: i=LOWER(*astr)-LOWER(*bstr); grub.c: return -1; grub.c: * 5th parm is n_s - number/string - TRUE is number - FALSE is string grub.c: * 6th parm is direction - TRUE is ascending - FALSE is descending grub.c: right = UMIN(right, MAX_DISPLAY_LINES - 1); grub.c: testn = p[left]->n[ind]; grub.c: strcpy( tests, p[left]->s[ind] ); grub.c: while (p[i]->n[ind] < testn) i++; grub.c: while (p[i]->n[ind] > testn) i++; grub.c: while (testn < p[j]->n[ind]) j--; grub.c: while (testn > p[j]->n[ind]) j--; grub.c: while ( strcmp( p[i]->s[ind], tests) < 0 ) i++; grub.c: while ( strcmp( p[i]->s[ind], tests) > 0 ) i++; grub.c: while ( strcmp( tests, p[j]->s[ind]) < 0 ) j--; grub.c: while ( strcmp( tests, p[j]->s[ind]) > 0 ) j--; grub.c: if (i <= j) { swap=p[i]; p[i] = p[j]; p[j] = swap; i++; j--; } grub.c: case APPLY_HITROLL : {r->n[OHR] += mod; break;} grub.c: case APPLY_DAMROLL : {r->n[ODR] += mod; break;} grub.c: case APPLY_HIT : {r->n[OHP] += mod; break;} grub.c: case APPLY_MANA : {r->n[OMP] += mod; break;} grub.c: case APPLY_AC : {r->n[OAC] += mod; break;} grub.c: case APPLY_STR : {r->n[OSTR] += mod; break;} grub.c: case APPLY_DEX : {r->n[ODEX] += mod; break;} grub.c: case APPLY_CON : {r->n[OCON] += mod; break;} grub.c: case APPLY_WIS : {r->n[OWIS] += mod; break;} grub.c: case APPLY_INT : {r->n[OINT] += mod; break;} grub.c: case APPLY_LCK : {r->n[OLUCK]+= mod; break;} grub.c: case APPLY_SAVING_POISON : {r->n[OSAV0]+= mod; break;} grub.c: case APPLY_SAVING_ROD : {r->n[OSAV1]+= mod; break;} grub.c: case APPLY_SAVING_PARA : {r->n[OSAV2]+= mod; break;} grub.c: case APPLY_SAVING_BREATH : {r->n[OSAV3]+= mod; break;} grub.c: case APPLY_SAVING_SPELL : {r->n[OSAV4]+= mod; break;} grub.c: "%2d %-7s %2s %10ld\n\r", cou+1, go_fd[go_op[cou].field].nam, grub.c: pager_printf (ch, "%2d %-7s %2s %s\n\r", grub.c: go_op[*op_num].op = -1; grub.c: if ( arg[0]=='+' || arg[0]=='-') grub.c: if ( (*sor_ind = go_fnam_to_num(pch)) == -1 ) grub.c: (r->n[go_op[cou].field], go_op[cou].op, go_op[cou].nval) ) grub.c: r->s[go_op[cou].field-OSAV4-1], go_op[cou].op, grub.c: if ( go_eval_num( r->n[ go_op[cou].field ], go_op[cou].op, grub.c: if ( go_eval_str( r->s[go_op[cou].field-OSAV4-1], go_op[cou].op, grub.c: "\n\r%-12s%3s %5s %2s %-12s %2s %2s %2s %2s %2s %3s %3s %3s " grub.c: "\n\r%-12s%3s %5s %2s %-12s %2s %2s %2s %2s %2s %3s %3s %2s " grub.c: strncpy( pri_cname, r.s[CNAME], MAX_NAME_LENGTH - 1); grub.c: pri_cname[ MAX_NAME_LENGTH - 1] = '\0'; grub.c: strncpy( pri_oname, r.s[ONAME], MAX_NAME_LENGTH - 1); grub.c: pri_oname[ MAX_NAME_LENGTH - 1] = '\0'; grub.c: "%-12s%3d %5d%3d %-12s %2s %2s%3d%3d%3d%4d%4d%4d" grub.c: "%-12s%3d %5d%3d %-12s %2s %2s%3d%3d%3d%4d%4d%3d" grub.c: * this function. F.Y.I - if an object is not "carried_by" someone, grub.c: * in a container carried by someone - or in a container on the ground. grub.c: r->s[ONAME] = ( po->name ) ? po->name : ack; /* set object name */ grub.c: if ( po->carried_by ) /* it's being carried by a char */ grub.c: if ( get_trust(ch) < po->carried_by->level ) return FALSE; grub.c: if ( nm_sw && IS_NPC(po->carried_by) ) return FALSE; grub.c: if ( np_sw && !IS_NPC(po->carried_by) ) return FALSE; grub.c: r->s[CNAME] = po->carried_by->name; grub.c: else if ( po->in_obj ) /* it's in a container */ grub.c: while( pt->in_obj ) grub.c: pt=pt->in_obj; grub.c: if ( pt->carried_by && get_trust(ch) < pt->carried_by->level ) grub.c: if ( pt->carried_by && nm_sw && IS_NPC(pt->carried_by) ) grub.c: if ( pt->carried_by && np_sw && !IS_NPC(pt->carried_by) ) grub.c: if ( pt->carried_by ) r->s[CNAME] = pt->carried_by->name; grub.c: r->s[CNAME] = ground; grub.c: else if ( !po->in_obj ) /* it's on the ground */ grub.c: r->s[CNAME] = ground; grub.c: for (po=first_object; po; po=po->next) /* Loop through all objects */ grub.c: if ( !ok_otype[po->item_type] ) /* don't process useless stuff*/ grub.c: px = po->pIndexData; grub.c: r.n[OCOUNT] = po->count; grub.c: r.n[OVNUM] = px->vnum; grub.c: r.n[OTYPE] = po->item_type; grub.c: r.n[OLEVEL] = po->level; grub.c: r.n[OWEAR] = go_wear_ext( po->wear_flags ); grub.c: r.n[OAVG] = (po->item_type == ITEM_WEAPON) ? grub.c: (po->value[1] + po->value[2])/2 : 0; grub.c: for (pa=px->first_affect; pa; pa=pa->next) grub.c: go_accum_aff (&r, pa->location, pa->modifier); grub.c: for (pa=po->first_affect; pa; pa=pa->next) grub.c: go_accum_aff (&r, pa->location, pa->modifier); grub.c: ind = ( sor_ind<=OSAV4 ) ? sor_ind : sor_ind - OSAV4 - 1; grub.c: go_sort( ch, p, ind, 0, UMIN((tot_match - 1), MAX_DISPLAY_LINES - 1), grub.c: are sorted, we display only 10 - but - that don't change the fact that grub.c: we have to sort all 10,000 - sigh - arg! - Gorog grub.c: gr_op[*op_num].op = -1; grub.c: if ( !str_prefix( gr_fd[cou-1].nam, arg ) ) grub.c: arg += strlen( gr_fd[ cou-1 ].nam ); /* advance to operator */ grub.c: gr_op[ *op_num ].field = cou-1; /* store field name */ grub.c: "\n\r%-12s %-2s %1s %-2s %1s %3s %3s %5s %11s %-15s %-6s %s\n\r", grub.c: "%-12.12s %3hd %c %2.2s %c %3.3s %3.3s %5hd %11.11ld %-15.15s %6lu %c\n\r", grub.c: * player files - often to deal with unruly problem players. grub.c: * The second phase reads each input record - one record for each player. grub.c: while (test > count[j]) j--; grub.c: i++; j--; grub.c:return *(int*)i - *(int*)j; grub.c:send_to_char( "diagnose of n - object frequency top n objects\n\r", ch ); grub.c:send_to_char( "diagnose zero - count objects with zero weight\n\r", ch ); grub.c:send_to_char( "diagnose zero n - list n objects with zero weight\n\r", ch ); grub.c:send_to_char( "diagnose rf n lo hi - room flag search.\n\r" grub.c:send_to_char( " e.g. diagnose rf 6 901 969 - list all rooms in Olympus\n\r" grub.c:send_to_char( " e.g. diagnose rf 2 - list all deathtraps.\n\r", ch ); grub.c:send_to_char( "diagnose mrc num race class vnum1 vnum2 - mobs/race/class\n\r" grub.c: " e.g. diagnose mrc 50 0 3 7500 7534 - show 50 human warriors " grub.c:int ins = -1; /* insert pos in dynamic f array */ grub.c:if (!f[siz-1] || p->count>f[siz-1]->count) /* don't bother looping thru f */ grub.c: if ( !f[cou++] || p->count > f[cou-1]->count ) grub.c: ins = cou-1; /* needs to go into pos "cou" */ grub.c: for (cou = siz-1; cou > ins; cou--) /* open a slot in the table */ grub.c: f[cou] = f[cou-1]; grub.c: t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min); grub.c: {pager_printf( ch, "%s %s is NPC.\n\r", arg2, vic->name ); return;} grub.c: {pager_printf( ch, "%s %s is PC.\n\r", arg2, vic->name ); return;} grub.c:if ( IS_SET( vic->pcdata->flags, PCFLAG_WATCH ) ) grub.c: pager_printf( ch, "PCFLAG_WATCH is TRUE.\n\r", vic->name ); grub.c: pager_printf( ch, "PCFLAG_WATCH is FALSE.\n\r", vic->name ); grub.c: for (pRoom = room_index_hash[cou]; pRoom; pRoom = pRoom->next) grub.c: if (pRoom->vnum >= lo && pRoom->vnum <= hi) grub.c: if ( match == (match & pRoom->room_flags) grub.c: vnum[hit_cou++] = pRoom->vnum; grub.c: pObj; pObj=pObj->next) grub.c: ch_printf(ch, "%3d%8d%8d\n\r", cou+1,freq[cou]->vnum,freq[cou]->count); grub.c: if ( !victim->desc ) grub.c: for ( d = first_descriptor; d; d = d->next ) grub.c: if ( d->snoop_by == ch->desc ) grub.c: d->snoop_by = NULL; grub.c: if ( victim->desc->snoop_by ) grub.c: victim->desc->snoop_by = ch->desc; grub.c: int zero_num = -1; /* num of lines requested */ grub.c: for (pObj=obj_index_hash[cou]; pObj; pObj=pObj->next) grub.c: if (pObj->weight == 0) { grub.c: zero_obj += pObj->count; grub.c: vnums[zero_obj_ind - 1] = pObj->vnum; grub.c: count[zero_obj_ind - 1] = pObj->count; grub.c: zero_sort (vnums, count, 0, zero_obj_ind - 1); grub.c: ch->name, ch->affected_by, ch->perm_str, ch->mod_str); grub.c:for (pa=ch->first_affect; pa; pa=pa->next) grub.c: pa->type, pa->duration, pa->location, pa->modifier, pa->bitvector); grub.c:for (po=first_object; po; po=po->next) grub.c: if ( !po->carried_by && !po->in_obj ) continue; grub.c: if ( !po->carried_by ) grub.c: while( pt->in_obj ) /* could be in a container on ground */ grub.c: pt=pt->in_obj; grub.c: if ( ch==po->carried_by || ch==pt->carried_by ) grub.c: px = po->pIndexData; grub.c: px->vnum, px->name, px->level, px->extra_flags); grub.c: px->value[0], px->value[1], px->value[2], px->value[3], grub.c: px->value[4], px->value[5], px->item_type); grub.c: for (pa=px->first_affect; pa; pa=pa->next) grub.c: pa->type, pa->duration, pa->location, pa->modifier, pa->bitvector); grub.c: po->name, po->level, po->wear_flags, po->wear_loc); grub.c: po->value[0], po->value[1], po->value[2], po->value[3], grub.c: po->value[4], po->value[5], po->item_type); grub.c: for (pa=po->first_affect; pa; pa=pa->next) grub.c: pa->type, pa->duration, pa->location, pa->modifier, pa->bitvector); grub.c: for (pm = mob_index_hash[cou]; pm; pm = pm->next) grub.c: if ( pm->vnum >= vnum1 && pm->vnum <= vnum2 grub.c: && pm->race==race && pm->class==class && dis_cou++ < dis_num ) grub.c: pager_printf( ch, "%5d %s\n\r", pm->vnum, pm->player_name ); grub.c: * doesn't list 1,000 lines for each shroud - just one line for the shroud. grub.c:send_to_char( "showlayers n - display maximum of n lines.\n\r", ch); grub.c: for (pObj=obj_index_hash[hash]; pObj; pObj=pObj->next) grub.c: if (pObj->layers > 0) grub.c: cou, pObj->vnum, pObj->wear_flags, pObj->layers, grub.c: pObj->short_descr); handler.c: * -----------------------------------------------------------| (0...0) * handler.c: * -----------------------------------------------------------| {o o} * handler.c: * ------------------------------------------------------------------------ * handler.c: * ------------------------------------------------------------------------ * handler.c: return ch->exp; handler.c: exp = ch->level * ch->level * ch->level * 5; handler.c: exp += ch->max_hit; handler.c: exp -= (ch->armor-50) * 2; handler.c: exp += ( ch->barenumdie * ch->baresizedie + get_damroll( ch, FALSE ) ) * 50; handler.c: exp += get_hitroll( ch, FALSE ) * ch->level * 10; handler.c: return class_table[ch->class]->exp_base; handler.c:/* -Thoric handler.c: lvl = UMAX(0, level - 1); handler.c: if ( ch->desc && ch->desc->original ) handler.c: ch = ch->desc->original; handler.c: if ( ch->trust != 0 ) handler.c: return ch->trust; handler.c: if ( IS_NPC(ch) && ch->level >= LEVEL_AVATAR ) handler.c: if ( ch->level >= LEVEL_NEOPHYTE && IS_RETIRED( ch ) ) handler.c: if( ch->level2 != -1 && ch->level2 > ch->level ) handler.c: return ch->level2; handler.c: return ch->level; handler.c: return ((race_table[ch->race]->base_age) + 17 + ( ch->played + (current_time - ch->logon) ) / 7200); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_STR ) handler.c: return URANGE( 3, ch->perm_str + ch->mod_str, max ); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_INT ) handler.c: return URANGE( 3, ch->perm_int + ch->mod_int, max ); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_WIS ) handler.c: return URANGE( 3, ch->perm_wis + ch->mod_wis, max ); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_DEX ) handler.c: return URANGE( 3, ch->perm_dex + ch->mod_dex, max ); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_CON ) handler.c: return URANGE( 3, ch->perm_con + ch->mod_con, max ); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_CHA ) handler.c: return URANGE( 3, ch->perm_cha + ch->mod_cha, max ); handler.c: if ( IS_NPC(ch) || class_table[ch->class]->attr_prime == APPLY_LCK ) handler.c: return URANGE( 3, ch->perm_lck + ch->mod_lck, max ); handler.c: * Vastly reduced (finally) due to containers -Thoric handler.c: if ( !IS_NPC(ch) && ch->level >= LEVEL_IMMORTAL ) handler.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_PET) ) handler.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_IMMORTAL) ) handler.c: return ch->level*200; handler.c: return URANGE(5, (ch->level+15)/5 + get_curr_dex(ch)-13 - penalty, 20); handler.c: if ( !IS_NPC(ch) && ch->level >= LEVEL_IMMORTAL ) handler.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_PET) ) handler.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_IMMORTAL) ) handler.c: * See if a player/mob can take a piece of prototype eq -Thoric handler.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_PROTOTYPE) ) handler.c: * See if a string is one of the names of an object. -Thoric handler.c:/* -Thoric handler.c: switch(paf->location) handler.c: pRoomIndex->light += paf->modifier; handler.c: switch(paf->location) handler.c: pRoomIndex->light -= paf->modifier; handler.c: * Modify a skill (hopefully) properly -Thoric handler.c: ch->pcdata->learned[sn] += mod; handler.c: ch->pcdata->learned[sn] = URANGE(0, ch->pcdata->learned[sn] + mod, handler.c: if(!paf) /* not sure why this is being passed null, but its a prob-shogar*/ handler.c: bug("affect modify on %s",ch->name); handler.c: mod = paf->modifier; handler.c: xSET_BITS( ch->affected_by, paf->bitvector ); handler.c: if ( paf->location % REVERSE_APPLY == APPLY_RECURRINGSPELL ) handler.c: && skill->type == SKILL_SPELL ) handler.c: xSET_BIT(ch->affected_by, AFF_RECURRINGSPELL); handler.c: ch->name, mod ); handler.c: xREMOVE_BITS( ch->affected_by, paf->bitvector ); handler.c: * the removed spell's information somewhere... -Thoric handler.c: if ( (paf->location % REVERSE_APPLY) == APPLY_REMOVESPELL ) handler.c: if ( paf->location % REVERSE_APPLY == APPLY_RECURRINGSPELL ) handler.c: || skill->type != SKILL_SPELL ) handler.c: ch->name, mod ); handler.c: xREMOVE_BIT(ch->affected_by, AFF_RECURRINGSPELL); handler.c: switch( paf->location % REVERSE_APPLY ) handler.c: case APPLY_AFFECT: REMOVE_BIT( ch->affected_by.bits[0], mod ); return; handler.c: case APPLY_EXT_AFFECT: xREMOVE_BIT( ch->affected_by, mod ); return; handler.c: case APPLY_RESISTANT: REMOVE_BIT( ch->resistant, mod ); return; handler.c: case APPLY_IMMUNE: REMOVE_BIT( ch->immune, mod ); return; handler.c: case APPLY_SUSCEPTIBLE: REMOVE_BIT( ch->susceptible, mod ); return; handler.c: case APPLY_REMOVE: SET_BIT( ch->affected_by.bits[0], mod ); return; handler.c: mod = 0 - mod; handler.c: switch ( paf->location % REVERSE_APPLY ) handler.c: bug( "Affect_modify: unknown location %d.", paf->location ); handler.c: case APPLY_STR: ch->mod_str += mod; break; handler.c: case APPLY_DEX: ch->mod_dex += mod; break; handler.c: case APPLY_INT: ch->mod_int += mod; break; handler.c: case APPLY_WIS: ch->mod_wis += mod; break; handler.c: case APPLY_CON: ch->mod_con += mod; break; handler.c: case APPLY_CHA: ch->mod_cha += mod; break; handler.c: case APPLY_LCK: ch->mod_lck += mod; break; handler.c: ch->sex = (ch->sex+mod) % 3; handler.c: if ( ch->sex < 0 ) handler.c: ch->sex += 2; handler.c: ch->sex = URANGE( 0, ch->sex, 2 ); handler.c: case APPLY_HEIGHT: ch->height += mod; break; handler.c: case APPLY_WEIGHT: ch->weight += mod; break; handler.c: case APPLY_MANA: ch->max_mana += mod; break; handler.c: case APPLY_HIT: ch->max_hit += mod; break; handler.c: case APPLY_MOVE: ch->max_move += mod; break; handler.c: case APPLY_AC: ch->armor += mod; break; handler.c: case APPLY_HITROLL: ch->hitroll += mod; break; handler.c: case APPLY_DAMROLL: ch->damroll += mod; break; handler.c: case APPLY_SAVING_POISON: ch->saving_poison_death += mod; break; handler.c: case APPLY_SAVING_ROD: ch->saving_wand += mod; break; handler.c: case APPLY_SAVING_PARA: ch->saving_para_petri += mod; break; handler.c: case APPLY_SAVING_BREATH: ch->saving_breath += mod; break; handler.c: case APPLY_SAVING_SPELL: ch->saving_spell_staff += mod; break; handler.c: case APPLY_AFFECT: SET_BIT( ch->affected_by.bits[0], mod ); break; handler.c: case APPLY_EXT_AFFECT: xSET_BIT( ch->affected_by, mod ); break; handler.c: case APPLY_RESISTANT: SET_BIT( ch->resistant, mod ); break; handler.c: case APPLY_IMMUNE: SET_BIT( ch->immune, mod ); break; handler.c: case APPLY_SUSCEPTIBLE: SET_BIT( ch->susceptible, mod ); break; handler.c: case APPLY_REMOVE: REMOVE_BIT(ch->affected_by.bits[0], mod); break; handler.c: ch->pcdata->condition[COND_FULL] = handler.c: URANGE( 0, ch->pcdata->condition[COND_FULL] + mod, 48 ); handler.c: ch->pcdata->condition[COND_THIRST] = handler.c: URANGE( 0, ch->pcdata->condition[COND_THIRST] + mod, 48 ); handler.c: ch->pcdata->condition[COND_DRUNK] = handler.c: URANGE( 0, ch->pcdata->condition[COND_DRUNK] + mod, 48 ); handler.c: ch->pcdata->condition[COND_BLOODTHIRST] = handler.c: URANGE( 0, ch->pcdata->condition[COND_BLOODTHIRST] + mod, ch->level+10 ); handler.c: ch->mental_state = URANGE(-100, ch->mental_state + mod, 100); handler.c: ch->emotional_state = URANGE(-100, ch->emotional_state + mod, 100); handler.c:/* spell cast upon wear/removal of an object -Thoric */ handler.c: if ( IS_SET(ch->in_room->room_flags, ROOM_NO_MAGIC) handler.c: || IS_SET(ch->immune, RIS_MAGIC) handler.c: && skill->type == SKILL_SPELL ) handler.c: if (skill->target == TAR_IGNORE || skill->target == TAR_OBJ_INV) handler.c: if ( (retcode=(*skill->spell_fun) ( mod, ch->level, ch, ch )) == rCHAR_DIED handler.c: depth--; handler.c: bug( "Affect_to_char(NULL, %d)", paf ? paf->type : 0 ); handler.c: bug( "Affect_to_char(%s, NULL)", ch->name ); handler.c: LINK( paf_new, ch->first_affect, ch->last_affect, next, prev ); handler.c: paf_new->type = paf->type; handler.c: paf_new->duration = paf->duration; handler.c: paf_new->location = paf->location; handler.c: paf_new->modifier = paf->modifier; handler.c: paf_new->bitvector = paf->bitvector; handler.c: if ( !ch->first_affect ) handler.c: bug( "Affect_remove(%s, %d): no affect.", ch->name, handler.c: paf ? paf->type : 0 ); handler.c: UNLINK( paf, ch->first_affect, ch->last_affect, next, prev ); handler.c: for ( paf = ch->first_affect; paf; paf = paf_next ) handler.c: paf_next = paf->next; handler.c: if ( paf->type == sn ) handler.c: for ( paf = ch->first_affect; paf; paf = paf->next ) handler.c: if ( paf->type == sn ) handler.c: for ( paf_old = ch->first_affect; paf_old; paf_old = paf_old->next ) handler.c: if ( paf_old->type == paf->type ) handler.c: paf->duration = UMIN( 1000000, paf->duration + paf_old->duration ); handler.c: if ( paf->modifier ) handler.c: paf->modifier = UMIN( 5000, paf->modifier + paf_old->modifier ); handler.c: paf->modifier = paf_old->modifier; handler.c: xSET_BITS(ch->affected_by, paf->bitvector); handler.c: switch(paf->location % REVERSE_APPLY) handler.c: SET_BIT(ch->affected_by.bits[0], paf->modifier); handler.c: SET_BIT(ch->resistant, paf->modifier); handler.c: SET_BIT(ch->immune, paf->modifier); handler.c: SET_BIT(ch->susceptible, paf->modifier); handler.c: * of the problem can be hunted down. - FB handler.c: * just a band-aid until we get more time to look at it -- Blodkai */ handler.c: xCLEAR_BITS(ch->affected_by); handler.c: ch->resistant = 0; handler.c: ch->immune = 0; handler.c: ch->susceptible = 0; handler.c: xCLEAR_BITS(ch->no_affected_by); handler.c: ch->no_resistant = 0; handler.c: ch->no_immune = 0; handler.c: ch->no_susceptible = 0; handler.c: xSET_BITS(ch->affected_by, race_table[ch->race]->affected); handler.c: SET_BIT(ch->resistant, race_table[ch->race]->resist); handler.c: SET_BIT(ch->susceptible, race_table[ch->race]->suscept); handler.c: if (ch->pcdata->deity) handler.c: if (ch->pcdata->favor > ch->pcdata->deity->affectednum) handler.c: xSET_BITS(ch->affected_by, ch->pcdata->deity->affected); handler.c: if (ch->pcdata->favor > ch->pcdata->deity->elementnum) handler.c: SET_BIT(ch->resistant, ch->pcdata->deity->element); handler.c: if (ch->pcdata->favor < ch->pcdata->deity->susceptnum) handler.c: SET_BIT(ch->susceptible, ch->pcdata->deity->suscept); handler.c: for (paf = ch->first_affect; paf; paf = paf->next) handler.c: for (obj = ch->first_carrying; obj; obj = obj->next_content) handler.c: if (obj->wear_loc != WEAR_NONE) handler.c: for (paf = obj->first_affect; paf; paf= paf->next) handler.c: for (paf=obj->pIndexData->first_affect; paf; paf = paf->next) handler.c: if (ch->in_room) /* non-existant char booboo-fix --TRI */ handler.c: for (paf = ch->in_room->first_affect; paf; paf = paf->next) handler.c: if ( ch->morph ) handler.c: xSET_BITS(ch->affected_by, ch->morph->affected_by ); handler.c: SET_BIT(ch->immune, ch->morph->immune ); handler.c: SET_BIT(ch->resistant, ch->morph->resistant ); handler.c: SET_BIT(ch->susceptible, ch->morph->suscept ); handler.c: /* Right now only morphs have no_ things --Shaddai */ handler.c: xSET_BITS(ch->no_affected_by, ch->morph->no_affected_by ); handler.c: SET_BIT(ch->no_immune, ch->morph->no_immune ); handler.c: SET_BIT(ch->no_resistant, ch->morph->no_resistant ); handler.c: SET_BIT(ch->no_susceptible, ch->morph->no_suscept ); handler.c: xSET_BIT(ch->affected_by, AFF_HIDE); handler.c: if ( !ch->in_room ) handler.c: --ch->in_room->area->nplayer; handler.c: && obj->item_type == ITEM_LIGHT handler.c: && obj->value[2] != 0 handler.c: && ch->in_room->light > 0 ) handler.c: --ch->in_room->light; handler.c: ch->in_room->area->ttl = 18; handler.c: for ( paf = ch->first_affect; paf; paf = paf->next ) handler.c: room_affect(ch->in_room, paf, FALSE); handler.c: for ( paf = ch->in_room->first_affect; paf; paf = paf->next ) handler.c: UNLINK( ch, ch->in_room->first_person, ch->in_room->last_person, handler.c:// CHECK_LINKS( ch->in_room->first_person, ch->in_room->last_person, handler.c: ch->was_in_room = ch->in_room; handler.c: ch->in_room = NULL; handler.c: ch->next_in_room = NULL; handler.c: ch->prev_in_room = NULL; handler.c: bug( "Char_to_room: %s -> NULL room! Putting char in limbo (%d)", handler.c: ch->name, ROOM_VNUM_LIMBO ); handler.c: * and I saw no reason not to just put the char in limbo. -Narn handler.c: ch->in_room = pRoomIndex; handler.c: LINK( ch, pRoomIndex->first_person, pRoomIndex->last_person, handler.c:// CHECK_LINKS( pRoomIndex->first_person, pRoomIndex->last_person, handler.c: if ( ++pRoomIndex->area->nplayer > pRoomIndex->area->max_players ) handler.c: pRoomIndex->area->max_players = pRoomIndex->area->nplayer; handler.c: && obj->item_type == ITEM_LIGHT handler.c: && obj->value[2] != 0 ) handler.c: ++pRoomIndex->light; handler.c: area = pRoomIndex->area; handler.c: area->ttl = -1; handler.c: reset_age = area->reset_frequency ? area->reset_frequency : 15; handler.c: if ( area->age >= reset_age && !IS_SET( area->flags, AFLAG_PLR_LOADED ) handler.c: int numplayers = area->nplayer; handler.c: area->nplayer = 0; handler.c: area->nplayer = numplayers; handler.c: SET_BIT( area->flags, AFLAG_PLR_LOADED ); handler.c: for ( paf = pRoomIndex->first_affect; paf; paf = paf->next ) handler.c: for ( paf = ch->first_affect; paf; paf = paf->next ) handler.c: && IS_SET(pRoomIndex->room_flags, ROOM_SAFE) handler.c: add_timer(ch, TIMER_SHOVEDRAG, 10, NULL, 0); /*-30 Seconds-*/ handler.c: * Delayed Teleport rooms -Thoric handler.c: if ( IS_SET(pRoomIndex->room_flags, ROOM_TELEPORT) handler.c: && pRoomIndex->tele_delay > 0 ) handler.c: for ( tele = first_teleport; tele; tele = tele->next ) handler.c: if ( tele->room == pRoomIndex ) handler.c: tele->room = pRoomIndex; handler.c: tele->timer = pRoomIndex->tele_delay; handler.c: if ( !ch->was_in_room ) handler.c: ch->was_in_room = ch->in_room; handler.c: int wear_loc = obj->wear_loc; handler.c: EXT_BV extra_flags = obj->extra_flags; handler.c: && (IS_NPC(ch) && !xIS_SET(ch->act, ACT_PROTOTYPE)) ) handler.c: return obj_to_room( obj, ch->in_room ); handler.c: for ( otmp = ch->first_carrying; otmp; otmp = otmp->next_content ) handler.c: if (!IS_NPC(ch) || !ch->pIndexData->pShop) handler.c: LINK( obj, ch->first_carrying, ch->last_carrying, handler.c: obj->carried_by = ch; handler.c: obj->in_room = NULL; handler.c: obj->in_obj = NULL; handler.c: for ( otmp = ch->first_carrying; otmp; otmp = otmp->next_content) handler.c: if ( obj->level > otmp->level ) handler.c: INSERT(obj, otmp, ch->first_carrying, handler.c: if ( obj->level == otmp->level handler.c: && strcmp(obj->short_descr,otmp->short_descr) < 0 ) handler.c: INSERT(obj, otmp, ch->first_carrying, handler.c: LINK(obj, ch->first_carrying, ch->last_carrying, handler.c: obj->carried_by = ch; handler.c: obj->in_room = NULL; handler.c: obj->in_obj = NULL; handler.c: ch->carry_number += onum; handler.c: ch->carry_weight += oweight; handler.c: ch->carry_weight += oweight; handler.c: if ( ( ch = obj->carried_by ) == NULL ) handler.c: if ( obj->wear_loc != WEAR_NONE ) handler.c: if ( !obj->carried_by ) handler.c: UNLINK( obj, ch->first_carrying, ch->last_carrying, next_content, prev_content ); handler.c: if ( IS_OBJ_STAT(obj, ITEM_COVERING) && obj->first_content ) handler.c: obj->in_room = NULL; handler.c: obj->carried_by = NULL; handler.c: ch->carry_number -= get_obj_number(obj); handler.c: ch->carry_weight -= get_obj_weight(obj); handler.c: if ( obj->item_type != ITEM_ARMOR ) handler.c: case WEAR_BODY: return 3 * obj->value[0]; handler.c: case WEAR_HEAD: return 2 * obj->value[0]; handler.c: case WEAR_LEGS: return 2 * obj->value[0]; handler.c: case WEAR_FEET: return obj->value[0]; handler.c: case WEAR_HANDS: return obj->value[0]; handler.c: case WEAR_ARMS: return obj->value[0]; handler.c: case WEAR_SHIELD: return obj->value[0]; handler.c: case WEAR_FINGER_L: return obj->value[0]; handler.c: case WEAR_FINGER_R: return obj->value[0]; handler.c: case WEAR_NECK_1: return obj->value[0]; handler.c: case WEAR_NECK_2: return obj->value[0]; handler.c: case WEAR_ABOUT: return 2 * obj->value[0]; handler.c: case WEAR_WAIST: return obj->value[0]; handler.c: case WEAR_WRIST_L: return obj->value[0]; handler.c: case WEAR_WRIST_R: return obj->value[0]; handler.c: case WEAR_HOLD: return obj->value[0]; handler.c: case WEAR_EYES: return obj->value[0]; handler.c: case WEAR_FACE: return obj->value[0]; handler.c: case WEAR_BACK: return obj->value[0]; handler.c: case WEAR_ANKLE_L: return obj->value[0]; handler.c: case WEAR_ANKLE_R: return obj->value[0]; handler.c: * Will pick the top layer if clothing is layered. -Thoric handler.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) handler.c: if ( obj->wear_loc == iWear ) handler.c: {if ( !obj->pIndexData->layers ) handler.c: || obj->pIndexData->layers > maxobj->pIndexData->layers ) handler.c: && (!otmp->pIndexData->layers || !obj->pIndexData->layers) ) handler.c: bug( "Equip_char: already equipped %s->%s Room %d.", obj->short_descr, ch->name, ch->in_room->vnum ); handler.c: do_wear(ch, obj->name); handler.c: if ( obj->carried_by ) handler.c: obj_to_room( obj, ch->in_room ); handler.c: ch->armor -= apply_ac( obj, iWear ); handler.c: obj->wear_loc = iWear; handler.c: ch->carry_number -= get_obj_number( obj ); handler.c: ch->carry_weight -= get_obj_weight( obj ); handler.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) handler.c: for ( paf = obj->first_affect; paf; paf = paf->next ) handler.c: if ( obj->item_type == ITEM_LIGHT handler.c: && obj->value[2] != 0 handler.c: && ch->in_room ) handler.c: ++ch->in_room->light; handler.c: if ( obj->wear_loc == WEAR_NONE ) handler.c: ch->carry_number += get_obj_number( obj ); handler.c: ch->carry_weight += get_obj_weight( obj ); handler.c: ch->armor += apply_ac( obj, obj->wear_loc ); handler.c: obj->wear_loc = -1; handler.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) handler.c: if ( obj->carried_by ) handler.c: for ( paf = obj->first_affect; paf; paf = paf->next ) handler.c: if ( !obj->carried_by ) handler.c: if ( obj->item_type == ITEM_LIGHT handler.c: && obj->value[2] != 0 handler.c: && ch->in_room handler.c: && ch->in_room->light > 0 ) handler.c: --ch->in_room->light; handler.c: for ( obj = list; obj; obj = obj->next_content ) handler.c: if ( obj->pIndexData == pObjIndex ) handler.c: if ( (in_room = obj->in_room) == NULL ) handler.c: for ( paf = obj->first_affect; paf; paf = paf->next ) handler.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) handler.c: UNLINK( obj, in_room->first_content, in_room->last_content, handler.c: if ( IS_OBJ_STAT( obj, ITEM_COVERING ) && obj->first_content ) handler.c: empty_obj( obj, NULL, obj->in_room ); handler.c: if ( obj->item_type == ITEM_FIRE ) handler.c: obj->in_room->light -= obj->count; handler.c: obj->carried_by = NULL; handler.c: obj->in_obj = NULL; handler.c: obj->in_room = NULL; handler.c: if ( obj->pIndexData->vnum == OBJ_VNUM_CORPSE_PC && falling < 1 ) handler.c: write_corpses( NULL, obj->short_descr+14, obj ); handler.c: sh_int count = obj->count; handler.c: sh_int item_type = obj->item_type; handler.c: for ( paf = obj->first_affect; paf; paf = paf->next ) handler.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) handler.c: for ( otmp = pRoomIndex->first_content; otmp; otmp = otmp->next_content ) handler.c: pRoomIndex->light += count; handler.c: LINK( obj, pRoomIndex->first_content, pRoomIndex->last_content, handler.c: obj->in_room = pRoomIndex; handler.c: obj->carried_by = NULL; handler.c: obj->in_obj = NULL; handler.c: pRoomIndex->light += count; handler.c: falling--; handler.c: if ( obj->pIndexData->vnum == OBJ_VNUM_CORPSE_PC && falling < 1 ) handler.c: write_corpses( NULL, obj->short_descr+14, NULL ); handler.c: * Who's carrying an item -- recursive for nested objects -Thoric handler.c: if ( obj->in_obj ) handler.c: return carried_by(obj->in_obj); handler.c: return obj->carried_by; handler.c: bug( "Obj_to_obj: trying to put object inside itself: vnum %d", obj->pIndexData->vnum ); handler.c: who->carry_weight += get_obj_weight(obj); handler.c: for ( otmp = obj_to->first_content; otmp; otmp = otmp->next_content ) handler.c: LINK( obj, obj_to->first_content, obj_to->last_content, handler.c: obj->in_obj = obj_to; handler.c: obj->in_room = NULL; handler.c: obj->carried_by = NULL; handler.c: if ( (obj_from = obj->in_obj) == NULL ) handler.c: UNLINK( obj, obj_from->first_content, obj_from->last_content, handler.c: if ( IS_OBJ_STAT(obj, ITEM_COVERING) && obj->first_content ) handler.c: empty_obj(obj, obj->in_obj, NULL); handler.c: obj->in_obj = NULL; handler.c: obj->in_room = NULL; handler.c: obj->carried_by = NULL; handler.c: for ( ; obj_from; obj_from = obj_from->in_obj ) handler.c: if ( obj_from->carried_by ) handler.c: obj_from->carried_by->carry_weight -= get_obj_weight( obj ); handler.c: bug( "extract_obj: obj %d already extracted!", obj->pIndexData->vnum ); handler.c: if ( obj->item_type == ITEM_PORTAL ) handler.c: if ( obj->carried_by ) handler.c: if ( obj->in_room ) handler.c: if ( obj->in_obj ) handler.c: while ( ( obj_content = obj->last_content ) != NULL ) handler.c: for ( paf = obj->first_affect; paf; paf = paf_next ) handler.c: paf_next = paf->next; handler.c: obj->first_affect = obj->last_affect = NULL; handler.c: for ( ed = obj->first_extradesc; ed; ed = ed_next ) handler.c: ed_next = ed->next; handler.c: STRFREE( ed->description ); handler.c: STRFREE( ed->keyword ); handler.c: obj->first_extradesc = obj->last_extradesc = NULL; handler.c: gobj_prev = obj->prev; handler.c: obj->pIndexData->count -= obj->count; handler.c: numobjsloaded -= obj->count; handler.c: --physicalobjects; handler.c: if ( obj->serial == cur_obj ) handler.c: if ( !ch->in_room ) handler.c: bug( "Extract_char: %s in NULL room.", ch->name ? ch->name : "???" ); handler.c: bug( "extract_char: %s already died!", ch->name ); handler.c: gch_prev = ch->prev; handler.c: if ( fPull && !xIS_SET(ch->act, ACT_POLYMORPHED)) handler.c: if ( ch->mount ) handler.c: xREMOVE_BIT( ch->mount->act, ACT_MOUNTED ); handler.c: ch->mount = NULL; handler.c: ch->position = POS_STANDING; handler.c: for ( wch = first_char; wch; wch = wch->next ) handler.c: if ( wch->mount == ch ) handler.c: wch->mount = NULL; handler.c: wch->position = POS_STANDING; handler.c: if ( wch->in_room == ch->in_room ) handler.c: if ( wch->pcdata && wch->pcdata->pet == ch ) handler.c: wch->pcdata->pet = NULL; handler.c: if ( wch->in_room == ch->in_room ) handler.c: xREMOVE_BIT( ch->act, ACT_MOUNTED ); handler.c: while ( (obj = ch->last_carrying) != NULL ) handler.c: if ( !IS_NPC(ch) && ch->pcdata->clan ) handler.c: location = get_room_index( ch->pcdata->clan->recall ); handler.c: * Make things a little fancier -Thoric handler.c: capitalize( ch->name ) ); handler.c: ch->position = POS_RESTING; handler.c: --ch->pIndexData->count; handler.c: --nummobsloaded; handler.c: if ( ch->morph ) handler.c: if ( ch->desc && ch->desc->original ) handler.c: for ( wch = first_char; wch; wch = wch->next ) handler.c: if ( wch->reply == ch ) handler.c: wch->reply = NULL; handler.c: if( wch->retell == ch ) handler.c: wch->retell = NULL; handler.c: if ( ch->desc ) handler.c: if ( ch->desc->character != ch ) handler.c: ch->desc->character = NULL; handler.c: close_socket( ch->desc, FALSE ); handler.c: ch->desc = NULL; handler.c: switch (victim->position) handler.c: if (obj->in_room == NULL) handler.c: for (fch = obj->in_room->first_person; fch != NULL; fch = fch->next_in_room) handler.c: if (fch->on == obj) handler.c: vnum = -1; handler.c: for ( rch = ch->in_room->first_person; rch; rch = rch->next_in_room ) handler.c: && (nifty_is_name( arg, rch->name ) handler.c: || (IS_NPC(rch) && vnum == rch->pIndexData->vnum)) ) handler.c: if ( vnum != -1 ) handler.c: for ( rch = ch->in_room->first_person; rch; rch = rch->next_in_room ) handler.c: if ( !can_see( ch, rch ) || !nifty_is_name_prefix( arg, rch->name ) ) handler.c: * Allow reference by vnum for saints+ -Thoric handler.c: vnum = -1; handler.c: for ( wch = ch->in_room->first_person; wch; wch = wch->next_in_room ) handler.c: || (IS_NPC(wch) && vnum == wch->pIndexData->vnum)) ) handler.c: /* Check the descriptor list first for a player -- Scion */ handler.c: for ( d=first_descriptor; d; d=d->next ) handler.c: if( d->connected != CON_PLAYING ) handler.c: wch = d->character; handler.c: if( can_see( ch, wch ) && (nifty_is_name( arg, wch->name ))) handler.c: for ( wch = first_char; wch; wch = wch->next ) handler.c: if ( can_see( ch, wch ) && (nifty_is_name( arg, wch->name ) handler.c: || (IS_NPC(wch) && vnum == wch->pIndexData->vnum)) ) handler.c: if ( vnum != -1 ) handler.c: for ( wch = ch->in_room->first_person; wch; wch = wch->next_in_room ) handler.c: if ( !can_see( ch, wch ) || !nifty_is_name_prefix( arg, wch->name ) ) handler.c: for ( wch = first_char; wch; wch = wch->next ) handler.c: if ( !can_see( ch, wch ) || !nifty_is_name_prefix( arg, wch->name ) ) handler.c: * Used by area-reset 'P', 'T' and 'H' commands. handler.c: for ( obj = last_object; obj; obj = obj->prev ) handler.c: if ( obj->pIndexData == pObjIndex ) handler.c: for ( obj = list; obj; obj = obj->next_content ) handler.c: if ( can_see_obj( ch, obj ) && nifty_is_name( arg, obj->name ) ) handler.c: if ( (count += obj->count) >= number ) handler.c: for ( obj = list; obj; obj = obj->next_content ) handler.c: if ( can_see_obj( ch, obj ) && nifty_is_name_prefix( arg, obj->name ) ) handler.c: if ( (count += obj->count) >= number ) handler.c: * Find an obj in a list...going the other way -Thoric handler.c: for ( obj = list; obj; obj = obj->prev_content ) handler.c: if ( can_see_obj( ch, obj ) && nifty_is_name( arg, obj->name ) ) handler.c: if ( (count += obj->count) >= number ) handler.c: for ( obj = list; obj; obj = obj->prev_content ) handler.c: if ( can_see_obj( ch, obj ) && nifty_is_name_prefix( arg, obj->name ) ) handler.c: if ( (count += obj->count) >= number ) handler.c: * Find an obj in player's inventory or wearing via a vnum -Shaddai handler.c: for ( obj = ch->last_carrying; obj; obj = obj->prev_content ) handler.c: if ( can_see_obj( ch, obj ) && obj->pIndexData->vnum == vnum ) handler.c: vnum = -1; handler.c: for ( obj = ch->last_carrying; obj; obj = obj->prev_content ) handler.c: if ( obj->wear_loc == WEAR_NONE handler.c: && (nifty_is_name( arg, obj->name ) || obj->pIndexData->vnum == vnum) ) handler.c: if ( (count += obj->count) >= number ) handler.c: if ( vnum != -1 ) handler.c: for ( obj = ch->last_carrying; obj; obj = obj->prev_content ) handler.c: if ( obj->wear_loc == WEAR_NONE handler.c: && nifty_is_name_prefix( arg, obj->name ) ) handler.c: if ( (count += obj->count) >= number ) handler.c: vnum = -1; handler.c: for ( obj = ch->last_carrying; obj; obj = obj->prev_content ) handler.c: if ( obj->wear_loc != WEAR_NONE handler.c: && (nifty_is_name( arg, obj->name ) || obj->pIndexData->vnum == vnum) ) handler.c: if ( vnum != -1 ) handler.c: for ( obj = ch->last_carrying; obj; obj = obj->prev_content ) handler.c: if ( obj->wear_loc != WEAR_NONE handler.c: && nifty_is_name_prefix( arg, obj->name ) ) handler.c: obj = get_obj_list_rev( ch, argument, ch->in_room->last_content ); handler.c: * Allow reference by vnum for saints+ -Thoric handler.c: vnum = -1; handler.c: for ( obj = first_object; obj; obj = obj->next ) handler.c: if ( can_see_obj( ch, obj ) && (nifty_is_name( arg, obj->name ) handler.c: || vnum == obj->pIndexData->vnum) ) handler.c: if ( (count += obj->count) >= number ) handler.c: if ( vnum != -1 ) handler.c: for ( obj = first_object; obj; obj = obj->next ) handler.c: if ( can_see_obj( ch, obj ) && nifty_is_name_prefix( arg, obj->name ) ) handler.c: if ( (count += obj->count) >= number ) handler.c: * How mental state could affect finding an object -Thoric handler.c: int ms = ch->mental_state; handler.c: int drunk = IS_NPC(ch) ? 0 : ch->pcdata->condition[COND_DRUNK]; handler.c: if ( ms > 15 ) /* range 1 to 20 -- feel free to add more */ handler.c: switch( number_range( UMAX(1, (ms/5-15)), (ms+4) / 5 ) ) handler.c: case 18: t="What about the millions of burrow-maggots feasting on your arm?!?!\n\r"; break; handler.c: * Generic get obj function that supports optional containers. -Thoric handler.c: && IS_SET(container->value[1], CONT_CLOSED) ) handler.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, container->name, TO_CHAR ); handler.c: obj = get_obj_list( ch, arg1, container->first_content ); handler.c: return obj->count; handler.c: if ( obj->item_type == ITEM_CONTAINER && IS_OBJ_STAT(obj, ITEM_MAGIC) ) handler.c: if ( obj->in_obj ) handler.c: return in_magic_container(obj->in_obj); handler.c: weight = obj->count * obj->weight; handler.c: if ( obj->item_type != ITEM_CONTAINER || !IS_OBJ_STAT(obj, ITEM_MAGIC) ) handler.c: for ( obj = obj->first_content; obj; obj = obj->next_content ) handler.c: weight = obj->count * obj->weight; handler.c: for ( obj = obj->first_content; obj; obj = obj->next_content ) handler.c: if ( pRoomIndex->light > 0 ) handler.c: if ( IS_SET(pRoomIndex->room_flags, ROOM_DARK) ) handler.c: if ( pRoomIndex->sector_type == SECT_INSIDE handler.c: || pRoomIndex->sector_type == SECT_CITY ) handler.c: for ( rch = pRoomIndex->first_person; rch; rch = rch->next_in_room ) handler.c: if ( IS_SET(pRoomIndex->room_flags, ROOM_PRIVATE) && count >= 2 ) handler.c: if ( IS_SET(pRoomIndex->room_flags, ROOM_SOLITARY) && count >= 1 ) handler.c: || xIS_SET(victim->act, PLR_WIZINVIS) ) handler.c: && xIS_SET(victim->act, PLR_WIZINVIS) handler.c: && get_trust( ch ) < victim->pcdata->wizinvis ) handler.c: && xIS_SET(victim->act, ACT_MOBINVIS) handler.c: && get_trust( ch ) < victim->mobinvis ) handler.c:/* Deadlies link-dead over 2 ticks aren't seen by mortals -- Blodkai */ handler.c: && victim->timer > 1 handler.c: && !victim->desc ) handler.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) handler.c: /* The miracle cure for blindness? -- Altrag */ handler.c: if ( room_is_dark( ch->in_room ) && !IS_AFFECTED(ch, AFF_INFRARED) ) handler.c: && !victim->fighting handler.c: /* Redone by Narn to let newbie council members see pre-auths. */ handler.c: if( ch->pcdata->council && !str_cmp( ch->pcdata->council->name, "Newbie Council" ) ) handler.c: if( ch->pcdata->council2 && !str_cmp( ch->pcdata->council2->name, "Newbie Council" ) ) handler.c: if ( get_trust(ch) < victim->ghost_level && ch->in_room == victim->in_room) handler.c: if (ch->level < victim->incog_level && ch->in_room != victim->in_room) handler.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_HOLYLIGHT) ) handler.c: if ( IS_NPC( ch ) && ch->pIndexData->vnum == 3 ) handler.c: if ( obj->item_type == ITEM_LIGHT && obj->value[2] != 0 ) handler.c: if ( room_is_dark( ch->in_room ) && !IS_AFFECTED(ch, AFF_INFRARED) ) handler.c: if ( !IS_NPC(ch) && ch->level >= LEVEL_IMMORTAL ) handler.c: if ( IS_NPC(ch) && ch->pIndexData->vnum == 3 ) handler.c: if ( obj->item_type < 1 || obj->item_type > MAX_ITEM_TYPE ) handler.c: bug( "Item_type_name: unknown type %d.", obj->item_type ); handler.c: return o_types[obj->item_type]; handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_GOOD) ) strcat( buf, " anti-good" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_EVIL) ) strcat( buf, " anti-evil" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_NEUTRAL)) strcat( buf, " anti-neutral" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_MAGE) ) strcat( buf, " anti-mage" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_THIEF) ) strcat( buf, " anti-thief" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_WARRIOR)) strcat( buf, " anti-warrior" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_CLERIC)) strcat( buf, " anti-cleric" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_DRUID) ) strcat( buf, " anti-druid" ); handler.c: if ( xIS_SET(*extra_flags, ITEM_ANTI_VAMPIRE)) strcat( buf, " anti-vampire" ); handler.c: * Return ascii name of magic flags vector. - Scryn handler.c: return ex_pfire[pulltype-PT_FIRE]; handler.c: return ex_pair[pulltype-PT_AIR]; handler.c: return ex_pearth[pulltype-PT_EARTH]; handler.c: return ex_pwater[pulltype-PT_WATER]; handler.c: * Set off a trap (obj) upon character (ch) -Thoric handler.c: typ = obj->value[1]; handler.c: lev = obj->value[2]; handler.c: dam = number_range( obj->value[2], obj->value[2] * 2); handler.c: --obj->value[0]; handler.c: if ( obj->value[0] <= 0 ) handler.c: * Check an object for a trap -Thoric handler.c: if ( !obj->first_content ) handler.c: for ( check = obj->first_content; check; check = check->next_content ) handler.c: if ( check->item_type == ITEM_TRAP handler.c: && IS_SET(check->value[3], flag) ) handler.c: * Check the room for a trap -Thoric handler.c: if ( !ch->in_room || !ch->in_room->first_content ) handler.c: for ( check = ch->in_room->first_content; check; check = check->next_content ) handler.c: if ( check->item_type == ITEM_TRAP handler.c: && IS_SET(check->value[3], flag) ) handler.c: * return TRUE if an object contains a trap -Thoric handler.c: if ( !obj->first_content ) handler.c: for ( check = obj->first_content; check; check = check->next_content ) handler.c: if ( check->item_type == ITEM_TRAP ) handler.c: * If an object contains a trap, return the pointer to the trap -Thoric handler.c: if ( !obj->first_content ) handler.c: for ( check = obj->first_content; check; check = check->next_content ) handler.c: if ( check->item_type == ITEM_TRAP ) handler.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) handler.c: if ( obj->item_type == type ) handler.c: * Remove an exit from a room -Thoric handler.c: UNLINK( pexit, room->first_exit, room->last_exit, next, prev ); handler.c: if ( pexit->rexit ) handler.c: pexit->rexit->rexit = NULL; handler.c: STRFREE( pexit->keyword ); handler.c: STRFREE( pexit->description ); handler.c: * clean out a room (leave list pointers intact ) -Thoric handler.c: STRFREE( room->description ); handler.c: STRFREE( room->name ); handler.c: for ( ed = room->first_extradesc; ed; ed = ed_next ) handler.c: ed_next = ed->next; handler.c: STRFREE( ed->description ); handler.c: STRFREE( ed->keyword ); handler.c: top_ed--; handler.c: room->first_extradesc = NULL; handler.c: room->last_extradesc = NULL; handler.c: for ( pexit = room->first_exit; pexit; pexit = pexit_next ) handler.c: pexit_next = pexit->next; handler.c: STRFREE( pexit->keyword ); handler.c: STRFREE( pexit->description ); handler.c: top_exit--; handler.c: room->first_exit = NULL; handler.c: room->last_exit = NULL; handler.c: room->room_flags = 0; handler.c: room->sector_type = 0; handler.c: room->light = 0; handler.c: room->rdecomp = NULL; handler.c: * clean out an object (index) (leave list pointers intact ) -Thoric handler.c: STRFREE( obj->name ); handler.c: STRFREE( obj->short_descr ); handler.c: STRFREE( obj->description ); handler.c: STRFREE( obj->action_desc ); handler.c: obj->item_type = 0; handler.c: xCLEAR_BITS(obj->extra_flags); handler.c: obj->wear_flags = 0; handler.c: obj->count = 0; handler.c: obj->weight = 0; handler.c: obj->cost = 0; handler.c: obj->value[0] = 0; handler.c: obj->value[1] = 0; handler.c: obj->value[2] = 0; handler.c: obj->value[3] = 0; handler.c: for ( paf = obj->first_affect; paf; paf = paf_next ) handler.c: paf_next = paf->next; handler.c: top_affect--; handler.c: obj->first_affect = NULL; handler.c: obj->last_affect = NULL; handler.c: for ( ed = obj->first_extradesc; ed; ed = ed_next ) handler.c: ed_next = ed->next; handler.c: STRFREE( ed->description ); handler.c: STRFREE( ed->keyword ); handler.c: top_ed--; handler.c: obj->first_extradesc = NULL; handler.c: obj->last_extradesc = NULL; handler.c: * clean out a mobile (index) (leave list pointers intact ) -Thoric handler.c: STRFREE( mob->player_name ); handler.c: STRFREE( mob->short_descr ); handler.c: STRFREE( mob->long_descr ); handler.c: STRFREE( mob->description ); handler.c: mob->spec_fun = NULL; handler.c: mob->pShop = NULL; handler.c: mob->rShop = NULL; handler.c: xCLEAR_BITS(mob->progtypes); handler.c: for ( mprog = mob->mudprogs; mprog; mprog = mprog_next ) handler.c: mprog_next = mprog->next; handler.c: STRFREE( mprog->arglist ); handler.c: STRFREE( mprog->comlist ); handler.c: mob->count = 0; mob->killed = 0; handler.c: mob->sex = 0; mob->level = 0; handler.c: xCLEAR_BITS(mob->act); xCLEAR_BITS(mob->affected_by); handler.c: mob->alignment = 0; mob->mobthac0 = 0; handler.c: mob->ac = 0; mob->hitnodice = 0; handler.c: mob->hitsizedice = 0; mob->hitplus = 0; handler.c: mob->damnodice = 0; mob->damsizedice = 0; handler.c: mob->damplus = 0; mob->gold = 0; handler.c: mob->exp = 0; mob->position = 0; handler.c: mob->defposition = 0; mob->height = 0; handler.c: mob->weight = 0; /* mob->vnum = 0; */ handler.c: xCLEAR_BITS(mob->attacks); xCLEAR_BITS(mob->defenses); handler.c: * Remove all resets from an area -Thoric handler.c: for ( pReset = tarea->first_reset; pReset; pReset = pReset_next ) handler.c: pReset_next = pReset->next; handler.c: --top_reset; handler.c: tarea->first_reset = NULL; handler.c: tarea->last_reset = NULL; handler.c: * "Roll" players stats based on the character name -Thoric handler.c: for ( x = 0; x < strlen(ch->name); x++ ) handler.c: c = ch->name[x] + x; handler.c: ch->perm_str = UMIN( 18, ch->perm_str + a ); handler.c: ch->perm_dex = UMIN( 18, ch->perm_dex + a ); handler.c: ch->perm_wis = UMIN( 18, ch->perm_wis + a ); handler.c: ch->perm_int = UMIN( 18, ch->perm_int + a ); handler.c: ch->perm_con = UMIN( 18, ch->perm_con + a ); handler.c: ch->perm_cha = UMIN( 18, ch->perm_cha + a ); handler.c: ch->perm_lck = UMIN( 18, ch->perm_lck + a ); handler.c: ch->perm_str = UMAX( 9, ch->perm_str - a ); handler.c: ch->perm_dex = UMAX( 9, ch->perm_dex - a ); handler.c: ch->perm_wis = UMAX( 9, ch->perm_wis - a ); handler.c: ch->perm_int = UMAX( 9, ch->perm_int - a ); handler.c: ch->perm_con = UMAX( 9, ch->perm_con - a ); handler.c: ch->perm_cha = UMAX( 9, ch->perm_cha - a ); handler.c: ch->perm_lck = UMAX( 9, ch->perm_lck - a ); handler.c: * "Fix" a character's stats -Thoric handler.c: while ( (obj=ch->first_carrying) != NULL ) handler.c: for ( aff = ch->first_affect; aff; aff = aff->next ) handler.c: xCLEAR_BITS(ch->affected_by); handler.c: xSET_BITS(ch->affected_by, race_table[ch->race]->affected); handler.c: ch->mental_state = -10; handler.c: ch->hit = UMAX( 1, ch->hit ); handler.c: ch->mana = UMAX( 1, ch->mana ); handler.c: ch->move = UMAX( 1, ch->move ); handler.c: ch->armor = 100; handler.c: ch->mod_str = 0; handler.c: ch->mod_dex = 0; handler.c: ch->mod_wis = 0; handler.c: ch->mod_int = 0; handler.c: ch->mod_con = 0; handler.c: ch->mod_cha = 0; handler.c: ch->mod_lck = 0; handler.c: ch->damroll = 0; handler.c: ch->hitroll = 0; handler.c: ch->alignment = URANGE( -1000, ch->alignment, 1000 ); handler.c: ch->saving_breath = 0; handler.c: ch->saving_wand = 0; handler.c: ch->saving_para_petri = 0; handler.c: ch->saving_spell_staff = 0; handler.c: ch->saving_poison_death = 0; handler.c: ch->carry_weight = 0; handler.c: ch->carry_number = 0; handler.c: for ( aff = ch->first_affect; aff; aff = aff->next ) handler.c: * Show an affect verbosely to a character -Thoric handler.c: if ( paf->location != APPLY_NONE && paf->modifier != 0 ) handler.c: switch( paf->location ) handler.c: affect_loc_name( paf->location ), paf->modifier ); handler.c: affect_loc_name( paf->location ) ); handler.c: if ( IS_SET( paf->modifier, 1 << x ) ) handler.c: IS_VALID_SN(paf->modifier) ? skill_table[paf->modifier]->name handler.c: affect_loc_name( paf->location ) ); handler.c: if ( IS_SET( paf->modifier, 1 << x ) ) handler.c: * Set the current global object to obj -Thoric handler.c: cur_obj = obj->serial; handler.c: * Check the recently extracted object queue for obj -Thoric handler.c: if ( obj->serial == cur_obj handler.c: for (cod = extracted_obj_queue; cod; cod = cod->next ) handler.c: obj->next = extracted_obj_queue; handler.c: extracted_obj_queue = extracted_obj_queue->next; handler.c: STRFREE( obj->name ); handler.c: STRFREE( obj->description ); handler.c: STRFREE( obj->short_descr ); handler.c: STRFREE( obj->action_desc ); handler.c: --cur_qobjs; handler.c: * Set the current global character to ch -Thoric handler.c: cur_room = ch->in_room; handler.c: * Check to see if ch died recently -Thoric handler.c: for (ccd = extracted_char_queue; ccd; ccd = ccd->next ) handler.c: if ( ccd->ch == ch ) handler.c: * Add ch to the queue of recently extracted characters -Thoric handler.c: ccd->ch = ch; handler.c: ccd->room = ch->in_room; handler.c: ccd->extract = extract; handler.c: ccd->retcode = global_retcode; handler.c: ccd->retcode = rCHAR_DIED; handler.c: ccd->next = extracted_char_queue; handler.c: extracted_char_queue = ccd->next; handler.c: if ( ccd->extract ) handler.c: free_char( ccd->ch ); handler.c: --cur_qchars; handler.c: * Add a timer to ch -Thoric handler.c: for ( timer = ch->first_timer; timer; timer = timer->next ) handler.c: if ( timer->type == type ) handler.c: timer->count = count; handler.c: timer->do_fun = fun; handler.c: timer->value = value; handler.c: timer->count = count; handler.c: timer->type = type; handler.c: timer->do_fun = fun; handler.c: timer->value = value; handler.c: LINK( timer, ch->first_timer, ch->last_timer, next, prev ); handler.c: for ( timer = ch->first_timer; timer; timer = timer->next ) handler.c: if ( timer->type == type ) handler.c: return timer->count; handler.c: UNLINK( timer, ch->first_timer, ch->last_timer, next, prev ); handler.c: for ( timer = ch->first_timer; timer; timer = timer->next ) handler.c: if ( timer->type == type ) handler.c: if ( ch->level >= tarea->low_soft_range || ch->level <= tarea->hi_soft_range ) handler.c: || !victim->in_room handler.c: || IS_SET( victim->in_room->room_flags, ROOM_PRIVATE ) handler.c: || IS_SET( victim->in_room->room_flags, ROOM_SOLITARY ) handler.c: || IS_SET( victim->in_room->room_flags, ROOM_NO_ASTRAL ) handler.c: || IS_SET( victim->in_room->room_flags, ROOM_DEATH ) handler.c: || IS_SET( victim->in_room->room_flags, ROOM_PROTOTYPE ) handler.c: || IS_SET( ch->in_room->room_flags, ROOM_NO_RECALL ) handler.c: || victim->level >= ch->level + 15 handler.c: || ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) handler.c: || ( IS_NPC( victim ) && saves_spell_staff( ch->level, victim ) ) handler.c: || ( IS_SET( victim->in_room->area->flags, AFLAG_NOPKILL ) handler.c: if ( ch->level >= tarea->low_hard_range && ch->level <= tarea->hi_hard_range ) handler.c: clan_factor = 1 + abs( ch->alignment - ch->pcdata->clan->alignment ) / 1000; handler.c: deity_factor = ch->pcdata->favor / -500; handler.c: ms = 10 - abs(ch->mental_state); handler.c: if ( (number_percent() - get_curr_lck(ch) + 13 - ms) + deity_factor <= handler.c: deity_factor = ch->pcdata->favor / -500; handler.c: if (number_percent() - get_curr_lck(ch) + 13 - attrib + 13 + deity_factor <= percent ) handler.c: * Make a simple clone of an object (no extras...yet) -Thoric handler.c: clone->pIndexData = obj->pIndexData; handler.c: clone->name = QUICKLINK( obj->name ); handler.c: clone->short_descr = QUICKLINK( obj->short_descr ); handler.c: clone->description = QUICKLINK( obj->description ); handler.c: clone->action_desc = QUICKLINK( obj->action_desc ); handler.c: clone->item_type = obj->item_type; handler.c: clone->extra_flags = obj->extra_flags; handler.c: clone->magic_flags = obj->magic_flags; handler.c: clone->wear_flags = obj->wear_flags; handler.c: clone->wear_loc = obj->wear_loc; handler.c: clone->weight = obj->weight; handler.c: clone->cost = obj->cost; handler.c: clone->level = obj->level; handler.c: clone->timer = obj->timer; handler.c: clone->value[0] = obj->value[0]; handler.c: clone->value[1] = obj->value[1]; handler.c: clone->value[2] = obj->value[2]; handler.c: clone->value[3] = obj->value[3]; handler.c: clone->value[4] = obj->value[4]; handler.c: clone->value[5] = obj->value[5]; handler.c: clone->count = 1; handler.c: ++obj->pIndexData->count; handler.c: cur_obj_serial = UMAX((cur_obj_serial + 1 ) & (BV30-1), 1); handler.c: clone->serial = clone->pIndexData->serial = cur_obj_serial; handler.c: * If possible group obj2 into obj1 -Thoric handler.c: * This code, along with clone_object, obj->count, and special support handler.c: if ( obj1->pIndexData == obj2->pIndexData handler.c: && !obj1->pIndexData->mudprogs handler.c: && !obj2->pIndexData->mudprogs handler.c: && QUICKMATCH( obj1->name, obj2->name ) handler.c: && QUICKMATCH( obj1->short_descr, obj2->short_descr ) handler.c: && QUICKMATCH( obj1->description, obj2->description ) handler.c: && QUICKMATCH( obj1->action_desc, obj2->action_desc ) handler.c: && obj1->item_type == obj2->item_type handler.c: && xSAME_BITS(obj1->extra_flags, obj2->extra_flags) handler.c: && obj1->magic_flags == obj2->magic_flags handler.c: && obj1->wear_flags == obj2->wear_flags handler.c: && obj1->wear_loc == obj2->wear_loc handler.c: && obj1->weight == obj2->weight handler.c: && obj1->cost == obj2->cost handler.c: && obj1->level == obj2->level handler.c: && obj1->timer == obj2->timer handler.c: && obj1->value[0] == obj2->value[0] handler.c: && obj1->value[1] == obj2->value[1] handler.c: && obj1->value[2] == obj2->value[2] handler.c: && obj1->value[3] == obj2->value[3] handler.c: && obj1->value[4] == obj2->value[4] handler.c: && obj1->value[5] == obj2->value[5] handler.c: && !obj1->first_extradesc && !obj2->first_extradesc handler.c: && !obj1->first_affect && !obj2->first_affect handler.c: && !obj1->first_content && !obj2->first_content handler.c: && obj1->count + obj2->count > 0 ) /* prevent count overflow */ handler.c: obj1->count += obj2->count; handler.c: obj1->pIndexData->count += obj2->count; /* to be decremented in */ handler.c: numobjsloaded += obj2->count; /* extract_obj */ handler.c: * Split off a grouped object -Thoric handler.c: int count = obj->count; handler.c: --obj->pIndexData->count; /* since clone_object() ups this value */ handler.c: --numobjsloaded; handler.c: rest->count = obj->count - num; handler.c: obj->count = num; handler.c: if ( obj->carried_by ) handler.c: LINK( rest, obj->carried_by->first_carrying, handler.c: obj->carried_by->last_carrying, handler.c: rest->carried_by = obj->carried_by; handler.c: rest->in_room = NULL; handler.c: rest->in_obj = NULL; handler.c: if ( obj->in_room ) handler.c: LINK( rest, obj->in_room->first_content, obj->in_room->last_content, handler.c: rest->carried_by = NULL; handler.c: rest->in_room = obj->in_room; handler.c: rest->in_obj = NULL; handler.c: if ( obj->in_obj ) handler.c: LINK( rest, obj->in_obj->first_content, obj->in_obj->last_content, handler.c: rest->in_obj = obj->in_obj; handler.c: rest->in_room = NULL; handler.c: rest->carried_by = NULL; handler.c: CHAR_DATA *ch = obj->carried_by; handler.c: if ( destobj || (!destroom && !ch && (destobj = obj->in_obj) != NULL) ) handler.c: for ( otmp = obj->first_content; otmp; otmp = otmp_next ) handler.c: otmp_next = otmp->next_content; handler.c: if ( destobj->item_type == ITEM_KEYRING && otmp->item_type != ITEM_KEY ) handler.c: if ( destobj->item_type == ITEM_QUIVER && otmp->item_type != ITEM_PROJECTILE ) handler.c: if ( (destobj->item_type == ITEM_CONTAINER || destobj->item_type == ITEM_KEYRING handler.c: || destobj->item_type == ITEM_QUIVER) handler.c: > destobj->value[0] ) handler.c: if ( destroom || (!ch && (destroom = obj->in_room) != NULL) ) handler.c: for ( otmp = obj->first_content; otmp; otmp = otmp_next ) handler.c: otmp_next = otmp->next_content; handler.c: if ( ch && HAS_PROG(otmp->pIndexData, DROP_PROG) && otmp->count > 1 ) handler.c: otmp_next = obj->first_content; handler.c: for ( otmp = obj->first_content; otmp; otmp = otmp_next ) handler.c: otmp_next = otmp->next_content; handler.c: obj->pIndexData->vnum ); handler.c: * Improve mental state -Thoric handler.c: if ( ch->mental_state < 0 ) handler.c: ch->mental_state = URANGE( -100, ch->mental_state + c, 0 ); handler.c: if ( ch->mental_state > 0 ) handler.c: ch->mental_state = URANGE( 0, ch->mental_state - c, 100 ); handler.c: * Deteriorate mental state -Thoric handler.c: c -= number_percent() < con ? 1 : 0; handler.c: /* Nuisance flag makes state worsen quicker. --Shaddai */ handler.c: if ( !IS_NPC(ch) && ch->pcdata->nuisance &&ch->pcdata->nuisance->flags > 2 ) handler.c: c += .4*((ch->pcdata->nuisance->flags-2)*ch->pcdata->nuisance->power); handler.c: if ( ch->mental_state < 0 ) handler.c: ch->mental_state = URANGE( -100, ch->mental_state - c, 100 ); handler.c: if ( ch->mental_state > 0 ) handler.c: ch->mental_state = URANGE( -100, ch->mental_state + c, 100 ); handler.c: ch->mental_state -= c; handler.c: * Add gold to an area's economy -Thoric handler.c: ++tarea->high_economy; handler.c: gold -= 1000000000; handler.c: tarea->low_economy += gold; handler.c: while ( tarea->low_economy >= 1000000000 ) handler.c: ++tarea->high_economy; handler.c: tarea->low_economy -= 1000000000; handler.c: * Take gold from an area's economy -Thoric handler.c: --tarea->high_economy; handler.c: gold -= 1000000000; handler.c: tarea->low_economy -= gold; handler.c: while ( tarea->low_economy < 0 ) handler.c: --tarea->high_economy; handler.c: tarea->low_economy += 1000000000; handler.c: * Check to see if economy has at least this much gold -Thoric handler.c: int hasgold = ((tarea->high_economy > 0) ? 1 : 0) * 1000000000 handler.c: + tarea->low_economy; handler.c: * Used in db.c when resetting a mob into an area -Thoric handler.c: mob->gold = UMIN( mob->gold, mob->level * mob->level * 400 ); handler.c: if ( !mob->in_room ) handler.c: tarea = mob->in_room->area; handler.c: gold = ((tarea->high_economy > 0) ? 1 : 0) * 1000000000 + tarea->low_economy; handler.c: mob->gold = URANGE( 0, mob->gold, gold / 10 ); handler.c: if ( mob->gold ) handler.c: lower_economy( tarea, mob->gold ); handler.c: * Keep track of the last so many kills by vnum -Thoric handler.c: bug( "add_kill: trying to add kill non-npc", 0 ); handler.c: vnum = mob->pIndexData->vnum; handler.c: track = URANGE( 2, ((ch->level+3) * MAX_KILLTRACK)/LEVEL_AVATAR, MAX_KILLTRACK ); handler.c: if ( ch->pcdata->killed[x].vnum == vnum ) handler.c: if ( ch->pcdata->killed[x].count < 50 ) handler.c: ++ch->pcdata->killed[x].count; handler.c: if ( ch->pcdata->killed[x].vnum == 0 ) handler.c: memmove( (char *) ch->pcdata->killed+sizeof(KILLED_DATA), handler.c: ch->pcdata->killed, (track-1) * sizeof(KILLED_DATA) ); handler.c: ch->pcdata->killed[0].vnum = vnum; handler.c: ch->pcdata->killed[0].count = 1; handler.c: ch->pcdata->killed[track].vnum = 0; handler.c: * Return how many times this player has killed this mob -Thoric handler.c: vnum = mob->pIndexData->vnum; handler.c: track = URANGE( 2, ((ch->level+3) * MAX_KILLTRACK)/LEVEL_AVATAR, MAX_KILLTRACK ); handler.c: if ( ch->pcdata->killed[x].vnum == vnum ) handler.c: return ch->pcdata->killed[x].count; handler.c: if ( ch->pcdata->killed[x].vnum == 0 ) handler.c: for(pArea = first_area; pArea; pArea = pArea->next) handler.c: if(nifty_is_name(name, pArea->name)) handler.c: for(pArea = first_build; pArea; pArea = pArea->next) handler.c: if(nifty_is_name(name, pArea->name)) hashstr.c: * this as you still save lots of space on duplicate strings. -Thoric * hashstr.c: for (ptr = string_hash[hash]; ptr; ptr = ptr->next ) hashstr.c: if ( len == ptr->length && !strcmp(str,(char *)ptr+psize) ) hashstr.c: if ( ptr->links < 65535 ) hashstr.c: ++ptr->links; hashstr.c: ptr->links = 1; hashstr.c: ptr->length = len; hashstr.c: ptr->next = string_hash[hash]; hashstr.c: ptr = (struct hashstr_data *) (str - sizeof(struct hashstr_data)); hashstr.c: if ( ptr->links == 0 ) hashstr.c: if ( ptr->links < 65535 ) hashstr.c: ++ptr->links; hashstr.c: * returns how many links are left, or -1 if an error occurred. hashstr.c: ptr = (struct hashstr_data *) (str - sizeof(struct hashstr_data)); hashstr.c: if ( ptr->links == 65535 ) /* permanent */ hashstr.c: return ptr->links; hashstr.c: if ( ptr->links == 0 ) hashstr.c: return -1; hashstr.c: if ( --ptr->links == 0 ) hashstr.c: string_hash[hash] = ptr->next; hashstr.c: ptr2_next = ptr2->next; hashstr.c: ptr2->next = ptr->next; hashstr.c: return -1; hashstr.c: return ptr->links; hashstr.c: for ( c = 0, ptr = string_hash[x]; ptr; ptr = ptr->next, c++ ); hashstr.c: for ( c=0, ptr = string_hash[hash]; ptr; ptr = ptr->next, c++ ) hashstr.c: ptr->length, ptr->links, str ); hashstr.c: for (fnd = NULL, ptr = string_hash[hash], c = 0; ptr; ptr = ptr->next, c++ ) hashstr.c: if ( len == ptr->length && !strcmp(str,(char *)ptr+psize) ) hashstr.c: str, fnd->links, p, c, hash, fnd->length ); hashstr.c: for ( c = 0, ptr = string_hash[x]; ptr; ptr = ptr->next, c++ ) hashstr.c: if ( ptr->links == 1 ) hashstr.c: if ( ptr->links > hilink ) hashstr.c: hilink = ptr->links; hashstr.c: totlinks += ptr->links; hashstr.c: bytesused += (ptr->length + 1 + sizeof(struct hashstr_data)); hashstr.c: wouldhave += (ptr->links * (ptr->length + 1)); hashstr.c: sprintf( buf, "Hash strings allocated:%8d Total links : %d\n\rString bytes allocated:%8d Bytes saved : %d\n\rUnique (wasted) links :%8d Hi-Link count: %d\n\r", hashstr.c: total, totlinks, bytesused, wouldhave - bytesused, unique, hilink ); hashstr.c: for ( ptr = string_hash[x]; ptr; ptr = ptr->next ) hashstr.c: if ( ptr->links >= top ) hashstr.c: fprintf( lfp, "Links: %5d String: >%s<\n\r", ptr->links, str ); hiscores.c: for( table = first_table ; table ; table = table->next ) hiscores.c: table->keyword, table->desc, table->length, table->vnum ); hiscores.c: pager_printf( ch, "Description: %s\n\r", table->desc ); hiscores.c: pager_printf( ch, "Vnum: %d MaxLength: %d Length: %d\n\r", table->vnum, table->max_length, table->length ); hiscores.c: for( entry = table->first_entry, i=1 ; entry ; entry = entry->next, i++ ) hiscores.c: pager_printf( ch, "%d. Name: %-15.15s Score: %d\n\r", hiscores.c: i, capitalize(entry->name), entry->score ) ; hiscores.c: STRFREE( table->desc ); hiscores.c: table->desc = STRALLOC( argument ); hiscores.c: STRFREE( table->keyword ); hiscores.c: table->keyword = STRALLOC( set_val ); hiscores.c: table->vnum = atoi( set_val ) ; hiscores.c: kwd, table->vnum ); hiscores.c: table->max_length = atoi( set_val ) ; hiscores.c: kwd, table->max_length ); hiscores.c: for( table = first_table ; table ; table = table->next ) hiscores.c: if( table->vnum == -1 ) hiscores.c: ch_printf( ch, " %s: keyword '%s'\n\r", table->desc, table->keyword ); hiscores.c: oindex = get_obj_index( table->vnum ); hiscores.c: table->desc, hiscores.c: oindex->short_descr ); hiscores.c: if( table->vnum != -1 && !IS_IMMORTAL(ch) ) hiscores.c: show_hiscore( table->keyword, ch ); hiscores.c: for( table = first_table ; table ; table = table->next ) hiscores.c: if( obj->pIndexData->vnum == table->vnum ) hiscores.c: return table->keyword; hiscores.c:| |-------------------------------------------------| | hiscores.c:| |-------------------------------------------------| | hiscores.c: pager_printf_color( ch, "&g| |-------------------------------------------------| |&w\n\r" ); hiscores.c: sprintf( buf, "%s", table->desc ); hiscores.c: len = (39 - len); hiscores.c: buf, table->desc, hiscores.c: for( entry = table->first_entry ; entry ; entry = entry->next ) hiscores.c: pager_printf_color( ch, "&g| | %s%2d. %-20.20s%15d &g| |\n\r", hiscores.c: num, capitalize(entry->name), entry->score ); hiscores.c: pager_printf_color( ch, "&g| |-------------------------------------------------| |&w\n\r" ); hiscores.c: old_pos = get_position( keyword, ch->name); hiscores.c: add_hiscore( keyword, ch->name, score ); hiscores.c: pos = get_position( keyword, ch->name ); hiscores.c: if( pos != -1 && pos != old_pos && table != NULL ) hiscores.c: pos, table->desc ); hiscores.c: /* replaced for info channel -- Scion */ hiscores.c: for ( vch = first_char; vch; vch = vch->next ) hiscores.c: ch->name, pos, table->desc ); hiscores.c: if (vch && ch && buf) /* to fix "vch = NULL" bug -- Scion */ hiscores.c: /* replaced for info channel -- Scion */ hiscores.c: else if( pos != -1 && table != NULL ) hiscores.c: pos, table->desc ); hiscores.c: for( entry = table->first_entry ; entry ; entry = entry->next ) hiscores.c: if( !str_cmp( entry->name, name ) ) hiscores.c: UNLINK( entry, table->first_entry, table->last_entry, next, prev ); hiscores.c: STRFREE( entry->name ); hiscores.c: table->length--; hiscores.c: for( i=1, entry = table->first_entry ; i<= table->max_length ; entry = entry->next, i++ ) hiscores.c: new_entry->name = STRALLOC( name ); hiscores.c: new_entry->score = score; hiscores.c: LINK( new_entry, table->first_entry, table->last_entry, next, prev ); hiscores.c: table->length++; hiscores.c: else if( score > entry->score ) hiscores.c: new_entry->name = STRALLOC( name ); hiscores.c: new_entry->score = score; hiscores.c: INSERT( new_entry, entry, table->first_entry, next, prev ); hiscores.c: table->length++; hiscores.c: while( table->length > table->max_length ) hiscores.c: table->length--; hiscores.c: entry = table->last_entry; hiscores.c: UNLINK( entry, table->first_entry, table->last_entry, next, prev ); hiscores.c: STRFREE( entry->name ); hiscores.c: * -1 if 'name' is not in that table */ hiscores.c: return -1; hiscores.c: for( entry = table->first_entry ; entry ; entry = entry->next ) hiscores.c: if( !str_cmp( entry->name, name) ) hiscores.c: return -1; hiscores.c: for( table = first_table ; table ; table = table->next ) hiscores.c: if( !str_cmp( table->keyword, keyword ) ) hiscores.c: new_table->keyword = STRALLOC( keyword ); hiscores.c: new_table->desc = STRALLOC( desc ); hiscores.c: new_table->vnum = -1; hiscores.c: new_table->max_length = 10; hiscores.c: new_table->length = 0; hiscores.c: new_table->first_entry = NULL; hiscores.c: new_table->last_entry = NULL; hiscores.c: STRFREE( table->keyword ); hiscores.c: STRFREE( table->desc ); hiscores.c: for( entry = table->first_entry ; entry ; entry = nentry ) hiscores.c: nentry = entry->next; hiscores.c: UNLINK( entry, table->first_entry, table->last_entry, next, prev ); hiscores.c: STRFREE( entry->name ); hiscores.c: for( table = first_table ; table ; table = table->next ) hiscores.c: fprintf( fp, "Keyword %s\n", table->keyword ); hiscores.c: fprintf( fp, "Desc %s~\n", table->desc ); hiscores.c: fprintf( fp, "Vnum %d\n", table->vnum ); hiscores.c: fprintf( fp, "MaxLength %d\n", table->max_length ); hiscores.c: for( entry = table->first_entry ; entry ; entry = entry->next ) hiscores.c: fprintf( fp, "Entry %s %d\n", entry->name, entry->score); hiscores.c: new_table->keyword = STRALLOC( fread_word(fp) ); hiscores.c: new_table->desc = fread_string( fp ) ; hiscores.c: new_table->vnum = fread_number( fp ); hiscores.c: new_table->max_length = fread_number( fp ); hiscores.c: new_entry->name = STRALLOC( fread_word(fp) ); hiscores.c: new_entry->score = fread_number( fp ); hiscores.c: LINK( new_entry, new_table->first_entry, new_table->last_entry, next, prev ); hiscores.c: new_table->length = entry_count; hiscores.c: if( entry_count > new_table->max_length ) hiscores.c: new_table->max_length = entry_count; hiscores.c: if( new_table->keyword == NULL ) hiscores.c: new_table->keyword = STRALLOC( "error" ); hiscores.c: if( new_table->desc == NULL ) hiscores.c: new_table->desc = STRALLOC( "Error: no description" ); hskelter.c: sprintf( buf, "tar -zcf %s %s*", HSKELTER_BACKUP, PLAYER_DIR ); hskelter.c: send_to_char( "Backing up post-helter skelter player base\n\r", ch ); hskelter.c: sprintf( buf, "tar -zcf %s %s*", HSKELTER_AFTER, PLAYER_DIR ); hskelter.c: for( victim = first_char; victim ; victim = victim->next ) hskelter.c: victim->position = POS_SLEEPING; hskelter.c: send_to_char( "Restoring pre-helter skelter player base backup.\n\r", ch ); hskelter.c: sprintf( buf, "tar -zvxf %s", HSKELTER_BACKUP ); hskelter.c: if( stat(filen, &fst) == -1 ) hskelter.c: for( hpk = first_hpk ; hpk ; hpk = hpk->next ) hskelter.c: if( !str_cmp( hpk->name, ch->name ) ) hskelter.c: hpk->pkills++; hskelter.c: hpk->name = STRALLOC( ch->name ); hskelter.c: hpk->pkills = 1; hskelter.c: adjust_hiscore( "hskelter_pkill", ch, hpk->pkills ); hskelter.c: n_hpk = hpk->next; hskelter.c: STRFREE( hpk->name ); ibuild.c: * -----------------------------------------------------------| (0...0) * ibuild.c: * -----------------------------------------------------------| {o o} * ibuild.c: * ------------------------------------------------------------------------ * ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "cmenu a" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "cmenu h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" }, ibuild.c: ,10, 22, "%-19.19s", NULL, STRING, 0, NO_COMMAND ibuild.c:{ "2", NO_COMMAND ,11, 22, "%-19.19s", NULL, STRING, 0, NO_COMMAND ibuild.c:{ "2", "k", 13, 2, "%-70.70s", NULL, STRING, 1, "redit ex_exdesc %s" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" }, ibuild.c: "1", "a", 5, 2, "%-73.73s", NULL, STRING, 1, "redit name %s" ibuild.c: "1", "b", 7, 2, "%-73.73s", NULL, STRING, 0, "redit desc" ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "rmenu a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 0, "rmenu b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 0, "rmenu c" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "rmenu h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" }, ibuild.c: "1", "a", 2, 20, "%-49.49s", NULL, STRING, 2, "oset %s name %s" ibuild.c: "1", "b", 3, 20, "%-49.49s", NULL, STRING, 2, "oset %s short %s" ibuild.c: "1", "c", 4, 10, "%-59.69s", NULL, STRING, 2, "oset %s long %s" ibuild.c: "1", "d", 5, 15, "%-49.59s", NULL, STRING, 2, "oset %s actiondesc %s" ibuild.c: ,9, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND ibuild.c: ,10, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND ibuild.c: ,11, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND ibuild.c: ,12, 23, "%-19.19s", NULL, STRING, 0, NO_COMMAND ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" }, ibuild.c: "1", "b", 2, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_poison %s" ibuild.c: "1", "c", 2, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect age %s" ibuild.c: "1", "d", 3, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect strength %s" ibuild.c: "1", "e", 3, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_rod %s" ibuild.c: "1", "f", 3, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect class %s" ibuild.c: "1", "g", 4, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect intelligence %s" ibuild.c: "1", "h", 4, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_para %s" ibuild.c: "1", "i", 4, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect level %s" ibuild.c: "1", "j", 5, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect wisdom %s" ibuild.c: "1", "k", 5, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_breath %s" ibuild.c: "1", "l", 5, 65, "%+-1.1hd", NULL, SH_INT, 2, "oset %s affect sex %s" ibuild.c: "1", "m", 6, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect dexterity %s" ibuild.c: "1", "n", 6, 44, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect save_spell %s" ibuild.c: "1", "o", 6, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect height %s" ibuild.c: "1", "p", 7, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect constitution %s" ibuild.c: "1", "r", 7, 65, "%+-3.3hd", NULL, SH_INT, 2, "oset %s affect weight %s" ibuild.c: "1", "s", 8, 23, "%+-2.2hd", NULL, SH_INT, 2, "oset %s affect charisma %s" ibuild.c: "1", "v", 9, 12, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect mana %s" ibuild.c: "1", "w", 9, 41, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect armor %s" ibuild.c: "1", "y", 10, 12, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect hit %s" ibuild.c: "1", "z", 10, 41, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect hitroll %s" ibuild.c: "1", "A", 10, 63, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect gold %s" ibuild.c: "1", "B", 11, 12, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect move %s" ibuild.c: "1", "C", 11, 41, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect damroll %s" ibuild.c: "1", "D", 11, 63, "%+-4.4hd", NULL, SH_INT, 2, "oset %s affect experience %s" ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "omenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "omenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "omenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "omenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "omenu %s e" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "omenu %s h" }, ibuild.c: "1", "a", 2, 20, "%-59.59s", NULL, STRING, 2, "mset %s name %s" ibuild.c: "1", "b", 3, 20, "%-59.59s", NULL, STRING, 2, "mset %s short %s" ibuild.c: "1", "c", 4, 10, "%-69.68s", NULL, STRING, 2, "mset %s long %s" ibuild.c: "1", "d", 5, 10, "%-69.68s", NULL, STRING, 2, "mset %s description %s" ibuild.c: "2", "c", 11, 11, "%-10.10s", NULL, STRING, 2, "mset (obsolete) %s class %s" ibuild.c: "2", "d", 12, 11, "%-10.10s", NULL, STRING, 2, "mset %s race %s" ibuild.c: "2", "e", 13, 11, "%-6.6s", NULL, STRING, 2, "mset %s sex %s" ibuild.c: "2", "g", 15, 11, "%+-4.4hd", NULL, SH_INT, 2, "mset %s align %s" ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c: { "1", "-",17, 12, "%1.1s", NULL, STRING, 1, "mset %s race slime" }, ibuild.c:{ "-", "a", 22, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c: "1", "a", 2, 36, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav1 %s" ibuild.c: "1", "b", 2, 63, "%+-2.2d", NULL, SH_INT, 2, "mset %s sav2 %s" ibuild.c: "1", "c", 3, 36, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav3 %s" ibuild.c: "1", "d", 3, 63, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav4 %s" ibuild.c: "1", "e", 4, 36, "%+-2.2hd", NULL, SH_INT, 2, "mset %s sav5 %s" ibuild.c: "2", "z", 11, 26, "%1.1s", NULL, STRING, 1, "mset %s part tail-attack" ibuild.c: "2", "A", 11, 49, "%1.1s", NULL, STRING, 1, "mset %s part sharp-scales" ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 1, "mmenu %s a" }, ibuild.c:{ "-", "b", 13, 2, "", NULL, STRING, 1, "mmenu %s b" }, ibuild.c:{ "-", "c", 13, 2, "", NULL, STRING, 1, "mmenu %s c" }, ibuild.c:{ "-", "d", 13, 2, "", NULL, STRING, 1, "mmenu %s d" }, ibuild.c:{ "-", "e", 13, 2, "", NULL, STRING, 1, "mmenu %s e" }, ibuild.c:{ "-", "f", 13, 2, "", NULL, STRING, 1, "mmenu %s f" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 1, "mmenu %s h" }, ibuild.c:{ "-", "a", 13, 2, "", NULL, STRING, 0, "cmenu a" }, ibuild.c:{ "-", "h", 13, 2, "", NULL, STRING, 0, "cmenu h" }, ibuild.c: ch->pagelen = lines; ibuild.c: if (IS_SET(idx->resistant, risFlag)) ibuild.c: if (IS_SET(idx->immune, risFlag)) ibuild.c: if (IS_SET(idx->susceptible, risFlag)) ibuild.c: switch (ch->inter_page) { ibuild.c: if (!ch->desc) { ibuild.c: bug("Send_room_page_to_char: NULL ch->desc", 0); ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = ROOM_PAGE_D; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = ROOM_HELP_PAGE; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = ROOM_PAGE_C; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = ROOM_PAGE_B; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = ROOM_PAGE_A; ibuild.c: write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J")); ibuild.c: write_to_buffer(ch->desc, menu_picture, strlen(menu_picture)); ibuild.c: if (!ch->desc) { ibuild.c: bug("Send_control_page_to_char: NULL ch->desc", 0); ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = CONTROL_HELP_PAGE; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = CONTROL_PAGE_A; ibuild.c: write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J")); ibuild.c: write_to_buffer(ch->desc, menu_picture, strlen(menu_picture)); ibuild.c: if (!ch->desc) { ibuild.c: ch->inter_editing = NO_PAGE; ibuild.c: ch->inter_page = NO_PAGE; ibuild.c: sprintf(buf, "\E[%d;%dr", 1, ch->pagelen); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J")); ibuild.c: sprintf(output, "%-s", "(blank)"); ibuild.c: l = l - 3; ibuild.c: sprintf(output, "%-s", newstr); ibuild.c: if (!ch->desc) { ibuild.c: bug("Send_page_to_char: NULL ch->desc", 0); ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = OBJ_HELP_PAGE; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = OBJ_PAGE_E; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = OBJ_PAGE_D; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = OBJ_PAGE_C; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = OBJ_PAGE_B; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = OBJ_PAGE_A; ibuild.c: write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J")); ibuild.c: write_to_buffer(ch->desc, menu_picture, strlen(menu_picture)); ibuild.c: if (!ch->desc) { ibuild.c: bug("Send_page_to_char: NULL ch->desc", 0); ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_HELP_PAGE; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_PAGE_F; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_PAGE_E; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_PAGE_D; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_PAGE_C; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_PAGE_B; ibuild.c: format_string(buf,ch->inter_editing,10); ibuild.c: ch->inter_page = MOB_PAGE_A; ibuild.c: write_to_buffer(ch->desc, "50\E[;H\E[2J", strlen("50\E[;H\E[2J")); ibuild.c: write_to_buffer(ch->desc, menu_picture, strlen(menu_picture)); ibuild.c: switch (ch->inter_page) { ibuild.c: if(ch->inter_type== MOB_TYPE) ibuild.c: idx = get_mob_index(ch->inter_editing_vnum); ibuild.c: bug("do_redraw_page: Get_mob_index: bad vnum %d.", ch->inter_editing_vnum); ibuild.c: if(ch->inter_type== ROOM_TYPE) ibuild.c: ridx = get_room_index(ch->inter_editing_vnum); ibuild.c: bug("do_redraw_page: Get_room_index: bad vnum %d.", ch->inter_editing_vnum); ibuild.c: if(ch->inter_type== OBJ_TYPE) ibuild.c: oidx = get_obj_index(ch->inter_editing_vnum); ibuild.c: bug("do_redraw_page: Get_obj_index: bad vnum %d.", ch->inter_editing_vnum); ibuild.c: if(ch->inter_type== CONTROL_TYPE) ibuild.c: bug("do_redraw_page: Bad ch->inter_type: vnum %d.", ch->inter_editing_vnum); ibuild.c: switch (ch->inter_type) { ibuild.c: switch (ch->inter_page) { ibuild.c: idx = (MOB_INDEX_DATA *) get_mob_index(ch->inter_editing_vnum); ibuild.c: bug("refresh_page: Get_mob_index: bad vnum %d.", ch->inter_editing_vnum); ibuild.c: switch (ch->inter_page) { ibuild.c: idx = (ROOM_INDEX_DATA *) get_room_index(ch->inter_editing_vnum); ibuild.c: bug("refresh_page: Get_room_index: bad vnum %d.", ch->inter_editing_vnum); ibuild.c: switch (ch->inter_page) { ibuild.c: idx = (OBJ_INDEX_DATA *) get_obj_index(ch->inter_editing_vnum); ibuild.c: bug("refresh_page: Get_obj_index: bad vnum %d.", ch->inter_editing_vnum); ibuild.c: switch (ch->inter_page) { ibuild.c: if ((ch->inter_substate < 0) || (ch->inter_substate > 5)) { ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;%dr", offset, ch->pagelen); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;1H", (ch->pagelen)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: if ((ch->inter_substate < 0) || (ch->inter_substate > 5)) { ibuild.c: room_page_c_data[0].data = (ch->inter_substate == SUB_NORTH) ? check : space; ibuild.c: room_page_c_data[1].data = (ch->inter_substate == SUB_UP) ? check : space; ibuild.c: room_page_c_data[2].data = (ch->inter_substate == SUB_EAST) ? check : space; ibuild.c: room_page_c_data[3].data = (ch->inter_substate == SUB_WEST) ? check : space; ibuild.c: room_page_c_data[4].data = (ch->inter_substate == SUB_SOUTH) ? check : space; ibuild.c: room_page_c_data[5].data = (ch->inter_substate == SUB_DOWN) ? check : space; ibuild.c: xit = get_exit(idx, ch->inter_substate); ibuild.c: room_page_c_data[6].data = IS_SET(xit->exit_info, EX_ISDOOR) ? check : space; ibuild.c: room_page_c_data[7].data = IS_SET(xit->exit_info, EX_SECRET) ? check : space; ibuild.c: room_page_c_data[8].data = IS_SET(xit->exit_info, EX_CLOSED) ? check : space; ibuild.c: room_page_c_data[9].data = IS_SET(xit->exit_info, EX_PICKPROOF) ? check : space; ibuild.c: room_page_c_data[10].data = IS_SET(xit->exit_info, EX_LOCKED) ? check : space; ibuild.c: room_page_c_data[11].data = IS_SET(xit->exit_info, EX_NOPASSDOOR) ? check : space; ibuild.c: room_page_c_data[12].data = &(xit->vnum); ibuild.c: room_page_c_data[13].data = xit->to_room->name; ibuild.c: room_page_c_data[14].data = &(xit->key); ibuild.c: if ((pObjIndex = get_obj_index(xit->key)) == NULL) { ibuild.c: room_page_c_data[15].data = pObjIndex->name; ibuild.c: room_page_c_data[16].data = xit->description; ibuild.c: room_page_b_data[0].data = IS_SET(idx->room_flags, ROOM_DARK) ? check : space; ibuild.c: room_page_b_data[1].data = IS_SET(idx->room_flags, ROOM_DEATH) ? check : space; ibuild.c: room_page_b_data[2].data = IS_SET(idx->room_flags, ROOM_NO_MOB) ? check : space; ibuild.c: room_page_b_data[3].data = IS_SET(idx->room_flags, ROOM_INDOORS) ? check : space; ibuild.c: room_page_b_data[4].data = IS_SET(idx->room_flags, ROOM_LAWFUL) ? check : space; ibuild.c: room_page_b_data[5].data = IS_SET(idx->room_flags, ROOM_NO_MAGIC) ? check : space; ibuild.c: room_page_b_data[6].data = IS_SET(idx->room_flags, ROOM_PET_SHOP) ? check : space; ibuild.c: room_page_b_data[7].data = IS_SET(idx->room_flags, ROOM_NEUTRAL) ? check : space; ibuild.c: room_page_b_data[8].data = IS_SET(idx->room_flags, ROOM_NODROP) ? check : space; ibuild.c: room_page_b_data[9].data = IS_SET(idx->room_flags, ROOM_SAFE) ? check : space; ibuild.c: room_page_b_data[10].data = IS_SET(idx->room_flags, ROOM_CHAOTIC) ? check : space; ibuild.c: room_page_b_data[11].data = IS_SET(idx->room_flags, ROOM_NODROPALL) ? check : space; ibuild.c: room_page_b_data[12].data = IS_SET(idx->room_flags, ROOM_TELEPORT) ? check : space; ibuild.c: room_page_b_data[13].data = IS_SET(idx->room_flags, ROOM_DONATION) ? check : space; ibuild.c: room_page_b_data[14].data = IS_SET(idx->room_flags, ROOM_NO_RECALL) ? check : space; ibuild.c: room_page_b_data[15].data = IS_SET(idx->room_flags, ROOM_PRIVATE) ? check : space; ibuild.c: room_page_b_data[16].data = IS_SET(idx->room_flags, ROOM_SOLITARY) ? check : space; ibuild.c: room_page_b_data[17].data = IS_SET(idx->room_flags, ROOM_NO_ASTRAL) ? check : space; ibuild.c: room_page_b_data[18].data = IS_SET(idx->room_flags, ROOM_TUNNEL) ? check : space; ibuild.c: room_page_b_data[19].data = IS_SET(idx->room_flags, ROOM_SILENCE) ? check : space; ibuild.c: room_page_b_data[20].data = IS_SET(idx->room_flags, ROOM_NO_SUMMON) ? check : space; ibuild.c: room_page_b_data[21].data = IS_SET(idx->room_flags, ROOM_CLANSTOREROOM) ? check : space; ibuild.c: room_page_b_data[22].data = IS_SET(idx->room_flags, ROOM_LOGSPEECH) ? check : space; ibuild.c: room_page_b_data[23].data = IS_SET(idx->room_flags, ROOM_NOFLOOR) ? check : space; ibuild.c: room_page_b_data[24].data = (idx->sector_type == SECT_INSIDE) ? check : space; ibuild.c: room_page_b_data[25].data = (idx->sector_type == SECT_FOREST) ? check : space; ibuild.c: room_page_b_data[26].data = (idx->sector_type == SECT_CITY) ? check : space; ibuild.c: room_page_b_data[27].data = (idx->sector_type == SECT_HILLS) ? check : space; ibuild.c: room_page_b_data[28].data = (idx->sector_type == SECT_MOUNTAIN) ? check : space; ibuild.c: room_page_b_data[29].data = (idx->sector_type == SECT_WATER_SWIM) ? check : space; ibuild.c: room_page_b_data[30].data = (idx->sector_type == SECT_AIR) ? check : space; ibuild.c: room_page_b_data[31].data = (idx->sector_type == SECT_DESERT) ? check : space; ibuild.c: room_page_b_data[32].data = (idx->sector_type == SECT_DUNNO) ? check : space; ibuild.c: room_page_b_data[33].data = (idx->sector_type == SECT_WATER_NOSWIM) ? check : space; ibuild.c: room_page_b_data[34].data = (idx->sector_type == SECT_FIELD) ? check : space; ibuild.c: * room_page_a_data[0].data = idx->name; ibuild.c: * room_page_a_data[1].data = idx->description; ibuild.c: format_string(tmp0, idx->name, 72); ibuild.c: format_string(tmp1, idx->description, 72); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;%dr", offset, ch->pagelen); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;1H", (ch->pagelen)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c:----------------- ibuild.c: obj_page_e_data[28].data = IS_SET(idx->wear_flags, ITEM_TAKE) ? check : space; ibuild.c: obj_page_e_data[29].data = IS_SET(idx->wear_flags, ITEM_WEAR_FINGER) ? check : space; ibuild.c: obj_page_e_data[30].data = IS_SET(idx->wear_flags, ITEM_WEAR_NECK) ? check : space; ibuild.c: obj_page_e_data[31].data = IS_SET(idx->wear_flags, ITEM_WEAR_BODY) ? check : space; ibuild.c: obj_page_e_data[32].data = IS_SET(idx->wear_flags, ITEM_WEAR_HEAD) ? check : space; ibuild.c: obj_page_e_data[33].data = IS_SET(idx->wear_flags, ITEM_WEAR_LEGS) ? check : space; ibuild.c: obj_page_e_data[34].data = IS_SET(idx->wear_flags, ITEM_WEAR_FEET) ? check : space; ibuild.c: obj_page_e_data[35].data = IS_SET(idx->wear_flags, ITEM_WEAR_HANDS) ? check : space; ibuild.c: obj_page_e_data[36].data = IS_SET(idx->wear_flags, ITEM_WEAR_ARMS) ? check : space; ibuild.c: obj_page_e_data[37].data = IS_SET(idx->wear_flags, ITEM_WEAR_SHIELD) ? check : space; ibuild.c: obj_page_e_data[38].data = IS_SET(idx->wear_flags, ITEM_WEAR_ABOUT) ? check : space; ibuild.c: obj_page_e_data[39].data = IS_SET(idx->wear_flags, ITEM_WEAR_WAIST) ? check : space; ibuild.c: obj_page_e_data[40].data = IS_SET(idx->wear_flags, ITEM_WEAR_WRIST) ? check : space; ibuild.c: obj_page_e_data[41].data = IS_SET(idx->wear_flags, ITEM_WIELD) ? check : space; ibuild.c: obj_page_e_data[42].data = IS_SET(idx->wear_flags, ITEM_HOLD) ? check : space; ibuild.c: obj_page_e_data[43].data = IS_SET(idx->wear_flags, ITEM_DUAL_WIELD) ? check : space; ibuild.c: obj_page_e_data[44].data = IS_SET(idx->wear_flags, ITEM_WEAR_EARS) ? check : space; ibuild.c: obj_page_e_data[45].data = IS_SET(idx->wear_flags, ITEM_WEAR_EYES) ? check : space; ibuild.c: obj_page_b_data[0].data = ((idx->item_type == 0) ? check : space); ibuild.c: obj_page_b_data[1].data = ((idx->item_type == ITEM_FOUNTAIN) ? check : space); ibuild.c: obj_page_b_data[2].data = ((idx->item_type == ITEM_FURNITURE) ? check : space); ibuild.c: obj_page_b_data[3].data = ((idx->item_type == ITEM_ARMOR) ? check : space); ibuild.c: obj_page_b_data[4].data = ((idx->item_type == ITEM_FOOD) ? check : space); ibuild.c: obj_page_b_data[5].data = ((idx->item_type == ITEM_MONEY) ? check : space); ibuild.c: obj_page_b_data[6].data = ((idx->item_type == ITEM_POTION) ? check : space); ibuild.c: obj_page_b_data[7].data = ((idx->item_type == ITEM_PULLCHAIN) ? check : space); ibuild.c: obj_page_b_data[8].data = ((idx->item_type == ITEM_WEAPON) ? check : space); ibuild.c: obj_page_b_data[9].data = ((idx->item_type == ITEM_MAP) ? check : space); ibuild.c: obj_page_b_data[10].data = ((idx->item_type == ITEM_LIGHT) ? check : space); ibuild.c: obj_page_b_data[11].data = ((idx->item_type == ITEM_BUTTON) ? check : space); ibuild.c: obj_page_b_data[12].data = ((idx->item_type == ITEM_TREASURE) ? check : space); ibuild.c: obj_page_b_data[13].data = ((idx->item_type == ITEM_HERB) ? check : space); ibuild.c: obj_page_b_data[14].data = ((idx->item_type == ITEM_TRASH) ? check : space); ibuild.c: obj_page_b_data[15].data = ((idx->item_type == ITEM_SWITCH) ? check : space); ibuild.c: obj_page_b_data[16].data = ((idx->item_type == ITEM_CONTAINER) ? check : space); ibuild.c: obj_page_b_data[17].data = ((idx->item_type == ITEM_WAND) ? check : space); ibuild.c: obj_page_b_data[18].data = ((idx->item_type == ITEM_SCROLL) ? check : space); ibuild.c: obj_page_b_data[19].data = ((idx->item_type == ITEM_STAFF) ? check : space); ibuild.c: obj_page_b_data[20].data = ((idx->item_type == ITEM_BLOODSTAIN) ? check : space); ibuild.c: obj_page_b_data[21].data = ((idx->item_type == ITEM_PILL) ? check : space); ibuild.c: obj_page_b_data[22].data = ((idx->item_type == ITEM_BLOOD) ? check : space); ibuild.c: obj_page_b_data[23].data = ((idx->item_type == ITEM_DIAL) ? check : space); ibuild.c: obj_page_b_data[24].data = ((idx->item_type == ITEM_TRAP) ? check : space); ibuild.c: obj_page_b_data[25].data = ((idx->item_type == ITEM_KEY) ? check : space); ibuild.c: obj_page_b_data[26].data = ((idx->item_type == ITEM_INCENSE) ? check : space); ibuild.c: obj_page_b_data[27].data = ((idx->item_type == ITEM_LEVER) ? check : space); ibuild.c: obj_page_b_data[28].data = ((idx->item_type == ITEM_CORPSE_PC) ? check : space); ibuild.c: obj_page_b_data[29].data = ((idx->item_type == ITEM_PIPE) ? check : space); ibuild.c: obj_page_b_data[30].data = ((idx->item_type == ITEM_SCRAPS) ? check : space); ibuild.c: obj_page_b_data[31].data = ((idx->item_type == ITEM_TRAP) ? check : space); ibuild.c: obj_page_b_data[32].data = ((idx->item_type == ITEM_CORPSE_NPC) ? check : space); ibuild.c: obj_page_b_data[33].data = ((idx->item_type == ITEM_BOOK) ? check : space); ibuild.c: obj_page_b_data[34].data = ((idx->item_type == ITEM_MATCH) ? check : space); ibuild.c: obj_page_b_data[35].data = ((idx->item_type == ITEM_DRINK_CON) ? check : space); ibuild.c: obj_page_b_data[38].data = ((idx->item_type == ITEM_FIRE) ? check : space); ibuild.c: obj_page_b_data[39].data = ((idx->item_type == ITEM_HERB_CON) ? check : space); ibuild.c: obj_page_b_data[41].data = ((idx->item_type == ITEM_BOAT) ? check : space); ibuild.c: obj_page_b_data[42].data = ((idx->item_type == ITEM_RUNE) ? check : space); ibuild.c: obj_page_b_data[43].data = ((idx->item_type == ITEM_RUNEPOUCH) ? check : space); ibuild.c: obj_page_b_data[44].data = ((idx->item_type == ITEM_PIECE) ? check : space); ibuild.c: format_string(tmp0, idx->name, 53); ibuild.c: format_string(tmp1, idx->short_descr, 53); ibuild.c: format_string(tmp2, idx->description, 63); ibuild.c: format_string(tmp3, idx->action_desc, 51); ibuild.c: obj_page_a_data[4].data = &(idx->value[0]); ibuild.c: obj_page_a_data[5].data = get_item_strings(idx->item_type, 1); ibuild.c: obj_page_a_data[6].data = &(idx->value[1]); ibuild.c: obj_page_a_data[7].data = get_item_strings(idx->item_type, 2); ibuild.c: obj_page_a_data[8].data = &(idx->value[2]); ibuild.c: obj_page_a_data[9].data = get_item_strings(idx->item_type, 3); ibuild.c: obj_page_a_data[10].data = &(idx->value[3]); ibuild.c: obj_page_a_data[11].data = get_item_strings(idx->item_type,4); ibuild.c: obj_page_a_data[12].data = &(idx->weight); ibuild.c: obj_page_a_data[13].data = &(idx->cost); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;%dr", offset, ch->pagelen); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;1H", (ch->pagelen)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: spec = lookup_spec(idx->spec_fun); ibuild.c: mob_page_e_data[17].data = (idx->defposition == POS_DEAD) ? check : space; ibuild.c: mob_page_e_data[18].data = (idx->defposition == POS_MORTAL) ? check : space; ibuild.c: mob_page_e_data[19].data = (idx->defposition == POS_INCAP) ? check : space; ibuild.c: mob_page_e_data[20].data = (idx->defposition == POS_STUNNED) ? check : space; ibuild.c: mob_page_e_data[21].data = (idx->defposition == POS_SLEEPING) ? check : space; ibuild.c: mob_page_e_data[22].data = (idx->defposition == POS_RESTING) ? check : space; ibuild.c: mob_page_e_data[23].data = (idx->defposition == POS_SITTING) ? check : space; ibuild.c: mob_page_e_data[24].data = (idx->defposition == POS_FIGHTING) ? check : space; ibuild.c: mob_page_e_data[25].data = (idx->defposition == POS_STANDING) ? check : space; ibuild.c: mob_page_e_data[26].data = (idx->defposition == POS_MOUNTED) ? check : space; ibuild.c: mob_page_d_data[0].data = &(idx->saving_poison_death); ibuild.c: mob_page_d_data[1].data = &(idx->saving_wand); ibuild.c: mob_page_d_data[2].data = &(idx->saving_para_petri); ibuild.c: mob_page_d_data[3].data = &(idx->saving_breath); ibuild.c: mob_page_d_data[4].data = &(idx->saving_spell_staff); ibuild.c: mob_page_d_data[5].data = IS_SET(idx->xflags, PART_FINS) ? check : space; ibuild.c: mob_page_d_data[6].data = IS_SET(idx->xflags, PART_EAR) ? check : space; ibuild.c: mob_page_d_data[7].data = IS_SET(idx->xflags, PART_EYE) ? check : space; ibuild.c: mob_page_d_data[8].data = IS_SET(idx->xflags, PART_LONG_TONGUE) ? check : space; ibuild.c: mob_page_d_data[9].data = IS_SET(idx->xflags, PART_SCALES) ? check : space; ibuild.c: mob_page_d_data[10].data = IS_SET(idx->xflags, PART_TAIL) ? check : space; ibuild.c: mob_page_d_data[11].data = IS_SET(idx->xflags, PART_ARMS) ? check : space; ibuild.c: mob_page_d_data[12].data = IS_SET(idx->xflags, PART_LEGS) ? check : space; ibuild.c: mob_page_d_data[13].data = IS_SET(idx->xflags, PART_TENTACLES) ? check : space; ibuild.c: mob_page_d_data[14].data = IS_SET(idx->xflags, PART_BRAINS) ? check : space; ibuild.c: mob_page_d_data[15].data = IS_SET(idx->xflags, PART_GUTS) ? check : space; ibuild.c: mob_page_d_data[16].data = IS_SET(idx->xflags, PART_HEAD) ? check : space; ibuild.c: mob_page_d_data[17].data = IS_SET(idx->xflags, PART_FEET) ? check : space; ibuild.c: mob_page_d_data[18].data = IS_SET(idx->xflags, PART_EYESTALKS) ? check : space; ibuild.c: mob_page_d_data[19].data = IS_SET(idx->xflags, PART_FINGERS) ? check : space; ibuild.c: mob_page_d_data[20].data = IS_SET(idx->xflags, PART_WINGS) ? check : space; ibuild.c: mob_page_d_data[21].data = IS_SET(idx->xflags, PART_HANDS) ? check : space; ibuild.c: mob_page_d_data[22].data = IS_SET(idx->xflags, PART_HEART) ? check : space; ibuild.c: mob_page_d_data[23].data = IS_SET(idx->xflags, PART_CLAWS) ? check : space; ibuild.c: mob_page_d_data[24].data = IS_SET(idx->xflags, PART_HORNS) ? check : space; ibuild.c: mob_page_d_data[25].data = IS_SET(idx->xflags, PART_TUSKS) ? check : space; ibuild.c: mob_page_d_data[26].data = IS_SET(idx->xflags, PART_TAILATTACK) ? check : space; ibuild.c: mob_page_d_data[27].data = IS_SET(idx->xflags, PART_SHARPSCALES) ? check : space; ibuild.c: mob_page_d_data[28].data = &(idx->numattacks); ibuild.c: sprintf(buf1, "[%5.5hd]D[%5.5hd]+[%5.5hd]", idx->hitnodice, ibuild.c: idx->hitsizedice, ibuild.c: idx->hitplus); ibuild.c: mob_page_d_data[30].data = &(idx->hitroll); ibuild.c: mob_page_d_data[31].data = &(idx->damroll); ibuild.c: sprintf(buf2, "[%5.5hd]D[%5.5hd]+[%5.5hd]", idx->damnodice, ibuild.c: idx->damsizedice, ibuild.c: idx->damplus); ibuild.c: mob_page_c_data[0].data = xIS_SET(idx->attacks, ATCK_BITE) ? check : space; ibuild.c: mob_page_c_data[1].data = xIS_SET(idx->attacks, ATCK_CLAWS) ? check : space; ibuild.c: mob_page_c_data[2].data = xIS_SET(idx->attacks, ATCK_FIREBREATH) ? check : space; ibuild.c: mob_page_c_data[3].data = xIS_SET(idx->attacks, ATCK_BASH) ? check : space; ibuild.c: mob_page_c_data[4].data = xIS_SET(idx->attacks, ATCK_STUN) ? check : space; ibuild.c: mob_page_c_data[5].data = xIS_SET(idx->attacks, ATCK_ACIDBREATH) ? check : space; ibuild.c: mob_page_c_data[6].data = xIS_SET(idx->attacks, ATCK_DRAIN) ? check : space; ibuild.c: mob_page_c_data[7].data = xIS_SET(idx->attacks, ATCK_KICK) ? check : space; ibuild.c: mob_page_c_data[8].data = xIS_SET(idx->attacks, ATCK_FEED) ? check : space; ibuild.c: mob_page_c_data[9].data = xIS_SET(idx->attacks, ATCK_GASBREATH) ? check : space; ibuild.c: mob_page_c_data[10].data = xIS_SET(idx->attacks, ATCK_POISON) ? check : space; ibuild.c: mob_page_c_data[11].data = xIS_SET(idx->attacks, ATCK_GAZE) ? check : space; ibuild.c: mob_page_c_data[12].data = xIS_SET(idx->attacks, ATCK_HARM) ? check : space; ibuild.c: mob_page_c_data[13].data = xIS_SET(idx->attacks, ATCK_FROSTBREATH) ? check : space; ibuild.c: mob_page_c_data[14].data = xIS_SET(idx->attacks, ATCK_CURSE) ? check : space; ibuild.c: mob_page_c_data[15].data = xIS_SET(idx->attacks, ATCK_BACKSTAB) ? check : space; ibuild.c: mob_page_c_data[16].data = xIS_SET(idx->attacks, ATCK_PUNCH) ? check : space; ibuild.c: mob_page_c_data[17].data = xIS_SET(idx->attacks, ATCK_LIGHTNBREATH) ? check : space; ibuild.c: mob_page_c_data[18].data = xIS_SET(idx->attacks, ATCK_WEAKEN) ? check : space; ibuild.c: mob_page_c_data[19].data = xIS_SET(idx->attacks, ATCK_TAIL) ? check : space; ibuild.c: mob_page_c_data[20].data = xIS_SET(idx->attacks, ATCK_STING) ? check : space; ibuild.c: mob_page_c_data[21].data = xIS_SET(idx->attacks, ATCK_CAUSESERIOUS) ? check : space; ibuild.c: mob_page_c_data[22].data = xIS_SET(idx->attacks, ATCK_TRIP) ? check : space; ibuild.c: mob_page_c_data[23].data = xIS_SET(idx->attacks, ATCK_FIREBALL) ? check : space; ibuild.c: mob_page_c_data[24].data = xIS_SET(idx->attacks, ATCK_GOUGE) ? check : space; ibuild.c: mob_page_c_data[25].data = xIS_SET(idx->attacks, ATCK_CAUSECRITICAL) ? check : space; ibuild.c: mob_page_c_data[26].data = xIS_SET(idx->attacks, ATCK_FLAMESTRIKE) ? check : space; ibuild.c: mob_page_c_data[27].data = xIS_SET(idx->attacks, ATCK_EARTHQUAKE) ? check : space; ibuild.c: mob_page_c_data[28].data = xIS_SET(idx->attacks, ATCK_COLORSPRAY) ? check : space; ibuild.c: mob_page_c_data[29].data = xIS_SET(idx->attacks, ATCK_NASTYPOISON) ? check : space; ibuild.c: mob_page_c_data[30].data = xIS_SET(idx->attacks, ATCK_BLINDNESS) ? check : space; ibuild.c: mob_page_c_data[31].data = xIS_SET(idx->defenses, DFND_SANCTUARY) ? check : space; ibuild.c: mob_page_c_data[32].data = xIS_SET(idx->defenses, DFND_CURELIGHT) ? check : space; ibuild.c: mob_page_c_data[33].data = xIS_SET(idx->defenses, DFND_DISPELEVIL) ? check : space; ibuild.c: mob_page_c_data[34].data = xIS_SET(idx->defenses, DFND_SHIELD) ? check : space; ibuild.c: mob_page_c_data[35].data = xIS_SET(idx->defenses, DFND_CURESERIOUS) ? check : space; ibuild.c: mob_page_c_data[36].data = xIS_SET(idx->defenses, DFND_DISPELMAGIC) ? check : space; ibuild.c: mob_page_c_data[37].data = xIS_SET(idx->defenses, DFND_DODGE) ? check : space; ibuild.c: mob_page_c_data[38].data = xIS_SET(idx->defenses, DFND_FIRESHIELD) ? check : space; ibuild.c: mob_page_c_data[39].data = xIS_SET(idx->defenses, DFND_CURECRITICAL) ? check : space; ibuild.c: mob_page_c_data[40].data = xIS_SET(idx->defenses, DFND_TELEPORT) ? check : space; ibuild.c: mob_page_c_data[41].data = xIS_SET(idx->defenses, DFND_PARRY) ? check : space; ibuild.c: mob_page_c_data[42].data = xIS_SET(idx->defenses, DFND_SHOCKSHIELD) ? check : space; ibuild.c: mob_page_c_data[43].data = xIS_SET(idx->defenses, DFND_HEAL) ? check : space; ibuild.c: mob_page_c_data[44].data = xIS_SET(idx->defenses, DFND_BLESS) ? check : space; ibuild.c: mob_page_c_data[45].data = xIS_SET(idx->defenses, DFND_DISARM) ? check : space; ibuild.c: mob_page_c_data[46].data = xIS_SET(idx->defenses, DFND_STONESKIN) ? check : space; ibuild.c: mob_page_c_data[47].data = xIS_SET(idx->defenses, DFND_MONSUM1) ? check : space; ibuild.c: mob_page_c_data[48].data = xIS_SET(idx->defenses, DFND_MONSUM2) ? check : space; ibuild.c: mob_page_c_data[49].data = xIS_SET(idx->defenses, DFND_MONSUM3) ? check : space; ibuild.c: mob_page_c_data[50].data = xIS_SET(idx->defenses, DFND_MONSUM4) ? check : space; ibuild.c: mob_page_b_data[0].data = xIS_SET(idx->act, ACT_SENTINEL) ? check : space; ibuild.c: mob_page_b_data[1].data = xIS_SET(idx->act, ACT_SCAVENGER) ? check : space; ibuild.c: mob_page_b_data[2].data = xIS_SET(idx->act, ACT_AGGRESSIVE) ? check : space; ibuild.c: mob_page_b_data[3].data = xIS_SET(idx->act, ACT_STAY_AREA) ? check : space; ibuild.c: mob_page_b_data[4].data = xIS_SET(idx->act, ACT_WIMPY) ? check : space; ibuild.c: mob_page_b_data[5].data = xIS_SET(idx->act, ACT_PET) ? check : space; ibuild.c: mob_page_b_data[6].data = xIS_SET(idx->act, ACT_TRAIN) ? check : space; ibuild.c: mob_page_b_data[7].data = xIS_SET(idx->act, ACT_PRACTICE) ? check : space; ibuild.c: mob_page_b_data[8].data = xIS_SET(idx->act, ACT_IMMORTAL) ? check : space; ibuild.c: mob_page_b_data[9].data = xIS_SET(idx->act, ACT_DEADLY) ? check : space; ibuild.c: mob_page_b_data[10].data = xIS_SET(idx->act, ACT_POLYSELF) ? check : space; ibuild.c: mob_page_b_data[11].data = xIS_SET(idx->act, ACT_META_AGGR) ? check : space; ibuild.c: mob_page_b_data[12].data = xIS_SET(idx->act, ACT_GUARDIAN) ? check : space; ibuild.c: mob_page_b_data[13].data = xIS_SET(idx->act, ACT_RUNNING) ? check : space; ibuild.c: mob_page_b_data[14].data = xIS_SET(idx->act, ACT_NOWANDER) ? check : space; ibuild.c: mob_page_b_data[15].data = xIS_SET(idx->act, ACT_MOUNTABLE) ? check : space; ibuild.c: mob_page_b_data[16].data = xIS_SET(idx->act, ACT_MOUNTED) ? check : space; ibuild.c: mob_page_f_data[0].data = (idx->race == get_npc_race("human")) ? check : space; ibuild.c: mob_page_f_data[1].data = (idx->race ==get_npc_race("neanderthal")) ? check : space; ibuild.c: mob_page_f_data[2].data = (idx->race ==get_npc_race("avis")) ? check : space; ibuild.c: mob_page_f_data[3].data = (idx->race ==get_npc_race("amphibian")) ? check : space; ibuild.c: mob_page_f_data[4].data = (idx->race ==get_npc_race("elf")) ? check : space; ibuild.c: mob_page_f_data[5].data = (idx->race ==get_npc_race("orc")) ? check : space; ibuild.c: mob_page_f_data[6].data = (idx->race ==get_npc_race("bugbear")) ? check : space; ibuild.c: mob_page_f_data[7].data = (idx->race ==get_npc_race("bovine")) ? check : space; ibuild.c: mob_page_f_data[8].data = (idx->race ==get_npc_race("dwarf")) ? check : space; ibuild.c: mob_page_f_data[9].data = (idx->race ==get_npc_race("skeleton")) ? check : space; ibuild.c: mob_page_f_data[10].data = (idx->race ==get_npc_race("dragon")) ? check : space; ibuild.c: mob_page_f_data[11].data = (idx->race ==get_npc_race("canine")) ? check : space; ibuild.c: mob_page_f_data[12].data = (idx->race ==get_npc_race("ant")) ? check : space; ibuild.c: mob_page_f_data[13].data = (idx->race ==get_npc_race("halfling")) ? check : space; ibuild.c: mob_page_f_data[14].data = (idx->race ==get_npc_race("thoul")) ? check : space; ibuild.c: mob_page_f_data[15].data = (idx->race ==get_npc_race("rustmonster")) ? check : space; ibuild.c: mob_page_f_data[16].data = (idx->race ==get_npc_race("crustacean")) ? check : space; ibuild.c: mob_page_f_data[17].data = (idx->race ==get_npc_race("bee")) ? check : space; ibuild.c: mob_page_f_data[18].data = (idx->race ==get_npc_race("pixie")) ? check : space; ibuild.c: mob_page_f_data[19].data = (idx->race ==get_npc_race("undead")) ? check : space; ibuild.c: mob_page_f_data[20].data = (idx->race ==get_npc_race("shadow")) ? check : space; ibuild.c: mob_page_f_data[21].data = (idx->race ==get_npc_race("feline")) ? check : space; ibuild.c: mob_page_f_data[22].data = (idx->race ==get_npc_race("beetle")) ? check : space; ibuild.c: mob_page_f_data[23].data = (idx->race ==get_npc_race("vampire")) ? check : space; ibuild.c: mob_page_f_data[24].data = (idx->race ==get_npc_race("zombie")) ? check : space; ibuild.c: mob_page_f_data[25].data = (idx->race == get_npc_race("shapeshifter")) ? check : space; ibuild.c: mob_page_f_data[26].data = (idx->race == get_npc_race("fish")) ? check : space; ibuild.c: mob_page_f_data[27].data = (idx->race == get_npc_race("fly")) ? check : space; ibuild.c: mob_page_f_data[28].data = (idx->race == get_npc_race("gargoyle")) ? check : space; ibuild.c: /*mob_page_f_data[29].data = (idx->race == get_npc_race("gargoyle")) ? check : space;*/ ibuild.c: mob_page_f_data[29].data = (idx->race == get_npc_race("ape")) ? check : space; ibuild.c: mob_page_f_data[30].data = (idx->race == get_npc_race("shrieker")) ? check : space; ibuild.c: mob_page_f_data[31].data = (idx->race == get_npc_race("insect")) ? check : space; ibuild.c: mob_page_f_data[32].data = (idx->race == get_npc_race("locust")) ? check : space; ibuild.c: mob_page_f_data[33].data = (idx->race == get_npc_race("ghoul")) ? check : space; ibuild.c: mob_page_f_data[34].data = (idx->race == get_npc_race("baboon")) ? check : space; ibuild.c: mob_page_f_data[35].data = (idx->race == get_npc_race("stirge")) ? check : space; ibuild.c: mob_page_f_data[36].data = (idx->race == get_npc_race("mammal")) ? check : space; ibuild.c: mob_page_f_data[37].data = (idx->race == get_npc_race("snake")) ? check : space; ibuild.c: mob_page_f_data[38].data = (idx->race == get_npc_race("gnoll")) ? check : space; ibuild.c: mob_page_f_data[39].data = (idx->race == get_npc_race("bat")) ? check : space; ibuild.c: mob_page_f_data[40].data = (idx->race == get_npc_race("wight")) ? check : space; ibuild.c: mob_page_f_data[41].data = (idx->race == get_npc_race("porcine")) ? check : space; ibuild.c: mob_page_f_data[42].data = (idx->race == get_npc_race("spider")) ? check : space; ibuild.c: mob_page_f_data[43].data = (idx->race == get_npc_race("gnome")) ? check : space; ibuild.c: mob_page_f_data[44].data = (idx->race == get_npc_race("bear")) ? check : space; ibuild.c: mob_page_f_data[45].data = (idx->race == get_npc_race("reptile")) ? check : space; ibuild.c: mob_page_f_data[46].data = (idx->race == get_npc_race("worm")) ? check : space; ibuild.c: mob_page_f_data[47].data = (idx->race == get_npc_race("goblin")) ? check : space; ibuild.c: mob_page_f_data[48].data = (idx->race == get_npc_race("boar")) ? check : space; ibuild.c: mob_page_f_data[49].data = (idx->race == get_npc_race("rodent")) ? check : space; ibuild.c: mob_page_f_data[50].data = (idx->race == get_npc_race("golem")) ? check : space; ibuild.c: mob_page_f_data[51].data = (idx->race == get_npc_race("cat")) ? check : space; ibuild.c: mob_page_f_data[52].data = (idx->race == get_npc_race("troglodyte")) ? check : space; ibuild.c: mob_page_f_data[53].data = (idx->race == get_npc_race("gelatin")) ? check : space; ibuild.c: mob_page_f_data[54].data = (idx->race == get_npc_race("gorgon")) ? check : space; ibuild.c: mob_page_f_data[55].data = (idx->race == get_npc_race("dog")) ? check : space; ibuild.c: mob_page_f_data[56].data = (idx->race == get_npc_race("spirit")) ? check : space; ibuild.c: mob_page_f_data[57].data = (idx->race == get_npc_race("mold")) ? check : space; ibuild.c: mob_page_f_data[58].data = (idx->race == get_npc_race("harpy")) ? check : space; ibuild.c: mob_page_f_data[59].data = (idx->race == get_npc_race("ferret")) ? check : space; ibuild.c: mob_page_f_data[60].data = (idx->race == get_npc_race("magical")) ? check : space; ibuild.c: mob_page_f_data[61].data = (idx->race == get_npc_race("ooze")) ? check : space; ibuild.c: mob_page_f_data[62].data = (idx->race == get_npc_race("hobgoblin")) ? check : space; ibuild.c: mob_page_f_data[63].data = (idx->race == get_npc_race("horse")) ? check : space; ibuild.c: mob_page_f_data[64].data = (idx->race == get_npc_race("slime")) ? check : space; ibuild.c: mob_page_f_data[65].data = (idx->race == get_npc_race("kobold")) ? check : space; ibuild.c: mob_page_f_data[66].data = (idx->race == get_npc_race("mule")) ? check : space; ibuild.c: mob_page_f_data[67].data = (idx->race == get_npc_race("lizardman")) ? check : space; ibuild.c: mob_page_f_data[68].data = (idx->race == get_npc_race("rat")) ? check : space; ibuild.c: mob_page_f_data[69].data = (idx->race == get_npc_race("lycanthrope")) ? check : space; ibuild.c: mob_page_f_data[79].data = (idx->race == get_npc_race("shrew")) ? check : space; ibuild.c: mob_page_f_data[71].data = (idx->race == get_npc_race("minotaur")) ? check : space; ibuild.c: mob_page_f_data[72].data = (idx->race == get_npc_race("wolf")) ? check : space; ibuild.c: * format_string(idx->player_name,70); ibuild.c: * format_string(idx->short_descr,60); ibuild.c: * format_string(idx->long_descr,60); mob_page_a_data[3].data ibuild.c: * = format_string(idx->description,60); ibuild.c: format_string(tmp0, idx->player_name, 59); ibuild.c: format_string(tmp1, idx->short_descr, 59); ibuild.c: format_string(tmp2, idx->long_descr, 69); ibuild.c: format_string(tmp3, idx->description, 69); ibuild.c: mob_page_a_data[4].data = &(idx->vnum); ibuild.c: mob_page_a_data[5].data = &(idx->level); ibuild.c: mob_page_a_data[7].data = npc_race[idx->race]; ibuild.c: mob_page_a_data[8].data = (char *) npc_sex[idx->sex]; ibuild.c: mob_page_a_data[9].data = (int *) &(idx->gold); ibuild.c: mob_page_a_data[10].data = &(idx->alignment); ibuild.c: mob_page_a_data[11].data = &(idx->perm_str); ibuild.c: mob_page_a_data[12].data = &(idx->perm_int); ibuild.c: mob_page_a_data[13].data = &(idx->perm_wis); ibuild.c: mob_page_a_data[14].data = &(idx->perm_dex); ibuild.c: mob_page_a_data[15].data = &(idx->perm_con); ibuild.c: mob_page_a_data[16].data = &(idx->perm_cha); ibuild.c: mob_page_a_data[17].data = &(idx->ac); ibuild.c: mob_page_a_data[18].data = (idx->class == 0) ? check : space; ibuild.c: mob_page_a_data[19].data = (idx->class == 1) ? check : space; ibuild.c: mob_page_a_data[20].data = (idx->class == 2) ? check : space; ibuild.c: mob_page_a_data[21].data = (idx->class == 3) ? check : space; ibuild.c: mob_page_a_data[22].data = (idx->class == 4) ? check : space; ibuild.c: mob_page_a_data[23].data = (idx->class == 5) ? check : space; ibuild.c: mob_page_a_data[24].data = (idx->class == 6) ? check : space; ibuild.c: mob_page_a_data[25].data = (idx->class == 20) ? check : space; ibuild.c: mob_page_a_data[26].data = (idx->class == 21) ? check : space; ibuild.c: mob_page_a_data[27].data = (idx->class == 22) ? check : space; ibuild.c: mob_page_a_data[28].data = (idx->class == 23) ? check : space; ibuild.c: mob_page_a_data[29].data = (idx->class == 24) ? check : space; ibuild.c: mob_page_a_data[30].data = (idx->class == 25) ? check : space; ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;%dr", offset, ch->pagelen); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: sprintf(buf, "\E[%d;1H", (ch->pagelen)); ibuild.c: write_to_buffer(ch->desc, buf, strlen(buf)); ibuild.c: apply = -1; ibuild.c: for (aff = obj->first_affect; aff; aff = aff->next) { ibuild.c: if (aff->location == apply ibuild.c: && aff->location >= APPLY_AFFECT ibuild.c: && aff->location <= APPLY_SUSCEPTIBLE)) { ibuild.c: if (IS_SET(aff->modifier, bit)) ibuild.c: switch (aff->location) { ibuild.c: total += aff->modifier; ibuild.c:const char mob_page_a[] = ".----------[mob page a]-----[%10.10s]-------------------------------------.\r\n" ibuild.c:"|-------' b]Short: |\r\n" ibuild.c:":---------------------+------------------------------------------------------'\r\n" ibuild.c:"|--------------' |---------' |---------' |\r\n" ibuild.c:":---------------------+-------------+----------------------------------'\r\n"; ibuild.c:const char mob_page_b[] = ".----------[mob page b]-----[%10.10s]--------------------------.\r\n" ibuild.c:"|------------' d]StayArea ( ) e]Wimpy ( ) f]Pet ( ) |\r\n" ibuild.c:":-----------------------------------------------------------------:\r\n" ibuild.c:"|------------' d]DetMag ( ) e]DetHiddn ( ) f]Hold ( ) |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ibuild.c:const char mob_page_c[] = ".----------.----------[mob page c]-----[%10.10s]-------------------.\r\n" ibuild.c:"|----------' d]bash ( ) e]stun ( ) f]acidBreath ( ) |\r\n" ibuild.c:":-----------.---------------------------------------------------------+-.\r\n" ibuild.c:"|-----------' d]shield ( ) e]cureSerious ( ) f]dispelMagic( ) |\r\n" ibuild.c:":-----------------------------------------------------------------------'\r\n"; ibuild.c:const char mob_page_d[] = ".----------------.----------[mob page d]-----[%10.10s]----------.\r\n" ibuild.c:"|----------------' c]Wand %% d]Breath %% |\r\n" ibuild.c:":------------------------------------------------------------------^-----.\r\n" ibuild.c:"|---------' k]Guts( ) l]Head( ) m]Feet( ) n]EyeStalks ( ) o]Fingers( )|\r\n" ibuild.c:":---------.--------------------------------------------------------------:\r\n" ibuild.c:"|---------' d]DamRoll:[ ] e]DamDice:[ ]D[ ]+[ ] |\r\n" ibuild.c:"`------------------------------------------------------------------------'\r\n"; ibuild.c:const char mob_page_e[] = ".---------.----------[mob page e]-----[%10.10s]----------------------.\r\n" ibuild.c:"|---------' g]janitor( ) h]castMage ( ) i]breathAcid ( ) |\r\n" ibuild.c:":-----------.-------------------------------------------------------.---+\r\n" ibuild.c:"|-----------' g]Sitting( ) h]Fighting( ) i]Standing ( ) |\r\n" ibuild.c:":--------.----------------------------------------------------------^----.\r\n" ibuild.c:"|--------' k]drain ... l]sleep ... m]charm ... n]hold ... o]magic ...|\r\n" ibuild.c:":------------------------------------------------------------------------'\r\n"; ibuild.c:const char room_page_a[] = ".---------.--[rmenu page a]-------[%10.10s]-----------------------------.\r\n" ibuild.c:"|--------' |\r\n" ibuild.c:":---------------------+-----------------------------------------------------'\r\n"; ibuild.c:const char room_page_b[] = ".---------.--[rmenu page b]-------[%10.10s]----------------.\r\n" ibuild.c:"|---------' g]PetShop ( ) h]Neutral ( ) i]NoDrop ( ) |\r\n" ibuild.c:":-------------------------------------------------------------+--------.\r\n" ibuild.c:"|----------' i]Dunno ( ) j]Water_NoSwim( ) l]Field ( ) |\r\n" ibuild.c:"`----------------------------------------------------------------------'\r\n"; ibuild.c:const char room_page_c[] = ".----------.-[rmenu page c]-------[%10.10s]--------------------------.\r\n" ibuild.c:":-----------------------------------------------------------------------:\r\n" ibuild.c:"|----------' e]Locked ( ) f]PassProof( ) n:[#######################] |\r\n" ibuild.c:"`-----------------------------------------------------------------------'\r\n"; ibuild.c:const char room_page_d[] = ".---------.--[rmenu page d]-------[%10.10s]---------------------------.\r\n" ibuild.c:"|---------' i]Fortress ( ) j]Castle ( ) k]GuardHse( ) l]Temple ( ) |\r\n" ibuild.c:"|-]Stream ( ) _]Clearing( ) +]SnakePit( ) =]Tunnel ( ) |]Path ( ) |\r\n" ibuild.c:"`-------------------------------------------------------------------------'\r\n"; ibuild.c:const char mob_page_f[] = ".---------.--[mmenu page f]-------[%10.10s]---------------------------.\r\n" ibuild.c:"|---------' i]Dwarf ( ) j]Skeleton( ) k]Dragon ( ) l]Canine ( ) |\r\n" ibuild.c:"|-]Slime ( ) _]Kobold ( ) +]Mule ( ) |\r\n" ibuild.c:"`-------------------------------------------------------------------------'\r\n"; ibuild.c:const char obj_page_a[] = ".-------.----[omenu page a]-------[%10.10s]----------------------------.\r\n" ibuild.c:"|-------' b]Short: |\r\n" ibuild.c:":---------------------------------------------+---------------------------'\r\n" ibuild.c:"|---------' --------------- |---------' |\r\n" ibuild.c:"`---------------------------------------------+-----------------------'\r\n"; ibuild.c:const char obj_page_b[] = ".---------.--[omenu page b]-------[%10.10s]----------------------.\r\n" ibuild.c:"|---------' g]potion ( ) h]pullchain ( ) i]weapon ( ) |\r\n" ibuild.c:"`-------------------------------------------------------------------'\r\n"; ibuild.c:const char obj_page_c[] = ".----------.-[omenu page c]-------[%10.10s]--------------------------.\r\n" ibuild.c:"|----------' g]INT :[ ] h]save_para :[ ]%% i]level :[ ] |\r\n" ibuild.c:":--------.---------------------------------------------------------------.\r\n" ibuild.c:"|--------' k]drain ... l]sleep ... m]charm ... n]hold ... o]magic ...|\r\n" ibuild.c:"`------------------------------------------------------------------------'\r\n"; ibuild.c:const char obj_page_d[] = ".-----------.[omenu page d]-------[%10.10s]--------------------.\r\n" ibuild.c:"|-----------' d]DetMag ( ) e]DetHiddn ( ) f]Hold ( ) |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ibuild.c:const char obj_page_e[] = ".----------.-[omenu page e]-------[%10.10s]--------------------.\r\n" ibuild.c:"|----------' g]Hidden ( ) h]AntiNeut ( ) i]Inventory ( ) |\r\n" ibuild.c:":-----------------------------------------------------------------.\r\n" ibuild.c:"|----------' i]Arms ( ) j]Shield ( ) k]About ( ) l]Waist( ) |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ibuild.c:".------------[mmenu help pg]------[%10.10s]--------------------.\r\n" ibuild.c:"| PAGE CONTENTS | -------------- |\r\n" ibuild.c:"|------|-----------------------------------| clear: clear screen |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ibuild.c:".------------[rmenu help pg]------[%10.10s]--------------------.\r\n" ibuild.c:"| PAGE CONTENTS | -------------- |\r\n" ibuild.c:"|------|-----------------------------------| clear: clear screen |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ibuild.c:".------------[omenu help pg]------[%10.10s]--------------------.\r\n" ibuild.c:"| PAGE CONTENTS | -------------- |\r\n" ibuild.c:"|------|-----------------------------------| clear: clear screen |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ibuild.c:const char control_page_a[] = ".--------.---[cmenu page a]-----.[%10.10s]-------------------------------.\r\n" ibuild.c:"|--------' |------------' |\r\n" ibuild.c:"`---------------------------------------------------------------------------'\r\n"; ibuild.c:".------------[cmenu help pg]------[%10.10s]--------------------.\r\n" ibuild.c:"| PAGE CONTENTS | -------------- |\r\n" ibuild.c:"|------|-----------------------------------| clear: clear screen |\r\n" ibuild.c:"`-----------------------------------------------------------------'\r\n"; ice.c: * IMC2 - an inter-mud communications protocol ice.c: * ice.c: IMC-channel-extensions (ICE) common code ice.c:/* see if someone can talk on a channel - lots of string stuff here! */ ice.c:/* added compress policy - shogar - 1/29/2000 */ ice.c: if (c->policy != ICE_PRIVATE && c->policy != ICE_CPRIVATE) ice.c: if (!strcasecmp(ice_mudof(c->name), imc_name)) ice.c: /* Private channel - can only hear if someone with the right mud name is ice.c: p=imc_getarg(c->invited, arg, IMC_NAME_LENGTH); ice.c: p=imc_getarg(c->excluded, arg, IMC_NAME_LENGTH); ice.c: if (!strcasecmp(c->owner, who) || ice.c: imc_hasname(c->operators, who)) ice.c:/* added compress copen policy - shogar - 1/29/2000 */ ice.c: if (c->policy == ICE_OPEN || c->policy == ICE_COPEN) ice.c: if ((imc_hasname(c->excluded, who) || ice.c: imc_hasname(c->excluded, imc_mudof(who))) && ice.c: !imc_hasname(c->invited, who) && ice.c: !imc_hasname(c->invited, imc_mudof(who))) ice.c: if ((imc_hasname(c->invited, who) || ice.c: imc_hasname(c->invited, imc_mudof(who))) && ice.c: !imc_hasname(c->excluded, who) && ice.c: !imc_hasname(c->excluded, imc_mudof(who))) ice.c: while (*fullname && *fullname != ':' && count < IMC_PNAME_LENGTH-1) icec-mercbase.c: * IMC2 - an inter-mud communications protocol icec-mercbase.c: * icec-mercbase.c: IMC-channel-extensions (ICE) Merc-specific client code icec-mercbase.c:#include "imc-mercbase.h" icec-mercbase.c:#include "icec-mercbase.h" icec-mercbase.c: for (c=saved_channel_list; c; c=c->next) icec-mercbase.c: ice_channel *current=icec_findlchannel(c->local->name); icec-mercbase.c: imc_strfree(c->name); icec-mercbase.c: imc_strfree(c->local->format1); icec-mercbase.c: imc_strfree(c->local->format2); icec-mercbase.c: c->name=imc_strdup(current->name); icec-mercbase.c: c->local->format1=imc_strdup(current->local->format1); icec-mercbase.c: c->local->format2=imc_strdup(current->local->format2); icec-mercbase.c: c->local->level=current->local->level; icec-mercbase.c: c->name, c->local->name, c->local->level, icec-mercbase.c: c->local->format1, icec-mercbase.c: c->local->format2); icec-mercbase.c: c->local=imc_malloc(sizeof(*c->local)); icec-mercbase.c: c->name=imc_strdup(buf1); icec-mercbase.c: c->local->name=imc_strdup(buf2); icec-mercbase.c: c->local->format1=imc_strdup(buf3); icec-mercbase.c: c->local->format2=imc_strdup(buf4); icec-mercbase.c: c->local->level=l; icec-mercbase.c: c->next=saved_channel_list; icec-mercbase.c: c->name, c->local->name); icec-mercbase.c: for (c=icec_channel_list; c; c=c->next) icec-mercbase.c: if (c->local && !str_cmp(c->local->name, (char *)name)) icec-mercbase.c: if (c->local && !str_cmp(c->local->name, name)) icec-mercbase.c: if (c->local) icec-mercbase.c: imc_strfree(c->local->name); icec-mercbase.c: imc_strfree(c->local->format1); icec-mercbase.c: imc_strfree(c->local->format2); icec-mercbase.c: imc_free(c->local, sizeof(icec_lchannel)); icec-mercbase.c: c->local=NULL; icec-mercbase.c: /* flag for its there but might be inactive - shogar 2/22/2000 */ icec-mercbase.c: if (!strcasecmp(saved->local->name, chan)) icec-mercbase.c: imc_strfree(saved->name); icec-mercbase.c: *last=saved->next; icec-mercbase.c: /* added break so saved would work in next if - shogar 2/25/200 */ icec-mercbase.c: last=&saved->next; icec-mercbase.c:/* added braces to else so if saved fall thru and save file - shogar 2/25/2000*/ icec-mercbase.c: if (c->local) icec-mercbase.c: c->local=imc_malloc(sizeof(*c->local)); icec-mercbase.c: c->local->name=imc_strdup(arg1); icec-mercbase.c: c->local->level=LEVEL_IMMORTAL; icec-mercbase.c: c->local->format1=imc_strdup(color_itom(buf)); icec-mercbase.c: c->local->format2=imc_strdup(color_itom(buf)); icec-mercbase.c: imc_addname(&ICE_LISTEN(ch), c->local->name); icec-mercbase.c: newc->name=imc_strdup(c->name); icec-mercbase.c: newc->local=imc_malloc(sizeof(*newc->local)); icec-mercbase.c: newc->local->name=imc_strdup(arg1); icec-mercbase.c: newc->local->level=LEVEL_IMMORTAL; icec-mercbase.c: newc->local->format1=imc_strdup(c->local->format1); icec-mercbase.c: newc->local->format2=imc_strdup(c->local->format2); icec-mercbase.c: newc->next=saved_channel_list; icec-mercbase.c: if (!c->local) icec-mercbase.c: imc_strfree(c->local->name); icec-mercbase.c: c->local->name=imc_strdup(arg1); icec-mercbase.c: imc_to_char("Bad format - must contain exactly 2 %s's.\n\r", ch); icec-mercbase.c: imc_strfree(c->local->format1); icec-mercbase.c: c->local->format1=imc_strdup(a1); icec-mercbase.c: imc_to_char("Bad format - must contain exactly 2 %s's.\n\r", ch); icec-mercbase.c: imc_strfree(c->local->format2); icec-mercbase.c: c->local->format2=imc_strdup(a1); icec-mercbase.c: c->local->level=atoi(arg1); icec-mercbase.c: set_char_color(AT_GREY,ch); /* pager color fix - shogar */ icec-mercbase.c: /* for compress policy - shogar - 1/29/2000 */ icec-mercbase.c: switch(c->policy) icec-mercbase.c: polly = "~gOpen -- Open to all muds~!"; icec-mercbase.c: polly = "~GCOpen -- Compressed Open channel~!"; icec-mercbase.c: polly = "~RClosed -- Sent to all muds but only invited people can talk or listen~!"; icec-mercbase.c: polly = "~yPrivate -- Only invited people can talk or listen~!"; icec-mercbase.c: polly = "~YCPrivate -- Compressed Private channel~!"; icec-mercbase.c: polly = "~CUnknown -- We don't know what this is~!"; icec-mercbase.c: c->name, icec-mercbase.c: c->local ? c->local->name : "", icec-mercbase.c: c->local ? c->local->format1 : "", icec-mercbase.c: c->local ? c->local->format2 : "", icec-mercbase.c: c->local ? c->local->level : 0, icec-mercbase.c: c->owner, icec-mercbase.c: c->operators, icec-mercbase.c: c->invited, icec-mercbase.c: c->excluded); icec-mercbase.c: - shogar - /1/26/2000 */ icec-mercbase.c: sprintf(buf, "~c%-15s ~C%-15s ~B%-15s ~b%-7s ~!%s\n\r", "Name", "Local name", "Owner", icec-mercbase.c: /* for compress policy - shogar - 1/29/2000 */ icec-mercbase.c: for (c=icec_channel_list; c; c=c->next) icec-mercbase.c: switch(c->policy) icec-mercbase.c: "~c%-15.15s ~C%-*.*s ~B%-15.15s ~b%7d ~!%s\n\r", icec-mercbase.c: c->name, icec-mercbase.c: c->local ? 15 : 17, icec-mercbase.c: c->local ? 15 : 17, icec-mercbase.c: c->local ? c->local->name : "~Y(not local) ", icec-mercbase.c: c->owner, icec-mercbase.c: c->local ? c->local->level : 0, icec-mercbase.c: for (c=saved_channel_list; c; c=c->next) icec-mercbase.c: if (!icec_findchannel(c->name)) icec-mercbase.c: "~c%-15.15s ~C%-15.15s ~B%-15.15s ~!%-7s ~g(inactive)~!\n\r", icec-mercbase.c: c->name, icec-mercbase.c: c->local ? c->local->name : "~Y(not local)", icec-mercbase.c: if (!c->local) icec-mercbase.c: sprintf(buf, emote ? c->local->format2 : c->local->format1, from, color_itom(txt)); icec-mercbase.c: dnext=d->next; icec-mercbase.c: ch=d->original ? d->original : d->character; icec-mercbase.c: get_trust(ch) < c->local->level || icec-mercbase.c: !imc_hasname(ICE_LISTEN(ch), c->local->name)) icec-mercbase.c: if (!c || !c->local) icec-mercbase.c: if (c->local->level > get_trust(ch)) icec-mercbase.c: if (!imc_hasname(ICE_LISTEN(ch), c->local->name)) icec-mercbase.c: /* Forgot a \n\r here -- Kratas */ icec-mercbase.c: victim->name=STRALLOC(arg); icec-mercbase.c: victim->short_descr=victim->name; icec-mercbase.c: victim->in_room=ch->in_room; icec-mercbase.c: if ( arg[0] == '\0' && social->others_no_arg) icec-mercbase.c: strcpy(buf2,(char *) act_string(social->others_no_arg, NULL, ch, NULL, victim,0)); icec-mercbase.c: strcpy(buf2,(char *) act_string(social->others_no_arg, NULL, ch, NULL, victim)); icec-mercbase.c: buf2[strlen(buf2) - 2]=0; icec-mercbase.c: rwhois - shogar icec-mercbase.c: STRFREE(victim->name); icec-mercbase.c: else if(victim==ch && social->others_auto) icec-mercbase.c: strcpy(buf2,(char *) act_string(social->others_no_arg, NULL, ch, NULL, victim,0)); icec-mercbase.c: strcpy(buf2,(char *) act_string(social->others_auto, victim, ch, NULL, victim)); icec-mercbase.c: buf2[strlen(buf2) - 2]=0; icec-mercbase.c: else if(social->others_found) icec-mercbase.c: strcpy(buf2,(char *) act_string(social->others_no_arg, NULL, ch, NULL, victim,0)); icec-mercbase.c: strcpy(buf2,(char *) act_string(social->others_found, victim, ch, NULL, victim)); icec-mercbase.c: buf2[strlen(buf2) - 2]=0; icec-mercbase.c: STRFREE(victim->name); icec-mercbase.c: icec_sendmessage(c, ch->name, color_mtoi(color_itom(argument)), emote); icec-mercbase.c: if (!c->local) icec-mercbase.c: for (saved=saved_channel_list; saved; saved=saved->next) icec-mercbase.c: if (!strcasecmp(saved->name, c->name)) icec-mercbase.c: c->local=imc_malloc(sizeof(icec_lchannel)); icec-mercbase.c: c->local->name=imc_strdup(saved->local->name); icec-mercbase.c: c->local->format1=imc_strdup(saved->local->format1); icec-mercbase.c: c->local->format2=imc_strdup(saved->local->format2); icec-mercbase.c: c->local->level=saved->local->level; icec-mercbase.c: for ( channel= icec_channel_list; channel; channel= channel->next ) icec-mercbase.c: markfn( channel->name ); icec-mercbase.c: markfn( channel->owner ); icec-mercbase.c: markfn( channel->operators ); icec-mercbase.c: markfn( channel->invited ); icec-mercbase.c: markfn( channel->excluded ); icec-mercbase.c: markfn( channel->active ); icec-mercbase.c: if ( channel->local != NULL ) icec-mercbase.c: markfn( channel->local->name ); icec-mercbase.c: markfn( channel->local->format1 ); icec-mercbase.c: markfn( channel->local->format2 ); icec-mercbase.c: for ( channel= saved_channel_list; channel; channel= channel->next ) icec-mercbase.c: markfn( channel->name ); icec-mercbase.c: markfn( channel->owner ); icec-mercbase.c: markfn( channel->operators ); icec-mercbase.c: markfn( channel->invited ); icec-mercbase.c: markfn( channel->excluded ); icec-mercbase.c: markfn( channel->active ); icec-mercbase.c: if ( channel->local != NULL ) icec-mercbase.c: markfn( channel->local->name ); icec-mercbase.c: markfn( channel->local->format1 ); icec-mercbase.c: markfn( channel->local->format2 ); icec.c: * IMC2 - an inter-mud communications protocol icec.c: * icec.c: IMC-channel-extensions (ICE) client code icec.c: for (c=icec_channel_list; c; c=c->next) icec.c: if (!strcasecmp(c->name, name)) icec.c: imc_strfree(ic->name); icec.c: imc_strfree(ic->owner); icec.c: imc_strfree(ic->operators); icec.c: imc_strfree(ic->invited); icec.c: imc_strfree(ic->excluded); icec.c: icec_channel_list=ic->next; icec.c: if (!strcasecmp(p->type, "ice-msg-r")) icec.c: icec_recv_msg_r(p->from, icec.c: imc_getkey(&p->data, "realfrom", ""), icec.c: imc_getkey(&p->data, "channel", ""), icec.c: imc_getkey(&p->data, "text", ""), icec.c: imc_getkeyi(&p->data, "emote", 0)); icec.c: else if( !strcasecmp( p->type, "ice-comp-msg-r" ) ) icec.c: icec_recv_msg_comp_r( p->from, icec.c: imc_getkey( &p->data, "realfrom", "" ), icec.c: imc_getkey( &p->data, "channel", "" ), icec.c: imc_getkeyi( &p->data, "complen", 0 ), icec.c: imc_getkey( &p->data, "text", "" ), icec.c: imc_getkeyi( &p->data, "emote", 0 )); icec.c: else if (!strcasecmp(p->type, "ice-msg-b")) icec.c: icec_recv_msg_b(p->from, icec.c: imc_getkey(&p->data, "channel", ""), icec.c: imc_getkey(&p->data, "text", ""), icec.c: imc_getkeyi(&p->data, "emote", 0)); icec.c: else if( !strcasecmp( p->type, "ice-comp-msg-b" ) ) icec.c: icec_recv_msg_comp_b( p->from, icec.c: imc_getkey( &p->data, "channel", "" ), icec.c: imc_getkeyi( &p->data, "complen", 0 ), icec.c: imc_getkey( &p->data, "text", "" ), icec.c: imc_getkeyi( &p->data, "emote", 0 )); icec.c: else if (!strcasecmp(p->type, "ice-update")) icec.c: icec_recv_update(p->from, icec.c: imc_getkey(&p->data, "channel", ""), icec.c: imc_getkey(&p->data, "owner", ""), icec.c: imc_getkey(&p->data, "operators", ""), icec.c: imc_getkey(&p->data, "policy", ""), icec.c: imc_getkey(&p->data, "invited", "" ), icec.c: imc_getkey(&p->data, "excluded", "")); icec.c: else if (!strcasecmp(p->type, "ice-destroy")) icec.c: icec_recv_destroy(p->from, imc_getkey(&p->data, "channel", "")); icec.c: if (!c->local || (c->policy!=ICE_PRIVATE && c->policy != ICE_CPRIVATE)) icec.c: /* we assume that anything redirected is automatically audible - since we icec.c: if (!c->local || (c->policy!=ICE_PRIVATE && c->policy !=ICE_CPRIVATE)) icec.c: /* we assume that anything redirected is automatically audible - since we icec.c: if (!c->local || c->policy==ICE_PRIVATE || c->policy == ICE_CPRIVATE) icec.c: if (!c->local || c->policy==ICE_PRIVATE || c->policy == ICE_CPRIVATE) icec.c: c->name=imc_strdup(chan); icec.c: c->owner=imc_strdup(owner); icec.c: c->operators=imc_strdup(operators); icec.c: c->invited=imc_strdup(invited); icec.c: c->excluded=imc_strdup(excluded); icec.c: c->local=NULL; icec.c: c->active=NULL; icec.c: c->next=icec_channel_list; icec.c: imc_strfree(c->name); icec.c: imc_strfree(c->owner); icec.c: imc_strfree(c->operators); icec.c: imc_strfree(c->invited); icec.c: imc_strfree(c->excluded); icec.c: c->name=imc_strdup(chan); icec.c: c->owner=imc_strdup(owner); icec.c: c->operators=imc_strdup(operators); icec.c: c->invited=imc_strdup(invited); icec.c: c->excluded=imc_strdup(excluded); icec.c: c->policy=ICE_OPEN; icec.c: c->policy=ICE_CLOSED; icec.c: c->policy=ICE_COPEN; icec.c: c->policy=ICE_CPRIVATE; icec.c: c->policy=ICE_PRIVATE; icec.c: if (c->local && !ice_audible(c, imc_name)) icec.c:/* took out for 2.00 - shogar - 1/25/2000 */ icec.c: icec_channel_list=c->next; icec.c: for (p=icec_channel_list; p; p=p->next) icec.c: if (p->next == c) icec.c: p->next=c->next; icec.c: imc_strfree(c->name); icec.c: imc_strfree(c->owner); icec.c: imc_strfree(c->operators); icec.c: imc_strfree(c->invited); icec.c: imc_strfree(c->excluded); icec.c: strcpy(chan, c->name); icec.c: strcpy(out.type, "ice-cmd"); icec.c:/* Updated function. Can now compress! Woo! -- Kratas */ icec.c: /* commpress policy - shogar - 1/29/2000 */ icec.c: if(c->policy == ICE_COPEN || c->policy == ICE_CPRIVATE) icec.c: imc_addkey(&out.data, "channel", c->name); icec.c: if (c->policy == ICE_PRIVATE || c->policy == ICE_CPRIVATE) icec.c: strcpy(out.type, compressit ? "ice-comp-msg-p" : "ice-msg-p"); icec.c: sprintf(out.to, "ICE@%s", ice_mudof(c->name)); icec.c: strcpy(out.type, compressit ? "ice-comp-msg-b" : "ice-msg-b"); icec.c: strcpy(out.type, "ice-refresh"); icec.c: icec_channel_list=c->next; icec.c: for (p=icec_channel_list; p; p=p->next) icec.c: if (p->next == c) icec.c: p->next=c->next; icec.c: imc_strfree(c->name); icec.c: imc_strfree(c->owner); icec.c: imc_strfree(c->operators); icec.c: imc_strfree(c->invited); icec.c: imc_strfree(c->excluded); iced.c: * IMC2 - an inter-mud communications protocol iced.c: * iced.c: IMC-channel-extensions (ICE) daemon code iced.c:/* make these global and move to imc-interp for 2.00 - shogar - 1/25/2000 */ iced.c: -1, /* level */ iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: if (c->policy != ICE_PRIVATE && c->policy != ICE_CPRIVATE) iced.c: imc_strfree(c->active); iced.c: c->active=imc_strdup(""); iced.c: p=imc_getarg(c->invited, arg, IMC_NAME_LENGTH); iced.c: p=imc_getarg(c->operators, arg, IMC_NAME_LENGTH); iced.c: if (!imc_hasname(buf, imc_mudof(c->owner))) iced.c: strcat(buf, imc_mudof(c->owner)); iced.c: imc_strfree(c->active); iced.c: c->active=imc_strdup(buf); iced.c: for (c=iced_channel_list; c; c=c->next) iced.c: c->name, c->owner, c->policy, iced.c: c->operators[0] ? c->operators : "none", iced.c: c->invited[0] ? c->invited : "none", iced.c: c->excluded[0] ? c->excluded : "none"); iced.c: c->local=NULL; iced.c: c->name=imc_strdup(buf1); iced.c: c->owner=imc_strdup(buf2); iced.c: c->operators=imc_strdup(buf3); iced.c: c->invited=imc_strdup(buf4); iced.c: c->excluded=imc_strdup(buf5); iced.c: c->active=imc_strdup(""); iced.c: c->policy=p; iced.c: c->next=iced_channel_list; iced.c: /* for compress policy - shogar - 1/29/2000 */ iced.c: switch(c->policy) iced.c: c->name, iced.c: c->owner); iced.c: for (c=iced_channel_list; c; c=c->next) iced.c: if (!strcasecmp(c->name, name)) iced.c: vsnprintf(buf+strlen(buf), IMC_DATA_LENGTH - 1, fmt, ap); iced.c: p=imc_getarg(c->active, arg, IMC_NAME_LENGTH); iced.c: sprintf(out->to, "*@%s", arg); iced.c: vsnprintf(buf+strlen(buf), (IMC_DATA_LENGTH-strlen(buf)) - 1, fmt, ap); iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: if (c->policy == ICE_PRIVATE || c->policy == ICE_CPRIVATE) iced.c: strcpy(out.type, "ice-msg-r"); iced.c: imc_addkey(&out.data, "channel", c->name); iced.c: strcpy(out.type, "ice-msg-b"); iced.c: imc_addkey(&out.data, "channel", c->name); iced.c: if (!strcasecmp(p->type, "ice-cmd")) iced.c: iced_recv_command(p->from, iced.c: imc_getkey(&p->data, "channel", ""), iced.c: imc_getkey(&p->data, "command", ""), iced.c: imc_getkey(&p->data, "data", ""), 0); iced.c: else if (!strcasecmp(p->type, "ice-msg-p")) iced.c: iced_recv_msg_p(p->from, iced.c: imc_getkey(&p->data, "channel", ""), iced.c: imc_getkey(&p->data, "text", ""), iced.c: imc_getkeyi(&p->data, "emote", 0)); iced.c: else if( !strcasecmp( p->type, "ice-comp-msg-p" ) ) iced.c: iced_recv_msg_comp_p( p->from, iced.c: imc_getkey( &p->data, "channel", "" ), iced.c: imc_getkeyi( &p->data, "complen", 0 ), iced.c: imc_getkey( &p->data, "text", "" ), iced.c: imc_getkeyi( &p->data, "emote", 0 )); iced.c: else if (!strcasecmp(p->type, "ice-msg-b")) iced.c: iced_recv_msg_b(p->from, iced.c: imc_getkey(&p->data, "channel", "")); iced.c: else if( !strcasecmp( p->type, "ice-comp-msg-b" ) ) iced.c: iced_recv_msg_b( p->from, iced.c: imc_getkey( &p->data, "channel", "" ) ); iced.c: for 2.00 - shogar - 1/26/2000 iced.c: else if (!strcasecmp(p->type, "ice-refresh")) iced.c: iced_recv_refresh(p->from, imc_getkey(&p->data, "channel", "*")); iced.c: else if (!strcasecmp(p->type, "ice-join-request")) iced.c: iced_recv_join(p->from, imc_getkey(&p->data, "channel", "")); iced.c: else if (!strcasecmp(p->type, "ice-leave-request")) iced.c: iced_recv_leave(p->from, imc_getkey(&p->data, "channel", "")); iced.c:/* gone for 2.00 - shogar - 1/26/2000 */ iced.c: else if (!strcasecmp(from, c->owner)) iced.c: else if (imc_hasname(c->operators, from)) iced.c: strcpy(out.type, "ice-destroy"); iced.c: iced_channel_list=c->next; iced.c: for (p=iced_channel_list; p; p=p->next) iced.c: if (p->next == c) iced.c: imc_logerror("%s not in channel list?!", c->name); iced.c: p->next=c->next; iced.c: next_refresh=c->next; iced.c: next_list=c->next; iced.c: imc_logstring("%s destroys channel %s", from, c->name); iced.c: iced_gannounce("Channel %s has been destroyed by %s.", c->name, from); iced.c: // Moved to up here to fix a bug -- Kratas iced.c: iced_send_destroy(c->name, NULL); iced.c: imc_strfree(c->name); iced.c: imc_strfree(c->owner); iced.c: imc_strfree(c->operators); iced.c: imc_strfree(c->invited); iced.c: imc_strfree(c->excluded); iced.c: imc_strfree(c->active); iced.c: c->policy=ICE_OPEN; iced.c: iced_gannounce("%s is now policy: open.", c->name); iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: c->policy=ICE_COPEN; iced.c: iced_gannounce("%s is now policy: open.", c->name); iced.c: c->policy=ICE_CLOSED; iced.c: iced_gannounce("%s is now policy: closed.", c->name); iced.c: c->policy=ICE_PRIVATE; iced.c: iced_gannounce("%s is now policy: private.", c->name); iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: c->policy=ICE_CPRIVATE; iced.c: iced_gannounce("%s is now policy: private.", c->name); iced.c: if (imc_hasname(c->operators, data)) iced.c: imc_addname(&c->operators, arg); iced.c: sprintf(buf, "%s is now an operator of %s.", arg, c->name); iced.c: if (!imc_hasname(c->operators, arg)) iced.c: imc_removename(&c->operators, arg); iced.c: sprintf(buf, "%s is no longer an operator of %s.", arg, c->name); iced.c: if (imc_hasname(c->invited, arg)) iced.c: imc_addname(&c->invited, arg); iced.c: sprintf(buf, "%s is now invited to %s.", arg, c->name); iced.c: if (!imc_hasname(c->invited, arg)) iced.c: imc_removename(&c->invited, arg); iced.c: sprintf(buf, "%s is no longer invited on %s.", arg, c->name); iced.c: if (imc_hasname(c->excluded, arg)) iced.c: imc_addname(&c->excluded, arg); iced.c: sprintf(buf, "%s is now excluded from %s.", arg, c->name); iced.c: if (!imc_hasname(c->excluded, arg)) iced.c: imc_removename(&c->excluded, arg); iced.c: sprintf(buf, "%s is no longer excluded from %s.", arg, c->name); iced.c: p->name=imc_strdup(cname); iced.c: p->owner=imc_strdup(from); iced.c: p->operators=imc_strdup(""); iced.c: p->invited=imc_strdup(""); iced.c: p->excluded=imc_strdup(""); iced.c: p->active=imc_strdup(""); iced.c: p->policy=ICE_CLOSED; iced.c: p->next=iced_channel_list; iced.c: imc_logstring("%s creates channel %s", from, p->name); iced.c: iced_gannounce("Channel %s created by %s.", p->name, from); iced.c: /* 2.00 fix changed from ev_chan_list to ev_refresh - shogar - iced.c: imc_send_tell(&iced_char, from, "Refresh already in progress - try again later.", 1); iced.c:/* private message - for forwarding */ iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: if (c->policy != ICE_PRIVATE && c->policy != ICE_CPRIVATE) iced.c: strcpy(out.type, "ice-msg-r"); /* redirect */ iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: if (c->policy != ICE_PRIVATE && c->policy != ICE_CPRIVATE) iced.c: strcpy(out.type, "ice-comp-msg-r"); /* redirect */ iced.c:/* broadcast message - complain if its a private channel */ iced.c: /* added compress policy - shogar - 1/29/2000 */ iced.c: if (c->policy == ICE_PRIVATE || c->policy == ICE_CPRIVATE) iced.c: /* 2.00 fix changed from ev_chanlist to refresh - shogar - 1/25/2000 */ iced.c: if (imc_hasname(c->active, mud)) iced.c: imc_addname(&c->active, mud); iced.c: if (!imc_hasname(c->active, mud)) iced.c: imc_removename(&c->active, mud); iced.c: strcpy(out.type, "ice-update"); iced.c: imc_addkey(&out.data, "channel", c->name); iced.c: imc_addkey(&out.data, "owner", c->owner); iced.c: imc_addkey(&out.data, "operators", c->operators); iced.c: /* for compress policy - shogar - 1/29/2000 */ iced.c: switch(c->policy) iced.c: imc_addkey(&out.data, "invited", c->invited); iced.c: imc_addkey(&out.data, "excluded", c->excluded); iced.c:/* not using anymore for 2.00 - shogar - 1/25/2000 */ iced.c: imc_cancel_event(ev_iced_chanlist,NULL); /* 2.00 fix - shogar - 1/25/2000 */ iced.c: next_list=next_list->next; iced.c:/* removed so it doesnt recycle automatically for 2.00 - shogar - 1/25/2000 */ iced.c: next_refresh=next_refresh->next; iced.c:/* copied this down here for 2.00 , avoid useless event - shogar - 1/25/2000 */ ident.c: * -----------------------------------------------------------| (0...0) * ident.c: * -----------------------------------------------------------| {o o} * ident.c: *------------------------------------------------------------------------ * ident.c: for (a = first_auth; a; a = a->next) ident.c: if (a->state != AS_TOOPEN) ident.c: *md = UMAX(*md, a->afd); ident.c: FD_SET(a->afd, ins); ident.c: FD_SET(a->afd, outs); ident.c: FD_SET(a->afd, excs); ident.c: a_next = a->next; ident.c: ch = (a->d->original ? a->d->original : a->d->character); ident.c: if (a->state == AS_TOOPEN) ident.c: else if (FD_ISSET(a->afd, excs)) ident.c: FD_CLR(a->afd, ins); ident.c: FD_CLR(a->afd, outs); ident.c: (ch ? ch->name : "(unknown)"), a->d->host); ident.c: STRFREE(a->d->user); ident.c: a->d->user = STRALLOC("Exception"); ident.c: else if (FD_ISSET(a->afd, ins) && a->state == AS_TOREAD) ident.c: FD_CLR(a->afd, outs); ident.c: else if (FD_ISSET(a->afd, outs) && a->state == AS_TOSEND) ident.c: if (a->state != AS_TOOPEN) ident.c: closesocket(a->afd); ident.c: for (ws = (*s)-1; isspace(*ws); --ws) ident.c: bug(bs, (ch ? ch->name : "(unknown)"), a->d->host); \ ident.c: STRFREE(a->d->user); \ ident.c: a->d->user = STRALLOC(us); \ ident.c: n = recv(a->afd, readbuf, sizeof(readbuf)-10, 0); ident.c: feel like checking every single one.. -- Alty */ ident.c: sprintf(system, "%.*s", (int)sizeof(system)-1, break_arg(&s, ':')); ident.c: sprintf(user, "%.*s", (int)sizeof(user)-1, break_arg(&s, ' ')); ident.c: user, a->d->host, (ch ? ch->name : "(unknown)")); ident.c: STRFREE(a->d->user); ident.c: a->d->user = STRALLOC(user); ident.c: sprintf(authbuf, "%u , %u\r\n", (unsigned int)ntohs(a->them.sin_port), ident.c: (unsigned int)ntohs(a->us.sin_port)); ident.c: n = send(a->afd, authbuf, strlen(authbuf), 0); ident.c: if (!--a->times) ident.c: -- Alty */ ident.c: STRFREE(a->d->user); ident.c: a->d->user = STRALLOC("(broken pipe)"); ident.c: closesocket(a->afd); ident.c: a->state = AS_TOOPEN; ident.c: if (a->times == sysdata.ident_retries-1) ident.c: STRFREE(a->d->user); ident.c: a->d->user = STRALLOC("(pipe breaking)"); ident.c: a->state = AS_TOREAD; ident.c: a->afd = socket(AF_INET, SOCK_STREAM, 0); ident.c: if (a->afd < 0) ident.c: (ch ? ch->name : "(unknown)"), a->d->host); ident.c: --a->times; ident.c: if (ioctlsocket(a->afd, FIONBIO, &arg) == -1 ) ident.c: if (fcntl(a->afd, F_SETFL, FNDELAY) < 0) ident.c: sock = a->them; ident.c: sock.sin_port = serv->s_port; ident.c: if (connect(a->afd, (struct sockaddr *)&sock, sizeof(sock)) < 0 ident.c: a->state = AS_TOSEND; ident.c: bug(bs, (ch ? ch->name : "(unknown)"), d->host); \ ident.c: STRFREE(d->user); \ ident.c: d->user = STRALLOC(us); \ ident.c: CHAR_DATA *ch = (d->original ? d->original : d->character); ident.c: /* To stop an uninitialized memory read --Shaddai */ ident.c: STRFREE(d->user); ident.c: d->user = STRALLOC("(ident not active)"); ident.c: if (getsockname(d->descriptor, (struct sockaddr *)&us, &ulen) < 0) ident.c: if (getpeername(d->descriptor, (struct sockaddr *)&them, &tlen) < 0) ident.c: a->d = d; ident.c: a->state = AS_TOOPEN; ident.c: a->times = sysdata.ident_retries; ident.c: a->us = us; ident.c: a->them = them; ident.c: STRFREE(d->user); ident.c: d->user = STRALLOC("(in progress)"); ident.c: for (a = first_auth; a; a = a->next) ident.c: if (a->d == d) ident.c: if (a->state != AS_TOOPEN) ident.c: closesocket(a->afd); ident.c: STRFREE(d->user); ident.c: d->user = STRALLOC("(killed)"); imc-color.c: * be placed in imc-config.c if people wanted it. Up to you all. imc-color.c: * See imc-color.h for more info. imc-color.c:#include "imc-mercdefs.h" imc-color.c:#include "imc-mercbase.h" imc-color.c: "\tGrey : %c%-2s\tRed : %c%-2s\tGreen : %c%-2s\n\r" imc-color.c: "\tBrown : %c%-2s\tBlue : %c%-2s\tMagenta : %c%-2s\n\r" imc-color.c: "\tCyan : %c%-2s\tBlack : %c%-2s\tYellow : %c%-2s\n\r" imc-color.c: "\tWhite : %c%-2s\tNormal : %c%-2s\tDark Grey : %c%-2s\n\r" imc-color.c: "\tBold Blue: %c%-2s\tBold Green: %c%-2s\tBold Magenta: %c%-2s\n\r" imc-color.c: "\tBold Cyan: %c%-2s\tBold Red : %c%-2s\tBold : %c%-2s\n\r", imc-config.c: * IMC2 - an inter-mud communications protocol imc-config.c: * imc-config.c: configuration manipulation imc-config.c: * - config loading/saving (imc_readconfig, imc_saveconfig) imc-config.c: * - ignores loading/saving (imc_readignores, imc_saveignores) imc-config.c: * - config editing/displaying (imc_command) imc-config.c: * - ignore editing/displaying (imc_ignore) imc-config.c:/* USEIOCTL #defined if TIOCINQ or TIOCOUTQ are - we assume that the ioctls imc-config.c:/* append crlf for details - shogar */ imc-config.c:extern time_t time_since_last_ping; /* istat ping monitor - shogar */ imc-config.c:extern time_t time_since_last_ralive; /* istat ping monitor - shogar */ imc-config.c:extern time_t time_since_last_salive; /* istat ping monitor - shogar */ imc-config.c: short localport=-1; /* added -1 to solve "duplicate localport" error. Suggested by Tagith@UCMM. -- Scion */ imc-config.c: char localname[IMC_NAME_LENGTH]; /* Again suggested ="" by Tagith@UCMM -- Scion */ imc-config.c: int version= -1; imc-config.c: short infoport = 0; /* Local mud port -- kratas */ imc-config.c: /* increased idetails - shogar */ imc-config.c: while (buf[0] && isspace(buf[strlen(buf)-1])) imc-config.c: buf[strlen(buf)-1]=0; imc-config.c: flags |= imc_flagvalue(value, imc_connection_flags); /* original bug - fix shogar */ imc-config.c: i->name = imc_strdup(name); imc-config.c: i->host = imc_strdup(host); imc-config.c: i->clientpw = imc_strdup(pw1); imc-config.c: i->serverpw = imc_strdup(pw2); imc-config.c: i->port = port; imc-config.c: i->rcvstamp = rcvstamp; imc-config.c: i->noforward = noforward; imc-config.c: i->flags = flags; imc-config.c: /* allow multiple lines - shogar */ imc-config.c: /* set max guest connections - shogar */ imc-config.c: /* add configurable log message option - shogar */ imc-config.c: else if (version==-1) imc-config.c: i->name = imc_strdup(name); imc-config.c: i->host = imc_strdup(host); imc-config.c: i->clientpw = imc_strdup(pw1); imc-config.c: i->serverpw = imc_strdup(pw2); imc-config.c: i->port = port; imc-config.c: i->rcvstamp = rcvstamp; imc-config.c: i->noforward = noforward; imc-config.c: i->flags = flags; imc-config.c: if (localport==-1) imc-config.c: /* add configurable log message option - shogar */ imc-config.c: /* add configurable hubswitching option - shogar */ imc-config.c: for (i=imc_info_list; i; i=i->next) imc-config.c: if (i->flags & IMC_NOSWITCH) /* if nowswitch set, save entry new or not*/ imc-config.c: i->flags &= ~IMC_NEW_HUB; imc-config.c: if (i->flags & IMC_NEW_HUB) /* no giveaway hubs - shogar */ imc-config.c: i->name, imc-config.c: i->host, imc-config.c: i->port, imc-config.c: i->clientpw, imc-config.c: i->serverpw, imc-config.c: i->rcvstamp, imc-config.c: i->noforward, imc-config.c: imc_flagname(i->flags, imc_connection_flags)); imc-config.c: return -1; imc-config.c: /* This used to be below the first 5 checks, moved up here now -- Kratas */ imc-config.c: if(!strcasecmp(arg1,"log")) /* configurable log messages - shogar */ imc-config.c: if(!strcasecmp(arg1,"hubswitch")) /* configurable log messages - shogar */ imc-config.c: /* reload config file - shut down and restart */ imc-config.c: return -1; imc-config.c: return -1; imc-config.c: return -1; imc-config.c: i->name = imc_strdup(arg2); imc-config.c: i->host = imc_strdup(""); imc-config.c: i->clientpw = imc_strdup(""); imc-config.c: i->serverpw = imc_strdup(""); imc-config.c: i->connect_attempts = 0; imc-config.c: return -1; imc-config.c: return -1; imc-config.c: if (i->connection) imc-config.c: imc_disconnect(i->name); imc-config.c: imc_strfree(i->name); imc-config.c: i->name = imc_strdup(arg3); imc-config.c: return -1; imc-config.c: if (i->host) imc-config.c: imc_strfree(i->host); imc-config.c: if (i->clientpw) imc-config.c: imc_strfree(i->clientpw); imc-config.c: if (i->serverpw) imc-config.c: imc_strfree(i->serverpw); imc-config.c: i->host=imc_strdup(arg3); imc-config.c: i->port=strtoul(arg3, NULL, 10); imc-config.c: i->clientpw=imc_strdup(arg3); imc-config.c: i->serverpw=imc_strdup(arg3); imc-config.c: i->rcvstamp=strtoul(arg3, NULL, 10); imc-config.c: i->noforward=strtoul(arg3, NULL, 10); imc-config.c: i->flags=imc_flagvalue(arg3, imc_connection_flags); imc-config.c: if (i->host) imc-config.c: imc_strfree(i->host); imc-config.c: i->host=imc_strdup(argument); imc-config.c: i->port=strtoul(argument, NULL, 10); imc-config.c: if (i->clientpw) imc-config.c: imc_strfree(i->clientpw); imc-config.c: i->clientpw=imc_strdup(argument); imc-config.c: if (i->serverpw) imc-config.c: imc_strfree(i->serverpw); imc-config.c: i->serverpw=imc_strdup(argument); imc-config.c: i->rcvstamp=strtoul(argument, NULL, 10); imc-config.c: i->noforward=strtoul(argument, NULL, 10); imc-config.c: i->flags ^=imc_flagvalue(argument, imc_connection_flags); imc-config.c: return -1; imc-config.c: return -1; imc-config.c: for (ign=imc_ignore_list; ign; ign=ign->next) imc-config.c: (ign->match & IMC_IGNORE_PREFIX) ? "*" : "", imc-config.c: ign->name, imc-config.c: (ign->match & IMC_IGNORE_SUFFIX) ? "*" : "", imc-config.c: imc_statename(ign->type, imc_ignore_types)); imc-config.c: ign->name=NULL; imc-config.c: ign->match=IMC_IGNORE_EXACT; imc-config.c: ign->type=-1; imc-config.c: ign->next=imc_ignore_list; imc-config.c: if (ign->name) imc-config.c: imc_strfree(ign->name); imc-config.c: if (who[0] && who[strlen(who)-1]=='*') imc-config.c: who[strlen(who)-1]=0; imc-config.c: for (last=NULL, ign=imc_ignore_list; ign; last=ign, ign=ign->next) imc-config.c: if (match==ign->match && !strcasecmp(who, ign->name)) imc-config.c: imc_ignore_list=ign->next; imc-config.c: last->next=ign->next; imc-config.c: ign->type=type; imc-config.c: if (who[0] && who[strlen(who)-1]=='*') imc-config.c: who[strlen(who)-1]=0; imc-config.c: ign->match=match; imc-config.c: ign->name=imc_strdup(who); imc-config.c: for (count=0, ign=imc_ignore_list; ign; ign=ign->next, count++) imc-config.c: imc_statename(ign->type, imc_ignore_types), imc-config.c: (ign->match & IMC_IGNORE_PREFIX) ? "*" : "", imc-config.c: ign->name, imc-config.c: (ign->match & IMC_IGNORE_SUFFIX) ? "*" : ""); imc-config.c:/* check if needle is in haystack (case-insensitive) */ imc-config.c: for (ign=imc_ignore_list; ign; ign=ign->next) imc-config.c: if (type>=0 && type!=ign->type) imc-config.c: len=strlen(ign->name); imc-config.c: switch (ign->match) imc-config.c: if (!strcasecmp(ign->name, who)) imc-config.c: if (!strncasecmp(ign->name, who, len)) imc-config.c: if (wlen>=len && !strncasecmp(ign->name, who+wlen-len, len)) imc-config.c: if (substr(ign->name, who)) imc-config.c: sprintf(buf, "~c%4s ~C%-9s ~B%-15s ~r%-11s ~R%-11s ~y%-3s ~Y%-3s\n\r", imc-config.c: for (c=imc_connect_list; c; c=c->next) imc-config.c: switch (c->state) imc-config.c: ioctl(c->desc, TIOCINQ, &r); imc-config.c: r += strlen(c->inbuf); imc-config.c: ioctl(c->desc, TIOCOUTQ, &s); imc-config.c: s=outqsize-s; imc-config.c: s += strlen(c->outbuf); imc-config.c: r=strlen(c->inbuf); imc-config.c: s=strlen(c->outbuf); imc-config.c: "%4d %-9s %-15s ~r%5d/~R%-5d %5d/~r%-5d ~y%3d ~Y%3d\n\r", imc-config.c: c->desc, imc-config.c: c->info ? c->info->name : "unknown", imc-config.c: c->insize, imc-config.c: c->outsize, imc-config.c: c->spamcounter1, imc-config.c: c->spamcounter2); imc-config.c: * level=0 is mortal-level access (mudnames and connection states) imc-config.c: * level=1 is imm-level access (names, hosts, ports, states) imc-config.c: * level=4 is IMC local config info (mortal-safe) imc-config.c: sprintf(buf + strlen(buf), "%-10s %-15s %-8s", "Name", "State", "LastConn"); imc-config.c: sprintf(buf + strlen(buf), "%-10s %-30s %5s %-13s %-8s", "Name", "Host", imc-config.c: /* show failed reconnect attempts - shogar */ imc-config.c: "%-8s %-25s %5s %-13s %-10s %-10s\n\r" imc-config.c: " %-8s %-9s %-5s %-5s %-8s %-8s %s", imc-config.c: for (i=imc_info_list; i; i=i->next) imc-config.c: state = i->connection ? "connected" : "not connected"; imc-config.c: if (i->connection) imc-config.c: else if (!i->last_connected) imc-config.c: long diff=(long)imc_now - (long)i->last_connected; imc-config.c: sprintf(buf + strlen(buf), "\n\r%-10s %-15s %8s", i->name, state, lastconn); imc-config.c: sprintf(buf + strlen(buf), "\n\r%-10s %-30s %5hu %-13s %8s", imc-config.c: i->name, imc-config.c: i->host, imc-config.c: i->port, imc-config.c: "\n\r%-8s %-25s %5hu %-13s %-10s %-10s" imc-config.c: "\n\r %-8d %-9d %-5d %-5ld %8s %-8d %s", imc-config.c: i->name, imc-config.c: i->host, imc-config.c: i->port, imc-config.c: i->clientpw, imc-config.c: i->serverpw, imc-config.c: i->rcvstamp, imc-config.c: i->noforward, imc-config.c: i->timer_duration, imc-config.c: i->connect_attempts, /* show failed reconnects - shogar */ imc-config.c: imc_flagname(i->flags, imc_connection_flags)); imc-config.c: sprintf(buf + strlen(buf), "%-12s %-8s %-9s %-20s %-10s", imc-config.c: sprintf(buf + strlen(buf), "~c%-15.15s ~C%-10.10s ~B%-30.30s ~G%-10.10s~!", imc-config.c: for( p = imc_reminfo_list ; p ; p = p->next, count++ ) imc-config.c: if (p->hide && level==3) imc-config.c: if (p->ping) imc-config.c: sprintf(buf + strlen(buf), "\n\r%-13s %7ds %7dms %-20s %-10s %s", imc-config.c: p->name, (int) (imc_now - p->alive), p->ping, p->version, imc-config.c: p->route ? p->route : "broadcast", p->type ? "expired" : ""); imc-config.c: sprintf(buf + strlen(buf), "\n\r~c%-13s ~C%7ds ~B%9s ~G%-20s ~!%-10s %s", imc-config.c: p->name, (int) (imc_now - p->alive), "~yunknown~!", imc-config.c: p->version, p->route ? p->route : "~Ybroadcast~!", imc-config.c: p->type ? "~Rexpired~!" : ""); imc-config.c: sprintf(buf + strlen(buf), "\n\r~c%-15.15s ~C%9ds ~B%-30.30s ~G%-10.10s %s~!", imc-config.c: p->name, (int) (imc_now - p->alive), p->version, imc-config.c: p->route ? p->route : "~Ybroadcast", p->type ? "~Rexpired" : ""); imc-config.c:// Merely eye-candy, but why not? -- Kratas imc-config.c: if( (x-ex_amount) % 3 == 0 && x > 0 ) imc-config.c: for (evcount=0, ev=imc_event_list; ev; ev=ev->next, evcount++) imc-config.c: ((imc_now - imc_stats.start) ? imc-config.c: (imc_now - imc_stats.start) : 1) ); imc-config.c: 100-((imc_stats.rxcompressed_bytes*100/ imc-config.c: ((imc_now - imc_stats.start) ? imc-config.c: (imc_now - imc_stats.start) : 1) ); imc-config.c: 100-((imc_stats.txcompressed_bytes*100 / imc-config.c: /* added some additional info here - shogar */ imc-config.c: /* added some additional info here - shogar */ imc-events.c: * IMC2 - an inter-mud communications protocol imc-events.c: * imc-events.c: IMC event handling imc-events.c: * - event support functions imc-events.c: * - event callbacks imc-events.c:/* we use size-limited recycle lists, since events will be being imc-events.c: imc_event_free=p->next; imc-events.c: event_freecount--; imc-events.c: p->when=0; imc-events.c: p->callback=NULL; imc-events.c: p->data=NULL; imc-events.c: p->next=NULL; imc-events.c: p->timed=0; imc-events.c: p->next=imc_event_free; imc-events.c: p->when=imc_now+when; imc-events.c: p->callback=callback; imc-events.c: p->data=data; imc-events.c: p->timed=timed; imc-events.c: last=&scan->next, scan=*last) imc-events.c: if (scan->when >= p->when) imc-events.c: p->next=scan; imc-events.c: the 60 second grace period on close-notify imc-events.c: for (p=imc_event_list; p; p=p->next) imc-events.c: if ((!callback) && p->data == data) imc-events.c: else if ((callback) && p->data == data) imc-events.c: else if (p->callback==callback && data==NULL) imc-events.c: p_next=p->next; imc-events.c:/* changed this for 2.00 i think it was wrong along - shogar - 1/25/2000 */ imc-events.c: if ((!callback || p->callback==callback) && p->data==data) imc-events.c: if ((!callback) && p->data==data) imc-events.c: else if ((callback) && p->data==data) imc-events.c: else if (p->callback==callback && data==NULL) imc-events.c: last=&p->next; imc-events.c: if (p->when > newtime) imc-events.c: imc_event_list=p->next; imc-events.c: callback=p->callback; imc-events.c: data=p->data; imc-events.c: imc_now=p->when; imc-events.c: for (p=imc_event_list; p; p=p->next) imc-events.c: if (p->callback==callback && p->data==data) imc-events.c: return p->when - imc_now; imc-events.c: return -1; imc-events.c: each time imc reloads, and then each 24 hours. -- Scion */ imc-events.c: if (!imc_is_router) /* don't wanna do it if we -are- a hub :) */ imc-events.c: imc_logstring("Auto-optimizing hub connections."); imc-events.c:/* need optimize poll as seperate event - shogar */ imc-events.c: if (!imc_is_router) /* don't wanna do it if we -are- a hub :) */ imc-events.c: r->type=IMC_REMINFO_EXPIRED; imc-events.c:/* make it an event, dont announce a simple reboot - shogar - 2/1/2000 */ imc-events.c: len=strlen(c->inbuf)+1; imc-events.c: newsize=c->insize/2; imc-events.c: strcpy(newbuf, c->inbuf); imc-events.c: imc_free(c->inbuf, c->insize); imc-events.c: c->inbuf=newbuf; imc-events.c: c->insize=newsize; imc-events.c: len=strlen(c->outbuf)+1; imc-events.c: newsize=c->outsize/2; imc-events.c: strcpy(newbuf, c->outbuf); imc-events.c: imc_free(c->outbuf, c->outsize); imc-events.c: c->outbuf=newbuf; imc-events.c: c->outsize=newsize; imc-events.c: if (!info->connection) { imc-events.c: if ((info->flags & IMC_RECONNECT) || (info->flags & IMC_HUB) || (info->flags & IMC_MAIN_HUB)) { imc-events.c: if (!imc_connect_to(info->name)) { imc-events.c: /* routers should never do reconnects to muds - shogar */ imc-events.c: /* chance - shogar */ imc-events.c: if(!imc_is_router || (info->flags & IMC_HUB)) { imc-events.c: if(info->connect_attempts < 4) imc-events.c: else { /* Set them to "dead_hub" so they get deleted at next reboot. -- Scion */ imc-events.c: info->flags=imc_flagvalue("dead_hub", imc_connection_flags); imc-events.c: if (c->spamcounter1 > IMC_SPAM1MAX) imc-events.c: if (c->spamtime1 < 0 || ++c->spamtime1 >= IMC_SPAM1TIME) imc-events.c: c->spamtime1=-IMC_SPAM1TIME; imc-events.c: if (c->spamtime1<0) imc-events.c: c->spamtime1++; imc-events.c: c->spamcounter1=0; imc-events.c: if (c->spamtime1>0) imc-events.c: else if (c->spamtime1<0) imc-events.c: if (c->spamcounter2 > IMC_SPAM2MAX) imc-events.c: if (c->spamtime2 < 0 || ++c->spamtime2 >= IMC_SPAM2TIME) imc-events.c: c->spamtime2=-IMC_SPAM2TIME; imc-events.c: if (c->spamtime2<0) imc-events.c: c->spamtime2++; imc-events.c: c->spamcounter2=0; imc-events.c: if (c->spamtime2>0) imc-events.c: else if (c->spamtime2<0) imc-interp.c: * IMC2 - an inter-mud communications protocol imc-interp.c: * imc-interp.c: packet interpretation code imc-interp.c://#include "imc-mercdefs.h" imc-interp.c:#include "minilzo.h" /* compressed who - shogar - 1/24/2000 */ imc-interp.c:/* Work-memory needed for compression. Allocate memory in units imc-interp.c:/* moved here for 2.00 - shogar - 1/25/2000 */ imc-interp.c:int mud_has_hub=0,compressit; /* for ping control - shogar */ imc-interp.c:time_t time_of_last_ping, time_since_last_ping=300; /* ping istat - shogar */ imc-interp.c:time_t time_of_last_ralive, time_since_last_ralive=300; /* ping istat - shogar */ imc-interp.c:time_t time_of_last_salive, time_since_last_salive=300; /* ping istat - shogar */ imc-interp.c: time_since_last_ralive = time(NULL) - time_of_last_ralive; imc-interp.c: p->hide=1; imc-interp.c: p->hide=0; imc-interp.c: /* lower-level code has already updated p->alive */ imc-interp.c: if (strcasecmp(version, p->version)) /* remote version has changed? */ imc-interp.c: imc_strfree(p->version); /* if so, update it */ imc-interp.c: p->version=imc_strdup(version); imc-interp.c: /* Only routers should ping - and even then, only directly connected muds */ imc-interp.c: /* and only if there is an open connection - shogar */ imc-interp.c: imc_getinfo(from)->connection && imc_getinfo(from)->connection->state==IMC_CONNECTED) imc-interp.c: /* or muds acting as a hub to another mud - shogar */ imc-interp.c: if (!imc_is_router && imc_getinfo(from) && imc_getinfo(from)->connection imc-interp.c: && !(imc_getinfo(from)->flags & IMC_HUB) && mud_has_hub) imc-interp.c: /* need a way to monitor the pinging for istat - shogar */ imc-interp.c: time_since_last_ping = time(NULL) - time_of_last_ping; imc-interp.c: /* if only hubs can ping - or a mud acting as a hub ... then ... imc-interp.c: game - shogar */ imc-interp.c:/* good idea before hub switching - shogar imc-interp.c: if(imc_getinfo(from) && !(imc_getinfo(from)->flag) & IMC_NEW)) imc-interp.c: imc_getinfo(from)->flags |= IMC_HUB; imc-interp.c: p->ping = (tv.tv_sec - time_s) * 1000 + (tv.tv_usec - time_u) / 1000; imc-interp.c: imc_traceroute(p->ping, pathto, pathfrom); imc-interp.c: * d->wizi is -1 if the character is invisible to mortals (hidden/invis or imc-interp.c: * d->level is the level of the character (-1=imm, 1=mortal) imc-interp.c: if (imc_findignore(p->from, IMC_NOTRUST)) imc-interp.c: if (imc_findignore(p->from, IMC_TRUST)) imc-interp.c: strcpy(d->name, p->from); imc-interp.c: d->wizi = trust ? imc_getkeyi(&p->data, "wizi", 0) : 0; imc-interp.c: d->level = trust ? imc_getkeyi(&p->data, "level", 0) : 0; imc-interp.c: d->invis = 0; imc-interp.c: imc_initdata(&p->data); imc-interp.c: strcpy(p->from, "*"); imc-interp.c: imc_addkeyi(&p->data, "level", -1); imc-interp.c: strcpy(p->from, d->name); imc-interp.c: if (d->wizi) imc-interp.c: imc_addkeyi(&p->data, "wizi", d->wizi); imc-interp.c: imc_addkeyi(&p->data, "level", d->level); imc-interp.c: bcast=!strcmp(imc_mudof(p->i.to), "*") ? 1 : 0; imc-interp.c: i=imc_find_reminfo(imc_mudof(p->from),0); imc-interp.c: if(i->path) imc-interp.c: imc_strfree(i->path); imc-interp.c: i->path=imc_strdup(p->i.path); imc-interp.c: i->ping=0; imc-interp.c: i->type=0; imc-interp.c: if (!strcasecmp(p->type, "chat") && !imc_isignored(p->from)) imc-interp.c: imc_recv_chat(&d, imc_getkeyi(&p->data, "channel", 0), imc-interp.c: imc_getkey(&p->data, "text", "")); imc-interp.c: else if (!strcasecmp(p->type, "emote") && !imc_isignored(p->from)) imc-interp.c: imc_recv_emote(&d, imc_getkeyi(&p->data, "channel", 0), imc-interp.c: imc_getkey(&p->data, "text", "")); imc-interp.c: else if (!strcasecmp(p->type, "tell")) imc-interp.c: if (imc_isignored(p->from)) imc-interp.c: imc_sendignore(p->from); imc-interp.c: imc_recv_tell(&d, p->to, imc_getkey(&p->data, "text", ""), imc-interp.c: imc_getkeyi(&p->data, "isreply", 0)); imc-interp.c: /* who-reply: receive a compressed who response - shogar - 1/24/2000 */ imc-interp.c: else if (!strcmp(p->type, "wHo-reply")) imc-interp.c: imc_recv_whoreply(p->to, imc-interp.c: imc_getkey(&p->data, "text", ""), imc-interp.c: imc_getkeyi(&p->data, "sequence", -1), imc-interp.c: imc_getkeyi( &p->data, "complen", -1 )); imc-interp.c: /* who-reply: receive a who response */ imc-interp.c: else if (!strcasecmp(p->type, "who-reply")) imc-interp.c: imc_recv_whoreply(p->to, imc_getkey(&p->data, "text", ""), imc-interp.c: imc_getkeyi(&p->data, "sequence", -1), -1); imc-interp.c: /* who: receive a who request from a compression complient client - shogar*/ imc-interp.c: else if (!strcmp(p->type, "wHo")) imc-interp.c: if (imc_isignored(p->from)) imc-interp.c: imc_sendignore(p->from); imc-interp.c: imc_recv_who(&d, imc_getkey(&p->data, "type", "who")); imc-interp.c: else if (!strcasecmp(p->type, "who")) imc-interp.c: if (imc_isignored(p->from)) imc-interp.c: imc_sendignore(p->from); imc-interp.c: imc_recv_who(&d, imc_getkey(&p->data, "type", "who")); imc-interp.c: /* whois-reply: receive a whois response */ imc-interp.c: else if (!strcasecmp(p->type, "whois-reply")) imc-interp.c: imc_recv_whoisreply(p->to, imc_getkey(&p->data, "text", "")); imc-interp.c: else if (!strcasecmp(p->type, "whois")) imc-interp.c: imc_recv_whois(&d, p->to); imc-interp.c: else if (!strcasecmp(p->type, "beep")) imc-interp.c: if (imc_isignored(p->from)) imc-interp.c: imc_sendignore(p->from); imc-interp.c: imc_recv_beep(&d, p->to); imc-interp.c: /* is-alive: receive a keepalive (broadcast) */ imc-interp.c: else if (!strcasecmp(p->type, "is-alive")) imc-interp.c: imc_recv_keepalive(imc_mudof(p->from), imc-interp.c: imc_getkey(&p->data, "versionid", "unknown"), imc-interp.c: imc_getkey(&p->data, "flags", "")); imc-interp.c: else if (!strcasecmp(p->type, "ping")) imc-interp.c: imc_recv_ping(imc_mudof(p->from), imc_getkeyi(&p->data, "time-s", 0), imc-interp.c: imc_getkeyi(&p->data, "time-us", 0), p->i.path); imc-interp.c: /* ping-reply: receive a ping reply */ imc-interp.c: else if (!strcasecmp(p->type, "ping-reply")) imc-interp.c: imc_recv_pingreply(imc_mudof(p->from), imc_getkeyi(&p->data, "time-s", 0), imc-interp.c: imc_getkeyi(&p->data, "time-us", 0), imc-interp.c: imc_getkey(&p->data, "path", NULL), p->i.path); imc-interp.c: else if (!strcasecmp(p->type, "mail")) imc-interp.c: imc_recv_mail(imc_getkey(&p->data, "from", "error@hell"), imc-interp.c: imc_getkey(&p->data, "to", "error@hell"), imc-interp.c: imc_getkey(&p->data, "date", "(IMC error: bad date)"), imc-interp.c: imc_getkey(&p->data, "subject", "no subject"), imc-interp.c: imc_getkey(&p->data, "id", "bad_id"), imc-interp.c: imc_getkey(&p->data, "text", "")); imc-interp.c: /* mail-ok: remote confirmed that they got the mail ok */ imc-interp.c: else if (!strcasecmp(p->type, "mail-ok")) imc-interp.c: imc_recv_mailok(p->from, imc_getkey(&p->data, "id", "bad_id")); imc-interp.c: /* mail-reject: remote rejected our mail, bounce it */ imc-interp.c: else if (!strcasecmp(p->type, "mail-reject")) imc-interp.c: imc_recv_mailrej(p->from, imc_getkey(&p->data, "id", "bad_id"), imc-interp.c: imc_getkey(&p->data, "reason", imc-interp.c: /* handle keepalive requests - shogar */ imc-interp.c: else if (!strcasecmp(p->type, "keepalive-request")) imc-interp.c: imc_logstring("Recieved keepalive request from %s", p->from); imc-interp.c: /* reset next to begining, start notifying for 2.00 - shogar - 1/25/2000 */ imc-interp.c: if(next_refresh) /* watch for streaming is-alives */ imc-interp.c: /* expire closed hubs - shogar */ imc-interp.c: else if (!strcasecmp(p->type, "close-notify")) imc-interp.c: imc_logstring("%s reports %s closed.", p->from, imc-interp.c: imc_getkey(&p->data, "host","unknown")); imc-interp.c: crbs_waffle_pseudos(imc_getkey(&p->data,"host","unknown")); imc-interp.c: r = imc_find_reminfo(imc_getkey(&p->data,"host","unknown"),0); imc-interp.c: r->type = IMC_REMINFO_EXPIRED; imc-interp.c: for(r=imc_reminfo_list;r;r=r->next) imc-interp.c: sprintf(fake,"!%s",imc_getkey(&p->data,"host","___unknown")); imc-interp.c: if(r->name imc-interp.c: && r->path imc-interp.c: && (sf=strstr(r->path,fake)) imc-interp.c: // imc_logstring("Expiring %s",r->path); imc-interp.c: r->type = IMC_REMINFO_EXPIRED; imc-interp.c: imc_send_ping(r->name, tv.tv_sec, tv.tv_usec); imc-interp.c: /* These 4 added by me for the auto-hub-swap -- Scion 1/9/99 */ imc-interp.c: else if (!strcasecmp(p->type, "inforequest")) /* Request connection info from all 1.00a hubs -- Scion */ imc-interp.c: imc_recv_inforequest(p->from); /* Had to use inforequest because 0.10 responds to info-request :) */ imc-interp.c: else if (!strcasecmp(p->type, "info-reply")) /* receive the reply from the inforequest :) -- Scion */ imc-interp.c: imc_recv_info_reply(p->from, imc_getkey(&p->data, "hub", "no"), imc_getkeyi(&p->data, "direct", -1)); imc-interp.c: else if (!strcasecmp(p->type, "switch-reply")) /* hub confirmed that it added a connection to us. -- Scion */ imc-interp.c: imc_autoconnect_reply_accept(p->from, imc-interp.c: imc_getkey(&p->data, "host", "!!!"), imc-interp.c: imc_getkeyi(&p->data, "port", -1), imc-interp.c: imc_getkey(&p->data, "clientpw", "password"), imc-interp.c: imc_getkey(&p->data, "serverpw", "password"), imc-interp.c: imc_getkeyi(&p->data, "rcvstamp", 0), imc-interp.c: imc_getkeyi(&p->data, "noforward", 0), imc-interp.c: imc_getkey(&p->data, "flags", "none"), imc-interp.c: imc_getkey(&p->data, "localname", "!!!"), imc-interp.c: imc_getkey(&p->data, "confirm", "not accepted") imc-interp.c: else if (!strcasecmp(p->type, "imc-switch")) /* hub receives request to add a connection -- Scion */ imc-interp.c: imc_recv_autoconnect(p->from, imc-interp.c: imc_getkey(&p->data, "host", "!!!"), imc-interp.c: imc_getkeyi(&p->data, "port", -1), imc-interp.c: imc_getkey(&p->data, "clientpw", "password"), imc-interp.c: imc_getkey(&p->data, "serverpw", "password"), imc-interp.c: imc_getkeyi(&p->data, "rcvstamp", 0), imc-interp.c: imc_getkeyi(&p->data, "noforward", 0), imc-interp.c: imc_getkey(&p->data, "flags", "none"), imc-interp.c: imc_getkey(&p->data, "localname", "!!!") imc-interp.c: /* call catch-all fn if present */ imc-interp.c: if (bcast || !strcasecmp(p->type, "reject")) imc-interp.c: strcpy(out.to, p->from); imc-interp.c: strcpy(out.from, p->to); imc-interp.c: imc_clonedata(&p->data, &out.data); imc-interp.c: imc_addkey(&out.data, "old-type", p->type); imc-interp.c: this function to use for something entirely different. 1/5/99 -- Scion imc-interp.c: be able to prevent this auto-swap by #defining NO_OPTIMIZE in imc-config.h -- Scion */ imc-interp.c: strcpy(reply.type, "info-unavailable"); imc-interp.c: strcpy(reply.type, "info-reply"); imc-interp.c: /* don't even send a reply if we're not a hub -- Scion */ imc-interp.c: for (i=imc_info_list; i; i=i->next) imc-interp.c: if(i->connection && i->connection->state == IMC_CONNECTED) /* only the live ones - shogar */ imc-interp.c: imc_siteinfo.maxguests - num_direct); imc-interp.c: /* don't send if num_direct exceeds maxguest - shogar */ imc-interp.c: imc_logstring("Sent info-reply to %s.", from); imc-interp.c:/* Take the data from an info-reply packet and process it. We shouldn't get packets from MUDs, only imc-interp.c:from hubs. -- Scion */ imc-interp.c: /* spin infolist check for noswitch flag - shogar */ imc-interp.c: for (i=imc_info_list; i; i=i->next) imc-interp.c: if(i->flags & IMC_NOSWITCH && !strcasecmp(imc_mudof(from),i->name)) imc-interp.c: imc_logstring("Rejecting info-reply(%d) from %s", direct,from); imc-interp.c: imc_logstring("Received info-reply(%d) from %s", direct,from); imc-interp.c: global_directnum=-1; imc-interp.c: if(!time_of_last_salive) /* ping istat monitor - shogar */ imc-interp.c: time_since_last_salive = time(NULL) - time_of_last_salive; imc-interp.c: Added 12/26/98 to cut down on UCMM IMC network traffic -- Scion */ imc-interp.c: for (c=imc_connect_list; c; c=c->next) /* Go through the list of direct connections */ imc-interp.c: if (c->state==IMC_CONNECTED) { imc-interp.c: strcpy(tobuf, c->info->name); imc-interp.c:/* send a who-request to a remote mud */ imc-interp.c: strcpy(out.type, "wHo"); /* compress who - shogar - 1/24/2000 */ imc-interp.c: /* compress who - shogar 1/24/2000 */ imc-interp.c: if( compressit && compressed ) /* compress whos - shogar 1/24/2000 */ imc-interp.c: strcpy(out.type, "wHo-reply"); imc-interp.c: strcpy(out.type, "who-reply"); imc-interp.c: if (sequence!=-1) /* moved here for compress who - shogar - 1/24/2000 */ imc-interp.c: /* compress whos - shogar 1/24/2000 */ imc-interp.c: if (strlen(wr_to) + strlen(text) >= IMC_DATA_LENGTH-500) imc-interp.c: imc_send_whoreply(wr_to, wr_buf, -(wr_sequence+1)); imc-interp.c:/* send a whois-request to a remote mud */ imc-interp.c:/* respond with a whois-reply */ imc-interp.c: strcpy(out.type, "whois-reply"); imc-interp.c: strcpy(out.type, "is-alive"); imc-interp.c:/* removed this , moved to keep_alive check - shogar - 1/25/2000 */ imc-interp.c:/* send a keepalive request to everyone - shogar */ imc-interp.c: time_since_last_salive = time(NULL) - time_of_last_salive; imc-interp.c: strcpy(out.type, "keepalive-request"); imc-interp.c: imc_sncpy(out.to+2, to, IMC_MNAME_LENGTH-2); imc-interp.c: imc_addkeyi(&out.data, "time-s", time_s); imc-interp.c: imc_addkeyi(&out.data, "time-us", time_u); imc-interp.c: strcpy(out.type, "ping-reply"); imc-interp.c: imc_sncpy(out.to+2, to, IMC_MNAME_LENGTH-2); imc-interp.c: imc_addkeyi(&out.data, "time-s", time_s); imc-interp.c: imc_addkeyi(&out.data, "time-us", time_u); imc-interp.c: if(i && i == imc_info_list && i->connection) /* not if primary hub - shogar */ imc-interp.c: /* Send all this info: -- Scion imc-interp.c: strcpy(out.type, "imc-switch"); imc-interp.c: imc_sncpy(out.to+2, to, IMC_MNAME_LENGTH-2); imc-interp.c: imc_addkey(&out.data, "clientpw", i->clientpw); imc-interp.c: imc_addkey(&out.data, "serverpw", i->serverpw); imc-interp.c:/* add the mud to our list if we're a hub, and reply with our info. -- Scion*/ imc-interp.c: /* Receive all this info: -- Scion imc-interp.c: strcpy(out.type, "switch-reply"); imc-interp.c: imc_sncpy(out.to+2, remotename, IMC_MNAME_LENGTH-2); imc-interp.c: if((o=imc_getinfo(remotename))) /* remove old entries - shogar */ imc-interp.c: i->connection=o->connection; imc-interp.c: i->flags=o->flags; imc-interp.c: if (i->connection) i->connection->info=i; imc-interp.c: i->flags = imc_flagvalue("new", imc_connection_flags); /* Hubs don't need specific flags really */ imc-interp.c: i->name = imc_strdup(remotename); imc-interp.c: i->host = imc_strdup(rhost); imc-interp.c: i->port = (unsigned short)rport; imc-interp.c: i->clientpw = imc_strdup(rclientpw); imc-interp.c: i->serverpw = imc_strdup(rserverpw); imc-interp.c: i->rcvstamp = rrcvstamp; imc-interp.c: i->noforward = rnoforward; imc-interp.c: i->connect_attempts = 0; imc-interp.c: in it from the hub, then adds the appropriate connection here. -- Scion */ imc-interp.c: if((o=imc_getinfo(remotename))) /* remove old entries - shogar */ imc-interp.c: i->connection=o->connection; imc-interp.c: i->flags=o->flags; imc-interp.c: if(i->connection) i->connection->info=i; imc-interp.c:// i->flags = imc_flagvalue("hub reconnect new", imc_connection_flags); imc-interp.c: i->flags = imc_flagvalue("hub new", imc_connection_flags); imc-interp.c: i->name = imc_strdup(remotename); imc-interp.c: i->host = imc_strdup(rhost); imc-interp.c: i->port = (unsigned short)rport; imc-interp.c: i->clientpw = imc_strdup(rclientpw); imc-interp.c: i->serverpw = imc_strdup(rserverpw); imc-interp.c: i->rcvstamp = rrcvstamp; imc-interp.c: i->noforward = rnoforward; imc-interp.c: i->connect_attempts = 0; imc-mail.c: * IMC2 - an inter-mud communications protocol imc-mail.c: * imc-mail.c: IMC mailer functions imc-mail.c: for (p=buf; *data && (p-buf < IMC_DATA_LENGTH-1); data++, p++) imc-mail.c: for (p=buf; *data && (p-buf < IMC_DATA_LENGTH-1); data++, p++) imc-mail.c: p->from = NULL; imc-mail.c: p->to = NULL; imc-mail.c: p->subject = NULL; imc-mail.c: p->date = NULL; imc-mail.c: p->text = NULL; imc-mail.c: p->id = NULL; imc-mail.c: p->received = 0; imc-mail.c: p->usage = 0; imc-mail.c: p->next = NULL; imc-mail.c: if (p->usage) imc-mail.c: p, p->usage); imc-mail.c: if (p->from) imc-mail.c: imc_strfree(p->from); imc-mail.c: if (p->to) imc-mail.c: imc_strfree(p->to); imc-mail.c: if (p->id) imc-mail.c: imc_strfree(p->id); imc-mail.c: if (p->text) imc-mail.c: imc_strfree(p->text); imc-mail.c: if (p->subject) imc-mail.c: imc_strfree(p->subject); imc-mail.c: if (p->date) imc-mail.c: imc_strfree(p->date); imc-mail.c: fprintf(out, "From %s\n", escape(p->from)); imc-mail.c: fprintf(out, "To %s\n", escape(p->to)); imc-mail.c: fprintf(out, "Subject %s\n", escape(p->subject)); imc-mail.c: fprintf(out, "Date %s\n", escape(p->date)); imc-mail.c: fprintf(out, "Text %s\n", escape(p->text)); imc-mail.c: fprintf(out, "ID %s\n", escape(p->id)); imc-mail.c: fprintf(out, "Received %ld\n", p->received); imc-mail.c: p->from=imc_strdup(unescape(temp)); imc-mail.c: p->to=imc_strdup(unescape(temp)); imc-mail.c: p->subject=imc_strdup(unescape(temp)); imc-mail.c: p->date=imc_strdup(unescape(temp)); imc-mail.c: p->text=imc_strdup(unescape(temp)); imc-mail.c: p->id=imc_strdup(unescape(temp)); imc-mail.c: sscanf(line, "Received %ld", &p->received); imc-mail.c: p->usage=0; imc-mail.c: * maillist - a list of imc_mail entries imc-mail.c: imc_ml_head->to = imc_strdup(""); imc-mail.c: imc_ml_head->from = imc_strdup(""); imc-mail.c: imc_ml_head->date = imc_strdup(""); imc-mail.c: imc_ml_head->subject = imc_strdup(""); imc-mail.c: imc_ml_head->text = imc_strdup(""); imc-mail.c: imc_ml_head->id = imc_strdup(""); imc-mail.c: p_next=p->next; imc-mail.c: p->usage=0; /* suppress warnings */ imc-mail.c: p->next=imc_ml_head->next; imc-mail.c: imc_ml_head->next=p; imc-mail.c: for (p=imc_ml_head->next; p; p=p->next) imc-mail.c: if (!strcasecmp(p->id, id)) imc-mail.c: for (last=imc_ml_head, p=last->next; p && p != node; p=p->next) imc-mail.c: last->next = p->next; imc-mail.c: strcat(name, "mail-list"); imc-mail.c: for (p=imc_ml_head->next; p; p=p->next) imc-mail.c: strcat(name, "mail-list"); imc-mail.c: * qnode - an entry in the 'mail to send' queue, referencing a particular imc-mail.c: p->data = NULL; imc-mail.c: p->next = NULL; imc-mail.c: p->tomud = NULL; imc-mail.c: if (q->tomud) imc-mail.c: imc_strfree(q->tomud); imc-mail.c: if (q->data && !--q->data->usage) imc-mail.c: delete_ml(q->data); imc-mail.c: fprintf(out, "%s %s\n", q->data->id, q->tomud); imc-mail.c: m->usage++; imc-mail.c: p->data = m; imc-mail.c: p->tomud = imc_strdup(temp2); imc-mail.c: * mailqueue - a list of active qnodes imc-mail.c: imc_mq_head->data = NULL; imc-mail.c: imc_mq_head->next = NULL; imc-mail.c: p_next=p->next; imc-mail.c: imc_mq_tail->next=p; imc-mail.c: while (p->next) imc-mail.c: p=p->next; imc-mail.c: p=imc_mq_head->next; imc-mail.c: imc_mq_head->next=p->next; imc-mail.c: p->next=NULL; /* Just In Case */ imc-mail.c: for (p=imc_mq_head->next; p; p=p->next) imc-mail.c: if (!strcmp(id, p->data->id) && !strcasecmp(tomud, p->tomud)) imc-mail.c: for (last=imc_mq_head, p=last->next; p; last=p, p=p->next) imc-mail.c: if (!strcmp(id, p->data->id) && !strcasecmp(tomud, p->tomud)) imc-mail.c: last->next=p->next; imc-mail.c: strcat(name, "mail-queue"); imc-mail.c: for (p=imc_mq_head->next; p; p=p->next) imc-mail.c: strcat(name, "mail-queue"); imc-mail.c: * mailid - a single mail ID that has been received imc-mail.c: p->id = NULL; imc-mail.c: p->received = 0; imc-mail.c: p->next = NULL; imc-mail.c: if (p->id) imc-mail.c: imc_strfree(p->id); imc-mail.c: sprintf(buffer, "%d-%ld@%s", rand(), imc_sequencenumber++, imc_name); imc-mail.c: fprintf(out, "%s %ld\n", p->id, p->received); imc-mail.c: p->id = imc_strdup(temp); imc-mail.c: p->received = r; imc-mail.c: * idlist - a list of mail IDs received over the last 24 hours imc-mail.c: p_next=p->next; imc-mail.c: p->next=imc_idlist->next; imc-mail.c: imc_idlist->next=p; imc-mail.c: for (p=imc_idlist->next; p; p=p->next) imc-mail.c: if (!strcmp(p->id, id)) imc-mail.c: for (last=imc_idlist, p=last->next; p; p=p->next) imc-mail.c: if (p->received < at) /* delete this entry */ imc-mail.c: last->next=p->next; imc-mail.c: strcat(name, "mail-ids"); imc-mail.c: for (p=imc_idlist->next; p; p=p->next) imc-mail.c: strcat(name, "mail-ids"); imc-mail.c: buf[strlen(buf)-1]=0; imc-mail.c: item->date, imc-mail.c: item->to, imc-mail.c: item->subject, imc-mail.c: imc_mail_arrived("Mail-daemon", imc_nameof(item->from), datestring(), imc-mail.c: sprintf(temp, "Unable to send to %s after 12 hours, giving up", p->tomud); imc-mail.c: bounce(p->data, imc_name, temp); imc-mail.c: delete_mq(p->data->id, p->tomud); imc-mail.c: sprintf(out.to, "Mail-daemon@%s", p->tomud); imc-mail.c: strcpy(out.from, "Mail-daemon"); imc-mail.c: imc_addkey(&out.data, "to", p->data->to); imc-mail.c: imc_addkey(&out.data, "from", p->data->from); imc-mail.c: imc_addkey(&out.data, "subject", p->data->subject); imc-mail.c: imc_addkey(&out.data, "date", p->data->date); imc-mail.c: imc_addkey(&out.data, "text", p->data->text); imc-mail.c: imc_addkey(&out.data, "id", p->data->id); imc-mail.c:/* imc_recv_mailok: a mail-ok packet was received */ imc-mail.c:/* imc_recv_mailrej: a mail-reject packet was received */ imc-mail.c: bounce(p->data, from, reason); imc-mail.c: if (arg[0] && arg[strlen(arg) - 1] == ' ') imc-mail.c: arg[strlen(arg) - 1] = 0; imc-mail.c: sprintf(out.to, "Mail-daemon@%s", imc_mudof(from)); imc-mail.c: strcpy(out.from, "Mail-daemon"); imc-mail.c: strcpy(out.type, "mail-ok"); imc-mail.c: mid->received = imc_now; imc-mail.c: strcpy(out.type, "mail-reject"); imc-mail.c: strcpy(out.type, "mail-ok"); imc-mail.c: mid->id=imc_strdup(id); imc-mail.c: mid->received=imc_now; imc-mail.c: strcpy(out.type, "mail-reject"); imc-mail.c: m->to = imc_strdup(temp); imc-mail.c: m->from = imc_strdup(temp); imc-mail.c: m->date = imc_strdup(date); imc-mail.c: m->subject = imc_strdup(subject); imc-mail.c: m->id = imc_strdup(generate_mailid()); imc-mail.c: m->text = imc_strdup(text); imc-mail.c: m->received = imc_now; imc-mail.c: q=NULL; /* catch the @* case - not yet implemented */ imc-mail.c: for (q=qroot; q; q=q->next) imc-mail.c: if (!strcasecmp(q->tomud, mud)) imc-mail.c: { /* add to the top of our mini-queue */ imc-mail.c: q->tomud=imc_strdup(mud); imc-mail.c: q->data=m; imc-mail.c: q->next=qroot; imc-mail.c: m->usage++; imc-mail.c: /* add mail to mail list, add mini-queue to mail queue */ imc-mail.c: sprintf(buf, "%-15s %-45s %-10s %s\n\r", "From", "To", "Via", "Time"); imc-mail.c: for (p=imc_mq_head->next; p && left > 160; p = p->next) imc-mail.c: sprintf(temp, "%-15.15s %-45.45s %-10.10s --:--\n\r", imc-mail.c: p->data->from, imc-mail.c: p->data->to, imc-mail.c: p->tomud); imc-mail.c: sprintf(temp, "%-15.15s %-45.45s %-10.10s %2d:%02d\n\r", imc-mail.c: p->data->from, imc-mail.c: p->data->to, imc-mail.c: p->tomud, imc-mail.c: left -= strlen(temp); imc-mail.c: for (count=0; p; p=p->next, count++) imc-mercbase.c: * IMC2 - an inter-mud communications protocol imc-mercbase.c: * imc-mercbase.c: integrated interface code for Merc-derived codebases. imc-mercbase.c:#include "imc-mercdefs.h" imc-mercbase.c:#include "minilzo.h" /* compressed who - shogar - 1/24/2000 */ imc-mercbase.c:#include "imc-mercbase.h" imc-mercbase.c:extern int compressit; /* compress who - shogar - 1/24/2000 */ imc-mercbase.c:void ev_iced_refresh(void *dummy) /*dummy catch cause muds has no iced.c-shogar */ imc-mercbase.c: for (infop=imc_info_list; infop; infop=infop->next) imc-mercbase.c: for (cp=imc_connect_list; cp; cp=cp->next) imc-mercbase.c: markfn(cp->inbuf); imc-mercbase.c: markfn(cp->outbuf); imc-mercbase.c: for (r=imc_reminfo_list; r; r=r->next) imc-mercbase.c: for (mailp=imc_ml_head; mailp; mailp=mailp->next) imc-mercbase.c: for (queuep=imc_mq_head; queuep; queuep=queuep->next) imc-mercbase.c: for (idp=imc_idlist; idp; idp=idp->next) imc-mercbase.c: for (ep=imc_event_list; ep; ep=ep->next) imc-mercbase.c: for (ep=imc_event_free; ep; ep=ep->next) imc-mercbase.c: for (infop=imc_info_list; infop; infop=infop->next) imc-mercbase.c: markfn(infop->name); imc-mercbase.c: markfn(infop->host); imc-mercbase.c: markfn(infop->serverpw); imc-mercbase.c: markfn(infop->clientpw); imc-mercbase.c: for (r=imc_reminfo_list; r; r=r->next) imc-mercbase.c: markfn(r->name); imc-mercbase.c: markfn(r->version); imc-mercbase.c: markfn(r->route); imc-mercbase.c: markfn(r->path); imc-mercbase.c: for (ign=imc_ignore_list; ign; ign=ign->next) imc-mercbase.c: markfn(ign->name); imc-mercbase.c: for (mailp=imc_ml_head; mailp; mailp=mailp->next) imc-mercbase.c: markfn(mailp->from); imc-mercbase.c: markfn(mailp->to); imc-mercbase.c: markfn(mailp->date); imc-mercbase.c: markfn(mailp->text); imc-mercbase.c: markfn(mailp->subject); imc-mercbase.c: markfn(mailp->id); imc-mercbase.c: for (queuep=imc_mq_head; queuep; queuep=queuep->next) imc-mercbase.c: markfn(queuep->tomud); imc-mercbase.c: for (idp=imc_idlist; idp; idp=idp->next) imc-mercbase.c: markfn(idp->id); imc-mercbase.c: * this may seem ugly, but it makes things expandable - and it will probably imc-mercbase.c:/* maps IMC standard -> mud local color codes imc-mercbase.c:/* Modify the defines in imc-color.h. Will be replaced eventually. -- Kratas */ imc-mercbase.c: /* built-in SMAUG color */ imc-mercbase.c: { "~~", "&-" }, /* note ordering here.. */ imc-mercbase.c: /* background colors - no support for these in IMC */ imc-mercbase.c: /* built-in Ack! color */ imc-mercbase.c: { "~D", "@@k" }, /* black -> grey */ imc-mercbase.c:/* convert from imc color -> mud color */ imc-mercbase.c:/* convert from mud color -> imc color */ imc-mercbase.c: 76, -- channel number to use, change this! imc-mercbase.c: "LocalChannel", -- the channel name imc-mercbase.c: "%s localchannels '%s'\n\r", -- format for a normal message imc-mercbase.c: "[LocalChannel] %s %s\n\r", -- format for an emote imc-mercbase.c: IMC_LOCALCHANNEL, -- flag in imc_deaf, etc imc-mercbase.c: LEVEL_IMMORTAL, -- min. level for channel imc-mercbase.c: "mud1 mud2 mud3" -- muds to distribute to (include your own) imc-mercbase.c: return -1; imc-mercbase.c: d.level=-1; imc-mercbase.c: !viewed->invis && imc-mercbase.c: (viewer->level < 0 || imc-mercbase.c: viewed->wizi >= 0); imc-mercbase.c: mud=imc_mudof(vict->name); imc-mercbase.c: name=imc_nameof(vict->name); imc-mercbase.c: : (chdata->wizi ? "A Mystical Being" : "someone"); imc-mercbase.c: return vict->name; imc-mercbase.c: (imc_getdata(ch))->wizi ? "A Mystical Being" : "someone", mud); imc-mercbase.c: if (IS_SET(ch->pcdata->pflags, PFLAG_AFK)) imc-mercbase.c: if (IS_SET(ch->comm, COMM_AFK)) imc-mercbase.c: if (IS_SET(ch->comm, COMM_DEAF)) imc-mercbase.c: if (IS_SET(ch->pcdata->pflags, PFLAG_AFK)) imc-mercbase.c: if (IS_SET(ch->comm, COMM_AFK)) imc-mercbase.c: if (IS_SET(ch->comm, COMM_DEAF)) imc-mercbase.c: /* changed "who" to "wHo" compressed who - shogar - 1/24/2000 */ imc-mercbase.c: if (IS_SET(ch->comm, COMM_DEAF)) imc-mercbase.c: for (i=imc_reminfo_list; i; i=i->next) imc-mercbase.c: if(i->hide) imc-mercbase.c: sprintf(buf + strlen(buf),"%s:",i->name); imc-mercbase.c: if(i->path) imc-mercbase.c: sprintf(buf + strlen(buf),"%s\n\r",i->path); imc-mercbase.c: if (get_trust(ch)>=MAX_LEVEL-1) imc-mercbase.c: { // Temporary color_itom here... Eventually will get abetter way.--Kratas imc-mercbase.c: " imc hubswitch (toggles hubswitching - for firewalls)\n\r" imc-mercbase.c: "~!-------------------\n\r"); imc-mercbase.c: "~c%-10s ~!: you are denied from this channel.\n\r", imc-mercbase.c: "~c%-10s ~!: %s~!\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "~c%-10s ~!: %s~!\n\r", "RTell", imc-mercbase.c: sprintf(buf+strlen(buf), "~c%-10s ~!: %s~!\n\r", "RBeep", imc-mercbase.c: if (arg[0]=='-') imc-mercbase.c: " rchannels -chan turn off a channel\n\r" imc-mercbase.c: IMC_DEAF_FLAGS(ch)=-1L; imc-mercbase.c: imc_to_char("Syntax: rchanset <char> - check flag settings\n\r" imc-mercbase.c: " rchanset <char> +<channel> - set allow flag\n\r" imc-mercbase.c: " rchanset <char> -<channel> - set deny flag\n\r" imc-mercbase.c: " rchanset <char> =<channel> - reset allow/deny\n\r", imc-mercbase.c: "------------------------------\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "%-10s : allow flag set.\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "%-10s : deny flag set.\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "%-10s : allow flag set.\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "%-10s : deny flag set.\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "%-10s : allow flag set.\n\r", imc-mercbase.c: sprintf(buf+strlen(buf), "%-10s : deny flag set.\n\r", imc-mercbase.c: if (argument[0]=='-') imc-mercbase.c: imc_to_char("Channel name must be preceeded by +, -, or =.\n\r", ch); imc-mercbase.c: for (d=descriptor_list; d; d=d->next) imc-mercbase.c: if (d->connected==CON_PLAYING && imc-mercbase.c: (victim=d->original ? d->original : d->character)!=NULL && imc-mercbase.c: * Be lazy - only remember the last traceroute imc-mercbase.c: strcpy(pinger, ch->player.name); imc-mercbase.c: strcpy(pinger, ch->name ); imc-mercbase.c: for (d=descriptor_list; d; d=d->next) imc-mercbase.c: if (d->connected == CON_PLAYING && imc-mercbase.c: (ch =d->original ? d->original : d->character)!=NULL && imc-mercbase.c: !str_cmp(ch->player.name, pinger)) imc-mercbase.c: !str_cmp(ch->name, pinger)) imc-mercbase.c: "%s: %dms round-trip-time.\n\r" imc-mercbase.c: --length; imc-mercbase.c: amount = 78-imc_strlen_color( string ); /* Determine amount to put in imc-mercbase.c:/* new imc_whoreply_* support, see imc-interp.c */ imc-mercbase.c:/* expanded for minimal mud-specific code. I really don't want to replicate imc-mercbase.c: * stock in-game who displays here, since it's one of the most commonly imc-mercbase.c: imc_whoreply_start(from->name); imc-mercbase.c: for (d = descriptor_list; d; d = d->next) imc-mercbase.c: victim = ( d->original ) ? d->original : d->character; imc-mercbase.c: if (d->connected != CON_PLAYING || !imc_visible(from, imc_getdata(victim)) || imc-mercbase.c: (victim->adept_level>0)) ? victim->pcdata->who_name imc-mercbase.c: imc_send_whoreply(from->name, imc-mercbase.c: "Sorry, no information is available of that type.\n\r", -1); imc-mercbase.c: sprintf( buf, "%s request from %s.\n\r", arg, from->name ); imc-mercbase.c: "~!Site Information --\n\r" imc-mercbase.c: "IMC Information --\n\r" imc-mercbase.c: imc_send_whoreply(from->name, imc_getstats(), -1); imc-mercbase.c: "~chelp ~W- ~!this list\n\r" imc-mercbase.c: "~cwho ~W- ~!who listing\n\r" imc-mercbase.c: "~cinfo ~W- ~!mud information\n\r" imc-mercbase.c: "~clist ~W- ~!active IMC connections\n\r" imc-mercbase.c: "~cdirect ~W- ~!direct IMC connections\n\r" imc-mercbase.c: "~cconfig ~W- ~!local IMC configuration\n\r" imc-mercbase.c: "~cistats ~W- ~!network traffic statistics\n\r" imc-mercbase.c: /* "~cfinger xxx ~W- ~!finger player xxx\n\r" */ imc-mercbase.c: imc_send_whoreply(from->name, color_mtoi(color_itom(output)), -1); imc-mercbase.c: /* compressed who - shogar - 1/24/2000 */ imc-mercbase.c: * compressed who - shogar - 1/24/2000 imc-mercbase.c: * Moved to out herebecause pointless to decompress all the time-- Kratas imc-mercbase.c: for (d=descriptor_list; d; d=d->next) imc-mercbase.c: if (d->connected==CON_PLAYING && imc-mercbase.c: (victim=d->original ? d->original : d->character)!=NULL && imc-mercbase.c: if( compressit && compressed ) /* compressed who - shogar - 1/24/2000 */ imc-mercbase.c: for (d=descriptor_list; d; d = d->next) imc-mercbase.c: if (d->connected==CON_PLAYING && imc-mercbase.c: (victim = d->original ? d->original : d->character)!=NULL && imc-mercbase.c: imc_send_whoisreply(from->name, buf); imc-mercbase.c: sprintf( buf1, "RWHOIS by %s for %s", from->name, to ); imc-mercbase.c: for (d=descriptor_list; d; d=d->next) imc-mercbase.c: if (d->connected==CON_PLAYING && imc-mercbase.c: (victim=d->original ? d->original : d->character)!=NULL && imc-mercbase.c: imc_recv_chat_command(from->name, to, argument, isreply); imc-mercbase.c: level = command->level; imc-mercbase.c: for (d=descriptor_list; d; d=d->next) imc-mercbase.c: if( d->connected == CON_PLAYING && imc-mercbase.c: ( vch = d->original ? d->original : d->character) != NULL && imc-mercbase.c: if( vch->level < level ) imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: if( vch->level < level ) imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: IS_SET(victim->comm, COMM_DEAF) || imc-mercbase.c: IS_SET(victim->pcdata->pflags, PFLAG_AFK) || imc-mercbase.c: if (str_cmp((char *)imc_nameof(from->name), "*")) imc-mercbase.c: if (str_cmp(imc_nameof(from->name), "*")) imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: if (IS_SET(victim->comm, COMM_AFK) && imc-mercbase.c: str_cmp(imc_nameof(from->name), "*")) imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: else if (!victim->desc && imc-mercbase.c: str_cmp(imc_nameof(from->name), "*")) imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: if (str_cmp((char *)imc_nameof(from->name), "*")) /* not a system message */ imc-mercbase.c: if (str_cmp(imc_nameof(from->name), "*")) /* not a system message */ imc-mercbase.c: IMC_RREPLY(victim)=imc_strdup(from->name); imc-mercbase.c: if (IS_SET(victim->comm, COMM_AFK) || !victim->desc) imc-mercbase.c: add_buf(victim->pcdata->buffer, buf); imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: for (d=descriptor_list; d; d=d->next) imc-mercbase.c: if (d->connected==CON_PLAYING && imc-mercbase.c: (vch=d->original ? d->original : d->character)!=NULL && imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c: sprintf(buf, color_itom(RBEEP_FORMAT_2), from->name); imc-mercbase.c: imc_send_tell(NULL, from->name, buf, 1); imc-mercbase.c:/* Since there are half-a-dozen different ways that people do this, I'm imc-mercbase.c:#define ERWIN /* -- to use the code for Erwin's boards */ imc-mercbase.c: for (board = first_board; board; board = board->next) imc-mercbase.c: if (board->board_obj == sysdata.imc_mail_vnum) imc-mercbase.c: /* yeesh, why doesn't anyone maintain 'const'-ness any more? */ imc-mercbase.c: if ( board->num_posts >= board->max_posts ) imc-mercbase.c: pnote->new = STRALLOC(buf); \ imc-mercbase.c: pnote->voting = 0; imc-mercbase.c: pnote->yesvotes = str_dup(""); imc-mercbase.c: pnote->novotes = str_dup(""); imc-mercbase.c: pnote->abstentions = str_dup(""); imc-mercbase.c: LINK(pnote, board->first_note, board->last_note, next, prev); imc-mercbase.c: board->num_posts++; imc-mercbase.c: * in imc-mercbase.h to suit your mud! imc-mercbase.c:#error You must #define a value for IMC_BOARD_VNUM in imc-mercbase.h! imc-mercbase.c:#error You must #define a value for IMC_BOARD_VNUM in imc-mercbase.h! imc-mercbase.c: for (board=first_board; board != NULL; board=board->next) imc-mercbase.c: if (board->vnum==vnum) imc-mercbase.c: for (pObj=obj_index_hash[i]; pObj; pObj=pObj->next) imc-mercbase.c: if (pObj->item_type==ITEM_BOARD && pObj->value[3]==vnum) imc-mercbase.c: msg->datetime=time(NULL); imc-mercbase.c: msg->title=str_dup(buf); imc-mercbase.c: msg->author=str_dup(from); imc-mercbase.c: msg->board=board; imc-mercbase.c: msg->message=str_dup(color_itom(text)); imc-mercbase.c: LINK(msg, board->first_message, board->last_message, next, prev); imc-mercbase.c: /* yeesh, why doesn't anyone maintain 'const'-ness any more? */ imc-mercbase.c: pnote->type=NOTE_NOTE; imc-mercbase.c: pnote->sender=str_dup(from); imc-mercbase.c: pnote->to_list=str_dup(to); imc-mercbase.c: pnote->date=str_dup(date); imc-mercbase.c: pnote->subject=str_dup(subject); imc-mercbase.c: pnote->text=str_dup(color_itom(text)); imc-mercbase.c: pnote->date_stamp=current_time; imc-mercbase.c: pnote->next=NULL; imc-mercbase.c: smash_tilde(pnote->sender); imc-mercbase.c: smash_tilde(pnote->to_list); imc-mercbase.c: smash_tilde(pnote->date); imc-mercbase.c: smash_tilde(pnote->subject); imc-mercbase.c: smash_tilde(pnote->text); imc-mercbase.c: for (prev_note = note_list; prev_note->next; prev_note = prev_note->next) imc-mercbase.c: prev_note->next = pnote; imc-mercbase.c: fprintf (fp, "Sender %s~\n", pnote->sender); imc-mercbase.c: fprintf (fp, "Date %s~\n", pnote->date); imc-mercbase.c: fprintf (fp, "Stamp %ld\n", (unsigned long) pnote->date_stamp); imc-mercbase.c: fprintf (fp, "To %s~\n", pnote->to_list); imc-mercbase.c: fprintf (fp, "Subject %s~\n", pnote->subject); imc-mercbase.c: fprintf (fp, "Text\n%s~\n\n", pnote->text); imc-mercbase.c: * If you are using my code (ftp://pip.dknet.dk/pub/pip1773/board-2.tgz) imc-mercbase.c: * there is another imc_mail_arrived() below - Erwin imc-mercbase.c: /* yeesh, why doesn't anyone maintain 'const'-ness any more? */ imc-mercbase.c: /* yeesh, why doesn't anyone maintain 'const'-ness any more? */ imc-mercbase.c: "-= IMC Header =-\n\r" imc-mercbase.c: CircleMUDs. -- Scion */ imc-mercbase.c: /* ick, wiznet is a bit broken wrt. passing non-objects to act.. imc-mercbase.c: sprintf(buf, "%s %s %-.130s", imc_getconnectname(c), dir, string); imc-util.c: * IMC2 - an inter-mud communications protocol imc-util.c: * imc-util.c: misc utility functions for IMC imc-util.c: * - general string manipulation functions imc-util.c: * - flag and state lookup functions imc-util.c: * - error logging imc-util.c: * - imc_reminfo creation/lookup/deletion imc-util.c: * - imc_info lookup imc-util.c: * - connection naming imc-util.c: * - reconnect setup imc-util.c: * - static buffer allocation imc-util.c: * Static buffer allocation - greatly reduces IMC's memory footprint imc-util.c: if (soffset >= ssize-len) imc-util.c: offset=buf-sspace; imc-util.c: if (p->key[i]) imc-util.c: n->key[i]=imc_strdup(p->key[i]); imc-util.c: n->key[i]=NULL; imc-util.c: if (p->value[i]) imc-util.c: n->value[i]=imc_strdup(p->value[i]); imc-util.c: n->value[i]=NULL; imc-util.c: if (p->key[i] && !strcasecmp(p->key[i], key)) imc-util.c: return p->value[i]; imc-util.c: if (p->key[i] && !strcasecmp(p->key[i], key)) imc-util.c: return atoi(p->value[i]); imc-util.c: if (p->key[i] && !strcasecmp(key, p->key[i])) imc-util.c: imc_strfree(p->key[i]); imc-util.c: imc_strfree(p->value[i]); imc-util.c: p->key[i] = NULL; imc-util.c: p->value[i] = NULL; imc-util.c: if (!p->key[i]) imc-util.c: p->key[i] = imc_strdup(key); imc-util.c: p->value[i] = imc_strdup(value); imc-util.c: p->key[i] = NULL; imc-util.c: p->value[i] = NULL; imc-util.c: if (p->key[i]) imc-util.c: imc_strfree(p->key[i]); imc-util.c: if (p->value[i]) imc-util.c: imc_strfree(p->value[i]); imc-util.c: vsnprintf(buf, IMC_DATA_LENGTH - 1, format, ap); imc-util.c: vsnprintf(imc_lasterror, IMC_DATA_LENGTH - 1, format, ap); imc-util.c: vsnprintf(imc_lasterror, IMC_DATA_LENGTH - 1, format, ap); imc-util.c: vsnprintf(imc_lasterror, IMC_DATA_LENGTH - 1, format, ap); imc-util.c:/* copy src->dest, max count, null-terminate */ imc-util.c: strncpy(dest, src, count-1); imc-util.c: dest[count-1] = 0; imc-util.c: while (*fullname && *fullname != '@' && count < IMC_PNAME_LENGTH-1) imc-util.c: where=path + strlen(path)-1; imc-util.c: where--; imc-util.c: while (*argument && !isspace(*argument) && len < length-1) imc-util.c: buf[strlen(buf)-1] = 0; imc-util.c: return -1; imc-util.c: for (p = imc_reminfo_list; p; p = p->next) imc-util.c:// if (p->type == IMC_REMINFO_EXPIRED && !type) imc-util.c: if (!strcasecmp(name, p->name)) imc-util.c: pnxt=p->next; imc-util.c: if (strcasecmp(p->name,pnxt->name)> 0) imc-util.c: ptmp=pnxt->next; imc-util.c: pnxt->next=p; imc-util.c: p->next=ptmp; imc-util.c: plst->next=pnxt; imc-util.c: ptmp=pnxt->next; imc-util.c: pnxt->next=p; imc-util.c: p->next=ptmp; imc-util.c: p->name = NULL; imc-util.c: p->version = NULL; imc-util.c: p->route = NULL; imc-util.c: p->path = NULL; imc-util.c: p->alive = 0; imc-util.c: p->ping = 0; imc-util.c: p->top_sequence = 0; imc-util.c: p->next = imc_reminfo_list; imc-util.c: p->type = IMC_REMINFO_NORMAL; imc-util.c: imc_reminfo_list = p->next; imc-util.c: for (last=imc_reminfo_list; last && last->next != p; last=last->next) imc-util.c: last->next=p->next; imc-util.c: imc_strfree(p->name); imc-util.c: imc_strfree(p->version); imc-util.c: imc_strfree(p->route); imc-util.c: for (p=imc_info_list; p; p=p->next) imc-util.c: if (!strcasecmp(mud, p->name)) imc-util.c: if (c->info) imc-util.c: n=c->info->name; imc-util.c: sprintf(buf, "%s[%d]", n, c->desc); imc-util.c: temp=i->timer_duration + (rand()%21) - 20; imc-util.c: /* routers should never do reconnects to muds - shogar */ imc-util.c: if(!imc_is_router || (i->flags & IMC_HUB)) imc-util.c: if(i->connect_attempts < 3) imc-util.c: i->timer_duration*=2; imc-util.c: if (i->timer_duration > IMC_MAX_RECONNECT_TIME) imc-util.c: i->timer_duration = IMC_MAX_RECONNECT_TIME; imc-util.c: i->connect_attempts += 1; /* count the attempts - shogar */ imc-util.c: /* Generate random passwords for the auto-reconnect feature -- Scion */ imc-util.c: temp=(rand()%(strlen(letters)-1)+1); imc-util.c: if (temp<0 || temp>strlen(letters)-1) imc-version.c: * IMC2 - an inter-mud communications protocol imc-version.c: * imc-version.c: packet generation/interpretation for various protocol imc-version.c:/* escape2: escape " -> \", \ -> \\, CR -> \r, LF -> \n */ imc-version.c: for (p=buf; *data && (p-buf < IMC_DATA_LENGTH-1); data++, p++) imc-version.c:/* printkeys: print key-value pairs, escaping values */ imc-version.c: if (!data->key[i]) imc-version.c: imc_sncpy(buf+len, data->key[i], IMC_DATA_LENGTH-len-1); imc-version.c: if (!strchr(data->value[i], ' ')) imc-version.c: imc_sncpy(temp, escape2(data->value[i]), IMC_DATA_LENGTH-1); imc-version.c: imc_sncpy(temp+1, escape2(data->value[i]), IMC_DATA_LENGTH-3); imc-version.c: imc_sncpy(buf+len, temp, IMC_DATA_LENGTH-len); imc-version.c: while (*p1 && *p1 != '=' && p2-k < IMC_DATA_LENGTH-1) imc-version.c: p2-v < IMC_DATA_LENGTH+1) imc-version.c: if (!p->type[0] || !p->i.from[0] || !p->i.to[0]) imc-version.c: imc_logerror("type: %s from: %s to: %s",p->type,p->i.from,p->i.to); imc-version.c: imc_logerror("path: %s data:",p->i.path,printkeys(&p->data)); imc-version.c: if (!p->i.path[0]) imc-version.c: sprintf(newpath, "%s!%s", p->i.path, imc_name); imc-version.c: p->i.from, p->i.sequence, newpath, p->type, p->i.to, imc-version.c: printkeys(&p->data)); imc.c: * IMC2 - an inter-mud communications protocol imc.c:/* if freeBSD , use flock instead of lockf - shogar */ imc.c:#include "minilzo.h" /* compressed who - shogar - 1/24/2000 */ imc.c:int imc_lock_file=-1; imc.c:int global_directnum=-1; imc.c: { "hub", IMC_HUB }, /* SPAM fix - shogar && currently used hub (unless main hub.. confused yet?) ;) - Scion */ imc.c: { "main_hub", IMC_MAIN_HUB }, /* main hub, same as hub, but first to try - Scion */ imc.c: { "old_hub", IMC_OLD_HUB }, /* backup hub just in case - Scion */ imc.c: { "dead_hub", IMC_DEAD_HUB }, /* defunct hub, 3 connection attempts - Scion */ imc.c: { "new", IMC_NEW_HUB }, /* mark new hubs so dont save - shogar */ imc.c: { "noswitch", IMC_NOSWITCH }, /* might be reasons to never switch to them - shogar */ imc.c: { "inactive - not initialized", IA_NONE }, imc.c: { "inactive - config loaded, local name not set", IA_CONFIG1 }, imc.c: { "inactive - config loaded, local name set", IA_CONFIG2 }, imc.c: { "active - not accepting connections", IA_UP }, imc.c: { "active - accepting connections", IA_LISTENING }, imc.c: c->state = IMC_CLOSED; imc.c: c->desc = -1; imc.c: c->insize = IMC_MINBUF; imc.c: c->inbuf = imc_malloc(c->insize); imc.c: c->outsize = IMC_MINBUF; imc.c: c->outbuf = imc_malloc(c->outsize); imc.c: c->inbuf[0] = c->outbuf[0] = 0; imc.c: c->info = NULL; imc.c: c->spamcounter1=0; imc.c: c->spamcounter2=0; imc.c: c->spamtime1=0; imc.c: c->spamtime2=0; imc.c: c->newoutput=0; imc.c: c->next=imc_connect_list; imc.c: * c->state==IMC_CLOSED imc.c: if (c->state!=IMC_CLOSED) imc.c: imc_logerror("imc_extract_connect: non-closed connection"); imc.c: imc_free(c->inbuf, c->insize); imc.c: imc_free(c->outbuf, c->outsize); imc.c: imc_connect_list=c->next; imc.c: for (c_find=imc_connect_list; c_find && c_find->next!=c; imc.c: c_find=c_find->next) imc.c: c_find->next=c->next; imc.c: p->name = imc_strdup(sender); imc.c: p->ping = 0; imc.c: p->alive = imc_now; imc.c: p->route = imc_strdup(last); imc.c: p->version = imc_strdup("unknown"); imc.c: p->type = IMC_REMINFO_NORMAL; imc.c: if (strcasecmp(last, p->route)) imc.c: imc_strfree(p->route); imc.c: p->route=imc_strdup(last); imc.c: p->alive=imc_now; imc.c: p->type = IMC_REMINFO_NORMAL; imc.c: !strcmp(tempp + strlen(tempp) - strlen(buf), buf)) imc.c: c->state = IMC_WAIT1; imc.c: c->desc = d; imc.c:/* notify everyone of the closure - shogar */ imc.c: strcpy(out.type, "close-notify"); imc.c:/* log and announce if closed via event - shogar 2/26/2000 */ imc.c: if (c->info) /* if our switched hub, get a new one right away - shogar */ imc.c: if (!imc_is_router && (c->info->flags & IMC_NEW_HUB) && c->info == imc_info_list) imc.c: if (c->state==IMC_CLOSED) imc.c: if(name && c->state == IMC_CONNECTED) /* dont send if never connected */ imc.c: /* changed event, dont announce a simple reboot - shogar - 2/2/2000 */ imc.c: imc_add_event(60, ev_close_notify, c->info->name, 1); imc.c: close(c->desc); /* dont close if closed */ imc.c: if (c->state == IMC_CONNECTED) imc.c: c->info->connection=NULL; imc.c: if (c->info) imc.c: if ((c->info->flags & IMC_RECONNECT) && imc.c: !(c->info->flags & IMC_DENY) && imc.c: !(c->info->flags & IMC_CLIENT)) imc.c: imc_setup_reconnect(c->info); imc.c: c->state=IMC_CLOSED; imc.c: if (!c->info || !(c->info->flags & IMC_QUIET)) imc.c: /* dont log and announce if event - shogar 2/26/2000 */ imc.c: if (c->info) imc.c: r=imc_find_reminfo(c->info->name, 1); imc.c: if(c->desc) imc.c: close(c->desc); imc.c: c->desc=0; imc.c: c->inbuf[0]=0; imc.c: c->outbuf[0]=0; imc.c: if (!c->info || !(c->info->flags & IMC_QUIET)) imc.c: r=read(c->desc, temp, IMC_MAXBUF-1); imc.c: if (!c->info || !(c->info->flags & IMC_QUIET)) imc.c: size=strlen(c->inbuf)+r+1; imc.c: if (size>=c->insize) imc.c: /* not an error anymore, expected and handled - shogar */ imc.c: imc_logerror("%d: was allocated", c->insize); imc.c:// imc_free(c->inbuf,c->insize); imc.c:// c->insize=IMC_MINBUF; imc.c:// c->inbuf= imc_malloc(c->insize); imc.c: newsize=c->insize; imc.c: strcpy(newbuf, c->inbuf); imc.c: imc_free(c->inbuf, c->insize); imc.c: c->inbuf=newbuf; imc.c: c->insize=newsize; imc.c: if (size>c->insize/2) imc.c: if (size<c->insize/2 && size >= IMC_MINBUF) imc.c: newsize=c->insize; imc.c: strcpy(newbuf, c->inbuf); imc.c: imc_free(c->inbuf, c->insize); imc.c: c->inbuf=newbuf; imc.c: c->insize=newsize; imc.c: strcat(c->inbuf, temp); imc.c: if (c->state==IMC_CONNECTING) imc.c: c->state=IMC_WAIT2; imc.c: size = strlen(c->outbuf); imc.c: w=write(c->desc, c->outbuf, size); imc.c: if (!c->info || !(c->info->flags & IMC_QUIET)) imc.c: // memmove(c->outbuf, c->outbuf+w, size-w+1); imc.c: strcpy(c->outbuf,c->outbuf+w); imc.c: int newsize=c->outsize; imc.c: if (c->state==IMC_CLOSED) imc.c: if (!c->outbuf[0]) imc.c: c->newoutput=1; imc.c: len=strlen(c->outbuf)+strlen(line)+3; imc.c: if (len > c->outsize) imc.c: /* not an error anymore, expected and handled - shogar */ imc.c: if (!c->info || !(c->info->flags & IMC_QUIET)) imc.c: imc_logerror("%d: was allocated", c->outsize); imc.c:// imc_logerror("current buf: %s", c->outbuf); imc.c:// imc_free(c->outbuf,c->outsize); imc.c:// c->outsize=IMC_MINBUF; imc.c:// c->outbuf= imc_malloc(c->outsize); imc.c: strcpy(newbuf, c->outbuf); imc.c: imc_free(c->outbuf, c->outsize); imc.c: c->outbuf=newbuf; imc.c: c->outsize=newsize; imc.c: if (len<c->outsize/2 && len >= IMC_MINBUF) imc.c: newsize=c->outsize/2; imc.c: strcpy(newbuf, c->outbuf); imc.c: imc_free(c->outbuf, c->outsize); imc.c: c->outbuf=newbuf; imc.c: c->outsize=newsize; imc.c: strcat(c->outbuf, line); imc.c: strcat(c->outbuf, "\n\r"); imc.c: if (strlen(c->outbuf)>=c->outsize/2) imc.c: v=c->version; imc.c: if (!strcasecmp(p->type, "chat") || imc.c: !strcasecmp(p->type, "emote")) imc.c: int chan=imc_getkeyi(&p->data, "channel", 0); imc.c:/* forward a packet - main routing function, all packets pass through here */ imc.c: char recievedfrom[IMC_MAXBUF]; /* SPAM fix - shogar */ imc.c: imc_connect *rf; /* SPAM fix - shogar */ imc.c: if (p->i.sequence && checkrepeat(imc_mudof(p->i.from), p->i.sequence)) imc.c: if (inpath(p->i.path, imc_name)) imc.c: route=imc_find_reminfo(imc_mudof(p->i.from), 1); imc.c: if ((p->i.sequence+IMC_PACKET_LIFETIME) < route->top_sequence) imc.c: if(imc_is_router) /* spare the muds from seeing this - shogar */ imc.c: p->i.path, p->i.sequence, route->top_sequence); imc.c: if (p->i.sequence > route->top_sequence) imc.c: route->top_sequence=p->i.sequence; imc.c: updateroutes(p->i.path); imc.c: if (!strcmp(imc_mudof(p->i.to), "*") || imc.c: !strcasecmp(imc_mudof(p->i.to), imc_name)) imc.c: strcpy(p->to, imc_nameof(p->i.to)); /* strip the name from the 'to' */ imc.c: strcpy(p->from, p->i.from); imc.c: if (!strcasecmp(imc_mudof(p->i.to), imc_name)) imc.c: to=imc_mudof(p->i.to); imc.c: route->route != NULL && imc.c: !inpath(p->i.path, route->route)) /* avoid circular routing */ imc.c: if (strcasecmp(to, route->route) && imc.c: i->connection) imc.c: to=route->route; imc.c: i->connection && imc.c: !(i->flags & IMC_BROADCAST)) imc.c: /* SPAM fix - hubcnt and who just gave us the packet- shogar */ imc.c: strcpy(recievedfrom,imc_lastinpath(p->i.path)); imc.c: for (rf=imc_connect_list; rf; rf=rf->next) imc.c: if(rf->info && rf->info->name && !strcmp(recievedfrom,rf->info->name)) imc.c: if(rf->info->flags & IMC_HUB) imc.c: for (c=imc_connect_list; c; c=c->next) imc.c: if (c->state==IMC_CONNECTED) imc.c: if (inpath(p->i.path, c->info->name) || imc.c: (p->i.stamp & c->info->noforward)!=0) imc.c: /* SPAM fix - shogar */ imc.c: if(c->info->flags & IMC_HUB) imc.c:/* if for imc3 we need to do this - shogar */ imc.c: if (imc_getkeyi(&p->data,"channel",0) == 2) imc.c: if (i->connection && !inpath(p->i.path, i->name)) imc.c: do_send_packet(i->connection, p); imc.c: if (direct && direct!=i && direct->connection && imc.c: !inpath(p->i.path, direct->name)) imc.c: do_send_packet(direct->connection, p); imc.c: imc_logstring("%s: non-PW password packet", imc_getconnectname(c)); imc.c: if (!i || strcmp(i->clientpw, pw)) imc.c: if (!i || !(i->flags & IMC_QUIET)) imc.c: if (i->flags & IMC_DENY) imc.c: if (!(i->flags & IMC_QUIET)) imc.c: if (i->connection) /* kill old connections */ imc.c: do_close(i->connection); imc.c: i->connection = c; imc.c: c->state = IMC_CONNECTED; imc.c: c->info = i; imc.c: c->spamcounter1 = 0; imc.c: c->spamcounter2 = 0; imc.c: if (sscanf(version, "version=%hu", &c->version)!=1) imc.c: c->version=0; imc.c: if (!imc_vinfo[c->version].generate || imc.c: !imc_vinfo[c->version].interpret) imc.c: if (!(i->flags & IMC_QUIET)) imc.c: imc_getconnectname(c), c->version); imc.c: imc_name, i->serverpw, IMC_VERSION); imc.c: /* dont log and announce if event - shogar 2/26/2000 */ imc.c: if (!(i->flags & IMC_QUIET) imc.c: imc_getconnectname(c), c->version); imc.c: c->info->timer_duration=IMC_MIN_RECONNECT_TIME; imc.c: c->info->last_connected=imc_now; imc.c: imc_cancel_event(ev_reconnect, c->info); imc.c: /* if reconnecting on simple reboot don't - shogar - 2/1/2000 */ imc.c: imc_cancel_event(ev_close_notify, c->info->name); imc.c: imc_logstring("%s: non-PW password packet", imc_getconnectname(c)); imc.c: if (!i || strcmp(i->serverpw, pw) || imc.c: i != c->info) imc.c: if ((!i || !(i->flags & IMC_QUIET)) && !(c->info->flags & IMC_QUIET)) imc.c: if (i->connection) /* kill old connections */ imc.c: do_close(i->connection); imc.c: i->connection = c; imc.c: c->state = IMC_CONNECTED; imc.c: c->spamcounter1 = 0; imc.c: c->spamcounter2 = 0; imc.c: if (sscanf(version, "version=%hu", &c->version)!=1) imc.c: c->version=0; imc.c: if (!imc_vinfo[c->version].generate || imc.c: !imc_vinfo[c->version].interpret) imc.c: if (!(i->flags & IMC_QUIET)) imc.c: imc_getconnectname(c), c->version); imc.c: if (!(i->flags & IMC_QUIET)) imc.c: imc_getconnectname(c), c->version); imc.c: c->info->timer_duration=IMC_MIN_RECONNECT_TIME; imc.c: c->info->last_connected=imc_now; imc.c: imc_cancel_event(ev_reconnect, c->info); imc.c: /* compressed who - shogar - 1/24/2000 */ imc.c:/* this is an ugly hack to generate the send-queue size for an empty queue. imc.c: imc_lock_file=-1; imc.c: imc_lock_file=-1; imc.c: int toggle=0; /* This is to tell after we've done reconnects if we've connected to a hub or not -- Scion */ imc.c: control=-1; imc.c: /* fill my imclist please - shogar */ imc.c: for (info=imc_info_list; info; info=info->next) imc.c: if (!(info->flags & IMC_NOAUTO) && !(info->flags & IMC_CLIENT) imc.c: && !(info->flags & IMC_DENY) imc.c: /* && !(info->flags & IMC_OLD_HUB) not used anymore - shogar imc.c: && !(info->flags & IMC_DEAD_HUB) imc.c: && !(info->flags & IMC_HUB)) { imc.c: if (imc_connect_to(info->name) && ((info->flags & IMC_MAIN_HUB) || (info->flags & IMC_HUB))) imc.c: /* Setup optimization to run, it won't if we're a hub -- Scion */ imc.c: imc_logstring("Setting auto-optimize to run in 6 minutes."); imc.c: /* Are we connected to any hubs, btw? -- Scion */ imc.c: for (info=imc_info_list; info; info=info->next) imc.c: if ((info->flags & IMC_HUB) && (!toggle)) imc.c: if (imc_connect_to(info->name)) imc.c: /* We're out of ideas, notify the admins -- Scion */ imc.c: imc_stats.rx_bytes / (imc_now - imc_stats.start)); imc.c: imc_stats.tx_bytes / (imc_now - imc_stats.start)); imc.c: c_next=c->next; imc.c: pnext=p->next; imc.c: imc_strfree(p->version); imc.c: imc_strfree(p->name); imc.c: if(p->path) imc_strfree(p->path); imc.c: ev_next=ev->next; imc.c: ev_next=ev->next; imc.c: ign_next=ign->next; imc.c: info_next=info->next; imc.c: v=c->version; imc.c: if (c->info) imc.c: p->i.stamp=c->info->rcvstamp; imc.c: p->i.stamp=0; imc.c: for (c=imc_connect_list; c; c=c->next) imc.c: if (maxfd < c->desc) imc.c: maxfd = c->desc; imc.c: switch (c->state) imc.c: FD_SET(c->desc, write); imc.c: FD_SET(c->desc, read); imc.c: if (c->outbuf[0]) imc.c: FD_SET(c->desc, write); imc.c: for (p=imc_event_list; p; p=p->next) imc.c: if (p->timed) imc.c: return p->when - imc_now; imc.c:/* low-level idle function: read/write buffers as needed, etc */ imc.c: c_next=c->next; imc.c: if (c->state!=IMC_CLOSED && FD_ISSET(c->desc, exc)) imc.c: if (c->state!=IMC_CLOSED && FD_ISSET(c->desc, read)) imc.c: while (c->state!=IMC_CLOSED && imc.c:// (c->spamtime1>=0 || c->spamcounter1<=IMC_SPAM1MAX) && imc.c:// (c->spamtime2>=0 || c->spamcounter2<=IMC_SPAM2MAX) && imc.c: (command = getline(c->inbuf)) != NULL) imc.c: switch (c->state) imc.c: if (strcasecmp(c->info->name, imc.c: imc_lastinpath(p->i.path))) imc.c: c->info->name, imc.c: imc_lastinpath(p->i.path)); imc.c: else if (strcasecmp(imc_mudof(p->i.from), imc_firstinpath(p->i.path))) imc.c: p->i.from, imc.c: imc_firstinpath(p->i.path)); imc.c: if (!strcasecmp(p->type, "chat") || imc.c: !strcasecmp(p->type, "tell") || imc.c: !strcasecmp(p->type, "emote") || 1) imc.c: if (!c->spamcounter1 && !c->spamtime1) imc.c: c->spamcounter1++; imc.c: if (!c->spamcounter2 && !c->spamtime2) imc.c: c->spamcounter2++; imc.c: imc_freedata(&p->data); imc.c: c_next=c->next; imc.c: if (c->state!=IMC_CLOSED && imc.c: (FD_ISSET(c->desc, write) || c->newoutput)) imc.c:// c->newoutput=0; imc.c: c->newoutput=c->outbuf[0]; imc.c: c_next=c->next; imc.c: if (c->state==IMC_CLOSED) imc.c: if (i->connection) imc.c: if (i->flags & IMC_CLIENT) imc.c: imc_qerror("%s: client-only flag is set", mud); imc.c: if (i->flags & IMC_DENY) imc.c: if (!(i->flags & IMC_QUIET)) imc.c: if ((sa.sin_addr.s_addr=inet_addr(i->host)) == -1UL) imc.c: if (NULL == (hostinfo=gethostbyname(i->host))) imc.c: sa.sin_addr.s_addr = *(unsigned long *) hostinfo->h_addr; imc.c: sa.sin_port = htons(i->port); imc.c: c->desc = desc; imc.c: c->state = IMC_CONNECTING; imc.c: c->info = i; imc.c: i->clientpw, imc.c: for (c=imc_connect_list; c; c=c->next) imc.c: if (c->desc==d) imc.c: for (c=imc_connect_list; c; c=c->next) imc.c: if (c->info==i) imc.c: p->i.stamp = 0; imc.c: p->i.path[0] = 0; imc.c: p->i.sequence = imc_sequencenumber++; imc.c: imc_sncpy(p->i.to, p->to, IMC_NAME_LENGTH); imc.c: imc_sncpy(p->i.from, p->from, IMC_NAME_LENGTH); imc.c: strcat(p->i.from, "@"); imc.c: imc_sncpy(p->i.from + strlen(p->i.from), imc_name, imc.c: IMC_NAME_LENGTH - strlen(p->i.from)); imc.c: i->name = NULL; imc.c: i->host = NULL; imc.c: i->port = 0; imc.c: i->connection = NULL; imc.c: i->clientpw = NULL; imc.c: i->serverpw = NULL; imc.c: i->timer_duration = IMC_MIN_RECONNECT_TIME; imc.c: i->rcvstamp = 0; imc.c: i->noforward = 0; imc.c: i->flags = 0; imc.c: i->last_connected = 0; imc.c: i->next=NULL; imc.c: for (p=imc_info_list; p && p->next; p=p->next) imc.c: p->next=i; imc.c: i->name = NULL; imc.c: i->host = NULL; imc.c: i->port = 0; imc.c: i->connection = NULL; imc.c: i->clientpw = NULL; imc.c: i->serverpw = NULL; imc.c: i->timer_duration = IMC_MIN_RECONNECT_TIME; imc.c: i->rcvstamp = 0; imc.c: i->noforward = 0; imc.c: i->flags = 0; imc.c: i->last_connected = 0; imc.c: i->next=imc_info_list; imc.c: for (c=imc_connect_list; c; c=c->next) imc.c: if (c->info==i) imc.c: imc_info_list=i->next; imc.c: for (last=imc_info_list; last && last->next!=i; last=last->next) imc.c: last->next=i->next; imc.c: if (i->name) imc.c: imc_strfree(i->name); imc.c: if (i->host) imc.c: imc_strfree(i->host); imc.c: if (i->clientpw) imc.c: imc_strfree(i->clientpw); imc.c: if (i->serverpw) imc.c: imc_strfree(i->serverpw); imc.c: imc_info_list=i->next; imc.c: for (last=imc_info_list; last && last->next!=i; last=last->next) imc.c: last->next=i->next; imc.c: if (i->name) imc.c: imc_strfree(i->name); imc.c: if (i->host) imc.c: imc_strfree(i->host); imc.c: if (i->clientpw) imc.c: imc_strfree(i->clientpw); imc.c: if (i->serverpw) imc.c: imc_strfree(i->serverpw); imm_host.c: * -----------------------------------------------------------| (0...0) * imm_host.c: * -----------------------------------------------------------| {o o} * imm_host.c: * ------------------------------------------------------------------------ * imm_host.c: * ------------------------------------------------------------------------ * imm_host.c: KEY ("Host", data->host, fread_string_nohash (fp) ); imm_host.c: KEY ("Name", data->name, fread_string_nohash ( fp ) ); imm_host.c: data->prefix = TRUE; imm_host.c: data->prefix = FALSE; imm_host.c: data->suffix = TRUE; imm_host.c: data->suffix = FALSE; imm_host.c: for ( i = 0; i < strlen( ch->name ); i++ ) imm_host.c: my_name[i] = LOWER( ch->name[i] ); imm_host.c: for ( temp = immortal_host_start; temp; temp = temp->next ) imm_host.c: if ( !str_cmp ( my_name, strlower(temp->name) ) ) imm_host.c: if ( temp->prefix && temp->suffix imm_host.c: && strstr( temp->host, my_host)) imm_host.c: else if ( temp->prefix imm_host.c: && !str_suffix( temp->host, my_host)) imm_host.c: else if ( temp->suffix imm_host.c: && !str_prefix( temp->host, my_host)) imm_host.c: else if ( !str_cmp( temp->host, my_host)) imm_host.c: for ( temp = immortal_host_start ; temp ; temp = temp->next ) imm_host.c: ch_printf ( ch, "%-8s %c%s%c\n\r", imm_host.c: temp->name, (temp->prefix?'*':' '), temp->host, imm_host.c: (temp->suffix?'*':' ') ); imm_host.c: for ( temp = immortal_host_start ; temp ; temp = temp->next ) imm_host.c: if ( !str_cmp ( arg1, temp->name ) imm_host.c: && !str_cmp ( arg2, temp->host ) ) imm_host.c: DISPOSE ( temp->name ); imm_host.c: DISPOSE ( temp->host ); imm_host.c: if ( name[strlen(name) -1] == '*' ) imm_host.c: name[strlen(name) -1] = '\0'; imm_host.c: for ( temp = immortal_host_start; temp; temp = temp->next ) imm_host.c: if ( !str_cmp ( temp->name, arg1 ) && imm_host.c: !str_cmp ( temp->host, name ) ) imm_host.c: host->name = str_dup ( arg1 ); imm_host.c: host->host = str_dup ( name ); imm_host.c: host->prefix = prefix; imm_host.c: host->suffix = suffix; imm_host.c: for ( temp = immortal_host_start; temp; temp = temp->next ) imm_host.c: fprintf (fp, "Name\t%s~\n", temp->name ); imm_host.c: fprintf (fp, "Host\t%s~\n", temp->host ); imm_host.c: if ( temp->prefix ) imm_host.c: if ( temp->suffix ) immscore.c: * sh_int incog_level; * Incog -Froboz * immscore.c: * sh_int ghost_level; * Ghost -Froboz * immscore.c: * --Kratas immscore.c: pager_printf_color(ch, "\n\r&cImmortal Data: &W%s&c.\n\r", ch->name ); immscore.c: if ( get_trust( ch ) != ch->level ) immscore.c: send_to_pager_color("&B----------------------------------------------------------------------------\n\r", ch); immscore.c: pager_printf_color(ch, "&cLevel : &W%-6d &cClass : &W%-10.10s &cPlayed: &W%d hours\n\r", immscore.c: ch->level, capitalize(get_class(ch)), (get_age(ch) - 17) * 2); immscore.c: if( ch->level2 != -1 ) immscore.c: pager_printf_color(ch, "&cLevel2: &W%-6d &cClass2: &W%-10.10s\n\r", immscore.c: ch->level2, capitalize(get_class2(ch)) ); immscore.c: pager_printf_color(ch, "&cYears : &W%-6d &cRace : &W%-10.10s &cLog In: &W%s\n\r", immscore.c: get_age(ch), capitalize(get_race(ch)), ctime(&(ch->logon)) ); immscore.c: send_to_pager_color("&B----------------------------------------------------------------------------\n\r", ch); immscore.c: pager_printf_color(ch, "&RBamfin : &p%s\n\r", (ch->pcdata->bamfin[0] != '\0') immscore.c: ? ch->pcdata->bamfin : "Not changed/Switched."); immscore.c: pager_printf(ch, "&RBamfout: &p%s\n\r", (ch->pcdata->bamfout[0] != '\0') immscore.c: ? ch->pcdata->bamfout : "Not changed/Switched."); immscore.c: if (ch->pcdata->area) immscore.c: send_to_pager_color("&B----------------------------------------------------------------------------\n\r", ch); immscore.c: pager_printf(ch, "&RVnums : &pRoom &W(&R%-5.5d &Y- &R%-5.5d&W) &pObject &W(&R%-5.5d &Y- &R%-5.5d&W) &pMob &W(&R%-5.5d &Y- &R%-5.5d&W)\n\r", immscore.c: ch->pcdata->area->low_r_vnum, ch->pcdata->area->hi_r_vnum, ch->pcdata->area->low_o_vnum, ch->pcdata->area->hi_o_vnum, ch->pcdata->area->low_m_vnum, ch->pcdata->area->hi_m_vnum); immscore.c: (IS_SET(ch->pcdata->area->status, AREA_LOADED)) immscore.c: send_to_pager_color("&B----------------------------------------------------------------------------\n\r",ch); immscore.c: xIS_SET( ch->act, PLR_HOLYLIGHT ) ? "&GON&c " : "&ROFF&c", immscore.c: xIS_SET( ch->act, PLR_WIZINVIS ) ? "&GON&c " : "&ROFF&c", immscore.c: ch->pcdata->wizinvis, immscore.c: ch->incog_level > 0 ? "&GON&c " : "&ROFF&c", immscore.c: ch->incog_level, immscore.c: ch->ghost_level > 0 ? "&GON&c " : "&ROFF&c", immscore.c: ch->ghost_level ); immscore.c: * -Froboz immscore.c: if ( ch->incog_level) immscore.c: ch->incog_level = 0; immscore.c: ch->incog_level = get_trust(ch); immscore.c: ch->ghost_level = 0; immscore.c: ch->reply = NULL; immscore.c: ch->incog_level = level; immscore.c: ch->ghost_level = 0; immscore.c: * They still show up on who. -Froboz was here :) immscore.c: if ( ch->ghost_level) immscore.c: ch->ghost_level = 0; immscore.c: ch->ghost_level = get_trust(ch); immscore.c: ch->incog_level = 0; immscore.c: ch->reply = NULL; immscore.c: ch->ghost_level = level; immscore.c: ch->incog_level = 0; inferno.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) inferno.c: hpch = UMAX( 10, ch->hit ); inferno.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) inferno.c: vch_next = vch->next_in_room; inferno.c: if ( !vch->in_room ) inferno.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) inferno.c: if ( saves_spell_staff( level, vch ) ) /* small fix, --Cronel */ interp.c: * -----------------------------------------------------------| (0...0) * interp.c: * -----------------------------------------------------------| {o o} * interp.c: * ------------------------------------------------------------------------ * interp.c: * ------------------------------------------------------------------------ * interp.c:#include "icec-mercbase.h" interp.c: * Log-all switch. interp.c: if ( IS_NPC( ch ) && ch->position > 3 ) /*Band-aid alert? -- Blod*/ interp.c: if ( ch->position < position ) interp.c: switch( ch->position ) interp.c:/* to avoid duplicating log lines - relies upon watch list being */ interp.c: for(cur_imm = pw->imm_name; interp.c: pw && !strcmp(pw->imm_name, cur_imm); pw = pw->next) interp.c: if(!found && ch->desc && get_trust(ch) < pw->imm_level interp.c: &&((pw->target_name&&!strcmp(cmd->name,pw->target_name)) interp.c: || (pw->player_site && interp.c: !str_prefix(pw->player_site, ch->desc->host)))) interp.c: sprintf( fname, "%s%s", WATCH_DIR, strlower( pw->imm_name ) ); interp.c: t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, interp.c: ch->name, logline ); interp.c: for ( pw = first_watch; pw; pw = pw->next ) interp.c: if (((pw->target_name && !str_cmp (pw->target_name, ch->name)) interp.c: || (pw->player_site interp.c: && !str_prefix(pw->player_site, ch->desc->host)) ) interp.c: && get_trust(ch) < pw->imm_level interp.c: && ch->desc ) interp.c: sprintf( fname, "%s%s", WATCH_DIR, strlower( pw->imm_name ) ); interp.c: t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, interp.c: ch->name, logline ); interp.c: if ( !ch->in_room ) interp.c: if ( ch->substate == SUB_REPEATCMD ) interp.c: if ( (fun=ch->last_cmd) == NULL ) interp.c: ch->substate = SUB_NONE; interp.c: for ( cmd = command_hash[x]; cmd; cmd = cmd->next ) interp.c: if ( cmd->do_fun == fun ) interp.c: sprintf( logline, "(%s) %s", cmd->name, argument ); interp.c: /* xREMOVE_BIT( ch->affected_by, AFF_HIDE ); */ interp.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_FREEZE) ) interp.c: for ( cmd = command_hash[LOWER(command[0])%126]; cmd; cmd = cmd->next ) interp.c: if ( !str_prefix( command, cmd->name ) interp.c: && (cmd->level <= trust interp.c: || (!IS_NPC(ch) && ch->pcdata->council interp.c: && is_name( cmd->name, ch->pcdata->council->powers ) interp.c: && cmd->level <= (trust+MAX_CPD)) interp.c: || (!IS_NPC(ch) && ch->pcdata->council2 interp.c: && is_name( cmd->name, ch->pcdata->council2->powers ) interp.c: && cmd->level <= (trust+MAX_CPD)) interp.c: || (!IS_NPC(ch) && ch->pcdata->bestowments && ch->pcdata->bestowments[0] != '\0' interp.c: && is_name( cmd->name, ch->pcdata->bestowments ) interp.c: && cmd->level <= (trust+sysdata.bestow_dif)) ) ) interp.c: if( xIS_SET ( ch->act, PLR_AFK ) && !IS_NPC( ch )) interp.c: xREMOVE_BIT( ch->act, PLR_AFK ); interp.c: if( ch->pcdata->afkmsg ) interp.c: STRFREE( ch->pcdata->afkmsg ); interp.c: ch->pcdata->afkmsg = NULL; interp.c: sprintf( lastplayercmd, "** %s: %s", ch->name, logline ); interp.c: ch->pIndexData->vnum, ch->name, ch->in_room ? interp.c: ch->in_room->vnum : 0, logline ); interp.c: ch->name, ch->in_room ? ch->in_room->vnum : 0, logline ); interp.c: if ( found && cmd->log == LOG_NEVER ) interp.c: loglvl = found ? cmd->log : LOG_NORMAL; interp.c: if ( !IS_NPC(ch) && ch->desc interp.c: if(found && IS_SET(cmd->flags, CMD_WATCH)) interp.c: else if(IS_SET(ch->pcdata->flags, PCFLAG_WATCH)) interp.c: if ( ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_LOG) ) interp.c: if ( ch->desc && ch->desc->original ) interp.c: sprintf( log_buf, "Log %s (%s): %s", ch->name, interp.c: ch->desc->original->name, logline ); interp.c: sprintf( log_buf, "Log %s: %s", ch->name, logline ); interp.c: * file only, and not spam the log channel to death -Thoric interp.c: && (IS_NPC(ch) || !xIS_SET(ch->act, PLR_LOG)) ) interp.c:/* if ( ch->desc && ch->desc->original ) interp.c: ch->desc->original->level ); interp.c: if ( ch->desc && ch->desc->snoop_by ) interp.c: sprintf( logname, "%s", ch->name); interp.c: write_to_buffer( ch->desc->snoop_by, logname, 0 ); interp.c: write_to_buffer( ch->desc->snoop_by, "% ", 2 ); interp.c: write_to_buffer( ch->desc->snoop_by, logline, 0 ); interp.c: write_to_buffer( ch->desc->snoop_by, "\n\r", 2 ); interp.c: if( ch->inter_type == OBJ_TYPE ) interp.c: switch (ch->inter_page) interp.c: sprintf(newcommand,m_data[i].cmdString,ch->inter_editing); interp.c: sprintf(newcommand,m_data[i].cmdString,ch->inter_editing, argument); interp.c: sprintf(newcommand,"omenu %s %c",argument,ch->inter_page); interp.c: if( ch->inter_type == MOB_TYPE ) interp.c: switch (ch->inter_page) interp.c: sprintf(newcommand,m_data[i].cmdString,ch->inter_editing); interp.c: sprintf(newcommand,m_data[i].cmdString,ch->inter_editing, argument); interp.c: sprintf(newcommand,"mmenu %s %c",argument,ch->inter_page); interp.c: if( ch->inter_type == ROOM_TYPE ) interp.c: switch (ch->inter_page) interp.c: ch->inter_editing, interp.c: tempsub = ch->substate; interp.c: ch->substate = SUB_TIMER_DO_ABORT; interp.c: (timer->do_fun)(ch,""); interp.c: if ( ch->substate != SUB_TIMER_CANT_ABORT ) interp.c: ch->substate = tempsub; interp.c: ch->substate = tempsub; interp.c: /* check for an auto-matic exit command */ interp.c: && IS_SET( pexit->exit_info, EX_xAUTO )) interp.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) interp.c: || IS_SET(pexit->exit_info, EX_NOPASSDOOR)) ) interp.c: /* If they've set outputprefix, spam it here! -- Scion */ interp.c: if (!IS_NPC(ch) && ch->pcdata->outputprefix) { interp.c: send_to_char(ch->pcdata->outputprefix, ch); interp.c: if ( !IS_SET( pexit->exit_info, EX_SECRET ) ) interp.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, pexit->keyword, TO_CHAR ); interp.c: /* If they've set outputsuffix, spam it here! -- Scion */ interp.c: if (!IS_NPC(ch) && ch->pcdata->outputsuffix) { interp.c: send_to_char(ch->pcdata->outputsuffix, ch); interp.c: if ( !check_pos( ch, cmd->position ) ) interp.c: * But still keep the online editing ability. -- Shaddai interp.c: * send_to_char_color so we can colorize the strings if need be. --Shaddai interp.c: /* If they've set outputprefix, spam it here! -- Scion */ interp.c: if (!IS_NPC(ch) && ch->pcdata->outputprefix) { interp.c: send_to_char(ch->pcdata->outputprefix, ch); interp.c: * Nuisance stuff -- Shaddai interp.c: if ( !IS_NPC(ch) && ch->pcdata->nuisance && ch->pcdata->nuisance->flags > 9 interp.c: && number_percent() < ((ch->pcdata->nuisance->flags-9)*10 interp.c: *ch->pcdata->nuisance->power)) interp.c: ch->prev_cmd = ch->last_cmd; /* haus, for automapping */ interp.c: ch->last_cmd = cmd->do_fun; interp.c: (*cmd->do_fun) ( ch, argument ); interp.c: /* Command's done, send the outputsuffix if they want it -- Scion */ interp.c: if (!IS_NPC(ch) && ch->pcdata->outputsuffix) { interp.c: send_to_char(ch->pcdata->outputsuffix, ch); interp.c: update_userec(&time_used, &cmd->userec); interp.c: sprintf(log_buf, "[*****] LAG: %s: %s %s (R:%d S:%ld.%06ld)", ch->name, interp.c: cmd->name, (cmd->log == LOG_NEVER ? "XXX" : argument), interp.c: ch->in_room ? ch->in_room->vnum : 0, interp.c: sprintf(log_buf, "[*****] LAG: %s: %s %s (R:%d S:%d.%06d)", ch->name, interp.c: cmd->name, (cmd->log == LOG_NEVER ? "XXX" : argument), interp.c: ch->in_room ? ch->in_room->vnum : 0, interp.c: cmd->lag_count++; /* count the lag flags */ interp.c: for ( cmd = command_hash[hash]; cmd; cmd = cmd->next ) interp.c: if ( !str_prefix( command, cmd->name ) ) interp.c: hash = (command[0] - 'a') + 1; interp.c: for ( social = social_index[hash]; social; social = social->next ) interp.c: if ( !str_prefix( command, social->name ) ) interp.c: /* If they've set outputprefix, spam it here! -- Scion */ interp.c: if (!IS_NPC(ch) && ch->pcdata->outputprefix) { interp.c: send_to_char(ch->pcdata->outputprefix, ch); interp.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_NO_EMOTE) ) interp.c: send_to_char( "You are anti-social!\n\r", ch ); interp.c: switch ( ch->position ) interp.c: * But two players asked for it already! -- Furey interp.c: if ( !str_cmp( social->name, "snore" ) ) interp.c: for(victim = ch->in_room->first_person;victim; interp.c: victim = victim->next_in_room) interp.c: " but are unable to do so.\n\r", ch->name); interp.c: act( AT_SOCIAL, social->others_no_arg, ch, NULL, victim, TO_ROOM ); interp.c: act( AT_SOCIAL, social->char_no_arg, ch, NULL, victim, TO_CHAR ); interp.c: for(victim = remfirst; victim; victim = victim->next_in_room) interp.c: if(nifty_is_name(victim->name,arg) || interp.c: nifty_is_name_prefix(arg,victim->name)) interp.c: victim->name); interp.c: sprintf( buf, "From afar, %s", social->char_found ); interp.c: sprintf( buf, "From afar, %s", social->others_found ); interp.c: sprintf( buf, "From afar, %s", social->vict_found ); interp.c: act( AT_SOCIAL, social->others_auto, ch, NULL, victim, TO_ROOM ); interp.c: act( AT_SOCIAL, social->char_auto, ch, NULL, victim, TO_CHAR ); interp.c: act( AT_SOCIAL, social->others_found, ch, NULL, victim, TO_NOTVICT ); interp.c: act( AT_SOCIAL, social->char_found, ch, NULL, victim, TO_CHAR ); interp.c: act( AT_SOCIAL, social->vict_found, ch, NULL, victim, TO_VICT ); interp.c: && !HAS_PROG(victim->pIndexData, ACT_PROG) ) interp.c: if (IS_EVIL(ch) && !is_safe(victim, ch)) /* was IS_EVIL(ch) ||.... didn't make sense to me - FB */ interp.c: act( AT_SOCIAL, social->others_found, interp.c: act( AT_SOCIAL, social->char_found, interp.c: act( AT_SOCIAL, social->vict_found, interp.c: remtemp = victim->next_in_room; interp.c: char_to_room(victim, ch->in_room); interp.c: /* If they've set outputsuffix, spam it here! -- Scion */ interp.c: if (!IS_NPC(ch) && ch->pcdata->outputsuffix) { interp.c: send_to_char(ch->pcdata->outputsuffix, ch); interp.c: * June 24, 1999 - Fixed rather annoying wait state bug in alias parser - Justice@AaernMUD interp.c: int aliaslimit=0; /* To prevent recursive alias stacking -- Scion */ interp.c: for (alias=ch->pcdata->first_alias; alias; alias=alias->next) { interp.c: if (!str_cmp(alias->name, command)) interp.c: queue=ch->pcdata->alias_queue; interp.c: first=ch->pcdata->alias_queue; interp.c: while (queue && queue->next) interp.c: queue=queue->next; interp.c: for ( str = 0; alias->alias[str] != '\0'; str++ ) { interp.c: sprintf(buf, "Alias limit reached on character %s!", ch->name); interp.c: ch->pcdata->alias_queue=NULL; interp.c: if (alias->alias[str]==';' && strlen(buf) > 0) { interp.c: if ( sysdata.alias_wait != -1 ) interp.c: WAIT_STATE( ch, sysdata.alias_wait + ch->wait ); interp.c: WAIT_STATE( ch, 4 + ch->wait ); interp.c: /* Add command to the alias queue -- Scion */ interp.c: new_queue->next=NULL; interp.c: new_queue->cmd=str_dup(buf); interp.c: queue->next=new_queue; interp.c: queue=queue->next; interp.c: /* else if (alias->alias[str]=='%') {} */ interp.c: buf[i]=alias->alias[str]; interp.c: /* Add the last command to the alias queue -- Scion */ interp.c: new_queue->next=NULL; interp.c: new_queue->cmd=str_dup(buf); interp.c: queue->next=new_queue; interp.c: queue=queue->next; interp.c: ch->pcdata->alias_queue=first; interp.c: * Understands quotes. Delimiters = { ' ', '-' } interp.c: if ( *argument == cEnd || *argument == '-' ) interp.c: if ( !stime || (!stime->tv_sec && !stime->tv_usec) ) interp.c: if ( vtime->num_uses == 0 ) interp.c: ntime.tv_sec = vtime->total_time.tv_sec / vtime->num_uses; interp.c: carry = (vtime->total_time.tv_sec % vtime->num_uses) * 1000000; interp.c: ntime.tv_usec = (vtime->total_time.tv_usec + carry) / vtime->num_uses; interp.c: ch_printf(ch, "Has been used %d times this boot.\n\r", vtime->num_uses); interp.c: "\n\r", vtime->min_time.tv_sec, vtime->min_time.tv_usec, ntime.tv_sec, interp.c: ntime.tv_usec, vtime->max_time.tv_sec, vtime->max_time.tv_usec); interp.c: userec->num_uses++; interp.c: if ( !timerisset(&userec->min_time) interp.c: || timercmp(time_used, &userec->min_time, <) ) interp.c: userec->min_time.tv_sec = time_used->tv_sec; interp.c: userec->min_time.tv_usec = time_used->tv_usec; interp.c: if ( !timerisset(&userec->max_time) interp.c: || timercmp(time_used, &userec->max_time, >) ) interp.c: userec->max_time.tv_sec = time_used->tv_sec; interp.c: userec->max_time.tv_usec = time_used->tv_usec; interp.c: userec->total_time.tv_sec += time_used->tv_sec; interp.c: userec->total_time.tv_usec += time_used->tv_usec; interp.c: while ( userec->total_time.tv_usec >= 1000000 ) interp.c: userec->total_time.tv_sec++; interp.c: userec->total_time.tv_usec -= 1000000; interp.c: * haveing to hard-code them in. -- Shaddai August 25, 1997 interp.c: if ( IS_AFFECTED (ch, AFF_POSSESS) && IS_SET( cmd->flags, CMD_FLAG_POSSESS )) interp.c: cmd->name ); interp.c: else if ( ch->morph != NULL interp.c: && IS_SET( cmd->flags, CMD_FLAG_POLYMORPHED ) ) interp.c: cmd->name ); interp.c: if ( !ch->pcdata->first_alias ) interp.c: for( alias = ch->pcdata->first_alias; alias; alias = alias->next, count++ ) interp.c: ch_printf( ch, "%s %s\n\r", alias->name, alias->alias ); interp.c: for( alias = ch->pcdata->first_alias; alias; alias = alias->next ) interp.c: if ( !str_cmp( arg, alias->name ) ) break; interp.c: alias->name = strdup( arg ); interp.c: alias->alias = strdup( argument ); interp.c: LINK( alias, ch->pcdata->first_alias, ch->pcdata->last_alias, next, prev ); interp.c: ch_printf( ch, "%s %s\n\r", alias->name, alias->alias ); interp.c: UNLINK( alias, ch->pcdata->first_alias, ch->pcdata->last_alias, next, prev ); interp.c: alias->alias = strdup(argument); interp.c: ch_printf( ch, "%s %s\n\r", alias->name, alias->alias ); ispell.c:static int ispell_pid = -1; ispell.c: dup2(to[0], 0); /* this is where we read commands from - make ispell.c: execlp("ispell", "ispell", "-a", (char *) ispell.c: if (ispell_pid != -1) ispell.c: ispell_pid = -1; ispell.c: if (ispell_pid == -1) ispell.c: case '-': /* compound */ locker.c: * room->vnum = ROOM_LOCKER; locker.c: * if (obj->name == ch->name) locker.c: * for( locker = ch->in_room->first_content; locker ; locker = locker->next_content ) locker.c: * if( locker->name == ch->name ) locker.c: * change if ( obj->prev_content && (os_type != OS_CORPSE ) ) locker.c: * to if ( obj->prev_content && (os_type != OS_CORPSE && os_type != OS_LOCKER ) ) locker.c: * change if (( os_type == OS_CORPSE ) && obj->in_room ) locker.c: * to if (( os_type == OS_CORPSE || os_type == OS_LOCKER ) && obj->in_room ) locker.c: bug( ch->name, 0 ); locker.c: sprintf( strsave, "%s%s", LOCKER_DIR, capitalize( ch->name ) ); locker.c: if (ch->in_room->vnum != ROOM_LOCKER) locker.c: for( locker = ch->in_room->first_content; locker ; locker = locker->next_content) locker.c: if( locker->name == ch->name ) locker.c: sprintf( strsave, "%s%s", LOCKER_DIR, capitalize( ch->name ) ); locker.c: if (ch->gold < 10000) locker.c: ch->gold -= 10000; locker.c: if (ch->gold < 100000) locker.c: ch->gold -= 100000; locker.c: sprintf(buf, locker->name, ch->name); locker.c: STRFREE( locker->name); locker.c: locker->name = STRALLOC(buf); locker.c: sprintf(buf, locker->short_descr, ch->name); locker.c: STRFREE( locker->short_descr); locker.c: locker->short_descr = STRALLOC(buf); locker.c: sprintf(buf, locker->description, ch->name); locker.c: STRFREE( locker->description); locker.c: locker->description = STRALLOC(buf); locker.c: obj_to_room( locker, ch->in_room ); locker.c: if(ch->in_room->vnum != ROOM_LOCKER ) locker.c: for( locker = ch->in_room->first_content; locker ; locker = locker->next_content ) locker.c: if( locker->name == ch->name ) lzo.c://long __LZO_MMODEL memory [ ((LZO1X_1_MEM_COMPRESS) + (sizeof(long) - 1)) / sizeof(long) ]; lzo.c: compressRoom( ch->in_room ); lzo.c: room->description = str_dup(argument); lzo.c: ch_printf( ch, "Current room desc: %s\n\r", room->description ); lzo.c: ch_printf( ch, "Compressed: %s\n\r", room->compress_desc ); lzo.c:// ch_printf( ch, "Current uncompressed room desc: %s\n\r", room->uncomp_desc ); lzo.c: DISPOSE( room->description ); lzo.c: ch_printf( ch, "New compressed string is: %s\n\r", room->compress_desc ); lzo.c: ch_printf( ch, "Current room desc: %s\n\r", room->description ); lzo.c:// ch_printf( ch, "Uncompressed desc: %s\n\r", room->uncomp_desc ); lzo.c: DISPOSE( room->description ); magic.c: * -----------------------------------------------------------| (0...0) * magic.c: * -----------------------------------------------------------| {o o} * magic.c: * ------------------------------------------------------------------------ * magic.c: * ------------------------------------------------------------------------ * magic.c: case SD_FIRE: if (IS_SET(ch->immune, RIS_FIRE)) return TRUE; magic.c: case SD_COLD: if (IS_SET(ch->immune, RIS_COLD)) return TRUE; magic.c: case SD_ELECTRICITY: if (IS_SET(ch->immune, RIS_ELECTRICITY)) return TRUE; magic.c: case SD_ENERGY: if (IS_SET(ch->immune, RIS_ENERGY)) return TRUE; magic.c: case SD_ACID: if (IS_SET(ch->immune, RIS_ACID)) return TRUE; magic.c: case SD_POISON: if (IS_SET(ch->immune, RIS_POISON)) return TRUE; magic.c: case SD_DRAIN: if (IS_SET(ch->immune, RIS_DRAIN)) return TRUE; magic.c: if ( !skill_table[sn]->name ) magic.c: if( ch->level2 == -1 ) magic.c: if ( ch->pcdata->learned[sn] > 0 magic.c: && ch->level >= skill_table[sn]->skill_level[ch->class] magic.c: && LOWER(name[0]) == LOWER(skill_table[sn]->name[0]) magic.c: && !str_prefix( name, skill_table[sn]->name ) ) magic.c: if ( ch->pcdata->learned[sn] > 0 magic.c: && (ch->level >= (skill_table[sn]->skill_level[ch->class2] magic.c: || ch->level >= skill_table[sn]->skill_level[ch->class]) magic.c: && LOWER(name[0]) == LOWER(skill_table[sn]->name[0]) magic.c: && !str_prefix( name, skill_table[sn]->name ) )) magic.c: return -1; magic.c: if ( !herb_table[sn] || !herb_table[sn]->name ) magic.c: return -1; magic.c: if ( LOWER(name[0]) == LOWER(herb_table[sn]->name[0]) magic.c: && !str_prefix( name, herb_table[sn]->name ) ) magic.c: return -1; magic.c: * sort of allocating memory in free_char --Shaddai magic.c: if ( !ch->pcdata ) magic.c: return -1; magic.c: if ( !ch->pcdata->special_skills[sn] magic.c: || !ch->pcdata->special_skills[sn]->name ) magic.c: return -1; magic.c: if ( LOWER(name[0]) == LOWER(ch->pcdata->special_skills[sn]->name[0]) magic.c: && !str_prefix( name, ch->pcdata->special_skills[sn]->name ) ) magic.c: return -1; magic.c: if ( (sn=bsearch_skill_exact(name, gsn_first_spell, gsn_first_skill-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_exact(name, gsn_first_skill, gsn_first_weapon-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_exact(name, gsn_first_weapon, gsn_first_tongue-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_exact(name, gsn_first_tongue, gsn_top_sn-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_prefix(name, gsn_first_spell, gsn_first_skill-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_prefix(name, gsn_first_skill, gsn_first_weapon-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_prefix(name, gsn_first_weapon, gsn_first_tongue-1)) == -1 ) magic.c: if ( (sn=bsearch_skill_prefix(name, gsn_first_tongue, gsn_top_sn-1)) == -1 && gsn_top_sn < top_sn ) magic.c: if ( !skill_table[sn] || !skill_table[sn]->name ) magic.c: return -1; magic.c: if ( LOWER(name[0]) == LOWER(skill_table[sn]->name[0]) magic.c: && !str_prefix( name, skill_table[sn]->name ) ) magic.c: return -1; magic.c: * Return a skilltype pointer based on sn -Thoric magic.c: return IS_VALID_HERB(sn-TYPE_HERB) ? herb_table[sn-TYPE_HERB] : NULL; magic.c: * Perform a binary search on a section of the skill table -Thoric magic.c: return -1; magic.c: if (LOWER(name[0]) == LOWER(skill_table[sn]->name[0]) magic.c: && !str_prefix(name, skill_table[sn]->name)) magic.c: return -1; magic.c: if (strcmp(name, skill_table[sn]->name) < 1) magic.c: top = sn - 1; magic.c: return -1; magic.c: * Perform a binary search on a section of the skill table -Thoric magic.c: return -1; magic.c: if (!str_cmp(name, skill_table[sn]->name)) magic.c: return -1; magic.c: if (strcmp(name, skill_table[sn]->name) < 1) magic.c: top = sn - 1; magic.c: return -1; magic.c: * Perform a binary search on a section of the skill table -Thoric magic.c: return (sn == -1) ? bsearch_skill_prefix(name, first, top) : sn; magic.c: * Only match skills player knows -Thoric magic.c: if( ch->level2 == -1 ) magic.c: if ( LOWER(name[0]) == LOWER(skill_table[sn]->name[0]) magic.c: && !str_prefix(name, skill_table[sn]->name) magic.c: && ch->pcdata->learned[sn] > 0 magic.c: && ch->level >= skill_table[sn]->skill_level[ch->class] ) magic.c: if ( LOWER(name[0]) == LOWER(skill_table[sn]->name[0]) magic.c: && !str_prefix(name, skill_table[sn]->name) magic.c: && ch->pcdata->learned[sn] > 0 magic.c: && (ch->level >= skill_table[sn]->skill_level[ch->class2] magic.c: || ch->level >= skill_table[sn]->skill_level[ch->class])) magic.c: return -1; magic.c: if (strcmp( name, skill_table[sn]->name) < 1) magic.c: top = sn - 1; magic.c: return -1; magic.c: if( ch->level2 == -1 ) magic.c: if (!str_cmp(name, skill_table[sn]->name) magic.c: && ch->pcdata->learned[sn] > 0 magic.c: && ch->level >= skill_table[sn]->skill_level[ch->class] ) magic.c: if (!str_cmp(name, skill_table[sn]->name) magic.c: && ch->pcdata->learned[sn] > 0 magic.c: && (ch->level >= skill_table[sn]->skill_level[ch->class2] magic.c: || ch->level >= skill_table[sn]->skill_level[ch->class])) magic.c: return -1; magic.c: if (strcmp(name, skill_table[sn]->name) < 1) magic.c: top = sn - 1; magic.c: return -1; magic.c: return (sn == -1) ? ch_bsearch_skill_prefix(ch, name, first, top) : sn; magic.c: return bsearch_skill( name, gsn_first_spell, gsn_first_skill-1 ); magic.c: return ch_bsearch_skill( ch, name, gsn_first_spell, gsn_first_skill-1 ); magic.c: return bsearch_skill( name, gsn_first_skill, gsn_first_weapon-1 ); magic.c: return ch_bsearch_skill( ch, name, gsn_first_skill, gsn_first_weapon-1 ); magic.c: return bsearch_skill( name, gsn_first_weapon, gsn_first_tongue-1 ); magic.c: return ch_bsearch_skill( ch, name, gsn_first_weapon, gsn_first_tongue-1 ); magic.c: return bsearch_skill( name, gsn_first_tongue, gsn_top_sn-1 ); magic.c: return ch_bsearch_skill( ch, name, gsn_first_tongue, gsn_top_sn-1 ); magic.c: return -1; magic.c: if ( slot == skill_table[sn]->slot ) magic.c: return -1; magic.c: if ((sktmp = get_skilltype (paf->type)) == NULL) magic.c: spell = sktmp->name; magic.c: strcpy(buf,(IS_NPC(victim)?victim->short_descr:victim->name)); magic.c: * Fancy message handling for a successful casting -Thoric magic.c: sh_int chitroom = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_ACTION); magic.c: sh_int chit = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_HIT); magic.c: sh_int chitme = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_HITME); magic.c: if ( skill->target != TAR_CHAR_OFFENSIVE ) magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( chit, skill->hit_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->type == SKILL_SPELL ) magic.c: if ( ch && skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( chitroom, skill->hit_room, ch, obj, victim, TO_NOTVICT ); magic.c: if ( ch && victim && skill->hit_vict && skill->hit_vict[0] != '\0' ) magic.c: act( chitme, skill->hit_vict, ch, obj, victim, TO_VICT ); magic.c: act( chitme, skill->hit_vict, ch, obj, victim, TO_CHAR ); magic.c: if ( ch && ch == victim && skill->type == SKILL_SPELL ) magic.c: * Fancy message handling for a failed casting -Thoric magic.c: sh_int chitroom = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_ACTION); magic.c: sh_int chit = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_HIT); magic.c: sh_int chitme = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_HITME); magic.c: if ( skill->target != TAR_CHAR_OFFENSIVE ) magic.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) magic.c: act( chit, skill->miss_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->type == SKILL_SPELL ) magic.c: if ( ch && skill->miss_room && skill->miss_room[0] != '\0' magic.c: && str_cmp(skill->miss_room, "supress") ) magic.c: act( chitroom, skill->miss_room, ch, obj, victim, TO_NOTVICT ); magic.c: if ( ch && victim && skill->miss_vict && skill->miss_vict[0] != '\0' ) magic.c: act( chitme, skill->miss_vict, ch, obj, victim, TO_VICT ); magic.c: act( chitme, skill->miss_vict, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) magic.c: act( chitme, skill->miss_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->type == SKILL_SPELL ) magic.c: * Fancy message handling for being immune to something -Thoric magic.c: sh_int chitroom = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_ACTION); magic.c: sh_int chit = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_HIT); magic.c: sh_int chitme = (skill->type == SKILL_SPELL ? AT_MAGIC : AT_HITME); magic.c: if ( skill->target != TAR_CHAR_OFFENSIVE ) magic.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) magic.c: act( chit, skill->imm_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) magic.c: act( chit, skill->hit_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->type == SKILL_SPELL || skill->type == SKILL_SKILL ) magic.c: if ( ch && skill->imm_room && skill->imm_room[0] != '\0' ) magic.c: act( chitroom, skill->imm_room, ch, obj, victim, TO_NOTVICT ); magic.c: if ( ch && skill->miss_room && skill->miss_room[0] != '\0' ) magic.c: act( chitroom, skill->miss_room, ch, obj, victim, TO_NOTVICT ); magic.c: if ( ch && victim && skill->imm_vict && skill->imm_vict[0] != '\0' ) magic.c: act( chitme, skill->imm_vict, ch, obj, victim, TO_VICT ); magic.c: act( chitme, skill->imm_vict, ch, obj, victim, TO_CHAR ); magic.c: if ( ch && victim && skill->miss_vict && skill->miss_vict[0] != '\0' ) magic.c: act( chitme, skill->miss_vict, ch, obj, victim, TO_VICT ); magic.c: act( chitme, skill->miss_vict, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) magic.c: act( chit, skill->imm_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) magic.c: act( chit, skill->hit_char, ch, obj, victim, TO_CHAR ); magic.c: if ( skill->type == SKILL_SPELL || skill->type == SKILL_SKILL ) magic.c: for ( pName = skill->name; *pName != '\0'; pName += length ) magic.c: sprintf( buf, "$n closes $s eyes and utters the words, '%s'.", skill->name ); magic.c: for ( rch = ch->in_room->first_person; rch; rch = rch->next_in_room ) magic.c: act( AT_MAGIC, is_class( ch, rch->class ) ? buf : buf2, ch, NULL, rch, TO_VICT ); magic.c: * Make adjustments to saving throw based in RIS -Thoric magic.c: if ( IS_SET(ch->immune, ris ) ) magic.c: modifier -= 10; magic.c: if ( IS_SET(ch->resistant, ris ) ) magic.c: modifier -= 2; magic.c: if ( IS_SET(ch->susceptible, ris ) ) magic.c:/* -Thoric magic.c: * Used for spell dice parsing, ie: 3d8+L-6 magic.c: if ( (*exp == '(') && !index(exp+1,'(') && exp[strlen(exp)-1] == ')' ) magic.c: exp[strlen(exp)-1] = '\0'; magic.c: case 'H': case 'h': return ch->hit; magic.c: case 'M': case 'm': return ch->mana; magic.c: case 'V': case 'v': return ch->move; magic.c: case '-': case '+': magic.c: --total; magic.c: case '-': total -= rd_parse(ch, level, sexp[1]); break; magic.c: save = 50 + ( victim->level - level - victim->saving_poison_death ) * 5; magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: save = 50 + ( victim->level - level - victim->saving_wand ) * 5; magic.c: save = 50 + ( victim->level - level - victim->saving_para_petri ) * 5; magic.c: save = 50 + ( victim->level - level - victim->saving_breath ) * 5; magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: level -= 5; magic.c: save = 50 + ( victim->level - level - victim->saving_spell_staff ) * 5; magic.c: * Process the spell's required components, if any -Thoric magic.c: * ----------------------------------------------- magic.c: char *comp = skill->components; magic.c: val = -1; magic.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) magic.c: if ( obj->item_type == value ) magic.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) magic.c: if ( obj->pIndexData->vnum == value ) magic.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) magic.c: if ( nifty_is_name( check, obj->name ) ) magic.c: if ( ch->gold >= value ) magic.c: ch->gold -= value; magic.c: if ( ch->hit >= value ) magic.c: ch->hit -= value; magic.c: if ( obj->value[val] <= 0 ) magic.c: if ( --obj->value[val] == 0 ) magic.c: int count = obj->count; magic.c: obj->count = 1; magic.c: obj->count = count; magic.c: switch ( skill->target ) magic.c: * if the nuisance flag is set -- Shaddai magic.c: if ( !IS_NPC(ch) && ch->pcdata->nuisance && magic.c: ch->pcdata->nuisance->flags > 5 magic.c: && number_percent() < (((ch->pcdata->nuisance->flags-5)*8)+ magic.c: ch->pcdata->nuisance->power*6)) magic.c: if ( xIS_SET(ch->act, PLR_NICE) && ch != *victim ) magic.c: send_to_char( "You really shouldn't do this to another player...\n\r", ch ); -- Scion */ magic.c: if ( IS_AFFECTED(ch, AFF_CHARM) && ch->master == *victim ) magic.c: * spells up to 36% of the time -- Shaddai magic.c: if ( !IS_NPC(ch) && ch->fighting && ch->pcdata->nuisance && magic.c: ch->pcdata->nuisance->flags > 5 magic.c: && number_percent() < (((ch->pcdata->nuisance->flags-5)*8) + magic.c: 6*ch->pcdata->nuisance->power)) magic.c: if ( arg[0] != '\0' && !nifty_is_name( arg, ch->name ) ) magic.c: * Cast a spell. Multi-caster and component support by Thoric magic.c: switch( ch->substate ) magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NO_MAGIC ) ) magic.c: && ( ch->level < skill_table[sn]->skill_level[ch->class] magic.c: && ch->level < skill_table[sn]->skill_level[ch->class2] ) )) magic.c:/* || ( !IS_NPC(ch) && ch->level < SKILL_CLASS(ch, sn) ) ) */ magic.c: if ( skill->type != SKILL_SPELL ) magic.c: if ( !skill->spell_fun ) magic.c: * Something else removed by Merc -Thoric magic.c: /* Band-aid alert! !IS_NPC check -- Blod */ magic.c: if ( ch->position < skill->minimum_position && !IS_NPC(ch) ) magic.c: switch( ch->position ) magic.c: if(skill->minimum_position<=POS_EVASIVE){ magic.c: if(skill->minimum_position<=POS_EVASIVE){ magic.c: if(skill->minimum_position<=POS_EVASIVE){ magic.c: if(skill->minimum_position<=POS_EVASIVE){ magic.c: if ( skill->spell_fun == spell_null ) magic.c: if ( !skill->spell_fun ) magic.c: && skill->guild != CLASS_NONE magic.c: && (!ch->pcdata->clan magic.c: || skill->guild != ch->pcdata->clan->class) ) magic.c: /* mana = IS_NPC(ch) ? 0 : UMAX(skill->min_mana, magic.c: 100 / ( 2 + ch->level - skill->skill_level[ch->class] ) ); -- Scion */ magic.c: mana = IS_NPC(ch) ? 0 : skill->min_mana; magic.c: if (!IS_NPC(ch) && GET_ADEPT(ch, skill_lookup(skill->name))) magic.c: mana=mana-(mana/4); magic.c: * Vampire spell casting -Thoric magic.c: blood = UMAX(1, (mana+4) / 8); /* NPCs don't have PCDatas. -- Altrag */ magic.c: if (ch->pcdata->condition[COND_BLOODTHIRST] < blood) magic.c: if ( !IS_NPC(ch) && ch->mana < mana ) magic.c: if ( skill->participants <= 1 ) magic.c: /* multi-participant spells -Thoric */ magic.c: add_timer( ch, TIMER_DO_FUN, UMIN(skill->beats / 10, 3), magic.c: ch->alloc_ptr = str_dup( staticbuf ); magic.c: ch->tempnum = sn; magic.c: DISPOSE( ch->alloc_ptr ); magic.c: if ( IS_VALID_SN((sn = ch->tempnum)) ) magic.c: /* mana = IS_NPC(ch) ? 0 : UMAX(skill->min_mana, magic.c: 100 / ( 2 + ch->level - skill->skill_level[ch->class] ) ); -- Scion */ magic.c: mana = IS_NPC(ch) ? 0 : skill->min_mana; magic.c: if (!IS_NPC(ch) && GET_ADEPT(ch, skill_lookup(skill->name))) magic.c: mana=mana-(mana/4); magic.c: gain_condition( ch, COND_BLOODTHIRST, - UMAX(1, blood / 3) ); magic.c: if (ch->level < LEVEL_IMMORTAL) /* so imms dont lose mana */ magic.c: ch->mana -= mana / 3; magic.c: sn = ch->tempnum; magic.c: if ( !ch->alloc_ptr || !IS_VALID_SN(sn) || skill->type != SKILL_SPELL ) magic.c: bug( "do_cast: ch->alloc_ptr NULL or bad sn (%d)", sn ); magic.c:/* mana = IS_NPC(ch) ? 0 : UMAX(skill->min_mana, magic.c: 100 / ( 2 + ch->level - skill->skill_level[ch->class] ) ); -- Scion */ magic.c: mana = IS_NPC(ch) ? 0 : skill->min_mana; magic.c: if (!IS_NPC(ch) && GET_ADEPT(ch, skill_lookup(skill->name))) magic.c: mana=mana-(mana/4); magic.c: strcpy( staticbuf, ch->alloc_ptr ); magic.c: DISPOSE( ch->alloc_ptr ); magic.c: ch->substate = SUB_NONE; magic.c: if ( skill->participants > 1 ) magic.c: for ( tmp = ch->in_room->first_person; tmp; tmp = tmp->next_in_room ) magic.c: && t->count >= 1 && t->do_fun == do_cast magic.c: && tmp->tempnum == sn && tmp->alloc_ptr magic.c: && !str_cmp( tmp->alloc_ptr, staticbuf ) ) magic.c: if ( cnt >= skill->participants ) magic.c: for ( tmp = ch->in_room->first_person; tmp; tmp = tmp->next_in_room ) magic.c: && t->count >= 1 && t->do_fun == do_cast magic.c: && tmp->tempnum == sn && tmp->alloc_ptr magic.c: && !str_cmp( tmp->alloc_ptr, staticbuf ) ) magic.c: gain_condition( tmp, COND_BLOODTHIRST, - blood ); magic.c: tmp->mana -= mana; magic.c: tmp->substate = SUB_NONE; magic.c: tmp->tempnum = -1; magic.c: DISPOSE( tmp->alloc_ptr ); magic.c: gain_condition( ch, COND_BLOODTHIRST, - UMAX(1, blood / 2) ); magic.c: if (ch->level < LEVEL_IMMORTAL) /* so imms dont lose mana */ magic.c: ch->mana -= mana / 2; magic.c: if ( str_cmp( skill->name, "ventriloquate" ) ) magic.c: WAIT_STATE( ch, skill->beats ); magic.c: * Getting ready to cast... check for spell components -Thoric magic.c: gain_condition( ch, COND_BLOODTHIRST, - UMAX(1, blood / 2) ); magic.c: if (ch->level < LEVEL_IMMORTAL) /* so imms dont lose mana */ magic.c: ch->mana -= mana / 2; magic.c: && (number_percent( ) + skill->difficulty * 5) > ch->pcdata->learned[sn] ) magic.c: /* Some more interesting loss of concentration messages -Thoric */ magic.c: if ( ch->fighting ) magic.c: if ( ch->fighting ) magic.c: send_to_char( "You get a mental block mid-way through the casting.\n\r", ch ); magic.c: gain_condition( ch, COND_BLOODTHIRST, - UMAX(1, blood / 2) ); magic.c: ch->mana -= mana / 2; magic.c: gain_condition( ch, COND_BLOODTHIRST, - blood ); magic.c: ch->mana -= mana; magic.c: if ( ((skill->target == TAR_CHAR_DEFENSIVE magic.c: || skill->target == TAR_CHAR_SELF) magic.c: && victim && IS_SET(victim->immune, RIS_MAGIC)) ) magic.c: /* multicasting -- Scion */ magic.c: chance = (IS_NPC(ch) ? ch->level : (int)( ( LEARNED(ch, gsn_second_cast) + (ch->level / 10) )/1.5 )); magic.c: chance = IS_NPC(ch) ? ch->level magic.c: : (int) ((LEARNED(ch, gsn_third_cast)+(ch->level / 10*1.5))/2); magic.c: chance = IS_NPC(ch) ? ch->level magic.c: : (int) ((LEARNED(ch, gsn_fourth_cast)+(ch->level / 10*2))/2.5); magic.c: chance = IS_NPC(ch) ? ch->level magic.c: : (int) ((LEARNED(ch, gsn_fifth_cast)+(ch->level / 10*2.5))/3); magic.c: chance = IS_NPC(ch) ? ch->level magic.c: : (int) ((LEARNED(ch, gsn_sixth_cast)+(ch->level / 10*3))/3.5); magic.c: chance = IS_NPC(ch) ? ch->level magic.c: : (int) ((LEARNED(ch, gsn_seventh_cast)+(ch->level / 10*3.5))/4); magic.c: chance = IS_NPC(ch) ? ch->level magic.c: : (int) ((LEARNED(ch, gsn_eighth_cast)+(ch->level / 10*4))/4.5); magic.c: gain_condition( ch, COND_BLOODTHIRST, - blood ); magic.c: ch->mana -= mana; magic.c: /* end multicasting -- Scion */ magic.c: if (skill->target != TAR_CHAR_OFFENSIVE) magic.c: while (multi-- > 0) { magic.c: retcode = (*skill->spell_fun) ( sn, ch->level, ch, vo ); magic.c: update_userec(&time_used, &skill->userec); magic.c: && skill->target == TAR_CHAR_DEFENSIVE ) magic.c: && skill->target == TAR_CHAR_DEFENSIVE ) magic.c: && skill->target == TAR_CHAR_OFFENSIVE ) magic.c: * Fixed up a weird mess here, and added double safeguards -Thoric magic.c: if ( skill->target == TAR_CHAR_OFFENSIVE && victim && !char_died(victim) && victim != ch ) magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) magic.c: vch_next = vch->next_in_room; magic.c: if ( victim->master != ch && !victim->fighting ) magic.c: int levdiff = ch->level - level; magic.c: if ( sn == -1 ) magic.c: if ( !skill || !skill->spell_fun ) magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NO_MAGIC ) ) magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) && magic.c: skill->target == TAR_CHAR_OFFENSIVE) magic.c: * 40 scrolls in battle too often ;) -Thoric magic.c: if ( (skill->target == TAR_CHAR_OFFENSIVE magic.c: || number_bits(7) == 1) /* 1/128 chance if non-offensive */ magic.c: && skill->type != SKILL_HERB magic.c: act( AT_MAGIC, "The $t spell backfires!", ch, skill->name, victim, TO_CHAR ); magic.c: act( AT_MAGIC, "$n's $t spell backfires!", ch, skill->name, victim, TO_VICT ); magic.c: act( AT_MAGIC, "$n's $t spell backfires!", ch, skill->name, victim, TO_NOTVICT ); magic.c: act( AT_MAGIC, "The $t spell backfires!", ch, skill->name, victim, TO_CHAR ); magic.c: act( AT_MAGIC, "$n's $t spell backfires!", ch, skill->name, victim, TO_VICT ); magic.c: act( AT_MAGIC, "$n's $t spell backfires!", ch, skill->name, victim, TO_NOTVICT ); magic.c: switch ( skill->target ) magic.c: target_name = victim->name; magic.c: target_name = obj->name; magic.c: if ( skill->type != SKILL_HERB magic.c: && IS_SET(victim->immune, RIS_MAGIC ) ) magic.c: if ( skill->type != SKILL_HERB magic.c: && IS_SET(ch->immune, RIS_MAGIC ) ) magic.c: retcode = (*skill->spell_fun) ( sn, level, ch, vo ); magic.c: update_userec(&time_used, &skill->userec); magic.c: if ( skill->target == TAR_CHAR_OFFENSIVE magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) magic.c: vch_next = vch->next_in_room; magic.c: if ( victim == vch && !victim->fighting && victim->master != ch ) magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: af.modifier = -4; magic.c:/* added these to prevent core dumps for new max level - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: if ( ch->in_room->area->weather->precip <= 0 ) magic.c: vch_next = vch->next; magic.c: if ( !vch->in_room ) magic.c: if ( vch->in_room == ch->in_room ) magic.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) magic.c: && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) magic.c: && vch->in_room->area == ch->in_room->area magic.c: return damage( ch, (CHAR_DATA *) vo, dice(3, 8) + level - 6, sn ); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: af.modifier = number_range( 0, 2 ) - victim->sex; magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) magic.c: || IS_SET( victim->immune, RIS_CHARM ) ) magic.c: -- What's wrong with a little charming between friends? -- Scion */ magic.c: || level < victim->level magic.c: if ( victim->master ) magic.c: sprintf( buf, "%s has charmed %s.", ch->name, victim->name); magic.c: log_string_plus( buf, LOG_NORMAL, ch->level ); magic.c: to_channel( buf, CHANNEL_MONITOR, "Monitor", UMAX( LEVEL_IMMORTAL, ch->level ) ); magic.c:/* added to prevent core dumbs for new max level - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: af.modifier = -1; magic.c:/* added to prevent core dumbs for new max level - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: weath = ch->in_room->area->weather; magic.c: change = number_range(-rand_factor, rand_factor) + magic.c: (ch->level*3)/(2*max_vector); magic.c: weath->temp_vector += change; magic.c: weath->temp_vector -= change; magic.c: weath->precip_vector += change; magic.c: weath->precip_vector -= change; magic.c: weath->wind_vector += change; magic.c: weath->wind_vector -= change; magic.c: weath->temp_vector = URANGE(-max_vector, magic.c: weath->temp_vector, max_vector); magic.c: weath->precip_vector = URANGE(-max_vector, magic.c: weath->precip_vector, max_vector); magic.c: weath->wind_vector = URANGE(-max_vector, magic.c: weath->wind_vector, max_vector); magic.c: mushroom->value[0] = 5 + level; magic.c: mushroom = obj_to_room( mushroom, ch->in_room ); magic.c: if ( obj->item_type != ITEM_DRINK_CON ) magic.c: if ( obj->value[2] != LIQ_WATER && obj->value[1] != 0 ) magic.c: weath = ch->in_room->area->weather; magic.c: obj->value[0] - obj->value[1] magic.c: obj->value[2] = LIQ_WATER; magic.c: obj->value[1] += water; magic.c: if ( !is_name( "water", obj->name ) ) magic.c: sprintf( buf, "%s water", obj->name ); magic.c: STRFREE( obj->name ); magic.c: obj->name = STRALLOC( buf ); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c:/* Next 3 are Paladin spells, until we update smaugspells -- Blodkai, 4/97 */ magic.c: if ( ch->alignment < 350 ) { magic.c: if ( IS_SET( ch->immune, RIS_MAGIC ) ) { magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) { magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) { magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: victim->mental_state = URANGE( -100, victim->mental_state, -10 ); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: af.modifier = -1; magic.c: if ( obj->item_type == ITEM_DRINK_CON || obj->item_type == ITEM_FOOD magic.c: || obj->item_type == ITEM_COOK) magic.c: if ( obj->item_type == ITEM_COOK && obj->value[2] == 0 ) magic.c: else if ( obj->value[3] != 0 ) magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: chance = ( get_curr_int ( ch ) - get_curr_int ( victim ) ); magic.c: if ( IS_SET ( victim->immune, RIS_MAGIC ) ) magic.c: chance -= 15; magic.c: if ( ch->first_affect ) magic.c: while ( ch->first_affect ) magic.c: affect_remove ( ch, ch->first_affect ); magic.c: if ( number_percent() > ( 75 - chance ) ) magic.c: if ( number_percent () > ( 75 - chance ) ) magic.c: if ( IS_NPC( victim ) && !xIS_EMPTY(victim->affected_by) ) magic.c: affected_by = number_range(0, MAX_AFFECTED_BY-1); magic.c: if ( xIS_SET(victim->affected_by, affected_by) ) magic.c: for ( paf = victim->first_affect; paf; paf = paf->next ) magic.c: if ( xIS_SET(paf->bitvector, affected_by) ) magic.c: if (level < victim->level || saves_spell_staff (level, victim)) magic.c: if ( SPELL_FLAG ( get_skilltype (paf->type), SF_NODISPEL)) magic.c: if (level < victim->level || saves_spell_staff (level, victim)) magic.c: xREMOVE_BIT(victim->affected_by, affected_by); magic.c: if ( !victim->first_affect ) magic.c: for ( paf = victim->first_affect; paf; paf = paf->next ) magic.c: paf = victim->first_affect; magic.c: for ( affect_num = number_range (0, (cnt - 1));affect_num > 0; affect_num-- ) magic.c: paf = paf->next; magic.c: if ( level < victim->level || saves_spell_staff ( level, victim ) ) magic.c: if ( !paf || SPELL_FLAG ( get_skilltype (paf->type), SF_NODISPEL)) magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) magic.c: vch_next = vch->next; magic.c: if ( !vch->in_room ) magic.c: if ( vch->in_room == ch->in_room ) magic.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) magic.c: && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) magic.c: if ( !ch_died && vch->in_room->area == ch->in_room->area ) magic.c: if ( obj->item_type != ITEM_WEAPON magic.c: || obj->first_affect ) magic.c: /* Bug fix here. -- Alty */ magic.c: paf->type = -1; magic.c: paf->duration = -1; magic.c: paf->location = APPLY_HITROLL; magic.c: paf->modifier = level / 15; magic.c: xCLEAR_BITS(paf->bitvector); magic.c: LINK( paf, obj->first_affect, obj->last_affect, next, prev ); magic.c: paf->type = -1; magic.c: paf->duration = -1; magic.c: paf->location = APPLY_DAMROLL; magic.c: paf->modifier = level / 15; magic.c: xCLEAR_BITS(paf->bitvector); magic.c: LINK( paf, obj->first_affect, obj->last_affect, next, prev ); magic.c: xSET_BIT(obj->extra_flags, ITEM_ANTI_EVIL); magic.c: xSET_BIT(obj->extra_flags, ITEM_ANTI_GOOD); magic.c: xSET_BIT(obj->extra_flags, ITEM_ANTI_EVIL); magic.c: xSET_BIT(obj->extra_flags, ITEM_ANTI_GOOD); magic.c: if ( obj->item_type != ITEM_WEAPON ) magic.c: if ( !IS_OBJ_STAT(obj, ITEM_MAGIC) || !obj->first_affect ) magic.c: if ( xIS_SET(obj->pIndexData->extra_flags, ITEM_MAGIC) ) magic.c: if ( xIS_SET(obj->pIndexData->extra_flags, ITEM_ANTI_GOOD) magic.c: || xIS_SET(obj->pIndexData->extra_flags, ITEM_ANTI_EVIL) ) magic.c: for ( paf = obj->first_affect; paf; paf = paf->next) magic.c: if ( paf->location == APPLY_HITROLL magic.c: || paf->location == APPLY_DAMROLL ) magic.c: UNLINK( paf, obj->first_affect, obj->last_affect, next, prev ); magic.c: xREMOVE_BIT(obj->extra_flags, ITEM_ANTI_EVIL); magic.c: xREMOVE_BIT(obj->extra_flags, ITEM_ANTI_GOOD); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: chance = ris_save( victim, victim->level, RIS_DRAIN ); magic.c: ch->alignment = UMAX(-1000, ch->alignment - 200); magic.c: if ( victim->level <= 2 ) magic.c: dam = ch->hit + 1; magic.c: gain_exp( victim, 0 - number_range( level / 2, 3 * level / 2 ) ); magic.c: victim->mana /= 2; magic.c: victim->move /= 2; magic.c: ch->hit += dam; magic.c: if ( ch->hit > ch->max_hit ) magic.c: ch->hit = ch->max_hit; magic.c:/* added these to prevent new max level core dump - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: for ( ich = ch->in_room->first_person; ich; ich = ich->next_in_room ) magic.c: if ( !IS_NPC(ich) && xIS_SET(ich->act, PLR_WIZINVIS) ) magic.c: xREMOVE_BIT ( ich->affected_by, AFF_HIDE ); magic.c: xREMOVE_BIT ( ich->affected_by, AFF_INVISIBLE ); magic.c: xREMOVE_BIT ( ich->affected_by, AFF_SNEAK ); magic.c: ch->in_room ); magic.c: if ( victim->master ) magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: dam = UMAX( 20, victim->hit - dice(1,4) ); magic.c: to know the keyword anyways, we may as well make it look nice -- Alty */ magic.c:/* obj->name,*/ magic.c: obj->short_descr, magic.c: if ( obj->item_type != ITEM_LIGHT && obj->wear_flags-1 > 0 ) magic.c: flag_string(obj->wear_flags-1, w_flags) ); magic.c: extra_bit_name( &obj->extra_flags ), magic.c: /* magic_bit_name( obj->magic_flags ), -- unused for now */ magic.c: obj->weight, magic.c: obj->cost, magic.c: obj->level ); magic.c: switch ( obj->item_type ) magic.c: ch_printf( ch, "%s appears to be %s.\n\r", capitalize(obj->short_descr), magic.c: obj->value[0] < 76 ? "of a small capacity" : magic.c: obj->value[0] < 150 ? "of a small to medium capacity" : magic.c: obj->value[0] < 300 ? "of a medium capacity" : magic.c: obj->value[0] < 550 ? "of a medium to large capacity" : magic.c: obj->value[0] < 751 ? "of a large capacity" : magic.c: ch_printf( ch, "Level %d spells of:", obj->value[0] ); magic.c: if ( obj->value[1] >= 0 && (sktmp=get_skilltype(obj->value[1])) != NULL ) magic.c: send_to_char( sktmp->name, ch ); magic.c: if ( obj->value[2] >= 0 && (sktmp=get_skilltype(obj->value[2])) != NULL ) magic.c: send_to_char( sktmp->name, ch ); magic.c: if ( obj->value[3] >= 0 && (sktmp=get_skilltype(obj->value[3])) != NULL ) magic.c: send_to_char( sktmp->name, ch ); magic.c: obj->value[1], obj->value[2], obj->value[0] ); magic.c: if ( obj->value[4] >= 0 && (sktmp=get_skilltype(obj->value[4])) != NULL ) magic.c: send_to_char( sktmp->name, ch ); magic.c: if ( obj->value[5] >= 0 && (sktmp=get_skilltype(obj->value[5])) != NULL ) magic.c: send_to_char( sktmp->name, ch ); magic.c: obj->value[1], obj->value[2], obj->value[0] ); magic.c: if ( obj->value[3] >= 0 && (sktmp=get_skilltype(obj->value[3])) != NULL ) magic.c: send_to_char( sktmp->name, ch ); magic.c: obj->value[1], obj->value[2], magic.c: ( obj->value[1] + obj->value[2] ) / 2, magic.c: if (obj->value[3] == 0) magic.c: if (obj->value[3] == 1) magic.c: if (obj->value[3] == 2) magic.c: if (obj->value[3] == 3) magic.c: if (obj->value[3] == 4) magic.c: if (obj->value[3] == 5) magic.c: if (obj->value[3] == 6) magic.c: if (obj->value[3] == 7) magic.c: if (obj->value[3] == 8) magic.c: if (obj->value[3] == 9) magic.c: ch_printf( ch, "Weapon Type: Unknown\n\r" ); /* What type would a v3 of 9 make it? Not sure-Joe*/ magic.c: if (obj->value[3] == 10) magic.c: if (obj->value[3] == 11) magic.c: if (obj->value[3] == 12) magic.c: if (obj->value[3] >= 13) magic.c:/* that covers all of them -Joe */ magic.c: ch_printf( ch, "Armor class is %d.\n\r", obj->value[0] ); magic.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) magic.c: for ( paf = obj->first_affect; paf; paf = paf->next ) magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: * use their name -- Shaddai magic.c: if ( victim->morph && victim->morph->morph ) magic.c: name = capitalize(victim->morph->morph->short_desc); magic.c: name = capitalize(victim->short_descr); magic.c: name = victim->name; magic.c: victim->level - (victim->level % 5), magic.c: victim->level - (victim->level % 5) + 5); magic.c:/* DELETE LATER -- SHADDAI magic.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_POLYMORPHED) ) magic.c: ((ch->level > victim->level + 10) magic.c: && victim->desc && victim->desc->original) magic.c: ? victim->desc->original->name : "someone else"); magic.c: if ( IS_NPC(victim) && victim->morph ) magic.c: (ch->level > victim->level + 10) magic.c: ? victim->name : "someone else"); magic.c: if ( (chance(ch, 50) && ch->level >= victim->level + 10 ) magic.c: if (!victim->first_affect) magic.c: for ( paf = victim->first_affect; paf; paf = paf->next ) magic.c: if (victim->first_affect != victim->last_affect) magic.c: if( paf != victim->last_affect && (sktmp=get_skilltype(paf->type)) != NULL ) magic.c: ch_printf( ch, "%s, ", sktmp->name ); magic.c: if( paf == victim->last_affect && (sktmp=get_skilltype(paf->type)) != NULL ) magic.c: ch_printf( ch, "and %s.\n\r", sktmp->name ); magic.c: if ( (sktmp=get_skilltype(paf->type)) != NULL ) magic.c: ch_printf( ch, "%s.\n\r", sktmp->name ); magic.c:/* Modifications on 1/2/96 to work on player/object - Scryn */ magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: separate_obj(obj); /* Fix multi-invis bug --Blod */ magic.c: xSET_BIT( obj->extra_flags, ITEM_INVIS ); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: ap = victim->alignment; magic.c: else if ( ap > -100 ) msg = "$N doesn't have a firm moral commitment."; magic.c: else if ( ap > -350 ) msg = "$N lies to $S friends."; magic.c: else if ( ap > -700 ) msg = "$N would just as soon kill you as look at you."; magic.c:/* add more to prevent core dump for new max level - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: for ( obj = first_object; obj; obj = obj->next ) magic.c: if ( !can_see_obj( ch, obj ) || !nifty_is_name( target_name, obj->name ) ) magic.c: in_obj->in_obj && cnt < 100; magic.c: in_obj = in_obj->in_obj, ++cnt ) magic.c: obj->pIndexData->vnum, obj->short_descr, MAX_NEST ); magic.c: if ( in_obj->carried_by ) magic.c: if ( IS_IMMORTAL( in_obj->carried_by ) magic.c: && !IS_NPC( in_obj->carried_by ) magic.c: && ( get_trust( ch ) < in_obj->carried_by->pcdata->wizinvis ) magic.c: && xIS_SET( in_obj->carried_by->act, PLR_WIZINVIS ) ) magic.c: found--; magic.c: obj_short(obj), PERS(in_obj->carried_by, ch) ); magic.c: obj_short(obj), in_obj->in_room == NULL magic.c: ? "somewhere" : in_obj->in_room->name ); magic.c:/* add more to prevent core dump for new max level - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: /* What's this? You can't save vs. magic missile! -Thoric magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: af.modifier = -2; magic.c: victim->mental_state = URANGE( 10, victim->mental_state magic.c: victim->mental_state = URANGE( 20, victim->mental_state magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: if ( victim->first_carrying ) magic.c: for ( obj = victim->first_carrying; obj; obj = obj->next_content ) magic.c: if ( !obj->in_obj magic.c: xREMOVE_BIT( obj->extra_flags, ITEM_NOREMOVE ); magic.c: xREMOVE_BIT( obj->extra_flags, ITEM_NODROP ); magic.c: if ( !ch->in_room->first_content ) magic.c: for ( obj = ch->in_room->first_content; obj; obj = obj->next_content ) magic.c: if ( can_see_obj( ch, obj ) && nifty_is_name( target_name, obj->name ) ) magic.c:/* added more to prevent new max level core dump - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: if ( !IS_NPC(victim) && victim->fighting ) magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: || level < victim->level magic.c: || (victim != ch && IS_SET(victim->in_room->room_flags, ROOM_SAFE)) magic.c: if ( !victim->fighting ) magic.c: sprintf( log_buf, "%s has cast sleep on %s.", ch->name, victim->name ); magic.c: log_string_plus( log_buf, LOG_NORMAL, ch->level ); magic.c: to_channel( log_buf, CHANNEL_MONITOR, "Monitor", UMAX( LEVEL_IMMORTAL, ch->level ) ); magic.c: victim->position = POS_SLEEPING; magic.c: || !victim->in_room magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SAFE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_SUMMON) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL) magic.c: || victim->fighting magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: || !in_hard_range( victim, ch->in_room->area ) magic.c: || (IS_SET(ch->in_room->area->flags, AFLAG_NOPKILL) && IS_PKILL(victim)) magic.c: || ( !IS_NPC(ch) && !IS_NPC(victim) && IS_SET(victim->pcdata->flags, PCFLAG_NOSUMMON) ) ) magic.c: if ( ch->in_room->area != victim->in_room->area ) magic.c: sprintf( buf, "%s summoned %s to room %d.", ch->name, magic.c: victim->name, magic.c: ch->in_room->vnum ); magic.c: log_string_plus( buf, LOG_NORMAL, ch->level ); magic.c: to_channel( buf, CHANNEL_MONITOR, "Monitor", UMAX( LEVEL_IMMORTAL, ch->level ) ); magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, victim, TO_CHAR ); magic.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_vict, ch, NULL, victim, TO_VICT ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, victim, NULL, ch, TO_ROOM ); magic.c: char_to_room( victim, ch->in_room ); magic.c: if ( skill->hit_dest && skill->hit_dest[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_dest, victim, NULL, ch, TO_ROOM ); magic.c: * -Thoric magic.c: || !in_hard_range(ch, victim->in_room->area) ) magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, victim, TO_CHAR ); magic.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_vict, ch, NULL, victim, TO_VICT ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, victim, TO_NOTVICT ); magic.c: char_to_room( ch, victim->in_room ); magic.c: if ( skill->hit_dest && skill->hit_dest[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_dest, ch, NULL, victim, TO_NOTVICT ); magic.c: if ( !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL) magic.c: || ( !IS_NPC(ch) && victim->fighting ) magic.c: if ( !IS_SET(pRoomIndex->room_flags, ROOM_PRIVATE) magic.c: && !IS_SET(pRoomIndex->room_flags, ROOM_SOLITARY) magic.c: && !IS_SET(pRoomIndex->room_flags, ROOM_NO_ASTRAL) magic.c: && !IS_SET(pRoomIndex->area->flags, AFLAG_NOTELEPORT) magic.c: && !IS_SET(pRoomIndex->room_flags, ROOM_PROTOTYPE) magic.c: && !IS_SET(pRoomIndex->room_flags, ROOM_NO_RECALL) magic.c: && in_hard_range( ch, pRoomIndex->area ) ) magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, victim, TO_CHAR ); magic.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_vict, ch, NULL, victim, TO_VICT ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, victim, NULL, ch, TO_ROOM ); magic.c: sprintf( buf, "%s teleported %s to room %d.", ch->name, magic.c: victim->name, magic.c: victim->in_room->vnum ); magic.c: log_string_plus( buf, LOG_NORMAL, ch->level ); magic.c: to_channel( buf, CHANNEL_MONITOR, "Monitor", UMAX( LEVEL_IMMORTAL, ch->level ) ); magic.c: if ( skill->hit_dest && skill->hit_dest[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_dest, victim, NULL, ch, TO_ROOM ); magic.c: if ( !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL) magic.c: || ( !IS_NPC(ch) && victim->fighting ) magic.c: pRoomIndex = get_room_index(ch->pcdata->memorize[i]); magic.c: if ( IS_SET( pRoomIndex->room_flags, ROOM_NO_ASTRAL ) ) magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, ch, TO_CHAR ); magic.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_vict, ch, NULL, ch, TO_VICT ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, ch, TO_ROOM ); magic.c: sprintf( buf, "%s teleported %s to room %d.", ch->name, magic.c: ch->name, magic.c: ch->in_room->vnum ); magic.c: log_string_plus( buf, LOG_NORMAL, ch->level ); magic.c: to_channel( buf, CHANNEL_MONITOR, "Monitor", UMAX( LEVEL_IMMORTAL, ch->level ) ); magic.c: if ( skill->hit_dest && skill->hit_dest[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_dest, ch, NULL, ch, TO_ROOM ); magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) magic.c: if ( !is_name( speaker, vch->name ) ) { magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: af.modifier = -2; magic.c: if ( ( ( ( !IS_NPC(victim) && class_table[victim->class]->attr_prime == APPLY_STR ) magic.c: * A spell as it should be -Thoric magic.c: for ( obj_lose = victim->first_carrying; obj_lose; obj_lose = obj_next ) magic.c: obj_next = obj_lose->next_content; magic.c: switch ( obj_lose->item_type ) magic.c: if ( obj_lose->value[0] > 0 ) magic.c: if ( ( iWear = obj_lose->wear_loc ) != WEAR_NONE ) magic.c: victim->armor -= apply_ac( obj_lose, iWear ); magic.c: obj_lose->value[0] -= 1; magic.c: obj_lose->cost = 0; magic.c: victim->armor += apply_ac( obj_lose, iWear ); magic.c: empty_obj( obj_lose, NULL, victim->in_room ); magic.c: hpch = UMAX( 10, ch->hit ); magic.c: for ( obj_lose = victim->first_carrying; obj_lose; magic.c: obj_next = obj_lose->next_content; magic.c: switch ( obj_lose->item_type ) magic.c: if ( obj_lose->item_type == ITEM_CONTAINER ) magic.c: empty_obj( obj_lose, NULL, victim->in_room ); magic.c: hpch = UMAX( 10, ch->hit ); magic.c: for ( obj_lose = victim->first_carrying; obj_lose; magic.c: obj_next = obj_lose->next_content; magic.c: switch ( obj_lose->item_type ) magic.c: if ( obj_lose->item_type == ITEM_CONTAINER ) magic.c: empty_obj( obj_lose, NULL, victim->in_room ); magic.c: hpch = UMAX( 10, ch->hit ); magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) magic.c: vch_next = vch->next_in_room; magic.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) magic.c: && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) magic.c: hpch = UMAX( 10, ch->hit ); magic.c: hpch = UMAX( 10, ch->hit ); magic.c: * enchant armour? (say -1/-2/-3 ac ) magic.c:/* Working on DM's transport eq suggestion - Scryn 8/13 */ magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE))) magic.c: || ( victim->carry_weight + get_obj_weight ( obj ) ) > can_carry_w(victim) magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE))) magic.c: separate_obj(obj); /* altrag shoots, haus alley-oops! */ magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, obj, NULL, TO_CHAR ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, ch, obj, NULL, TO_ROOM ); magic.c: if ( skill->hit_char && skill->hit_dest[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, victim, obj, NULL, TO_CHAR ); magic.c: if ( skill->hit_room && skill->hit_dest[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, victim, obj, NULL, TO_ROOM ); magic.c: * opens a 2-way EX_PORTAL from caster's room to room inhabited by magic.c: and victim are not both pkill or both peaceful. -- Narn magic.c: || !in_hard_range(ch, victim->in_room->area) magic.c: || !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || victim->level >= level + 15 magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: if (victim->in_room == ch->in_room) magic.c: targetRoomVnum = victim->in_room->vnum; magic.c: fromRoom = ch->in_room; magic.c: targetRoom = victim->in_room; magic.c: for ( pexit = fromRoom->first_exit; pexit; pexit = pexit->next ) magic.c: if ( IS_SET( pexit->exit_info, EX_PORTAL ) ) magic.c: if ( pexit->vdir == DIR_PORTAL ) magic.c: for ( pexit = targetRoom->first_exit; pexit; pexit = pexit->next ) magic.c: if ( pexit->vdir == DIR_PORTAL ) magic.c: pexit->keyword = STRALLOC( "portal" ); magic.c: pexit->description = STRALLOC( "You gaze into the shimmering portal...\n\r" ); magic.c: pexit->key = -1; magic.c: pexit->exit_info = EX_PORTAL | EX_xENTER | EX_HIDDEN | EX_xLOOK; magic.c: pexit->vnum = targetRoomVnum; magic.c: portalObj->timer = 3; magic.c: sprintf( buf, "a portal created by %s", ch->name ); magic.c: STRFREE( portalObj->short_descr ); magic.c: portalObj->short_descr = STRALLOC( buf ); magic.c: if ( !skill->hit_char || skill->hit_char[0] == '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, victim, TO_CHAR ); magic.c: if ( !skill->hit_room || skill->hit_room[0] == '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, victim, TO_ROOM ); magic.c: if ( !skill->hit_vict || skill->hit_vict[0] == '\0' ) magic.c: act( AT_MAGIC, skill->hit_vict, victim, NULL, victim, TO_ROOM ); magic.c: portalObj = obj_to_room( portalObj, ch->in_room ); magic.c: pexit->keyword = STRALLOC( "portal" ); magic.c: pexit->description = STRALLOC( "You gaze into the shimmering portal...\n\r" ); magic.c: pexit->key = -1; magic.c: pexit->exit_info = EX_PORTAL | EX_xENTER | EX_HIDDEN; magic.c: pexit->vnum = targetRoomVnum; magic.c: portalObj->timer = 3; magic.c: STRFREE( portalObj->short_descr ); magic.c: portalObj->short_descr = STRALLOC( buf ); magic.c: ch->name, fromRoom->vnum, targetRoomVnum ); magic.c: log_string_plus( buf, LOG_NORMAL, ch->level ); magic.c: to_channel( buf, CHANNEL_MONITOR, "Monitor", UMAX( LEVEL_IMMORTAL, ch->level) ); magic.c: || !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) magic.c: || victim->level >= level + 15 magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: location = victim->in_room; magic.c: original = ch->in_room; magic.c: if ( obj->item_type == ITEM_STAFF magic.c: || obj->item_type == ITEM_WAND) magic.c: if ( obj->value[2] == obj->value[1] magic.c: || obj->value[1] > (obj->pIndexData->value[1] * 4) ) magic.c: if ( damage(ch, ch, obj->level * 2, TYPE_UNDEFINED) == rCHAR_DIED magic.c: obj->value[1] *= 2; magic.c: obj->value[2] = obj->value[1]; magic.c: obj->value[2] = obj->value[1]; magic.c: if ( chance(ch, 50 - (ch->level/2) ) ) magic.c: --obj->value[1]; magic.c: obj->value[2] = obj->value[1]; magic.c: * -Thoric magic.c: || !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || (victim->in_room->sector_type != SECT_FOREST magic.c: && victim->in_room->sector_type != SECT_FIELD) magic.c: || (ch->in_room->sector_type != SECT_FOREST magic.c: && ch->in_room->sector_type != SECT_FIELD) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) magic.c: || victim->level >= level + 15 magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: || !in_hard_range( ch, victim->in_room->area ) magic.c: || (IS_SET(victim->in_room->area->flags, AFLAG_NOPKILL) && IS_PKILL(ch))) magic.c: if ( ch->in_room->sector_type == SECT_FOREST ) magic.c: char_to_room( ch, victim->in_room ); magic.c: if ( ch->in_room->sector_type == SECT_FOREST ) magic.c: * Vampire version of astral_walk -Thoric magic.c: && ch->pcdata->condition[COND_BLOODTHIRST] > 22 ) magic.c: || !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) magic.c: || victim->level >= level + 15 magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: || !in_hard_range( ch, victim->in_room->area ) magic.c: || (IS_SET(victim->in_room->area->flags, AFLAG_NOPKILL) && IS_PKILL(ch))) magic.c: gain_condition( ch, COND_BLOODTHIRST, - 22 ); magic.c: char_to_room( ch, victim->in_room ); magic.c: * Cleric version of astral_walk -Thoric magic.c: WEATHER_DATA *weath = ch->in_room->area->weather; magic.c: || !victim->in_room magic.c: || weath->precip >= 0 magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) magic.c: || victim->level >= level + 15 magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: || !in_hard_range( ch, victim->in_room->area ) magic.c: || (IS_SET(victim->in_room->area->flags, AFLAG_NOPKILL) && IS_PKILL(ch))) magic.c: char_to_room( ch, victim->in_room ); magic.c: xREMOVE_BIT(obj->extra_flags, ITEM_INVIS); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) ) magic.c: if ( chance(ch, 50) && ch->level + 10 < victim->level ) magic.c: if ( chance(ch, 50) && ch->level + 15 < victim->level ) magic.c: xREMOVE_BIT ( victim->affected_by, AFF_INVISIBLE ); magic.c: for (corpse = ch->in_room->first_content; corpse; corpse = corpse_next) magic.c: corpse_next = corpse->next_content; magic.c: if (corpse->item_type == ITEM_CORPSE_NPC && corpse->cost != -5) magic.c: if ( (pMobIndex = get_mob_index((sh_int) abs(corpse->cost) )) == NULL ) magic.c: if ( !IS_IMMORTAL(ch) && ch->pcdata->condition[COND_BLOODTHIRST] - magic.c: (pMobIndex->level/3) < 0 ) magic.c: gain_condition(ch, COND_BLOODTHIRST, pMobIndex->level/3); magic.c: else if ( ch->mana - (pMobIndex->level*4) < 0 ) magic.c: ch->mana -= (pMobIndex->level*4); magic.c: if ( IS_IMMORTAL(ch) || ( chance(ch, 75) && pMobIndex->level - ch->level < 10 ) ) magic.c: char_to_room( mob, ch->in_room ); magic.c: mob->level = UMIN(ch->level / 2, pMobIndex->level); magic.c: mob->race = pMobIndex->race; /* should be undead */ magic.c: /* Fix so mobs wont have 0 hps and crash mud - Scryn 2/20/96 */ magic.c: if (!pMobIndex->hitnodice) magic.c: mob->max_hit = pMobIndex->level * 8 + number_range( magic.c: pMobIndex->level * pMobIndex->level / 4, magic.c: pMobIndex->level * pMobIndex->level ); magic.c: mob->max_hit = dice(pMobIndex->hitnodice, pMobIndex->hitsizedice) magic.c: + pMobIndex->hitplus; magic.c: mob->max_hit = UMAX( URANGE( mob->max_hit / 4, magic.c: (mob->max_hit * corpse->value[3]) / 100, magic.c: ch->level * dice(20,10)), 1 ); magic.c: mob->hit = mob->max_hit; magic.c: mob->damroll = ch->level / 8; magic.c: mob->hitroll = ch->level / 6; magic.c: mob->alignment = ch->alignment; magic.c: act(AT_MAGIC, "$n makes $T rise from the grave!", ch, NULL, pMobIndex->short_descr, TO_ROOM); magic.c: act(AT_MAGIC, "You make $T rise from the grave!", ch, NULL, pMobIndex->short_descr, TO_CHAR); magic.c: sprintf(buf, "animated corpse %s", pMobIndex->player_name); magic.c: STRFREE(mob->name); magic.c: mob->name = STRALLOC(buf); magic.c: sprintf(buf, "The animated corpse of %s", pMobIndex->short_descr); magic.c: STRFREE(mob->short_descr); magic.c: mob->short_descr = STRALLOC(buf); magic.c: sprintf(buf, "An animated corpse of %s struggles with the horror of its undeath.\n\r", pMobIndex->short_descr); magic.c: STRFREE(mob->long_descr); magic.c: mob->long_descr = STRALLOC(buf); magic.c: if (corpse->first_content) magic.c: for( obj = corpse->first_content; obj; obj = obj_next) magic.c: obj_next = obj->next_content; magic.c: obj_to_room(obj, corpse->in_room); magic.c:/* Works now.. -- Altrag */ magic.c: if (ch->desc->original) magic.c: if (victim->desc) magic.c: ch_printf(ch, "%s is already possessed.\n\r", victim->short_descr); magic.c: if ( IS_SET( victim->immune, RIS_MAGIC ) magic.c: || IS_SET( victim->immune, RIS_CHARM ) ) magic.c: || level < victim->level magic.c: || victim->desc magic.c: af.duration = 20 + (ch->level - victim->level) / 2; magic.c: sprintf(buf, "You have possessed %s!\n\r", victim->short_descr); magic.c: ch->desc->character = victim; magic.c: ch->desc->original = ch; magic.c: victim->desc = ch->desc; magic.c: ch->desc = NULL; magic.c: ch->switched = victim; magic.c:/* Ignores pickproofs, but can't unlock containers. -- Altrag 17/2/96 */ magic.c: * exits. -Thoric magic.c: || !IS_SET(pexit->exit_info, EX_CLOSED) magic.c: || !IS_SET(pexit->exit_info, EX_LOCKED) magic.c: || IS_SET(pexit->exit_info, EX_PICKPROOF) ) magic.c: REMOVE_BIT(pexit->exit_info, EX_LOCKED); magic.c: if ( pexit->rexit && pexit->rexit->to_room == ch->in_room ) magic.c: REMOVE_BIT( pexit->rexit->exit_info, EX_LOCKED ); magic.c: check_room_for_traps( ch, TRAP_UNLOCK | trap_door[pexit->vdir] ); magic.c:/* Tells to sleepers in are. -- Altrag 17/2/96 */ magic.c: victim->in_room->area != ch->in_room->area ) magic.c: if ( victim->position != POS_SLEEPING ) magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) magic.c: vch_next = vch->next_in_room; magic.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) magic.c: && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) magic.c: hpch = UMAX( 10, ch->hit ); magic.c:/* added more to prevent new max level core dump - shogar */ magic.c: level = UMIN(level, sizeof(dam_each)/sizeof(dam_each[0]) - 1); magic.c: || !victim->in_room magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) magic.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) magic.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) magic.c: || victim->level >= level + 15 magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) magic.c: || !in_hard_range( ch, victim->in_room->area ) magic.c: || (IS_SET(victim->in_room->area->flags, AFLAG_NOPKILL) && IS_PKILL(ch))) magic.c: char_to_room( ch, victim->in_room ); magic.c: * saving throw check -Thoric magic.c: if ( skill->saves ) magic.c: switch( skill->saves ) magic.c: * Generic offensive spell damage attack -Thoric magic.c: if ( skill->dice ) magic.c: dam = UMAX( 0, dice_parse( ch, level, skill->dice ) ); magic.c: act( AT_MAGIC, "$N absorbs your $t!", ch, skill->noun_damage, victim, TO_CHAR ); magic.c: act( AT_MAGIC, "You absorb $N's $t!", victim, skill->noun_damage, ch, TO_CHAR ); magic.c: act( AT_MAGIC, "$N absorbs $n's $t!", ch, skill->noun_damage, victim, TO_NOTVICT ); magic.c: victim->hit = URANGE( 0, victim->hit + dam, victim->max_hit ); magic.c: if ( (dam > 0 && ch->fighting && ch->fighting->who == victim) magic.c: || (dam > 0 && victim->fighting && victim->fighting->who == ch) ) magic.c: int xp = ch->fighting ? ch->fighting->xp : victim->fighting->xp; magic.c: int xp_gain = (int) (xp * dam * 2) / victim->max_hit; magic.c: gain_exp( ch, 0 - xp_gain ); magic.c: if ( skill->affects ) magic.c: if ( retcode == rNONE && skill->affects magic.c: * Generic area attack -Thoric magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) magic.c: affects = (skill->affects ? TRUE : FALSE); magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, NULL, TO_CHAR ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, NULL, TO_ROOM ); magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) magic.c: vch_next = vch->next_in_room; magic.c: if ( !IS_NPC(vch) && xIS_SET(vch->act, PLR_WIZINVIS) magic.c: && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) magic.c: if ( skill->dice ) magic.c: dam = dice_parse(ch, level, skill->dice); magic.c: act( AT_MAGIC, "$N absorbs your $t!", ch, skill->noun_damage, vch, TO_CHAR ); magic.c: act( AT_MAGIC, "You absorb $N's $t!", vch, skill->noun_damage, ch, TO_CHAR ); magic.c: act( AT_MAGIC, "$N absorbs $n's $t!", ch, skill->noun_damage, vch, TO_NOTVICT ); magic.c: vch->hit = URANGE( 0, vch->hit + dam, vch->max_hit ); magic.c: if ( (dam > 0 && ch->fighting && ch->fighting->who == vch) magic.c: || (dam > 0 && vch->fighting && vch->fighting->who == ch) ) magic.c: int xp = ch->fighting ? ch->fighting->xp : vch->fighting->xp; magic.c: int xp_gain = (int) (xp * dam * 2) / vch->max_hit; magic.c: gain_exp( ch, 0 - xp_gain ); magic.c: for ( saf = skill->affects; saf; saf = saf->next ) magic.c: if ( saf->location >= REVERSE_APPLY ) magic.c: af.bitvector = meb(saf->bitvector); magic.c: if ( saf->bitvector >= 0 magic.c: && xIS_SET(victim->affected_by, saf->bitvector) magic.c: switch ( saf->bitvector ) magic.c: victim->mental_state = URANGE( 30, victim->mental_state + 2, 100 ); magic.c: af.duration = dice_parse(ch, level, saf->duration); magic.c: af.modifier = dice_parse(ch, level, saf->modifier); magic.c: af.location = saf->location % REVERSE_APPLY; magic.c: victim->hit = URANGE( 0, victim->hit + af.modifier, victim->max_hit ); magic.c: if ( (af.modifier > 0 && ch->fighting && ch->fighting->who == victim) magic.c: || (af.modifier > 0 && victim->fighting && victim->fighting->who == ch) ) magic.c: int xp = ch->fighting ? ch->fighting->xp : victim->fighting->xp; magic.c: xp_gain = (int) (xp * af.modifier*2) / victim->max_hit; magic.c: gain_exp( ch, 0 - xp_gain ); magic.c: victim->mana = URANGE( 0, victim->mana + af.modifier, victim->max_mana ); magic.c: victim->move = URANGE( 0, victim->move + af.modifier, victim->max_move ); magic.c: * Generic spell affect -Thoric magic.c: if ( !skill->affects ) magic.c: if ( (skill->type != SKILL_HERB magic.c: && IS_SET( victim->immune, RIS_MAGIC )) magic.c: if ( (saf = skill->affects) && !saf->next magic.c: && saf->location == APPLY_STRIPSN magic.c: && !is_affected( victim, dice_parse(ch, level, saf->modifier) ) ) magic.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) magic.c: if ( strstr(skill->hit_char, "$N") ) magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, NULL, TO_CHAR ); magic.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) magic.c: if ( strstr(skill->hit_room, "$N") ) magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, NULL, TO_ROOM ); magic.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) magic.c: victim = victim->in_room->first_person; magic.c: victim = ch->in_room->first_person; magic.c: for ( ; victim; victim = victim->next_in_room ) magic.c: || IS_SET( victim->immune, RIS_MAGIC ) magic.c: act( AT_MAGIC, skill->hit_vict, ch, NULL, victim, TO_VICT ); magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, victim, TO_NOTVICT ); magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, victim, TO_CHAR ); magic.c: act( AT_MAGIC, skill->hit_room, ch, NULL, victim, TO_ROOM ); magic.c: act( AT_MAGIC, skill->hit_vict, ch, NULL, ch, TO_CHAR ); magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, ch, TO_CHAR ); magic.c: act( AT_MAGIC, skill->hit_char, ch, NULL, victim, TO_CHAR ); magic.c: * Generic inventory object spell -Thoric magic.c: WEATHER_DATA *weath = ch->in_room->area->weather; magic.c: if ( obj->item_type != ITEM_DRINK_CON ) magic.c: if ( obj->value[2] != LIQ_WATER && obj->value[1] != 0 ) magic.c: water = UMIN( (skill->dice ? dice_parse(ch, level, skill->dice) : level) magic.c: * (weath->precip >= 0 ? 2 : 1), magic.c: obj->value[0] - obj->value[1] ); magic.c: obj->value[2] = LIQ_WATER; magic.c: obj->value[1] += water; magic.c: if ( !is_name( "water", obj->name ) ) magic.c: sprintf( buf, "%s water", obj->name ); magic.c: STRFREE( obj->name ); magic.c: obj->name = STRALLOC( buf ); magic.c: switch( obj->item_type ) magic.c: obj->value[3] = 1; magic.c: && (obj->item_type == ITEM_FOOD || obj->item_type == ITEM_DRINK_CON magic.c: || obj->item_type == ITEM_COOK) ) magic.c: switch( obj->item_type ) magic.c: obj->value[3] = 0; magic.c: if ( ch->level - obj->level < 10 magic.c: || obj->cost > ch->level * get_curr_int(ch) * get_curr_wis(ch) ) magic.c: if ( ch->level - obj->level < 20 magic.c: || obj->cost > ch->level * get_curr_int(ch) / 5 ) magic.c: if ( ch->level - obj->level < 5 magic.c: || obj->cost > ch->level * 10 * get_curr_int(ch) * get_curr_wis(ch) ) magic.c: if ( ch->level - obj->level < 0 magic.c: || obj->cost > ch->level * 50 * get_curr_int(ch) * get_curr_wis(ch) ) magic.c: clone->timer = skill->dice ? dice_parse(ch, level, skill->dice) : 0; magic.c: if ( obj->item_type == ITEM_DRINK_CON magic.c: || obj->item_type == ITEM_FOOD magic.c: || obj->item_type == ITEM_COOK ) magic.c: if ( obj->item_type == ITEM_COOK && obj->value[2] == 0) magic.c: else if ( obj->value[3] != 0 ) magic.c: || chance(ch, skill->dice ? dice_parse(ch, level, skill->dice) : 20)) magic.c: xSET_BIT(obj->extra_flags, ITEM_INVIS); magic.c: * Generic object creating spell -Thoric magic.c: int vnum = skill->value; magic.c: obj->timer = skill->dice ? dice_parse( ch, level, skill->dice ) : 0; magic.c: obj_to_room( obj, ch->in_room ); magic.c: * Generic mob creating spell -Thoric magic.c: int vnum = skill->value; magic.c: mob->level = UMIN( lvl, skill->dice ? dice_parse(ch, level, skill->dice) : mob->level ); magic.c: mob->armor = interpolate( mob->level, 100, -100 ); magic.c: mob->max_hit = mob->level * 8 + number_range( magic.c: mob->level * mob->level / 4, magic.c: mob->level * mob->level ); magic.c: mob->hit = mob->max_hit; magic.c: mob->gold = 0; magic.c: char_to_room( mob, ch->in_room ); magic.c: * Generic handler for new "SMAUG" spells -Thoric magic.c:/* added bad skill check - shogar */ magic.c: if(!skill || sn == -1) magic.c: switch( skill->target ) magic.c: if ( skill->range > 0 && ( magic.c: return ranged_attack(ch, ranged_target_name, NULL, NULL, sn, skill->range ); magic.c: ( ch->position == POS_FIGHTING magic.c: || ch->position == POS_EVASIVE magic.c: || ch->position == POS_DEFENSIVE magic.c: || ch->position == POS_AGGRESSIVE magic.c: || ch->position == POS_BERSERK ) ) magic.c: victim->mental_state = URANGE( -100, victim->mental_state, -10 ); magic.c: dam = 1.3*(level*number_range( 1, 6 ))-31; magic.c:/* Non-offensive spell! */ magic.c: dam = 1.3*(2*level*number_range( 1, 6 ))-31; magic.c: * Black-magicish guys magic.c: || ( obj->item_type == ITEM_CORPSE_NPC) magic.c: || ( obj->item_type == ITEM_CORPSE_PC ) magic.c: val = obj->cost/2; magic.c: if( obj->item_type==ITEM_WEAPON ){ magic.c: } else if ( obj->item_type==ITEM_ARMOR ){ magic.c: } else if ( obj->item_type==ITEM_SCROLL ){ magic.c: } else if ( obj->item_type==ITEM_STAFF ){ magic.c: } else if ( obj->item_type==ITEM_WAND ){ magic.c: ch->gold += val; magic.c: if ( cur_obj == obj->serial ) magic.c: if ( ( victim->carry_weight + get_obj_weight ( obj ) ) > can_carry_w(victim) magic.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE))) magic.c: ch->gold += val; magic.c: if ( cur_obj == obj->serial ) magic.c: ch->gold += val; magic.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) magic.c: hpch = UMAX( 10, ch->hit ); magic.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) magic.c: vch_next = vch->next_in_room; magic.c: if ( !vch->in_room ) magic.c: if ( !IS_NPC( vch ) && xIS_SET( vch->act, PLR_WIZINVIS ) && vch->pcdata->wizinvis >= LEVEL_IMMORTAL ) magic.c: if ( saves_spell_staff( level, vch ) ) /* small fix, --Cronel */ makeobjs.c: * -----------------------------------------------------------| (0...0) * makeobjs.c: * -----------------------------------------------------------| {o o} * makeobjs.c: * ------------------------------------------------------------------------ * makeobjs.c: * ------------------------------------------------------------------------ * makeobjs.c: fire->timer = number_fuzzy(timer); makeobjs.c: trap->timer = 0; makeobjs.c: trap->value[0] = v0; makeobjs.c: trap->value[1] = v1; makeobjs.c: trap->value[2] = v2; makeobjs.c: trap->value[3] = v3; makeobjs.c: * Turn an object into scraps. -Thoric makeobjs.c: if ((obj->carried_by && IS_IMMORTAL(obj->carried_by)) || IS_OBJ_STAT(obj, ITEM_ARTIFACT)) makeobjs.c: scraps->timer = number_range( 5, 15 ); makeobjs.c: if ( obj->pIndexData->vnum == OBJ_VNUM_SCRAPS ) makeobjs.c: STRFREE( scraps->short_descr ); makeobjs.c: scraps->short_descr = STRALLOC( "some debris" ); makeobjs.c: STRFREE( scraps->description ); makeobjs.c: scraps->description = STRALLOC( "Bits of debris lie on the ground here." ); makeobjs.c: sprintf( buf, scraps->short_descr, obj->short_descr ); makeobjs.c: STRFREE( scraps->short_descr ); makeobjs.c: scraps->short_descr = STRALLOC( buf ); makeobjs.c: sprintf( buf, scraps->description, obj->short_descr ); makeobjs.c: STRFREE( scraps->description ); makeobjs.c: scraps->description = STRALLOC( buf ); makeobjs.c: if ( obj->carried_by ) makeobjs.c: obj->carried_by, obj, NULL, TO_CHAR ); makeobjs.c: if ( obj == get_eq_char( obj->carried_by, WEAR_WIELD ) makeobjs.c: && (tmpobj = get_eq_char( obj->carried_by, WEAR_DUAL_WIELD)) != NULL ) makeobjs.c: tmpobj->wear_loc = WEAR_WIELD; makeobjs.c: obj_to_room( scraps, obj->carried_by->in_room); makeobjs.c: if ( obj->in_room ) makeobjs.c: if ( (ch = obj->in_room->first_person ) != NULL ) makeobjs.c: obj_to_room( scraps, obj->in_room); makeobjs.c: if ( (obj->item_type == ITEM_CONTAINER || obj->item_type == ITEM_KEYRING makeobjs.c: || obj->item_type == ITEM_QUIVER || obj->item_type == ITEM_CORPSE_PC) makeobjs.c: && obj->first_content ) makeobjs.c: if ( ch && ch->in_room ) makeobjs.c: if ( obj->carried_by ) makeobjs.c: empty_obj( obj, NULL, obj->carried_by->in_room ); makeobjs.c: if ( obj->in_room ) makeobjs.c: empty_obj( obj, NULL, obj->in_room ); makeobjs.c: if ( obj->in_obj ) makeobjs.c: empty_obj( obj, obj->in_obj, NULL ); makeobjs.c: name = ch->short_descr; makeobjs.c: corpse->timer = 6; makeobjs.c: if ( ch->gold > 0 ) makeobjs.c: if ( ch->in_room ) makeobjs.c: ch->in_room->area->gold_looted += ch->gold; makeobjs.c: sysdata.global_looted += ch->gold/100; makeobjs.c: obj_to_obj( create_money( ch->gold ), corpse ); makeobjs.c: ch->gold = 0; makeobjs.c: corpse->value[0] = (int)ch->pIndexData->vnum; makeobjs.c: corpse->value[1] = (int)ch->max_hit; makeobjs.c: corpse->cost = (-(int)ch->pIndexData->vnum); makeobjs.c: corpse->value[2] = corpse->timer; makeobjs.c: name = ch->name; makeobjs.c: corpse->timer = 0; makeobjs.c: corpse->timer = 40; makeobjs.c: corpse->value[2] = (int)(corpse->timer/8); makeobjs.c: corpse->value[4] = ch->level; makeobjs.c: xSET_BIT( corpse->extra_flags, ITEM_CLANCORPSE ); makeobjs.c: corpse->value[3] = 1; makeobjs.c: corpse->value[3] = 0; makeobjs.c: sprintf( buf, "%s", killer->name ); makeobjs.c: STRFREE( corpse->action_desc ); makeobjs.c: corpse->action_desc = STRALLOC( buf ); makeobjs.c: /* Added corpse name - make locate easier , other skills */ makeobjs.c: STRFREE( corpse->name ); makeobjs.c: corpse->name = STRALLOC( buf ); makeobjs.c: sprintf( buf, corpse->short_descr, name ); makeobjs.c: STRFREE( corpse->short_descr ); makeobjs.c: corpse->short_descr = STRALLOC( buf ); makeobjs.c: sprintf( buf, corpse->description, name ); makeobjs.c: STRFREE( corpse->description ); makeobjs.c: corpse->description = STRALLOC( buf ); makeobjs.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) makeobjs.c: obj_next = obj->next_content; makeobjs.c: if (IS_NPC(ch)|| ch->level > 10 ) makeobjs.c: obj_to_room( corpse, ch->in_room ); makeobjs.c: obj->timer = number_range( 2, 4 ); makeobjs.c: obj->value[1] = number_range( 3, UMIN(5, ch->level) ); makeobjs.c: obj_to_room( obj, ch->in_room ); makeobjs.c: obj->timer = number_range( 1, 2 ); makeobjs.c: obj_to_room( obj, ch->in_room ); makeobjs.c: sprintf( buf, obj->short_descr, amount ); makeobjs.c: STRFREE( obj->short_descr ); makeobjs.c: obj->short_descr = STRALLOC( buf ); makeobjs.c: obj->value[0] = amount; mapout.c: * -----------------------------------------------------------| (0...0) * mapout.c: * -----------------------------------------------------------| {o o} * mapout.c: * ------------------------------------------------------------------------ * mapout.c:/* on-line map editing, such as it is. */ mapout.c: map_index -> vnum = vnum; mapout.c: map_index -> map_of_vnums[i][j] = -1; mapout.c: map_index -> next = first_map; mapout.c: * -------------------------------------------------------------------- mapout.c: case 11: return count_lines(room->description); mapout.c: case 10: if(IS_SET(room->room_flags,ROOM_NO_SUMMON)) return (char) 'X'; mapout.c: case 9: if(IS_SET(room->room_flags,ROOM_SAFE)) return (char) 'X'; mapout.c: case 8: if(IS_SET(room->room_flags,ROOM_DEATH)) return (char) 'X'; mapout.c: case 7: if(IS_SET(room->room_flags,ROOM_INDOORS)) return (char) 'X'; mapout.c: case 6: sprintf(buf,"%d",room->light); mapout.c: case 5: sprintf(buf,"%d",room->sector_type); mapout.c: case 4: for ( pexit = room->first_exit; pexit; pexit = pexit->next) mapout.c: case 3: for(obj=room->first_content;obj;obj=obj->next_content) mapout.c: case 2: for(mob=room->first_person;mob;mob=mob->next_in_room) { mapout.c: case 1: for(mob=room->first_person;mob;mob=mob->next_in_room) { mapout.c: if(!room->map) return (char) 'X'; mapout.c: return ((char) room->map->entry); mapout.c: if (!rm -> map) { mapout.c: sprintf (text_map, "(no rm->map)\n\r"); mapout.c: if ((map_index = get_map_index (rm -> map -> vnum)) == NULL) { mapout.c: bug (" No map_index with vnum %d\n\r", rm -> map -> vnum); mapout.c: sprintf (text_map, "-ERROR-\n\r"); mapout.c: if (map_index -> map_of_vnums[y][x] < 1) { mapout.c: /* tmp_rm = map_index -> map_of_ptrs[y][x]; */ mapout.c: tmp_rm = get_room_index( map_index -> map_of_vnums[y][x] ) ; mapout.c: if (!tmp_rm -> map) { mapout.c: if(map_index->map_of_vnums[y][x]==ch->in_room->vnum) mapout.c: if ( xIS_SET(ch->act, PLR_ANSI) ){ mapout.c: /*text_map[i] = (char) tmp_rm -> map -> entry;*/ mapout.c: /*text_map[i] = (char) tmp_rm -> map -> entry; */ mapout.c: /*text_map[i] = (char) tmp_rm -> map -> entry;*/ mapout.c: for (map = first_map; map; map = map -> next) { mapout.c: if (map -> vnum == vnum) mapout.c: for (map_index = first_map; map_index; map_index = map_index -> next) { mapout.c: map_index -> map_of_ptrs[i][j] = mapout.c: get_room_index (map_index -> map_of_vnums[i][j]); mapout.c: if (!ch -> pnote) { mapout.c: bug ("map_stats: ch->pnote==NULL!", 0); mapout.c: l = ch -> pnote -> text; mapout.c: if (char_to_number (c) > -1) { mapout.c: *cols = rightmost - leftmost + 1; mapout.c: return -1; mapout.c: if (ch -> in_room -> map) { mapout.c: sprintf( buf , ".------[Map %5.5d]-----------------------------------------------------------.\n\r", ch -> in_room -> map -> vnum); mapout.c: draw_map (ch, ch -> in_room, 1, mode); mapout.c: sprintf( buf,"`----------------------------------------------------------------------------'\n\r"); mapout.c: MD *map, *tmp; /* for new per-room map info to goin*/ mapout.c: if (!ch -> desc) { mapout.c: switch (ch -> substate) { mapout.c: if (ch -> dest_buf != ch -> pnote) mapout.c: bug ("do_mapout: sub_writing_map: ch->dest_buf != ch->pnote", 0); mapout.c: STRFREE (ch -> pnote -> text); mapout.c: ch -> pnote -> text = copy_buffer (ch); mapout.c: if (!ch -> pnote) { mapout.c: if ( ch->prev_cmd == do_north ) mapout.c: tmp_x = get_exit(ch->in_room, DIR_SOUTH ); mapout.c: tmp_r = tmp_x->to_room; mapout.c: tmp = tmp_r->map; mapout.c: row = (tmp->y) - 1; mapout.c: col = (tmp->x); mapout.c: mapnum = tmp->vnum; mapout.c: if ( ch->prev_cmd == do_east ) mapout.c: tmp_x = get_exit( ch->in_room, DIR_WEST ); mapout.c: tmp_r = tmp_x->to_room; mapout.c: tmp = tmp_r->map; mapout.c: row = (tmp->y); mapout.c: col = (tmp->x)+1; mapout.c: mapnum = tmp->vnum; mapout.c: if ( ch->prev_cmd == do_south ) mapout.c: tmp_x = get_exit( ch->in_room, DIR_NORTH ); mapout.c: tmp_r = tmp_x->to_room; mapout.c: tmp = tmp_r->map; mapout.c: row = (tmp->y)+1; mapout.c: col = (tmp->x); mapout.c: mapnum = tmp->vnum; mapout.c: if ( ch->prev_cmd == do_west ) mapout.c: tmp_x = get_exit( ch->in_room, DIR_EAST ); mapout.c: tmp_r = tmp_x->to_room; mapout.c: tmp = tmp_r->map; mapout.c: row = (tmp->y); mapout.c: col = (tmp->x) - 1; mapout.c: mapnum = tmp->vnum; mapout.c: this_rm = ch->in_room; mapout.c: if(this_rm->map!=NULL) mapout.c: ch->in_room->vnum, mapout.c: ch->in_room->map->vnum); mapout.c: ch->in_room->vnum, mapout.c: ch->in_room->vnum, mapout.c: if(map_index->map_of_vnums[y][x]!=-1) mapout.c: x,y, map_index->map_of_vnums[y][x]); mapout.c: map->vnum = mapnum; mapout.c: map->x = x; mapout.c: map->y = y; mapout.c: map->entry = code; mapout.c: ch->in_room->map = map; mapout.c: map_index->map_of_vnums[y][x] = ch->in_room->vnum; mapout.c: this_rm = ch->in_room; mapout.c: if(!this_rm->map) mapout.c: ch->in_room->vnum); mapout.c: if( (map_index=get_map_index(this_rm->map->vnum )) ==NULL ) mapout.c: ch->in_room->vnum, mapout.c: this_rm->map->vnum); mapout.c: if( (this_rm->map->x <0 ) || (this_rm->map->x >78) ) mapout.c: ch->in_room->vnum, mapout.c: this_rm->map->x); mapout.c: if( (this_rm->map->y <0 ) || (this_rm->map->y >48 ) ) mapout.c: ch->in_room->vnum, mapout.c: this_rm->map->y); mapout.c: ch->in_room->vnum, mapout.c: this_rm->map->vnum); mapout.c: uninitialized. -Thoric */ mapout.c: x = this_rm->map->x; mapout.c: y = this_rm->map->y; mapout.c: map_index->map_of_vnums[y][x]= -1; mapout.c: this_rm->map->vnum = 0; mapout.c: this_rm->map->x = -1; mapout.c: this_rm->map->y = -1; mapout.c: this_rm->map->entry = ' '; mapout.c: DISPOSE(this_rm->map); mapout.c: this_rm->map = NULL; /* redundant? */ mapout.c: ch -> substate = SUB_WRITING_NOTE; mapout.c: ch -> dest_buf = ch -> pnote; mapout.c: start_editing (ch, ch -> pnote -> text); mapout.c: if (ch -> pnote) { mapout.c: STRFREE (ch -> pnote -> text); mapout.c: STRFREE (ch -> pnote -> subject); mapout.c: STRFREE (ch -> pnote -> to_list); mapout.c: STRFREE (ch -> pnote -> date); mapout.c: STRFREE (ch -> pnote -> sender); mapout.c: DISPOSE (ch -> pnote); mapout.c: ch -> pnote = NULL; mapout.c: if (!ch -> pnote) { mapout.c: send_to_char (ch -> pnote -> text, ch); mapout.c: if (!ch -> pnote) { mapout.c: if (!ch -> pnote) { mapout.c: STRFREE( ed->description ); mapout.c: ed -> description = QUICKLINK (ch -> pnote -> text); mapout.c: rm = ch -> in_room; mapout.c: for (i = ch -> pcdata -> r_range_lo; i <= ch -> pcdata -> r_range_hi; i++) { mapout.c: return - 1; mapout.c: location -> area = ch -> pcdata -> area; mapout.c: location -> name = QUICKLINK (rm -> name); mapout.c: location -> description = QUICKLINK (rm -> description); mapout.c: CREATE (location -> map, MAP_DATA, 1); mapout.c: location -> map -> vnum = map -> vnum; /* not working? */ mapout.c: location -> map -> x = col; mapout.c: location -> map -> y = row; mapout.c: location -> map -> entry = code; mapout.c: location -> room_flags = ROOM_PROTOTYPE && rm -> room_flags; mapout.c: location -> light = rm -> light; mapout.c: location -> sector_type = rm -> sector_type; mapout.c: return - 1; mapout.c: for (i = ch -> pcdata -> r_range_lo; i <= ch -> pcdata -> r_range_hi; i++) mapout.c: * This function takes the character string in ch->pnote and mapout.c: if (!ch -> pnote) { mapout.c: bug ("map_to_rooms: ch->pnote==NULL!", 0); mapout.c: for (i=ch->pcdata->r_range_lo;i<=ch->pcdata->r_range_hi;i++) { mapout.c: l = ch -> pnote -> text; mapout.c: if ((map[row][col].index = char_to_number (c)) > -1) { mapout.c: map_index->map_of_vnums[row][col] = map[row][col].vnum; mapout.c: map_index->map_of_vnums[row][col] = 0; mapout.c: CREATE (newrm -> map, MAP_DATA, 1); mapout.c: newrm -> map -> vnum = map_index->vnum; mapout.c: newrm -> map -> x = x; mapout.c: newrm -> map -> y = y; mapout.c: newrm -> map -> entry = map[y][x].code; mapout.c: if ((tvnum = map[y - 1][x].vnum) != 0) { mapout.c: map[y - 1][x].proto_vnum); mapout.c: if (exit_type > -1) { mapout.c: xit->keyword = STRALLOC( "" ); mapout.c: xit->description = STRALLOC( "" ); mapout.c: xit->key = -1; mapout.c: xit->exit_info = exit_type; mapout.c: if (exit_type > -1) { mapout.c: xit->keyword = STRALLOC( "" ); mapout.c: xit->description = STRALLOC( "" ); mapout.c: xit->key = -1; mapout.c: xit->exit_info = exit_type; mapout.c: if (exit_type > -1) { mapout.c: xit->keyword = STRALLOC( "" ); mapout.c: xit->description = STRALLOC( "" ); mapout.c: xit->key = -1; mapout.c: xit->exit_info = exit_type; mapout.c: if ((tvnum = map[y][x - 1].vnum) != 0) { mapout.c: map[y][x - 1].proto_vnum); mapout.c: if (exit_type > -1) { mapout.c: xit->keyword = STRALLOC( "" ); mapout.c: xit->description = STRALLOC( "" ); mapout.c: xit->key = -1; mapout.c: xit->exit_info = exit_type; mapout.c: * Constants & constant-like functions follow mapout.c: sect1 = rm1 -> sector_type; mapout.c: sect2 = rm2 -> sector_type; mapout.c: case 9501: /* tent *//* single-roomed buildings */ mapout.c: case 9504: /* shack *//* all sides -- user fixes */ mapout.c: exit_flag = -1; mapout.c: case 9501: /* tent *//* single-roomed buildings */ mapout.c: case 9504: /* shack *//* all sides -- user fixes */ mapout.c: exit_flag = -1; mapout.c: exit_flag = -1; mapout.c: exit_flag = -1; mapout.c: * -1. To lookup the corresponding room vnum, call mapout.c: case '-': mapout.c: return - 1; marry.c:Add do_divorce and do_marry to mud.h and tables.c - Ntanel StormBlade marry.c: if( !victim->pcdata->wedto && !victim2->pcdata->wedto ) marry.c: victim->pcdata->wedto = STRALLOC(victim2->name); marry.c: victim2->pcdata->wedto = STRALLOC(victim->name); marry.c: xSET_BIT( victim->act, PLR_MARRIED ); marry.c: xSET_BIT( victim2->act, PLR_MARRIED ); marry.c: for( dtmp = first_descriptor ; dtmp ; dtmp = dtmp->next ) marry.c: if( dtmp->connected != CON_PLAYING ) marry.c: wch = dtmp->original ? dtmp->original : dtmp->character; marry.c: else if( !victim->pcdata->wedto ) marry.c: sprintf( buf, "But %s is already married!\n\r", victim->name ); marry.c: else if( !victim2->pcdata->wedto ) marry.c: sprintf( buf, "But %s is already married!\n\r", victim2->name ); marry.c: if (victim->level < 10 || victim2->level < 10) marry.c: if ( !str_cmp( victim->pcdata->wedto, victim2->name ) marry.c: && !str_cmp( victim2->pcdata->wedto, victim->name ) ) marry.c: /* if (victim->pcdata->spouse != victim2->name || victim2->pcdata->spouse != victim->name) marry.c: act(AT_WHITE,"$n and $N swap divorce papers, they are no-longer married.",victim, NULL, victim2, TO_NOTVICT); marry.c: STRFREE( victim->pcdata->wedto ); marry.c: STRFREE( victim2->pcdata->wedto ); marry.c: victim->pcdata->wedto = NULL; marry.c: victim2->pcdata->wedto = NULL; marry.c: xREMOVE_BIT( victim->act, PLR_MARRIED ); marry.c: xREMOVE_BIT( victim2->act, PLR_MARRIED ); marry.c: for( dtmp = first_descriptor ; dtmp ; dtmp = dtmp->next ) marry.c: if( dtmp->connected != CON_PLAYING ) marry.c: wch = dtmp->original ? dtmp->original : dtmp->character; marry.c: /* if ((victim->pcdata->spouse != victim2->name) || (victim2->pcdata->spouse != victim->name)) marry.c: switch( victim2->sex ) marry.c: switch( victim->sex ) marry.c: sprintf( buf, "This is the beautiful diamond ring given to you by your lovely\n\rwife %s at your wedding. It signifies your eternal love for eachother.\n\r",victim->name ); marry.c: ring->description = STRALLOC( buf ); marry.c: sprintf( buf, "This is the beautiful diamond ring given to you by your handsome\n\rhusband %s at your wedding. It signifies your eternal love for eachother.\n\r", victim->name ); marry.c: ring->description = STRALLOC( buf ); marry.c: sprintf( buf, "This is the beautiful diamond ring given to you by your\n\rspouse %s at your wedding. It signifies your eternal love for eachother.\n\r", victim->name ); marry.c: ring->description = STRALLOC( buf ); marry.c: sprintf( buf, "The inscription reads:\n\rTo my lovely wife, yours forever, %s\n\r", victim->name ); marry.c: ed->description = STRALLOC( buf ); marry.c: switch( victim->sex ) marry.c: sprintf( buf, "This is the ring given to you by your beautifull wife %s\n\rat your wedding. It signifies your eternal love for eachother.\n\r", victim->name ); marry.c: ring->description = STRALLOC( buf ); marry.c: sprintf( buf, "This is the ring given to you by your handsome husband %s\n\rat your wedding. It signifies your eternal love for eachother.\n\r", victim->name ); marry.c: ring->description = STRALLOC( buf ); marry.c: sprintf( buf, "This is the ring given to you by your spouse %s at\n\ryour wedding. It signifies your eternal love for eachother.\n\r", victim->name ); marry.c: ring->description = STRALLOC( buf ); marry.c: switch( victim->sex ) marry.c: sprintf( buf, "The inscription reads:\n\rTo my handsome husband... Forever yours, %s\n\r", victim->name ); marry.c: ed->description = STRALLOC( buf ); marry.c: sprintf( buf,"The inscription reads:\n\rForever love, %s\n\r", victim->name ); marry.c: ed->description = STRALLOC( buf ); mccp.c: * mccp.c - support functions for mccp (the Mud Client Compression Protocol) mccp.c: * see http://homepages.ihug.co.nz/~icecube/compress/ and README.Rom24-mccp mccp.c: * Memory management - zlib uses these hooks to allocate and free the mccp.c:/* Try to send any pending compressed-but-not-sent data in 'd' */ mccp.c: if (!d->out_compress) mccp.c: len = d->out_compress->next_out - d->out_compress_buf; mccp.c: nBlock = UMIN (len - iStart, 4096); mccp.c: if ((nWrite = write(d->descriptor, d->out_compress_buf + iStart, nBlock)) < 0) mccp.c: memmove(d->out_compress_buf, d->out_compress_buf+iStart, len - iStart); mccp.c: d->out_compress->next_out = d->out_compress_buf + len - iStart; mccp.c: if (d->out_compress) mccp.c: CREATE(d->out_compress_buf, unsigned char, COMPRESS_BUF_SIZE); mccp.c: s->next_in = NULL; mccp.c: s->avail_in = 0; mccp.c: s->next_out = d->out_compress_buf; mccp.c: s->avail_out = COMPRESS_BUF_SIZE; mccp.c: s->zalloc = zlib_alloc; mccp.c: s->zfree = zlib_free; mccp.c: s->opaque = NULL; mccp.c: DISPOSE(d->out_compress_buf); mccp.c: d->out_compress = s; mccp.c: if (!d->out_compress) mccp.c: d->out_compress->avail_in = 0; mccp.c: d->out_compress->next_in = dummy; mccp.c: if (deflate(d->out_compress, Z_FINISH) != Z_STREAM_END) mccp.c: deflateEnd(d->out_compress); mccp.c: DISPOSE(d->out_compress_buf); mccp.c: DISPOSE(d->out_compress); mccp.c: z_stream *s = d->out_compress; mccp.c: s->next_in = (unsigned char *) txt; mccp.c: s->avail_in = length; mccp.c: while (s->avail_in) mccp.c: s->avail_out = COMPRESS_BUF_SIZE - (s->next_out - d->out_compress_buf); mccp.c: if (s->avail_out) mccp.c: len = d->out_compress->next_out - d->out_compress_buf; mccp.c: nBlock = UMIN (len - iStart, 4096); mccp.c: if ((nWrite = write(d->descriptor, d->out_compress_buf + iStart, nBlock)) < 0) mccp.c: memmove(d->out_compress_buf, d->out_compress_buf+iStart, len - iStart); mccp.c: d->out_compress->next_out = d->out_compress_buf + len - iStart; mccp.c: if (!ch->desc) mccp.c: if (!ch->desc->out_compress) mccp.c: if (!compressStart(ch->desc)) mccp.c: if (!compressEnd(ch->desc)) medit.c:/*-------------------------------------------------------------------*/ medit.c:/*-------------------------------------------------------------------*/ medit.c:/*-------------------------------------------------------------------*\ medit.c:\*-------------------------------------------------------------------*/ medit.c: if ( !IS_NPC( victim ) && str_cmp( ch->name, "Tagith" ) ) medit.c: for ( d = first_descriptor; d; d = d->next ) medit.c: if ( d->connected == CON_MEDIT ) medit.c: if ( d->olc && OLC_VNUM(d) == victim->pIndexData->vnum ) medit.c: IS_NPC(victim) ? "mobile" : "character", d->character->name ); medit.c: d = ch->desc; medit.c: CREATE( d->olc, OLC_DATA, 1 ); medit.c: OLC_VNUM(d) = victim->pIndexData->vnum; medit.c: d->character->dest_buf = victim; medit.c: d->connected = CON_MEDIT; medit.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) medit.c: if ( cvnum < pArea->low_o_vnum medit.c: || cvnum > pArea->hi_o_vnum ) medit.c: copy->vnum = cvnum; medit.c: copy->player_name = QUICKLINK( orig->player_name ); medit.c: copy->short_descr = QUICKLINK( orig->short_descr ); medit.c: copy->long_descr = QUICKLINK( orig->long_descr ); medit.c: copy->description = QUICKLINK( orig->description ); medit.c: copy->act = orig->act; medit.c: copy->affected_by = orig->affected_by; medit.c: copy->pShop = NULL; medit.c: copy->rShop = NULL; medit.c: copy->spec_fun = orig->spec_fun; medit.c: copy->mudprogs = NULL; medit.c: xCLEAR_BITS(copy->progtypes); medit.c: copy->alignment = orig->alignment; medit.c: copy->level = orig->level; medit.c: copy->mobthac0 = orig->mobthac0; medit.c: copy->ac = orig->ac; medit.c: copy->hitnodice = orig->hitnodice; medit.c: copy->hitsizedice = orig->hitsizedice; medit.c: copy->hitplus = orig->hitplus; medit.c: copy->damnodice = orig->damnodice; medit.c: copy->damsizedice = orig->damsizedice; medit.c: copy->damplus = orig->damplus; medit.c: copy->gold = orig->gold; medit.c: copy->exp = orig->exp; medit.c: copy->position = orig->position; medit.c: copy->defposition = orig->defposition; medit.c: copy->sex = orig->sex; medit.c: copy->perm_str = orig->perm_str; medit.c: copy->perm_dex = orig->perm_dex; medit.c: copy->perm_int = orig->perm_int; medit.c: copy->perm_wis = orig->perm_wis; medit.c: copy->perm_cha = orig->perm_cha; medit.c: copy->perm_con = orig->perm_con; medit.c: copy->perm_lck = orig->perm_lck; medit.c: copy->race = orig->race; medit.c: copy->class = orig->class; medit.c: copy->xflags = orig->xflags; medit.c: copy->resistant = orig->resistant; medit.c: copy->immune = orig->immune; medit.c: copy->susceptible = orig->susceptible; medit.c: copy->numattacks = orig->numattacks; medit.c: copy->attacks = orig->attacks; medit.c: copy->defenses = orig->defenses; medit.c: copy->height = orig->height; medit.c: copy->weight = orig->weight; medit.c: copy->saving_poison_death = orig->saving_poison_death; medit.c: copy->saving_wand = orig->saving_wand; medit.c: copy->saving_para_petri = orig->saving_para_petri; medit.c: copy->saving_breath = orig->saving_breath; medit.c: copy->saving_spell_staff = orig->saving_spell_staff; medit.c: if ( orig->mudprogs ) medit.c: copy->mudprogs = mprog; medit.c: for ( cprog = orig->mudprogs; cprog; cprog = cprog->next ) medit.c: mprog->type = cprog->type; medit.c: xSET_BIT( copy->progtypes, mprog->type ); medit.c: mprog->arglist = QUICKLINK( cprog->arglist ); medit.c: mprog->comlist = QUICKLINK( cprog->comlist ); medit.c: if ( cprog->next ) medit.c: CREATE( mprog->next, MPROG_DATA, 1 ); medit.c: mprog = mprog->next; medit.c: mprog->next = NULL; medit.c: copy->count = 0; medit.c: copy->next = mob_index_hash[iHash]; medit.c: for ( clan = first_clan; clan; clan = clan->next ) medit.c: if ( clan->clan_type != CLAN_ORDER && clan->clan_type != CLAN_GUILD ) medit.c: olc_clan_list[count] = clan->name; medit.c: olc_top_clan = count-1; medit.c: for ( clan = first_clan; clan; clan = clan->next ) medit.c: if ( clan->clan_type == CLAN_GUILD ) medit.c: olc_clan_list[count] = clan->name; medit.c: olc_top_guild = count-1; medit.c: for ( clan = first_clan; clan; clan = clan->next ) medit.c: if ( clan->clan_type == CLAN_ORDER ) medit.c: olc_clan_list[count] = clan->name; medit.c: olc_top_order = count-1; medit.c: for ( deity = first_deity; deity; deity = deity->next ) medit.c: olc_deity_list[count] = QUICKLINK( deity->name ); medit.c: for ( council = first_council; council; council = council->next ) medit.c: olc_council_list[count] = council->name; medit.c: send_to_char_color( " &g0&w) Dead\n\r", d->character ); medit.c: send_to_char_color( " &g1&w) Mortally Wounded\n\r", d->character ); medit.c: send_to_char_color( " &g2&w) Incapacitated\n\r", d->character ); medit.c: send_to_char_color( " &g3&w) Stunned\n\r", d->character ); medit.c: send_to_char_color( " &g4&w) Sleeping\n\r", d->character ); medit.c: send_to_char_color( " &g5&w) Berserk\n\r", d->character ); medit.c: send_to_char_color( " &g6&w) Resting\n\r", d->character ); medit.c: send_to_char_color( " &g7&w) Aggressive\n\r", d->character ); medit.c: send_to_char_color( " &g8&w) Sitting\n\r", d->character ); medit.c: send_to_char_color( " &g9&w) Fighting\n\r", d->character ); medit.c: send_to_char_color( "&g10&w) Defensive\n\r", d->character ); medit.c: send_to_char_color( "&g11&w) Evasive\n\r", d->character ); medit.c: send_to_char_color( "&g12&w) Standing\n\r", d->character ); medit.c: send_to_char_color(buf, d->character); medit.c: send_to_char("Enter position number : ", d->character); medit.c: send_to_char_color( " &g0&w) Neutral\n\r", d->character ); medit.c: send_to_char_color( " &g1&w) Male\n\r", d->character ); medit.c: send_to_char_color( " &g2&w) Female\n\r", d->character ); medit.c: send_to_char("\n\rEnter gender number : ", d->character); medit.c: CHAR_DATA *ch = d->character; medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s\n\r", medit.c: if ( d->connected == CON_OEDIT ) medit.c: ch_printf_color( d->character, "\n\rCurrent flags: &c%s&w\n\r", flag_string( d->character->tempnum, ris_flags ) ); medit.c: else if ( d->connected == CON_MEDIT ) medit.c: ch_printf_color( d->character, "\n\rCurrent flags: &c%s&w\n\r", flag_string( victim->resistant, ris_flags ) ); medit.c: ch_printf_color( d->character, "\n\rCurrent flags: &c%s&w\n\r", flag_string( victim->immune, ris_flags ) ); medit.c: ch_printf_color( d->character, "\n\rCurrent flags: &c%s&w\n\r", flag_string( victim->susceptible, ris_flags ) ); medit.c: send_to_char( "Enter flag (0 to quit): ", d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: sprintf( buf, "&g%2d&w) %-20.20s\n\r", i+1, attack_flags[i] ); medit.c: send_to_char_color( buf, d->character ); medit.c: ext_flag_string( &victim->attacks, attack_flags ) ); medit.c: send_to_char_color( buf, d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: sprintf( buf, "&g%2d&w) %-20.20s\n\r", i+1, defense_flags[i] ); medit.c: send_to_char_color( buf, d->character ); medit.c: ext_flag_string( &victim->defenses, defense_flags ) ); medit.c: send_to_char_color( buf, d->character ); medit.c:/*-------------------------------------------------------------------*/ medit.c:/*. Display mob-flags menu .*/ medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: sprintf(buf, "&g%2d&w) %-20.20s ", medit.c: send_to_char_color( buf, d->character ); medit.c: ext_flag_string( &victim->act, act_flags ) medit.c: send_to_char_color( buf, d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s ", i+1, plr_flags[i] ); medit.c: send_to_char( "\n\r", d->character ); medit.c: ext_flag_string( &victim->act, plr_flags ) ); medit.c: send_to_char_color( buf, d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s \n\r", i+1, pc_flags[i] ); medit.c: ch_printf_color( d->character, "\n\rCurrent flags: &c%s&w\n\rEnter flags (0 to quit): ", medit.c: flag_string( victim->pcdata->flags, pc_flags ) ); medit.c:/*-------------------------------------------------------------------*/ medit.c:/*. Display aff-flags menu .*/ medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: sprintf(buf, "&g%2d&w) %-20.20s ", i+1, a_flags[i] ); medit.c: send_to_char_color( buf, d->character ); medit.c: affect_bit_name( &victim->affected_by ) medit.c: if ( IS_SET( d->character->tempnum, 1 << i ) ) medit.c: ch_printf_color( d->character, "\n\rCurrent flags : &c%s&w\n\r", buf ); medit.c: ch_printf_color( d->character, "\n\rCurrent flags : &c%s&w\n\r", affect_bit_name( &victim->affected_by ) ); medit.c: send_to_char_color( "Enter affected flags (0 to quit) : ", d->character ); medit.c: CHAR_DATA *ch = d->character; medit.c: send_to_char( "Clans:\n\r", d->character ); medit.c: ch_printf_color( ch, "&g%2d&w) %-20.20s\n\r", count+1, olc_clan_list[count] ); medit.c: send_to_char( "\n\rGuilds:\n\r", d->character ); medit.c: ch_printf_color( ch, "&g%2d&w) %-20.20s\n\r", count+1, olc_clan_list[count] ); medit.c: send_to_char( "\n\rOrders:\n\r", d->character ); medit.c: ch_printf_color( ch, "&g%2d&w) %-20.20s\n\r", count+1, olc_clan_list[count] ); medit.c: send_to_char( "Enter choice (0 for none): ", d->character ); medit.c: ch_printf( d->character, "%d\n\r", olc_top_deity ); medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s\n\r", 0, "None" ); medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s\n\r", count+1, olc_deity_list[count] ); medit.c: send_to_char( "Enter choice: ", d->character ); medit.c: ch_printf( d->character, "%d\n\r", olc_top_council ); medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s\n\r", 0, "None" ); medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s\n\r", count+1, olc_council_list[count] ); medit.c: send_to_char( "Enter choice: ", d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s ", count+1, part_flags[count] ); medit.c: send_to_char( "\n\r", d->character ); medit.c: ch_printf_color( d->character, "\n\rCurrent flags: %s\n\rEnter flag or 0 to exit: ", medit.c: flag_string( victim->xflags, part_flags ) ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s ", iClass, npc_class[iClass] ); medit.c: send_to_char( "\n\r", d->character ); medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s \n\r", iClass, class_table[iClass]->who_name ); medit.c: send_to_char( "\n\r", d->character ); */ medit.c: send_to_char( "\n\rEnter class: ", d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s ", iRace, npc_race[iRace] ); medit.c: send_to_char( "\n\r", d->character ); medit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s \n\r", iRace, race_table[iRace]->race_name ); medit.c: send_to_char( "\n\r", d->character ); */ medit.c: send_to_char( "\n\rEnter race: ", d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( d->character, "&g1&w) %-30.30s: %2d\n\r", "Saving vs. poison", victim->saving_poison_death ); medit.c: ch_printf_color( d->character, "&g2&w) %-30.30s: %2d\n\r", "Saving vs. wands", victim->saving_wand ); medit.c: ch_printf_color( d->character, "&g3&w) %-30.30s: %2d\n\r", "Saving vs. paralysis", victim->saving_para_petri ); medit.c: ch_printf_color( d->character, "&g4&w) %-30.30s: %2d\n\r", "Saving vs. breath", victim->saving_breath ); medit.c: ch_printf_color( d->character, "&g5&w) %-30.30s: %2d\n\r", "Saving vs. spells", victim->saving_spell_staff ); medit.c: send_to_char( "\n\rModify which saving throw: ", d->character ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: CHAR_DATA *ch = d->character; medit.c: CHAR_DATA *mob = d->character->dest_buf; medit.c: if ( !mob->pIndexData->hitnodice ) medit.c: hitestimate = mob->level * 8 + number_range( mob->level * mob->level / 4, medit.c: mob->level * mob->level ); medit.c: hitestimate = mob->pIndexData->hitnodice * number_range(1, medit.c: mob->pIndexData->hitsizedice ) + mob->pIndexData->hitplus; medit.c: damestimate = number_range( mob->pIndexData->damnodice, medit.c: mob->pIndexData->damsizedice * mob->pIndexData->damnodice ); medit.c: set_char_color( AT_PLAIN, d->character ); medit.c: ch_printf_color( ch, "-- Mob Number: [&c%d&w]\n\r", mob->pIndexData->vnum ); medit.c: ch_printf_color( ch, "&g1&w) Sex: &O%-7.7s &g2&w) Name: &O%s\n\r", mob->sex == SEX_MALE ? "male" : mob->sex == SEX_FEMALE ? "female" : "neutral", mob->name ); medit.c: ch_printf_color( ch, "&g3&w) Shortdesc: &O%s\n\r", mob->short_descr[0] == '\0' ? "(none set)" : mob->short_descr ); medit.c: ch_printf_color( ch, "&g4&w) Longdesc:-\n\r&O%s\n\r", mob->long_descr[0] == '\0' ? "(none set)" : mob->long_descr ); medit.c: ch_printf_color( ch, "&g5&w) Description:-\n\r&O%-74.74s\n\r", mob->description ); medit.c: ch_printf_color( ch, "&g6&w) Class: [&c%-11.11s&w], &g7&w) Race: [&c%-11.11s&w]\n\r", medit.c: npc_class[mob->class], npc_race[mob->race] ); medit.c: mob->level, mob->alignment, get_curr_str(mob) ); medit.c: mob->pIndexData->damnodice, mob->pIndexData->damsizedice, mob->pIndexData->damplus, damestimate ); medit.c: mob->pIndexData->hitnodice, mob->pIndexData->hitsizedice, mob->pIndexData->hitplus, hitestimate ); medit.c: ch_printf_color( ch, "&gN&w) Gold: [&c%8d&w], &gO&w) Spec: &O%-22.22s\n\r", medit.c: mob->gold, lookup_spec( mob->spec_fun ) ); medit.c: ch_printf_color( ch, "&gR&w) Resistant : &O%s\n\r", flag_string( mob->resistant, ris_flags ) ); medit.c: ch_printf_color( ch, "&gS&w) Immune : &O%s\n\r", flag_string( mob->immune, ris_flags ) ); medit.c: ch_printf_color( ch, "&gT&w) Susceptible : &O%s\n\r", flag_string( mob->susceptible, ris_flags ) ); medit.c: ch_printf_color( ch, "&gU&w) Position : &O%s\n\r", position_names[ (int) mob->position ] ); medit.c: ch_printf_color( ch, "&gV&w) Attacks : &c%s\n\r", ext_flag_string( &mob->attacks, attack_flags ) ); medit.c: ch_printf_color( ch, "&gW&w) Defenses : &c%s\n\r", ext_flag_string( &mob->defenses, defense_flags ) ); medit.c: ch_printf_color( ch, "&gX&w) Body Parts : &c%s\n\r", flag_string(mob->xflags, part_flags) ); medit.c: ch_printf_color( ch, "&gY&w) Act Flags : &c%s\n\r", ext_flag_string( &mob->act, act_flags ) ); medit.c: ch_printf_color( ch, "&gZ&w) Affected : &c%s\n\r", affect_bit_name( &mob->affected_by ) ); medit.c: CHAR_DATA *ch = d->character; medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: ch_printf_color( ch, "&g1&w) Sex: &O%-7.7s &g2&w) Name: &O%s\n\r", medit.c: victim->sex == SEX_MALE ? "male" : victim->sex == SEX_FEMALE ? "female" : "neutral", victim->name ); medit.c: ch_printf_color( ch, "&g3&w) Description:-\n\r&O%-74.74s\n\r", victim->description ); medit.c: ch_printf_color( ch, "&g4&w) Class: [&c%-11.11s&w], &g5&w) Race: [&c%-11.11s&w]\n\r", medit.c: class_table[victim->class]->who_name, race_table[victim->race]->race_name ); medit.c: victim->level, victim->alignment, get_curr_str(victim) ); medit.c: ch_printf_color( ch, "&gF&w) Hps: [&c%5d&w/&c%5d&w], &gG&w) Mana: [&c%5d&w/&c%5d&w], &gH&w) Move:[&c%5d&w/&c%-5d&w]\n\r", medit.c: victim->hit, victim->max_hit, victim->mana, victim->max_mana, victim->move, victim->max_move ); medit.c: victim->gold, victim->mental_state, victim->emotional_state ); medit.c: victim->pcdata->condition[COND_THIRST], victim->pcdata->condition[COND_FULL], victim->pcdata->condition[COND_DRUNK] ); medit.c: ch_printf_color( ch, "&gO&w) Favor: [&c%5d&w]\n\r", victim->pcdata->favor ); medit.c: ch_printf_color( ch, "&gR&w) Resistant : &O%s\n\r", flag_string( victim->resistant, ris_flags ) ); medit.c: ch_printf_color( ch, "&gS&w) Immune : &O%s\n\r", flag_string( victim->immune, ris_flags ) ); medit.c: ch_printf_color( ch, "&gT&w) Susceptible : &O%s\n\r", flag_string( victim->susceptible, ris_flags ) ); medit.c: ch_printf_color( ch, "&gU&w) Position : &O%s\n\r", position_names[ (int) victim->position ] ); medit.c: ch_printf_color( ch, "&gV&w) Act Flags : &c%s\n\r", ext_flag_string( &victim->act, plr_flags ) ); medit.c: ch_printf_color( ch, "&gW&w) PC Flags : &c%s\n\r", flag_string( victim->pcdata->flags, pc_flags ) ); medit.c: ch_printf_color( ch, "&gX&w) Affected : &c%s\n\r", affect_bit_name( &victim->affected_by ) ); medit.c: victim->pcdata->deity ? victim->pcdata->deity->name : "None" ); medit.c: if ( get_trust(ch) >= LEVEL_GOD && victim->pcdata->clan ) medit.c: ch_printf_color( ch, "&gZ&w) %-12.12s: &O%s\n\r", medit.c: victim->pcdata->clan->clan_type == CLAN_ORDER ? "Order" : medit.c: victim->pcdata->clan->clan_type == CLAN_GUILD ? "Guild" : "Clan", medit.c: victim->pcdata->clan->name ); medit.c: else if ( get_trust(ch) >= LEVEL_GOD && !victim->pcdata->clan ) medit.c: victim->pcdata->council ? victim->pcdata->council->name : "None" ); medit.c: CHAR_DATA *victim = ch->dest_buf; medit.c: switch ( ch->substate ) medit.c: if ( !ch->dest_buf ) medit.c: bug( "do_medit_reset: sub_mob_desc: NULL ch->dest_buf", 0 ); medit.c: cleanup_olc( ch->desc ); medit.c: ch->substate = SUB_NONE; medit.c: STRFREE( victim->description ); medit.c: victim->description = copy_buffer( ch ); medit.c: if ( IS_NPC( victim ) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: STRFREE( victim->pIndexData->description ); medit.c: victim->pIndexData->description = QUICKLINK( victim->description ); medit.c: ch->dest_buf = victim; medit.c: ch->substate = SUB_NONE; medit.c: ch->desc->connected = CON_MEDIT; medit.c: medit_disp_menu( ch->desc ); medit.c: CHAR_DATA *victim = d->character->dest_buf; medit.c: send_to_char("Saving...\n\r", d->character); medit.c: sprintf( log_buf, "OLC: %s edits mob %d(%s)", d->character->name, victim->pIndexData->vnum, victim->name ); medit.c: for ( tarea = first_asort; tarea; tarea = tarea->next ) medit.c: if ( OLC_VNUM(d) >= tarea->low_m_vnum medit.c: && OLC_VNUM(d) <= tarea->hi_m_vnum ) medit.c: if ( get_trust(d->character) >= 58 ) medit.c: fold_area( tarea, tarea->filename, FALSE ); medit.c: && (tarea = d->character->pcdata->area) != NULL medit.c: && get_trust(d->character) >= LEVEL_CREATOR medit.c: && IS_SET(tarea->status, AREA_LOADED ) ) medit.c: tarea = d->character->pcdata->area; medit.c: sprintf( buf, "%s%s", BUILD_DIR, tarea->filename ); medit.c: sprintf( log_buf, "OLC: %s edits %s", d->character->name, victim->name ); medit.c: log_string_plus( log_buf, LOG_BUILD, d->character->level ); medit.c: send_to_char("Invalid choice!\n\r", d->character); medit.c: send_to_char("Do you wish to save to disk? : ", d->character); medit.c: send_to_char( "\n\rEnter name: ", d->character ); medit.c: send_to_char( "\n\rEnter short description: ", d->character ); medit.c: send_to_char( "\n\rEnter long description: ", d->character ); medit.c: d->character->substate = SUB_MOB_DESC; medit.c: d->character->last_cmd = do_medit_reset; medit.c: send_to_char("Enter new mob description:\r\n", d->character); medit.c: if ( !victim->description ) medit.c: victim->description = STRALLOC( "" ); medit.c: start_editing( d->character, victim->description ); medit.c: send_to_char( "\n\rEnter level: ", d->character ); medit.c: send_to_char( "\n\rEnter alignment: ", d->character ); medit.c: send_to_char( "\n\rEnter strength: ", d->character ); medit.c: send_to_char( "\n\rEnter intelligence: ", d->character ); medit.c: send_to_char( "\n\rEnter wisdom: ", d->character ); medit.c: send_to_char( "\n\rEnter dexterity: ", d->character ); medit.c: send_to_char( "\n\rEnter constitution: ", d->character ); medit.c: send_to_char( "\n\rEnter charisma: ", d->character ); medit.c: send_to_char( "\n\rEnter luck: ", d->character ); medit.c: send_to_char( "\n\rEnter number of damage dice: ", d->character ); medit.c: send_to_char( "\n\rEnter size of damage dice: ", d->character ); medit.c: send_to_char( "\n\rEnter amount to add to damage: ", d->character ); medit.c: send_to_char( "\n\rEnter number of hitpoint dice: ", d->character ); medit.c: send_to_char( "\n\rEnter size of hitpoint dice: ", d->character ); medit.c: send_to_char( "\n\rEnter amount to add to hitpoints: ", d->character ); medit.c: send_to_char( "\n\rEnter amount of gold mobile carries: ", d->character ); medit.c: send_to_char( "Do you wish to save changes to disk? (y/n): ", d->character ); medit.c: d->character->substate = SUB_MOB_DESC; medit.c: d->character->last_cmd = do_medit_reset; medit.c: send_to_char("Enter new player description:\r\n", d->character); medit.c: if ( !victim->description ) medit.c: victim->description = STRALLOC( "" ); medit.c: start_editing( d->character, victim->description ); medit.c: send_to_char( "\n\rNPC Only!!", d->character ); medit.c: send_to_char( "\n\rEnter alignment: ", d->character ); medit.c: send_to_char( "\n\rEnter strength: ", d->character ); medit.c: send_to_char( "\n\rEnter intelligence: ", d->character ); medit.c: send_to_char( "\n\rEnter wisdom: ", d->character ); medit.c: send_to_char( "\n\rEnter dexterity: ", d->character ); medit.c: send_to_char( "\n\rEnter constitution: ", d->character ); medit.c: send_to_char( "\n\rEnter charisma: ", d->character ); medit.c: send_to_char( "\n\rEnter luck: ", d->character ); medit.c: send_to_char( "\n\rEnter hitpoints: ", d->character ); medit.c: send_to_char( "\n\rEnter mana: ", d->character ); medit.c: send_to_char( "\n\rEnter moves: ", d->character ); medit.c: send_to_char( "\n\rEnter amount of gold player carries: ", d->character ); medit.c: send_to_char( "\n\rEnter players mentalstate: ", d->character ); medit.c: send_to_char( "\n\rEnter players emotional state: ", d->character ); medit.c: send_to_char( "\n\rEnter player's thirst (0 = dehydrated): ", d->character ); medit.c: send_to_char( "\n\rEnter player's fullness (0 = starving): ", d->character ); medit.c: send_to_char( "\n\rEnter player's drunkeness (0 = sober): ", d->character ); medit.c: send_to_char( "\n\rEnter player's favor (-2500 to 2500): ", d->character ); medit.c: send_to_char( "NPCs Only!!\n\r", d->character ); medit.c: if ( get_trust(d->character) < LEVEL_GOD ) medit.c: if ( get_trust(d->character) < 58 ) medit.c: if ( !IS_NPC(victim) && get_trust( d->character ) > 58 ) medit.c: sprintf( buf, "%s %s", victim->name, arg ); medit.c: do_pcrename( d->character, buf ); medit.c: STRFREE( victim->name ); medit.c: victim->name = STRALLOC( arg ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: STRFREE( victim->pIndexData->player_name ); medit.c: victim->pIndexData->player_name = QUICKLINK( victim->name ); medit.c: STRFREE( victim->short_descr ); medit.c: victim->short_descr = STRALLOC( arg ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: STRFREE( victim->pIndexData->short_descr ); medit.c: victim->pIndexData->short_descr = QUICKLINK( victim->short_descr ); medit.c: STRFREE( victim->long_descr ); medit.c: victim->long_descr = STRALLOC( buf ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: STRFREE( victim->pIndexData->long_descr ); medit.c: victim->pIndexData->long_descr = QUICKLINK( victim->long_descr ); medit.c: number -= 1; medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: && get_trust( d->character ) < LEVEL_GREATER medit.c: && !is_name( "protoflag", d->character->pcdata->bestowments ) ) medit.c: send_to_char( "You don't have permission to change the prototype flag.\n\r", d->character ); medit.c: send_to_char( "It isn't possible to change that flag.\n\r", d->character ); medit.c: xTOGGLE_BIT( victim->act, number ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->act = victim->act; medit.c: number -= 1; /* offset :P */ medit.c: xTOGGLE_BIT( victim->act, number ); medit.c: olc_log( d, "%s the flag %s", xIS_SET( victim->act, number ) ? "Added" : "Removed", medit.c: xTOGGLE_BIT( victim->act, number ); medit.c: olc_log( d, "%s the flag %s", xIS_SET( victim->act, number ) ? "Added" : "Removed", medit.c: number -= 1; medit.c: TOGGLE_BIT( victim->pcdata->flags, 1 << number ); medit.c: olc_log( d, "%s the pcflag %s", IS_SET( victim->pcdata->flags, 1 << number ) ? "Added" : "Removed", medit.c: TOGGLE_BIT( victim->pcdata->flags, 1 << number ); medit.c: olc_log( d, "%s the pcflag %s", IS_SET( victim->pcdata->flags, 1 << number ) ? "Added" : "Removed", medit.c: number -= 1; medit.c: xTOGGLE_BIT( victim->affected_by, number ); medit.c: olc_log( d, "%s the affect %s", xIS_SET( victim->affected_by, number ) ? "Added" : "Removed", medit.c: xTOGGLE_BIT( victim->affected_by, number ); medit.c: olc_log( d, "%s the affect %s", xIS_SET( victim->affected_by, number ) ? "Added" : "Removed", medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->affected_by = victim->affected_by; medit.c:/*-------------------------------------------------------------------*/ medit.c: victim->max_hit = URANGE( 1, atoi(arg), 32700 ); medit.c: olc_log( d, "Changed hitpoints to %d", victim->max_hit ); medit.c: victim->max_mana = URANGE( 1, atoi(arg), 30000 ); medit.c: olc_log( d, "Changed mana to %d", victim->max_mana ); medit.c: victim->max_move = URANGE( 1, atoi(arg), 30000 ); medit.c: olc_log( d, "Changed moves to %d", victim->max_move ); medit.c: victim->practice = URANGE( 1, atoi(arg), 300 ); medit.c: olc_log( d, "Changed practives to %d", victim->practice ); medit.c: if ( get_trust(d->character) < 58 ) medit.c: send_to_char( "Password too short, try again: ", d->character ); medit.c: pwdnew = crypt( arg, victim->name ); medit.c: send_to_char( "Unacceptable choice, try again: ", d->character ); medit.c: DISPOSE( victim->pcdata->pwd ); medit.c: victim->pcdata->pwd = str_dup( pwdnew ); medit.c: victim->saving_poison_death = URANGE( -30, atoi(arg), 30 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->saving_poison_death = victim->saving_poison_death; medit.c: olc_log( d, "Changed save_poison_death to %d", victim->saving_poison_death ); medit.c: victim->saving_wand = URANGE( -30, atoi(arg), 30 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->saving_wand = victim->saving_wand; medit.c: olc_log( d, "Changed save_wand to %d", victim->saving_wand ); medit.c: victim->saving_para_petri = URANGE( -30, atoi(arg), 30 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->saving_para_petri = victim->saving_para_petri; medit.c: olc_log( d, "Changed save_paralysis_petrification to %d", victim->saving_para_petri ); medit.c: victim->saving_breath = URANGE( -30, atoi(arg), 30 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->saving_breath = victim->saving_breath; medit.c: olc_log( d, "Changed save_breath to %d", victim->saving_breath ); medit.c: victim->saving_spell_staff = URANGE( -30, atoi(arg), 30 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->saving_spell_staff = victim->saving_spell_staff; medit.c: olc_log( d, "Changed save_spell_staff to %d", victim->saving_spell_staff ); medit.c: victim->perm_str = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_str = victim->perm_str; medit.c: olc_log( d, "Changed strength to %d", victim->perm_str ); medit.c: victim->perm_int = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_int = victim->perm_int; medit.c: olc_log( d, "Changed intelligence to %d", victim->perm_int ); medit.c: victim->perm_wis = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_wis = victim->perm_wis; medit.c: olc_log( d, "Changed victim wisdom to %d", victim->perm_wis ); medit.c: victim->perm_dex = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_dex = victim->perm_dex; medit.c: olc_log( d, "Changed dexterity to %d", victim->perm_dex ); medit.c: victim->perm_con = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_con = victim->perm_con; medit.c: olc_log( d, "Changed constitution to %d", victim->perm_con ); medit.c: victim->perm_cha = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_cha = victim->perm_cha; medit.c: olc_log( d, "Changed charisma to %d", victim->perm_cha ); medit.c: victim->perm_lck = URANGE( minattr, atoi( arg ), maxattr ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->perm_lck = victim->perm_lck; medit.c: olc_log( d, "Changed luck to %d", victim->perm_lck ); medit.c: victim->sex = URANGE( 0, atoi( arg ), 2 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->sex = victim->sex; medit.c: olc_log( d, "Changed sex to %s", victim->sex == 1 ? "Male" : victim->sex == 2 ? "Female" : "Neutral" ); medit.c: victim->hitroll = URANGE( 0, atoi(arg), 85); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->hitroll = victim->hitroll; medit.c: olc_log( d, "Changed hitroll to %d", victim->hitroll ); medit.c: victim->damroll = URANGE( 0, atoi(arg), 65 ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->damroll = victim->damroll; medit.c: olc_log( d, "Changed damroll to %d", victim->damroll ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->damnodice = URANGE( 0, atoi(arg), 100 ); medit.c: olc_log( d, "Changed damnumdie to %d", victim->pIndexData->damnodice ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->damsizedice = URANGE( 0, atoi(arg), 100 ); medit.c: olc_log( d, "Changed damsizedie to %d", victim->pIndexData->damsizedice ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->damplus = URANGE( 0, atoi(arg), 1000 ); medit.c: olc_log( d, "Changed damplus to %d", victim->pIndexData->damplus ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->hitnodice = URANGE( 0, atoi(arg), 32767 ); medit.c: olc_log( d, "Changed hitnumdie to %d", victim->pIndexData->hitnodice ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->hitsizedice = URANGE( 0, atoi(arg), 30000 ); medit.c: olc_log( d, "Changed hitsizedie to %d", victim->pIndexData->hitsizedice ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->hitplus = URANGE( 0, atoi(arg), 30000 ); medit.c: olc_log( d, "Changed hitplus to %d", victim->pIndexData->hitplus ); medit.c: victim->armor = URANGE( -300, atoi(arg), 300 ); medit.c: olc_log( d, "Changed armor to %d", victim->armor ); medit.c: victim->gold = UMAX( 0, atoi(arg) ); medit.c: olc_log( d, "Changed gold to %d", victim->gold ); medit.c: victim->position = URANGE( 0, atoi(arg), POS_STANDING ); medit.c: olc_log( d, "Changed position to %d", victim->position ); medit.c: victim->defposition = URANGE( 0, atoi(arg), POS_STANDING ); medit.c: olc_log( d, "Changed default position to %d", victim->defposition ); medit.c: victim->mental_state = URANGE( -100, atoi(arg), 100 ); medit.c: olc_log( d, "Changed mental state to %d", victim->mental_state ); medit.c: victim->emotional_state = URANGE( -100, atoi(arg), 100 ); medit.c: olc_log( d, "Changed emotional state to %d", victim->emotional_state ); medit.c: victim->pcdata->condition[COND_THIRST] = URANGE( 0, atoi(arg), 100 ); medit.c: olc_log( d, "Changed thirst to %d", victim->pcdata->condition[COND_THIRST] ); medit.c: victim->pcdata->condition[COND_FULL] = URANGE( 0, atoi(arg), 100 ); medit.c: olc_log( d, "Changed hunger to %d", victim->pcdata->condition[COND_FULL] ); medit.c: victim->pcdata->condition[COND_DRUNK] = URANGE( 0, atoi(arg), 100 ); medit.c: olc_log( d, "Changed drunkness to %d", victim->pcdata->condition[COND_DRUNK] ); medit.c: victim->pcdata->favor = URANGE( -2500, atoi(arg), 2500 ); medit.c: olc_log( d, "Changed favor to %d", victim->pcdata->favor ); medit.c: send_to_char( "Invalid saving throw, try again: ", d->character ); medit.c: send_to_char( "\n\rEnter throw (-30 to 30): ", d->character ); medit.c: send_to_char( "\n\rEnter throw (-30 to 30): ", d->character ); medit.c: send_to_char( "\n\rEnter throw (-30 to 30): ", d->character ); medit.c: send_to_char( "\n\rEnter throw (-30 to 30): ", d->character ); medit.c: send_to_char( "\n\rEnter throw (-30 to 30): ", d->character ); medit.c: victim->class = URANGE( 0, number, MAX_NPC_CLASS-1 ); medit.c: if ( xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->class = victim->class; medit.c: victim->class = URANGE( 0, number, MAX_CLASS ); medit.c: olc_log( d, "Changed class to %s", npc_class[victim->class] ); medit.c: victim->race = URANGE( 0, number, MAX_NPC_RACE-1 ); medit.c: if ( xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->race = victim->race; medit.c: victim->race = URANGE( 0, number, MAX_RACE-1 ); medit.c: olc_log( d, "Changed race to %s", npc_race[victim->race] ); medit.c: send_to_char( "Invalid part, try again: ", d->character ); medit.c: number -= 1; medit.c: TOGGLE_BIT( victim->xflags, 1 << number ); medit.c: if ( IS_NPC( victim ) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->xflags = victim->xflags; medit.c: olc_log( d, "%s the body part %s", IS_SET( victim->xflags, 1 << (number - 1) ) ? "Added" : "Removed", medit.c: number -= 1; /* offset */ medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: xTOGGLE_BIT( victim->attacks, number ); medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: xTOGGLE_BIT( victim->attacks, number ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->attacks = victim->attacks; medit.c: olc_log( d, "%s the attack %s", xIS_SET(victim->attacks,number)? "Added" : "Removed", attack_flags[number] ); medit.c: number -= 1; /* offset */ medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: xTOGGLE_BIT( victim->defenses, number ); medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: xTOGGLE_BIT( victim->defenses, number ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->defenses = victim->defenses; medit.c: olc_log( d, "%s the attack %s", xIS_SET(victim->defenses,number) ? "Added" : "Removed", defense_flags[number] ); medit.c: victim->level = URANGE( 1, atoi(arg), 64 ); medit.c: olc_log( d, "Changed level to %d", victim->level ); medit.c: victim->alignment = URANGE( -1000, atoi(arg), 1000 ); medit.c: olc_log( d, "Changed alignment to %d", victim->alignment ); medit.c: number -= 1; /* offset */ medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: TOGGLE_BIT( victim->resistant, 1 << number ); medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: TOGGLE_BIT( victim->resistant, 1 << number ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->resistant = victim->resistant; medit.c: olc_log( d, "%s the resistant %s", IS_SET( victim->resistant, 1 << number ) ? "Added" : "Removed", ris_flags[number] ); medit.c: number -= 1; medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: TOGGLE_BIT( victim->immune, 1 << number ); medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: TOGGLE_BIT( victim->immune, 1 << number ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->immune = victim->immune; medit.c: olc_log( d, "%s the immune %s", IS_SET( victim->immune, 1 << number ) ? "Added" : "Removed", ris_flags[number] ); medit.c: number -= 1; medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: TOGGLE_BIT( victim->susceptible, 1 << number ); medit.c: send_to_char( "Invalid flag, try again: ", d->character ); medit.c: TOGGLE_BIT( victim->susceptible, 1 << number ); medit.c: if ( IS_NPC(victim) && xIS_SET( victim->act, ACT_PROTOTYPE ) ) medit.c: victim->pIndexData->susceptible = victim->susceptible; medit.c: olc_log( d, "%s the suscept %s", IS_SET( victim->susceptible, 1 << number ) ? "Added" : "Removed", ris_flags[number] ); medit.c: victim->spec_fun = NULL; medit.c: victim->spec_fun = spec_lookup( "spec_breath_any" ); medit.c: victim->spec_fun = spec_lookup( "spec_breath_acid" ); medit.c: victim->spec_fun = spec_lookup( "spec_breath_fire" ); medit.c: victim->spec_fun = spec_lookup( "spec_breath_frost" ); medit.c: victim->spec_fun = spec_lookup( "spec_breath_gas" ); medit.c: victim->spec_fun = spec_lookup( "spec_breath_lightning" ); medit.c: victim->spec_fun = spec_lookup( "spec_cast_adept" ); medit.c: victim->spec_fun = spec_lookup( "spec_cast_cleric" ); medit.c: victim->spec_fun = spec_lookup( "spec_cast_mage" ); medit.c: victim->spec_fun = spec_lookup( "spec_cast_undead" ); medit.c: victim->spec_fun = spec_lookup( "spec_executioner" ); medit.c: victim->spec_fun = spec_lookup( "spec_fido" ); medit.c: victim->spec_fun = spec_lookup( "spec_guard" ); medit.c: victim->spec_fun = spec_lookup( "spec_janitor" ); medit.c: victim->spec_fun = spec_lookup( "spec_poison" ); medit.c: victim->spec_fun = spec_lookup( "spec_thief" ); medit.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) medit.c: victim->pIndexData->spec_fun = victim->spec_fun; medit.c: olc_log( d, "Changes spec_func to %s", lookup_spec( victim->spec_fun ) ); medit.c: send_to_char( "Invalid deity, try again: ", d->character ); medit.c: STRFREE( victim->pcdata->deity_name ); medit.c: victim->pcdata->deity_name = STRALLOC( "" ); medit.c: victim->pcdata->deity = NULL; medit.c: number -= 1; medit.c: STRFREE( victim->pcdata->deity_name ); medit.c: victim->pcdata->deity_name = QUICKLINK( deity->name ); medit.c: victim->pcdata->deity = deity; medit.c: olc_log( d, "Deity changed to %s", deity->name ); medit.c: if ( get_trust(d->character) < LEVEL_GOD ) medit.c: send_to_char( "Invalid choice, try again: ", d->character ); medit.c: --victim->pcdata->clan->num_members; medit.c: save_clan( victim->pcdata->clan ); medit.c: STRFREE( victim->pcdata->clan_name ); medit.c: victim->pcdata->clan_name = STRALLOC( "" ); medit.c: victim->pcdata->clan = NULL; medit.c: clan = get_clan( olc_clan_list[number-1] ); medit.c: bug( "Non-existant clan linked into olc_clan_list.", 0 ); medit.c: if ( victim->pcdata->clan != NULL && !IS_IMMORTAL(victim) ) medit.c: --victim->pcdata->clan->num_members; medit.c: save_clan( victim->pcdata->clan ); medit.c: STRFREE( victim->pcdata->clan_name ); medit.c: victim->pcdata->clan_name = QUICKLINK( clan->name ); medit.c: victim->pcdata->clan = clan; medit.c: ++victim->pcdata->clan->num_members; medit.c: save_clan( victim->pcdata->clan ); medit.c: olc_log( d, "Clan changed to %s", clan->name ); medit.c: if ( get_trust(d->character) < 58 ) medit.c: send_to_char( "Invalid council, try again: ", d->character ); medit.c: STRFREE( victim->pcdata->council_name ); medit.c: victim->pcdata->council_name = STRALLOC( "" ); medit.c: victim->pcdata->council = NULL; medit.c: number -= 1; /* Offset cause 0 is first element but 0 is None, soo */ medit.c: STRFREE( victim->pcdata->council_name ); medit.c: victim->pcdata->council_name = QUICKLINK( council->name ); medit.c: victim->pcdata->council = council; medit.c: olc_log( d, "Council changed to %s", council->name ); medit.c:/*-------------------------------------------------------------------*/ medit.c:/*-------------------------------------------------------------------*/ minilzo.c:/* minilzo.c -- mini subset of the LZO real-time data compression library minilzo.c: This file is part of the LZO real-time data compression library. minilzo.c: 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. minilzo.c: <markus.oberhumer@jk.uni-linz.ac.at> minilzo.c: http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html minilzo.c: * http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html minilzo.c:#define LZO_MASK(bits) (LZO_SIZE(bits) - 1) minilzo.c:#define LZO_LMASK(bits) (LZO_LSIZE(bits) - 1) minilzo.c:#define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) minilzo.c:#define LZO_STYPE_MAX(b) (((1l << (8*(b)-2)) - 1l) + (1l << (8*(b)-2))) minilzo.c:#define LZO_UTYPE_MAX(b) (((1ul << (8*(b)-1)) - 1ul) + (1ul << (8*(b)-1))) minilzo.c:#define PTR_DIFF(a,b) ((lzo_ptrdiff_t) (PTR(a) - PTR(b))) minilzo.c: p = (((lzo_ptr_t)(_FP_SEG(ptr))) << (16 - __LZO_HShift)) + (_FP_OFF(ptr)); minilzo.c: s = (lzo_ptr_t) (size - 1); minilzo.c: assert((size & (size - 1)) == 0); minilzo.c: n = ((p + s) & ~s) - p; minilzo.c: n = (((p + s) / size) * size) - p; minilzo.c: len -= 8; \ minilzo.c: } while (--__l > 0); } minilzo.c: while (--len > 0) minilzo.c: while (--len > 0) minilzo.c: "LZO real-time data compression library.\n" minilzo.c: "<markus.oberhumer@jk.uni-linz.ac.at>\n" minilzo.c: "http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html\n" minilzo.c: len -= k; minilzo.c: k -= 16; minilzo.c: } while (--k > 0); minilzo.c: d = *p1 - *p2; minilzo.c: while (--len > 0); minilzo.c: while (--len > 0); minilzo.c: while (--len > 0); minilzo.c: *--p1 = *--p2; minilzo.c: while (--len > 0); minilzo.c: while (--len > 0); minilzo.c:# define IS_SIGNED(type) (((type) (1ul << (8 * sizeof(type) - 1))) < 0) minilzo.c:# define IS_UNSIGNED(type) (((type) (1ul << (8 * sizeof(type) - 1))) > 0) minilzo.c:# define IS_SIGNED(type) (((type) (-1)) < ((type) 0)) minilzo.c:# define IS_UNSIGNED(type) (((type) (-1)) > ((type) 0)) minilzo.c: d = (long) ((const lzo_bytep) dict - (const lzo_bytep) _wrkmem); minilzo.c: r &= __lzo_assert((PTR_LINEAR(p0) & (n-1)) == 0); minilzo.c: r &= __lzo_assert( (int) (unsigned char) ((char) -1) == 255); minilzo.c: lzo_uint32 a = u.a >> (8 * sizeof(u.a) - 32); minilzo.c: unsigned short b = u.b >> (8 * sizeof(u.b) - 16); minilzo.c: x[j] = (int)j - 3; minilzo.c: return x[0] != -3 || x[1] != -2 || x[2] != -1; minilzo.c: r = (s1 == -1 || s1 == (int) sizeof(short)) && minilzo.c: (s2 == -1 || s2 == (int) sizeof(int)) && minilzo.c: (s3 == -1 || s3 == (int) sizeof(long)) && minilzo.c: (s4 == -1 || s4 == (int) sizeof(lzo_uint32)) && minilzo.c: (s5 == -1 || s5 == (int) sizeof(lzo_uint)) && minilzo.c: (s6 == -1 || s6 == (int) lzo_sizeof_dict_t) && minilzo.c: (s7 == -1 || s7 == (int) sizeof(char *)) && minilzo.c: (s8 == -1 || s8 == (int) sizeof(lzo_voidp)) && minilzo.c: (s9 == -1 || s9 == (int) sizeof(lzo_compress_t)); minilzo.c: return __lzo_init2(v,s1,s2,s3,s4,s5,-1,-1,s6,s7); minilzo.c:# define DL_BITS (D_BITS - DD_BITS) minilzo.c:# define DL_SHIFT ((DL_BITS + (DL_MIN_LEN - 1)) / DL_MIN_LEN) minilzo.c: (((((lzo_uint32)((p)[2]) << (s2)) - (p)[1]) << (s1)) - (p)[0]) minilzo.c:#define DS3(p,s1,s2,s3) ((DS2((p)+1,s2,s3) << (s1)) - (p)[0]) minilzo.c: dv ^= (lzo_uint32)(p[-1]) << (2*5); dv = (((dv) << 5) ^ p[2]) minilzo.c: dv ^= p[-1]; dv = (((dv) >> 5) ^ ((lzo_uint32)(p[2]) << (2*5))) minilzo.c:# define DENTRY(p,in) ((lzo_uint) ((p)-(in))) minilzo.c: (m_pos == NULL || (m_off = (lzo_moff_t) (ip - m_pos)) > max_offset) minilzo.c: ((m_off = (lzo_moff_t) ((ip)-(in)) - m_off) > max_offset) || \ minilzo.c: (m_pos = (ip) - (m_off), 0) ) minilzo.c: ((lzo_moff_t) ((ip)-(in)) <= m_off || \ minilzo.c: ((m_off = (lzo_moff_t) ((ip)-(in)) - m_off) > max_offset) || \ minilzo.c: (m_pos = (ip) - (m_off), 0) ) minilzo.c: const lzo_byte * const ip_end = in + in_len - M2_MAX_LEN - 5; minilzo.c: assert(op - 2 > out); op[-2] |= LZO_BYTE(3); minilzo.c: assert(op - 2 > out); op[-2] |= LZO_BYTE(t); minilzo.c: do *op++ = *ii++; while (--t > 0); minilzo.c: m_off -= 1; minilzo.c: if (ip - ii > 0) minilzo.c: register lzo_uint t = ip - ii; minilzo.c: assert(op - 2 > out); minilzo.c: op[-2] |= LZO_BYTE(t); minilzo.c: *op++ = LZO_BYTE(t - 3); minilzo.c: register lzo_uint tt = t - 18; minilzo.c: tt -= 255; minilzo.c: do *op++ = *ii++; while (--t > 0); minilzo.c: --ip; minilzo.c: m_len = ip - ii; minilzo.c: m_off -= 1; minilzo.c: *op++ = LZO_BYTE(((m_len - 1) << 5) | ((m_off & 7) << 2)); minilzo.c: m_off -= 1; minilzo.c: *op++ = LZO_BYTE(M3_MARKER | (m_len - 2)); minilzo.c: m_off -= 0x4000; minilzo.c: ((m_off & 0x4000) >> 11) | (m_len - 2)); minilzo.c: m_len = (ip - ii); minilzo.c: m_off -= 1; minilzo.c: *op++ = LZO_BYTE(M3_MARKER | (m_len - 2)); minilzo.c: m_len -= 33; minilzo.c: m_off -= 0x4000; minilzo.c: ((m_off & 0x4000) >> 11) | (m_len - 2)); minilzo.c: m_len -= M4_MAX_LEN; minilzo.c: m_len -= 255; minilzo.c: *out_len = op - out; minilzo.c: return (lzo_uint) (in_end - ii); minilzo.c: const lzo_byte *ii = in + in_len - t; minilzo.c: op[-2] |= LZO_BYTE(t); minilzo.c: *op++ = LZO_BYTE(t - 3); minilzo.c: lzo_uint tt = t - 18; minilzo.c: tt -= 255; minilzo.c: do *op++ = *ii++; while (--t > 0); minilzo.c: *out_len = op - out; minilzo.c: if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun minilzo.c: if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun minilzo.c: dict += dict_len - M4_MAX_OFFSET; minilzo.c: t = *ip++ - 17; minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: if (--t > 0) minilzo.c: op += 4; ip += 4; t -= 4; minilzo.c: if (t > 0) do *op++ = *ip++; while (--t > 0); minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: m_pos = op - t; minilzo.c: m_pos = op - (1 + M2_MAX_OFFSET); minilzo.c: m_pos -= t >> 2; minilzo.c: m_pos -= *ip++ << 2; minilzo.c: t = (t >> 5) - 1; minilzo.c: t = (t >> 4) - 3; minilzo.c: t = (t >> 5) - 1; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (t >> 2) & 7; minilzo.c: m_pos -= *ip++ << 3; minilzo.c: t = (t >> 5) - 1; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (t >> 2) & 3; minilzo.c: m_pos -= *ip++ << 2; minilzo.c: t = (t >> 4) - 3; minilzo.c: m_pos -= last_m_off; minilzo.c: m_pos -= off; minilzo.c: t = (t >> 5) - 1; minilzo.c: TEST_LOOKBEHIND(m_pos,out); assert(t > 0); NEED_OP(t+3-1); minilzo.c: m_pos = op - off; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (* (const lzo_ushortp) ip) >> 2; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (ip[0] >> 2) + (ip[1] << 6); minilzo.c: m_pos -= (t & 8) << 11; minilzo.c: m_pos -= (ip[0] << 6) + (ip[1] >> 2); minilzo.c: m_pos -= (* (const lzo_ushortp) ip) >> 2; minilzo.c: m_pos -= (ip[0] >> 2) + (ip[1] << 6); minilzo.c: m_pos -= 0x4000; minilzo.c: last_m_off = op - m_pos; minilzo.c: m_pos = op - t; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= t >> 2; minilzo.c: m_pos -= *ip++ << 2; minilzo.c: NEED_OP(t+3-1); minilzo.c: t += 3-1; COPY_DICT(t,m_off) minilzo.c: TEST_LOOKBEHIND(m_pos,out); assert(t > 0); NEED_OP(t+3-1); minilzo.c: if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) minilzo.c: assert((op - m_pos) >= 4); minilzo.c: if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) minilzo.c: op += 4; m_pos += 4; t -= 4 - (3 - 1); minilzo.c: op += 4; m_pos += 4; t -= 4; minilzo.c: if (t > 0) do *op++ = *m_pos++; while (--t > 0); minilzo.c: do *op++ = *m_pos++; while (--t > 0); minilzo.c: t = ip[-1] & 3; minilzo.c: t = ip[-2] & 3; minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: if ((lzo_uint)(ip_end - ip) < (lzo_uint)(x)) goto input_overrun minilzo.c: if ((lzo_uint)(op_end - op) < (lzo_uint)(x)) goto output_overrun minilzo.c: dict += dict_len - M4_MAX_OFFSET; minilzo.c: t = *ip++ - 17; minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: if (--t > 0) minilzo.c: op += 4; ip += 4; t -= 4; minilzo.c: if (t > 0) do *op++ = *ip++; while (--t > 0); minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: m_pos = op - t; minilzo.c: m_pos = op - (1 + M2_MAX_OFFSET); minilzo.c: m_pos -= t >> 2; minilzo.c: m_pos -= *ip++ << 2; minilzo.c: t = (t >> 5) - 1; minilzo.c: t = (t >> 4) - 3; minilzo.c: t = (t >> 5) - 1; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (t >> 2) & 7; minilzo.c: m_pos -= *ip++ << 3; minilzo.c: t = (t >> 5) - 1; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (t >> 2) & 3; minilzo.c: m_pos -= *ip++ << 2; minilzo.c: t = (t >> 4) - 3; minilzo.c: m_pos -= last_m_off; minilzo.c: m_pos -= off; minilzo.c: t = (t >> 5) - 1; minilzo.c: TEST_LOOKBEHIND(m_pos,out); assert(t > 0); NEED_OP(t+3-1); minilzo.c: m_pos = op - off; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (* (const lzo_ushortp) ip) >> 2; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= (ip[0] >> 2) + (ip[1] << 6); minilzo.c: m_pos -= (t & 8) << 11; minilzo.c: m_pos -= (ip[0] << 6) + (ip[1] >> 2); minilzo.c: m_pos -= (* (const lzo_ushortp) ip) >> 2; minilzo.c: m_pos -= (ip[0] >> 2) + (ip[1] << 6); minilzo.c: m_pos -= 0x4000; minilzo.c: last_m_off = op - m_pos; minilzo.c: m_pos = op - t; minilzo.c: m_pos = op - 1; minilzo.c: m_pos -= t >> 2; minilzo.c: m_pos -= *ip++ << 2; minilzo.c: NEED_OP(t+3-1); minilzo.c: t += 3-1; COPY_DICT(t,m_off) minilzo.c: TEST_LOOKBEHIND(m_pos,out); assert(t > 0); NEED_OP(t+3-1); minilzo.c: if (t >= 2 * 4 - (3 - 1) && PTR_ALIGNED2_4(op,m_pos)) minilzo.c: assert((op - m_pos) >= 4); minilzo.c: if (t >= 2 * 4 - (3 - 1) && (op - m_pos) >= 4) minilzo.c: op += 4; m_pos += 4; t -= 4 - (3 - 1); minilzo.c: op += 4; m_pos += 4; t -= 4; minilzo.c: if (t > 0) do *op++ = *m_pos++; while (--t > 0); minilzo.c: do *op++ = *m_pos++; while (--t > 0); minilzo.c: t = ip[-1] & 3; minilzo.c: t = ip[-2] & 3; minilzo.c: do *op++ = *ip++; while (--t > 0); minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; minilzo.c: *out_len = op - out; misc.c: * -----------------------------------------------------------| (0...0) * misc.c: * -----------------------------------------------------------| {o o} * misc.c: * ------------------------------------------------------------------------ * misc.c: * ------------------------------------------------------------------------ * misc.c: * Many enhancements added by Thoric (ie: filling non-drink containers) misc.c: dest_item = obj->item_type; misc.c: src_item1 = src_item2 = src_item3 = -1; misc.c: if ( IS_SET(obj->value[1], CONT_CLOSED) ) misc.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, obj->name, TO_CHAR ); misc.c: if ( get_real_obj_weight( obj ) / obj->count misc.c: >= obj->value[0] ) misc.c: diff = obj->value[0] - obj->value[1]; misc.c: if ( diff < 1 || obj->value[1] >= obj->value[0] ) misc.c: && IS_SET( obj->value[3], PIPE_FULLOFASH ) ) misc.c: right. Check out Lord Fitzgibbon if you're curious. -Narn */ misc.c: if ( source->item_type != src_item1 && source->item_type != src_item2 misc.c: && source->item_type != src_item3 ) misc.c: for ( source = ch->in_room->first_content; misc.c: src_next = source->next_content; misc.c: || ch->carry_weight + get_obj_weight(source) > can_carry_w(ch) misc.c: || (get_real_obj_weight(source) + get_real_obj_weight(obj)/obj->count) misc.c: > obj->value[0] ) misc.c: && !nifty_is_name( &arg2[4], source->name ) ) misc.c: if ( source->item_type == ITEM_MONEY ) misc.c: ch->gold += source->value[0]; misc.c: if (source->item_type == src_item1 misc.c: || source->item_type == src_item2 misc.c: || source->item_type == src_item3) misc.c: switch( source->item_type ) misc.c: if ( !source->in_room /* disallow inventory items */ misc.c: || ch->carry_weight + get_obj_weight(source) > can_carry_w(ch) misc.c: || (get_real_obj_weight(source) + get_real_obj_weight(obj)/obj->count) misc.c: > obj->value[0] ) misc.c:/* || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY )*/ ) misc.c: pd = source->short_descr; misc.c: if ( str_cmp( name, ch->name ) && !IS_IMMORTAL(ch) ) misc.c: for ( gch = first_char; gch; gch = gch->next ) misc.c: && !str_cmp( name, gch->name ) ) misc.c: } Anyone can loot corpses! -- Scion */ misc.c: if ( source->item_type == ITEM_CONTAINER /* don't remove */ misc.c: && IS_SET(source->value[1], CONT_CLOSED) ) misc.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, source->name, TO_CHAR ); misc.c: if ( (otmp=source->first_content) == NULL ) misc.c: otmp_next = otmp->next_content; misc.c: || ch->carry_number + otmp->count > can_carry_n(ch) misc.c: || ch->carry_weight + get_obj_weight(otmp) > can_carry_w(ch) misc.c: || (get_real_obj_weight(source) + get_real_obj_weight(obj)/obj->count) misc.c: > obj->value[0] ) misc.c: if ( source->value[1] < 1 ) misc.c: if ( source->count > 1 && source->item_type != ITEM_FOUNTAIN ) misc.c: switch( source->item_type ) misc.c: bug( "do_fill: got bad item type: %d", source->item_type ); misc.c: if ( obj->value[1] != 0 && obj->value[2] != 0 ) misc.c: obj->value[2] = 0; misc.c: obj->value[1] = obj->value[0]; misc.c: if ( obj->value[1] != 0 && obj->value[2] != 13 ) misc.c: obj->value[2] = 13; misc.c: if ( source->value[1] < diff ) misc.c: diff = source->value[1]; misc.c: obj->value[1] += diff; misc.c: if ( (source->value[1] -= diff) < 1 ) misc.c: if ( obj->value[1] != 0 && obj->value[2] != source->value[2] ) misc.c: obj->value[2] = source->value[2]; misc.c: if ( source->value[1] < diff ) misc.c: diff = source->value[1]; misc.c: obj->value[1] += diff; misc.c: if ( (source->value[1] -= diff) < 1 ) misc.c: if ( obj->value[1] != 0 && obj->value[2] != source->value[2] ) misc.c: obj->value[2] = source->value[2]; misc.c: if ( source->value[1] < diff ) misc.c: diff = source->value[1]; misc.c: obj->value[1] += diff; misc.c: source->value[1] -= diff; misc.c: if ( obj->value[1] != 0 && obj->value[2] != source->value[2] ) misc.c: obj->value[2] = source->value[2]; misc.c: if ( source->value[1] < diff ) misc.c: diff = source->value[1]; misc.c: obj->value[1] += diff; misc.c: source->value[1] -= diff; misc.c: for ( obj = ch->in_room->first_content; obj; obj = obj->next_content ) misc.c: if ( (obj->item_type == ITEM_FOUNTAIN) misc.c: || (obj->item_type == ITEM_BLOOD) ) misc.c: if ( obj->count > 1 && obj->item_type != ITEM_FOUNTAIN ) misc.c: if ( !IS_NPC(ch) && ch->pcdata->condition[COND_DRUNK] > 40 ) misc.c: switch ( obj->item_type ) misc.c: if ( obj->carried_by == ch ) misc.c: if ( obj->carried_by == ch ) misc.c: do_quaff( ch, obj->name ); misc.c: /*if ( obj->timer > 0 misc.c: && ch->level > 5 misc.c: && ch->pcdata->condition[COND_BLOODTHIRST] > (5+ch->level/10) ) misc.c: if ( ch->pcdata->condition[COND_BLOODTHIRST] < (10 + ch->level) ) misc.c: if ( ch->pcdata->condition[COND_FULL] >= 48 misc.c: || ch->pcdata->condition[COND_THIRST] >= 48 ) misc.c: // if (obj->value[1] <= (ch->max_mana - ch->mana)) misc.c: if( obj->value[1] <= ch->pcdata->condition[COND_BLOODTHIRST] ) misc.c: if (obj->value[1] > (ch->max_mana - ch->mana)) misc.c: gain_condition(ch, COND_BLOODTHIRST, (ch->max_mana - ch->mana)); misc.c: obj->value[1] -= (ch->max_mana - ch->mana); misc.c: gain_condition(ch, COND_BLOODTHIRST, obj->value[1]); misc.c: obj->value[1] = 0; misc.c: if( obj->value[1] <= ch->pcdata->condition[COND_BLOODTHIRST] ) misc.c: gain_condition(ch, COND_BLOODTHIRST, obj->value[1] ); misc.c: obj->value[1] = 0; misc.c: int amount = obj->value[1] - ch->pcdata->condition[COND_BLOODTHIRST]; misc.c: obj->value[1] -= amount; misc.c: if (obj->value[1] <=0) misc.c: if ( obj->serial == cur_obj ) misc.c: if (!obj->action_desc || obj->action_desc[0]=='\0' ) { misc.c: ch->pcdata->condition[COND_THIRST] = 40; misc.c: if ( obj->value[1] <= 0 ) misc.c: if ( ( liquid = obj->value[2] ) >= LIQ_MAX ) misc.c: liquid = obj->value[2] = 0; misc.c: if (!obj->action_desc || obj->action_desc[0]=='\0' ) { misc.c: amount = 1; /* UMIN(amount, obj->value[1]); */ misc.c: if ( ch->pcdata->condition[COND_DRUNK] > 24 ) misc.c: if ( ch->pcdata->condition[COND_DRUNK] > 18 ) misc.c: if ( ch->pcdata->condition[COND_DRUNK] > 12 ) misc.c: if ( ch->pcdata->condition[COND_DRUNK] > 8 ) misc.c: if ( ch->pcdata->condition[COND_DRUNK] > 5 ) misc.c: if ( ch->pcdata->condition[COND_FULL] > 40 ) misc.c: if ( ch->pcdata->condition[COND_THIRST] > 40 ) misc.c: if ( ch->pcdata->condition[COND_THIRST] > 36 ) misc.c: if ( ch->pcdata->condition[COND_THIRST] > 30 ) misc.c: if ( obj->value[3] ) misc.c: ch->mental_state = URANGE( 20, ch->mental_state + 5, 100 ); misc.c: af.duration = 3 * obj->value[3]; misc.c: obj->value[1] -= amount; misc.c: if ( obj->value[1] <= 0 ) misc.c: if ( cur_obj == obj->serial ) misc.c: if ( IS_NPC(ch) || ch->pcdata->condition[COND_FULL] > 5 ) misc.c: if ( obj->item_type != ITEM_FOOD && obj->item_type != ITEM_PILL && misc.c: obj->item_type != ITEM_COOK) misc.c: if ( !IS_NPC(ch) && ch->pcdata->condition[COND_FULL] > 40 ) misc.c: if ( !IS_NPC(ch) && (!IS_PKILL(ch) || (IS_PKILL(ch) && !IS_SET(ch->pcdata->flags, PCFLAG_HIGHGAG) ) ) ) misc.c: if ( obj->in_obj ) misc.c: act( AT_PLAIN, "You take $p from $P.", ch, obj, obj->in_obj, TO_CHAR ); misc.c: act( AT_PLAIN, "$n takes $p from $P.", ch, obj, obj->in_obj, TO_ROOM ); misc.c: if ( ch->fighting && number_percent( ) > (get_curr_dex(ch) * 2 + 47) ) misc.c: ( ch->in_room->sector_type == SECT_UNDERWATER || misc.c: ch->in_room->sector_type == SECT_WATER_SWIM || misc.c: ch->in_room->sector_type == SECT_WATER_NOSWIM ) ? "dissolves in the water" : misc.c: ( ch->in_room->sector_type == SECT_AIR || misc.c: IS_SET( ch->in_room->room_flags, ROOM_NOFLOOR ) ) ? "falls far below" : misc.c: if ( !obj->action_desc || obj->action_desc[0]=='\0' ) misc.c: switch ( obj->item_type ) misc.c: if ( obj->timer > 0 && obj->value[1] > 0 ) misc.c: foodcond = (obj->timer * 10) / obj->value[1]; misc.c: condition = ch->pcdata->condition[COND_FULL]; misc.c: gain_condition( ch, COND_FULL, (obj->value[0] * foodcond) / 10 ); misc.c: if ( condition <= 1 && ch->pcdata->condition[COND_FULL] > 1 ) misc.c: else if ( ch->pcdata->condition[COND_FULL] > 40 ) misc.c: if ( obj->value[3] != 0 misc.c: || (obj->item_type == ITEM_COOK && obj->value[2] == 0 ) ) misc.c: if ( obj->value[3] != 0 ) misc.c: ch->mental_state = URANGE( 20, ch->mental_state + 5, 100 ); misc.c: ch->mental_state = URANGE( 15, ch->mental_state + 5, 100 ); misc.c: af.duration = 2 * obj->value[0] misc.c: * (obj->value[3] > 0 ? obj->value[3] : 1); misc.c: sysdata.upill_val += obj->cost/100; misc.c: if ( !IS_NPC(ch) && obj->value[4] ) misc.c: condition = ch->pcdata->condition[COND_FULL]; misc.c: gain_condition( ch, COND_FULL, obj->value[4] ); misc.c: if ( condition <= 1 && ch->pcdata->condition[COND_FULL] > 1 ) misc.c: else if ( ch->pcdata->condition[COND_FULL] > 40 ) misc.c: retcode = obj_cast_spell( obj->value[1], obj->value[0], ch, ch, NULL ); misc.c: retcode = obj_cast_spell( obj->value[2], obj->value[0], ch, ch, NULL ); misc.c: retcode = obj_cast_spell( obj->value[3], obj->value[0], ch, ch, NULL ); misc.c: if ( obj->serial == cur_obj ) misc.c: if ( obj->item_type != ITEM_POTION ) misc.c: if ( obj->item_type == ITEM_DRINK_CON ) misc.c: do_drink( ch, obj->name ); misc.c: * Empty container check -Shaddai misc.c: if ( obj->value[1] == -1 && obj->value[2] == -1 && obj->value[3] == -1 ) misc.c: * Fullness checking -Thoric misc.c: && ( ch->pcdata->condition[COND_FULL] >= 48 misc.c: || ch->pcdata->condition[COND_THIRST] >= 48 ) ) misc.c: /* People with nuisance flag feels up quicker. -- Shaddai */ misc.c: /* Yeah so I can't spell I'm a coder :P --Shaddai */ misc.c: /* You are now adept at feeling up quickly! -- Blod */ misc.c: if ( !IS_NPC(ch) && ch->pcdata->nuisance && misc.c: ch->pcdata->nuisance->flags > 3 misc.c: &&(ch->pcdata->condition[COND_FULL]>=(48-(3*ch->pcdata->nuisance->flags)+ misc.c: ch->pcdata->nuisance->power) misc.c: ||ch->pcdata->condition[COND_THIRST]>=(48-(ch->pcdata->nuisance->flags)+ misc.c: ch->pcdata->nuisance->power))) misc.c: if ( !IS_NPC(ch) && (!IS_PKILL(ch) || (IS_PKILL(ch) && !IS_SET(ch->pcdata->flags, PCFLAG_HIGHGAG) ) ) ) misc.c: if ( obj->in_obj ) misc.c: act( AT_PLAIN, "You take $p from $P.", ch, obj, obj->in_obj, TO_CHAR ); misc.c: act( AT_PLAIN, "$n takes $p from $P.", ch, obj, obj->in_obj, TO_ROOM ); misc.c: * If fighting, chance of dropping potion -Thoric misc.c: if ( ch->fighting && number_percent( ) > (get_curr_dex(ch) * 2 + 48) ) misc.c: if ( !CAN_PKILL( ch ) || !obj->in_obj ) misc.c: else if ( obj->in_obj ) misc.c: act( AT_ACTION, "$n quaffs $p from $P.", ch, obj, obj->in_obj, TO_ROOM ); misc.c: act( AT_ACTION, "You quaff $p from $P.", ch, obj, obj->in_obj, TO_CHAR ); misc.c: if ( !IS_NPC(ch) && ch->pcdata->condition[COND_THIRST] > 43 ) misc.c: retcode = obj_cast_spell( obj->value[1], obj->value[0], ch, ch, NULL ); misc.c: retcode = obj_cast_spell( obj->value[2], obj->value[0], ch, ch, NULL ); misc.c: retcode = obj_cast_spell( obj->value[3], obj->value[0], ch, ch, NULL ); misc.c: if ( obj->pIndexData->vnum == OBJ_VNUM_FLASK_BREWING ) misc.c: sysdata.upotion_val += obj->cost/100; misc.c: if ( cur_obj == obj->serial ) misc.c: if ( scroll->item_type != ITEM_SCROLL ) misc.c: && (scroll->pIndexData->vnum == OBJ_VNUM_SCROLL_SCRIBING) ) misc.c: if( ( scroll->pIndexData->vnum == OBJ_VNUM_SCROLL_SCRIBING) misc.c: &&(ch->level + 10 < scroll->value[0])) misc.c: if ( scroll->pIndexData->vnum == OBJ_VNUM_SCROLL_SCRIBING ) misc.c: retcode = obj_cast_spell( scroll->value[1], scroll->value[0], ch, victim, obj ); misc.c: retcode = obj_cast_spell( scroll->value[2], scroll->value[0], ch, victim, obj ); misc.c: retcode = obj_cast_spell( scroll->value[3], scroll->value[0], ch, victim, obj ); misc.c: if ( scroll->serial == cur_obj ) misc.c: * Function to handle the state changing of a triggerobject (lever) -Thoric misc.c: if ( IS_SET( obj->value[0], TRIG_UP ) ) misc.c: switch( obj->item_type ) misc.c: if( (pull) && HAS_PROG(obj->pIndexData,PULL_PROG) ) misc.c: if ( !IS_SET(obj->value[0], TRIG_AUTORETURN ) ) misc.c: REMOVE_BIT( obj->value[0], TRIG_UP ); misc.c: if( (!pull) && HAS_PROG(obj->pIndexData,PUSH_PROG) ) misc.c: if ( !IS_SET(obj->value[0], TRIG_AUTORETURN ) ) misc.c: SET_BIT( obj->value[0], TRIG_UP ); misc.c: if ( !IS_SET(obj->value[0], TRIG_AUTORETURN ) ) misc.c: REMOVE_BIT( obj->value[0], TRIG_UP ); misc.c: SET_BIT( obj->value[0], TRIG_UP ); misc.c: if ( IS_SET( obj->value[0], TRIG_TELEPORT ) misc.c: || IS_SET( obj->value[0], TRIG_TELEPORTALL ) misc.c: || IS_SET( obj->value[0], TRIG_TELEPORTPLUS ) ) misc.c: if ( ( room = get_room_index( obj->value[1] ) ) == NULL ) misc.c: bug( "PullOrPush: obj points to invalid room %d", obj->value[1] ); misc.c: if ( IS_SET( obj->value[0], TRIG_SHOWROOMDESC ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_TELEPORTALL ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_TELEPORTPLUS ) ) misc.c: teleport( ch, obj->value[1], flags ); misc.c: if ( IS_SET( obj->value[0], TRIG_RAND4 ) misc.c: || IS_SET( obj->value[0], TRIG_RAND6 ) ) misc.c: if ( ( room = get_room_index( obj->value[1] ) ) == NULL ) misc.c: bug( "PullOrPush: obj points to invalid room %d", obj->value[1] ); misc.c: if ( IS_SET( obj->value[0], TRIG_RAND4 ) ) misc.c: for ( rch = room->first_person; rch; rch = rch->next_in_room ) misc.c: if ( IS_SET( obj->value[0], TRIG_DOOR ) ) misc.c: room = get_room_index( obj->value[1] ); misc.c: room = obj->in_room; misc.c: bug( "PullOrPush: obj points to invalid room %d", obj->value[1] ); misc.c: if ( IS_SET( obj->value[0], TRIG_D_NORTH ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_D_SOUTH ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_D_EAST ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_D_WEST ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_D_UP ) ) misc.c: if ( IS_SET( obj->value[0], TRIG_D_DOWN ) ) misc.c: if ( !IS_SET( obj->value[0], TRIG_PASSAGE ) ) misc.c: bug( "PullOrPush: obj points to non-exit %d", obj->value[1] ); misc.c: to_room = get_room_index( obj->value[2] ); misc.c: bug( "PullOrPush: dest points to invalid room %d", obj->value[2] ); misc.c: pexit->keyword = STRALLOC( "" ); misc.c: pexit->description = STRALLOC( "" ); misc.c: pexit->key = -1; misc.c: pexit->exit_info = 0; misc.c: if ( IS_SET( obj->value[0], TRIG_UNLOCK ) misc.c: && IS_SET( pexit->exit_info, EX_LOCKED) ) misc.c: REMOVE_BIT(pexit->exit_info, EX_LOCKED); misc.c: if ( ( pexit_rev = pexit->rexit ) != NULL misc.c: && pexit_rev->to_room == ch->in_room ) misc.c: REMOVE_BIT( pexit_rev->exit_info, EX_LOCKED ); misc.c: if ( IS_SET( obj->value[0], TRIG_LOCK ) misc.c: && !IS_SET( pexit->exit_info, EX_LOCKED) ) misc.c: SET_BIT(pexit->exit_info, EX_LOCKED); misc.c: if ( ( pexit_rev = pexit->rexit ) != NULL misc.c: && pexit_rev->to_room == ch->in_room ) misc.c: SET_BIT( pexit_rev->exit_info, EX_LOCKED ); misc.c: if ( IS_SET( obj->value[0], TRIG_OPEN ) misc.c: && IS_SET( pexit->exit_info, EX_CLOSED) ) misc.c: REMOVE_BIT(pexit->exit_info, EX_CLOSED); misc.c: for ( rch = room->first_person; rch; rch = rch->next_in_room ) misc.c: act( AT_ACTION, "The $d opens.", rch, NULL, pexit->keyword, TO_CHAR ); misc.c: if ( ( pexit_rev = pexit->rexit ) != NULL misc.c: && pexit_rev->to_room == ch->in_room ) misc.c: REMOVE_BIT( pexit_rev->exit_info, EX_CLOSED ); misc.c: for ( rch = pexit->to_room->first_person; rch; rch = rch->next_in_room ) misc.c: act( AT_ACTION, "The $d opens.", rch, NULL, pexit_rev->keyword, TO_CHAR ); misc.c: if ( IS_SET( obj->value[0], TRIG_CLOSE ) misc.c: && !IS_SET( pexit->exit_info, EX_CLOSED) ) misc.c: SET_BIT(pexit->exit_info, EX_CLOSED); misc.c: for ( rch = room->first_person; rch; rch = rch->next_in_room ) misc.c: act( AT_ACTION, "The $d closes.", rch, NULL, pexit->keyword, TO_CHAR ); misc.c: if ( ( pexit_rev = pexit->rexit ) != NULL misc.c: && pexit_rev->to_room == ch->in_room ) misc.c: SET_BIT( pexit_rev->exit_info, EX_CLOSED ); misc.c: for ( rch = pexit->to_room->first_person; rch; rch = rch->next_in_room ) misc.c: act( AT_ACTION, "The $d closes.", rch, NULL, pexit_rev->keyword, TO_CHAR ); misc.c: if ( ch->fighting ) misc.c: if ( !IS_SET( pexit->exit_info, EX_CLOSED ) ) misc.c: if ( IS_SET( pexit->exit_info, EX_SECRET ) ) misc.c: keyword = pexit->keyword; misc.c: if ( (to_room = pexit->to_room) != NULL misc.c: && (pexit_rev = pexit->rexit) != NULL misc.c: && pexit_rev->to_room == ch->in_room ) misc.c: for ( rch = to_room->first_person; rch; rch = rch->next_in_room ) misc.c: rch, NULL, pexit_rev->keyword, TO_CHAR ); misc.c: if ( pipe->item_type != ITEM_PIPE ) misc.c: if ( !IS_SET( pipe->value[3], PIPE_TAMPED ) ) misc.c: SET_BIT( pipe->value[3], PIPE_TAMPED ); misc.c: if ( pipe->item_type != ITEM_PIPE ) misc.c: if ( !IS_SET( pipe->value[3], PIPE_LIT ) ) misc.c: if ( pipe->value[1] > 0 ) misc.c: if ( IS_VALID_HERB( pipe->value[2] ) && pipe->value[2] < top_herb ) misc.c: int sn = pipe->value[2] + TYPE_HERB; misc.c: WAIT_STATE( ch, skill->beats ); misc.c: if ( skill->spell_fun ) misc.c: obj_cast_spell( sn, UMIN(skill->min_level, ch->level), misc.c: bug( "do_smoke: bad herb type %d", pipe->value[2] ); misc.c: SET_BIT( pipe->value[3], PIPE_HOT ); misc.c: if ( --pipe->value[1] < 1 ) misc.c: REMOVE_BIT( pipe->value[3], PIPE_LIT ); misc.c: SET_BIT( pipe->value[3], PIPE_DIRTY ); misc.c: SET_BIT( pipe->value[3], PIPE_FULLOFASH ); misc.c: if ( pipe->item_type != ITEM_PIPE ) misc.c: if ( !IS_SET( pipe->value[3], PIPE_LIT ) ) misc.c: if ( pipe->value[1] < 1 ) misc.c: SET_BIT( pipe->value[3], PIPE_LIT ); misc.c: if ( obj->count > 1 ) misc.c: switch( obj->item_type ) misc.c: REMOVE_BIT( obj->value[3], PIPE_FULLOFASH ); misc.c: REMOVE_BIT( obj->value[3], PIPE_LIT ); misc.c: obj->value[1] = 0; misc.c: if ( obj->value[1] < 1 ) misc.c: obj->value[1] = 0; misc.c: if ( IS_SET(obj->value[1], CONT_CLOSED) ) misc.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, obj->name, TO_CHAR ); misc.c: if ( !obj->first_content ) misc.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NODROP ) misc.c: || xIS_SET( ch->act, PLR_LITTERBUG ) ) misc.c: if ( IS_SET( ch->in_room->room_flags, ROOM_NODROPALL ) misc.c: || IS_SET( ch->in_room->room_flags, ROOM_CLANSTOREROOM ) ) misc.c: if ( empty_obj( obj, NULL, ch->in_room ) ) misc.c: if ( dest->item_type != ITEM_CONTAINER && dest->item_type != ITEM_KEYRING misc.c: && dest->item_type != ITEM_QUIVER ) misc.c: if ( IS_SET(dest->value[1], CONT_CLOSED) ) misc.c: act( AT_PLAIN, "The $d is closed.", ch, NULL, dest->name, TO_CHAR ); misc.c: if ( !dest->carried_by misc.c: * Apply a salve/ointment -Thoric misc.c: if ( ch->fighting ) misc.c: if ( victim->fighting ) misc.c: if ( salve->item_type != ITEM_SALVE ) misc.c: --salve->value[1]; misc.c: if ( !salve->action_desc || salve->action_desc[0]=='\0' ) misc.c: if ( salve->value[1] < 1 ) misc.c: WAIT_STATE( ch, salve->value[3] ); misc.c: retcode = obj_cast_spell( salve->value[4], salve->value[0], ch, victim, NULL ); misc.c: retcode = obj_cast_spell( salve->value[5], salve->value[0], ch, victim, NULL ); misc.c: if ( !obj_extracted(salve) && salve->value[1] <= 0 ) misc.c: char *srcptr = obj->action_desc; misc.c: srcptr--; misc.c: iroom = IS_NPC( ch ) ? ch->short_descr : ch->name; misc.c:switch( obj->item_type ) misc.c: act( AT_ACTION, charbuf, ch, obj, liq_table[obj->value[2]].liq_name, TO_CHAR ); misc.c: act( AT_ACTION, roombuf, ch, obj, liq_table[obj->value[2]].liq_name, TO_ROOM ); misc.c: * Extended Bitvector Routines -Thoric misc.c: if ( bits->bits[x] != 0 ) misc.c: bits->bits[x] = 0; misc.c:/* for use by xHAS_BITS() -- works like IS_SET() */ misc.c: if ( (bit=(var->bits[x] & bits->bits[x])) != 0 ) misc.c:/* for use by xSAME_BITS() -- works like == */ misc.c: if ( var->bits[x] != bits->bits[x] ) misc.c:/* for use by xSET_BITS() -- works like SET_BIT() */ misc.c: var->bits[x] |= bits->bits[x]; misc.c:/* for use by xREMOVE_BITS() -- works like REMOVE_BIT() */ misc.c: var->bits[x] &= ~(bits->bits[x]); misc.c:/* for use by xTOGGLE_BITS() -- works like TOGGLE_BIT() */ misc.c: var->bits[x] ^= bits->bits[x]; misc.c: * Read an extended bitvector from a file. -Thoric misc.c: for ( cnt = XBI-1; cnt > 0; cnt-- ) misc.c: if ( bits->bits[cnt] ) misc.c: sprintf(p, "%d", bits->bits[x]); misc.c: * Write an extended bitvector to a file -Thoric misc.c: while ((b = va_arg(param, int)) != -1) misc.c: tv->tv_sec = time (0); misc.c: tv->tv_usec = 0; misc.c: dp->hDirectory = 0; /* if zero, we must do a FindFirstFile */ misc.c: strcpy (dp->sDirName, sDirName); /* remember for FindFirstFile */ misc.c: if (dp->hDirectory == 0) misc.c: dp->hDirectory = FindFirstFile (dp->sDirName, &dp->Win32FindData); misc.c: if (dp->hDirectory == INVALID_HANDLE_VALUE) misc.c: if (!FindNextFile (dp->hDirectory, &dp->Win32FindData)) misc.c: } while (dp->Win32FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); misc.c: dp->dirinfo.d_name = dp->Win32FindData.cFileName; misc.c: return &dp->dirinfo; misc.c: if (dp->hDirectory) misc.c: FindClose (dp->hDirectory); mobchat.c: * codebase, but it is by no means necessary. -- Scion */ mobchat.c: if (!HAS_PROG(ch->pIndexData, SPEECH_PROG)) { mobchat.c: sprintf(buf, "%s %s", vict->name, mob_reply(message)); mobchat.c: * testing stage stuff. -- Scion */ motd.c:/* MOTD Displayer -- Chris/James/Bill -- 4/99 */ motd.c: if ( ch->level >= 103 ) motd.c: else if ( ch->level >= 101 ) motd.c: else if ( ch->level >= 50 ) motd.c: else if ( ch->level >= 2 ) motd.c: else if ( ch->level == 1 ) motd.c:/* MOTD File Edit -- Chris -- 4/99 */ motd.c: * Do no add do_medit, it is not done and does not work well -- KCAH motd.c: do_hset( ch, "level -1 _amotd_"); motd.c: do_hset( ch, "level -1 _smotd_"); motd.c: do_hset( ch, "level -1 _cmotd_"); motd.c: do_hset( ch, "level -1 _nmotd_"); mpxset.c: * -----------------------------------------------------------| (0...0) * mpxset.c: * -----------------------------------------------------------| {o o} * mpxset.c: * ------------------------------------------------------------------------ * mpxset.c: if ( !IS_NPC( ch ) || IS_AFFECTED(ch, AFF_CHARM) || ch->desc ) mpxset.c: if ( IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE) ) mpxset.c: value = is_number( arg3 ) ? atoi( arg3 ) : -1; mpxset.c: if ( atoi(arg3) < -1 && value == -1 ) mpxset.c: victim->perm_str = value; mpxset.c: victim->perm_int = value; mpxset.c: victim->perm_wis = value; mpxset.c: victim->perm_dex = value; mpxset.c: victim->perm_con = value; mpxset.c: victim->perm_cha = value; mpxset.c: victim->perm_lck = value; mpxset.c: if ( value < -30 || value > 30 ) mpxset.c: victim->saving_poison_death = value; mpxset.c: if ( value < -30 || value > 30 ) mpxset.c: victim->saving_wand = value; mpxset.c: if ( value < -30 || value > 30 ) mpxset.c: victim->saving_para_petri = value; mpxset.c: if ( value < -30 || value > 30 ) mpxset.c: victim->saving_breath = value; mpxset.c: if ( value < -30 || value > 30 ) mpxset.c: victim->saving_spell_staff = value; mpxset.c: victim->sex = value; mpxset.c: victim->class = value; mpxset.c: victim->race = value; mpxset.c: if ( value < -300 || value > 300 ) mpxset.c: send_to_char( "AC range is -300 to 300.\n\r", ch ); mpxset.c: victim->armor = value; mpxset.c: victim->level = value; mpxset.c: victim->numattacks = value; mpxset.c: victim->gold = value; mpxset.c: victim->hitroll = URANGE(0, value, 85); mpxset.c: victim->damroll = URANGE(0, value, 65); mpxset.c: if( ch->pcdata->wedto ) mpxset.c: STRFREE( ch->pcdata->wedto ); mpxset.c: ch->pcdata->wedto = str_dup( arg3 ); mpxset.c: victim->max_hit = value; mpxset.c: victim->max_mana = value; mpxset.c: victim->max_move = value; mpxset.c: victim->practice = value; mpxset.c: if ( value < -1000 || value > 1000 ) mpxset.c: victim->alignment = value; mpxset.c:/* non-functional for now -- Blod mpxset.c: victim->pcdata->quest = value; mpxset.c: ch->name, victim->name, value ); mpxset.c: victim->pcdata->quest_curr += value; mpxset.c: victim->pcdata->quest_accum += value; mpxset.c: if ( value < -2500 || value > 2500 ) mpxset.c: victim->pcdata->favor = value; mpxset.c: if ( value < -100 || value > 100 ) mpxset.c: victim->mental_state = value; mpxset.c: if ( value < -100 || value > 100 ) mpxset.c: victim->emotional_state = value; mpxset.c: if ( value < -1 || value > 100 ) mpxset.c: victim->pcdata->condition[COND_THIRST] = value; mpxset.c: victim->pcdata->condition[COND_DRUNK] = value; mpxset.c: if ( value < -1 || value > 100 ) mpxset.c: victim->pcdata->condition[COND_FULL] = value; mpxset.c: victim->pcdata->condition[COND_BLOODTHIRST] = value; mpxset.c: STRFREE( victim->name ); mpxset.c: victim->name = STRALLOC( arg3 ); mpxset.c: STRFREE( victim->pcdata->deity_name ); mpxset.c: victim->pcdata->deity_name = STRALLOC( "" ); mpxset.c: victim->pcdata->deity = NULL; mpxset.c: STRFREE( victim->pcdata->deity_name ); mpxset.c: victim->pcdata->deity_name = QUICKLINK( deity->name ); mpxset.c: victim->pcdata->deity = deity; mpxset.c: STRFREE( victim->short_descr ); mpxset.c: victim->short_descr = STRALLOC( arg3 ); mpxset.c: STRFREE( victim->long_descr ); mpxset.c: victim->long_descr = STRALLOC( buf ); mpxset.c: victim->spec_fun = NULL; mpxset.c: if ( ( victim->spec_fun = spec_lookup( arg3 ) ) == 0 ) mpxset.c: TOGGLE_BIT( victim->pcdata->flags, 1 << value ); mpxset.c: xTOGGLE_BIT( victim->act, value ); mpxset.c: xTOGGLE_BIT( victim->affected_by, value ); mpxset.c: * save some more finger-leather for setting RIS stuff mpxset.c: * never know, so I removed them.. -- Alty mpxset.c: TOGGLE_BIT( victim->resistant, 1 << value ); mpxset.c: TOGGLE_BIT( victim->immune, 1 << value ); mpxset.c: TOGGLE_BIT( victim->susceptible, 1 << value ); mpxset.c: TOGGLE_BIT( victim->xflags, 1 << value ); mpxset.c: xTOGGLE_BIT( victim->attacks, value ); mpxset.c: xTOGGLE_BIT( victim->defenses, value ); mpxset.c: victim->position = value; mpxset.c: victim->defposition = value; mpxset.c: if ( v2 == -1 ) mpxset.c: TOGGLE_BIT( victim->speaks, 1 << v2 ); mpxset.c: if ( v2 == -1 ) mpxset.c: TOGGLE_BIT( victim->speaks, 1 << v2 ); mpxset.c: REMOVE_BIT( victim->speaks, race_table[victim->race]->language ); mpxset.c: if ( !knows_language( victim, victim->speaking, victim ) ) mpxset.c: victim->speaking = race_table[victim->race]->language; mpxset.c: if ( v2 == -1 ) mpxset.c: TOGGLE_BIT( victim->speaks, 1 << v2 ); mpxset.c: if ( !IS_NPC( ch ) || IS_AFFECTED(ch, AFF_CHARM) || ch->desc ) mpxset.c: obj->value[0] = value; mpxset.c: obj->value[1] = value; mpxset.c: obj->value[2] = value; mpxset.c: obj->value[3] = value; mpxset.c: obj->value[4] = value; mpxset.c: obj->value[5] = value; mpxset.c: obj->item_type = (sh_int) value; mpxset.c: xTOGGLE_BIT(obj->extra_flags, value); mpxset.c: TOGGLE_BIT( obj->wear_flags, 1 << value ); mpxset.c: obj->level = value; mpxset.c: obj->weight = value; mpxset.c: obj->cost = value; mpxset.c: obj->timer = value; mpxset.c: STRFREE( obj->name ); mpxset.c: obj->name = STRALLOC( arg3 ); mpxset.c: STRFREE( obj->short_descr ); mpxset.c: obj->short_descr = STRALLOC( arg3 ); mpxset.c: if ( str_infix( "mprename", obj->name ) ) mpxset.c: sprintf( buf, "%s %s", obj->name, "mprename" ); mpxset.c: STRFREE( obj->name ); mpxset.c: obj->name = STRALLOC( buf ); mpxset.c: STRFREE( obj->description ); mpxset.c: obj->description = STRALLOC( buf ); mpxset.c: STRFREE( obj->action_desc ); mpxset.c: obj->action_desc = STRALLOC( arg3 ); mpxset.c: paf->type = -1; mpxset.c: paf->duration = -1; mpxset.c: paf->location = loc; mpxset.c: paf->modifier = value; mpxset.c: xCLEAR_BITS(paf->bitvector); mpxset.c: paf->next = NULL; mpxset.c: LINK( paf, obj->first_affect, obj->last_affect, next, prev ); mpxset.c: for ( paf = obj->first_affect; paf; paf = paf->next ) mpxset.c: UNLINK( paf, obj->first_affect, obj->last_affect, next, prev ); mpxset.c: --top_affect; mpxset.c: * save some finger-leather mpxset.c: * -Thoric mpxset.c: tmp = -1; mpxset.c: switch( obj->item_type ) mpxset.c: value = -1; mpxset.c: obj->value[tmp] = value; mud_comm.c: * -----------------------------------------------------------| (0...0) * mud_comm.c: * -----------------------------------------------------------| {o o} * mud_comm.c: * was written by N'Atas-ha. * mud_comm.c: if ( xIS_EMPTY(victim->pIndexData->progtypes) ) mud_comm.c: victim->name, victim->pIndexData->vnum ); mud_comm.c: victim->short_descr, mud_comm.c: victim->long_descr[0] != '\0' ? mud_comm.c: victim->long_descr : "(none).\n\r" ); mud_comm.c: victim->hit, victim->max_hit, mud_comm.c: victim->mana, victim->max_mana, mud_comm.c: victim->move, victim->max_move ); mud_comm.c: victim->level, victim->class, victim->alignment, mud_comm.c: GET_AC( victim ), victim->gold, victim->exp ); mud_comm.c: for ( mprg = victim->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_comm.c: mprog_type_to_name( mprg->type ), mud_comm.c: mprg->arglist, mud_comm.c: mprg->comlist ); mud_comm.c:/* Opstat - Scryn 8/12*/ mud_comm.c: if ( xIS_EMPTY(obj->pIndexData->progtypes) ) mud_comm.c: obj->name, obj->pIndexData->vnum ); mud_comm.c: obj->short_descr ); mud_comm.c: for ( mprg = obj->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_comm.c: mprog_type_to_name( mprg->type ), mud_comm.c: mprg->arglist, mud_comm.c: mprg->comlist ); mud_comm.c:/* Rpstat - Scryn 8/12 */ mud_comm.c: if ( xIS_EMPTY(ch->in_room->progtypes) ) mud_comm.c: ch->in_room->name, ch->in_room->vnum ); mud_comm.c: for ( mprg = ch->in_room->mudprogs; mprg; mprg = mprg->next ) mud_comm.c: mprog_type_to_name( mprg->type ), mud_comm.c: mprg->arglist, mud_comm.c: mprg->comlist ); mud_comm.c:/* Woowoo - Blodkai, November 1997 */ mud_comm.c: progbug( "MpKill - no argument", ch ); mud_comm.c: progbug( "MpKill - Victim not in room", ch ); mud_comm.c: progbug( "MpKill - Bad victim to attack", ch ); mud_comm.c: if ( ch->position == POS_FIGHTING mud_comm.c: || ch->position == POS_EVASIVE mud_comm.c: || ch->position == POS_DEFENSIVE mud_comm.c: || ch->position == POS_AGGRESSIVE mud_comm.c: || ch->position == POS_BERSERK mud_comm.c: progbug( "MpKill - Already fighting", ch ); mud_comm.c: progbug( "Mpjunk - No argument", ch ); mud_comm.c: for ( obj = ch->first_carrying; obj; obj = obj_next ) mud_comm.c: obj_next = obj->next_content; mud_comm.c: if ( arg[3] == '\0' || is_name( &arg[4], obj->name ) ) mud_comm.c: if ( obj->wear_loc != WEAR_NONE) mud_comm.c: * color indicator (e.g. _red, _whi_, _blu). - Gorog mud_comm.c: return (cptr - color_list) / 4; mud_comm.c: return (cptr - blink_list) / 4 + AT_BLINK; mud_comm.c: progbug( "Mpasound - No argument", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: was_in_room = ch->in_room; mud_comm.c: for ( pexit = was_in_room->first_exit; pexit; pexit = pexit->next ) mud_comm.c: if ( pexit->to_room mud_comm.c: && pexit->to_room != was_in_room ) mud_comm.c: ch->in_room = pexit->to_room; mud_comm.c: ch->act = actflags; mud_comm.c: ch->in_room = was_in_room; mud_comm.c: progbug( "Mpechoaround - No argument", ch ); mud_comm.c: progbug( "Mpechoaround - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpechoat - No argument", ch ); mud_comm.c: progbug( "Mpechoat - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpecho - called w/o argument", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c:/* sound support -haus */ mud_comm.c: progbug( "Mpsoundaround - No argument", ch ); mud_comm.c: progbug( "Mpsoundaround - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpsoundat - No argument", ch ); mud_comm.c: progbug( "Mpsoundat - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpsound - called w/o argument", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c:/* end sound stuff ----------------------------------------*/ mud_comm.c:/* Music stuff, same as above, at zMUD coders' request -- Blodkai */ mud_comm.c: progbug( "Mpmusicaround - No argument", ch ); mud_comm.c: progbug( "Mpmusicaround - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpmusic - No argument", ch ); mud_comm.c: progbug( "Mpmusic - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpmusicat - No argument", ch ); mud_comm.c: progbug( "Mpmusicat - victim does not exist", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: ch->act = actflags; mud_comm.c: progbug( "Mpmload - Bad vnum as arg", ch ); mud_comm.c: progbug( "Mpmload - Bad mob vnum", ch ); mud_comm.c: char_to_room( victim, ch->in_room ); mud_comm.c: progbug( "Mpoload - Bad syntax", ch ); mud_comm.c: progbug( "Mpoload - Bad level syntax", ch ); mud_comm.c: progbug( "Mpoload - Bad level", ch ); mud_comm.c: progbug( "Mpoload - Bad timer", ch ); mud_comm.c: progbug( "Mpoload - Bad vnum arg", ch ); mud_comm.c: obj->timer = timer; mud_comm.c: obj_to_room( obj, ch->in_room ); mud_comm.c:/* Marries two players -- 5/8/99 Scion */ mud_comm.c: if (xIS_SET( bride->act, PLR_MARRIED)) mud_comm.c: send_to_char("Your bride-to-be is already married! Have them get a divorce first!\r\n", groom); mud_comm.c: if (xIS_SET( groom->act, PLR_MARRIED)) mud_comm.c: send_to_char("Your groom-to-be is already married! Have them get a divorce first!\r\n", bride); mud_comm.c: xSET_BIT( bride->act, PLR_MARRIED ); mud_comm.c: xSET_BIT( groom->act, PLR_MARRIED ); mud_comm.c: bride->pcdata->wedto = STRALLOC(groom->name); mud_comm.c: groom->pcdata->wedto = STRALLOC(bride->name); mud_comm.c:/* Divorces two players -- 5/8/99 Scion */ mud_comm.c: if (!xIS_SET( bride->act, PLR_MARRIED)) { mud_comm.c: if (!xIS_SET( groom->act, PLR_MARRIED)) { mud_comm.c: xREMOVE_BIT( bride->act, PLR_MARRIED ); mud_comm.c: xREMOVE_BIT( groom->act, PLR_MARRIED ); mud_comm.c:/* Adds glory to a player -- 5/8/99 Scion */ mud_comm.c: if (victim->pcdata->quest_curr + amount <= 0 ) mud_comm.c: victim->pcdata->quest_curr = 0; mud_comm.c: if (victim->pcdata->quest_accum + amount <= 0 ) mud_comm.c: victim->pcdata->quest_accum = 0; mud_comm.c: victim->pcdata->quest_curr += amount; mud_comm.c: victim->pcdata->quest_accum += amount; mud_comm.c: ch_printf( victim, "Your glory has been reduced by %d.\n\r", (amount*-1) ); mud_comm.c: if (amount > 10 || amount < -10) { mud_comm.c: sprintf(arg1, "Mpqpadd: %d glory added to %s from mob #%d", amount, victim->name, ch->pIndexData->vnum); mud_comm.c:/* Just a hack of do_pardon from act_wiz.c -- Blodkai, 6/15/97 */ mud_comm.c: if ( xIS_SET(victim->act, PLR_ATTACKER) ) mud_comm.c: xREMOVE_BIT( victim->act, PLR_ATTACKER ); mud_comm.c: if ( xIS_SET(victim->act, PLR_KILLER) ) mud_comm.c: xREMOVE_BIT( victim->act, PLR_KILLER ); mud_comm.c: if ( xIS_SET(victim->act, PLR_LITTERBUG) ) mud_comm.c: xREMOVE_BIT( victim->act, PLR_LITTERBUG ); mud_comm.c: if ( xIS_SET(victim->act, PLR_THIEF) ) mud_comm.c: xREMOVE_BIT( victim->act, PLR_THIEF ); mud_comm.c: for ( victim = ch->in_room->first_person; victim; victim = vnext ) mud_comm.c: vnext = victim->next_in_room; mud_comm.c: while ( ch->in_room->first_content ) mud_comm.c: extract_obj( ch->in_room->first_content ); mud_comm.c: progbug( "Mppurge - Bad argument", ch ); mud_comm.c: progbug( "Mppurge - Trying to purge a PC", ch ); mud_comm.c: progbug( "Mppurge - Trying to purge oneself", ch ); mud_comm.c: if ( IS_NPC( victim ) && victim->pIndexData->vnum == 3 ) mud_comm.c:/* Allow mobiles to go wizinvis with programs -- SB */ mud_comm.c: progbug( "Mpinvis - Non numeric argument ", ch ); mud_comm.c: progbug( "MPinvis - Invalid level ", ch ); mud_comm.c: ch->mobinvis = level; mud_comm.c: if ( ch->mobinvis < 2 ) mud_comm.c: ch->mobinvis = ch->level; mud_comm.c: if ( xIS_SET(ch->act, ACT_MOBINVIS) ) mud_comm.c: xREMOVE_BIT(ch->act, ACT_MOBINVIS); mud_comm.c: xSET_BIT(ch->act, ACT_MOBINVIS); mud_comm.c:/* Mounted chars follow their mobiles now - Blod, 11/97 */ mud_comm.c: progbug( "Mpgoto - No argument", ch ); mud_comm.c: progbug( "Mpgoto - No such location", ch ); mud_comm.c: in_room = ch->in_room; mud_comm.c: if ( ch->fighting ) mud_comm.c: for ( fch = in_room->first_person; fch; fch = fch_next ) mud_comm.c: fch_next = fch->next_in_room; mud_comm.c: if ( fch->mount && fch->mount == ch ) mud_comm.c: sprintf( arg, "Mpat - Bad Argument - Mobile %d", mud_comm.c: ch->pIndexData->vnum ); mud_comm.c: sprintf(arg, "Mpat - No such location: \'%s\' Mobile %d", argument, mud_comm.c: ch->pIndexData->vnum ); mud_comm.c: /* progbug( "Mpat - No such location", ch ); */ mud_comm.c: original = ch->in_room; mud_comm.c: progbug( "Mpadvance - Bad syntax", ch ); mud_comm.c: progbug( "Mpadvance - Victim not there", ch ); mud_comm.c: progbug( "Mpadvance - Victim is NPC", ch ); mud_comm.c: if ( victim->level >= LEVEL_AVATAR ) mud_comm.c: level = victim->level + 1; mud_comm.c: if ( victim->level > ch->level ) mud_comm.c: if (victim->level >= LEVEL_AVATAR) mud_comm.c: while ( victim->first_carrying ) mud_comm.c: extract_obj( victim->first_carrying ); mud_comm.c: for ( iLevel = victim->level ; iLevel < level; iLevel++ ) mud_comm.c: victim->level += 1; mud_comm.c: victim->exp = 1000 * UMAX( 1, victim->level ); mud_comm.c: victim->trust = 0; mud_comm.c: progbug( "Mptransfer - Bad syntax", ch ); mud_comm.c: /* Put in the variable nextinroom to make this work right. -Narn */ mud_comm.c: for ( victim = ch->in_room->first_person; victim; victim = nextinroom ) mud_comm.c: nextinroom = victim->next_in_room; mud_comm.c: sprintf( buf, "%s %s", victim->name, arg2 ); mud_comm.c: /* This will only transfer PC's in the area not Mobs --Shaddai */ mud_comm.c: for ( d = first_descriptor; d; d = d->next ) mud_comm.c: if ( !d->character || (d->connected != CON_PLAYING && mud_comm.c: d->connected != CON_EDITING) mud_comm.c: || ( d->connected <= CON_NOTE_TO mud_comm.c: && d->connected >= CON_NOTE_FINISH) mud_comm.c: || !can_see(ch, d->character) mud_comm.c: || ch->in_room->area != d->character->in_room->area || mud_comm.c: NOT_AUTHED(d->character) ) mud_comm.c: sprintf( buf, "%s %s", d->character->name, arg2 ); mud_comm.c: location = ch->in_room; mud_comm.c: progbug( "Mptransfer - No such location", ch ); mud_comm.c: progbug( "Mptransfer - Private room", ch ); mud_comm.c: progbug( "Mptransfer - No such person", ch ); mud_comm.c: if ( !victim->in_room ) mud_comm.c: progbug( "Mptransfer - Victim in Limbo", ch ); mud_comm.c: if (NOT_AUTHED(victim) && location->area != victim->in_room->area) mud_comm.c: sprintf( buf, "Mptransfer - unauthed char (%s)", victim->name ); mud_comm.c: if ( !in_hard_range( victim, location->area ) mud_comm.c: && !IS_SET( location->room_flags, ROOM_PROTOTYPE ) ) mud_comm.c: if ( victim->fighting ) mud_comm.c: * -- TRI mud_comm.c: for ( immortal = victim->in_room->first_person; immortal; immortal = nextinroom ) mud_comm.c: nextinroom = immortal->next_in_room; mud_comm.c: immortal->master != victim ) mud_comm.c: if ( immortal->fighting ) mud_comm.c: progbug( "Mpforce - Bad syntax", ch ); mud_comm.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) mud_comm.c: progbug( "Mpforce - No such victim", ch ); mud_comm.c: progbug( "Mpforce - Forcing oneself", ch ); mud_comm.c: && ( !victim->desc ) mud_comm.c: sprintf(arg, "Mpforce - Mob #%d in room %d attempting to force link dead immortal",ch->pIndexData->vnum, ch->in_room->vnum); mud_comm.c: * mpnuisance mpunnuisance just incase we need them later --Shaddai mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug( "Mpnuisance - called w/o enough argument(s)", ch ); mud_comm.c: if ( victim->pcdata->nuisance ) mud_comm.c: CREATE ( victim->pcdata->nuisance, NUISANCE_DATA, 1 ); mud_comm.c: victim->pcdata->nuisance->time = current_time; mud_comm.c: victim->pcdata->nuisance->flags = 1; mud_comm.c: victim->pcdata->nuisance->power = 2; mud_comm.c: now_time->tm_mday+= 1; mud_comm.c: victim->pcdata->nuisance->max_time = mktime(now_time); mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug( "Mpunnuisance - called w/o enough argument(s)", ch ); mud_comm.c: if ( !ch->pcdata->nuisance ) mud_comm.c: for (timer = victim->first_timer; timer; timer = timer_next) mud_comm.c: timer_next = timer->next; mud_comm.c: if ( timer->type == TIMER_NUISANCE ) mud_comm.c: DISPOSE ( victim->pcdata->nuisance ); mud_comm.c: * mpbodybag for mobs to do cr's --Shaddai mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug( "Mpbodybag - called w/o enough argument(s)", ch ); mud_comm.c: for (obj = first_object; obj; obj = obj->next) mud_comm.c: if (obj->in_room mud_comm.c: && !str_cmp (buf2, obj->short_descr) mud_comm.c: && (obj->pIndexData->vnum == 11)) mud_comm.c: obj->timer = -1; mud_comm.c: * --Shaddai mud_comm.c: * mpmorph and mpunmorph for morphing people with mobs. --Shaddai mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug( "Mpmorph - called w/o enough argument(s)", ch ); mud_comm.c: progbug( "Mpmorph - unknown morph", ch ); mud_comm.c: if ( victim->morph ) mud_comm.c: progbug( "Mpmorph - victim already morphed", ch ); mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug( "Mpmorph - called w/o an argument", ch ); mud_comm.c: if ( !victim->morph ) mud_comm.c: progbug( "Mpechozone - called w/o argument", ch ); mud_comm.c: actflags = ch->act; mud_comm.c: xREMOVE_BIT(ch->act, ACT_SECRETIVE); mud_comm.c: vch_next = vch->next; mud_comm.c: if ( vch->in_room->area == ch->in_room->area mud_comm.c: ch->act = actflags; mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug( "Mppractice - Bad syntax", ch ); mud_comm.c: skill_name = skill_table[sn]->name; mud_comm.c: if(victim->level < skill_table[sn]->skill_level[victim->class] ) mud_comm.c: /* adept = class_table[ch->class]->skill_adept; */ mud_comm.c: if ( (victim->pcdata->learned[sn] >= adept ) mud_comm.c: || (victim->pcdata->learned[sn] >= max ) ) mud_comm.c: tmp = UMIN(victim->pcdata->learned[sn] + int_app[get_curr_int(victim)].learn, max); mud_comm.c: act( AT_ACTION, "$N demonstrates $t to you. You feel more learned in this subject.", victim, skill_table[sn]->name, ch,TO_CHAR ); mud_comm.c: victim->pcdata->learned[sn] = max; mud_comm.c: if ( victim->pcdata->learned[sn] >= adept ) mud_comm.c: victim->pcdata->learned[sn] = adept; mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: if ( victim->gold < 1) { mud_comm.c: victim->gold = 0; mud_comm.c: for ( obj_lose=victim->first_carrying; obj_lose; obj_lose=obj_next ) { mud_comm.c: obj_next = obj_lose->next_content; mud_comm.c: capitalize(obj_lose->short_descr), pRoomIndex->vnum ); mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c:/* if ( !IS_SET(pRoomIndex->room_flags, ROOM_PRIVATE) mud_comm.c: && !IS_SET(pRoomIndex->room_flags, ROOM_SOLITARY) mud_comm.c: && !IS_SET(pRoomIndex->room_flags, ROOM_NO_ASTRAL) mud_comm.c: && !IS_SET(pRoomIndex->room_flags, ROOM_PROTOTYPE) ) mud_comm.c: -- still causing problems if every room in range matches mud_comm.c: if ( victim->fighting ) stop_fighting( victim, TRUE ); mud_comm.c: victim->position = POS_RESTING; mud_comm.c: if ( IS_NPC( victim ) && victim->pIndexData->vnum == 3 ) mud_comm.c: if( victim->level < LEVEL_IMMORTAL) mud_comm.c:/* Am I asking for trouble here or what? But I need it. -- Blodkai */ mud_comm.c: for ( victim = ch->in_room->first_person; victim; victim = nextinroom ) mud_comm.c: nextinroom = victim->next_in_room; mud_comm.c: sprintf( buf, "'%s' %s", victim->name, arg2 ); mud_comm.c: progbug( "Mp_log: non-existent entry", ch ); mud_comm.c: sprintf( buf, "&p%-2.2d/%-2.2d | %-2.2d:%-2.2d &P%s: &p%s", mud_comm.c: t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, mud_comm.c: ch->short_descr, mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: hp += victim->hit; mud_comm.c: victim->hit = (hp > 32000 || hp < 0 || hp > victim->max_hit) ? mud_comm.c: victim->max_hit : hp; mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: victim->pcdata->favor = URANGE( -1000, victim->pcdata->favor + favor, 1000 ); mud_comm.c: * opens a 1-way passage from room x to room y in direction z mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: progbug( "MpOpenPassage - Bad syntax", ch ); mud_comm.c: if( !IS_SET( pexit->exit_info, EX_PASSAGE) ) mud_comm.c: progbug( "MpOpenPassage - Exit exists", ch ); mud_comm.c: pexit->keyword = STRALLOC( "" ); mud_comm.c: pexit->description = STRALLOC( "" ); mud_comm.c: pexit->key = -1; mud_comm.c: pexit->exit_info = EX_PASSAGE; mud_comm.c: progbug( "MpFillIn - Exit does not exist", ch ); mud_comm.c: SET_BIT( pexit->exit_info, EX_CLOSED ); mud_comm.c: progbug( "MpClosePassage - Bad syntax", ch ); mud_comm.c: progbug( "MpClosePassage - Bad syntax", ch ); mud_comm.c: progbug( "MpClosePassage - Bad syntax", ch ); mud_comm.c: progbug( "MpClosePassage - Bad syntax", ch ); mud_comm.c: progbug( "MpClosePassage - Bad syntax", ch ); mud_comm.c: if( !IS_SET( pexit->exit_info, EX_PASSAGE) ) mud_comm.c: progbug( "MpClosePassage - Exit not a passage", ch ); mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: if( vict->position <= POS_SLEEPING) mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug("Mpapply - bad syntax", ch ); mud_comm.c: progbug("Mpapply - no such player in room.", ch ); mud_comm.c: if ( !victim->desc ) mud_comm.c: if( victim->pcdata->auth_state >= 1 ) mud_comm.c: victim->name, victim->desc->host, mud_comm.c: race_table[victim->race]->race_name, mud_comm.c: class_table[victim->class]->who_name ); mud_comm.c: victim->pcdata->auth_state = 1; mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug("Mpapplyb - bad syntax", ch ); mud_comm.c: progbug("Mpapplyb - no such player in room.", ch ); mud_comm.c: if ( !victim->desc ) mud_comm.c: switch( victim->pcdata->auth_state ) mud_comm.c: victim->name, victim->desc->host, mud_comm.c: race_table[victim->race]->race_name, mud_comm.c: class_table[victim->class]->who_name ); mud_comm.c: victim->pcdata->auth_state = 1; mud_comm.c:/* Stat stuff that follows from here to name_stamp is to keep stat-cheats mud_comm.c: from abusing the auth system -- Blodkai */ mud_comm.c: victim->perm_str = 13; mud_comm.c: victim->perm_dex = 13; mud_comm.c: victim->perm_int = 13; mud_comm.c: victim->perm_wis = 13; mud_comm.c: victim->perm_cha = 13; mud_comm.c: victim->perm_con = 13; mud_comm.c: victim->perm_lck = 13; mud_comm.c: switch ( class_table[victim->class]->attr_prime ) mud_comm.c: case APPLY_STR: victim->perm_str = 16; break; mud_comm.c: case APPLY_INT: victim->perm_int = 16; break; mud_comm.c: case APPLY_WIS: victim->perm_wis = 16; break; mud_comm.c: case APPLY_DEX: victim->perm_dex = 16; break; mud_comm.c: case APPLY_CON: victim->perm_con = 16; break; mud_comm.c: case APPLY_CHA: victim->perm_cha = 16; break; mud_comm.c: case APPLY_LCK: victim->perm_lck = 16; break; mud_comm.c: victim->perm_str += race_table[victim->race]->str_plus; mud_comm.c: victim->perm_int += race_table[victim->race]->int_plus; mud_comm.c: victim->perm_wis += race_table[victim->race]->wis_plus; mud_comm.c: victim->perm_dex += race_table[victim->race]->dex_plus; mud_comm.c: victim->perm_con += race_table[victim->race]->con_plus; mud_comm.c: victim->perm_cha += race_table[victim->race]->cha_plus; mud_comm.c: victim->perm_lck += race_table[victim->race]->lck_plus; mud_comm.c: name_stamp_stats( victim ); /* Take care of auth cons -- Blodkai */ mud_comm.c: REMOVE_BIT(victim->pcdata->flags, PCFLAG_UNAUTHED); mud_comm.c: if ( victim->fighting ) mud_comm.c: * Deposit some gold into the current area's economy -Thoric mud_comm.c: progbug("Mpdeposit - bad syntax", ch ); mud_comm.c: if ( gold <= ch->gold && ch->in_room ) mud_comm.c: ch->gold -= gold; mud_comm.c: boost_economy( ch->in_room->area, gold ); mud_comm.c: * Withdraw some gold from the current area's economy -Thoric mud_comm.c: progbug("Mpwithdraw - bad syntax", ch ); mud_comm.c: if ( ch->gold < 1000000000 && gold < 1000000000 && ch->in_room mud_comm.c: && economy_has( ch->in_room->area, gold ) ) mud_comm.c: ch->gold += gold; mud_comm.c: lower_economy( ch->in_room->area, gold ); mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: for ( rch=ch->in_room->first_person; rch; rch=rch->next_in_room ) { mud_comm.c: if ( rch->fighting ) { mud_comm.c: if ( victim->fighting ) mud_comm.c: if ( !IS_NPC( ch ) || ch->desc || IS_AFFECTED( ch, AFF_CHARM )) mud_comm.c: progbug("Mppkset - bad syntax", ch ); mud_comm.c: progbug("Mppkset - no such player in room.", ch ); mud_comm.c: if(!IS_SET(victim->pcdata->flags, PCFLAG_DEADLY)) mud_comm.c: SET_BIT(victim->pcdata->flags, PCFLAG_DEADLY); mud_comm.c: if(IS_SET(victim->pcdata->flags, PCFLAG_DEADLY)) mud_comm.c: REMOVE_BIT(victim->pcdata->flags, PCFLAG_DEADLY); mud_comm.c: progbug("Mppkset - bad syntax", ch); mud_comm.c: if ( victim->position == POS_DEAD ) mud_comm.c: dam -= (int) (dam / 4); mud_comm.c: victim->hit -= dam; mud_comm.c: && victim->level >= LEVEL_IMMORTAL mud_comm.c: && victim->hit < 1 ) mud_comm.c: victim->hit = 1; mud_comm.c: && victim->hit < 1 ) mud_comm.c: victim->hit = 1; mud_comm.c: switch( victim->position ) mud_comm.c: if ( dam > victim->max_hit / 4 ) mud_comm.c: if ( victim->hit < victim->max_hit / 4 ) mud_comm.c: if ( victim->position == POS_DEAD ) mud_comm.c: sprintf( log_buf, "%s has died!", victim->name); mud_comm.c: victim->name, mud_comm.c: (IS_NPC(ch) ? ch->short_descr : ch->name) ); mud_comm.c: victim->name, mud_comm.c: victim->level, mud_comm.c: (IS_NPC(ch) ? ch->short_descr : ch->name), mud_comm.c: victim->in_room->vnum ); mud_comm.c: if ( victim->exp > exp_level(victim, victim->level) ) mud_comm.c: gain_exp( victim, (exp_level(victim, victim->level) - victim->exp)/2 ); mud_comm.c: victim->exp = exp_level( victim, victim->level ); mud_comm.c: if ( !npcvict && !victim->desc ) mud_comm.c: if ( number_range( 0, victim->wait ) == 0 ) mud_comm.c: if ( ( xIS_SET(victim->act, ACT_WIMPY) && number_bits( 1 ) == 0 mud_comm.c: && victim->hit < victim->max_hit / 2 ) mud_comm.c: || ( IS_AFFECTED(victim, AFF_CHARM) && victim->master mud_comm.c: && victim->master->in_room != victim->in_room ) ) mud_comm.c: && victim->hit > 0 mud_comm.c: && victim->hit <= victim->wimpy mud_comm.c: && victim->wait == 0 ) mud_comm.c: if ( !npcvict && xIS_SET( victim->act, PLR_FLEE ) ) mud_prog.c: * -----------------------------------------------------------| (0...0) * mud_prog.c: * -----------------------------------------------------------| {o o} * mud_prog.c: * was written by N'Atas-ha. * mud_prog.c: int i,j=strlen(s1)-strlen(s2),k=strlen(s2); mud_prog.c: return (i>j) ? NULL : (s1-1); mud_prog.c: xSET_BIT(supermob->act,ACT_IS_NPC); mud_prog.c: supermob->name = STRALLOC("supermob"); mud_prog.c: supermob->short_descr = STRALLOC("supermob"); mud_prog.c: supermob->long_descr = STRALLOC("supermob is here"); mud_prog.c: * Redone by Altrag.. kill all that big copy-code that performs the mud_prog.c: if ( !mob->in_room ) mud_prog.c: room = mob->in_room; mud_prog.c: return mprog_veval( ((room->area->high_economy > 0) ? 1000000000 : 0) mud_prog.c: + room->area->low_economy, opr, atoi(rval), mob ); mud_prog.c: world_count = m_index->count; mud_prog.c: tmob = tmob->next) mud_prog.c: if(IS_NPC(tmob) && tmob->pIndexData->vnum == vnum) mud_prog.c: if(tmob->in_room->area == mob->in_room->area) mud_prog.c: for ( oMob = mob->in_room->first_person; oMob; mud_prog.c: oMob = oMob->next_in_room ) mud_prog.c: if ( IS_NPC(oMob) && oMob->pIndexData->vnum == vnum ) mud_prog.c: lhsvl = m_index->count; mud_prog.c: pMob = chkchar->pIndexData; mud_prog.c: return mprog_veval(pMob->killed, opr, atoi(rval), mob); mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->pIndexData->vnum == vnum ) mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->pIndexData->vnum == vnum ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->pIndexData->vnum == vnum ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( pObj->pIndexData->vnum == vnum ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->item_type == type ) mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->item_type == type ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->item_type == type ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( pObj->item_type == type ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( pObj->pIndexData->vnum == vnum ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->pIndexData->vnum == vnum ) mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->item_type == type ) mud_prog.c: for ( pObj = mob->in_room->first_content; pObj; mud_prog.c: pObj = pObj->next_content ) mud_prog.c: if ( pObj->item_type == type ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->pIndexData->vnum == vnum ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( can_see_obj(mob, pObj) && pObj->item_type == type ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->item_type == type ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc != WEAR_NONE && can_see_obj(mob, pObj) && mud_prog.c: pObj->pIndexData->vnum == vnum ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc != WEAR_NONE && mud_prog.c: pObj->pIndexData->vnum == vnum ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc != WEAR_NONE && can_see_obj(mob, pObj) && mud_prog.c: pObj->item_type == type ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc != WEAR_NONE && mud_prog.c: pObj->item_type == type ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc == WEAR_NONE && can_see_obj(mob, pObj) && mud_prog.c: pObj->pIndexData->vnum == vnum ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc == WEAR_NONE && mud_prog.c: pObj->pIndexData->vnum == vnum ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc == WEAR_NONE && can_see_obj(mob, pObj) && mud_prog.c: pObj->item_type == type ) mud_prog.c: for ( pObj = mob->first_carrying; pObj; pObj = pObj->next_content ) mud_prog.c: if ( pObj->wear_loc == WEAR_NONE && mud_prog.c: pObj->item_type == type ) mud_prog.c: lhsvl+=pObj->count; mud_prog.c: rhsvl = is_number(rval) ? atoi(rval) : -1; mud_prog.c: return (IS_NPC(chkchar) && xIS_SET(chkchar->act, ACT_PACIFIST)); mud_prog.c: return (IS_NPC(chkchar) && xIS_SET(chkchar->act, ACT_MOBINVIS)); mud_prog.c: mprog_veval(chkchar->mobinvis, opr, atoi(rval), mob) : FALSE); mud_prog.c: if (!IS_SET (pexit->exit_info, EX_CLOSED)) mud_prog.c: if (IS_SET (pexit->exit_info, EX_LOCKED)) mud_prog.c: now checks for deadly flag - Garinan (surprised?) */ mud_prog.c: return ( IS_SET(chkchar->pcdata->flags, PCFLAG_DEADLY ) ? TRUE : mud_prog.c: return (chkchar->position == POS_MOUNTED); mud_prog.c: return (chkchar->morph != NULL) ? TRUE : FALSE; mud_prog.c: return (!IS_NPC(chkchar)? chkchar->pcdata->nuisance? TRUE: FALSE: FALSE); mud_prog.c: return ( !IS_NPC(chkchar) && xIS_SET(chkchar->act, PLR_THIEF) ); mud_prog.c: return ( !IS_NPC(chkchar) && xIS_SET(chkchar->act, PLR_ATTACKER) ); mud_prog.c: return ( !IS_NPC(chkchar) && xIS_SET(chkchar->act, PLR_KILLER) ); mud_prog.c: return (chkchar->master != NULL && mud_prog.c: chkchar->master->in_room == chkchar->in_room); mud_prog.c: return ( xIS_SET(chkchar->act, PLR_MARRIED) ? TRUE : FALSE); mud_prog.c: } /* -- Scion */ mud_prog.c: return mprog_veval(chkchar->num_fighting-1, opr, atoi(rval), mob ); mud_prog.c: return mprog_veval(chkchar->hit/chkchar->max_hit, opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkchar->in_room->vnum, opr, atoi(rval), mob); mud_prog.c: if ( !chkchar->was_in_room ) mud_prog.c: return mprog_veval(chkchar->was_in_room->vnum, opr, atoi(rval), mob); mud_prog.c: return IS_SET(chkchar->in_room->room_flags, ROOM_NO_RECALL) ? TRUE : FALSE; mud_prog.c: return mprog_veval(chkchar->sex, opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkchar->position, opr, atoi(rval), mob); mud_prog.c: mprog_veval(chkchar->pcdata->quest_number, opr, atoi(rval), mob); mud_prog.c: mprog_veval(chkchar->pcdata->release_date, opr, atoi(rval), mob); mud_prog.c: int level = chkchar->level; mud_prog.c: /* Due to remort, we return the persons trust, or ch->level, rather than mud_prog.c: * ch->level OR ch->level2 */ mud_prog.c: if( chkchar->trust > chkchar->level ) mud_prog.c: level = chkchar->trust; mud_prog.c: return mprog_veval(chkchar->gold, opr, atoi(rval), mob); mud_prog.c: return mprog_seval(npc_class[chkchar->class], opr, rval, mob); mud_prog.c: return mprog_seval((char *)class_table[chkchar->class]->who_name, opr, mud_prog.c: return mprog_veval(chkchar->carry_weight, opr, atoi(rval), mob ); mud_prog.c: if ( IS_NPC(chkchar) || !chkchar->desc->host ) mud_prog.c: return mprog_seval(chkchar->desc->host, opr, rval, mob); mud_prog.c: for ( ch = first_char; ch; ch = ch->next ) mud_prog.c: && ch->desc mud_prog.c: && chkchar->desc mud_prog.c: && ch->desc->host == chkchar->desc->host ) mud_prog.c: return mprog_seval(npc_race[chkchar->race], opr, rval, mob); mud_prog.c: return mprog_seval((char *)race_table[chkchar->race]->race_name, opr, mud_prog.c: if ( chkchar->morph == NULL ) mud_prog.c: if ( chkchar->morph->morph == NULL ) mud_prog.c: return mprog_veval(chkchar->morph->morph->vnum, opr, rhsvl, mob ); mud_prog.c: if ( IS_NPC( chkchar ) || !chkchar->pcdata->nuisance ) mud_prog.c: return mprog_veval(chkchar->pcdata->nuisance->flags, opr, rhsvl, mob ); mud_prog.c: if ( IS_NPC(chkchar) || !chkchar->pcdata->clan ) mud_prog.c: return mprog_seval(chkchar->pcdata->clan->name, opr, rval, mob); mud_prog.c: if ( mprog_seval(chkchar->name, opr, temp->leader, mob ) || mud_prog.c: mprog_seval(chkchar->name, opr, temp->number1, mob ) || mud_prog.c: mprog_seval(chkchar->name, opr, temp->number2, mob ) ) mud_prog.c: if ( mprog_seval(chkchar->name, opr, temp->leader, mob ) ) mud_prog.c: if ( mprog_seval(chkchar->name, opr, temp->number1, mob ) ) mud_prog.c: if ( mprog_seval(chkchar->name, opr, temp->number2, mob ) ) mud_prog.c: if ( IS_NPC(chkchar) || !chkchar->pcdata->council ) mud_prog.c: return mprog_seval(chkchar->pcdata->council->name, opr, rval, mob); mud_prog.c: if ( IS_NPC(chkchar) || !chkchar->pcdata->council2 ) mud_prog.c: return mprog_seval(chkchar->pcdata->council2->name, opr, rval, mob); mud_prog.c: if (IS_NPC(chkchar) || !chkchar->pcdata->deity ) mud_prog.c: return mprog_seval(chkchar->pcdata->deity->name, opr, rval, mob); mud_prog.c: return mprog_seval(chkchar->pcdata->clan->name, opr, rval, mob); mud_prog.c: if ( IS_NPC(chkchar) || !chkchar->pcdata->clan ) mud_prog.c: return mprog_veval(chkchar->pcdata->clan->clan_type, opr, atoi(rval), mud_prog.c: if ( IS_NPC( chkchar ) || !chkchar->wait ) mud_prog.c: return mprog_veval(chkchar->wait, opr, atoi(rval), mob); mud_prog.c: if ( IS_NPC(chkchar) || !chkchar->pcdata->favor ) mud_prog.c: return mprog_veval(chkchar->pcdata->favor, opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkchar->hit, opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkchar->mana, opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkobj->item_type, opr, atoi(rval), mob); mud_prog.c: if ( chkobj->item_type != ITEM_SWITCH || chkobj->item_type != ITEM_LEVER mud_prog.c: || chkobj->item_type != ITEM_PULLCHAIN ) mud_prog.c: if ( IS_SET( obj->value[0], TRIG_UP ) ) mud_prog.c: return mprog_veval(chkobj->value[0], opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkobj->value[1], opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkobj->value[2], opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkobj->value[3], opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkobj->value[4], opr, atoi(rval), mob); mud_prog.c: return mprog_veval(chkobj->value[5], opr, atoi(rval), mob); mud_prog.c: lhsvl = (chkchar == mob) ? chkchar->gold : chkchar->pIndexData->vnum; mud_prog.c: return mprog_veval(chkobj->pIndexData->vnum, opr, atoi(rval), mob); mud_prog.c: return mprog_seval(chkchar->name, opr, rval, mob); mud_prog.c: return mprog_seval(chkobj->name, opr, rval, mob); mud_prog.c: if ( !str_cmp(chck, "mortinworld") ) /* -- Gorog */ mud_prog.c: for ( d = first_descriptor; d; d = d->next ) mud_prog.c: if ( d->connected == CON_PLAYING mud_prog.c: && d->character mud_prog.c: && get_trust(d->character) < LEVEL_IMMORTAL mud_prog.c: && nifty_is_name(d->character->name, cvar) ) mud_prog.c: if ( !str_cmp(chck, "mortinroom") ) /* -- Gorog */ mud_prog.c: for ( ch = mob->in_room->first_person; ch; ch = ch->next_in_room ) mud_prog.c: && nifty_is_name(ch->name, cvar) ) mud_prog.c: if ( !str_cmp(chck, "mortinarea") ) /* -- Gorog */ mud_prog.c: for ( ch = first_char; ch; ch = ch->next ) mud_prog.c: && ch->in_room->area == mob->in_room->area mud_prog.c: && nifty_is_name(ch->name, cvar) ) mud_prog.c: if ( !str_cmp(chck, "mortcount") ) /* -- Gorog */ mud_prog.c: room = get_room_index ( rvnum ? rvnum : mob->in_room->vnum ); mud_prog.c: for ( tch = room?room->first_person:NULL; tch; tch = tch->next_in_room ) mud_prog.c: if ( !str_cmp(chck, "mobcount") ) /* -- Gorog */ mud_prog.c: int count = -1; mud_prog.c: room = get_room_index ( rvnum ? rvnum : mob->in_room->vnum ); mud_prog.c: for ( tch = room?room->first_person:NULL; tch; tch = tch->next_in_room ) mud_prog.c: if ( !str_cmp(chck, "charcount") ) /* -- Gorog */ mud_prog.c: int count = -1; mud_prog.c: room = get_room_index ( rvnum ? rvnum : mob->in_room->vnum ); mud_prog.c: for ( tch = room?room->first_person:NULL; tch; tch = tch->next_in_room ) mud_prog.c: * performance for stability. -Haus mud_prog.c: * Added char_died and obj_extracted checks -Thoric mud_prog.c:if ( v_obj && v_obj->serial ) mud_prog.c:/* Trying something out -- Scion */ mud_prog.c:if ( vict && vict->name ) mud_prog.c: if (mob->name) mud_prog.c: one_argument( mob->name, t ); mud_prog.c: if (mob->short_descr) mud_prog.c: strcpy( t, mob->short_descr ); mud_prog.c: one_argument( actor->name, t ); mud_prog.c: strcpy( t, actor->short_descr ); mud_prog.c: strcpy( t, actor->name ); mud_prog.c: strcat( t, actor->pcdata->title ); mud_prog.c: one_argument( vict->name, t ); mud_prog.c: strcpy( t, vict->short_descr ); mud_prog.c: strcpy( t, vict->name ); mud_prog.c: strcat( t, vict->pcdata->title ); mud_prog.c: one_argument( rndm->name, t ); mud_prog.c: strcpy(t,rndm->short_descr); mud_prog.c: strcpy( t, rndm->name ); mud_prog.c: strcat( t, rndm->pcdata->title ); mud_prog.c: can_see( mob, actor ) ? strcpy( t, he_she[ actor->sex ] ) mud_prog.c: can_see( mob, actor ) ? strcpy( t, him_her[ actor->sex ] ) mud_prog.c: can_see( mob, actor ) ? strcpy( t, his_her[ actor->sex ] ) mud_prog.c: can_see( mob, vict ) ? strcpy( t, he_she[ vict->sex ] ) mud_prog.c: can_see( mob, vict ) ? strcpy( t, him_her[ vict->sex ] ) mud_prog.c: can_see( mob, vict ) ? strcpy( t, his_her[ vict->sex ] ) mud_prog.c: strcpy( t, he_she[ mob->sex ] ); mud_prog.c: strcpy( t, him_her[ mob->sex ] ); mud_prog.c: strcpy( t, his_her[ mob->sex ] ); mud_prog.c: can_see( mob, rndm ) ? strcpy( t, he_she[ rndm->sex ] ) mud_prog.c: can_see( mob, rndm ) ? strcpy( t, him_her[ rndm->sex ] ) mud_prog.c: can_see( mob, rndm ) ? strcpy( t, his_her[ rndm->sex ] ) mud_prog.c: can_see_obj( mob, obj ) ? one_argument( obj->name, t ) mud_prog.c: can_see_obj( mob, obj ) ? strcpy( t, obj->short_descr ) mud_prog.c: int b=number_range(0, mob->carry_number); mud_prog.c: obj = mob->first_carrying; mud_prog.c: if ((obj==NULL) || (obj->next == NULL)) mud_prog.c: obj = mob->first_carrying; mud_prog.c: obj=obj->next; mud_prog.c: strcpy(t, (obj ? one_argument(obj->name, t) : "nothing")); mud_prog.c: can_see_obj( mob, v_obj ) ? one_argument( v_obj->name, t ) mud_prog.c: can_see_obj( mob, v_obj ) ? strcpy( t, v_obj->short_descr ) mud_prog.c: strcpy( t, aoran(obj->name) ); mud_prog.c: switch ( *( obj->name ) ) mud_prog.c: strcpy( t, aoran(v_obj->name) ); mud_prog.c: /* Next couple of checks stop program looping. -- Altrag */ mud_prog.c: --prog_nest; mud_prog.c: * -Haus mud_prog.c: * This used to ignore players MAX_LEVEL - 3 and higher (standard mud_prog.c: * you may be chosen as the random player. -Narn mud_prog.c: for ( vch = mob->in_room->first_person; vch; vch = vch->next_in_room ) mud_prog.c: if ( mob->mpscriptpos > strlen( tmpcmndlst ) ) mud_prog.c: mob->mpscriptpos = 0; mud_prog.c: command_list += mob->mpscriptpos; mud_prog.c: mob->mpscriptpos = 0; mud_prog.c: use it to increase/decrease max allowed nesting. -Narn mud_prog.c: --prog_nest; mud_prog.c: /* Script prog support -Thoric */ mud_prog.c: mob->mpscriptpos = command_list - tmpcmndlst; mud_prog.c: --prog_nest; mud_prog.c: /* Ok, this one's a no-brainer. */ mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: ignorelevel--; mud_prog.c: iflevel--; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: --prog_nest; mud_prog.c: vnum = mob->pIndexData->vnum; mud_prog.c: if ( (start == arg || *(start-1) == ' ' ) mud_prog.c: if ( ( start == arg || *(start-1) == ' ' ) mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == type ) mud_prog.c: strcpy( temp1, mprg->arglist ); mud_prog.c: if ( (start == dupl || *(start-1) == ' ' ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: if ( ( start == dupl || *(start-1) == ' ' ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( ( mprg->type == type ) mud_prog.c: && ( number_percent( ) <= atoi( mprg->arglist ) ) ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: trigger_time = ( time_info.hour == atoi( mprg->arglist ) ); mud_prog.c: if ( mprg->triggered ) mud_prog.c: mprg->triggered = FALSE; mud_prog.c: if ( ( mprg->type == type ) mud_prog.c: && ( ( !mprg->triggered ) || ( mprg->type == HOUR_PROG ) ) ) mud_prog.c: mprg->triggered = TRUE; mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: for ( runner = mob_act_list; runner; runner = runner->next ) mud_prog.c: if ( runner->vo == mob ) mud_prog.c: runner->vo = mob; mud_prog.c: runner->next = mob_act_list; mud_prog.c: && HAS_PROG( mob->pIndexData, ACT_PROG ) ) mud_prog.c: if ( IS_NPC( ch ) && ch->pIndexData == mob->pIndexData ) mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == ACT_PROG mud_prog.c: && mprog_keyword_check( buf, mprg->arglist ) ) mud_prog.c: if ( mob->mpactnum > 0 ) mud_prog.c: tmp_act->next = mob->mpact; mud_prog.c: tmp_act->next = NULL; mud_prog.c: mob->mpact = tmp_act; mud_prog.c: mob->mpact->buf = str_dup( buf ); mud_prog.c: mob->mpact->ch = ch; mud_prog.c: mob->mpact->obj = obj; mud_prog.c: mob->mpact->vo = vo; mud_prog.c: mob->mpactnum++; mud_prog.c: && HAS_PROG( mob->pIndexData, BRIBE_PROG ) ) mud_prog.c: if ( IS_NPC( ch ) && ch->pIndexData == mob->pIndexData ) mud_prog.c: sprintf( buf, obj->short_descr, amount ); mud_prog.c: STRFREE( obj->short_descr ); mud_prog.c: obj->short_descr = STRALLOC( buf ); mud_prog.c: obj->value[0] = amount; mud_prog.c: mob->gold -= amount; mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( ( mprg->type == BRIBE_PROG ) mud_prog.c: && ( amount >= atoi( mprg->arglist ) ) ) mud_prog.c: mprog_driver( mprg->comlist, mob, ch, obj, NULL, FALSE ); mud_prog.c: && HAS_PROG(mob->pIndexData, DEATH_PROG) ) mud_prog.c: mob->position = POS_STANDING; mud_prog.c: mob->position = POS_DEAD; mud_prog.c: && HAS_PROG(mob->pIndexData, ENTRY_PROG) ) mud_prog.c: && HAS_PROG( mob->pIndexData, FIGHT_PROG ) ) mud_prog.c: && HAS_PROG( mob->pIndexData, GIVE_PROG ) ) mud_prog.c: if ( IS_NPC( ch ) && ch->pIndexData == mob->pIndexData ) mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: one_argument( mprg->arglist, buf ); mud_prog.c: if ( mprg->type == GIVE_PROG mud_prog.c: && (!str_cmp(obj->name, mprg->arglist) mud_prog.c: mprog_driver( mprg->comlist, mob, ch, obj, NULL, FALSE ); mud_prog.c: sprintf( buf, "mprog_greet_trigger -> %s", ch->name ); mud_prog.c: for ( vmob = ch->in_room->first_person; vmob; vmob = vmob_next ) mud_prog.c: vmob_next = vmob->next_in_room; mud_prog.c: || vmob->fighting mud_prog.c: if ( IS_NPC( ch ) && ch->pIndexData == vmob->pIndexData ) mud_prog.c: if ( HAS_PROG(vmob->pIndexData, GREET_PROG) ) mud_prog.c: else if ( HAS_PROG(vmob->pIndexData, ALL_GREET_PROG) ) mud_prog.c: && HAS_PROG(mob->pIndexData, HITPRCNT_PROG) ) mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == HITPRCNT_PROG mud_prog.c: && (100*mob->hit / mob->max_hit) < atoi(mprg->arglist) ) mud_prog.c: mprog_driver( mprg->comlist, mob, ch, NULL, NULL, FALSE ); mud_prog.c: if ( HAS_PROG(mob->pIndexData, RAND_PROG) ) mud_prog.c: if ( HAS_PROG(mob->pIndexData, TIME_PROG) ) mud_prog.c: if ( HAS_PROG(mob->pIndexData, HOUR_PROG) ) mud_prog.c: for ( vmob = actor->in_room->first_person; vmob; vmob = vmob->next_in_room ) mud_prog.c: if ( IS_NPC(vmob) && HAS_PROG(vmob->pIndexData, SPEECH_PROG) && knows_language(vmob, actor->speaking, actor) ) mud_prog.c: if ( IS_NPC(actor) && actor->pIndexData == vmob->pIndexData ) mud_prog.c: if ( HAS_PROG(mob->pIndexData, SCRIPT_PROG) ) mud_prog.c: for ( mprg = mob->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == SCRIPT_PROG mud_prog.c: && (mprg->arglist[0] == '\0' mud_prog.c: || mob->mpscriptpos != 0 mud_prog.c: || atoi(mprg->arglist) == time_info.hour) ) mud_prog.c: mprog_driver( mprg->comlist, mob, NULL, NULL, NULL, TRUE ); mud_prog.c: if ( HAS_PROG(obj->pIndexData, SCRIPT_PROG) ) mud_prog.c: for ( mprg = obj->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == SCRIPT_PROG ) mud_prog.c: if ( mprg->arglist[0] == '\0' mud_prog.c: || obj->mpscriptpos != 0 mud_prog.c: || atoi( mprg->arglist ) == time_info.hour ) mud_prog.c: mprog_driver( mprg->comlist, supermob, NULL, NULL, NULL, TRUE ); mud_prog.c: obj->mpscriptpos = supermob->mpscriptpos; mud_prog.c: for ( mprg = room->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == SCRIPT_PROG ) mud_prog.c: if ( mprg->arglist[0] == '\0' mud_prog.c: || room->mpscriptpos != 0 mud_prog.c: || atoi( mprg->arglist ) == time_info.hour ) mud_prog.c: mprog_driver( mprg->comlist, supermob, NULL, NULL, NULL, TRUE ); mud_prog.c: room->mpscriptpos = supermob->mpscriptpos; mud_prog.c: for ( in_obj = obj; in_obj->in_obj; in_obj = in_obj->in_obj ) mud_prog.c: if ( in_obj->carried_by ) mud_prog.c: room = in_obj->carried_by->in_room; mud_prog.c: room = obj->in_room; mud_prog.c: if (supermob->short_descr) mud_prog.c: STRFREE(supermob->short_descr); mud_prog.c: supermob->short_descr = QUICKLINK(obj->short_descr); mud_prog.c: supermob->mpscriptpos = obj->mpscriptpos; mud_prog.c: sprintf( buf, "Object #%d", obj->pIndexData->vnum ); mud_prog.c: STRFREE( supermob->description ); mud_prog.c: supermob->description = STRALLOC( buf ); mud_prog.c: for ( mprg = obj->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == type mud_prog.c: && ( number_percent( ) <= atoi( mprg->arglist ) ) ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: if ( HAS_PROG(obj->pIndexData, ACT_PROG) ) mud_prog.c: for ( vobj=ch->in_room->first_content; vobj; vobj = vobj->next_content ) mud_prog.c: if ( HAS_PROG(vobj->pIndexData, GREET_PROG) ) mud_prog.c: for ( vobj=ch->in_room->first_content; vobj; vobj = vobj->next_content ) mud_prog.c: if ( HAS_PROG(vobj->pIndexData, SPEECH_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, RAND_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, WEAR_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, USE_PROG) ) mud_prog.c: if ( obj->item_type == ITEM_STAFF || obj->item_type == ITEM_WAND mud_prog.c: || obj->item_type == ITEM_SCROLL ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, REMOVE_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, SAC_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, GET_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, DAMAGE_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, REPAIR_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, DROP_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, EXA_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, ZAP_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, PULL_PROG) ) mud_prog.c: if ( HAS_PROG(obj->pIndexData, PUSH_PROG) ) mud_prog.c: if ( HAS_PROG(mobj->pIndexData, ACT_PROG) ) mud_prog.c: if ( mobj->mpactnum > 0 ) mud_prog.c: tmp_act->next = mobj->mpact; mud_prog.c: tmp_act->next = NULL; mud_prog.c: mobj->mpact = tmp_act; mud_prog.c: mobj->mpact->buf = str_dup(buf); mud_prog.c: mobj->mpact->ch = ch; mud_prog.c: mobj->mpact->obj = obj; mud_prog.c: mobj->mpact->vo = vo; mud_prog.c: mobj->mpactnum++; mud_prog.c: for ( mprg = iobj->pIndexData->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == type ) mud_prog.c: strcpy( temp1, mprg->arglist ); mud_prog.c: if ( (start == dupl || *(start-1) == ' ' ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: if ( ( start == dupl || *(start-1) == ' ' ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: STRFREE(supermob->short_descr); mud_prog.c: supermob->short_descr = QUICKLINK(room->name); mud_prog.c: STRFREE(supermob->name); mud_prog.c: supermob->name = QUICKLINK(room->name); mud_prog.c: supermob->mpscriptpos = room->mpscriptpos; mud_prog.c: sprintf( buf, "Room #%d", room->vnum ); mud_prog.c: STRFREE( supermob->description ); mud_prog.c: supermob->description = STRALLOC( buf ); mud_prog.c: if(!mob->in_room) mud_prog.c: for ( mprg = mob->in_room->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == type mud_prog.c: && number_percent() <= atoi(mprg->arglist) ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: * Unhold. -- Alty mud_prog.c: if ( room->mpactnum > 0 ) mud_prog.c: tmp_act->next = room->mpact; mud_prog.c: tmp_act->next = NULL; mud_prog.c: room->mpact = tmp_act; mud_prog.c: room->mpact->buf = str_dup(buf); mud_prog.c: room->mpact->ch = ch; mud_prog.c: room->mpact->obj = obj; mud_prog.c: room->mpact->vo = vo; mud_prog.c: room->mpactnum++; mud_prog.c: if ( HAS_PROG(ch->in_room, LEAVE_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if ( HAS_PROG(ch->in_room, ENTER_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if ( HAS_PROG(ch->in_room, SLEEP_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if( HAS_PROG(ch->in_room, REST_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if( HAS_PROG(ch->in_room, RFIGHT_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if( HAS_PROG(ch->in_room, RDEATH_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if( HAS_PROG(ch->in_room, SPEECH_PROG) ) mud_prog.c: rprog_wordlist_check( txt, supermob, ch, NULL, NULL, SPEECH_PROG, ch->in_room ); mud_prog.c: if ( HAS_PROG(ch->in_room, RAND_PROG) ) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: if ( actor && !char_died(actor) && actor->in_room ) mud_prog.c: room = actor->in_room; mud_prog.c: for ( mprg = room->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: if ( mprg->type == type ) mud_prog.c: strcpy( temp1, mprg->arglist ); mud_prog.c: if ( (start == dupl || *(start-1) == ' ' ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: if ( ( start == dupl || *(start-1) == ' ' ) mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: for ( mprg = room->mudprogs; mprg; mprg = mprg->next ) mud_prog.c: trigger_time = ( time_info.hour == atoi( mprg->arglist ) ); mud_prog.c: if ( mprg->triggered ) mud_prog.c: mprg->triggered = FALSE; mud_prog.c: if ( mprg->type == type mud_prog.c: && ( ( !mprg->triggered ) || ( mprg->type == HOUR_PROG ) ) ) mud_prog.c: mprg->triggered = TRUE; mud_prog.c: mprog_driver( mprg->comlist, mob, actor, obj, vo, FALSE ); mud_prog.c: if ( HAS_PROG(ch->in_room, TIME_PROG)) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: rprog_time_check( supermob, NULL, NULL, ch->in_room, TIME_PROG ); mud_prog.c: if ( HAS_PROG(ch->in_room, HOUR_PROG)) mud_prog.c: rset_supermob( ch->in_room ); mud_prog.c: rprog_time_check( supermob, NULL, NULL, ch->in_room, HOUR_PROG ); mud_prog.c: if ( mob->pIndexData->vnum == 3 ) mud_prog.c: mob->description == NULL ? "(unknown)" : mob->description ); mud_prog.c: sprintf( buf, "%s, Mob #%d.", str, mob->pIndexData->vnum ); mud_prog.c: thru 5-10000 rooms every pulse.. can we say lag? -- Alty */ mud_prog.c: for ( runner = room_act_list; runner; runner = runner->next ) mud_prog.c: if ( runner->vo == room ) mud_prog.c: runner->vo = room; mud_prog.c: runner->next = room_act_list; mud_prog.c: ROOM_INDEX_DATA *room = runner->vo; mud_prog.c: while ( (mpact = room->mpact) != NULL ) mud_prog.c: if ( mpact->ch->in_room == room ) mud_prog.c: rprog_wordlist_check(mpact->buf, supermob, mpact->ch, mpact->obj, mud_prog.c: mpact->vo, ACT_PROG, room); mud_prog.c: room->mpact = mpact->next; mud_prog.c: DISPOSE(mpact->buf); mud_prog.c: room->mpact = NULL; mud_prog.c: room->mpactnum = 0; mud_prog.c: room_act_list = runner->next; mud_prog.c: for ( runner = obj_act_list; runner; runner = runner->next ) mud_prog.c: if ( runner->vo == obj ) mud_prog.c: runner->vo = obj; mud_prog.c: runner->next = obj_act_list; mud_prog.c: OBJ_DATA *obj = runner->vo; mud_prog.c: while ( (mpact = obj->mpact) != NULL ) mud_prog.c: oprog_wordlist_check(mpact->buf, supermob, mpact->ch, mpact->obj, mud_prog.c: mpact->vo, ACT_PROG, obj); mud_prog.c: obj->mpact = mpact->next; mud_prog.c: DISPOSE(mpact->buf); mud_prog.c: obj->mpact = NULL; mud_prog.c: obj->mpactnum = 0; mud_prog.c: obj_act_list = runner->next; oedit.c:/*------------------------------------------------------------------------*/ oedit.c: if ( d->olc ) oedit.c: if ( d->character ) oedit.c: d->character->dest_buf = NULL; oedit.c: act( AT_ACTION, "$n stops using OLC.", d->character, NULL, NULL, TO_CANSEE ); oedit.c: d->connected = CON_PLAYING; oedit.c: DISPOSE( d->olc ); oedit.c: for ( d = first_descriptor; d; d = d->next ) oedit.c: if ( d->connected == CON_OEDIT ) oedit.c: if ( d->olc && OLC_VNUM(d) == obj->pIndexData->vnum ) oedit.c: ch_printf( ch, "That object is currently being edited by %s.\n\r", d->character->name ); oedit.c: d = ch->desc; oedit.c: CREATE( d->olc, OLC_DATA, 1 ); oedit.c: OLC_VNUM(d) = obj->pIndexData->vnum; oedit.c: d->character->dest_buf = obj; oedit.c: d->connected = CON_OEDIT; oedit.c: if ( !ch->pcdata || !(pArea=ch->pcdata->area) ) oedit.c: if ( cvnum < pArea->low_o_vnum oedit.c: || cvnum > pArea->hi_o_vnum ) oedit.c: copy->vnum = cvnum; oedit.c: copy->name = QUICKLINK( orig->name ); oedit.c: copy->first_affect = NULL; oedit.c: copy->last_affect = NULL; oedit.c: copy->first_extradesc = NULL; oedit.c: copy->last_extradesc = NULL; oedit.c: copy->short_descr = QUICKLINK( orig->short_descr ); oedit.c: copy->description = QUICKLINK( orig->description ); oedit.c: copy->action_desc = QUICKLINK( orig->action_desc ); oedit.c: copy->item_type = orig->item_type; oedit.c: copy->extra_flags = orig->extra_flags; oedit.c: copy->magic_flags = orig->magic_flags; oedit.c: copy->wear_flags = orig->wear_flags; oedit.c: copy->value[0] = orig->value[0]; oedit.c: copy->value[1] = orig->value[1]; oedit.c: copy->value[2] = orig->value[2]; oedit.c: copy->value[3] = orig->value[3]; oedit.c: copy->value[4] = orig->value[4]; oedit.c: copy->value[5] = orig->value[5]; oedit.c: copy->weight = orig->weight; oedit.c: copy->cost = orig->cost; oedit.c: copy->rent = orig->rent; oedit.c: copy->layers = orig->layers; oedit.c: for ( ced = orig->first_extradesc; ced; ced = ced->next ) oedit.c: ed->keyword = QUICKLINK( ced->keyword ); oedit.c: ed->description = QUICKLINK( ced->description ); oedit.c: LINK( ed, copy->first_extradesc, copy->last_extradesc, next, prev ); oedit.c: for ( cpaf = orig->first_affect; cpaf; cpaf = cpaf->next ) oedit.c: paf->type = cpaf->type; oedit.c: paf->duration = cpaf->duration; oedit.c: paf->location = cpaf->location; oedit.c: paf->modifier = cpaf->modifier; oedit.c: paf->bitvector = cpaf->bitvector; oedit.c: LINK( paf, copy->first_affect, copy->last_affect, next, prev ); oedit.c: if ( orig->mudprogs ) oedit.c: copy->mudprogs = mprog; oedit.c: for ( cprog = orig->mudprogs; cprog; cprog = cprog->next ) oedit.c: mprog->type = cprog->type; oedit.c: xSET_BIT( copy->progtypes, mprog->type ); oedit.c: mprog->arglist = QUICKLINK( cprog->arglist ); oedit.c: mprog->comlist = QUICKLINK( cprog->comlist ); oedit.c: if ( cprog->next ) oedit.c: CREATE( mprog->next, MPROG_DATA, 1 ); oedit.c: mprog = mprog->next; oedit.c: mprog->next = NULL; oedit.c: copy->count = 0; oedit.c: copy->next = obj_index_hash[iHash]; oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: for ( count = 0, mprg = obj->pIndexData->mudprogs; mprg; mprg = mprg->next ) oedit.c: ch_printf_color( d->character, "&g%2d&w) &c%s\n\r", ++count, mprog_type_to_name( mprg->type ) ); oedit.c: if ( obj->pIndexData->mudprogs ) oedit.c: send_to_char( "\n\r", d->character ); oedit.c: ch_printf_color( d->character, "&gA&w) Add a new program\n\r" ); oedit.c: ch_printf_color( d->character, "&gR&w) Remove an existing program\n\r" ); oedit.c: ch_printf_color( d->character, "&gQ&w) Quit\n\r" ); oedit.c: ch_printf_color( d->character, "\n\rEnter choice: " ); oedit.c: ch_printf_color( d->character, "&g%2d&w) %s\n\r", count, mprog_type_to_name(count) ); oedit.c: send_to_char( "\n\rEnter type: ", d->character ); oedit.c: MPROG_DATA *mprg = d->character->spare_ptr; oedit.c: if ( mprg->comlist ) oedit.c: while ( mprg->comlist[i++] != '\n' ) oedit.c: sprintf( buf, "%s%c", buf, mprg->comlist[i] ); oedit.c: ch_printf_color( d->character, "&gA&w) Type: &c%s\n\r", mprog_type_to_name(mprg->type) ); oedit.c: ch_printf_color( d->character, "&gB&w) Args: &c%s\n\r", mprg->arglist ); oedit.c: ch_printf_color( d->character, "&gC&w) Prog: %s\n\r", buf ); oedit.c: ch_printf_color( d->character, "&gQ&w) Quit\n\r" ); oedit.c: send_to_char( "\n\rEnter choice: ", d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: CHAR_DATA *ch = d->character; oedit.c: sprintf( buf, "Container flags: &c%s&w\n\r", flag_string( obj->value[1], container_flags ) ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: send_to_char_color( buf, d->character ); oedit.c: sprintf( buf, "Lever flags: &c%s&w\n\rEnter flag, 0 to quit: ", flag_string( obj->value[0] , trig_flags ) ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: send_to_char( "Choose which layer, or combination of layers fits best: \n\r\n\r", d->character ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g1&w) Nothing Layers\n\r", (obj->pIndexData->layers == 0) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g2&w) Silk Shirt\n\r", IS_SET( obj->pIndexData->layers, 1 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g3&w) Leather Vest\n\r", IS_SET( obj->pIndexData->layers, 2 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g4&w) Light Chainmail\n\r", IS_SET( obj->pIndexData->layers, 4 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g5&w) Leather Jacket\n\r", IS_SET( obj->pIndexData->layers, 8 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g6&w) Light Cloak\n\r", IS_SET( obj->pIndexData->layers, 16 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g7&w) Loose Cloak\n\r", IS_SET( obj->pIndexData->layers, 32 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g8&w) Cape\n\r", IS_SET( obj->pIndexData->layers, 64 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "[&c%s&w] &g9&w) Magical Effects\n\r", IS_SET( obj->pIndexData->layers, 128 ) ? "X" : " " ); oedit.c: ch_printf_color( d->character, "\n\rLayer or 0 to exit: " ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: CHAR_DATA *ch = d->character; oedit.c: if ( obj->pIndexData->first_extradesc ) oedit.c: for ( ed = obj->pIndexData->first_extradesc; ed; ed = ed->next ) oedit.c: ch_printf_color( ch, "&g%2d&w) Keyword: &O%s\n\r", ++count, ed->keyword ); oedit.c: if ( obj->first_extradesc ) oedit.c: for ( ed = obj->first_extradesc; ed; ed = ed->next ) oedit.c: ch_printf_color( ch, "&g%2d&w) Keyword: &O%s\n\r", ++count, ed->keyword ); oedit.c: if ( obj->pIndexData->first_extradesc || obj->first_extradesc ) oedit.c: send_to_char( "\n\r", d->character ); oedit.c: ch_printf_color( d->character, "&gA&w) Add a new description\n\r" ); oedit.c: ch_printf_color( d->character, "&gR&w) Remove a description\n\r" ); oedit.c: ch_printf_color( d->character, "&gQ&w) Quit\n\r" ); oedit.c: ch_printf_color( d->character, "\n\rEnter choice: " ); oedit.c: EXTRA_DESCR_DATA *ed = d->character->spare_ptr; oedit.c: ch_printf_color( d->character, "&g1&w) Keyword: &O%s\n\r", ed->keyword ); oedit.c: ch_printf_color( d->character, "&g2&w) Description: \n\r&O%s&w\n\r", ed->description ); oedit.c: ch_printf_color( d->character, "\n\rChange which option? " ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: CHAR_DATA *ch = d->character; oedit.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) oedit.c: ch_printf_color( d->character, " &g%2d&w) ", counter++ ); oedit.c: /* ch_printf_color( d->character, "&cAffects &w%s &cby &w%d.\n\r", affect_loc_name( paf->location ), paf->modifier ); */ oedit.c: for ( paf = obj->first_affect; paf; paf = paf->next ) oedit.c: ch_printf_color( d->character, " &g%2d&w) ", counter++ ); oedit.c: /* ch_printf_color( d->character, "&cAffects &w%s &cby &w%d.\n\r", affect_loc_name( paf->location ), paf->modifier ); */ oedit.c: sprintf( buf, " &w%2d&g) &c%-20.20s ", counter, liq_table[counter].liq_name ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: send_to_char_color( "\n\r&wEnter drink type: ", d->character ); oedit.c: CHAR_DATA *ch = d->character; oedit.c: sprintf( buf, "&g%2d&w) %-20.20s ", counter, a_types[counter] ); oedit.c: CHAR_DATA *ch = d->character; oedit.c: sprintf( buf, "&g%2d&w) %-20.20s ", counter, attack_table[counter] ); oedit.c: send_to_char( "Enter the name of the spell: ", d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: switch (obj->item_type) oedit.c: send_to_char("Spell level : ", d->character); oedit.c: send_to_char( "Condition : ", d->character ); oedit.c: send_to_char( "Current AC : ", d->character); oedit.c: send_to_char("Capacity : ", d->character); oedit.c: send_to_char("Hours to fill stomach : ", d->character); oedit.c: send_to_char("Amount of gold coins : ", d->character); oedit.c: send_to_char( "Charges: ", d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: switch (obj->item_type) oedit.c: send_to_char( "Charges: ", d->character ); oedit.c: send_to_char( "Number of draws: ", d->character ); oedit.c: send_to_char("Max number of charges : ", d->character); oedit.c: send_to_char("Number of damage dice : ", d->character); oedit.c: send_to_char( "Condition: ", d->character ); oedit.c: send_to_char( "Quantity : ", d->character ); oedit.c: send_to_char( "Original AC: ", d->character ); oedit.c: if ( IS_SET( obj->value[0], TRIG_CAST ) ) oedit.c: send_to_char( "Vnum: ", d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: switch ( obj->item_type ) oedit.c: send_to_char("Number of hours (0 = burnt, -1 is infinite) : ", d->character); oedit.c: send_to_char("Number of charges remaining : ", d->character); oedit.c: send_to_char("Size of damage dice : ", d->character); oedit.c: send_to_char("Vnum of key to open container (-1 for no key) : ", d->character); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: switch ( obj->item_type ) oedit.c: send_to_char("Poisoned (0 = not poisoned) : ", d->character); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: switch ( obj->item_type ) oedit.c: send_to_char( "Food value: ", d->character ); oedit.c: send_to_char( "Range: ", d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: switch ( obj->item_type ) oedit.c: sprintf( buf, "&g%2d&w) %-20.20s ", counter, o_types[counter] ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: send_to_char( "\n\rEnter object type: ", d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: sprintf( buf, "&g%2d&w) %-20.20s ", counter + 1, capitalize(o_flags[counter]) ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: ext_flag_string( &obj->extra_flags, o_flags ) ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: sprintf( buf, "&g%2d&w) %-20.20s ", counter+1, capitalize(w_flags[counter]) ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: flag_string( obj->wear_flags, w_flags ) ); oedit.c: send_to_char_color( buf, d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: set_char_color( AT_PLAIN, d->character ); oedit.c: "-- Item number : [&c%d&w]\r\n" oedit.c: "&g2&w) S-Desc : &O%s\r\n" oedit.c: "&g3&w) L-Desc :-\r\n&O%s\r\n" oedit.c: "&g4&w) A-Desc :-\r\n&O%s\n\r" oedit.c: obj->pIndexData->vnum, oedit.c: obj->name, oedit.c: obj->short_descr, oedit.c: obj->description, oedit.c: obj->action_desc ? obj->action_desc : "<not set>\r\n", oedit.c: ext_flag_string( &obj->extra_flags, o_flags ) oedit.c: send_to_char_color(buf, d->character); oedit.c: "&gC&w) Level : &c%d\n\r" /* -- Object level .*/ oedit.c: flag_string( obj->wear_flags, w_flags ), oedit.c: obj->weight, oedit.c: obj->cost, oedit.c: obj->pIndexData->rent, oedit.c: obj->timer, oedit.c: obj->level, oedit.c: obj->pIndexData->layers, oedit.c: obj->value[0], oedit.c: obj->value[1], oedit.c: obj->value[2], oedit.c: obj->value[3], oedit.c: obj->value[4], oedit.c: obj->value[5] oedit.c: send_to_char_color( buf, d->character ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: for ( paf = obj->pIndexData->first_affect; paf; paf = paf->next ) oedit.c: d->character->spare_ptr = paf; oedit.c: for ( paf = obj->first_affect; paf; paf = paf->next ) oedit.c: d->character->spare_ptr = paf; oedit.c: send_to_char( "Affect not found.\n\r", d->character ); oedit.c: if ( obj->pIndexData->first_affect ) oedit.c: for ( paf = obj->pIndexData->first_affect; oedit.c: paf = paf->next ) oedit.c: UNLINK( paf, obj->pIndexData->first_affect, obj->pIndexData->last_affect, next, prev ); oedit.c: --top_affect; oedit.c: if ( obj->first_affect ) oedit.c: for ( paf = obj->first_affect; oedit.c: paf = paf->next ) oedit.c: UNLINK( paf, obj->first_affect, obj->last_affect, next, prev ); oedit.c: --top_affect; oedit.c: for ( ed = obj->pIndexData->first_extradesc; ed; ed = ed->next ) oedit.c: for ( ed = obj->first_extradesc; ed; ed = ed->next ) oedit.c: for ( count = 0, mprg = obj->pIndexData->mudprogs; mprg; mprg = mprg->next ) oedit.c: OBJ_DATA *obj = ch->dest_buf; oedit.c: EXTRA_DESCR_DATA *ed = ch->spare_ptr; oedit.c: MPROG_DATA *mprg = ch->spare_ptr; oedit.c: int mode = OLC_MODE(ch->desc); oedit.c: switch ( ch->substate ) oedit.c: if ( !ch->dest_buf ) oedit.c: bug( "do_oedit_reset: sub_obj_extra: NULL ch->dest_buf", 0 ); oedit.c: ch->substate = SUB_NONE; oedit.c: /* OLC_DESC(ch->desc) = ch->spare_ptr; */ oedit.c: STRFREE( ed->description ); oedit.c: ed->description = copy_buffer( ch ); oedit.c: ch->dest_buf = obj; oedit.c: ch->spare_ptr = ed; oedit.c: ch->substate = SUB_NONE; oedit.c: ch->desc->connected = CON_OEDIT; oedit.c: OLC_MODE(ch->desc) = OEDIT_EXTRADESC_CHOICE; oedit.c: oedit_disp_extra_choice( ch->desc ); oedit.c: if ( !ch->dest_buf ) oedit.c: bug( "do_oedit_reset: sub_obj_long: NULL ch->dest_buf", 0 ); oedit.c: ch->substate = SUB_NONE; oedit.c: STRFREE( obj->description ); oedit.c: obj->description = copy_buffer( ch ); oedit.c: STRFREE( obj->pIndexData->description ); oedit.c: obj->pIndexData->description = QUICKLINK( obj->description ); oedit.c: ch->dest_buf = obj; oedit.c: ch->desc->connected = CON_OEDIT; oedit.c: ch->substate = SUB_NONE; oedit.c: OLC_MODE( ch->desc ) = OEDIT_MAIN_MENU; oedit.c: oedit_disp_menu( ch->desc ); oedit.c: if ( mprg->comlist ) oedit.c: STRFREE( mprg->comlist ); oedit.c: mprg->comlist = copy_buffer( ch ); oedit.c: ch->dest_buf = obj; oedit.c: ch->desc->connected = ch->tempnum; oedit.c: ch->substate = SUB_NONE; oedit.c: OLC_MODE( ch->desc ) = mode; oedit.c: oedit_disp_prog_choice( ch->desc ); oedit.c: OBJ_DATA *obj = d->character->dest_buf; oedit.c: AFFECT_DATA *paf = d->character->spare_ptr; oedit.c: EXTRA_DESCR_DATA *ed = d->character->spare_ptr; oedit.c: MPROG_DATA *mprg = d->character->spare_ptr; oedit.c: MPROG_DATA *mprog = obj->pIndexData->mudprogs; oedit.c: send_to_char("Saving object to memory.\r\n", d->character); oedit.c: send_to_char("Invalid choice!\r\n", d->character); oedit.c: send_to_char("Do you wish to save this object internally?\r\n", d->character); oedit.c: /* send_to_char( "Do you wish to save this object internally?: ", d->character ); oedit.c: send_to_char("Enter namelist : ", d->character); oedit.c: send_to_char("Enter short desc : ", d->character); oedit.c: send_to_char("Enter long desc :-\r\n| ", d->character); oedit.c: send_to_char("Enter action desc :-\r\n", d->character); oedit.c: send_to_char("Enter weight : ", d->character); oedit.c: send_to_char("Enter cost : ", d->character); oedit.c: send_to_char("Enter cost per day : ", d->character); oedit.c: send_to_char("Enter timer : ", d->character); oedit.c: send_to_char("Enter level : ", d->character); oedit.c: if ( IS_SET( obj->wear_flags, ITEM_WEAR_BODY ) oedit.c: || IS_SET( obj->wear_flags, ITEM_WEAR_ABOUT ) oedit.c: || IS_SET( obj->wear_flags, ITEM_WEAR_ARMS ) oedit.c: || IS_SET( obj->wear_flags, ITEM_WEAR_FEET ) oedit.c: || IS_SET( obj->wear_flags, ITEM_WEAR_HANDS ) oedit.c: || IS_SET( obj->wear_flags, ITEM_WEAR_LEGS ) oedit.c: || IS_SET( obj->wear_flags, ITEM_WEAR_WAIST ) ) oedit.c: send_to_char( "The wear location of this object is not layerable.\n\r", d->character ); oedit.c: STRFREE(obj->name); oedit.c: obj->name = STRALLOC(arg); oedit.c: STRFREE( obj->pIndexData->name ); oedit.c: obj->pIndexData->name = QUICKLINK( obj->name ); oedit.c: olc_log( d, "Changed name to %s", obj->name ); oedit.c: STRFREE(obj->short_descr); oedit.c: obj->short_descr = STRALLOC(arg); oedit.c: STRFREE( obj->pIndexData->short_descr ); oedit.c: obj->pIndexData->short_descr = QUICKLINK( obj->short_descr ); oedit.c: olc_log( d, "Changed short to %s", obj->short_descr ); oedit.c: STRFREE(obj->description); oedit.c: obj->description = STRALLOC(arg); oedit.c: STRFREE( obj->pIndexData->description ); oedit.c: obj->pIndexData->description = QUICKLINK( obj->description ); oedit.c: olc_log( d, "Changed longdesc to %s", obj->description ); oedit.c: STRFREE( obj->action_desc ); oedit.c: obj->action_desc = STRALLOC(arg); oedit.c: STRFREE( obj->pIndexData->action_desc ); oedit.c: obj->pIndexData->action_desc = QUICKLINK( obj->action_desc ); oedit.c: olc_log( d, "Changed actiondesc to %s", obj->action_desc ); oedit.c: send_to_char("Invalid choice, try again : ", d->character); oedit.c: obj->item_type = (sh_int) number; oedit.c: obj->pIndexData->item_type = obj->item_type; oedit.c: number -= 1; /* Offset for 0 */ oedit.c: && get_trust( d->character ) < LEVEL_GREATER oedit.c: && !is_name( "protoflag", d->character->pcdata->bestowments ) ) oedit.c: send_to_char( "You cannot change the prototype flag.\n\r", d->character ); oedit.c: xTOGGLE_BIT( obj->extra_flags, number ); oedit.c: xIS_SET( obj->extra_flags, number ) ? "Added" : "Removed", oedit.c: obj->pIndexData->extra_flags = obj->extra_flags; oedit.c: send_to_char( "Invalid flag, try again: ", d->character ); oedit.c: number -= 1; /* Offset to accomodate 0 */ oedit.c: TOGGLE_BIT( obj->wear_flags, 1 << number ); oedit.c: IS_SET( obj->wear_flags, 1 << number ) ? "Added" : "Removed", oedit.c: if ( number != -1 ) oedit.c: TOGGLE_BIT( obj->wear_flags, 1 << number ); oedit.c: IS_SET( obj->wear_flags, 1 << number ) ? "Added" : "Removed", oedit.c: obj->pIndexData->wear_flags = obj->wear_flags; oedit.c: obj->weight = number; oedit.c: olc_log( d, "Changed weight to %d", obj->weight ); oedit.c: obj->pIndexData->weight = obj->weight; oedit.c: obj->cost = number; oedit.c: olc_log( d, "Changed cost to %d", obj->cost ); oedit.c: obj->pIndexData->cost = obj->cost; oedit.c: obj->pIndexData->rent = number; oedit.c: olc_log( d, "Changed rent to %d", obj->pIndexData->rent ); oedit.c: obj->timer = number; oedit.c: olc_log( d, "Changed timer to %d", obj->timer ); oedit.c: obj->level = URANGE( 0, number, MAX_LEVEL ); oedit.c: olc_log( d, "Changed object level to %d", obj->level ); oedit.c: obj->pIndexData->layers = 0; oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 1 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 2 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 4 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 8 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 16 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 32 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 64 ); oedit.c: TOGGLE_BIT( obj->pIndexData->layers, 128 ); oedit.c: send_to_char( "Invalid selection, try again: ", d->character ); oedit.c: olc_log( d, "Changed layers to %d", obj->pIndexData->layers ); oedit.c: switch ( obj->item_type ) oedit.c: TOGGLE_BIT( obj->value[0], 1 << (number - 1) ); oedit.c: TOGGLE_BIT( obj->pIndexData->value[0], 1 << (number - 1) ); oedit.c: obj->value[0] = number; oedit.c: obj->pIndexData->value[0] = number; oedit.c: olc_log( d, "Changed v0 to %d", obj->value[0] ); oedit.c: switch (obj->item_type) oedit.c: obj->value[1] = number; oedit.c: obj->pIndexData->value[1] = number; oedit.c: if ( IS_SET( obj->value[0], TRIG_CAST ) ) oedit.c: obj->value[1] = number; oedit.c: obj->pIndexData->value[1] = number; oedit.c: { number = 1 << (number - 1); oedit.c: TOGGLE_BIT( obj->value[1], number ); oedit.c: TOGGLE_BIT( obj->pIndexData->value[1], number ); oedit.c: obj->value[1] = number; oedit.c: obj->pIndexData->value[1] = number; oedit.c: olc_log( d, "Changed v1 to %d", obj->value[1] ); oedit.c: switch ( obj->item_type ) oedit.c: min_val = -1; oedit.c: max_val = top_sn-1; oedit.c: min_val = -32000; oedit.c: obj->value[2] = URANGE( min_val, number, max_val ); oedit.c: olc_log( d, "Changed v2 to %d", obj->value[2] ); oedit.c: obj->pIndexData->value[2] = obj->value[2]; oedit.c: switch ( obj->item_type ) oedit.c: min_val = -1; oedit.c: max_val = top_sn - 1; oedit.c: max_val = MAX_ATTACK_TYPE -1; oedit.c: min_val = -32000; oedit.c: obj->value[3] = URANGE( min_val, number, max_val ); oedit.c: olc_log( d, "Changed v3 to %d", obj->value[3] ); oedit.c: obj->pIndexData->value[3] = obj->value[3]; oedit.c: switch( obj->item_type ) oedit.c: min_val = -1; oedit.c: max_val = top_sn-1; oedit.c: min_val = -32000; oedit.c: obj->value[4] = URANGE( min_val, number, max_val ); oedit.c: olc_log( d, "Changed v4 to %d", obj->value[4] ); oedit.c: obj->pIndexData->value[4] = obj->value[4]; oedit.c: switch( obj->item_type ) oedit.c: min_val = -1; oedit.c: max_val = top_sn-1; oedit.c: min_val = -32000; oedit.c: obj->value[5] = URANGE( min_val, number, max_val ); oedit.c: olc_log( d, "Changed v5 to %d", obj->value[5] ); oedit.c: obj->pIndexData->value[5] = obj->value[5]; oedit.c: send_to_char( "Remove which affect? ", d->character ); oedit.c: d->character->spare_ptr = paf; oedit.c: d->character->spare_ptr = NULL; oedit.c: d->character->spare_ptr = NULL; oedit.c: send_to_char( "Invalid location, try again: ", d->character ); oedit.c: paf->location = number; oedit.c: d->character->tempnum = 0; oedit.c: d->character->tempnum = 0; oedit.c: send_to_char( "\n\rModifier: ", d->character ); oedit.c: switch ( paf->location ) oedit.c: value = d->character->tempnum; oedit.c: TOGGLE_BIT( d->character->tempnum, 1 << (number - 1) ); oedit.c: if ( paf->location == APPLY_AFFECT ) oedit.c: ch_printf( d->character, "Invalid flag: %s\n\r", arg1 ); oedit.c: TOGGLE_BIT( d->character->tempnum, 1 << number ); oedit.c: if ( paf->location == APPLY_AFFECT ) oedit.c: send_to_char( "Invalid sn, try again: ", d->character ); oedit.c: value = bsearch_skill_exact( arg, gsn_first_spell, gsn_first_skill - 1 ); oedit.c: ch_printf( d->character, "Invalid spell %s, try again: ", arg ); oedit.c: paf->modifier = value; oedit.c: olc_log( d, "Modified affect to: %s by %d", a_types[paf->location], value ); oedit.c: npaf->type = -1; oedit.c: npaf->duration = -1; oedit.c: npaf->location = URANGE( 0, paf->location, MAX_APPLY_TYPE ); oedit.c: npaf->modifier = value; oedit.c: xCLEAR_BITS( npaf->bitvector ); oedit.c: npaf->next = NULL; oedit.c: LINK( npaf, obj->pIndexData->first_affect, obj->pIndexData->last_affect, next, prev ); oedit.c: LINK( npaf, obj->first_affect, obj->last_affect, next, prev ); oedit.c: olc_log( d, "Added new affect: %s by %d", a_types[npaf->location], npaf->modifier ); oedit.c: d->character->spare_ptr = NULL; oedit.c: send_to_char( "Unknown flag, try again: ", d->character ); oedit.c: /* if ( SetOExtra( obj, arg ) || SetOExtraProto( obj->pIndexData, arg ) ) oedit.c: send_to_char( "A extradesc with that keyword already exists.\n\r", d->character ); oedit.c: olc_log( d, "Changed exdesc %s to %s", ed->keyword, arg ); oedit.c: STRFREE( ed->keyword ); oedit.c: ed->keyword = STRALLOC( arg ); oedit.c: send_to_char( "Enter keywords, speperated by spaces: ", d->character ); oedit.c: d->character->substate = SUB_OBJ_EXTRA; oedit.c: d->character->last_cmd = do_oedit_reset; oedit.c: send_to_char( "Enter new extra description - :\n\r", d->character ); oedit.c: if ( !ed->description ) oedit.c: ed->description = STRALLOC( "" ); oedit.c: start_editing( d->character, ed->description ); oedit.c: send_to_char( "Extra description not found, try again: ", d->character ); oedit.c: olc_log( d, "Deleted exdesc %s", ed->keyword ); oedit.c: UNLINK( ed, obj->pIndexData->first_extradesc, obj->pIndexData->last_extradesc, next, prev ); oedit.c: UNLINK( ed, obj->first_extradesc, obj->last_extradesc, next, prev ); oedit.c: STRFREE( ed->keyword ); oedit.c: STRFREE( ed->description ); oedit.c: top_ed--; oedit.c: LINK( ed, obj->pIndexData->first_extradesc, obj->pIndexData->last_extradesc, next, prev ); oedit.c: LINK( ed, obj->first_extradesc, obj->last_extradesc, next, prev ); oedit.c: ed->keyword = STRALLOC( "" ); oedit.c: ed->description = STRALLOC( "" ); oedit.c: d->character->spare_ptr = ed; oedit.c: send_to_char( "Delete which extra description? ", d->character ); oedit.c: send_to_char( "Not found, try again: ", d->character ); oedit.c: d->character->spare_ptr = ed; oedit.c: if ( obj->pIndexData->mudprogs != NULL ) oedit.c: for ( ; mprog->next; mprog = mprog->next ); oedit.c: if ( obj->pIndexData->mudprogs ) oedit.c: mprog->next = mprg; oedit.c: obj->pIndexData->mudprogs = mprg; oedit.c: mprg->next = NULL; oedit.c: d->character->spare_ptr = mprg; oedit.c: send_to_char( "Delete which prog? ", d->character ); oedit.c: send_to_char( "Not found, try again: ", d->character ); oedit.c: d->character->spare_ptr = mprg; oedit.c: send_to_char( "What are the arguments to the program? ", d->character ); oedit.c: if ( mprg->type < 1 ) oedit.c: send_to_char( "The program must have a type before you can edit it.", d->character ); oedit.c: d->character->substate = SUB_MPROG_EDIT; oedit.c: d->character->last_cmd = do_oedit_reset; oedit.c: d->character->tempnum = CON_OEDIT; oedit.c: if ( !mprg->comlist ) oedit.c: mprg->comlist = STRALLOC( "" ); oedit.c: start_editing( d->character, mprg->comlist ); oedit.c: d->character->tempnum = mprg->type; oedit.c: send_to_char( "Invalid program type, try again: ", d->character ); oedit.c: send_to_char( "Invalid program type, try again: ", d->character ); oedit.c: mprg->type = number; oedit.c: d->character->tempnum > 0 ? mprog_type_to_name(d->character->tempnum) : "(none)", mprog_type_to_name(number) ); oedit.c: send_to_char( "Not found, try again: ", d->character ); oedit.c: STRFREE( mprg->arglist ); oedit.c: STRFREE( mprg->comlist ); oedit.c: mprg = mprg->next; planes.c: send_to_char("Planes:\n\r-------\n\r", ch); planes.c: for (p = first_plane; p; p = p->next) planes.c: ch_printf(ch, "%s\n\r", p->name); planes.c: ch_printf(ch, "Name: %s\n\r", p->name); planes.c: p->name = STRALLOC(arg); planes.c: STRFREE(p->name); planes.c: STRFREE(p->name); planes.c: p->name = STRALLOC(argument); planes.c: for (p = first_plane; p; p = p->next) planes.c: if (!str_cmp(name, p->name)) planes.c: for (p = first_plane; p; p = p->next) planes.c: if (!str_prefix(name, p->name)) planes.c: for (p = first_plane; p; p = p->next) planes.c: fprintf(fp, "Name %s\n", p->name); planes.c: if (plane_lookup(p->name)) planes.c: STRFREE(p->name); planes.c: KEY("Name", p->name, fread_string(fp)); planes.c: p->name = STRALLOC("Prime Material"); planes.c: for (r = room_index_hash[vnum]; r; r = r->next) planes.c: if (!r->plane || r->plane == p) planes.c: r->plane = first_plane; player.c: * -----------------------------------------------------------| (0...0) * player.c: * -----------------------------------------------------------| {o o} * player.c: * ------------------------------------------------------------------------ * player.c: * ------------------------------------------------------------------------ * player.c:/* For TinyMUD Bots! -- Scion */ player.c: if (ch->pcdata->outputprefix) player.c: DISPOSE(ch->pcdata->outputprefix); player.c: ch->pcdata->outputprefix = str_dup(argument); player.c: if (ch->pcdata->outputsuffix) player.c: DISPOSE(ch->pcdata->outputsuffix); player.c: ch->pcdata->outputsuffix = str_dup(argument); player.c: if (ch->level > 1 /*|| !NOT_AUTHED(ch)*/) player.c: if( ch->level2 != -1 ) player.c: ch->perm_str = 13; player.c: ch->perm_dex = 13; player.c: ch->perm_int = 13; player.c: ch->perm_wis = 13; player.c: ch->perm_cha = 13; player.c: ch->perm_con = 13; player.c: ch->perm_lck = 13; player.c: switch ( class_table[ch->class]->attr_prime ) player.c: case APPLY_STR: ch->perm_str = 16; break; player.c: case APPLY_INT: ch->perm_int = 16; break; player.c: case APPLY_WIS: ch->perm_wis = 16; break; player.c: case APPLY_DEX: ch->perm_dex = 16; break; player.c: case APPLY_CON: ch->perm_con = 16; break; player.c: case APPLY_CHA: ch->perm_cha = 16; break; player.c: case APPLY_LCK: ch->perm_lck = 16; break; player.c: ch->perm_str += race_table[ch->race]->str_plus; player.c: ch->perm_int += race_table[ch->race]->int_plus; player.c: ch->perm_wis += race_table[ch->race]->wis_plus; player.c: ch->perm_dex += race_table[ch->race]->dex_plus; player.c: ch->perm_con += race_table[ch->race]->con_plus; player.c: ch->perm_cha += race_table[ch->race]->cha_plus; player.c: ch->perm_lck += race_table[ch->race]->lck_plus; player.c: sprintf(buf, "%-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.\n\r", player.c: ch->perm_str, ch->perm_int, ch->perm_wis, ch->perm_dex, ch->perm_con, ch->perm_cha, ch->perm_lck); player.c: ch_printf( ch, "You have %d gold pieces.", ch->gold ); player.c: ch_printf( ch, "You have %d gold pieces on hand and %d gold pieces in the bank.\n\r", ch->gold, ch->pcdata->balance ); player.c: pager_printf(ch, "\n\rWorth for %s%s.\n\r", ch->name, ch->pcdata->title); player.c: send_to_pager(" ----------------------------------------------------------------------------\n\r", ch); player.c: if (!ch->pcdata->deity) sprintf( buf, "N/A" ); player.c: else if (ch->pcdata->favor > 2250) sprintf( buf, "loved" ); player.c: else if (ch->pcdata->favor > 2000) sprintf( buf, "cherished" ); player.c: else if (ch->pcdata->favor > 1750) sprintf( buf, "honored" ); player.c: else if (ch->pcdata->favor > 1500) sprintf( buf, "praised" ); player.c: else if (ch->pcdata->favor > 1250) sprintf( buf, "favored" ); player.c: else if (ch->pcdata->favor > 1000) sprintf( buf, "respected" ); player.c: else if (ch->pcdata->favor > 750) sprintf( buf, "liked" ); player.c: else if (ch->pcdata->favor > 250) sprintf( buf, "tolerated" ); player.c: else if (ch->pcdata->favor > -250) sprintf( buf, "ignored" ); player.c: else if (ch->pcdata->favor > -750) sprintf( buf, "shunned" ); player.c: else if (ch->pcdata->favor > -1000) sprintf( buf, "disliked" ); player.c: else if (ch->pcdata->favor > -1250) sprintf( buf, "dishonored" ); player.c: else if (ch->pcdata->favor > -1500) sprintf( buf, "disowned" ); player.c: else if (ch->pcdata->favor > -1750) sprintf( buf, "abandoned" ); player.c: else if (ch->pcdata->favor > -2000) sprintf( buf, "despised" ); player.c: else if (ch->pcdata->favor > -2250) sprintf( buf, "hated" ); player.c: if ( ch->level < 10 ) player.c: if (ch->alignment > 900) sprintf(buf2, "devout"); player.c: else if (ch->alignment > 700) sprintf(buf2, "noble"); player.c: else if (ch->alignment > 350) sprintf(buf2, "honorable"); player.c: else if (ch->alignment > 100) sprintf(buf2, "worthy"); player.c: else if (ch->alignment > -100) sprintf(buf2, "neutral"); player.c: else if (ch->alignment > -350) sprintf(buf2, "base"); player.c: else if (ch->alignment > -700) sprintf(buf2, "evil"); player.c: else if (ch->alignment > -900) sprintf(buf2, "ignoble"); player.c: sprintf(buf2, "%d", ch->alignment ); player.c: pager_printf(ch, "|Level: %-4d |Favor: %-10s |Alignment: %-9s |Experience: %-9d|\n\r", player.c: ch->level, buf, buf2, ch->exp ); player.c: send_to_pager(" ----------------------------------------------------------------------------\n\r", ch); player.c: switch (ch->style) { player.c: pager_printf(ch, "|Glory: %-4d |Weight: %-9d |Style: %-13s |Gold: %-14d |\n\r", player.c: ch->pcdata->quest_curr, ch->carry_weight, buf, ch->gold ); player.c: send_to_pager(" ----------------------------------------------------------------------------\n\r", ch); player.c: if ( ch->level < 15 && !IS_PKILL(ch) ) player.c: pager_printf(ch, "| |Hitroll: -------- |Damroll: ----------- |Balance: %-10d |\n\r", player.c: ch->pcdata->balance ); player.c: pager_printf(ch, "| |Hitroll: %-8d |Damroll: %-11d |Balance: %-10d |\n\r", player.c: get_hitroll( ch, FALSE ), get_damroll( ch, FALSE ), ch->pcdata->balance ); player.c: send_to_pager(" ----------------------------------------------------------------------------\n\r", ch); player.c: ch->pcdata->extraname ? ch->pcdata->extraname : "", player.c: ch->name, player.c: ch->pcdata->lastname ? ch->pcdata->lastname : "", player.c: ch->pcdata->title ); player.c: if ( get_trust( ch ) != ch->level && get_trust( ch ) != ch->level2 ) player.c: send_to_pager("----------------------------------------------------------------------------\n\r", ch); player.c: pager_printf(ch, "&CLEVEL: &W%-3d &CRace : &W%-10.10s &CPlayed: &W%d &Chours\n\r", player.c: ch->level, capitalize(get_race(ch)), (get_age(ch) - (race_table[ch->race]->base_age + 17)) * 2); player.c: pager_printf(ch, "&CYEARS: &W%-6d &CClass: &W%-11.11s &CLog In: &W%s\r", player.c: get_age(ch), capitalize(get_class(ch)), ctime(&(ch->logon)) ); player.c: if (ch->level >= 15 player.c: pager_printf(ch, "&CSTR : &W%2.2d&C(&w%2.2d&C) HitRoll: &R%-4d &CSaved: &W%s\r", player.c: get_curr_str(ch), ch->perm_str, get_hitroll( ch, FALSE ), ch->save_time ? ctime(&(ch->save_time)) : "no save this session\n" ); player.c: pager_printf(ch, "&CINT : &W%2.2d&C(&w%2.2d&C) DamRoll: &R%-4d &CTime: &W%s\r", player.c: get_curr_int(ch), ch->perm_int, get_damroll( ch, FALSE ), ctime(¤t_time) ); player.c: get_curr_str(ch), ch->perm_str, ch->save_time ? ctime(&(ch->save_time)) : "no\n" ); player.c: get_curr_int(ch), ch->perm_int, ctime(¤t_time) ); player.c: else if (GET_AC(ch) >= -10) player.c: else if (GET_AC(ch) >= -20) player.c: else if (GET_AC(ch) >= -40) player.c: else if (GET_AC(ch) >= -60) player.c: else if (GET_AC(ch) >= -80) player.c: else if (GET_AC(ch) >= -100) player.c: else if (GET_AC(ch) >= -200) player.c: if (ch->level > 24) player.c: get_curr_wis(ch), ch->perm_wis, buf, GET_AC(ch)); player.c: get_curr_wis(ch), ch->perm_wis, buf); player.c: if (ch->alignment > 900) player.c: else if (ch->alignment > 700) player.c: else if (ch->alignment > 350) player.c: else if (ch->alignment > 100) player.c: else if (ch->alignment > -100) player.c: else if (ch->alignment > -350) player.c: else if (ch->alignment > -700) player.c: else if (ch->alignment > -900) player.c: if (ch->level < 10) player.c: pager_printf(ch, "&CDEX : &W%2.2d&C(&w%2.2d&C) Align: &W%-20.20s &CItems: &W%5.5d &C(&wmax %5.5d&C)\n\r", player.c: get_curr_dex(ch), ch->perm_dex, buf, ch->carry_number, can_carry_n(ch)); player.c: pager_printf(ch, "&CDEX : &W%2.2d&C(&w%2.2d&C) Align: &W%-14.14s &C(&w%+4.4d&C) Items: &W%5.5d &C(&wmax %5.5d&C)\n\r", player.c: get_curr_dex(ch), ch->perm_dex, buf, ch->alignment,ch->carry_number, can_carry_n(ch)); player.c: switch (ch->position) player.c: /* Fighting style support -haus player.c: Commented this out for now, not sure if we'll use them or not -- Scion player.c: pager_printf(ch, "&CCON : &W%2.2d&C(&w%2.2d&C) Pos'n: &W%-21.21s &CWeight: &W%5.5d &C(&wmax %7.7d&C)\n\r", player.c: get_curr_con(ch), ch->perm_con, buf, ch->carry_weight, can_carry_w(ch)); player.c: * Fighting style support -haus player.c: pager_printf(ch, "&CCHA : &W%2.2d&C(&w%2.2d&C) Wimpy: &R%-5d \r\n", player.c: get_curr_cha(ch), ch->perm_cha, ch->wimpy); player.c: /* Commenting styles out for now -- Scion player.c: switch (ch->style) { player.c: pager_printf(ch, "Style: %-10.10s\n\r", buf); */ player.c: get_curr_lck(ch), ch->perm_lck); player.c: ch->pcdata->quest_curr, ch->pcdata->quest_accum, player.c: (IS_SET(ch->pcdata->flags, PCFLAG_PAGERON) ? '*' : ' '), player.c: ch->pcdata->pagerlen); player.c: pager_printf(ch, "&CPRACT: &W%3.3d &CHit: &R%-5d &Cof &r%-5d &CAutoExit[&W%c&C]\n\r", player.c: ch->practice, ch->hit, ch->max_hit, player.c: xIS_SET(ch->act, PLR_AUTOEXIT) ? '*' : ' '); player.c: pager_printf(ch, "&CXP : &G%-10d &CBlood: &R%-5d &Cof &r%-5d &CAutoLoot[&W%c&C]\n\r", player.c: ch->exp, ch->pcdata->condition[COND_BLOODTHIRST], 10 + ch->level, player.c: xIS_SET(ch->act, PLR_AUTOLOOT) ? '*' : ' '); player.c: pager_printf(ch, "&CXP : &G%-10d &CMana: &B%-5d &Cof &b%-5d &CAutoLoot[&W%c&C]\n\r", player.c: ch->exp, ch->mana, ch->max_mana, xIS_SET(ch->act, PLR_AUTOLOOT) ? '*' : ' '); player.c: pager_printf(ch, "&CGOLD : &Y%-10d &CMove: &W%-5d &Cof &w%-5d &CAutoSac [&W%c&C]\n\r", player.c: ch->gold, ch->move, ch->max_move, xIS_SET(ch->act, PLR_AUTOSAC) ? '*' : ' '); player.c: pager_printf( ch, "&CBalance: &Y%-10d\n\r", ch->pcdata->balance ); player.c: if (!IS_NPC(ch) && ch->pcdata->condition[COND_DRUNK] > 10) player.c: if (!IS_NPC(ch) && ch->pcdata->condition[COND_THIRST] == 0) player.c: if (!IS_NPC(ch) && ch->pcdata->condition[COND_FULL] == 0) player.c: if ( ch->position != POS_SLEEPING ) player.c: switch( ch->mental_state / 10 ) player.c: case -10: send_to_pager( "You're barely conscious.\n\r", ch ); break; player.c: case -9: send_to_pager( "You can barely keep your eyes open.\n\r", ch ); break; player.c: case -8: send_to_pager( "You're extremely drowsy.\n\r", ch ); break; player.c: case -7: send_to_pager( "You feel very unmotivated.\n\r", ch ); break; player.c: case -6: send_to_pager( "You feel sedated.\n\r", ch ); break; player.c: case -5: send_to_pager( "You feel sleepy.\n\r", ch ); break; player.c: case -4: send_to_pager( "You feel tired.\n\r", ch ); break; player.c: case -3: send_to_pager( "You could use a rest.\n\r", ch ); break; player.c: case -2: send_to_pager( "You feel a little under the weather.\n\r", ch ); break; player.c: case -1: send_to_pager( "You feel fine.\n\r", ch ); break; player.c: else if ( ch->mental_state >45 ) player.c: else if ( ch->mental_state >25 ) player.c: else if ( ch->mental_state <-35 ) player.c: else if ( ch->mental_state <-25 ) player.c: || (IS_NPC(ch) && ch->speaks == 0) ) player.c: if ( lang_array[iLang] & ch->speaking player.c: || (IS_NPC(ch) && !ch->speaking) ) player.c: if ( ch->pcdata->bestowments && ch->pcdata->bestowments[0] != '\0' ) player.c: ch->pcdata->bestowments ); player.c: if ( ch->morph && ch->morph->morph ) player.c: send_to_pager ("&C----------------------------------------------------------------------------\n\r", ch); player.c: ch->morph->morph->vnum, ch->morph->morph->short_desc, player.c: ch->morph->timer ); player.c: ch->morph->morph->short_desc ); player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: pager_printf(ch, "NonPC DATA: Mkills (&W%5.5d&C) Mdeaths (&W%5.5d&C)\n\r", ch->pcdata->mkills, ch->pcdata->mdeaths ); player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: ch->pcdata->pkills, ch->pcdata->illegal_pk, ch->pcdata->pdeaths ); player.c: if( ch->pcdata->arena_wins != 0 || ch->pcdata->arena_deaths != 0 player.c: || ch->pcdata->arena_kills != 0 ) player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: ch->pcdata->arena_wins, ch->pcdata->arena_kills, player.c: ch->pcdata->arena_deaths); player.c: if (ch->pcdata->clan && ch->pcdata->clan->clan_type != CLAN_ORDER && ch->pcdata->clan->clan_type != CLAN_GUILD ) player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: pager_printf(ch, "CLAN STATS: &W%-14.14s &CClan AvPkills : &W%-5d &CClan NonAvpkills : &W%-5d\n\r", player.c: ch->pcdata->clan->name, ch->pcdata->clan->pkills[5], player.c: (ch->pcdata->clan->pkills[0]+ch->pcdata->clan->pkills[1]+ player.c: ch->pcdata->clan->pkills[2]+ch->pcdata->clan->pkills[3]+ player.c: ch->pcdata->clan->pkills[4]) ); player.c: pager_printf(ch, " &CClan AvPdeaths: &W%-5d &CClan NonAvpdeaths: &W%-5d&C\n\r", player.c: ch->pcdata->clan->pdeaths[5], player.c: ( ch->pcdata->clan->pdeaths[0] + ch->pcdata->clan->pdeaths[1] + player.c: ch->pcdata->clan->pdeaths[2] + ch->pcdata->clan->pdeaths[3] + player.c: ch->pcdata->clan->pdeaths[4] ) ); player.c: if (ch->pcdata->deity) player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: if (ch->pcdata->favor > 2250) player.c: else if (ch->pcdata->favor > 2000) player.c: else if (ch->pcdata->favor > 1750) player.c: else if (ch->pcdata->favor > 1500) player.c: else if (ch->pcdata->favor > 1250) player.c: else if (ch->pcdata->favor > 1000) player.c: else if (ch->pcdata->favor > 750) player.c: else if (ch->pcdata->favor > 250) player.c: else if (ch->pcdata->favor > -250) player.c: else if (ch->pcdata->favor > -750) player.c: else if (ch->pcdata->favor > -1000) player.c: else if (ch->pcdata->favor > -1250) player.c: else if (ch->pcdata->favor > -1500) player.c: else if (ch->pcdata->favor > -1750) player.c: else if (ch->pcdata->favor > -2000) player.c: else if (ch->pcdata->favor > -2250) player.c: pager_printf(ch, "&CDeity: &Y%-20s &CFavor: &G%s&C\n\r", ch->pcdata->deity->name, buf ); player.c: if (ch->pcdata->clan && ch->pcdata->clan->clan_type == CLAN_ORDER ) player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: pager_printf(ch, "&COrder: &W%-20s &COrder Mkills: &W%-6d &COrder MDeaths: &W%-6d\n\r", player.c: ch->pcdata->clan->name, ch->pcdata->clan->mkills, ch->pcdata->clan->mdeaths); player.c: if (ch->pcdata->clan && ch->pcdata->clan->clan_type == CLAN_GUILD ) player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: pager_printf(ch, "&CGuild: &W%-20s &CGuild Mkills: &W%-6d &CGuild MDeaths: &W%-6d\n\r", player.c: ch->pcdata->clan->name, ch->pcdata->clan->mkills, ch->pcdata->clan->mdeaths); player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: xIS_SET(ch->act, PLR_WIZINVIS) ? "*" : " ", ch->pcdata->wizinvis ); player.c: if( ch->pcdata->bamfin[0] == '\0' ) player.c: pager_printf( ch, "&CBamfin : &YNot changed/Switched.\n\r", ch->name ); player.c: pager_printf( ch, "&CBamfin : &Y%s\n\r", ch->pcdata->bamfin ); player.c: if( ch->pcdata->bamfout[0] == '\0' ) player.c: pager_printf( ch, "&CBamfout: &YNot changed/Switched.\n\r", ch->name ); player.c: pager_printf( ch, "&CBamfout: &Y%s\n\r", ch->pcdata->bamfout ); player.c: ch->pcdata->bamfin[0] != '\0' player.c: ? ch->pcdata->bamfin : "Not changed/Switched."); player.c: ch->pcdata->bamfout[0] != '\0' player.c: ? ch->pcdata->bamfout : "Not changed/Switched."); player.c: /* Area Loaded info - Scryn 8/11*/ player.c: if (ch->pcdata->area) player.c: pager_printf(ch, "&CVnums: Room (&W%-5.5d &C- &W%-5.5d&C) Object (&W%-5.5d &C- &W%-5.5d&C) Mob (&W%-5.5d &C- &W%-5.5d&C)\n\r", player.c: ch->pcdata->area->low_r_vnum, ch->pcdata->area->hi_r_vnum, player.c: ch->pcdata->area->low_o_vnum, ch->pcdata->area->hi_o_vnum, player.c: ch->pcdata->area->low_m_vnum, ch->pcdata->area->hi_m_vnum); player.c: pager_printf(ch, "&CArea Loaded [&W%s&C]\n\r", (IS_SET (ch->pcdata->area->status, AREA_LOADED)) ? "yes" : "no"); player.c: if (ch->first_affect) player.c: send_to_pager( "&C----------------------------------------------------------------------------\n\r", ch); player.c: for (paf = ch->first_affect; paf; paf = paf->next) player.c: if ( (sktmp=get_skilltype(paf->type)) == NULL ) player.c: if (ch->level < 20) player.c: pager_printf(ch, "&C[&W%-34.34s&C] ", sktmp->name); player.c: if (ch->level >= 20) player.c: if (paf->modifier == 0) player.c: pager_printf(ch, "&C[&W%-24.24s&C(&w%5d rds&C)] ", player.c: sktmp->name, player.c: paf->duration); player.c: else if (paf->modifier > 999) player.c: pager_printf(ch, "&C[&W%-15.15s &G%7.7s &W(&w%5d rds&W)&C] ", player.c: sktmp->name, player.c: tiny_affect_loc_name(paf->location), player.c: paf->duration); player.c: pager_printf(ch, "&C[&W%-11.11s &w%+-3.3d &G%7.7s &W(&w%5d rds&W)&C] ", player.c: sktmp->name, player.c: paf->modifier, player.c: tiny_affect_loc_name(paf->location), player.c: paf->duration); player.c: pager_printf_color(ch, "\n\r&C%s%s.\n\r", ch->name, ch->pcdata->title); player.c: if ( get_trust( ch ) != ch->level ) player.c: send_to_pager_color("&W----------------------------------------------------------------------------\n\r", ch); player.c: pager_printf_color(ch, "Level: &W%-3d &CRace : &W%-10.10s &CPlayed: &W%d &Chours\n\r", player.c: ch->level, capitalize(get_race(ch)), (get_age(ch) - 17) * 2); player.c: pager_printf_color(ch, "&CYears: &W%-6d &CClass: &W%-11.11s &CLog In: %s\r", player.c: get_age(ch), capitalize(get_class(ch)), ctime(&(ch->logon)) ); player.c: if (ch->level >= 15 player.c: pager_printf_color(ch, "&CSTR : &W%2.2d&C(&w%2.2d&C) HitRoll: &R%-4d &CSaved: %s\r", player.c: get_curr_str(ch), ch->perm_str, get_hitroll( ch, FALSE ), ch->save_time ? ctime(&(ch->save_time)) : "no save this session\n" ); player.c: pager_printf_color(ch, "&CINT : &W%2.2d&C(&w%2.2d&C) DamRoll: &R%-4d &CTime: %s\r", player.c: get_curr_int(ch), ch->perm_int, get_damroll( ch, FALSE ), ctime(¤t_time) ); player.c: get_curr_str(ch), ch->perm_str, ch->save_time ? ctime(&(ch->save_time)) : "no\n" ); player.c: get_curr_int(ch), ch->perm_int, ctime(¤t_time) ); player.c: else if (GET_AC(ch) >= -10) player.c: else if (GET_AC(ch) >= -20) player.c: else if (GET_AC(ch) >= -40) player.c: else if (GET_AC(ch) >= -60) player.c: else if (GET_AC(ch) >= -80) player.c: else if (GET_AC(ch) >= -100) player.c: else if (GET_AC(ch) >= -200) player.c: if (ch->level > 24) player.c: pager_printf_color(ch, "&CWIS : &W%2.2d&C(&w%2.2d&C) Armor: &W%-d; %s\n\r", player.c: get_curr_wis(ch), ch->perm_wis, GET_AC(ch), buf); player.c: get_curr_wis(ch), ch->perm_wis, buf); player.c: if (ch->alignment > 900) player.c: else if (ch->alignment > 700) player.c: else if (ch->alignment > 350) player.c: else if (ch->alignment > 100) player.c: else if (ch->alignment > -100) player.c: else if (ch->alignment > -350) player.c: else if (ch->alignment > -700) player.c: else if (ch->alignment > -900) player.c: if (ch->level < 10) player.c: pager_printf_color(ch, "&CDEX : &W%2.2d&C(&w%2.2d&C) Align: &W%-20.20s &CItems: &W%d (max %d)\n\r", player.c: get_curr_dex(ch), ch->perm_dex, buf, ch->carry_number, can_carry_n(ch)); player.c: pager_printf_color(ch, "&CDEX : &W%2.2d&C(&w%2.2d&C) Align: &W%4d; %-14.14s &CItems: &W%d &w(max %d)\n\r", player.c: get_curr_dex(ch), ch->perm_dex, ch->alignment, buf, ch->carry_number, can_carry_n(ch)); player.c: switch (ch->position) player.c: sprintf(buf, "fighting (evasive)"); /* Fighting style support -haus */ player.c: pager_printf_color(ch, "&CCON : &W%2.2d&C(&w%2.2d&C) Pos'n: &W%-21.21s &CWeight: &W%d &w(max %d)\n\r", player.c: get_curr_con(ch), ch->perm_con, buf, ch->carry_weight, can_carry_w(ch)); player.c: * Fighting style support -haus player.c: pager_printf_color(ch, "&CCHA : &W%2.2d&C(&w%2.2d&C) Wimpy: &Y%-5d ", player.c: get_curr_cha(ch), ch->perm_cha, ch->wimpy); player.c: switch (ch->style) { player.c: pager_printf_color(ch, "\n\r&CLCK : &W%2.2d&C(&w%2.2d&C) Style: &W%-10.10s\n\r", player.c: get_curr_lck(ch), ch->perm_lck, buf ); player.c: ch->pcdata->quest_curr, ch->pcdata->quest_accum ); player.c: pager_printf_color(ch, "&CPRACT: &W%3d &CHitpoints: &G%-5d &Cof &g%5d &CPager: (&W%c&C) &W%3d &CAutoExit(&W%c&C)\n\r", player.c: ch->practice, ch->hit, ch->max_hit, player.c: IS_SET(ch->pcdata->flags, PCFLAG_PAGERON) ? 'X' : ' ', player.c: ch->pcdata->pagerlen, xIS_SET(ch->act, PLR_AUTOEXIT) ? 'X' : ' '); player.c: pager_printf_color(ch, "&CEXP : &W%-9d &CBlood: &R%-5d &Cof &r%5d &CMKills: &W%5d &CAutoLoot(&W%c&C)\n\r", player.c: ch->exp, ch->pcdata->condition[COND_BLOODTHIRST], 10 + ch->level, ch->pcdata->mkills, player.c: xIS_SET(ch->act, PLR_AUTOLOOT) ? 'X' : ' '); player.c: else if (ch->class == CLASS_WARRIOR && ch->level2 == -1) player.c: pager_printf_color(ch, "&CEXP : &W%-9d &CMKills: &W%5d &CAutoLoot(&W%c&C)\n\r", player.c: ch->exp, ch->pcdata->mkills, xIS_SET(ch->act, PLR_AUTOLOOT) ? 'X' : ' '); player.c: pager_printf_color(ch, "&CEXP : &W%-9d &CMana: &B%-5d &Cof &b%5d &CMKills: &W%5d &CAutoLoot(&W%c&C)\n\r", player.c: ch->exp, ch->mana, ch->max_mana, ch->pcdata->mkills, xIS_SET(ch->act, PLR_AUTOLOOT) ? 'X' : ' '); player.c: pager_printf_color(ch, "&CGOLD : &Y%-10d &CMove: &W%-5d &Cof &w%5d &CMdeaths: &W%5d &CAutoSac (&W%c&C)\n\r", player.c: ch->gold, ch->move, ch->max_move, ch->pcdata->mdeaths, xIS_SET(ch->act, PLR_AUTOSAC) ? 'X' : ' '); player.c: if (!IS_NPC(ch) && ch->pcdata->condition[COND_DRUNK] > 10) player.c: if (!IS_NPC(ch) && ch->pcdata->condition[COND_THIRST] == 0) player.c: if (!IS_NPC(ch) && ch->pcdata->condition[COND_FULL] == 0) player.c: if ( ch->position != POS_SLEEPING ) player.c: switch( ch->mental_state / 10 ) player.c: case -10: send_to_pager( "You're barely conscious.\n\r", ch ); break; player.c: case -9: send_to_pager( "You can barely keep your eyes open.\n\r", ch ); break; player.c: case -8: send_to_pager( "You're extremely drowsy.\n\r", ch ); break; player.c: case -7: send_to_pager( "You feel very unmotivated.\n\r", ch ); break; player.c: case -6: send_to_pager( "You feel sedated.\n\r", ch ); break; player.c: case -5: send_to_pager( "You feel sleepy.\n\r", ch ); break; player.c: case -4: send_to_pager( "You feel tired.\n\r", ch ); break; player.c: case -3: send_to_pager( "You could use a rest.\n\r", ch ); break; player.c: case -2: send_to_pager( "You feel a little under the weather.\n\r", ch ); break; player.c: case -1: send_to_pager( "You feel fine.\n\r", ch ); break; player.c: if ( ch->mental_state >45 ) player.c: if ( ch->mental_state >25 ) player.c: if ( ch->mental_state <-35 ) player.c: if ( ch->mental_state <-25 ) player.c: || (IS_NPC(ch) && ch->speaks == 0) ) player.c: if ( lang_array[iLang] & ch->speaking player.c: || (IS_NPC(ch) && !ch->speaking) ) player.c: if ( ch->pcdata->bestowments && ch->pcdata->bestowments[0] != '\0' ) player.c: ch->pcdata->bestowments ); player.c: if ( ch->morph && ch->morph->morph ) player.c: send_to_pager_color("&W----------------------------------------------------------------------------&C\n\r", ch); player.c: ch->morph->morph->vnum, ch->morph->morph->short_desc, player.c: ch->morph->timer player.c: ch->morph->morph->short_desc ); player.c: send_to_pager_color("&W----------------------------------------------------------------------------&C\n\r", ch); player.c: send_to_pager_color("&W----------------------------------------------------------------------------&C\n\r", ch); player.c: ch->pcdata->pkills, ch->pcdata->illegal_pk, ch->pcdata->pdeaths ); player.c: if (ch->pcdata->clan && ch->pcdata->clan->clan_type != CLAN_ORDER && ch->pcdata->clan->clan_type != CLAN_GUILD ) player.c: send_to_pager_color( "&W----------------------------------------------------------------------------&C\n\r", ch); player.c: pager_printf_color(ch, "&CCLAN STATS: &W%-14.14s &CClan AvPkills : &W%-5d &CClan NonAvpkills : &W%-5d\n\r", player.c: ch->pcdata->clan->name, ch->pcdata->clan->pkills[5], player.c: (ch->pcdata->clan->pkills[0]+ch->pcdata->clan->pkills[1]+ player.c: ch->pcdata->clan->pkills[2]+ch->pcdata->clan->pkills[3]+ player.c: ch->pcdata->clan->pkills[4]) ); player.c: pager_printf_color(ch, "&C Clan AvPdeaths: &W%-5d &CClan NonAvpdeaths: &W%-5d\n\r", player.c: ch->pcdata->clan->pdeaths[5], player.c: ( ch->pcdata->clan->pdeaths[0] + ch->pcdata->clan->pdeaths[1] + player.c: ch->pcdata->clan->pdeaths[2] + ch->pcdata->clan->pdeaths[3] + player.c: ch->pcdata->clan->pdeaths[4] ) ); player.c: if (ch->pcdata->deity) player.c: send_to_pager_color( "&W----------------------------------------------------------------------------&C\n\r", ch); player.c: if (ch->pcdata->favor > 2250) player.c: else if (ch->pcdata->favor > 2000) player.c: else if (ch->pcdata->favor > 1750) player.c: else if (ch->pcdata->favor > 1500) player.c: else if (ch->pcdata->favor > 1250) player.c: else if (ch->pcdata->favor > 1000) player.c: else if (ch->pcdata->favor > 750) player.c: else if (ch->pcdata->favor > 250) player.c: else if (ch->pcdata->favor > -250) player.c: else if (ch->pcdata->favor > -750) player.c: else if (ch->pcdata->favor > -1000) player.c: else if (ch->pcdata->favor > -1250) player.c: else if (ch->pcdata->favor > -1500) player.c: else if (ch->pcdata->favor > -1750) player.c: else if (ch->pcdata->favor > -2000) player.c: else if (ch->pcdata->favor > -2250) player.c: pager_printf_color(ch, "&CDeity: &W%-20s &CFavor: &W%s&C\n\r", ch->pcdata->deity->name, buf ); player.c: if (ch->pcdata->clan && ch->pcdata->clan->clan_type == CLAN_ORDER ) player.c: send_to_pager_color( "&W----------------------------------------------------------------------------&C\n\r", ch); player.c: pager_printf_color(ch, "&COrder: &W%-20s &COrder Mkills: &W%-6d &COrder MDeaths: &W%-6d\n\r", player.c: ch->pcdata->clan->name, ch->pcdata->clan->mkills, ch->pcdata->clan->mdeaths); player.c: if (ch->pcdata->clan && ch->pcdata->clan->clan_type == CLAN_GUILD ) player.c: send_to_pager_color( "&W----------------------------------------------------------------------------&C\n\r", ch); player.c: pager_printf_color(ch, "&CGuild: &W%-20s &CGuild Mkills: &W%-6d &CGuild MDeaths: &W%-6d\n\r", player.c: ch->pcdata->clan->name, ch->pcdata->clan->mkills, ch->pcdata->clan->mdeaths); player.c: if (ch->first_affect && !str_cmp( arg, "affects" ) ) player.c: send_to_pager_color( "&W----------------------------------------------------------------------------&C\n\r", ch); player.c: for (paf = ch->first_affect; paf; paf = paf->next) player.c: if ( (sktmp=get_skilltype(paf->type)) == NULL ) player.c: if (ch->level < 20) player.c: pager_printf_color(ch, "&C[&W%-34.34s&C] ", sktmp->name); player.c: if (ch->level >= 20) player.c: if (paf->modifier == 0) player.c: pager_printf_color(ch, "&C[&W%-24.24s;%5d &Crds] ", player.c: sktmp->name, player.c: paf->duration); player.c: if (paf->modifier > 999) player.c: pager_printf_color(ch, "&C[&W%-15.15s; %7.7s;%5d &Crds] ", player.c: sktmp->name, player.c: tiny_affect_loc_name(paf->location), player.c: paf->duration); player.c: pager_printf_color(ch, "&C[&W%-11.11s;%+-3.3d %7.7s;%5d &Crds] ", player.c: sktmp->name, player.c: paf->modifier, player.c: tiny_affect_loc_name(paf->location), player.c: paf->duration); player.c:// Merely eye-candy, but why not? -- Kratas player.c: if( (x-ex_amount) % 3 == 0 && x > 0 ) player.c: sprintf( extrabuf, "%s ", ch->pcdata->extraname ); player.c: sprintf( buf+strlen(buf), "%s%s%s\n\r", (ch->pcdata->extraname[0] != '\0') player.c: ? extrabuf : "", ch->name, ch->pcdata->title ); player.c: sprintf( buf+strlen(buf), "&gLevel &W:&w &B%-4d &gRace &W:&w &B%-13s&gClass &W:&w &B%s\n\r", player.c: ch->level, get_race(ch), capitalize(get_class(ch)) ); player.c: if( ch->level2 != -1 ) player.c: sprintf( buf+strlen(buf), "&gLevel2&W:&w &B%-4d &gClass2 &W:&w &B%s\n\r", player.c: ch->level2, capitalize(get_class2(ch)) ); player.c: sprintf( buf+strlen(buf), "&gAge &W:&w &B%-4d &gHitroll &W:&w &B%-3d &gDamroll &W:&w &B%d\n\r", player.c: sprintf( buf+strlen(buf), "&gStr &W:&w &B%-2d&W(&b%-2d&W) &gInt &W:&w &B%-2d&W(&b%-2d&W) &gWis &W:&w &B%-2d&W(&b%-2d&W)\n\r", player.c: get_curr_str(ch), ch->perm_str, get_curr_int(ch), ch->perm_int, player.c: get_curr_wis(ch), ch->perm_wis ); player.c: sprintf( buf+strlen(buf), "&gDex &W:&w &B%-2d&W(&b%-2d&W) &gCon &W:&w &B%-2d&W(&b%-2d&W) &gCha &W:&w &B%-2d&W(&b%-2d&W)\n\r", player.c: get_curr_dex(ch), ch->perm_dex, get_curr_con(ch), ch->perm_con, player.c: get_curr_cha(ch), ch->perm_cha ); player.c: sprintf( buf+strlen(buf), "&gLuck &W:&w &B%-2d&W(&b%-2d&W) &gPractices&W:&w &B%-4d &gPlayed &W:&w &B%ld&w &ghours&w\n\r\n\r", player.c: get_curr_lck(ch), ch->perm_lck, ch->practice, ((ch->played + (current_time - ch->logon)) / 3600) ); player.c: sprintf( buf+strlen(buf), "&gExperience&W:&w &B%-11s ", player.c: in_comma(ch->exp) ); player.c: sprintf( buf+strlen(buf), "&W(&b%s TNL&W)&w\n\r", in_comma(exp_level(ch, ch->level+1) - ch->exp) ); player.c: if (ch->alignment > 900) player.c: else if (ch->alignment > 700) player.c: else if (ch->alignment > 350) player.c: else if (ch->alignment > 100) player.c: else if (ch->alignment > -100) player.c: else if (ch->alignment > -350) player.c: else if (ch->alignment > -700) player.c: else if (ch->alignment > -900) player.c: sprintf( buf+strlen(buf), "&gAlign&W:&w &B%-4d &W(&G%-9s&W) &gAC&W:&w &B%-4d ", player.c: ch->alignment, extrabuf, GET_AC(ch) ); player.c: switch (ch->position) player.c: strcpy(extrabuf, "Fighting (evasive)"); /* Fighting style support -haus */ player.c: sprintf( buf+strlen(buf), "&OGold&W:&w &Y%s&w with ", in_comma(ch->gold) ); player.c: sprintf( buf+strlen(buf), "&Y%s&w in the bank.\n\r\n\r", in_comma(ch->pcdata->balance) ); player.c: sprintf( buf+strlen(buf), "&rHitpoints&w: %-8d &rof&w %-8d\n\r", ch->hit, ch->max_hit ); player.c: sprintf( buf+strlen(buf), "&b Mana&w: %-8d &bof&w %-8d\n\r", ch->mana, ch->max_mana ); player.c: sprintf( buf+strlen(buf), "&O Move&w: %-8d &Oof&w %-8d\n\r\n\r", ch->move, ch->max_move ); player.c: if( ch->pcdata->area ) player.c: IS_SET( ch->pcdata->area->status, AREA_LOADED ) ? "is" : "is not" ); player.c: xIS_SET(ch->act, PLR_WIZINVIS) ? "are" : "are not" ); player.c: ch->pcdata->wizinvis ); player.c: if( ch->pcdata->bamfin[0] == '\0' ) player.c: sprintf( buf+strlen(buf), "&CBamfin &W:&w %s appears in a swirling mist.\n\r", ch->name ); player.c: sprintf( buf+strlen(buf), "&CBamfin &W:&w %s\n\r", ch->pcdata->bamfin ); player.c: if( ch->pcdata->bamfout[0] == '\0' ) player.c: sprintf( buf+strlen(buf), "&CBamfout&W:&w %s appears in a swirling mist.\n\r", ch->name ); player.c: sprintf( buf+strlen(buf), "&CBamfout&W:&w %s\n\r", ch->pcdata->bamfout ); player.c: sprintf( buf+strlen(buf), "Rooms: (&C%-5.5d&w - &C%-5.5d&w) Objects: (&C%-5.5d&w - &C%-5.5d&w) Mobs: (&C%-5.5d&w - &C%-5.5d&w)\n\r", player.c: ch->pcdata->area->low_r_vnum, ch->pcdata->area->hi_r_vnum, player.c: ch->pcdata->area->low_o_vnum, ch->pcdata->area->hi_o_vnum, player.c: ch->pcdata->area->low_m_vnum, ch->pcdata->area->hi_m_vnum); player.c: xIS_SET(ch->act, PLR_WIZINVIS) ? "are" : "are not" ); player.c: ch->pcdata->wizinvis ); player.c: if( ch->pcdata->bamfin[0] == '\0' ) player.c: sprintf( buf+strlen(buf), "&CBamfin &W:&w %s appears in a swirling mist.\n\r", ch->name ); player.c: sprintf( buf+strlen(buf), "&CBamfin &W:&w %s\n\r", ch->pcdata->bamfin ); player.c: if( ch->pcdata->bamfout[0] == '\0' ) player.c: sprintf( buf+strlen(buf), "&CBamfout&W:&w %s appears in a swirling mist.\n\r", ch->name ); player.c: sprintf( buf+strlen(buf), "&CBamfout&W:&w %s\n\r", ch->pcdata->bamfout ); player.c: if ( ch->class < MAX_NPC_CLASS && ch->class >= 0) player.c: return ( npc_class[ch->class] ); player.c:/* Returns second class -- Kratas */ player.c: if ( ch->class2 < MAX_NPC_CLASS && ch->class2 >= 0) player.c: return ( npc_class[ch->class2] ); player.c: if( ch->race < MAX_RACE && ch->race >= 0) player.c: return (race_table[ch->race]->race_name); player.c: if ( ch->race < MAX_NPC_RACE && ch->race >= 0) player.c: return ( npc_race[ch->race] ); player.c: ch->name, player.c: IS_NPC(ch) ? "" : ch->pcdata->title, player.c: ch->level, player.c: (get_age(ch) - 17) * 2 ); player.c: if ( get_trust( ch ) != ch->level ) player.c: if ( IS_NPC(ch) && xIS_SET(ch->act, ACT_MOBINVIS) ) player.c: ch->mobinvis); player.c: ch->hit, ch->max_hit, player.c: ch->pcdata->condition[COND_BLOODTHIRST], 10 + ch->level, player.c: ch->move, ch->max_move, player.c: ch->practice ); player.c: ch->hit, ch->max_hit, player.c: ch->mana, ch->max_mana, player.c: ch->move, ch->max_move, player.c: ch->practice ); player.c: ch->carry_number, can_carry_n(ch), player.c: ch->carry_weight, can_carry_w(ch) ); player.c: ch->exp, ch->gold ); player.c: ch->pcdata->quest_accum, ch->pcdata->quest_curr ); player.c: (!IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOEXIT)) ? "yes" : "no", player.c: (!IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOLOOT)) ? "yes" : "no", player.c: (!IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOSAC) ) ? "yes" : "no", player.c: (!IS_NPC(ch) && xIS_SET(ch->act, PLR_AUTOGOLD)) ? "yes" : "no" ); player.c: pager_printf( ch, "Wimpy set to %d hit points.\n\r", ch->wimpy ); player.c: if ( ch->pcdata->condition[COND_DRUNK] > 10 ) player.c: if ( ch->pcdata->condition[COND_THIRST] == 0 ) player.c: if ( ch->pcdata->condition[COND_FULL] == 0 ) player.c: switch( ch->mental_state / 10 ) player.c: case -10: send_to_pager( "You're barely conscious.\n\r", ch ); break; player.c: case -9: send_to_pager( "You can barely keep your eyes open.\n\r", ch ); break; player.c: case -8: send_to_pager( "You're extremely drowsy.\n\r", ch ); break; player.c: case -7: send_to_pager( "You feel very unmotivated.\n\r", ch ); break; player.c: case -6: send_to_pager( "You feel sedated.\n\r", ch ); break; player.c: case -5: send_to_pager( "You feel sleepy.\n\r", ch ); break; player.c: case -4: send_to_pager( "You feel tired.\n\r", ch ); break; player.c: case -3: send_to_pager( "You could use a rest.\n\r", ch ); break; player.c: case -2: send_to_pager( "You feel a little under the weather.\n\r", ch ); break; player.c: case -1: send_to_pager( "You feel fine.\n\r", ch ); break; player.c: switch ( ch->position ) player.c: if ( ch->level >= 25 ) player.c: else if ( GET_AC(ch) >= - 20 ) send_to_pager( "well armored.\n\r", ch ); player.c: else if ( GET_AC(ch) >= - 40 ) send_to_pager( "strongly armored.\n\r", ch ); player.c: else if ( GET_AC(ch) >= - 60 ) send_to_pager( "heavily armored.\n\r", ch ); player.c: else if ( GET_AC(ch) >= - 80 ) send_to_pager( "superbly armored.\n\r", ch ); player.c: else if ( GET_AC(ch) >= -100 ) send_to_pager( "divinely armored.\n\r", player.c: if ( ch->level >= 15 player.c: if ( ch->level >= 10 ) player.c: pager_printf( ch, "Alignment: %d. ", ch->alignment ); player.c: if ( ch->alignment > 900 ) send_to_pager( "angelic.\n\r", ch ); player.c: else if ( ch->alignment > 700 ) send_to_pager( "saintly.\n\r", ch ); player.c: else if ( ch->alignment > 350 ) send_to_pager( "good.\n\r", ch ); player.c: else if ( ch->alignment > 100 ) send_to_pager( "kind.\n\r", ch ); player.c: else if ( ch->alignment > -100 ) send_to_pager( "neutral.\n\r", ch ); player.c: else if ( ch->alignment > -350 ) send_to_pager( "mean.\n\r", ch ); player.c: else if ( ch->alignment > -700 ) send_to_pager( "evil.\n\r", ch ); player.c: else if ( ch->alignment > -900 ) send_to_pager( "demonic.\n\r", ch ); player.c: if ( ch->first_affect ) player.c: for ( paf = ch->first_affect; paf; paf = paf->next ) player.c: if ( (skill=get_skilltype(paf->type)) != NULL ) player.c: pager_printf( ch, "Spell: '%s'", skill->name ); player.c: if ( ch->level >= 20 ) player.c: affect_loc_name( paf->location ), player.c: paf->modifier, player.c: paf->duration ); player.c: ch->pcdata->wizinvis, player.c: xIS_SET(ch->act, PLR_WIZINVIS) ? "ON" : "OFF" ); player.c: if ( ch->pcdata->r_range_lo && ch->pcdata->r_range_hi ) player.c: pager_printf( ch, "Room Range: %d - %d\n\r", ch->pcdata->r_range_lo, player.c: ch->pcdata->r_range_hi ); player.c: if ( ch->pcdata->o_range_lo && ch->pcdata->o_range_hi ) player.c: pager_printf( ch, "Obj Range : %d - %d\n\r", ch->pcdata->o_range_lo, player.c: ch->pcdata->o_range_hi ); player.c: if ( ch->pcdata->m_range_lo && ch->pcdata->m_range_hi ) player.c: pager_printf( ch, "Mob Range : %d - %d\n\r", ch->pcdata->m_range_lo, player.c: ch->pcdata->m_range_hi ); player.c:/* -Thoric player.c: if ( ch->level == 1 ) player.c: lowlvl = UMAX( 2, ch->level - 5 ); player.c: hilvl = URANGE( ch->level, ch->level + 5, MAX_LEVEL ); player.c: sprintf( buf, " exp (You have: %14s)", in_comma(ch->exp) ); player.c: sprintf( buf2," exp (To level: %14s)", in_comma(exp_level(ch, ch->level+1) - ch->exp) ); player.c: (x == ch->level) ? buf : (x == ch->level+1) ? buf2 : " exp" ); player.c: if ( !ch->pcdata->deity ) { player.c: if ( ch->pcdata->favor < ch->level*2 ) { player.c: pager_printf( ch, "%s appears in a vision, revealing that your remains... ", ch->pcdata->deity->name ); player.c: sprintf( buf, "the corpse of %s", ch->name ); player.c: for ( obj = first_object; obj; obj = obj->next ) { player.c: if ( obj->in_room && !str_cmp( buf, obj->short_descr ) player.c: && ( obj->pIndexData->vnum == 11 ) ) { player.c: pager_printf( ch, "\n\r - at %s will endure for %d ticks", player.c: obj->in_room->name, player.c: obj->timer ); player.c: ch->pcdata->favor -= ch->level*2; player.c:/* Affects-at-a-glance, Blodkai */ player.c: !xIS_EMPTY(ch->affected_by) ? affect_bit_name( &ch->affected_by ) : "nothing" ); player.c: if ( ch->level >= 20 ) player.c: if ( ch->resistant > 0 ) player.c: ch_printf_color( ch, "&C%s\n\r", flag_string(ch->resistant, ris_flags) ); player.c: if ( ch->immune > 0 ) player.c: ch_printf_color( ch, "&C%s\n\r", flag_string(ch->immune, ris_flags) ); player.c: if ( ch->susceptible > 0 ) player.c: ch_printf_color( ch, "&C%s\n\r", flag_string(ch->susceptible, ris_flags) ); player.c: if ( !ch->first_affect ) player.c: for (paf = ch->first_affect; paf; paf = paf->next) player.c: if ( (skill=get_skilltype(paf->type)) != NULL ) player.c: if ( ch->level >= 20 player.c: if (paf->duration < 25 ) set_char_color( AT_WHITE, ch ); player.c: if (paf->duration < 6 ) set_char_color( AT_WHITE + AT_BLINK, ch ); player.c: ch_printf( ch, "(%5d) ", paf->duration ); player.c: ch_printf( ch, "%-18s\n\r", skill->name ); player.c: show_list_to_char( ch->first_carrying, ch, TRUE, TRUE ); player.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) player.c: if ( obj->wear_loc == iWear ) player.c: if( (!IS_NPC(ch)) && (ch->race>0) && (ch->race<MAX_RACE)) player.c: send_to_char(race_table[ch->race]->where_name[iWear], ch); player.c: switch(obj->item_type) player.c: cond = (int) ((10 * obj->value[0] / obj->value[1]) ); player.c: cond = (int) ((10* obj->value[0] / 12) ); player.c: cond = -1; player.c: STRFREE( ch->pcdata->title ); player.c: ch->pcdata->title = STRALLOC( buf ); player.c: STRFREE( ch->pcdata->extraname ); player.c: ch->pcdata->extraname = STRALLOC( buf ); player.c: STRFREE( ch->pcdata->lastname ); player.c: ch->pcdata->lastname = STRALLOC( buf ); player.c: if ( ch->level < 5 ) player.c: if ( IS_SET( ch->pcdata->flags, PCFLAG_NOTITLE )) player.c: /* This should be allowed to be blank, but if you don't like it uncomment here -- Scion player.c: if ( ch->level < 5 ) player.c: if ( IS_SET( ch->pcdata->flags, PCFLAG_NOTITLE )) player.c:/* These should be allowed to be blank, but if you don't like it uncomment this -- Scion player.c: if ( ch->level < 5 ) player.c: if ( IS_SET( ch->pcdata->flags, PCFLAG_NOTITLE )) player.c:/* Should be able to make these blank, but if you don't like it, uncomment this. -- Scion player.c: if ( ch->level < 5 ) player.c: if ( !ch->pcdata->homepage ) player.c: ch->pcdata->homepage = str_dup( "" ); player.c: show_tilde( ch->pcdata->homepage ) ); player.c: if ( ch->pcdata->homepage ) player.c: DISPOSE(ch->pcdata->homepage); player.c: ch->pcdata->homepage = str_dup(""); player.c: if ( ch->pcdata->homepage ) player.c: DISPOSE(ch->pcdata->homepage); player.c: ch->pcdata->homepage = str_dup(buf); player.c: if ( ch->level < 5 ) player.c: if ( !ch->pcdata->email ) player.c: ch->pcdata->email = str_dup( "" ); player.c: show_tilde( ch->pcdata->email ) ); player.c: if ( ch->pcdata->email ) player.c: DISPOSE(ch->pcdata->email); player.c: ch->pcdata->email = str_dup(""); player.c: if ( ch->pcdata->email ) player.c: DISPOSE(ch->pcdata->email); player.c: ch->pcdata->email = str_dup(buf); player.c: * Set your personal description -Thoric player.c: if ( !ch->desc ) player.c: switch( ch->substate ) player.c: ch->substate = SUB_PERSONAL_DESC; player.c: ch->dest_buf = ch; player.c: start_editing( ch, ch->description ); player.c: STRFREE( ch->description ); player.c: ch->description = copy_buffer( ch ); player.c:/* Ripped off do_description for whois bio's -- Scryn*/ player.c: if ( ch->level < 5 ) player.c: if ( !ch->desc ) player.c: switch( ch->substate ) player.c: ch->substate = SUB_PERSONAL_BIO; player.c: ch->dest_buf = ch; player.c: start_editing( ch, ch->pcdata->bio ); player.c: STRFREE( ch->pcdata->bio ); player.c: ch->pcdata->bio = copy_buffer( ch ); player.c: ch->hit, ch->max_hit, ch->pcdata->condition[COND_BLOODTHIRST], player.c: 10 + ch->level, ch->move, ch->max_move, ch->exp ); player.c: ch->hit, ch->max_hit, ch->pcdata->condition[COND_BLOODTHIRST], player.c: 10 + ch->level, ch->move, ch->max_move, ch->exp ); player.c: ch->hit, ch->max_hit, ch->mana, ch->max_mana, player.c: ch->move, ch->max_move, ch->exp ); player.c: ch->hit, ch->max_hit, ch->mana, ch->max_mana, player.c: ch->move, ch->max_move, ch->exp ); player.c: ch_printf( ch, "Your base stats: %-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.\n\r", player.c: ch->perm_str, ch->perm_wis, ch->perm_int, ch->perm_dex, player.c: ch->perm_con, ch->perm_cha, ch->perm_lck ); player.c: sprintf( buf, "$n's base stats: %-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.", player.c: ch->perm_str, ch->perm_wis, ch->perm_int, ch->perm_dex, player.c: ch->perm_con, ch->perm_cha, ch->perm_lck ); player.c: ch_printf( ch, "Your current stats: %-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.\n\r", player.c: sprintf( buf, "$n's current stats: %-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.", player.c: ch->hit, ch->max_hit, ch->pcdata->condition[COND_BLOODTHIRST], player.c: 10 + ch->level, ch->move, ch->max_move, ch->exp ); player.c: ch->hit, ch->max_hit, ch->mana, ch->max_mana, player.c: ch->move, ch->max_move, ch->exp ); player.c: ch_printf( ch, "Your base stats: %-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.\n\r", player.c: ch->perm_str, ch->perm_wis, ch->perm_int, ch->perm_dex, player.c: ch->perm_con, ch->perm_cha, ch->perm_lck ); player.c: ch_printf( ch, "Your current stats: %-2d str %-2d wis %-2d int %-2d dex %-2d con %-2d cha %-2d lck.\n\r", player.c: if ( IS_NPC( ch ) && ch->fighting ) player.c: ch->hit, ch->max_hit, player.c: ch->pcdata->condition[COND_BLOODTHIRST], 10 + ch->level, player.c: ch->move, ch->max_move, player.c: ch->exp ); player.c: ch->hit, ch->max_hit, player.c: ch->mana, ch->max_mana, player.c: ch->move, ch->max_move, player.c: ch->exp ); player.c: ch->hit, ch->max_hit, player.c: ch->pcdata->condition[COND_BLOODTHIRST], 10 + ch->level, player.c: ch->move, ch->max_move, player.c: ch->exp ); player.c: ch->hit, ch->max_hit, player.c: ch->mana, ch->max_mana, player.c: ch->move, ch->max_move, player.c: ch->exp ); player.c: ch_printf( ch, "%s\n\r", !str_cmp( ch->pcdata->fprompt, "" ) ? "(default prompt)" player.c: : ch->pcdata->fprompt ); player.c: ch_printf( ch, "%s\n\r", !str_cmp( ch->pcdata->fprompt, "" ) ? "(default prompt)" player.c: : ch->pcdata->fprompt ); player.c: if (ch->pcdata->fprompt) player.c: STRFREE(ch->pcdata->fprompt); player.c: /* Can add a list of pre-set prompts here if wanted.. perhaps player.c: 'prompt 1' brings up a different, pre-set prompt */ player.c: ch->pcdata->fprompt = STRALLOC(""); player.c: ch->pcdata->fprompt = STRALLOC(argument); player.c: ch_printf( ch, "%s\n\r", !str_cmp( ch->pcdata->prompt, "" ) ? "(default prompt)" player.c: : ch->pcdata->prompt ); player.c: ch_printf( ch, "%s\n\r", !str_cmp( ch->pcdata->prompt, "" ) ? "(default prompt)" player.c: : ch->pcdata->prompt ); player.c: if (ch->pcdata->prompt) player.c: STRFREE(ch->pcdata->prompt); player.c: /* Can add a list of pre-set prompts here if wanted.. perhaps player.c: 'prompt 1' brings up a different, pre-set prompt */ player.c: ch->pcdata->prompt = STRALLOC(""); player.c: ch->pcdata->prompt = STRALLOC(argument); player.c: for( tmp = ch->in_room->first_person ; tmp ; tmp = tmp->next_in_room ) player.c: if( IS_NPC( tmp ) && xIS_SET( tmp->act, ACT_TRAIN ) ) player.c: * -- Kratas player.c: sprintf( buf, "%-15s%-15s%-15s%-15s%-15s\n\r" player.c: "%-15s%-15s%-15s%-15s%-15s\n\r", player.c: int max = (class_table[ch->class]->attr_prime == APPLY_STR) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_str + 1 > max ) player.c: ch->name ); player.c: ch->perm_str++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: int max = (class_table[ch->class]->attr_prime == APPLY_INT) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_int + 1 > max ) player.c: ch->name ); player.c: ch->perm_int++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: int max = (class_table[ch->class]->attr_prime == APPLY_WIS) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_wis + 1 > max ) player.c: ch->name ); player.c: ch->perm_wis++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: int max = (class_table[ch->class]->attr_prime == APPLY_DEX) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_dex + 1 > max ) player.c: ch->name ); player.c: ch->perm_dex++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: int max = (class_table[ch->class]->attr_prime == APPLY_CON) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_con + 1 > max ) player.c: ch->name ); player.c: ch->perm_con++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: int max = (class_table[ch->class]->attr_prime == APPLY_CHA) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_cha + 1 > max ) player.c: ch->name ); player.c: ch->perm_cha++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: int max = (class_table[ch->class]->attr_prime == APPLY_LCK) ? player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: if( ch->perm_lck + 1 > max ) player.c: ch->name ); player.c: ch->perm_lck++; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: ch->max_hit += 5; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: ch->max_mana += 5; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: if( ch->practice - 10 < 0 ) player.c: ch->name ); player.c: ch->max_move += 5; player.c: ch->practice -= 10; player.c: sprintf( buf, "%s Enjoy!", ch->name ); player.c: * --TRI player.c: int gold = ch->gold; player.c: // int mgold = (ch->level * 2000000); player.c: // int mgold = (ch->level * 100000); player.c: int tax = (ch->gold * .05); player.c: ch->level, mgold ); player.c: tax, ch->gold ); player.c: (ch->gold - tax)); player.c: ch->gold -= tax; player.c: int banktax = ch->pcdata->balance * .05; player.c: int balanceamount = ch->pcdata->balance; player.c: banktax, balanceamount-banktax ); player.c: balanceamount -= banktax; player.c: ch->pcdata->balance = balanceamount; polymorph.c: * -----------------------------------------------------------| (0...0) * polymorph.c: * -----------------------------------------------------------| {o o} * polymorph.c: *------------------------------------------------------------------------ * polymorph.c: * be taken when using these. --Shaddai polymorph.c: if (!ch->desc) polymorph.c: switch( ch->substate ) polymorph.c: if ( !ch->dest_buf ) polymorph.c: bug( "do_morphset: sub_morph_desc: NULL ch->dest_buf", 0 ); polymorph.c: ch->substate = SUB_NONE; polymorph.c: morph = ch->dest_buf; polymorph.c: STRFREE( morph->description ); polymorph.c: morph->description = copy_buffer( ch ); polymorph.c: ch->substate = ch->tempnum; polymorph.c: if ( ch->substate == SUB_REPEATCMD ) polymorph.c: ch->dest_buf = morph; polymorph.c: if ( !ch->dest_buf ) polymorph.c: bug( "do_morphset: sub_morph_help: NULL ch->dest_buf", 0 ); polymorph.c: ch->substate = SUB_NONE; polymorph.c: morph = ch->dest_buf; polymorph.c: STRFREE( morph->help ); polymorph.c: morph->help = copy_buffer( ch ); polymorph.c: ch->substate = ch->tempnum; polymorph.c: if ( ch->substate == SUB_REPEATCMD ) polymorph.c: ch->dest_buf = morph; polymorph.c: if ( ch->substate == SUB_REPEATCMD ) polymorph.c: morph = ch->dest_buf; polymorph.c: do_morphstat( ch, morph->name ); polymorph.c: strcpy ( buf, morph->name ); polymorph.c: ch->substate = SUB_NONE; polymorph.c: ch->dest_buf = NULL; polymorph.c: if (ch->pcdata && ch->pcdata->subprompt) { polymorph.c: STRFREE (ch->pcdata->subprompt); polymorph.c: ch->pcdata->subprompt = NULL; polymorph.c: strcpy (arg1, morph->name); polymorph.c: value = is_number( arg3 ) ? atoi( arg3 ) : -1; polymorph.c: if ( atoi(arg3) < -1 && value == -1 ) polymorph.c: if ( ch->substate != SUB_REPEATCMD && arg1[0] != '\0' && polymorph.c: if (arg1[0] == '\0' || (arg2[0] == '\0' && ch->substate != SUB_REPEATCMD) polymorph.c: if (ch->substate == SUB_REPEATCMD) polymorph.c: send_to_char_color ("&c-------------------------------------------------\n\r",ch); polymorph.c: send_to_char_color ("&c-------------------------------------------------\n\r",ch); polymorph.c: morph->name); polymorph.c: ch->substate = SUB_REPEATCMD; polymorph.c: ch->dest_buf = morph; polymorph.c: if (ch->pcdata) polymorph.c: if (ch->pcdata->subprompt) { polymorph.c: STRFREE (ch->pcdata->subprompt); polymorph.c: ch->pcdata->subprompt = NULL; polymorph.c: sprintf (buf, "<&CMorphset &W%s&w> %%i", morph->name); polymorph.c: ch->pcdata->subprompt = STRALLOC (buf); polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Strength must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->str = value; polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Intelligence must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->inte = value; polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Wisdom must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->wis = value; polymorph.c: morph->defpos = value; polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Dexterity must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->dex = value; polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Constitution must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->con = value; polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Charisma must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->cha = value; polymorph.c: if ( value < -10 || value > 10 ) polymorph.c: send_to_char("Luck must be a value from -10 to 10.\n\r",ch); polymorph.c: morph->lck = value; polymorph.c: morph->sex = value; polymorph.c: morph->pkill = ONLY_PKILL; polymorph.c: morph->pkill = ONLY_PEACEFULL; polymorph.c: morph->pkill = 0; polymorph.c: morph->bloodused = value; polymorph.c: morph->manaused = value; polymorph.c: morph->moveused = value; polymorph.c: morph->hpused = value; polymorph.c: morph->favourused = value; polymorph.c: morph->gloryused = value; polymorph.c: morph->timeto = value; polymorph.c: morph->timefrom = value; polymorph.c: morph->dayto = value; polymorph.c: morph->dayfrom = value; polymorph.c: if (value < -30 || value > 30) polymorph.c: send_to_char ("Saving throw range is -30 to 30.\n\r", ch); polymorph.c: morph->saving_poison_death = value; polymorph.c: if (value < -30 || value > 30) polymorph.c: send_to_char ("Saving throw range is -30 to 30.\n\r", ch); polymorph.c: morph->saving_wand = value; polymorph.c: if (value < -30 || value > 30) polymorph.c: send_to_char ("Saving throw range is -30 to 30.\n\r", ch); polymorph.c: morph->saving_para_petri = value; polymorph.c: if (value < -30 || value > 30) polymorph.c: send_to_char ("Saving throw range is -30 to 30.\n\r", ch); polymorph.c: morph->saving_breath = value; polymorph.c: if (value < -30 || value > 30) polymorph.c: send_to_char ("Saving throw range is -30 to 30.\n\r", ch); polymorph.c: morph->saving_spell_staff = value; polymorph.c: if ( value < -1 || value == 0 ) polymorph.c: send_to_char ("Timer must be -1 (None) or greater than 0.\n\r", ch); polymorph.c: morph->timer = value; polymorph.c: morph->hit = str_dup( arg3 ); polymorph.c: morph->mana = str_dup( arg3 ); polymorph.c: morph->move = str_dup( arg3 ); polymorph.c: morph->blood = str_dup( arg3 ); polymorph.c: if ( value > 500 || value < -500 ) polymorph.c: send_to_char("Ac range is -500 to 500.\n\r", ch); polymorph.c: morph->ac = value; polymorph.c: morph->hitroll = str_dup( arg3 ); polymorph.c: morph->damroll = str_dup( arg3 ); polymorph.c: if ( value > 100 || value < -100 ) polymorph.c: send_to_char ("Dodge range is -100 to 100.\n\r", ch ); polymorph.c: morph->dodge = value; polymorph.c: morph->obj[index-1] = value; polymorph.c: if ( value > 100 || value < -100 ) polymorph.c: send_to_char ("Dodge range is -100 to 100.\n\r", ch ); polymorph.c: morph->parry = value; polymorph.c: if ( value > 100 || value < -100 ) polymorph.c: send_to_char ("Dodge range is -100 to 100.\n\r", ch ); polymorph.c: morph->tumble = value; polymorph.c: morph->level = value; polymorph.c: morph->objuse[index-1] = TRUE; polymorph.c: morph->objuse[index-1] = FALSE; polymorph.c: morph->no_cast = TRUE; polymorph.c: morph->no_cast = FALSE; polymorph.c: TOGGLE_BIT( morph->resistant, 1 << value ); polymorph.c: TOGGLE_BIT( morph->suscept, 1 << value ); polymorph.c: TOGGLE_BIT( morph->immune, 1 << value ); polymorph.c: TOGGLE_BIT( morph->no_resistant, 1 << value ); polymorph.c: TOGGLE_BIT( morph->no_suscept, 1 << value ); polymorph.c: TOGGLE_BIT( morph->no_immune, 1 << value ); polymorph.c: xTOGGLE_BIT( morph->affected_by, value ); polymorph.c: xTOGGLE_BIT( morph->no_affected_by, value ); polymorph.c: STRFREE( morph->short_desc ); polymorph.c: morph->short_desc = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->morph_other ); polymorph.c: morph->morph_other = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->morph_self ); polymorph.c: morph->morph_self = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->unmorph_other ); polymorph.c: morph->unmorph_other = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->unmorph_self ); polymorph.c: morph->unmorph_self = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->key_words ); polymorph.c: morph->key_words = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->long_desc ); polymorph.c: morph->long_desc = STRALLOC( buf ); polymorph.c: STRFREE( morph->description ); polymorph.c: morph->description = STRALLOC( arg3 ); polymorph.c: if ( ch->substate == SUB_REPEATCMD ) polymorph.c: ch->tempnum = SUB_REPEATCMD; polymorph.c: ch->tempnum = SUB_NONE; polymorph.c: ch->substate = SUB_MORPH_DESC; polymorph.c: ch->dest_buf = morph; polymorph.c: start_editing( ch, morph->description ); polymorph.c: STRFREE( morph->name ); polymorph.c: morph->name = STRALLOC( arg3 ); polymorph.c: STRFREE( morph->help ); polymorph.c: morph->help = STRALLOC( arg3 ); polymorph.c: if ( ch->substate == SUB_REPEATCMD ) polymorph.c: ch->tempnum = SUB_REPEATCMD; polymorph.c: ch->tempnum = SUB_NONE; polymorph.c: ch->substate = SUB_MORPH_HELP; polymorph.c: ch->dest_buf = morph; polymorph.c: start_editing( ch, morph->help ); polymorph.c: if ( !morph->skills ) polymorph.c: morph->skills = str_dup (""); polymorph.c: DISPOSE ( morph->skills ); polymorph.c: morph->skills = str_dup (""); polymorph.c: sprintf ( buf, "%s %s", morph->skills, arg3 ); polymorph.c: DISPOSE ( morph->skills ); polymorph.c: morph->skills = str_dup ( buf ); polymorph.c: if ( !morph->no_skills ) polymorph.c: morph->no_skills = str_dup (""); polymorph.c: DISPOSE ( morph->no_skills ); polymorph.c: morph->no_skills = str_dup (""); polymorph.c: sprintf ( buf, "%s %s", morph->no_skills, arg3 ); polymorph.c: DISPOSE ( morph->no_skills ); polymorph.c: morph->no_skills = str_dup ( buf ); polymorph.c: if ( !str_cmp ( class_table[i]->who_name, arg3 ) ) polymorph.c: TOGGLE_BIT ( morph->class, ( 1 << value) ); polymorph.c: ch_printf (ch, "Race range is 0 to %d.\n", MAX_RACE - 1); polymorph.c: TOGGLE_BIT ( morph->race, ( 1 << value) ); polymorph.c: else if ( ch->substate == SUB_REPEATCMD ) polymorph.c: ch->substate = SUB_RESTRICTED; polymorph.c: ch->substate = SUB_REPEATCMD; polymorph.c: ch->last_cmd = do_morphset; polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: pager_printf_color ( ch, "&c[&C%2d&c] Name: &C%-13s &cVnum: &C%4d &cUsed: &C%3d\n\r", polymorph.c: count, morph->name, morph->vnum, morph->used ); polymorph.c: pager_printf_color (ch, " &cMorph Name: &C%-20s Vnum: %4d\n\r", morph->name, morph->vnum ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: class_string (morph->class) ); polymorph.c: race_string (morph->race) ); polymorph.c: morph->sex == SEX_MALE ? "male" : polymorph.c: morph->sex == SEX_FEMALE ? "female" : "neutral", polymorph.c: morph->pkill == ONLY_PKILL ? "YES" : polymorph.c: morph->pkill == ONLY_PEACEFULL ? "NO" : "n/a", polymorph.c: morph->timefrom, morph->timeto ); polymorph.c: morph->dayfrom, morph->dayto ); polymorph.c: morph->level, (morph->no_cast)?"NO":"yes" ); polymorph.c: morph->manaused, morph->moveused, morph->hpused, polymorph.c: morph->favourused, morph->gloryused ); polymorph.c: morph->bloodused ); polymorph.c: morph->obj[0], (morph->objuse[0]?"YES":"no"), polymorph.c: morph->obj[1], (morph->objuse[1]?"YES":"no"), polymorph.c: morph->obj[2], (morph->objuse[2]?"YES":"no")); polymorph.c: pager_printf_color (ch, " &cTimer: &w%d\n\r", morph->timer ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: morph->str, morph->inte, morph->wis, morph->dex, morph->con, polymorph.c: morph->cha, morph->lck ); polymorph.c: morph->saving_poison_death, morph->saving_wand, polymorph.c: morph->saving_para_petri, morph->saving_breath, polymorph.c: morph->saving_spell_staff, morph->dodge, morph->parry, polymorph.c: morph->tumble ); polymorph.c: morph->hit, morph->blood, morph->mana, morph->move ); polymorph.c: morph->damroll, morph->hitroll, morph->ac ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: affect_bit_name ( &morph->affected_by) ); polymorph.c: flag_string ( morph->immune, ris_flags ) ); polymorph.c: flag_string ( morph->suscept, ris_flags ) ); polymorph.c: flag_string ( morph->resistant, ris_flags ) ); polymorph.c: pager_printf_color (ch, " &cSkills : &w%s\n\r", morph->skills ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: affect_bit_name ( &morph->no_affected_by) ); polymorph.c: flag_string ( morph->no_immune, ris_flags ) ); polymorph.c: flag_string ( morph->no_suscept, ris_flags ) ); polymorph.c: flag_string ( morph->no_resistant, ris_flags ) ); polymorph.c: morph->no_skills); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: pager_printf_color(ch," &cMorph Name : &C%-20s\n\r", morph->name ); polymorph.c: pager_printf_color(ch," &cDefault Pos : &w%d\n\r", morph->defpos ); polymorph.c: pager_printf_color(ch," &cKeywords : &w%s\n\r",morph->key_words ); polymorph.c: (morph->short_desc[0] == '\0')?"(none set)":morph->short_desc ); polymorph.c: (morph->long_desc[0] == '\0')?"(none set)\n\r": polymorph.c: morph->long_desc ); polymorph.c: pager_printf_color(ch," &cMorphself : &w%s\n\r",morph->morph_self ); polymorph.c: pager_printf_color(ch," &cMorphother : &w%s\n\r",morph->morph_other ); polymorph.c: pager_printf_color(ch," &cUnMorphself : &w%s\n\r",morph->unmorph_self); polymorph.c: pager_printf_color(ch," &cUnMorphother: &w%s\n\r",morph->unmorph_other); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: pager_printf_color (ch, " &cHelp:\n\r&w%s\n\r", morph->help ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: pager_printf_color (ch, " &cDescription:\n\r&w%s\n\r", morph->description ); polymorph.c: send_to_pager_color( "&B[----------------------------------------------------------------------------]\n\r", ch ); polymorph.c: strcat (buf, class_table[x]->who_name); polymorph.c: buf[--x] = '\0'; polymorph.c: strcat (buf, race_table[x]->race_name); polymorph.c: buf[--x] = '\0'; polymorph.c: * --Shaddai polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: if ( !str_cmp ( morph->name, arg ) ) polymorph.c: * Find a morph you can use -- Shaddai polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: if ( str_cmp( morph->name, target) ) polymorph.c: * --Shaddai polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: if ( morph->vnum == vnum ) polymorph.c: * obj morphing, etc... --Shaddai polymorph.c: if ( ch->morph ) polymorph.c: if ( morph->obj[0] ) polymorph.c: if ((obj =get_obj_vnum(ch, morph->obj[0])) == NULL) polymorph.c: else if ( morph->objuse[0] ) polymorph.c: obj->carried_by, obj, NULL, TO_CHAR ); polymorph.c: if ( obj == get_eq_char( obj->carried_by, WEAR_WIELD ) polymorph.c: && (tmpobj=get_eq_char(obj->carried_by,WEAR_DUAL_WIELD))!=NULL) polymorph.c: tmpobj->wear_loc = WEAR_WIELD; polymorph.c: if ( morph->obj[1] ) polymorph.c: if ((obj =get_obj_vnum(ch, morph->obj[1])) == NULL) polymorph.c: else if ( morph->objuse[1] ) polymorph.c: obj->carried_by, obj, NULL, TO_CHAR ); polymorph.c: if ( obj == get_eq_char( obj->carried_by, WEAR_WIELD ) polymorph.c: && (tmpobj=get_eq_char(obj->carried_by,WEAR_DUAL_WIELD))!=NULL) polymorph.c: tmpobj->wear_loc = WEAR_WIELD; polymorph.c: if ( morph->obj[2] ) polymorph.c: if ((obj =get_obj_vnum(ch, morph->obj[2])) == NULL) polymorph.c: else if ( morph->objuse[2] ) polymorph.c: obj->carried_by, obj, NULL, TO_CHAR ); polymorph.c: if ( obj == get_eq_char( obj->carried_by, WEAR_WIELD ) polymorph.c: && (tmpobj=get_eq_char(obj->carried_by,WEAR_DUAL_WIELD))!=NULL) polymorph.c: tmpobj->wear_loc = WEAR_WIELD; polymorph.c: if ( morph->hpused ) polymorph.c: if ( ch->hit < morph->hpused ) polymorph.c: ch->hit -= morph->hpused; polymorph.c: if ( morph->moveused ) polymorph.c: if ( ch->move < morph->moveused ) polymorph.c: ch->move -= morph->moveused; polymorph.c: if ( morph->manaused && !IS_VAMPIRE(ch) ) polymorph.c: if ( ch->mana < morph->manaused ) polymorph.c: ch->mana -= morph->manaused; polymorph.c: if ( morph->bloodused && IS_VAMPIRE(ch) ) polymorph.c: if ( ch->pcdata->condition[COND_BLOODTHIRST] < morph->bloodused ) polymorph.c: ch->pcdata->condition[COND_BLOODTHIRST]-= morph->bloodused; polymorph.c: if ( morph->favourused ) polymorph.c: if ( IS_NPC(ch) || !ch->pcdata->deity || polymorph.c: ch->pcdata->favor < morph->favourused ) polymorph.c: ch->pcdata->favor -= morph->favourused; polymorph.c: if ( ch->pcdata->favor < ch->pcdata->deity->susceptnum ) polymorph.c: SET_BIT( ch->susceptible, ch->pcdata->deity->suscept ); polymorph.c: if ( morph->gloryused ) polymorph.c: if ( !IS_NPC(ch) && ch->pcdata->quest_curr < morph->gloryused ) polymorph.c: ch->pcdata->quest_curr -= morph->gloryused; polymorph.c: if ( !ch->morph ) polymorph.c: temp = ch->morph->morph; polymorph.c: * -- Shaddai polymorph.c: act ( AT_MORPH, morph->morph_other, ch, NULL, NULL, TO_ROOM ); polymorph.c: act ( AT_MORPH, morph->morph_self, ch, NULL, NULL, TO_CHAR ); polymorph.c: act ( AT_MORPH, morph->unmorph_other, ch, NULL, NULL, TO_ROOM ); polymorph.c: act ( AT_MORPH, morph->unmorph_self, ch, NULL, NULL, TO_CHAR ); polymorph.c: * cast it or not. --Shaddai polymorph.c: if ( morph->no_cast && is_cast ) polymorph.c: if ( ch->level < morph->level ) polymorph.c: if ( morph->pkill == ONLY_PKILL && !IS_PKILL(ch) ) polymorph.c: if ( morph->pkill == ONLY_PEACEFULL && IS_PKILL(ch) ) polymorph.c: if ( morph->sex != -1 && morph->sex != ch->sex ) polymorph.c: if ( morph->class != 0 && !IS_SET( morph->class, (1 << ch->class) ) ) polymorph.c: if ( morph->race != 0 && IS_SET( morph->race, (1 << ch->race ) ) ) polymorph.c: if ( morph->deity && ( !ch->pcdata->deity || !get_deity ( morph->deity ) ) ) polymorph.c: if ( morph->timeto != -1 && morph->timefrom != -1 && polymorph.c: ( morph->timeto < time_info.hour || morph->timefrom > time_info.hour ) ) polymorph.c: if ( morph->dayfrom != -1 && morph->dayto != -1 && polymorph.c: ( morph->dayto < (time_info.day+1) || morph->dayfrom > (time_info.day+1))) polymorph.c: * --Shaddai polymorph.c: if ( ch->morph ) polymorph.c: ch->armor += morph->ac; polymorph.c: ch->mod_str += morph->str; polymorph.c: ch->mod_int += morph->inte; polymorph.c: ch->mod_wis += morph->wis; polymorph.c: ch->mod_dex += morph->dex; polymorph.c: ch->mod_cha += morph->cha; polymorph.c: ch->mod_lck += morph->lck; polymorph.c: ch->saving_breath += morph->saving_breath; polymorph.c: ch->saving_para_petri += morph->saving_para_petri; polymorph.c: ch->saving_poison_death += morph->saving_poison_death; polymorph.c: ch->saving_spell_staff += morph->saving_spell_staff; polymorph.c: ch->saving_wand += morph->saving_wand; polymorph.c: ch_morph->hitroll = dice_parse( ch, morph->level, morph->hitroll ); polymorph.c: ch->hitroll += ch_morph->hitroll; polymorph.c: ch_morph->damroll = dice_parse( ch, morph->level, morph->damroll ); polymorph.c: ch->damroll += ch_morph->damroll; polymorph.c: ch_morph->hit = dice_parse( ch, morph->level, morph->hit ); polymorph.c: if ( (ch->hit + ch_morph->hit ) > 32700 ) polymorph.c: ch_morph->hit = (32700 - ch->hit); polymorph.c: ch->hit += ch_morph->hit; polymorph.c: ch_morph->move = dice_parse( ch, morph->level, morph->move ); polymorph.c: if ( (ch->move + ch_morph->move ) > 32700 ) polymorph.c: ch_morph->move = (32700 - ch->move); polymorph.c: ch->move += ch_morph->move; polymorph.c: ch_morph->blood = dice_parse(ch,morph->level,morph->blood); polymorph.c: ch->pcdata->condition[COND_BLOODTHIRST] += ch_morph->blood; polymorph.c: ch_morph->mana = dice_parse( ch, morph->level, morph->mana ); polymorph.c: if ( (ch->mana + ch_morph->mana ) > 32700 ) polymorph.c: ch_morph->mana = (32700 - ch->mana); polymorph.c: ch->mana += ch_morph->mana; polymorph.c: xSET_BITS ( ch->affected_by, morph->affected_by ); polymorph.c: SET_BIT ( ch->immune, morph->immune ); polymorph.c: SET_BIT ( ch->resistant, morph->resistant ); polymorph.c: SET_BIT ( ch->susceptible, morph->suscept ); polymorph.c: xREMOVE_BITS ( ch->affected_by, morph->no_affected_by ); polymorph.c: REMOVE_BIT ( ch->immune, morph->no_immune ); polymorph.c: REMOVE_BIT ( ch->resistant, morph->no_resistant ); polymorph.c: REMOVE_BIT ( ch->susceptible, morph->no_suscept ); polymorph.c: ch->morph = ch_morph; polymorph.c: morph->used++; polymorph.c: * --Shaddai polymorph.c: if ( (morph = ch->morph) == NULL ) polymorph.c: ch->armor -= morph->ac; polymorph.c: ch->mod_str -= morph->str; polymorph.c: ch->mod_int -= morph->inte; polymorph.c: ch->mod_wis -= morph->wis; polymorph.c: ch->mod_dex -= morph->dex; polymorph.c: ch->mod_cha -= morph->cha; polymorph.c: ch->mod_lck -= morph->lck; polymorph.c: ch->saving_breath -= morph->saving_breath; polymorph.c: ch->saving_para_petri -= morph->saving_para_petri; polymorph.c: ch->saving_poison_death -= morph->saving_poison_death; polymorph.c: ch->saving_spell_staff -= morph->saving_spell_staff; polymorph.c: ch->saving_wand -= morph->saving_wand; polymorph.c: ch->hitroll -= morph->hitroll; polymorph.c: ch->damroll -= morph->damroll; polymorph.c: ch->hit -= morph->hit; polymorph.c: ch->move -= morph->move; polymorph.c: ch->pcdata->condition[COND_BLOODTHIRST]-=morph->blood; polymorph.c: ch->mana -= morph->mana; polymorph.c: xREMOVE_BITS( ch->affected_by, morph->affected_by ); polymorph.c: REMOVE_BIT ( ch->immune, morph->immune ); polymorph.c: REMOVE_BIT ( ch->resistant, morph->resistant ); polymorph.c: REMOVE_BIT ( ch->susceptible, morph->suscept ); polymorph.c: free_char_morph ( ch->morph ); polymorph.c: ch->morph = NULL; polymorph.c: * to make use of the sort algorithim. --Shaddai polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: * if it hasn't been set why waste disk-space :) --Shaddai polymorph.c: fprintf (fp, "Morph %s\n", morph->name ); polymorph.c: if ( morph->obj[0] != 0 || morph->obj[1] != 0 || morph->obj[2] != 0 ) polymorph.c: morph->obj[0], morph->obj[1], morph->obj[2] ); polymorph.c: if ( morph->objuse[0] != 0 || morph->objuse[1] != 0 || morph->objuse[2] != 0 ) polymorph.c: morph->objuse[0], morph->objuse[1], morph->objuse[2] ); polymorph.c: if ( morph->vnum != 0 ) polymorph.c: fprintf (fp, "Vnum %d\n", morph->vnum ); polymorph.c: if ( morph->blood[0] != '\0' ) polymorph.c: fprintf (fp, "Blood %s~\n", morph->blood ); polymorph.c: if ( morph->damroll[0] != '\0' ) polymorph.c: fprintf (fp, "Damroll %s~\n", morph->damroll ); polymorph.c: if ( morph->defpos != POS_STANDING ) polymorph.c: fprintf (fp, "Defpos %d\n", morph->defpos ); polymorph.c: if ( morph->description[0] != '\0' ) polymorph.c: fprintf (fp, "Description %s~\n", morph->description ); polymorph.c: if ( morph->help[0] != '\0' ) polymorph.c: fprintf (fp, "Help %s~\n", morph->help ); polymorph.c: if ( morph->hit[0] != '\0' ) polymorph.c: fprintf (fp, "Hit %s~\n", morph->hit ); polymorph.c: if ( morph->hitroll[0] != '\0' ) polymorph.c: fprintf (fp, "Hitroll %s~\n", morph->hitroll ); polymorph.c: if ( morph->key_words[0] != '\0' ) polymorph.c: fprintf (fp, "Keywords %s~\n", morph->key_words ); polymorph.c: if ( morph->long_desc[0] != '\0' ) polymorph.c: fprintf (fp, "Longdesc %s~\n", morph->long_desc ); polymorph.c: if ( morph->mana[0] != '\0' ) polymorph.c: fprintf (fp, "Mana %s~\n", morph->mana ); polymorph.c: if ( morph->morph_other[0] != '\0' ) polymorph.c: fprintf (fp, "MorphOther %s~\n", morph->morph_other ); polymorph.c: if ( morph->morph_self[0] != '\0' ) polymorph.c: fprintf (fp, "MorphSelf %s~\n", morph->morph_self ); polymorph.c: if ( morph->move[0] != '\0' ) polymorph.c: fprintf (fp, "Move %s~\n", morph->move ); polymorph.c: if ( morph->no_skills[0] != '\0' ) polymorph.c: fprintf ( fp, "NoSkills %s~\n", morph->no_skills ); polymorph.c: if ( morph->short_desc[0] != '\0' ) polymorph.c: fprintf (fp, "ShortDesc %s~\n", morph->short_desc ); polymorph.c: if ( morph->skills[0] != '\0' ) polymorph.c: fprintf (fp, "Skills %s~\n", morph->skills ); polymorph.c: if ( morph->unmorph_other[0] != '\0' ) polymorph.c: fprintf (fp, "UnmorphOther %s~\n", morph->unmorph_other ); polymorph.c: if ( morph->unmorph_self[0] != '\0' ) polymorph.c: fprintf (fp, "UnmorphSelf %s~\n", morph->unmorph_self ); polymorph.c: if ( !xIS_EMPTY(morph->affected_by) ) polymorph.c: fprintf (fp, "Affected %s\n", print_bitvector(&morph->affected_by) ); polymorph.c: if ( morph->class != 0 ) polymorph.c: fprintf (fp, "Class %s~\n", class_string(morph->class) ); polymorph.c: if ( morph->immune != 0 ) polymorph.c: fprintf (fp, "Immune %d\n", morph->immune ); polymorph.c: if ( !xIS_EMPTY(morph->no_affected_by) ) polymorph.c: fprintf (fp, "NoAffected %s\n", print_bitvector(&morph->no_affected_by) ); polymorph.c: if ( morph->no_immune != 0 ) polymorph.c: fprintf (fp, "NoImmune %d\n", morph->no_immune ); polymorph.c: if ( morph->no_resistant != 0 ) polymorph.c: fprintf (fp, "NoResistant %d\n", morph->no_resistant ); polymorph.c: if ( morph->no_suscept != 0 ) polymorph.c: fprintf (fp, "NoSuscept %d\n", morph->no_suscept ); polymorph.c: if ( morph->race != 0 ) polymorph.c: fprintf (fp, "Race %s~\n", race_string(morph->race) ); polymorph.c: if ( morph->resistant != 0 ) polymorph.c: fprintf (fp, "Resistant %d\n", morph->resistant ); polymorph.c: if ( morph->suscept != 0 ) polymorph.c: fprintf (fp, "Suscept %d\n", morph->suscept ); polymorph.c: if ( morph->used != 0 ) polymorph.c: fprintf (fp, "Used %d\n", morph->used ); polymorph.c: if ( morph->sex != -1 ) polymorph.c: fprintf ( fp, "Sex %d\n", morph->sex ); polymorph.c: if ( morph->pkill != 0 ) polymorph.c: fprintf ( fp, "Pkill %d\n", morph->pkill ); polymorph.c: if ( morph->timefrom != -1 ) polymorph.c: fprintf ( fp, "TimeFrom %d\n", morph->timefrom ); polymorph.c: if ( morph->timeto != -1 ) polymorph.c: fprintf ( fp, "TimeTo %d\n", morph->timeto ); polymorph.c: if ( morph->dayfrom != -1 ) polymorph.c: fprintf ( fp, "DayFrom %d\n", morph->dayfrom ); polymorph.c: if ( morph->dayto != -1 ) polymorph.c: fprintf ( fp, "DayTo %d\n", morph->dayto ); polymorph.c: if ( morph->bloodused != 0 ) polymorph.c: fprintf ( fp, "BloodUsed %d\n", morph->bloodused ); polymorph.c: if ( morph->manaused != 0 ) polymorph.c: fprintf ( fp, "ManaUsed %d\n", morph->manaused ); polymorph.c: if ( morph->moveused != 0 ) polymorph.c: fprintf ( fp, "MoveUsed %d\n", morph->moveused ); polymorph.c: if ( morph->hpused != 0 ) polymorph.c: fprintf ( fp, "HpUsed %d\n", morph->hpused ); polymorph.c: if ( morph->favourused != 0 ) polymorph.c: fprintf ( fp, "FavourUsed %d\n", morph->favourused ); polymorph.c: if ( morph->gloryused != 0 ) polymorph.c: fprintf ( fp, "GloryUsed %d\n", morph->gloryused ); polymorph.c: if ( morph->ac != 0 ) polymorph.c: fprintf (fp, "Armor %d\n", morph->ac ); polymorph.c: if ( morph->cha != 0 ) polymorph.c: fprintf (fp, "Charisma %d\n", morph->cha ); polymorph.c: if ( morph->con != 0 ) polymorph.c: fprintf (fp, "Constitution %d\n", morph->con ); polymorph.c: if ( morph->dex != 0 ) polymorph.c: fprintf (fp, "Dexterity %d\n", morph->dex ); polymorph.c: if ( morph->dodge != 0 ) polymorph.c: fprintf (fp, "Dodge %d\n", morph->dodge ); polymorph.c: if ( morph->inte != 0 ) polymorph.c: fprintf (fp, "Intelligence %d\n", morph->inte ); polymorph.c: if ( morph->lck != 0 ) polymorph.c: fprintf (fp, "Luck %d\n", morph->lck ); polymorph.c: if ( morph->level != 0 ) polymorph.c: fprintf (fp, "Level %d\n", morph->level ); polymorph.c: if ( morph->parry != 0 ) polymorph.c: fprintf (fp, "Parry %d\n", morph->parry ); polymorph.c: if ( morph->saving_breath != 0 ) polymorph.c: fprintf (fp, "SaveBreath %d\n", morph->saving_breath ); polymorph.c: if ( morph->saving_para_petri != 0 ) polymorph.c: fprintf (fp, "SavePara %d\n", morph->saving_para_petri ); polymorph.c: if ( morph->saving_poison_death != 0 ) polymorph.c: fprintf (fp, "SavePoison %d\n", morph->saving_poison_death ); polymorph.c: if ( morph->saving_spell_staff != 0 ) polymorph.c: fprintf (fp, "SaveSpell %d\n", morph->saving_spell_staff ); polymorph.c: if ( morph->saving_wand != 0 ) polymorph.c: fprintf (fp, "SaveWand %d\n", morph->saving_wand ); polymorph.c: if ( morph->str != 0 ) polymorph.c: fprintf (fp, "Strength %d\n", morph->str ); polymorph.c: if ( morph->tumble != 0 ) polymorph.c: fprintf (fp, "Tumble %d\n", morph->tumble ); polymorph.c: if ( morph->wis != 0 ) polymorph.c: fprintf (fp, "Wisdom %d\n", morph->wis ); polymorph.c: if ( morph->no_cast ) polymorph.c: fprintf (fp, "NoCast %d\n", morph->no_cast ); polymorph.c: * --Shaddai polymorph.c: morph->name = str_dup ( word ); polymorph.c: KEY ( "Armor", morph->ac, fread_number ( fp ) ); polymorph.c: KEY ( "Affected", morph->affected_by, fread_bitvector( fp ) ); polymorph.c: KEY ( "Blood", morph->blood, fread_string_nohash ( fp ) ); polymorph.c: KEY ( "BloodUsed", morph->bloodused, fread_number ( fp ) ); polymorph.c: KEY( "Charisma", morph->cha, fread_number ( fp ) ); polymorph.c: if ( !str_cmp( temp, class_table[i]->who_name ) ) polymorph.c: SET_BIT( morph->class, (1 << i) ); polymorph.c: KEY( "Constitution", morph->con, fread_number ( fp ) ); polymorph.c: KEY( "Damroll", morph->damroll, fread_string_nohash(fp)); polymorph.c: KEY( "DayFrom", morph->dayfrom, fread_number( fp ) ); polymorph.c: KEY( "DayTo", morph->dayto, fread_number( fp ) ); polymorph.c: KEY( "Defpos", morph->defpos, fread_number( fp ) ); polymorph.c: KEY( "Description",morph->description,fread_string_nohash(fp)); polymorph.c: KEY( "Dexterity", morph->dex, fread_number ( fp ) ); polymorph.c: KEY( "Dodge", morph->dodge, fread_number( fp ) ); polymorph.c: KEY( "FavourUsed", morph->favourused, fread_number( fp ) ); polymorph.c: KEY( "GloryUsed", morph->gloryused, fread_number( fp ) ); polymorph.c: KEY( "Help", morph->help, fread_string_nohash(fp)); polymorph.c: KEY( "Hit", morph->hit, fread_string_nohash(fp)); polymorph.c: KEY( "Hitroll", morph->hitroll, fread_string_nohash(fp)); polymorph.c: KEY( "HpUsed", morph->hpused, fread_number( fp ) ); polymorph.c: KEY( "Intelligence", morph->inte, fread_number( fp ) ); polymorph.c: KEY( "Immune", morph->immune, fread_number( fp ) ); polymorph.c: KEY( "Keywords", morph->key_words, fread_string_nohash(fp)); polymorph.c: KEY( "Level", morph->level, fread_number ( fp ) ); polymorph.c: KEY( "Longdesc", morph->long_desc, fread_string_nohash(fp)); polymorph.c: KEY( "Luck", morph->lck, fread_number( fp ) ); polymorph.c: KEY( "Mana", morph->mana, fread_string_nohash(fp)); polymorph.c: KEY( "ManaUsed", morph->manaused, fread_number( fp ) ); polymorph.c: KEY( "MorphOther", morph->morph_other,fread_string_nohash(fp)); polymorph.c: KEY( "MorphSelf", morph->morph_self, fread_string_nohash(fp)); polymorph.c: KEY( "Move", morph->morph_self, fread_string_nohash(fp)); polymorph.c: KEY( "MoveUsed", morph->moveused, fread_number( fp ) ); polymorph.c: KEY( "NoAffected", morph->no_affected_by, fread_bitvector(fp)); polymorph.c: KEY( "NoImmune", morph->no_immune, fread_number( fp ) ); polymorph.c: KEY( "NoResistant", morph->no_resistant, fread_number(fp)); polymorph.c: KEY( "NoSkills", morph->no_skills, fread_string_nohash(fp)); polymorph.c: KEY( "NoSuscept", morph->no_suscept, fread_number(fp)); polymorph.c: morph->no_cast = fread_number( fp ); polymorph.c: morph->obj[0] = fread_number( fp ); polymorph.c: morph->obj[1] = fread_number( fp ); polymorph.c: morph->obj[2] = fread_number( fp ); polymorph.c: morph->objuse[0] = fread_number( fp ); polymorph.c: morph->objuse[1] = fread_number( fp ); polymorph.c: morph->objuse[2] = fread_number( fp ); polymorph.c: KEY( "Parry", morph->parry, fread_number( fp ) ); polymorph.c: KEY( "Pkill", morph->pkill, fread_number( fp ) ); polymorph.c: if ( !str_cmp( temp, race_table[i]->race_name ) ) polymorph.c: SET_BIT( morph->race, (1 << i) ); polymorph.c: KEY( "Resistant", morph->resistant, fread_number( fp ) ); polymorph.c: KEY("SaveBreath", morph->saving_breath, fread_number( fp ) ); polymorph.c: KEY("SavePara", morph->saving_para_petri, fread_number( fp ) ); polymorph.c: KEY("SavePoison", morph->saving_poison_death,fread_number(fp)); polymorph.c: KEY("SaveSpell", morph->saving_spell_staff, fread_number(fp)); polymorph.c: KEY("SaveWand", morph->saving_wand, fread_number(fp)); polymorph.c: KEY("Sex", morph->sex, fread_number( fp ) ); polymorph.c: KEY("ShortDesc",morph->short_desc, fread_string_nohash(fp)); polymorph.c: KEY("Skills", morph->skills, fread_string_nohash(fp)); polymorph.c: KEY("Strength", morph->str, fread_number( fp ) ); polymorph.c: KEY("Suscept", morph->suscept, fread_number( fp ) ); polymorph.c: KEY("TimeFrom", morph->timefrom, fread_number( fp ) ); polymorph.c: KEY("TimeTo", morph->timeto, fread_number( fp ) ); polymorph.c: KEY("Tumble", morph->tumble, fread_number( fp ) ); polymorph.c: KEY("UnmorphOther",morph->unmorph_other,fread_string_nohash(fp)); polymorph.c: KEY("UnmorphSelf",morph->unmorph_self,fread_string_nohash(fp)); polymorph.c: KEY("Used", morph->used, fread_number( fp ) ); polymorph.c: KEY("Vnum", morph->vnum, fread_number( fp ) ); polymorph.c: KEY("Wisdom", morph->wis, fread_number( fp ) ); polymorph.c: * up! --Shaddai polymorph.c: * --Shaddai polymorph.c: if ( morph->blood ) polymorph.c: DISPOSE ( morph->blood ); polymorph.c: if ( morph->damroll ) polymorph.c: DISPOSE ( morph->damroll ); polymorph.c: if ( morph->description ) polymorph.c: DISPOSE ( morph->description ); polymorph.c: if ( morph->help ) polymorph.c: DISPOSE ( morph->help ); polymorph.c: if ( morph->hit ) polymorph.c: DISPOSE ( morph->hit ); polymorph.c: if ( morph->hitroll ) polymorph.c: DISPOSE ( morph->hitroll ); polymorph.c: if ( morph->key_words ) polymorph.c: DISPOSE ( morph->key_words ); polymorph.c: if ( morph->long_desc ) polymorph.c: DISPOSE ( morph->long_desc ); polymorph.c: if ( morph->mana ) polymorph.c: DISPOSE ( morph->mana ); polymorph.c: if ( morph->morph_other ) polymorph.c: DISPOSE ( morph->morph_other ); polymorph.c: if ( morph->morph_self ) polymorph.c: DISPOSE ( morph->morph_self ); polymorph.c: if ( morph->move ) polymorph.c: DISPOSE ( morph->move ); polymorph.c: if ( morph->name ) polymorph.c: DISPOSE ( morph->name ); polymorph.c: if ( morph->short_desc ) polymorph.c: DISPOSE ( morph->short_desc ); polymorph.c: if ( morph->skills ) polymorph.c: DISPOSE ( morph->skills ); polymorph.c: if ( morph->no_skills ) polymorph.c: DISPOSE ( morph->no_skills ); polymorph.c: if ( morph->unmorph_other ) polymorph.c: DISPOSE ( morph->unmorph_other ); polymorph.c: if ( morph->unmorph_self ) polymorph.c: DISPOSE ( morph->unmorph_self ); polymorph.c: morph->blood = str_dup ( "" ); polymorph.c: morph->damroll = str_dup ( "" ); polymorph.c: morph->description = str_dup ( "" ); polymorph.c: morph->help = str_dup ( "" ); polymorph.c: morph->hit = str_dup ( "" ); polymorph.c: morph->hitroll = str_dup ( "" ); polymorph.c: morph->key_words = str_dup ( "" ); polymorph.c: morph->long_desc = str_dup ( "" ); polymorph.c: morph->mana = str_dup ( "" ); polymorph.c: morph->morph_other = str_dup ( "" ); polymorph.c: morph->morph_self = str_dup ( "" ); polymorph.c: morph->move = str_dup ( "" ); polymorph.c: morph->name = str_dup ( "" ); polymorph.c: morph->short_desc = str_dup ( "" ); polymorph.c: morph->skills = str_dup ( "" ); polymorph.c: morph->no_skills = str_dup ( "" ); polymorph.c: morph->unmorph_other = str_dup ( "" ); polymorph.c: morph->unmorph_self = str_dup ( "" ); polymorph.c: xCLEAR_BITS(morph->affected_by); polymorph.c: morph->class = 0; polymorph.c: morph->sex = -1; polymorph.c: morph->timefrom = -1; polymorph.c: morph->timeto = -1; polymorph.c: morph->dayfrom = -1; polymorph.c: morph->dayto = -1; polymorph.c: morph->pkill = 0; polymorph.c: morph->bloodused = 0; polymorph.c: morph->manaused = 0; polymorph.c: morph->moveused = 0; polymorph.c: morph->hpused = 0; polymorph.c: morph->favourused = 0; polymorph.c: morph->gloryused = 0; polymorph.c: morph->immune = 0; polymorph.c: xCLEAR_BITS(morph->no_affected_by); polymorph.c: morph->no_immune = 0; polymorph.c: morph->no_resistant = 0; polymorph.c: morph->no_suscept = 0; polymorph.c: morph->obj[0] = 0; polymorph.c: morph->obj[1] = 0; polymorph.c: morph->obj[2] = 0; polymorph.c: morph->objuse[0] = FALSE; polymorph.c: morph->objuse[1] = FALSE; polymorph.c: morph->objuse[2] = FALSE; polymorph.c: morph->race = 0; polymorph.c: morph->resistant = 0; polymorph.c: morph->suscept = 0; polymorph.c: morph->used = 0; polymorph.c: morph->ac = 0; polymorph.c: morph->defpos = POS_STANDING; polymorph.c: morph->dex = 0; polymorph.c: morph->dodge = 0; polymorph.c: morph->cha = 0; polymorph.c: morph->con = 0; polymorph.c: morph->inte = 0; polymorph.c: morph->lck = 0; polymorph.c: morph->level = 0; polymorph.c: morph->parry = 0; polymorph.c: morph->saving_breath = 0; polymorph.c: morph->saving_para_petri = 0; polymorph.c: morph->saving_poison_death = 0; polymorph.c: morph->saving_spell_staff = 0; polymorph.c: morph->saving_wand = 0; polymorph.c: morph->str = 0; polymorph.c: morph->tumble = 0; polymorph.c: morph->wis = 0; polymorph.c: morph->no_cast = FALSE; polymorph.c: morph->timer = -1; polymorph.c: morph->vnum = 0; polymorph.c: morph->blood = str_dup ( temp->blood ); polymorph.c: morph->damroll = str_dup ( temp->damroll ); polymorph.c: morph->description = str_dup ( temp->description ); polymorph.c: morph->help = str_dup ( temp->help ); polymorph.c: morph->hit = str_dup ( temp->hit ); polymorph.c: morph->hitroll = str_dup ( temp->hitroll ); polymorph.c: morph->key_words = str_dup ( temp->key_words ); polymorph.c: morph->long_desc = str_dup ( temp->long_desc ); polymorph.c: morph->mana = str_dup ( temp->mana ); polymorph.c: morph->morph_other = str_dup ( temp->morph_other ); polymorph.c: morph->morph_self = str_dup ( temp->morph_self ); polymorph.c: morph->move = str_dup ( temp->move ); polymorph.c: morph->name = str_dup ( temp->name ); polymorph.c: morph->short_desc = str_dup ( temp->short_desc ); polymorph.c: morph->skills = str_dup ( temp->skills ); polymorph.c: morph->no_skills = str_dup ( temp->no_skills ); polymorph.c: morph->unmorph_other = str_dup ( temp->unmorph_other ); polymorph.c: morph->unmorph_self = str_dup ( temp->unmorph_self ); polymorph.c: morph->affected_by = temp->affected_by; polymorph.c: morph->class = temp->class; polymorph.c: morph->sex = temp->sex; polymorph.c: morph->timefrom = temp->timefrom; polymorph.c: morph->timeto = temp->timeto; polymorph.c: morph->timefrom = temp->timefrom; polymorph.c: morph->dayfrom = temp->dayfrom; polymorph.c: morph->dayto = temp->dayto; polymorph.c: morph->pkill = temp->pkill; polymorph.c: morph->manaused = temp->manaused; polymorph.c: morph->bloodused = temp->bloodused; polymorph.c: morph->moveused = temp->moveused; polymorph.c: morph->hpused = temp->hpused; polymorph.c: morph->favourused = temp->favourused; polymorph.c: morph->gloryused = temp->gloryused; polymorph.c: morph->immune = temp->immune; polymorph.c: morph->no_affected_by = temp->no_affected_by; polymorph.c: morph->no_immune = temp->no_immune; polymorph.c: morph->no_resistant = temp->no_resistant; polymorph.c: morph->no_suscept = temp->no_suscept; polymorph.c: morph->obj[0] = temp->obj[0]; polymorph.c: morph->obj[1] = temp->obj[1]; polymorph.c: morph->obj[2] = temp->obj[2]; polymorph.c: morph->objuse[0] = temp->objuse[0]; polymorph.c: morph->objuse[1] = temp->objuse[1]; polymorph.c: morph->objuse[2] = temp->objuse[2]; polymorph.c: morph->race = temp->race; polymorph.c: morph->resistant = temp->resistant; polymorph.c: morph->suscept = temp->suscept; polymorph.c: morph->ac = temp->ac; polymorph.c: morph->defpos = temp->defpos; polymorph.c: morph->dex = temp->dex; polymorph.c: morph->dodge = temp->dodge; polymorph.c: morph->cha = temp->cha; polymorph.c: morph->con = temp->con; polymorph.c: morph->inte = temp->inte; polymorph.c: morph->lck = temp->lck; polymorph.c: morph->level = temp->level; polymorph.c: morph->parry = temp->parry; polymorph.c: morph->saving_breath = temp->saving_breath; polymorph.c: morph->saving_para_petri = temp->saving_para_petri; polymorph.c: morph->saving_poison_death = temp->saving_poison_death; polymorph.c: morph->saving_spell_staff = temp->saving_spell_staff; polymorph.c: morph->saving_wand = temp->saving_wand; polymorph.c: morph->str = temp->str; polymorph.c: morph->tumble = temp->tumble; polymorph.c: morph->wis = temp->wis; polymorph.c: morph->no_cast = temp->no_cast; polymorph.c: morph->timer = temp->timer; polymorph.c: * that .000000001 second ;) --Shaddai polymorph.c: * Important things to-do :) Also it is only done at boot-up so who cares polymorph.c: * if it is slow or not. --Shaddai polymorph.c: for ( morph = morph_start, temp = morph->next;morph && temp; polymorph.c: morph = morph->next, temp = temp->next) polymorph.c: if ( morph->used < temp->used ) polymorph.c: if ( morph->prev ) polymorph.c: morph->prev->next = temp; polymorph.c: if ( temp->next ) polymorph.c: temp->next->prev = morph; polymorph.c: temp->prev = morph->prev; polymorph.c: morph->next = temp->next; polymorph.c: temp->next = morph; polymorph.c: morph->prev = temp; polymorph.c: ch_morph->morph = morph; polymorph.c: ch_morph->ac = morph->ac; polymorph.c: ch_morph->str = morph->str; polymorph.c: ch_morph->inte = morph->inte; polymorph.c: ch_morph->wis = morph->wis; polymorph.c: ch_morph->dex = morph->dex; polymorph.c: ch_morph->cha = morph->cha; polymorph.c: ch_morph->lck = morph->lck; polymorph.c: ch_morph->saving_breath = morph->saving_breath; polymorph.c: ch_morph->saving_para_petri = morph->saving_para_petri; polymorph.c: ch_morph->saving_poison_death = morph->saving_poison_death; polymorph.c: ch_morph->saving_spell_staff = morph->saving_spell_staff; polymorph.c: ch_morph->saving_wand = morph->saving_wand; polymorph.c: ch_morph->timer = morph->timer; polymorph.c: ch_morph->hitroll = 0; polymorph.c: ch_morph->damroll = 0; polymorph.c: ch_morph->hit = 0; polymorph.c: ch_morph->mana = 0; polymorph.c: ch_morph->move = 0; polymorph.c: ch_morph->blood = 0; polymorph.c: ch_morph->affected_by = morph->affected_by; polymorph.c: ch_morph->immune = morph->immune; polymorph.c: ch_morph->resistant = morph->resistant; polymorph.c: ch_morph->suscept = morph->suscept; polymorph.c: ch_morph->no_affected_by = morph->no_affected_by; polymorph.c: ch_morph->no_immune = morph->no_immune; polymorph.c: ch_morph->no_resistant = morph->no_resistant; polymorph.c: ch_morph->no_suscept = morph->no_suscept; polymorph.c: if ( morph->name ) polymorph.c: DISPOSE( morph->name ); polymorph.c: morph->name = str_dup( arg1 ); polymorph.c: morph->vnum = morph_vnum; polymorph.c: ch_printf (ch, "Morph %s created with vnum %d.\n\r",morph->name,morph->vnum); polymorph.c: * Player function to delete a morph. --Shaddai polymorph.c: * possible complications. --Shaddai polymorph.c: if ( ch->morph == NULL ) polymorph.c: morph = ch->morph; polymorph.c: if ( morph->morph != NULL ) polymorph.c: fprintf ( fp, "Vnum %d\n", morph->morph->vnum ); polymorph.c: fprintf ( fp, "Name %s~\n", morph->morph->name ); polymorph.c: if ( !xIS_EMPTY(morph->affected_by) ) polymorph.c: fprintf ( fp, "Affect %s\n", print_bitvector(&morph->affected_by) ); polymorph.c: if ( morph->immune != 0 ) polymorph.c: fprintf ( fp, "Immune %d\n", morph->immune ); polymorph.c: if ( morph->resistant != 0 ) polymorph.c: fprintf ( fp, "Resistant %d\n", morph->resistant ); polymorph.c: if ( morph->suscept != 0 ) polymorph.c: fprintf ( fp, "Suscept %d\n", morph->suscept ); polymorph.c: if ( !xIS_EMPTY(morph->no_affected_by) ) polymorph.c: fprintf ( fp, "NoAffect %s\n", print_bitvector(&morph->no_affected_by) ); polymorph.c: if ( morph->no_immune != 0 ) polymorph.c: fprintf ( fp, "NoImmune %d\n", morph->no_immune ); polymorph.c: if ( morph->no_resistant != 0 ) polymorph.c: fprintf ( fp, "NoResistant %d\n", morph->no_resistant ); polymorph.c: if ( morph->no_suscept != 0 ) polymorph.c: fprintf ( fp, "NoSuscept %d\n", morph->no_suscept ); polymorph.c: if ( morph->ac != 0 ) polymorph.c: fprintf ( fp, "Armor %d\n", morph->ac ); polymorph.c: if ( morph->blood != 0 ) polymorph.c: fprintf ( fp, "Blood %d\n", morph->blood ); polymorph.c: if ( morph->cha != 0 ) polymorph.c: fprintf ( fp, "Charisma %d\n", morph->cha ); polymorph.c: if ( morph->con != 0 ) polymorph.c: fprintf ( fp, "Constitution %d\n", morph->con ); polymorph.c: if ( morph->damroll != 0 ) polymorph.c: fprintf ( fp, "Damroll %d\n", morph->damroll ); polymorph.c: if ( morph->dex != 0 ) polymorph.c: fprintf ( fp, "Dexterity %d\n", morph->dex ); polymorph.c: if ( morph->dodge != 0 ) polymorph.c: fprintf ( fp, "Dodge %d\n", morph->dodge ); polymorph.c: if ( morph->hit != 0 ) polymorph.c: fprintf ( fp, "Hit %d\n", morph->hit ); polymorph.c: if ( morph->hitroll != 0 ) polymorph.c: fprintf ( fp, "Hitroll %d\n", morph->hitroll ); polymorph.c: if ( morph->inte != 0 ) polymorph.c: fprintf ( fp, "Intelligence %d\n", morph->inte ); polymorph.c: if ( morph->lck != 0 ) polymorph.c: fprintf ( fp, "Luck %d\n", morph->lck ); polymorph.c: if ( morph->mana != 0 ) polymorph.c: fprintf ( fp, "Mana %d\n", morph->mana ); polymorph.c: if ( morph->move != 0 ) polymorph.c: fprintf ( fp, "Move %d\n", morph->move ); polymorph.c: if ( morph->parry != 0 ) polymorph.c: fprintf ( fp, "Parry %d\n", morph->parry ); polymorph.c: if ( morph->saving_breath != 0 ) polymorph.c: fprintf ( fp, "Save1 %d\n", morph->saving_breath ); polymorph.c: if ( morph->saving_para_petri != 0 ) polymorph.c: fprintf ( fp, "Save2 %d\n", morph->saving_para_petri ); polymorph.c: if ( morph->saving_poison_death != 0 ) polymorph.c: fprintf ( fp, "Save3 %d\n", morph->saving_poison_death ); polymorph.c: if ( morph->saving_spell_staff != 0 ) polymorph.c: fprintf ( fp, "Save4 %d\n", morph->saving_spell_staff ); polymorph.c: if ( morph->saving_wand != 0 ) polymorph.c: fprintf ( fp, "Save5 %d\n", morph->saving_wand ); polymorph.c: if ( morph->str != 0 ) polymorph.c: fprintf ( fp, "Strength %d\n", morph->str ); polymorph.c: if ( morph->timer != -1 ) polymorph.c: fprintf ( fp, "Timer %d\n", morph->timer ); polymorph.c: if ( morph->tumble != 0 ) polymorph.c: fprintf ( fp, "Tumble %d\n", morph->tumble ); polymorph.c: if ( morph->wis != 0 ) polymorph.c: fprintf ( fp, "Wisdom %d\n", morph->wis ); polymorph.c: ch->morph = morph; polymorph.c: KEY ( "Affect", morph->affected_by, fread_bitvector( fp ) ); polymorph.c: KEY ( "Armor", morph->ac, fread_number( fp ) ); polymorph.c: KEY ( "Blood", morph->blood, fread_number( fp ) ); polymorph.c: KEY ( "Charisma", morph->cha, fread_number( fp ) ); polymorph.c: KEY ( "Constitution", morph->con, fread_number( fp ) ); polymorph.c: KEY ( "Damroll", morph->damroll, fread_number( fp ) ); polymorph.c: KEY ( "Dexterity", morph->dex, fread_number( fp ) ); polymorph.c: KEY ( "Dodge", morph->dodge, fread_number( fp ) ); polymorph.c: KEY ( "Hit", morph->hit, fread_number( fp ) ); polymorph.c: KEY ( "Hitroll", morph->hitroll, fread_number( fp ) ); polymorph.c: KEY ( "Immune", morph->immune, fread_number( fp ) ); polymorph.c: KEY ( "Intelligence", morph->inte, fread_number( fp ) ); polymorph.c: KEY ( "Luck", morph->lck, fread_number( fp ) ); polymorph.c: KEY ( "Mana", morph->mana, fread_number( fp ) ); polymorph.c: KEY ( "Move", morph->move, fread_number( fp ) ); polymorph.c: if ( morph->morph ) polymorph.c: if ( str_cmp ( morph->morph->name, fread_string( fp ))) polymorph.c: morph->morph->vnum ); polymorph.c: KEY ( "NoAffect", morph->no_affected_by, fread_bitvector( fp ) ); polymorph.c: KEY ( "NoImmune", morph->no_immune, fread_number( fp ) ); polymorph.c: KEY ( "NoResistant", morph->no_resistant, fread_number( fp ) ); polymorph.c: KEY ( "NoSuscept", morph->no_suscept, fread_number( fp ) ); polymorph.c: KEY ( "Parry", morph->parry, fread_number( fp ) ); polymorph.c: KEY ( "Resistant", morph->resistant, fread_number( fp ) ); polymorph.c: KEY ( "Save1", morph->saving_breath, fread_number( fp ) ); polymorph.c: KEY ( "Save2", morph->saving_para_petri, fread_number( fp ) ); polymorph.c: KEY ( "Save3", morph->saving_poison_death, fread_number( fp ) ); polymorph.c: KEY ( "Save4", morph->saving_spell_staff, fread_number( fp ) ); polymorph.c: KEY ( "Save5", morph->saving_wand, fread_number( fp ) ); polymorph.c: KEY ( "Strength", morph->str, fread_number( fp ) ); polymorph.c: KEY ( "Suscept", morph->suscept, fread_number( fp ) ); polymorph.c: KEY ( "Timer", morph->timer, fread_number( fp ) ); polymorph.c: KEY ( "Tumble", morph->tumble, fread_number( fp ) ); polymorph.c: morph->morph = get_morph_vnum ( fread_number( fp ) ); polymorph.c: KEY ( "Wisdom", morph->wis, fread_number( fp ) ); polymorph.c: morph->timer = -1; polymorph.c: xCLEAR_BITS(morph->affected_by); polymorph.c: xCLEAR_BITS(morph->no_affected_by); polymorph.c: morph->immune = 0; polymorph.c: morph->no_immune = 0; polymorph.c: morph->no_resistant = 0; polymorph.c: morph->no_suscept = 0; polymorph.c: morph->resistant = 0; polymorph.c: morph->suscept = 0; polymorph.c: morph->ac = 0; polymorph.c: morph->blood = 0; polymorph.c: morph->cha = 0; polymorph.c: morph->con = 0; polymorph.c: morph->damroll = 0; polymorph.c: morph->dex = 0; polymorph.c: morph->dodge = 0; polymorph.c: morph->hit = 0; polymorph.c: morph->hitroll = 0; polymorph.c: morph->inte = 0; polymorph.c: morph->lck = 0; polymorph.c: morph->mana = 0; polymorph.c: morph->parry = 0; polymorph.c: morph->saving_breath = 0; polymorph.c: morph->saving_para_petri = 0; polymorph.c: morph->saving_poison_death = 0; polymorph.c: morph->saving_spell_staff = 0; polymorph.c: morph->saving_wand = 0; polymorph.c: morph->str = 0; polymorph.c: morph->tumble = 0; polymorph.c: morph->wis = 0; polymorph.c: morph->morph = NULL; polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: if ( morph->vnum > vnum ) polymorph.c: vnum = morph->vnum; polymorph.c: for ( morph = morph_start; morph; morph = morph->next ) polymorph.c: if ( morph->vnum == 0 ) polymorph.c: morph->vnum = vnum; polymorph.c: for (vch = first_char; vch; vch = vch->next ) polymorph.c: if ( vch->morph == NULL || vch->morph->morph == NULL || polymorph.c: vch->morph->morph != morph ) polymorph.c: * This is just a wrapper. --Shaddai quest.c:* ROM 2.4 is copyright 1993-1995 Russ Taylor * quest.c:* the latest version of quest.c, please send a request to the above add- * quest.c:* code, Ryan!! For more SMAUG code, e-mail "leckey@rogers.wave.ca" * quest.c: items are worthless and have the rot-death flag, as they are placed quest.c: if (xIS_SET(ch->act, PLR_QUESTOR)) quest.c: if (ch->questmob == -1 && ch->questgiver->short_descr != NULL) quest.c: sprintf(buf, "Your quest is ALMOST complete!\n\rGet back to %s before your time runs out!\n\r",ch->questgiver->short_descr); quest.c: else if (ch->questobj > 0) quest.c: questinfoobj = get_obj_index(ch->questobj); quest.c: sprintf(buf, "You are on a quest to recover the fabled %s!\n\r",questinfoobj->name); quest.c: else if (ch->questmob > 0) quest.c: questinfo = get_mob_index(ch->questmob); quest.c: sprintf(buf, "You are on a quest to slay the dreaded %s!\n\r",questinfo->short_descr); quest.c: sprintf(buf, "You have %d quest points.\n\r",ch->pcdata->quest_curr); quest.c: if (!xIS_SET(ch->act, PLR_QUESTOR)) quest.c: if (ch->nextquest > 350) { quest.c: ch->nextquest = 0; } quest.c: if (ch->nextquest > 1) quest.c: sprintf(buf, "There are %d minutes remaining until you can go on another quest.\n\r",ch->nextquest); quest.c: else if (ch->nextquest == 1) quest.c: else if (ch->countdown > 0) quest.c: sprintf(buf, "Time left for current quest: %d\n\r",ch->countdown); quest.c: for ( questman = ch->in_room->first_person; questman != NULL; questman = questman->next_in_room ) quest.c: if (questman->spec_fun == spec_lookup( "spec_questmaster" )) break; quest.c: if (questman == NULL || questman->spec_fun != spec_lookup( "spec_questmaster" )) quest.c: if ( questman->position == POS_FIGHTING) quest.c: ch->questgiver = questman; quest.c: bug("Error loading quest objects. Char: ", ch->name); quest.c:&c[&W1&c] &Y%-5d%-12s&w%s\n\r\ quest.c:&c[&W2&c] &Y%-5d%-12s&w%s\n\r\ quest.c:&c[&W3&c] &Y%-5d%-12s&w%s\n\r\ quest.c:&c[&W4&c] &Y%-5d%-12s&w%s\n\r\ quest.c:&c[&W5&c] &Y%-5d%-12s&w%s\n\r\ quest.c:&c[&W6&c] &Y%-5s%-12s&w10,000,000 gold pieces\n\r\ quest.c:&c[&W7&c] &Y%-5s%-12s&w30 Practices\n\r", quest.c:QUEST_VALUE1, "qp", obj1->short_descr, QUEST_VALUE2, "qp", obj2->short_descr, quest.c:QUEST_VALUE3, "qp", obj3->short_descr, QUEST_VALUE4, "qp", obj4->short_descr, quest.c:QUEST_VALUE5, "qp", obj5->short_descr, "500", "qp", "500", "qp" ); quest.c: if (ch->pcdata->quest_curr >= QUEST_VALUE1) quest.c: ch->pcdata->quest_curr -= QUEST_VALUE1; quest.c: obj = create_object(get_obj_index(QUEST_ITEM1),ch->level); quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: if (ch->pcdata->quest_curr >= QUEST_VALUE2) quest.c: ch->pcdata->quest_curr -= QUEST_VALUE2; quest.c: obj = create_object(get_obj_index(QUEST_ITEM2),ch->level); quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: if (ch->pcdata->quest_curr >= QUEST_VALUE3) quest.c: ch->pcdata->quest_curr -= QUEST_VALUE3; quest.c: obj = create_object(get_obj_index(QUEST_ITEM3),ch->level); quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: if (ch->pcdata->quest_curr >= QUEST_VALUE4) quest.c: ch->pcdata->quest_curr -= QUEST_VALUE4; quest.c: obj = create_object(get_obj_index(QUEST_ITEM4),ch->level); quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: if (ch->pcdata->quest_curr >= QUEST_VALUE5) quest.c: ch->pcdata->quest_curr -= QUEST_VALUE5; quest.c: obj = create_object(get_obj_index(QUEST_ITEM5),ch->level); quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: if (ch->pcdata->quest_curr >= 500) quest.c: ch->pcdata->quest_curr -= 500; quest.c: ch->practice += 30; quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: if (ch->pcdata->quest_curr >= 500) quest.c: ch->pcdata->quest_curr -= 500; quest.c: ch->gold += 10000000; quest.c: sprintf(buf, "Sorry, %s, but you don't have enough quest points for that.",ch->name); quest.c: sprintf(buf, "I don't have that item, %s.",ch->name); quest.c: if (ch->nextquest > 0 && !(ch->level >= LEVEL_IMMORTAL)) quest.c: sprintf( buf, "You're not on a quest %s.", ch->name ); quest.c: if (xIS_SET(ch->act, PLR_QUESTOR)) quest.c: xREMOVE_BIT(ch->act, PLR_QUESTOR); quest.c: ch->questgiver = NULL; quest.c: ch->countdown = 0; quest.c: ch->questmob = 0; quest.c: ch->questobj = 0; quest.c: if (ch->level >= LEVEL_IMMORTAL) quest.c: ch->nextquest = 0; quest.c: ch->nextquest = 30; quest.c: sprintf( buf, "Very well %s, we can't all be heroes.", ch->name ); quest.c: if (xIS_SET(ch->act, PLR_QUESTOR)) quest.c: if (ch->nextquest > 350) { quest.c: ch->nextquest = 0; } quest.c: if (ch->nextquest > 0) quest.c: sprintf(buf, "You're very brave, %s, but let someone else have a chance.",ch->name); quest.c: sprintf(buf, "Please come back in about %d minutes.", ch->nextquest); quest.c: sprintf(buf, "Thank you, brave %s!",ch->name); quest.c: if (ch->questmob > 0 || ch->questobj > 0) quest.c: ch->countdown = number_range(10,30); quest.c: xSET_BIT(ch->act, PLR_QUESTOR); quest.c: sprintf(buf, "You have %d minutes to complete this quest.",ch->countdown); quest.c: if (ch->questgiver != questman) quest.c: if (xIS_SET(ch->act, PLR_QUESTOR)) quest.c: if (ch->questmob == -1 && ch->countdown > 0) quest.c: ch->practice += pracreward; quest.c: xREMOVE_BIT(ch->act, PLR_QUESTOR); quest.c: ch->questgiver = NULL; quest.c: ch->countdown = 0; quest.c: ch->questmob = 0; quest.c: ch->questobj = 0; quest.c: ch->nextquest = 30; quest.c: ch->gold += reward; quest.c: ch->pcdata->quest_curr += pointreward; quest.c: ch->pcdata->quest_accum += pointreward; quest.c: else if (ch->questobj > 0 && ch->countdown > 0) quest.c: for (obj = ch->first_carrying; obj != NULL; obj = obj_next) quest.c: obj_next = obj->next_content; quest.c: if (obj != NULL && obj->pIndexData->vnum == ch->questobj) quest.c: ch->practice += pracreward; quest.c: xREMOVE_BIT(ch->act, PLR_QUESTOR); quest.c: ch->questgiver = NULL; quest.c: ch->countdown = 0; quest.c: ch->questmob = 0; quest.c: ch->questobj = 0; quest.c: ch->nextquest = 30; quest.c: ch->gold += reward; quest.c: ch->pcdata->quest_curr += pointreward; quest.c: ch->pcdata->quest_accum += pointreward; quest.c: else if ((ch->questmob > 0 || ch->questobj > 0) && ch->countdown > 0) quest.c: if (ch->nextquest > 0) quest.c: else sprintf(buf, "You have to REQUEST a quest first, %s.",ch->name); quest.c: * 5 Attempts to find a mob for quest. - Garinan quest.c: while (ch->nextquest > 350 && ch->nextquest < 356) quest.c: if (ch->nextquest == 355) quest.c: ch->nextquest = 400; quest.c: ch->nextquest++; quest.c: level_diff = vsearch->level - ch->level; quest.c: less than statements for yourself. - Vassago */ quest.c: if (((level_diff < 15 && level_diff > -15) quest.c: || (ch->level > 30 && ch->level < 40 && vsearch->level > 30 && vsearch->level < 50) quest.c: || (ch->level > 40 && ch->level < 50 && vsearch->level > 40 && vsearch->level < 60) quest.c: || (ch->level > 50 && ch->level < 60 && vsearch->level > 50 && vsearch->level < 70) quest.c: || (ch->level > 60 && ch->level < 70 && vsearch->level > 60 && vsearch->level < 80) quest.c: || (ch->level > 70 && ch->level < 80 && vsearch->level > 70 && vsearch->level < 90) quest.c: || (ch->level > 80 && ch->level < 90 && vsearch->level > 80 && vsearch->level < 100) quest.c: || (ch->level > 90 && vsearch->level > 90)) quest.c: && vsearch->pShop == NULL quest.c: && vsearch->rShop == NULL quest.c: && !xIS_SET(vsearch->act,ACT_TRAIN) quest.c: && !xIS_SET(vsearch->act,ACT_PRACTICE) quest.c: && !xIS_SET(vsearch->act,ACT_IMMORTAL) quest.c: && !xIS_SET(vsearch->act,ACT_NOQUEST)) break; quest.c: if ( vsearch == NULL || ( victim = get_char_world( ch, vsearch->player_name ) ) == NULL || !IS_NPC(victim)) quest.c: if ((ch->nextquest > 350 && ch->nextquest < 356) || ch->nextquest == 0); quest.c: if (ch->nextquest == 0) quest.c: ch->nextquest = 351; quest.c: if (ch->nextquest == 400) quest.c: ch->nextquest = 5; quest.c: if ( ( room = find_location( ch, victim->name ) ) == NULL ) quest.c: ch->nextquest = 5; quest.c: questitem = create_object( get_obj_index(objvnum), ch->level ); quest.c: ch->questobj = questitem->pIndexData->vnum; quest.c: ch->nextquest = 0; quest.c: sprintf(buf, "Vile pilferers have stolen %s from the treasury!",questitem->short_descr); quest.c: lines. - Vassago */ quest.c: sprintf(buf, "Look in the general area of %s for %s!",room->area->name, room->name); quest.c: sprintf(buf, "An enemy of mine, %s, is making vile threats against the city.",victim->short_descr); quest.c: sprintf(buf, "Airu's most heinous criminal, %s, has escaped from the dungeon!",victim->short_descr); quest.c: sprintf(buf, "Since the escape, %s has murdered %d civillians!",victim->short_descr, number_range(2,20)); quest.c: if (room->name != NULL) quest.c: sprintf(buf, "Seek %s out somewhere in the vicinity of %s!",victim->short_descr,room->name); quest.c: lines. - Vassago */ quest.c: ch->nextquest = 0; quest.c: sprintf(buf, "That location is in the general area of %s.",room->area->name); quest.c: ch->questmob = victim->pIndexData->vnum; quest.c: ch_next = ch->next; quest.c: if (ch->nextquest > 0) quest.c: ch->nextquest--; quest.c: if (ch->nextquest == 0) quest.c: else if (xIS_SET(ch->act,PLR_QUESTOR)) quest.c: if (--ch->countdown <= 0) quest.c: ch->nextquest = 30; quest.c: sprintf(buf, "You have run out of time for your quest!\n\rYou may quest again in %d minutes.\n\r",ch->nextquest); quest.c: xREMOVE_BIT(ch->act, PLR_QUESTOR); quest.c: ch->questgiver = NULL; quest.c: ch->countdown = 0; quest.c: ch->questmob = 0; quest.c: if (ch->countdown > 0 && ch->countdown < 6) redit.c:/*------------------------------------------------------------------------*/ redit.c:/*-----------------------------------------------------------------------*/ redit.c:/*-----------------------------------------------------------------------*/ redit.c: if ( IS_NPC(ch) || !ch->desc ) redit.c: room = ch->in_room; redit.c: for ( d = first_descriptor; d; d = d->next ) redit.c: if ( d->connected == CON_REDIT ) redit.c: if ( d->olc && OLC_VNUM(d) == room->vnum ) redit.c: ch_printf( ch, "That room is currently being edited by %s.\n\r", d->character->name ); redit.c: d = ch->desc; redit.c: CREATE( d->olc, OLC_DATA, 1 ); redit.c: OLC_VNUM(d) = room->vnum; redit.c: d->character->dest_buf = room; redit.c: d->connected = CON_REDIT; redit.c: if ( !ch->pcdata || !( pArea = ch->pcdata->area ) ) redit.c: if ( cvnum < pArea->low_r_vnum redit.c: || cvnum > pArea->hi_r_vnum ) redit.c: copy->first_person = NULL; redit.c: copy->last_person = NULL; redit.c: copy->first_content = NULL; redit.c: copy->last_content = NULL; redit.c: copy->first_extradesc = NULL; redit.c: copy->last_extradesc = NULL; redit.c: copy->area = (ch->pcdata->area) ? ch->pcdata->area : orig->area; redit.c: copy->vnum = cvnum; redit.c: /*copy->name = STRALLOC( orig->name ); redit.c: copy->description = STRALLOC( orig->description );*/ redit.c: copy->name = QUICKLINK( orig->name ); redit.c: copy->description = QUICKLINK( orig->description ); redit.c: copy->room_flags = orig->room_flags; redit.c: copy->sector_type = orig->sector_type; redit.c: copy->light = 0; redit.c: copy->first_exit = NULL; redit.c: copy->last_exit = NULL; redit.c: copy->tele_vnum = orig->tele_vnum; redit.c: copy->tele_delay = orig->tele_delay; redit.c: copy->tunnel = orig->tunnel; redit.c: for ( ced = orig->first_extradesc; ced; ced = ced->next ) redit.c: ed->keyword = QUICKLINK( ced->keyword ); redit.c: ed->description = QUICKLINK( ced->description ); redit.c: LINK( ed, copy->first_extradesc, copy->last_extradesc, next, prev ); redit.c: for ( cxit = orig->first_exit; cxit; cxit = cxit->next ) redit.c: xit = make_exit( copy, get_room_index( cxit->rvnum ), cxit->vdir ); redit.c: xit->keyword = QUICKLINK( cxit->keyword ); redit.c: xit->description = QUICKLINK( cxit->description ); redit.c: xit->key = cxit->key; redit.c: xit->exit_info = cxit->exit_info; redit.c: if ( orig->mudprogs ) redit.c: copy->mudprogs = mprog; redit.c: for ( cprog = orig->mudprogs; cprog; cprog = cprog->next ) redit.c: mprog->type = cprog->type; redit.c: xSET_BIT( copy->progtypes, mprog->type ); redit.c: mprog->arglist = QUICKLINK( cprog->arglist ); redit.c: mprog->comlist = QUICKLINK( cprog->comlist ); redit.c: if ( cprog->next ) redit.c: CREATE( mprog->next, MPROG_DATA, 1 ); redit.c: mprog = mprog->next; redit.c: mprog->next = NULL; redit.c: copy->next = room_index_hash[iHash]; redit.c: if ( !d || !d->character ) redit.c: if ( IS_NPC( d->character ) ) redit.c: if ( d->connected == CON_OEDIT ) redit.c: if ( d->connected == CON_MEDIT ) redit.c: if ( d->connected == CON_REDIT ) redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: OBJ_DATA *obj = d->character->dest_buf; redit.c: CHAR_DATA *victim = d->character->dest_buf; redit.c: sprintf( log_buf, "Log %s:", d->character->name ); redit.c: if ( d->connected == CON_REDIT ) redit.c: sprintf( log_buf, "%s ROOM(%d): ", log_buf, room->vnum ); redit.c: else if ( d->connected == CON_OEDIT ) redit.c: sprintf( log_buf, "%s OBJ(%d): ", log_buf, obj->pIndexData->vnum ); redit.c: else if ( d->connected == CON_MEDIT ) redit.c: sprintf( log_buf, "%s MOB(%d): ", log_buf, victim->pIndexData->vnum ); redit.c: sprintf( log_buf, "%s PLR(%s): ", log_buf, victim->name ); redit.c: log_string_plus( log_buf, LOG_BUILD, get_trust(d->character) ); redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: for ( ed = room->first_extradesc; ed; ed = ed->next ) redit.c: sprintf( buf, "&g%2d&w) %-40.40s\n\r", counter++, ed->keyword ); redit.c: send_to_char_color( buf, d->character ); redit.c: send_to_char( "\n\rWhich extra description do you want to edit? ", d->character ); redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: if ( room->first_extradesc ) redit.c: for ( ed = room->first_extradesc; ed; ed = ed->next ) redit.c: ch_printf_color( d->character, "&g%2d&w) Keyword: &O%s\n\r", ++count, ed->keyword ); redit.c: send_to_char( "\n\r", d->character ); redit.c: ch_printf_color( d->character, "&gA&w) Add a new description\n\r" ); redit.c: ch_printf_color( d->character, "&gR&w) Remove a description\n\r" ); redit.c: ch_printf_color( d->character, "&gQ&w) Quit\n\r" ); redit.c: ch_printf_color( d->character, "\n\rEnter choice: " ); redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: for ( cnt = 0, pexit = room->first_exit; pexit; pexit = pexit->next ) redit.c: ch_printf_color( d->character, redit.c: "&g%2d&w) %-10.10s to %-5d. Key: %d Flags: %d Keywords: %s.\n\r", redit.c: dir_name[pexit->vdir], redit.c: pexit->to_room ? pexit->to_room->vnum : 0, redit.c: pexit->key, redit.c: pexit->exit_info, redit.c: pexit->keyword[0] != '\0' ? pexit->keyword : "(none)" ); redit.c: if ( room->first_exit ) redit.c: send_to_char( "\n\r", d->character ); redit.c: send_to_char_color( "&gA&w) Add a new exit\n\r", d->character ); redit.c: send_to_char_color( "&gR&w) Remove an exit\n\r", d->character ); redit.c: send_to_char_color( "&gQ&w) Quit\n\r", d->character ); redit.c: send_to_char( "\n\rEnter choice: ", d->character ); redit.c: /* ROOM_INDEX_DATA *room = d->character->dest_buf; */ redit.c: EXIT_DATA *pexit = d->character->spare_ptr; redit.c: if ( IS_SET( pexit->exit_info, 1 << i ) ) redit.c: ch_printf_color( d->character, "&g1&w) Direction : &c%s\n\r", dir_name[pexit->vdir] ); redit.c: ch_printf_color( d->character, "&g2&w) To Vnum : &c%d\n\r", pexit->to_room ? pexit->to_room->vnum : -1 ); redit.c: ch_printf_color( d->character, "&g3&w) Key : &c%d\n\r", pexit->key ); redit.c: ch_printf_color( d->character, "&g4&w) Keyword : &c%s\n\r", (pexit->keyword && pexit->keyword[0] != '\0') ? pexit->keyword : "(none)" ); redit.c: ch_printf_color( d->character, "&g5&w) Flags : &c%s\n\r", flags[0] != '\0' ? flags : "(none)" ); redit.c: ch_printf_color( d->character, "&g6&w) Description: &c%s\n\r", (pexit->description && pexit->description[0] != '\0') ? pexit->description : "(none)" ); redit.c: ch_printf_color( d->character, "&gQ&w) Quit\n\r" ); redit.c: ch_printf_color( d->character, "\n\rEnter choice: " ); redit.c: ch_printf_color( d->character, "&g%2d&w) %s\n\r", i, dir_name[i] ); redit.c: send_to_char( "\n\rChoose a direction: ", d->character ); redit.c: EXIT_DATA *pexit = d->character->spare_ptr; redit.c: ch_printf_color( d->character, "&g%2d&w) %-20.20s\n\r", i+1, ex_flags[i] ); redit.c: if ( IS_SET( pexit->exit_info, 1 << i ) ) redit.c: send_to_char_color( buf, d->character ); redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: sprintf( buf, "&g%2d&w) %-20.20s ", redit.c: send_to_char_color( buf, d->character ); redit.c: ch_printf_color( d->character, "\n\rRoom flags: &c%s&w\n\rEnter room flags, 0 to quit : ", redit.c: flag_string( room->room_flags, r_flags ) ); redit.c: sprintf(buf, "&g%2d&w) %-20.20s ", redit.c: send_to_char_color( buf, d->character ); redit.c: send_to_char("\r\nEnter sector type : ", d->character); redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: switch( room->sector_type ) redit.c: "&w-- Room number : [&c%d&w] Room area: [&c%-30.30s&w]\n\r" redit.c: room->area ? room->area->name : "None????", redit.c: room->name, redit.c: room->description, redit.c: flag_string( room->room_flags, r_flags), redit.c: room->tunnel, redit.c: room->tele_delay, redit.c: room->tele_vnum redit.c: set_char_color( AT_PLAIN, d->character ); redit.c: send_to_char_color(buf, d->character); redit.c: for ( ed = room->first_extradesc; ed; ed = ed->next ) redit.c: ROOM_INDEX_DATA *room = ch->dest_buf; redit.c: EXTRA_DESCR_DATA *ed = ch->spare_ptr; redit.c: switch( ch->substate ) redit.c: if ( !ch->dest_buf ) redit.c: bug( "do_redit_reset: sub_obj_extra: NULL ch->dest_buf", 0 ); redit.c: ch->substate = SUB_NONE; redit.c: ch->desc->connected = CON_PLAYING; redit.c: STRFREE( room->description ); redit.c: room->description = copy_buffer( ch ); redit.c: ch->dest_buf = room; redit.c: ch->desc->connected = CON_REDIT; redit.c: ch->substate = SUB_NONE; redit.c: olc_log( ch->desc, "Edited room description" ); redit.c: redit_disp_menu( ch->desc ); redit.c: STRFREE( ed->description ); redit.c: ed->description = copy_buffer( ch ); redit.c: ch->dest_buf = room; redit.c: ch->spare_ptr = ed; redit.c: ch->substate = SUB_NONE; redit.c: ch->desc->connected = CON_REDIT; redit.c: oedit_disp_extra_choice( ch->desc ); redit.c: OLC_MODE(ch->desc) = REDIT_EXTRADESC_CHOICE; redit.c: olc_log( ch->desc, "Edit description for exdesc %s", ed->keyword ); redit.c: ROOM_INDEX_DATA *room = d->character->dest_buf; redit.c: EXIT_DATA *pexit = d->character->spare_ptr; redit.c: EXTRA_DESCR_DATA *ed = d->character->spare_ptr; redit.c: sprintf( log_buf, "OLC: %s edits room %d", d->character->name, OLC_NUM(d)); redit.c: log_string_plus( log_buf, LOG_BUILD, d->character->level ); redit.c: send_to_char("Room saved to memory.\r\n", d->character); redit.c: send_to_char("Invalid choice!\r\n", d->character); redit.c: send_to_char("Do you wish to save this room internally? : ", d->character); redit.c: send_to_char( "Do you wish to save this room internally? : ", d->character ); redit.c: send_to_char("Enter room name:-\r\n| ", d->character); redit.c: d->character->substate = SUB_ROOM_DESC; redit.c: d->character->last_cmd = do_redit_reset; redit.c: send_to_char( "Enter room description:-\r\n", d->character ); redit.c: if ( !room->description ) redit.c: room->description = STRALLOC( "" ); redit.c: start_editing( d->character, room->description ); redit.c: send_to_char( "How many people can fit in the room? ", d->character ); redit.c: send_to_char( "How long before people are teleported out? ", d->character ); redit.c: send_to_char( "Where are they teleported to? ", d->character ); redit.c: send_to_char( "Invalid choice!", d->character ); redit.c: STRFREE( room->name ); redit.c: room->name = STRALLOC( arg ); redit.c: olc_log( d, "Changed name to %s", room->name ); redit.c: send_to_char( "Invalid flag, try again: ", d->character ); redit.c: number -= 1; /* Offset for 0 */ redit.c: TOGGLE_BIT( room->room_flags, 1 << number ); redit.c: IS_SET( room->room_flags, 1 << number ) ? "Added" : "Removed", redit.c: TOGGLE_BIT( room->room_flags, 1 << number ); redit.c: IS_SET( room->room_flags, 1 << number ) ? "Added" : "Removed", redit.c: send_to_char("Invalid choice!", d->character); redit.c: room->sector_type = number; redit.c: room->tunnel = URANGE( 0, number, 1000 ); redit.c: olc_log( d, "Changed tunnel amount to %d", room->tunnel ); redit.c: room->tele_delay = number; redit.c: olc_log( d, "Changed teleportation delay to %d", room->tele_delay ); redit.c: room->tele_vnum = URANGE( 1, number, MAX_VNUM ); redit.c: olc_log( d, "Changed teleportation vnum to %d", room->tele_vnum ); redit.c: d->character->spare_ptr = pexit; redit.c: send_to_char( "Delete which exit? ", d->character ); redit.c: d->character->spare_ptr = NULL; redit.c: d->character->spare_ptr = NULL; redit.c: send_to_char( "This option can only be changed by remaking the exit.\n\r", d->character ); redit.c: send_to_char( "Which room does this exit go to? ", d->character ); redit.c: send_to_char( "What is the vnum of the key to this exit? ", d->character ); redit.c: send_to_char( "What is the keyword to this exit? ", d->character ); redit.c: send_to_char( "Description:\n\r] ", d->character ); redit.c: pexit->description = STRALLOC( "" ); redit.c: pexit->description = STRALLOC( buf ); redit.c: olc_log( d, "Changed %s description to %s", dir_name[pexit->vdir], arg ? arg : "none" ); redit.c: send_to_char( "Invalid direction, try again: ", d->character ); redit.c: d->character->tempnum = number; redit.c: send_to_char( "An exit in that direction already exists.\n\r", d->character ); redit.c: d->character->tempnum = number; redit.c: send_to_char( "Which room does this exit go to? ", d->character ); redit.c: send_to_char( "Non-existant room.\n\r", d->character ); redit.c: pexit = make_exit( room, tmp, d->character->tempnum ); redit.c: pexit->keyword = STRALLOC( "" ); redit.c: pexit->description = STRALLOC( "" ); redit.c: pexit->key = -1; redit.c: pexit->exit_info = 0; redit.c: act( AT_IMMORT, "$n reveals a hidden passage!", d->character, NULL, NULL, TO_ROOM ); redit.c: d->character->spare_ptr = pexit; redit.c: olc_log( d, "Added %s exit to %d", dir_name[pexit->vdir], pexit->vnum ); redit.c: send_to_char( "Exit must be specified in a number.\n\r", d->character ); redit.c: send_to_char( "That exit does not exist.\n\r", d->character ); redit.c: olc_log( d, "Removed %s exit", dir_name[pexit->vdir] ); redit.c: send_to_char( "Invalid room number, try again : ", d->character); redit.c: send_to_char( "That room does not exist, try again: ", d->character ); redit.c: /*pexit->vnum = number;*/ redit.c: pexit->to_room = get_room_index( number ); redit.c: /*olc_log( d, "%s exit vnum changed to %d", dir_name[pexit->vdir], pexit->vnum );*/ redit.c: dir_name[pexit->vdir], pexit->to_room->vnum ); redit.c: STRFREE( pexit->keyword ); redit.c: pexit->keyword = STRALLOC( arg ); redit.c: olc_log( d, "Changed %s keyword to %s", dir_name[pexit->vdir], pexit->keyword ); redit.c: send_to_char( "Invalid vnum, try again: ", d->character ); redit.c: pexit->key = number; redit.c: olc_log( d, "%s key vnum is now %d", dir_name[pexit->vdir], pexit->key ); redit.c: || ( 1 << (number-1) == EX_RES1) redit.c: || ( 1 << (number-1) == EX_RES2) redit.c: || ( 1 << (number-1) == EX_PORTAL) ) redit.c: send_to_char("That's not a valid choice!\r\n", d->character); redit.c: number -= 1; redit.c: TOGGLE_BIT( pexit->exit_info, 1 << number ); redit.c: IS_SET( pexit->exit_info, 1 << number ) ? "Added" : "Removed", redit.c: dir_name[pexit->vdir] ); redit.c: send_to_char( "Not found, try again: ", d->character ); redit.c: olc_log( d, "Deleted exdesc %s", ed->keyword ); redit.c: UNLINK( ed, room->first_extradesc, room->last_extradesc, next, prev ); redit.c: STRFREE( ed->keyword ); redit.c: STRFREE( ed->description ); redit.c: top_ed--; redit.c: if ( !ed->keyword || !ed->description ) redit.c: send_to_char( "No keyword and/or description, junking...", d->character ); redit.c: UNLINK( ed, room->first_extradesc, room->last_extradesc, next, prev ); redit.c: STRFREE( ed->keyword ); redit.c: STRFREE( ed->keyword ); redit.c: top_ed--; redit.c: d->character->spare_ptr = NULL; redit.c: send_to_char( "Keywords, seperated by spaces: ", d->character ); redit.c: d->character->substate = SUB_ROOM_EXTRA; redit.c: d->character->last_cmd = do_redit_reset; redit.c: send_to_char( "Enter new extradesc description: \n\r", d->character ); redit.c: start_editing( d->character, ed->description ); redit.c: send_to_char( "A extradesc with that keyword already exists.\n\r", d->character ); redit.c: olc_log( d, "Changed exkey %s to %s", ed->keyword, arg ); redit.c: STRFREE( ed->keyword ); redit.c: ed->keyword = STRALLOC( arg ); redit.c: LINK( ed, room->first_extradesc, room->last_extradesc, next, prev ); redit.c: ed->keyword = STRALLOC( "" ); redit.c: ed->description = STRALLOC( "" ); redit.c: d->character->spare_ptr = ed; redit.c: send_to_char( "Delete which extra description? ", d->character ); redit.c: send_to_char( "Not found, try again: ", d->character ); redit.c: d->character->spare_ptr = ed; remort.c: if( IS_SET( race_table[ch->race]->class_restriction, 1 << x ) ) remort.c: if( x != ch->class && str_cmp( class_table[x]->who_name, "Dragon" )) remort.c: if( strlen(buf)+strlen(class_table[x]->who_name) > 77 ) remort.c: strcat( buf, class_table[x]->who_name ); remort.c: if( ch->level < LEVEL_PCAVATAR ) remort.c: if( ch->level2 != -1 ) remort.c: if( IS_SET( race_table[ch->race]->class_restriction, 1 << x ) ) remort.c: if( !str_cmp( class_table[x]->who_name, arg ) ) remort.c: if( ch->class == x ) remort.c: ch->level2 = ch->level; remort.c: ch->level = 1; remort.c: ch->class2 = ch->class; remort.c: ch->class = x; remort.c: ch->max_hit = 20; remort.c: ch->hit = ch->max_hit + race_table[ch->race]->hit; remort.c: ch->max_mana = 100; remort.c: ch->mana = ch->max_mana + race_table[ch->race]->mana; remort.c: ch->max_move = 100; remort.c: ch->move = ch->max_move; remort.c: ch->exp = 0; remort.c: DISPOSE( ch->pcdata->rank ); remort.c: ch->pcdata->rank = str_dup( "" ); remort.c: race_table[ch->race]->race_name, class_table[x]->who_name ); remort.c: sprintf( buf, "%s has just remorted!", ch->name ); requests.c: * -----------------------------------------------------------| (0...0) * requests.c: * -----------------------------------------------------------| {o o} * requests.c: * ------------------------------------------------------------------------ * requests.c: * ------------------------------------------------------------------------ * requests.c: * - Only handles who requests currently, but will hopefully support much * requests.c: if ( (REQ = open( REQUEST_PIPE, O_RDONLY | O_NONBLOCK )) == -1 ) reset.c: * -----------------------------------------------------------| (0...0) * reset.c: * -----------------------------------------------------------| {o o} * reset.c: * ------------------------------------------------------------------------ * reset.c: * ------------------------------------------------------------------------ * reset.c: * and that pArea->reset_first is the first reset in pArea. Likewise, reset.c: * pArea->reset_last *MUST* be the last reset in pArea. Weird and reset.c: * of them good. The most important are your pRoom->contents, reset.c: * pRoom->people, rch->carrying, obj->contains, and pArea->reset_first .. reset.c: * pArea->reset_last. -- Altrag reset.c: for ( pReset = pArea->first_reset; pReset; pReset = pReset->next ) reset.c:/* This is one loopy function. Ugh. -- Altrag */ reset.c: switch( pReset->command ) reset.c: pRoom = get_room_index( pReset->arg3 ); reset.c: if ( pReset->command == 'H' ) reset.c: pr = pReset->arg1; reset.c: pr = pReset->arg3; reset.c: for ( reset = pReset->prev; reset; reset = reset->prev ) reset.c: if ( (reset->command == 'O' || reset->command == 'P' || reset.c: reset->command == 'G' || reset->command == 'E') && reset.c: (!pr || pr == reset->arg1) && get_obj_index(reset->arg1) ) reset.c: switch(pReset->arg2 & BIT_RESET_TYPE_MASK) reset.c: return (aRoom->vnum == pReset->arg1); reset.c: for ( reset = pReset->prev; reset; reset = reset->prev ) reset.c: if ( reset->command == 'M' && get_mob_index(reset->arg1) ) reset.c: for ( reset = pReset->prev; reset; reset = reset->prev ) reset.c: if ( (reset->command == 'O' || reset->command == 'P' || reset.c: reset->command == 'G' || reset->command == 'E') && reset.c: (!pReset->arg1 || pReset->arg1 == reset->arg1) && reset.c: get_obj_index(reset->arg1) ) reset.c: for ( reset = pReset->prev; reset; reset = reset->prev ) reset.c: if ( reset->command == 'M' && get_mob_index(reset->arg1) ) reset.c: pRoom = get_room_index( pReset->arg1 ); reset.c: if ( !pRoom || pRoom->area != pArea || (aRoom && pRoom != aRoom) ) reset.c: pRoom = ch->in_room; reset.c: rprev = reset->prev; \ reset.c: if ( pReset->command == 'M' ) reset.c: for ( reset = pReset->next; reset; reset = reset->next ) reset.c: if ( reset->command == 'M' ) reset.c: if ( reset->command == 'G' || reset->command == 'E' ) reset.c: if ( reset->command == 'B' && reset.c: (reset->arg2 & BIT_RESET_TYPE_MASK) == BIT_RESET_MOBILE && reset.c: (!reset->arg1 || reset->arg1 == pReset->arg1) ) reset.c: else if ( pReset->command == 'O' || pReset->command == 'P' || reset.c: pReset->command == 'G' || pReset->command == 'E' ) reset.c: for ( reset = pReset->next; reset; reset = reset->next ) reset.c: if ( reset->command == 'T' && reset.c: (!reset->arg3 || reset->arg3 == pReset->arg1) ) reset.c: if ( reset->command == 'H' && reset.c: (!reset->arg1 || reset->arg1 == pReset->arg1) ) reset.c: if ( reset->command == 'P' && (reset->arg3 > 0 || reset.c: pReset->command != 'P' || reset->extra-1 == pReset->extra) && reset.c: (!reset->arg3 || reset->arg3 == pReset->arg1) ) reset.c: if ( reset->command == 'B' && reset.c: (reset->arg2 & BIT_RESET_TYPE_MASK) == BIT_RESET_OBJECT && reset.c: (!reset->arg1 || reset->arg1 == pReset->arg1) ) reset.c: if ( (reset->command == 'O' || reset->command == 'P' || reset.c: reset->command == 'G' || reset->command == 'E') && reset.c: reset->arg1 == pReset->arg1 ) reset.c: if ( pReset == pArea->last_mob_reset ) reset.c: pArea->last_mob_reset = NULL; reset.c: if ( pReset == pArea->last_obj_reset ) reset.c: pArea->last_obj_reset = NULL; reset.c: UNLINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: for ( reset = pArea->last_reset; reset; reset = reset->prev ) reset.c: switch(reset->command) reset.c: for ( reset = pArea->first_reset; reset; reset = reset->next ) reset.c: switch(reset->command) reset.c: if ( (pObjTo = get_obj_index(reset->arg1)) && reset.c: is_name(arg, pObjTo->name) && ++cnt == num ) reset.c: for ( reset = pArea->last_reset; reset; reset = reset->prev ) reset.c: switch(reset->command) reset.c: for ( reset = pArea->first_reset; reset; reset = reset->next ) reset.c: switch(reset->command) reset.c: if ( (pMob = get_mob_index(reset->arg1)) && reset.c: is_name(arg, pMob->player_name) && ++cnt == num ) reset.c: char *nm = (ch->substate == SUB_REPEATCMD ? "" : (aRoom ? "rreset " reset.c: ch->substate = SUB_REPEATCMD; reset.c: ch->dest_buf = (aRoom ? (void *)aRoom : (void *)pArea); reset.c: if ( !pArea->first_reset ) reset.c: num = pArea->nplayer; reset.c: pArea->nplayer = 0; reset.c: pArea->nplayer = num; reset.c: start = is_number(arg) ? atoi(arg) : -1; reset.c: end = is_number(arg) ? atoi(arg) : -1; reset.c: reset->prev = pReset->prev; reset.c: reset->next = pReset->next; reset.c: if ( !pReset->prev ) reset.c: pArea->first_reset = reset; reset.c: pReset->prev->next = reset; reset.c: if ( !pReset->next ) reset.c: pArea->last_reset = reset; reset.c: pReset->next->prev = reset; reset.c: add_reset(pArea, pReset->command, pReset->extra, pReset->arg1, reset.c: pReset->arg2, pReset->arg3); reset.c: place_reset(pArea, pReset->command, pReset->extra, pReset->arg1, reset.c: pReset->arg2, pReset->arg3); reset.c: INSERT(pReset, reset, pArea->first_reset, next, prev); reset.c: start = is_number(arg) ? atoi(arg) : -1; reset.c: end = is_number(arg) ? atoi(arg) : -1; reset.c: for ( pReset = pArea->first_reset; pReset; pReset = reset ) reset.c: reset = pReset->next; reset.c: if ( (end != -1 && num > end) || (end == -1 && found) ) reset.c: UNLINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: if ( pReset == pArea->last_mob_reset ) reset.c: pArea->last_mob_reset = NULL; reset.c: top_reset--; reset.c: for ( pReset = pArea->first_reset; pReset; pReset = pReset->next ) reset.c: pReset = make_reset('M', 0, pMob->vnum, num, pRoom->vnum); reset.c: LINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: while ( reset->next && (reset->next->command == 'H' || reset.c: reset->next->command == 'T' || reset.c: (reset->next->command == 'B' && reset.c: (reset->next->arg2 & BIT_RESET_TYPE_MASK) == BIT_RESET_OBJECT && reset.c: (!reset->next->arg1 || reset->next->arg1 == pReset->arg1))) ) reset.c: reset = reset->next; reset.c:/* pReset = make_reset('P', 1, pObj->vnum, num, reset->arg1);*/ reset.c: pReset = make_reset('P', reset->extra+1, pObj->vnum, vnum, 0); reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: while ( reset->next && reset->next->command == 'B' && reset.c: (reset->next->arg2 & BIT_RESET_TYPE_MASK) == BIT_RESET_OBJECT && reset.c: (!reset->next->arg1 || reset->next->arg1 == pReset->arg1) ) reset.c: reset = reset->next; reset.c: pReset = make_reset('G', 1, pObj->vnum, vnum, 0); reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: while ( reset->next && reset->next->command == 'B' && reset.c: (reset->next->arg2 & BIT_RESET_TYPE_MASK) == BIT_RESET_OBJECT && reset.c: (!reset->next->arg1 || reset->next->arg1 == pReset->arg1) ) reset.c: reset = reset->next; reset.c: for ( pReset = reset->next; pReset; pReset = pReset->next ) reset.c: if ( pReset->command == 'M' ) reset.c: if ( pReset->command == 'E' && pReset->arg3 == num ) reset.c: pReset = make_reset('E', 1, pObj->vnum, vnum, num); reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: if ( pRoom->area != pArea ) reset.c: pReset = make_reset('O', 0, pObj->vnum, vnum, pRoom->vnum); reset.c: LINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: if ( pRoom->area != pArea ) reset.c: pReset = make_reset('R', 0, pRoom->vnum, vnum, 0); reset.c: LINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: num = is_number(arg) ? atoi(arg) : -1; reset.c: chrg = is_number(arg) ? atoi(arg) : -1; reset.c: vnum = (aRoom ? aRoom->vnum : ch->in_room->vnum); reset.c:/* vnum = reset->arg1;*/ reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: LINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: pRoom = ch->in_room; reset.c: vnum = pRoom->vnum; reset.c: pRoom = ch->in_room; reset.c: vnum = pRoom->vnum; reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: LINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: LINK(pReset, pArea->first_reset, pArea->last_reset, next, prev); reset.c:/* pReset = make_reset('H', 1, reset->arg1, 0, 0);*/ reset.c: INSERT(pReset, reset, pArea->last_reset, prev, next); reset.c: if ( ch->substate == SUB_REPEATCMD ) reset.c: ch->substate = SUB_NONE; reset.c: ch->substate = SUB_REPEATCMD; reset.c: ch->last_cmd = (aRoom ? do_rreset : do_reset); reset.c: if ( ch->substate == SUB_REPEATCMD ) reset.c: pArea = ch->dest_buf; reset.c: if ( pArea && pArea != ch->pcdata->area && pArea != ch->in_room->area ) reset.c: for ( tmp = first_build; tmp; tmp = tmp->next ) reset.c: for ( tmp = first_area; tmp; tmp = tmp->next ) reset.c: ch->name); /* why was this cast to an int? */ reset.c: ch->substate = SUB_NONE; reset.c: ch->dest_buf = NULL; reset.c: ch_printf(ch, "Editing resets for area: %s\n\r", pArea->name); reset.c: ch->substate = SUB_NONE; reset.c: ch->dest_buf = NULL; reset.c: for ( pArea = first_build; pArea; pArea = pArea->next ) reset.c: if ( !str_cmp(fname, pArea->filename) ) reset.c: pArea = ch->pcdata->area; reset.c: pArea = ch->in_room->area; reset.c: pArea = ch->pcdata->area; reset.c: if ( ch->substate == SUB_REPEATCMD ) reset.c: pRoom = ch->dest_buf; reset.c: bug("do_rreset: %s's dest_buf points to invalid room", (int)ch->name); reset.c: ch->substate = SUB_NONE; reset.c: ch->dest_buf = NULL; reset.c: pRoom = ch->in_room; reset.c: edit_reset(ch, argument, pRoom->area, pRoom); reset.c: if ( (cm == 'O' || cm == 'P') && obj->pIndexData->vnum == OBJ_VNUM_TRAP ) reset.c: add_reset(pArea, 'T', obj->value[3], obj->value[1], obj->value[0], v3); reset.c: add_reset( pArea, cm, (cm == 'P' ? iNest : 1), obj->pIndexData->vnum, reset.c: /* Only add hide for in-room objects that are hidden and cant be moved, as reset.c: hide is an update reset, not a load-only reset. */ reset.c: !IS_SET(obj->wear_flags, ITEM_TAKE) ) reset.c: for ( inobj = obj->first_content; inobj; inobj = inobj->next_content ) reset.c: if ( inobj->pIndexData->vnum == OBJ_VNUM_TRAP ) reset.c: for ( inobj = obj->first_content; inobj; inobj = inobj->next_content ) reset.c: iNest--; reset.c: for ( rch = pRoom->first_person; rch; rch = rch->next_in_room ) reset.c: add_reset( pArea, 'M', 1, rch->pIndexData->vnum, rch->pIndexData->count, reset.c: pRoom->vnum ); reset.c: for ( obj = rch->first_carrying; obj; obj = obj->next_content ) reset.c: if ( obj->wear_loc == WEAR_NONE ) reset.c: add_obj_reset( pArea, 'E', obj, 1, obj->wear_loc ); reset.c: for ( obj = pRoom->first_content; obj; obj = obj->next_content ) reset.c: add_obj_reset( pArea, 'O', obj, 1, pRoom->vnum ); reset.c: for ( pexit = pRoom->first_exit; pexit; pexit = pexit->next ) reset.c: if ( !IS_SET( pexit->exit_info, EX_ISDOOR ) ) reset.c: if ( IS_SET( pexit->exit_info, EX_CLOSED ) ) reset.c: if ( IS_SET( pexit->exit_info, EX_LOCKED ) ) reset.c: add_reset( pArea, 'D', 0, pRoom->vnum, pexit->vdir, state ); reset.c: for ( pReset = pArea->first_reset; pReset; ) reset.c: if ( pReset->command != 'R' && is_room_reset( pReset, pRoom, pArea ) ) reset.c: providing it exists, or first_reset if it doesnt. -- Altrag */ reset.c: RESET_DATA *prev = pReset->prev; reset.c: pReset = (prev ? prev->next : pArea->first_reset); reset.c: pReset = pReset->next; reset.c: if ( IS_NPC(ch) || get_trust(ch) < LEVEL_SAVIOR || !ch->pcdata || reset.c: !ch->pcdata->area ) reset.c: pArea = ch->pcdata->area; reset.c: if ( pRoom->area != pArea && get_trust(ch) < LEVEL_GREATER ) reset.c: if ( pArea->first_reset ) reset.c: if ( IS_NPC(ch) || get_trust(ch) < LEVEL_SAVIOR || !ch->pcdata || reset.c: !ch->pcdata->area ) reset.c: pArea = ch->pcdata->area; reset.c: if ( pArea->first_reset ) reset.c: for ( vnum = pArea->low_r_vnum; vnum <= pArea->hi_r_vnum; vnum++ ) reset.c: if ( !(pRoom = get_room_index(vnum)) || pRoom->area != pArea ) reset.c: int min = UMAX(pArea->low_soft_range, 1); reset.c: int max = UMIN(pArea->hi_soft_range, min + 15); reset.c: if ( pObjIndex->level > 0 ) reset.c: olevel = UMIN(pObjIndex->level, MAX_LEVEL); reset.c: switch ( pObjIndex->item_type ) reset.c: case ITEM_SCROLL: olevel = pObjIndex->value[0]; break; reset.c: if ( !pArea->first_reset ) reset.c:/* bug( "%s: reset_area: no resets", (int)pArea->filename ); reset.c:* Why bug builders about stupid stuff like this anyway? -- Scion */ reset.c: for ( pReset = pArea->first_reset; pReset; pReset = pReset->next ) reset.c: switch( pReset->command ) reset.c: sprintf( buf, "%s Reset_area: bad command %c.", pArea->filename, reset.c: pReset->command ); reset.c: if ( !(pMobIndex = get_mob_index(pReset->arg1)) ) reset.c: sprintf( buf, "%s Reset_area: 'M': bad mob vnum %d.", pArea->filename, reset.c: pReset->arg1 ); reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg3)) ) reset.c: sprintf( buf, "%s Reset_area: 'M': bad room vnum %d.", pArea->filename, reset.c: pReset->arg3 ); reset.c: if ( pMobIndex->count >= pReset->arg2 ) reset.c: ROOM_INDEX_DATA *pRoomPrev = get_room_index(pReset->arg3 - 1); reset.c: if ( pRoomPrev && IS_SET(pRoomPrev->room_flags, ROOM_PET_SHOP) ) reset.c: xSET_BIT(mob->act, ACT_PET); reset.c: xSET_BIT(mob->affected_by, AFF_INFRARED); reset.c: level = URANGE(0, mob->level - 2, LEVEL_AVATAR); reset.c: if ( !(pObjIndex = get_obj_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: if ( mob->pIndexData->pShop ) reset.c: xSET_BIT(obj->extra_flags, ITEM_INVENTORY); reset.c: obj->level = URANGE(0, obj->level, LEVEL_AVATAR); reset.c: if ( pReset->command == 'E' ) reset.c: equip_char(mob, obj, pReset->arg3); reset.c: if ( !(pObjIndex = get_obj_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg3)) ) reset.c: sprintf ( buf, "%s Reset_area: 'O': bad room vnum %d.", pArea->filename, reset.c: pReset->arg3 ); reset.c: if ( pArea->nplayer > 0 || reset.c: count_obj_list(pObjIndex, pRoomIndex->first_content) > 0 ) reset.c: obj->level = UMIN(obj->level, LEVEL_AVATAR); reset.c: obj->cost = 0; reset.c: if ( !(pObjIndex = get_obj_index(pReset->arg1)) ) reset.c: sprintf ( buf, "%s Reset_area: 'P': bad obj vnum %d.", pArea->filename, reset.c: pReset->arg1 ); reset.c: if ( pReset->arg3 > 0 ) reset.c: if ( !(pObjToIndex = get_obj_index(pReset->arg3)) ) reset.c: sprintf(buf,"%s Reset_area: 'P': bad objto vnum %d.",pArea->filename, reset.c: pReset->arg3 ); reset.c: if ( pArea->nplayer > 0 || reset.c: !to_obj->in_room || reset.c: count_obj_list(pObjIndex, to_obj->first_content) > 0 ) reset.c: for ( iNest = 0; iNest < pReset->extra; iNest++ ) reset.c: if ( !(to_obj = to_obj->last_content) ) reset.c: ,pArea->filename, pReset->arg1 ); reset.c: iNest = -1; reset.c: obj = create_object(pObjIndex, number_fuzzy(UMAX(generate_itemlevel(pArea, pObjIndex),to_obj->level))); reset.c: obj->level = UMIN(obj->level, LEVEL_AVATAR); reset.c: if ( IS_SET(pReset->extra, TRAP_OBJ) ) reset.c: if ( pReset->arg3 > 0 ) reset.c: if ( !(pObjToIndex = get_obj_index(pReset->arg3)) ) reset.c: ,pArea->filename, pReset->arg3 ); reset.c: if ( pArea->nplayer > 0 || reset.c: (to_obj->carried_by && !IS_NPC(to_obj->carried_by)) || reset.c: pobj = make_trap( pReset->arg2, pReset->arg1, reset.c: number_fuzzy(to_obj->level), pReset->extra ); reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg3)) ) reset.c: sprintf(buf,"%s Reset_area: 'T': bad room %d.", pArea->filename, reset.c: pReset->arg3 ); reset.c: if ( pArea->nplayer > 0 || reset.c: pRoomIndex->first_content) > 0 ) reset.c: to_obj = make_trap(pReset->arg1, pReset->arg1, 10, pReset->extra); reset.c: if ( pReset->arg1 > 0 ) reset.c: if ( !(pObjToIndex = get_obj_index(pReset->arg1)) ) reset.c: sprintf(buf,"%s Reset_area: 'H': bad objto vnum %d.",pArea->filename, reset.c: pReset->arg1 ); reset.c: if ( pArea->nplayer > 0 || reset.c: !to_obj->in_room || reset.c: to_obj->in_room->area != pArea || reset.c: xSET_BIT(to_obj->extra_flags, ITEM_HIDDEN); reset.c: switch(pReset->arg2 & BIT_RESET_TYPE_MASK) reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: doornum = (pReset->arg2 & BIT_RESET_DOOR_MASK) reset.c: plc = &pexit->exit_info; reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: plc = &pRoomIndex->room_flags; reset.c: if ( pReset->arg1 > 0 ) reset.c: if ( !(pObjToIndex = get_obj_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: !to_obj->in_room || reset.c: to_obj->in_room->area != pArea ) reset.c: plc = &to_obj->extra_flags; reset.c: plc = &mob->affected_by; reset.c: pArea->filename, pReset->arg2 ); reset.c: if ( IS_SET(pReset->arg2, BIT_RESET_SET) ) reset.c: xSET_BIT(*(EXT_BV *)plc, pReset->arg3); reset.c: SET_BIT(*(int *)plc, pReset->arg3); reset.c: else if ( IS_SET(pReset->arg2, BIT_RESET_TOGGLE) ) reset.c: xTOGGLE_BIT(*(EXT_BV *)plc, pReset->arg3); reset.c: TOGGLE_BIT(*(int *)plc, pReset->arg3); reset.c: xREMOVE_BIT(*(EXT_BV *)plc, pReset->arg3); reset.c: REMOVE_BIT(*(int *)plc, pReset->arg3); reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: if ( !(pexit = get_exit(pRoomIndex, pReset->arg2)) ) reset.c: switch( pReset->arg3 ) reset.c: REMOVE_BIT(pexit->exit_info, EX_CLOSED); reset.c: REMOVE_BIT(pexit->exit_info, EX_LOCKED); reset.c: SET_BIT( pexit->exit_info, EX_CLOSED); reset.c: REMOVE_BIT(pexit->exit_info, EX_LOCKED); reset.c: if ( IS_SET(pexit->exit_info, EX_xSEARCHABLE) ) reset.c: SET_BIT( pexit->exit_info, EX_SECRET); reset.c: SET_BIT( pexit->exit_info, EX_CLOSED); reset.c: SET_BIT( pexit->exit_info, EX_LOCKED); reset.c: if ( IS_SET(pexit->exit_info, EX_xSEARCHABLE) ) reset.c: SET_BIT( pexit->exit_info, EX_SECRET); reset.c: if ( !(pRoomIndex = get_room_index(pReset->arg1)) ) reset.c: pArea->filename, pReset->arg1 ); reset.c: randomize_exits(pRoomIndex, pReset->arg2-1); reset.c: for ( pReset = pArea->first_reset; pReset; pReset = pReset->next ) reset.c: switch( pReset->command ) reset.c: pReset->command, pReset->extra, pReset->arg1, pReset->arg2, reset.c: pReset->arg3); reset.c: if ( !(mob = get_mob_index(pReset->arg1)) ) reset.c: mname = mob->player_name; reset.c: if ( !(room = get_room_index(pReset->arg3)) ) reset.c: rname = room->name; reset.c: sprintf( pbuf, "%s (%d) -> %s (%d) [%d]", mname, pReset->arg1, rname, reset.c: pReset->arg3, pReset->arg2 ); reset.c: if ( (room = get_room_index(pReset->arg3-1)) && reset.c: IS_SET(room->room_flags, ROOM_PET_SHOP) ) reset.c: if ( !(obj = get_obj_index(pReset->arg1)) ) reset.c: oname = obj->name; reset.c: sprintf( pbuf, "%s (%d) -> %s (%s) [%d]", oname, pReset->arg1, mname, reset.c: (pReset->command == 'G' ? "carry" : wear_locs[pReset->arg3]), reset.c: pReset->arg2 ); reset.c: if ( mob && mob->pShop ) reset.c: if ( !(obj = get_obj_index(pReset->arg1)) ) reset.c: oname = obj->name; reset.c: if ( !(room = get_room_index(pReset->arg3)) ) reset.c: rname = room->name; reset.c: sprintf( pbuf, "(object) %s (%d) -> %s (%d) [%d]\n\r", oname, reset.c: pReset->arg1, rname, pReset->arg3, pReset->arg2 ); reset.c: if ( !(obj = get_obj_index(pReset->arg1)) ) reset.c: oname = obj->name; reset.c: if ( pReset->arg3 > 0 ) reset.c: obj2 = get_obj_index(pReset->arg3); reset.c: rname = (obj2 ? obj2->name : "Object2: *BAD VNUM*"); reset.c: else if ( pReset->extra == 0 ) reset.c: rname = lastobj->name; reset.c: reset = lo_reset->next; reset.c: for ( iNest = 0; iNest < pReset->extra; iNest++ ) reset.c: for ( ; reset; reset = reset->next ) reset.c: if ( reset->command == 'O' || reset->command == 'G' || reset.c: reset->command == 'E' || (reset->command == 'P' && reset.c: !reset->arg3 && reset->extra == iNest) ) reset.c: if ( !reset || reset->command != 'P' ) reset.c: else if ( !(obj2 = get_obj_index(reset->arg1)) ) reset.c: rname = obj2->name; reset.c: sprintf( pbuf, "(Put) %s (%d) -> %s (%d) [%d] {nest %d}\n\r", oname, reset.c: pReset->arg1, rname, (obj2 ? obj2->vnum : pReset->arg3), reset.c: pReset->arg2, pReset->extra ); reset.c: sprintf(pbuf, "TRAP: %d %d %d %d (%s)\n\r", pReset->extra, pReset->arg1, reset.c: pReset->arg2, pReset->arg3, flag_string(pReset->extra, trap_flags)); reset.c: if ( pReset->arg1 > 0 ) reset.c: if ( !(obj2 = get_obj_index(pReset->arg1)) ) reset.c: rname = obj2->name; reset.c: (pReset->arg1 > 0 ? pReset->arg1 : obj ? obj->vnum : 0)); reset.c: if ( IS_SET(pReset->arg2, BIT_RESET_SET) ) reset.c: else if ( IS_SET(pReset->arg2, BIT_RESET_TOGGLE) ) reset.c: switch(pReset->arg2 & BIT_RESET_TYPE_MASK) reset.c: if ( !(room = get_room_index(pReset->arg1)) ) reset.c: rname = room->name; reset.c: door = (pReset->arg2 & BIT_RESET_DOOR_MASK) reset.c: rname, pReset->arg1); reset.c: if ( !(room = get_room_index(pReset->arg1)) ) reset.c: rname = room->name; reset.c: sprintf(pbuf, "Room %s (%d)", rname, pReset->arg1); reset.c: if ( pReset->arg1 > 0 ) reset.c: if ( !(obj2 = get_obj_index(pReset->arg1)) ) reset.c: rname = obj2->name; reset.c: (pReset->arg1 > 0 ? pReset->arg1 : obj ? obj->vnum : 0)); reset.c: if ( pReset->arg1 > 0 ) reset.c: if ( !(mob2 = get_mob_index(pReset->arg1)) ) reset.c: rname = mob2->player_name; reset.c: (pReset->arg1 > 0 ? pReset->arg1 : mob ? mob->vnum : 0)); reset.c: sprintf(pbuf, "bad type %d", pReset->arg2 & BIT_RESET_TYPE_MASK); reset.c: tmp = meb(pReset->arg3); reset.c: ext_flag_string(&tmp, flagarray), pReset->arg3); reset.c: flag_string(pReset->arg3, flagarray), pReset->arg3); reset.c: sprintf(pbuf, "; flags %d\n\r", pReset->arg3); reset.c: pReset->arg2 = URANGE(0, pReset->arg2, MAX_DIR+1); reset.c: if ( !(room = get_room_index(pReset->arg1)) ) reset.c: rname = room->name; reset.c: switch(pReset->arg3) reset.c: pReset->arg3, dir_name[pReset->arg2], reset.c: (room && get_exit(room, pReset->arg2) ? "" : " (NO EXIT!)"), reset.c: pReset->arg2, rname, pReset->arg1); reset.c: if ( !(room = get_room_index(pReset->arg1)) ) reset.c: rname = room->name; reset.c: sprintf(pbuf, "Randomize exits 0 to %d -> %s (%d)\n\r", pReset->arg2, reset.c: rname, pReset->arg1); reset.c: if ( start == -1 || num >= start ) reset.c: if ( end != -1 && num >= end ) reset.c: for ( pReset = pArea->first_reset; pReset; pReset = pReset->next ) reset.c: switch(pReset->command) reset.c: if ( pReset->arg3 == 0 ) reset.c: pReset->extra = 1000000; reset.c: else if ( lastobj->command != 'P' || lastobj->arg3 > 0 ) reset.c: pReset->extra = 0; reset.c: pReset->extra = lastobj->extra+1; reset.c: * Create a new reset (for online building) -Thoric reset.c: pReset->command = letter; reset.c: pReset->extra = extra; reset.c: pReset->arg1 = arg1; reset.c: pReset->arg2 = arg2; reset.c: pReset->arg3 = arg3; reset.c: * Add a reset to an area -Thoric reset.c: case 'M': tarea->last_mob_reset = pReset; break; reset.c: case 'O': tarea->last_obj_reset = pReset; break; reset.c: tarea->last_obj_reset = pReset; reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: * Place a reset into an area, insert sorting it -Thoric reset.c: tarea->last_mob_reset = pReset; reset.c: if ( tarea->first_reset ) reset.c: for ( tmp = tarea->last_reset; tmp; tmp = tmp->prev ) reset.c: if ( tmp->command == letter ) reset.c: for ( ; tmp && tmp->command == letter && tmp->arg1 > arg1; tmp = tmp->prev ); reset.c: for ( ; tmp && tmp->command == letter && tmp->arg1 == tmp->arg1 && tmp->arg2 > arg2; tmp = tmp->prev ); reset.c: INSERT( pReset, tmp, tarea->first_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: for ( tmp = tarea->last_reset; tmp; tmp = tmp->prev ) reset.c: if ( tmp->command == letter ) reset.c: tmp2 = tmp ? tmp->next : NULL; reset.c: for ( ; tmp; tmp = tmp->prev ) reset.c: if ( tmp->command == letter && tmp->arg3 <= arg3 ) reset.c: tmp2 = tmp->next; reset.c: if ( tmp->arg3 == arg3 ) reset.c: for ( ; tmp; tmp = tmp->prev ) reset.c: if ( tmp->command == letter reset.c: && tmp->arg3 == tmp->arg3 reset.c: && tmp->arg1 <= arg1 ) reset.c: tmp2 = tmp->next; reset.c: for ( ; tmp2; tmp2 = tmp2->next ) reset.c: if ( tmp2->command != 'E' && tmp2->command != 'G' ) reset.c: for ( ; tmp2; tmp2 = tmp2->next ) reset.c: if ( tmp2->command != 'P' && tmp2->command != 'T' reset.c: && tmp2->command != 'H' ) reset.c: INSERT( pReset, tmp2, tarea->first_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: if ( (tmp=tarea->last_mob_reset) != NULL ) reset.c: if ( tmp->next ) reset.c: tmp = tmp->next; reset.c: if ( tmp && tmp->command == 'E' ) reset.c: for ( ; tmp && tmp->command == 'E' && tmp->arg1 < arg1; tmp = tmp->next ); reset.c: for ( ; tmp && tmp->command == 'E'; tmp = tmp->next ); reset.c: if ( tmp && tmp->command == 'G' && letter == 'G' ) reset.c: for ( ; tmp && tmp->command == 'G' && tmp->arg1 < arg1; tmp = tmp->next ); reset.c: INSERT( pReset, tmp, tarea->first_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: && (tmp=tarea->last_obj_reset) != NULL ) reset.c: if ( (tmp=tmp->next) != NULL ) reset.c: INSERT( pReset, tmp, tarea->first_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: for ( tmp = tarea->last_reset; tmp; tmp = tmp->prev ) reset.c: if ( (tmp->command == 'O' || tmp->command == 'G' reset.c: || tmp->command == 'E' || tmp->command == 'P') reset.c: && tmp->arg1 == arg3 ) reset.c: if ( tmp->next ) reset.c: tmp = tmp->next; reset.c: if ( tmp && tmp->command == 'P' ) reset.c: if ( letter == 'P' && tmp->arg3 == arg3 ) reset.c: for ( ; tmp && tmp->command == 'P' && tmp->arg3 == arg3 && tmp->arg1 < arg1; tmp = tmp->next ); reset.c: for ( ; tmp && tmp->command == 'P' && tmp->arg3 == arg3; tmp = tmp->next ); reset.c: if ( tmp && tmp->command == 'H' ) reset.c: if ( letter == 'H' && tmp->arg3 == arg3 ) reset.c: for ( ; tmp && tmp->command == 'H' && tmp->arg3 == arg3 && tmp->arg1 < arg1; tmp = tmp->next ); reset.c: for ( ; tmp && tmp->command == 'H' && tmp->arg3 == arg3; tmp = tmp->next ); reset.c: if ( tmp && tmp->command == 'T' && letter == 'T' ) reset.c: for ( ; tmp && tmp->command == 'T' && tmp->arg3 == arg3 && tmp->arg1 < arg1; tmp = tmp->next ); reset.c: INSERT( pReset, tmp, tarea->first_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); reset.c: LINK( pReset, tarea->first_reset, tarea->last_reset, next, prev ); save.c: * -----------------------------------------------------------| (0...0) * save.c: * -----------------------------------------------------------| {o o} * save.c: * ------------------------------------------------------------------------ * save.c: * ------------------------------------------------------------------------ * save.c: * Array to keep track of equipment temporarily. -Thoric save.c: * Array of containers read for proper re-nesting of objects. save.c: DWORD dwUser, /* application-defined instance data */ save.c: * Un-equip character before saving to ensure proper -Thoric save.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) save.c: if ( obj->wear_loc > -1 && obj->wear_loc < MAX_WEAR ) save.c: if ( (get_trust( ch ) >= obj->level) || (obj->level < LEVEL_IMMORTAL) ) save.c: if ( !save_equipment[obj->wear_loc][x] ) save.c: save_equipment[obj->wear_loc][x] = obj; save.c: ch->name, MAX_LAYERS, obj->wear_loc, obj->name ); save.c: sprintf( buf, "%s had on %s: ch->level = %d obj->level = %d", save.c: ch->name, obj->name, save.c: ch->level, obj->level ); save.c: bug( buf, 0 ); -- Removed level restrictions -- Scion save.c: * Re-equip character -Thoric save.c: if ( IS_NPC(ch) || (ch->level < 2 && ch->level2 == -1) ) save.c: if ( ch->desc && ch->desc->original ) save.c: ch = ch->desc->original; save.c: ch->save_time = current_time; save.c: sprintf( strsave, "%s%c/%s",PLAYER_DIR,tolower(ch->pcdata->filename[0]), save.c: capitalize( ch->pcdata->filename ) ); save.c: * Auto-backup pfile (can cause lag with high disk access situtations). save.c: of that and keeps an adequate backup -- Blodkai, 10/97 */ save.c: sprintf( strback,"%s%c/%s",BACKUP_DIR,tolower(ch->pcdata->filename[0]), save.c: capitalize( ch->pcdata->filename ) ); save.c: * Save immortal stats, level & vnums for wizlist -Thoric save.c: if ( ch->level >= LEVEL_IMMORTAL ) save.c: sprintf( strback, "%s%s", GOD_DIR, capitalize( ch->pcdata->filename ) ); save.c: fprintf( fp, "Level %d\n", ch->level ); save.c: fprintf( fp, "Pcflags %d\n", ch->pcdata->flags ); save.c: if ( ch->pcdata->r_range_lo && ch->pcdata->r_range_hi ) save.c: fprintf( fp, "RoomRange %d %d\n", ch->pcdata->r_range_lo, save.c: ch->pcdata->r_range_hi ); save.c: if ( ch->pcdata->o_range_lo && ch->pcdata->o_range_hi ) save.c: fprintf( fp, "ObjRange %d %d\n", ch->pcdata->o_range_lo, save.c: ch->pcdata->o_range_hi ); save.c: if ( ch->pcdata->m_range_lo && ch->pcdata->m_range_hi ) save.c: fprintf( fp, "MobRange %d %d\n", ch->pcdata->m_range_lo, save.c: ch->pcdata->m_range_hi ); save.c: if( ch->level > 103 && ch->level != 110 ) save.c: sprintf( strback, "%s%s.immlist", GOD_DIR, capitalize( ch->pcdata->filename ) ); save.c: fprintf( fp, "Name %s~\n", ch->name ); save.c: fprintf( fp, "Level %d\n", ch->level ); save.c: if( ch->pcdata->lastname && ch->pcdata->lastname[0] != '\0' ) save.c: fprintf( fp, "Lastname %s~\n", ch->pcdata->lastname ); save.c: if( ch->pcdata->email && ch->pcdata->email[0] != '\0' ) save.c: fprintf( fp, "Email %s~\n", ch->pcdata->email ); save.c: if ( ch->morph ) save.c: if ( ch->first_carrying ) save.c: fwrite_obj( ch, ch->last_carrying, fp, 0, OS_CARRY ); save.c: if ( !IS_NPC( ch ) && ch->pcdata->first_alias ) save.c: fwrite_alias( ch, ch->pcdata->first_alias, fp ); save.c: if ( sysdata.save_pets && ch->pcdata->pet ) save.c: fwrite_mobile( fp, ch->pcdata->pet ); save.c: if ( ch->comments ) /* comments */ save.c: fprintf( fp, "Name %s~\n", ch->name ); save.c: if ( ch->description ) save.c: fprintf( fp, "Description %s~\n", ch->description ); save.c: fprintf( fp, "Sex %d\n", ch->sex ); save.c: fprintf( fp, "HairColor %s~\n", ch->pcdata->hair_color ); save.c: fprintf( fp, "HairLength %s~\n", ch->pcdata->hair_length ); save.c: fprintf( fp, "EyeColor %s~\n", ch->pcdata->eye_color ); save.c: fprintf( fp, "SkinTone %s~\n", ch->pcdata->skin_tone ); save.c: fprintf( fp, "CHBuild %s~\n", ch->pcdata->ch_build ); save.c: fprintf( fp, "CHHeight %s~\n", ch->pcdata->ch_height ); save.c: fprintf( fp, "Class %d\n", ch->class ); save.c: fprintf( fp, "Class2 %d\n", ch->class2 ); save.c: fprintf( fp, "Race %d\n", ch->race ); save.c: fprintf( fp, "Languages %d %d\n", ch->speaks, ch->speaking ); save.c: fprintf( fp, "Level %d\n", ch->level ); save.c: fprintf( fp, "Level2 %d\n", ch->level2 ); save.c: ch->played + (int) (current_time - ch->logon) ); save.c: ( ch->in_room == get_room_index( ROOM_VNUM_LIMBO ) save.c: && ch->was_in_room ) save.c: ? ch->was_in_room->vnum save.c: : ch->in_room->vnum ); save.c: if (ch->nextquest != 0) save.c: fprintf( fp, "QuestNext %d\n", ch->nextquest ); save.c: else if (ch->countdown != 0) save.c: ch->pcdata->memorize[0], save.c: ch->pcdata->memorize[1], save.c: ch->pcdata->memorize[2], save.c: ch->pcdata->memorize[3], save.c: ch->pcdata->memorize[4], save.c: ch->pcdata->memorize[5], save.c: ch->pcdata->memorize[6], save.c: ch->pcdata->memorize[7] ); save.c: ch->hit, ch->max_hit, ch->mana, ch->max_mana, ch->move, ch->max_move ); save.c: fprintf( fp, "Gold %d\n", ch->gold ); save.c: fprintf( fp, "Exp %d\n", ch->exp ); save.c: fprintf( fp, "Exp2 %d\n", ch->exp2 ); save.c: fprintf( fp, "Smites %d\n", ch->pcdata->smites ); save.c: fprintf( fp, "Smited %d\n", ch->pcdata->smited ); save.c: fprintf( fp, "Height %d\n", ch->height ); save.c: fprintf( fp, "Weight %d\n", ch->weight ); save.c: if ( !xIS_EMPTY(ch->act) ) save.c: fprintf( fp, "Act %s\n", print_bitvector(&ch->act) ); save.c: if ( !xIS_EMPTY(ch->affected_by) ) save.c: fprintf( fp, "AffectedBy %s\n", print_bitvector(&ch->affected_by) ); save.c: if ( !xIS_EMPTY(ch->no_affected_by) ) save.c: fprintf( fp, "NoAffectedBy %s\n", print_bitvector(&ch->no_affected_by) ); save.c: pos = ch->position; save.c: fprintf( fp, "Style %d\n", ch->style); save.c: fprintf( fp, "Practice %d\n", ch->practice ); save.c: ch->saving_poison_death, save.c: ch->saving_wand, save.c: ch->saving_para_petri, save.c: ch->saving_breath, save.c: ch->saving_spell_staff ); save.c: fprintf( fp, "Alignment %d\n", ch->alignment ); save.c: fprintf( fp, "Favor %d\n", ch->pcdata->favor ); save.c: fprintf( fp, "Balance %d\n", ch->pcdata->balance ); save.c: fprintf( fp, "Glory %d\n", ch->pcdata->quest_curr ); save.c: fprintf( fp, "MGlory %d\n", ch->pcdata->quest_accum ); save.c: fprintf( fp, "Hitroll %d\n", ch->hitroll ); save.c: fprintf( fp, "Damroll %d\n", ch->damroll ); save.c: fprintf( fp, "Armor %d\n", ch->armor ); save.c: fprintf( fp, "Bounty %d\n", ch->bounty ); save.c: fprintf( fp, "Bowed %d\n", ch->bowed ); save.c: fprintf( fp, "Belig %d\n", ch->belig ); save.c: fprintf( fp, "Bkills %d\n", ch->bkills ); save.c: if( ch->pcdata->wedto ) save.c: fprintf( fp, "WedTo %s~\n", ch->pcdata->wedto ); save.c: if ( ch->wimpy ) save.c: fprintf( fp, "Wimpy %d\n", ch->wimpy ); save.c: if ( ch->deaf ) save.c: fprintf( fp, "Deaf %d\n", ch->deaf ); save.c: if ( ch->pcdata->imc_deaf ) save.c: fprintf( fp, "IMC %ld\n", ch->pcdata->imc_deaf ); save.c: if ( ch->pcdata->imc_allow ) save.c: fprintf( fp, "IMCAllow %ld\n", ch->pcdata->imc_allow ); save.c: if ( ch->pcdata->imc_deny ) save.c: fprintf( fp, "IMCDeny %ld\n", ch->pcdata->imc_deny ); save.c: fprintf(fp, "ICEListen %s~\n", ch->pcdata->ice_listen); save.c: if ( ch->resistant ) save.c: fprintf( fp, "Resistant %d\n", ch->resistant ); save.c: if ( ch->no_resistant ) save.c: fprintf( fp, "NoResistant %d\n", ch->no_resistant ); save.c: if ( ch->immune ) save.c: fprintf( fp, "Immune %d\n", ch->immune ); save.c: if ( ch->no_immune ) save.c: fprintf( fp, "NoImmune %d\n", ch->no_immune ); save.c: if ( ch->susceptible ) save.c: fprintf( fp, "Susceptible %d\n", ch->susceptible ); save.c: if ( ch->no_susceptible ) save.c: fprintf( fp, "NoSusceptible %d\n",ch->no_susceptible ); save.c: if ( ch->pcdata && ch->pcdata->outcast_time ) save.c: fprintf( fp, "Outcast_time %ld\n",ch->pcdata->outcast_time ); save.c: if ( ch->pcdata && ch->pcdata->nuisance ) save.c: fprintf( fp, "NuisanceNew %ld %ld %d %d\n", ch->pcdata->nuisance->time, save.c: ch->pcdata->nuisance->max_time,ch->pcdata->nuisance->flags, save.c: ch->pcdata->nuisance->power ); save.c: if ( ch->mental_state != -10 ) save.c: fprintf( fp, "Mentalstate %d\n", ch->mental_state ); save.c: fprintf( fp, "Password %s~\n", ch->pcdata->pwd ); save.c: if ( ch->pcdata->rank && ch->pcdata->rank[0] != '\0' ) save.c: fprintf( fp, "Rank %s~\n", ch->pcdata->rank ); save.c: if ( ch->pcdata->bestowments && ch->pcdata->bestowments[0] != '\0' ) save.c: fprintf( fp, "Bestowments %s~\n", ch->pcdata->bestowments ); save.c: fprintf( fp, "Title %s~\n", ch->pcdata->title ); save.c: if (ch->pcdata->extraname && ch->pcdata->extraname[0] != '\0' ) save.c: fprintf( fp, "Extraname %s~\n", ch->pcdata->extraname ); save.c: if (ch->pcdata->lastname && ch->pcdata->lastname[0] != '\0' ) save.c: fprintf( fp, "Lastname %s~\n", ch->pcdata->lastname ); save.c: if ( ch->pcdata->homepage && ch->pcdata->homepage[0] != '\0' ) save.c: fprintf( fp, "Homepage %s~\n", ch->pcdata->homepage ); save.c: if ( ch->pcdata->email && ch->pcdata->email[0] != '\0' ) save.c: fprintf( fp, "Email %s~\n", ch->pcdata->email ); save.c: if ( ch->pcdata->bio && ch->pcdata->bio[0] != '\0' ) save.c: fprintf( fp, "Bio %s~\n", ch->pcdata->bio ); save.c: if ( ch->pcdata->authed_by && ch->pcdata->authed_by[0] != '\0' ) save.c: fprintf( fp, "AuthedBy %s~\n", ch->pcdata->authed_by ); save.c: if ( ch->pcdata->min_snoop ) save.c: fprintf( fp, "Minsnoop %d\n", ch->pcdata->min_snoop ); save.c: if ( ch->pcdata->prompt && *ch->pcdata->prompt ) save.c: fprintf( fp, "Prompt %s~\n", ch->pcdata->prompt ); save.c: if ( ch->pcdata->fprompt && *ch->pcdata->fprompt ) save.c: fprintf( fp, "FPrompt %s~\n", ch->pcdata->fprompt ); save.c: if ( ch->pcdata->pagerlen != 24 ) save.c: fprintf( fp, "Pagerlen %d\n", ch->pcdata->pagerlen ); save.c: fprintf (fp, "%s %ld ", boards[i].short_name, ch->pcdata->last_note[i]); save.c: for ( pos = 0; pos < MAX_ALIAS ; pos++ ) /* alias - shogar */ save.c: if ( !ch->pcdata->alias[pos] save.c: || !ch->pcdata->alias_sub[pos] ) save.c: fprintf( fp, "Alias %s %s~\n", ch->pcdata->alias[pos], save.c: ch->pcdata->alias_sub[pos] ); save.c: for(temp = ch->pcdata->first_ignored; temp; temp = temp->next) save.c: fprintf(fp,"Ignored %s~\n", temp->name); save.c: if ( ch->pcdata->bamfin && ch->pcdata->bamfin[0] != '\0' ) save.c: fprintf( fp, "Bamfin %s~\n", ch->pcdata->bamfin ); save.c: if ( ch->pcdata->bamfout && ch->pcdata->bamfout[0] != '\0' ) save.c: fprintf( fp, "Bamfout %s~\n", ch->pcdata->bamfout ); save.c: if ( ch->trust ) save.c: fprintf( fp, "Trust %d\n", ch->trust ); save.c: if ( ch->pcdata && ch->pcdata->restore_time ) save.c: fprintf( fp, "Restore_time %ld\n",ch->pcdata->restore_time ); save.c: fprintf( fp, "WizInvis %d\n", ch->pcdata->wizinvis ); save.c: fprintf( fp, "GhostLevel %d\n", ch->ghost_level ); save.c: if ( ch->pcdata->r_range_lo && ch->pcdata->r_range_hi ) save.c: fprintf( fp, "RoomRange %d %d\n", ch->pcdata->r_range_lo, save.c: ch->pcdata->r_range_hi ); save.c: if ( ch->pcdata->o_range_lo && ch->pcdata->o_range_hi ) save.c: fprintf( fp, "ObjRange %d %d\n", ch->pcdata->o_range_lo, save.c: ch->pcdata->o_range_hi ); save.c: if ( ch->pcdata->m_range_lo && ch->pcdata->m_range_hi ) save.c: fprintf( fp, "MobRange %d %d\n", ch->pcdata->m_range_lo, save.c: ch->pcdata->m_range_hi ); save.c: if ( ch->pcdata->council) save.c: fprintf( fp, "Council %s~\n", ch->pcdata->council_name ); save.c: if ( ch->pcdata->council2 ) save.c: fprintf( fp, "Council2 %s~\n", ch->pcdata->council2_name); save.c: if ( ch->pcdata->deity_name && ch->pcdata->deity_name[0] != '\0' ) save.c: fprintf( fp, "Deity %s~\n", ch->pcdata->deity_name ); save.c: if ( ch->pcdata->clan_name && ch->pcdata->clan_name[0] != '\0' ) save.c: fprintf( fp, "Clan %s~\n", ch->pcdata->clan_name ); save.c: fprintf( fp, "Flags %d\n", ch->pcdata->flags ); save.c: if ( ch->pcdata->release_date > current_time ) save.c: (int)ch->pcdata->release_date, ch->pcdata->helled_by ); save.c: fprintf( fp, "PKills %d\n", ch->pcdata->pkills ); save.c: fprintf( fp, "PDeaths %d\n", ch->pcdata->pdeaths ); save.c: fprintf( fp, "MKills %d\n", ch->pcdata->mkills ); save.c: fprintf( fp, "MDeaths %d\n", ch->pcdata->mdeaths ); save.c: fprintf( fp, "ArenaWins %d\n", ch->pcdata->arena_wins ); save.c: fprintf( fp, "ArenaKills %d\n", ch->pcdata->arena_kills ); save.c: fprintf( fp, "ArenaDeaths %d\n", ch->pcdata->arena_deaths); save.c: fprintf( fp, "IllegalPK %d\n", ch->pcdata->illegal_pk ); save.c: ch->perm_str, save.c: ch->perm_int, save.c: ch->perm_wis, save.c: ch->perm_dex, save.c: ch->perm_con, save.c: ch->perm_cha, save.c: ch->perm_lck ); save.c: ch->mod_str, save.c: ch->mod_int, save.c: ch->mod_wis, save.c: ch->mod_dex, save.c: ch->mod_con, save.c: ch->mod_cha, save.c: ch->mod_lck ); save.c: ch->pcdata->condition[0], save.c: ch->pcdata->condition[1], save.c: ch->pcdata->condition[2], save.c: ch->pcdata->condition[3] ); save.c: if ( ch->desc && ch->desc->host ) save.c: fprintf( fp, "Site %s\n", ch->desc->host ); save.c: fprintf( fp, "Site (Link-Dead)\n" ); save.c: if ( skill_table[sn]->name && ch->pcdata->learned[sn] > 0 ) save.c: switch( skill_table[sn]->type ) save.c: ch->pcdata->learned[sn], skill_table[sn]->name ); save.c: ch->pcdata->learned[sn], skill_table[sn]->name ); save.c: ch->pcdata->learned[sn], skill_table[sn]->name ); save.c: ch->pcdata->learned[sn], skill_table[sn]->name ); save.c: for ( paf = ch->first_affect; paf; paf = paf->next ) save.c: if ( paf->type >= 0 && (skill=get_skilltype(paf->type)) == NULL ) save.c: if ( paf->type >= 0 && paf->type < TYPE_PERSONAL ) save.c: skill->name, save.c: paf->duration, save.c: paf->modifier, save.c: paf->location, save.c: print_bitvector(&paf->bitvector) save.c: paf->type, save.c: paf->duration, save.c: paf->modifier, save.c: paf->location, save.c: print_bitvector(&paf->bitvector) save.c: track = URANGE( 2, ((ch->level+3) * MAX_KILLTRACK)/LEVEL_AVATAR, MAX_KILLTRACK ); save.c: if ( ch->pcdata->killed[sn].vnum == 0 ) save.c: ch->pcdata->killed[sn].vnum, save.c: ch->pcdata->killed[sn].count ); save.c: if (ch->pcdata->first_qbit) save.c: for (bit = ch->pcdata->first_qbit; bit; bit = bit->next) save.c: fprintf(fp, "Qbit %d %s~\n", bit->number, bit->desc); save.c: if ( obj->prev_content && os_type != OS_CORPSE ) save.c: fwrite_obj( ch, obj->prev_content, fp, iNest, OS_CARRY ); save.c: fwrite_obj( ch, obj->prev_content, fp, iNest, OS_GROUND ); save.c: * Catch deleted objects -Thoric save.c: * Do NOT save prototype items! -Thoric save.c: if ( (ch && (get_trust(ch) < obj->level) && (obj->level >= LEVEL_IMMORTAL)) save.c: || ( obj->item_type == ITEM_KEY && !IS_OBJ_STAT(obj, ITEM_CLANOBJECT )) save.c: /* Corpse saving. -- Altrag */ save.c: if ( obj->count > 1 ) save.c: fprintf( fp, "Count %d\n", obj->count ); save.c: if ( QUICKMATCH( obj->name, obj->pIndexData->name ) == 0 ) save.c: fprintf( fp, "Name %s~\n", obj->name ); save.c: if ( QUICKMATCH( obj->short_descr, obj->pIndexData->short_descr ) == 0 ) save.c: fprintf( fp, "ShortDescr %s~\n", obj->short_descr ); save.c: if ( QUICKMATCH( obj->description, obj->pIndexData->description ) == 0 ) save.c: fprintf( fp, "Description %s~\n", obj->description ); save.c: if ( QUICKMATCH( obj->action_desc, obj->pIndexData->action_desc ) == 0 ) save.c: fprintf( fp, "ActionDesc %s~\n", obj->action_desc ); save.c: fprintf( fp, "Vnum %d\n", obj->pIndexData->vnum ); save.c: if (((os_type == OS_GROUND) || (os_type == OS_CORPSE)) && obj->in_room ) save.c: fprintf( fp, "Room %d\n", obj->in_room->vnum ); save.c: else if (IS_OBJ_STAT(obj, ITEM_ARTIFACT) && !obj->in_room) save.c: if ( !xSAME_BITS(obj->extra_flags, obj->pIndexData->extra_flags) ) save.c: fprintf( fp, "ExtraFlags %s\n", print_bitvector(&obj->extra_flags) ); save.c: if ( obj->wear_flags != obj->pIndexData->wear_flags ) save.c: fprintf( fp, "WearFlags %d\n", obj->wear_flags ); save.c: wear_loc = -1; save.c: if ( wear_loc != -1 ) save.c: if ( obj->item_type != obj->pIndexData->item_type ) save.c: fprintf( fp, "ItemType %d\n", obj->item_type ); save.c: if ( obj->weight != obj->pIndexData->weight ) save.c: fprintf( fp, "Weight %d\n", obj->weight ); save.c: if ( obj->level ) save.c: fprintf( fp, "Level %d\n", obj->level ); save.c: if ( obj->timer ) save.c: fprintf( fp, "Timer %d\n", obj->timer ); save.c: if ( obj->cost != obj->pIndexData->cost ) save.c: fprintf( fp, "Cost %d\n", obj->cost ); save.c: if ( obj->value[0] || obj->value[1] || obj->value[2] save.c: || obj->value[3] || obj->value[4] || obj->value[5] ) save.c: obj->value[0], obj->value[1], obj->value[2], save.c: obj->value[3], obj->value[4], obj->value[5] ); save.c: switch ( obj->item_type ) save.c: case ITEM_PILL: /* was down there with staff and wand, wrongly - Scryn */ save.c: if ( IS_VALID_SN(obj->value[1]) ) save.c: skill_table[obj->value[1]]->name ); save.c: if ( IS_VALID_SN(obj->value[2]) ) save.c: skill_table[obj->value[2]]->name ); save.c: if ( IS_VALID_SN(obj->value[3]) ) save.c: skill_table[obj->value[3]]->name ); save.c: if ( IS_VALID_SN(obj->value[3]) ) save.c: skill_table[obj->value[3]]->name ); save.c: if ( IS_VALID_SN(obj->value[4]) ) save.c: skill_table[obj->value[4]]->name ); save.c: if ( IS_VALID_SN(obj->value[5]) ) save.c: skill_table[obj->value[5]]->name ); save.c: for ( paf = obj->first_affect; paf; paf = paf->next ) save.c: * Save extra object affects -Thoric save.c: if ( paf->type < 0 || paf->type >= top_sn ) save.c: paf->type, save.c: paf->duration, save.c: ((paf->location == APPLY_WEAPONSPELL save.c: || paf->location == APPLY_WEARSPELL save.c: || paf->location == APPLY_REMOVESPELL save.c: || paf->location == APPLY_STRIPSN save.c: || paf->location == APPLY_RECURRINGSPELL) save.c: && IS_VALID_SN(paf->modifier)) save.c: ? skill_table[paf->modifier]->slot : paf->modifier, save.c: paf->location, save.c: print_bitvector(&paf->bitvector) save.c: skill_table[paf->type]->name, save.c: paf->duration, save.c: ((paf->location == APPLY_WEAPONSPELL save.c: || paf->location == APPLY_WEARSPELL save.c: || paf->location == APPLY_REMOVESPELL save.c: || paf->location == APPLY_STRIPSN save.c: || paf->location == APPLY_RECURRINGSPELL) save.c: && IS_VALID_SN(paf->modifier)) save.c: ? skill_table[paf->modifier]->slot : paf->modifier, save.c: paf->location, save.c: print_bitvector(&paf->bitvector) save.c: for ( ed = obj->first_extradesc; ed; ed = ed->next ) save.c: ed->keyword, ed->description ); save.c: if ( obj->first_content ) save.c: fwrite_obj( ch, obj->last_content, fp, iNest + 1, OS_CARRY ); save.c: for ( alias = first_alias; alias; alias = alias->next ) save.c: fprintf( fp, "Name %s~\n", alias->name ); save.c: fprintf( fp, "Commands %s~\n", alias->alias ); save.c: CREATE( ch->pcdata, PC_DATA, 1 ); save.c: d->character = ch; save.c: ch->desc = d; save.c: ch->pcdata->filename = STRALLOC( name ); save.c: ch->name = NULL; save.c: ch->act = multimeb(PLR_BLANK, PLR_COMBINE, PLR_PROMPT, -1); save.c: ch->perm_str = 13; save.c: ch->perm_int = 13; save.c: ch->perm_wis = 13; save.c: ch->perm_dex = 13; save.c: ch->perm_con = 13; save.c: ch->perm_cha = 13; save.c: ch->perm_lck = 13; save.c: ch->no_resistant = 0; save.c: ch->no_susceptible = 0; save.c: ch->no_immune = 0; save.c: ch->was_in_room = NULL; save.c: xCLEAR_BITS(ch->no_affected_by); save.c: ch->pcdata->condition[COND_THIRST] = 48; save.c: ch->pcdata->condition[COND_FULL] = 48; save.c: ch->pcdata->condition[COND_BLOODTHIRST] = 10; save.c: ch->pcdata->nuisance = NULL; save.c: ch->pcdata->wizinvis = 0; save.c: ch->pcdata->balance = 0; save.c: ch->mental_state = -10; save.c: ch->mobinvis = 0; save.c: ch->pcdata->learned[i] = 0; save.c: ch->pcdata->release_date = 0; save.c: ch->pcdata->helled_by = NULL; save.c: ch->saving_poison_death = 0; save.c: ch->saving_wand = 0; save.c: ch->saving_para_petri = 0; save.c: ch->saving_breath = 0; save.c: ch->saving_spell_staff = 0; save.c: ch->style = STYLE_FIGHTING; save.c: ch->comments = NULL; /* comments */ save.c: ch->pcdata->pagerlen = 24; save.c: ch->pcdata->first_ignored = NULL; /* Ignore list */ save.c: ch->pcdata->last_ignored = NULL; save.c: ch->pcdata->tell_history = NULL; /* imm only lasttell cmnd */ save.c: ch->pcdata->lt_index = 0; /* last tell index */ save.c: ch->morph = NULL; save.c: ch->pcdata->smites = 0; save.c: ch->pcdata->smited = 0; save.c: ch->pcdata->imc_deaf = 0; save.c: ch->pcdata->imc_deny = 0; save.c: ch->pcdata->imc_allow = 0; save.c: ch->pcdata->ice_listen = NULL; save.c: ch->pcdata->wedto = NULL; save.c: ch->pcdata->afkmsg = NULL; save.c: ch->pcdata->arena = NULL; save.c: ch->pcdata->say_history[0] = NULL; save.c: ch->pcdata->tell_histories[0] = NULL; save.c: if ( stat( strsave, &fst ) != -1 ) save.c: preload ? "Preloading" : "Loading", ch->pcdata->filename, save.c: /* Cheat so that bug will show line #'s -- Altrag */ save.c: ch->pcdata->pet = mob; save.c: mob->master = ch; save.c: xSET_BIT(mob->affected_by, AFF_CHARM); save.c: if ( ch->pcdata->ice_listen == NULL ) save.c: ch->pcdata->ice_listen = str_dup(""); save.c: ch->name = STRALLOC( name ); save.c: ch->short_descr = STRALLOC( "" ); save.c: ch->long_descr = STRALLOC( "" ); save.c: ch->description = STRALLOC( "" ); save.c: ch->editor = NULL; save.c: ch->pcdata->clan_name = STRALLOC( "" ); save.c: ch->pcdata->clan = NULL; save.c: ch->pcdata->council_name = STRALLOC( "" ); save.c: ch->pcdata->council = NULL; save.c: ch->pcdata->council2_name = STRALLOC( "" ); save.c: ch->pcdata->council2 = NULL; save.c: ch->pcdata->deity_name = STRALLOC( "" ); save.c: ch->pcdata->deity = NULL; save.c: ch->pcdata->pet = NULL; save.c: ch->pcdata->pwd = str_dup( "" ); save.c: ch->pcdata->board = &boards[DEFAULT_BOARD]; save.c: ch->pcdata->bamfin = str_dup( "" ); save.c: ch->pcdata->bamfout = str_dup( "" ); save.c: ch->pcdata->rank = str_dup( "" ); save.c: ch->pcdata->bestowments = str_dup( "" ); save.c: ch->pcdata->title = STRALLOC( "" ); save.c: char to fread. -- Alty save.c: ch->pcdata->extraname = STRALLOC( "" ); save.c: ch->pcdata->lastname = STRALLOC( "" ); save.c: ch->pcdata->homepage = str_dup( "" ); save.c: ch->pcdata->email = str_dup( "" ); save.c: ch->pcdata->bio = STRALLOC( "" ); save.c: ch->pcdata->authed_by = STRALLOC( "" ); save.c: ch->pcdata->prompt = STRALLOC( "" ); save.c: ch->pcdata->fprompt = STRALLOC( "" ); save.c: ch->pcdata->r_range_lo = 0; save.c: ch->pcdata->r_range_hi = 0; save.c: ch->pcdata->m_range_lo = 0; save.c: ch->pcdata->m_range_hi = 0; save.c: ch->pcdata->o_range_lo = 0; save.c: ch->pcdata->o_range_hi = 0; save.c: ch->pcdata->wizinvis = 0; save.c: ch->pcdata->hair_color = STRALLOC( "" ); save.c: ch->pcdata->eye_color = STRALLOC( "" ); save.c: ch->pcdata->skin_tone = STRALLOC( "" ); save.c: ch->pcdata->ch_build = STRALLOC( "" ); save.c: ch->pcdata->hair_length = STRALLOC( "" ); save.c: ch->pcdata->ch_height = STRALLOC( "" ); save.c: if ( !ch->name ) save.c: ch->name = STRALLOC( name ); save.c: if ( !ch->pcdata->clan_name ) save.c: ch->pcdata->clan_name = STRALLOC( "" ); save.c: ch->pcdata->clan = NULL; save.c: if ( !ch->pcdata->council_name ) save.c: ch->pcdata->council_name = STRALLOC( "" ); save.c: ch->pcdata->council = NULL; save.c: if ( !ch->pcdata->council2_name ) save.c: ch->pcdata->council2_name = STRALLOC( "" ); save.c: ch->pcdata->council2 = NULL; save.c: if ( !ch->pcdata->deity_name ) save.c: ch->pcdata->deity_name = STRALLOC( "" ); save.c: ch->pcdata->deity = NULL; save.c: if ( !ch->pcdata->bio ) save.c: ch->pcdata->bio = STRALLOC( "" ); save.c: if ( !ch->pcdata->authed_by ) save.c: ch->pcdata->authed_by = STRALLOC( "" ); save.c: if ( xIS_SET(ch->act, PLR_FLEE) ) save.c: xREMOVE_BIT(ch->act, PLR_FLEE); save.c: if ( ch->pcdata->wizinvis < 2 ) save.c: ch->pcdata->wizinvis = ch->level; save.c: REMOVE_BIT(ch->speaks, LANG_COMMON | race_table[ch->race]->language); save.c: if ( countlangs(ch->speaks) < (ch->level / 10) && !IS_IMMORTAL(ch) ) save.c: int need = (ch->level / 10) - countlangs(ch->speaks); save.c: int prac = 2 - (get_curr_cha(ch) / 17) * (70 / prct) * need; save.c: if ( ch->practice >= prac ) save.c: if ( (iLang = bsearch_skill_exact( lang_names[lang], gsn_first_tongue, gsn_top_sn-1 )) < 0 ) save.c: if ( ch->pcdata->learned[iLang] > 0 ) save.c: SET_BIT(ch->speaks, lang_array[lang]); save.c: ch->pcdata->learned[iLang] = 70; save.c: ch->speaks &= VALID_LANGS; save.c: REMOVE_BIT(ch->speaks, save.c: LANG_COMMON | race_table[ch->race]->language); save.c: /* Rebuild affected_by and RIS to catch errors - FB */ save.c: KEY( "Act", ch->act, fread_bitvector( fp ) ); save.c: KEY( "AffectedBy", ch->affected_by, fread_bitvector( fp ) ); save.c: KEY( "Alignment", ch->alignment, fread_number( fp ) ); save.c: KEY( "Armor", ch->armor, fread_number( fp ) ); save.c: KEY( "ArenaWins", ch->pcdata->arena_wins, fread_number( fp ) ); save.c: KEY( "ArenaKills", ch->pcdata->arena_kills,fread_number( fp ) ); save.c: KEY( "ArenaDeaths", ch->pcdata->arena_deaths,fread_number( fp ) ); save.c: paf->type = fread_number( fp ); save.c: paf->type = sn; save.c: paf->duration = fread_number( fp ); save.c: paf->modifier = fread_number( fp ); save.c: paf->location = fread_number( fp ); save.c: if ( paf->location == APPLY_WEAPONSPELL save.c: || paf->location == APPLY_WEARSPELL save.c: || paf->location == APPLY_REMOVESPELL save.c: || paf->location == APPLY_STRIPSN save.c: || paf->location == APPLY_RECURRINGSPELL ) save.c: paf->modifier = slot_lookup( paf->modifier ); save.c: paf->bitvector = fread_bitvector( fp ); save.c: LINK(paf, ch->first_affect, ch->last_affect, next, prev ); save.c: ch->mod_str = x1; save.c: ch->mod_int = x2; save.c: ch->mod_wis = x3; save.c: ch->mod_dex = x4; save.c: ch->mod_con = x5; save.c: ch->mod_cha = x6; save.c: ch->mod_lck = x7; save.c: ch->mod_lck = 0; save.c: ch->pcdata->alias[count] = str_dup( fread_word( fp ) ); save.c: ch->pcdata->alias_sub[count] = fread_string_nohash( fp ); save.c: ch->perm_str = x1; save.c: ch->perm_int = x2; save.c: ch->perm_wis = x3; save.c: ch->perm_dex = x4; save.c: ch->perm_con = x5; save.c: ch->perm_cha = x6; save.c: ch->perm_lck = x7; save.c: ch->perm_lck = 13; save.c: KEY( "AuthedBy", ch->pcdata->authed_by, fread_string( fp ) ); save.c: KEY( "BL", ch->pcdata->ch_height, fread_string( fp ) ); save.c: KEY( "BU", ch->pcdata->ch_build, fread_string( fp ) ); save.c: KEY( "Balance", ch->pcdata->balance, fread_number( fp ) ); save.c: KEY( "Bamfin", ch->pcdata->bamfin, fread_string_nohash( fp ) ); save.c: KEY( "Bamfout", ch->pcdata->bamfout, fread_string_nohash( fp ) ); save.c: KEY( "Belig", ch->belig, fread_number( fp ) ); save.c: KEY( "Bkills", ch->bkills, fread_number( fp ) ); save.c: KEY( "Bounty", ch->bounty, fread_number( fp ) ); save.c: KEY( "Bowed", ch->bowed, fread_number( fp ) ); save.c: for (; num ; num-- ) /* for each of the board saved */ save.c: sprintf (buf, "fread_char: %s had unknown board name: %s. Skipped.", ch->name, boardname); save.c: ch->pcdata->last_note[i] = fread_number (fp); save.c: KEY( "Bestowments", ch->pcdata->bestowments,fread_string_nohash( fp ) ); save.c: KEY( "Bio", ch->pcdata->bio, fread_string( fp ) ); save.c: KEY( "CHBuild", ch->pcdata->ch_build, fread_string( fp ) ); save.c: KEY( "CHHeight", ch->pcdata->ch_height, fread_string( fp ) ); save.c: ch->pcdata->clan_name = fread_string( fp ); save.c: && ch->pcdata->clan_name[0] != '\0' save.c: && ( ch->pcdata->clan = get_clan( ch->pcdata->clan_name )) == NULL ) save.c: ch->pcdata->clan_name ); save.c: STRFREE( ch->pcdata->clan_name ); save.c: ch->pcdata->clan_name = STRALLOC( "" ); save.c: KEY( "Class", ch->class, fread_number( fp ) ); save.c: ch->class2 = fread_number( fp ); save.c: if( ch->class2 < 0 ) save.c: ch->class2 = 0; save.c:/* KEY( "Class3", ch->class3, fread_number( fp ) ); */ save.c: ch->pcdata->condition[0] = x1; save.c: ch->pcdata->condition[1] = x2; save.c: ch->pcdata->condition[2] = x3; save.c: ch->pcdata->condition[3] = x4; save.c: ch->pcdata->council_name = fread_string( fp ); save.c: && ch->pcdata->council_name[0] != '\0' save.c: && ( ch->pcdata->council = get_council( ch->pcdata->council_name )) == NULL ) save.c: ch->pcdata->council_name ); save.c: STRFREE( ch->pcdata->council_name ); save.c: ch->pcdata->council_name = STRALLOC( "" ); save.c: ch->pcdata->council2_name = fread_string( fp ); save.c: && ch->pcdata->council2_name[0] != '\0' save.c: && ( ch->pcdata->council2 = get_council( ch->pcdata->council2_name )) == NULL ) save.c: ch->pcdata->council2_name ); save.c: STRFREE( ch->pcdata->council2_name ); save.c: ch->pcdata->council2_name = STRALLOC( "" ); save.c: KEY( "Damroll", ch->damroll, fread_number( fp ) ); save.c: KEY( "Deaf", ch->deaf, fread_number( fp ) ); save.c: ch->pcdata->deity_name = fread_string( fp ); save.c: && ch->pcdata->deity_name[0] != '\0' save.c: && ( ch->pcdata->deity = get_deity( ch->pcdata->deity_name )) == NULL ) save.c: ch->pcdata->deity_name ); save.c: STRFREE( ch->pcdata->deity_name ); save.c: ch->pcdata->deity_name = STRALLOC( "" ); save.c: ch->pcdata->favor = 0; save.c: KEY( "Description", ch->description, fread_string( fp ) ); save.c: KEY( "Favor", ch->pcdata->favor, fread_number( fp ) ); save.c: KEY( "Flags", ch->pcdata->flags, fread_number( fp ) ); save.c: KEY( "FPrompt", ch->pcdata->fprompt, fread_string( fp ) ); save.c: KEY( "GhostLevel", ch->ghost_level, fread_number( fp ) ); save.c: KEY( "Glory", ch->pcdata->quest_curr, fread_number( fp ) ); save.c: KEY( "Gold", ch->gold, fread_number( fp ) ); save.c: ch->pcdata->clan_name = fread_string( fp ); save.c: && ch->pcdata->clan_name[0] != '\0' save.c: && ( ch->pcdata->clan = get_clan( ch->pcdata->clan_name )) == NULL ) save.c: ch->pcdata->clan_name ); save.c: STRFREE( ch->pcdata->clan_name ); save.c: ch->pcdata->clan_name = STRALLOC( "" ); save.c: KEY( "Height", ch->height, fread_number( fp ) ); save.c: KEY( "HairColor", ch->pcdata->hair_color, fread_string( fp ) ); save.c: KEY( "HairLength", ch->pcdata->hair_length,fread_string( fp ) ); save.c: KEY( "HC", ch->pcdata->hair_color, fread_string( fp ) ); save.c: KEY( "HL", ch->pcdata->hair_length, fread_string( fp ) ); save.c: ch->pcdata->release_date = fread_number(fp); save.c: ch->pcdata->helled_by = fread_string(fp); save.c: if ( ch->pcdata->release_date < current_time ) save.c: STRFREE(ch->pcdata->helled_by); save.c: ch->pcdata->helled_by = NULL; save.c: ch->pcdata->release_date = 0; save.c: KEY( "Hitroll", ch->hitroll, fread_number( fp ) ); save.c: KEY( "Homepage", ch->pcdata->homepage, fread_string_nohash( fp ) ); save.c: ch->hit = fread_number( fp ); save.c: ch->max_hit = fread_number( fp ); save.c: ch->mana = fread_number( fp ); save.c: ch->max_mana = fread_number( fp ); save.c: ch->move = fread_number( fp ); save.c: ch->max_move = fread_number( fp ); save.c: if(stat(fname, &fst) == -1) save.c: for(ign = 0, inode = ch->pcdata->first_ignored; inode; save.c: inode = inode->next) save.c: inode->name = STRALLOC(temp); save.c: inode->next = NULL; save.c: inode->prev = NULL; save.c: LINK(inode, ch->pcdata->first_ignored, save.c: ch->pcdata->last_ignored, next, save.c: KEY( "IllegalPK", ch->pcdata->illegal_pk, fread_number( fp ) ); save.c: KEY ( "IMC", ch->pcdata->imc_deaf, fread_number( fp ) ); save.c: KEY ( "IMCAllow", ch->pcdata->imc_allow, fread_number( fp ) ); save.c: KEY ( "IMCDeny", ch->pcdata->imc_deny, fread_number( fp ) ); save.c: KEY ( "ICEListen", ch->pcdata->ice_listen, fread_string_nohash( fp ) ); save.c: KEY( "Immune", ch->immune, fread_number( fp ) ); save.c: ch->pcdata->killed[killcnt].vnum = fread_number( fp ); save.c: ch->pcdata->killed[killcnt++].count = fread_number( fp ); save.c: ch->pcdata->lastname = fread_string( fp ); save.c: if ( isalpha(ch->pcdata->lastname[0]) save.c: || isdigit(ch->pcdata->lastname[0]) ) save.c: sprintf( buf, " %s", ch->pcdata->lastname ); save.c: if ( ch->pcdata->lastname ) save.c: STRFREE( ch->pcdata->lastname ); save.c: ch->pcdata->lastname = STRALLOC( buf ); save.c: KEY( "Level", ch->level, fread_number( fp ) ); save.c: ch->level2 = -1; save.c: ch->level2 = x1; save.c: /* KEY( "Level3", ch->level3, fread_number( fp ) ); */ save.c: KEY( "LongDescr", ch->long_descr, fread_string( fp ) ); save.c: ch->speaks = fread_number( fp ); save.c: ch->speaking = fread_number( fp ); save.c: KEY( "MDeaths", ch->pcdata->mdeaths, fread_number( fp ) ); save.c: ch->pcdata->memorize[0] = fread_number( fp ); save.c: ch->pcdata->memorize[1] = fread_number( fp ); save.c: ch->pcdata->memorize[2] = fread_number( fp ); save.c: ch->pcdata->memorize[3] = fread_number( fp ); save.c: ch->pcdata->memorize[4] = fread_number( fp ); save.c: ch->pcdata->memorize[5] = fread_number( fp ); save.c: ch->pcdata->memorize[6] = fread_number( fp ); save.c: ch->pcdata->memorize[7] = fread_number( fp ); save.c: KEY( "Mentalstate", ch->mental_state, fread_number( fp ) ); save.c: KEY( "MGlory", ch->pcdata->quest_accum,fread_number( fp ) ); save.c: KEY( "Minsnoop", ch->pcdata->min_snoop, fread_number( fp ) ); save.c: KEY( "MKills", ch->pcdata->mkills, fread_number( fp ) ); save.c: KEY( "Mobinvis", ch->mobinvis, fread_number( fp ) ); save.c: ch->pcdata->m_range_lo = fread_number( fp ); save.c: ch->pcdata->m_range_hi = fread_number( fp ); save.c: KEY ("Name", ch->name, fread_string( fp ) ); save.c: KEY ("NoAffectedBy", ch->no_affected_by, fread_bitvector( fp ) ); save.c: KEY ("NoImmune", ch->no_immune, fread_number( fp ) ); save.c: KEY ("NoResistant", ch->no_resistant, fread_number( fp ) ); save.c: KEY ("NoSusceptible", ch->no_susceptible, fread_number( fp ) ); save.c: CREATE( ch->pcdata->nuisance, NUISANCE_DATA, 1 ); save.c: ch->pcdata->nuisance->time = fread_number( fp ); save.c: ch->pcdata->nuisance->max_time = fread_number( fp ); save.c: ch->pcdata->nuisance->flags = fread_number( fp ); save.c: ch->pcdata->nuisance->power = 1; save.c: CREATE( ch->pcdata->nuisance, NUISANCE_DATA, 1 ); save.c: ch->pcdata->nuisance->time = fread_number( fp ); save.c: ch->pcdata->nuisance->max_time = fread_number( fp ); save.c: ch->pcdata->nuisance->flags = fread_number( fp ); save.c: ch->pcdata->nuisance->power = fread_number( fp ); save.c: KEY( "Outcast_time", ch->pcdata->outcast_time, fread_number( fp ) ); save.c: ch->pcdata->o_range_lo = fread_number( fp ); save.c: ch->pcdata->o_range_hi = fread_number( fp ); save.c: KEY( "Pagerlen", ch->pcdata->pagerlen, fread_number( fp ) ); save.c: KEY( "Password", ch->pcdata->pwd, fread_string_nohash( fp ) ); save.c: KEY( "PDeaths", ch->pcdata->pdeaths, fread_number( fp ) ); save.c: KEY( "PKills", ch->pcdata->pkills, fread_number( fp ) ); save.c: KEY( "Played", ch->played, fread_number( fp ) ); save.c: /* KEY( "Position", ch->position, fread_number( fp ) );*/ save.c: ch->position = fread_number( fp ); save.c: if(ch->position<100){ save.c: switch(ch->position){ save.c: case 5: ch->position=6; break; save.c: case 6: ch->position=8; break; save.c: case 7: ch->position=9; break; save.c: case 8: ch->position=12; break; save.c: case 9: ch->position=13; break; save.c: case 10: ch->position=14; break; save.c: case 11: ch->position=15; break; save.c: ch->position-=100; save.c: KEY( "Practice", ch->practice, fread_number( fp ) ); save.c: KEY( "Prompt", ch->pcdata->prompt, fread_string( fp ) ); save.c: KEY( "QuestNext", ch->nextquest, fread_number( fp ) ); save.c: bit->number = fread_number(fp); save.c: if ((desc = find_qbit(bit->number))==NULL) save.c: strcpy(bit->desc, fread_string(fp)); save.c: strcpy(bit->desc, desc->desc); save.c: LINK(bit, ch->pcdata->first_qbit, ch->pcdata->last_qbit, next, prev); save.c: KEY( "Race", ch->race, fread_number( fp ) ); save.c: KEY( "Rank", ch->pcdata->rank, fread_string_nohash( fp ) ); save.c: KEY( "Resistant", ch->resistant, fread_number( fp ) ); save.c: KEY( "Restore_time",ch->pcdata->restore_time, fread_number( fp ) ); save.c: ch->in_room = get_room_index( fread_number( fp ) ); save.c: if ( !ch->in_room ) save.c: ch->in_room = get_room_index( ROOM_VNUM_LIMBO ); save.c: ch->pcdata->r_range_lo = fread_number( fp ); save.c: ch->pcdata->r_range_hi = fread_number( fp ); save.c: KEY( "SkinTone", ch->pcdata->skin_tone, fread_string( fp ) ); save.c: KEY( "ST", ch->pcdata->skin_tone, fread_string( fp ) ); save.c: KEY( "Sex", ch->sex, fread_number( fp ) ); save.c: KEY( "ShortDescr", ch->short_descr, fread_string( fp ) ); save.c: KEY( "Smites", ch->pcdata->smites, fread_number( fp ) ); save.c: KEY( "Smited", ch->pcdata->smited, fread_number( fp ) ); save.c: KEY( "Style", ch->style, fread_number( fp ) ); save.c: KEY( "Susceptible", ch->susceptible, fread_number( fp ) ); save.c: ch->saving_wand = fread_number( fp ); save.c: ch->saving_poison_death = ch->saving_wand; save.c: ch->saving_para_petri = ch->saving_wand; save.c: ch->saving_breath = ch->saving_wand; save.c: ch->saving_spell_staff = ch->saving_wand; save.c: ch->saving_poison_death = fread_number( fp ); save.c: ch->saving_wand = fread_number( fp ); save.c: ch->saving_para_petri = fread_number( fp ); save.c: ch->saving_breath = fread_number( fp ); save.c: ch->saving_spell_staff = fread_number( fp ); save.c: sn = bsearch_skill_exact( fread_word( fp ), gsn_first_skill, gsn_first_weapon-1 ); save.c: ch->pcdata->learned[sn] = value; save.c: * Assumes class and level were loaded before. -- Altrag * save.c: * Assumes practices are loaded first too now. -- Altrag */ save.c: if ( ch->level < LEVEL_IMMORTAL ) save.c: if( ch->level2 != -1 ) save.c: if ( (skill_table[sn]->skill_level[ch->class] save.c: && skill_table[sn]->skill_level[ch->class2]) >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: if ( skill_table[sn]->skill_level[ch->class] >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: sn = bsearch_skill_exact( fread_word( fp ), gsn_first_spell, gsn_first_skill-1 ); save.c: ch->pcdata->learned[sn] = value; save.c: if ( ch->level < LEVEL_IMMORTAL ) save.c: if( ch->level2 != -1 ) save.c: if ( (skill_table[sn]->skill_level[ch->class] save.c: && skill_table[sn]->skill_level[ch->class2]) >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: if ( skill_table[sn]->skill_level[ch->class] >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: KEY( "Email", ch->pcdata->email, fread_string_nohash( fp ) ); save.c: KEY( "EyeColor", ch->pcdata->eye_color, fread_string( fp ) ); save.c: KEY( "EC", ch->pcdata->eye_color, fread_string( fp ) ); save.c: ch->pcdata->extraname = fread_string( fp ); save.c: if ( isalpha(ch->pcdata->extraname[0]) save.c: || isdigit(ch->pcdata->extraname[0]) ) save.c: sprintf( buf, " %s", ch->pcdata->extraname ); save.c: if ( ch->pcdata->extraname ) save.c: STRFREE( ch->pcdata->extraname ); save.c: ch->pcdata->extraname = STRALLOC( buf ); save.c: if (!ch->short_descr) save.c: ch->short_descr = STRALLOC( "" ); save.c: if (!ch->long_descr) save.c: ch->long_descr = STRALLOC( "" ); save.c: if (!ch->description) save.c: ch->description = STRALLOC( "" ); save.c: if (!ch->pcdata->pwd) save.c: ch->pcdata->pwd = str_dup( "" ); save.c: if (!ch->pcdata->bamfin) save.c: ch->pcdata->bamfin = str_dup( "" ); save.c: if (!ch->pcdata->bamfout) save.c: ch->pcdata->bamfout = str_dup( "" ); save.c: if (!ch->pcdata->bio) save.c: ch->pcdata->bio = STRALLOC( "" ); save.c: if (!ch->pcdata->rank) save.c: ch->pcdata->rank = str_dup( "" ); save.c: if (!ch->pcdata->bestowments) save.c: ch->pcdata->bestowments = str_dup( "" ); save.c: if (!ch->pcdata->title) save.c: ch->pcdata->title = STRALLOC( "" ); save.c: if (!ch->pcdata->extraname) save.c: ch->pcdata->extraname = STRALLOC( "" ); save.c: if (!ch->pcdata->lastname) save.c: ch->pcdata->lastname = STRALLOC( "" ); save.c: if (!ch->pcdata->homepage) save.c: ch->pcdata->homepage = str_dup( "" ); save.c: if (!ch->pcdata->email) save.c: ch->pcdata->email = str_dup( "" ); save.c: if (!ch->pcdata->authed_by) save.c: ch->pcdata->authed_by = STRALLOC( "" ); save.c: if (!ch->pcdata->prompt ) save.c: ch->pcdata->prompt = STRALLOC( "" ); save.c: if (!ch->pcdata->fprompt ) save.c: ch->pcdata->fprompt = STRALLOC( "" ); save.c: if( !ch->pcdata->hair_color ) save.c: ch->pcdata->hair_color = STRALLOC( "" ); save.c: if( !ch->pcdata->eye_color ) save.c: ch->pcdata->eye_color = STRALLOC( "" ); save.c: if( !ch->pcdata->skin_tone ) save.c: ch->pcdata->skin_tone = STRALLOC( "" ); save.c: if( !ch->pcdata->ch_build ) save.c: ch->pcdata->ch_build = STRALLOC( "" ); save.c: if( !ch->pcdata->hair_length ) save.c: ch->pcdata->hair_length = STRALLOC( "" ); save.c: if( !ch->pcdata->ch_height ) save.c: ch->pcdata->ch_height = STRALLOC( "" ); save.c: ch->editor = NULL; save.c: killcnt = URANGE( 2, ((ch->level+3) * MAX_KILLTRACK)/LEVEL_AVATAR, MAX_KILLTRACK ); save.c: ch->pcdata->killed[killcnt].vnum = 0; save.c: if ( !IS_IMMORTAL( ch ) && !ch->speaking ) save.c: ch->speaking = LANG_COMMON; save.c: /* ch->speaking = race_table[ch->race]->language; */ save.c: ch->speaks = ~0; save.c: if ( ch->speaking == 0 ) save.c: ch->speaking = ~0; save.c: CREATE(ch->pcdata->tell_history, char *, 26); save.c: ch->pcdata->tell_history[i] = NULL; save.c: if ( !ch->pcdata->prompt ) save.c: ch->pcdata->prompt = STRALLOC(""); save.c: if ( ch->height== 72) save.c: ch->height = number_range(race_table[ch->race]->height *.9, race_table[ch->race]->height *1.1); save.c: if ( ch->weight==180) save.c: ch->weight = number_range(race_table[ch->race]->weight *.9, race_table[ch->race]->weight *1.1); save.c: KEY( "Exp", ch->exp, fread_number( fp ) ); save.c: KEY( "Exp2", ch->exp2, fread_number( fp ) ); save.c: sn = bsearch_skill_exact( fread_word( fp ), gsn_first_tongue, gsn_top_sn-1 ); save.c: ch->pcdata->learned[sn] = value; save.c: if ( ch->level < LEVEL_IMMORTAL ) save.c: if( ch->level2 != -1 ) save.c: if ( (skill_table[sn]->skill_level[ch->class] save.c: && skill_table[sn]->skill_level[ch->class2]) >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: if ( skill_table[sn]->skill_level[ch->class] >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: KEY( "Trust", ch->trust, fread_number( fp ) ); save.c: /* Let no character be trusted higher than one below maxlevel -- Narn */ save.c: ch->trust = UMIN( ch->trust, MAX_LEVEL - 1 ); save.c: ch->pcdata->title = fread_string( fp ); save.c: if ( isalpha(ch->pcdata->title[0]) save.c: || isdigit(ch->pcdata->title[0]) ) save.c: sprintf( buf, " %s", ch->pcdata->title ); save.c: if ( ch->pcdata->title ) save.c: STRFREE( ch->pcdata->title ); save.c: ch->pcdata->title = STRALLOC( buf ); save.c: ch->pIndexData = get_mob_index( fread_number( fp ) ); save.c: KEY( "WedTo", ch->pcdata->wedto, fread_string( fp ) ); save.c: KEY( "Weight", ch->weight, fread_number( fp ) ); save.c: sn = bsearch_skill_exact( fread_word( fp ), gsn_first_weapon, gsn_first_tongue-1 ); save.c: ch->pcdata->learned[sn] = value; save.c: if ( ch->level < LEVEL_IMMORTAL ) save.c: if( ch->level2 != -1 ) save.c: if ( (skill_table[sn]->skill_level[ch->class] save.c: && skill_table[sn]->skill_level[ch->class2]) >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: if ( skill_table[sn]->skill_level[ch->class] >= LEVEL_IMMORTAL ) save.c: ch->pcdata->learned[sn] = 0; save.c: ch->practice++; save.c: KEY( "Wimpy", ch->wimpy, fread_number( fp ) ); save.c: KEY( "WizInvis", ch->pcdata->wizinvis, fread_number( fp ) ); save.c: room = ch->in_room; save.c: obj->count = 1; save.c: obj->wear_loc = -1; save.c: obj->weight = 1; save.c: KEY( "ActionDesc", obj->action_desc, fread_string( fp ) ); save.c: paf->type = fread_number( fp ); save.c: paf->type = sn; save.c: paf->duration = fread_number( fp ); save.c: paf->location = fread_number( fp ); save.c: paf->bitvector = fread_bitvector( fp ); save.c: if ( paf->location == APPLY_WEAPONSPELL save.c: || paf->location == APPLY_WEARSPELL save.c: || paf->location == APPLY_STRIPSN save.c: || paf->location == APPLY_REMOVESPELL save.c: || paf->location == APPLY_RECURRINGSPELL ) save.c: paf->modifier = slot_lookup( pafmod ); save.c: paf->modifier = pafmod; save.c: LINK(paf, obj->first_affect, obj->last_affect, next, prev ); save.c: KEY( "Cost", obj->cost, fread_number( fp ) ); save.c: KEY( "Count", obj->count, fread_number( fp ) ); save.c: KEY( "Description", obj->description, fread_string( fp ) ); save.c: KEY( "ExtraFlags", obj->extra_flags, fread_bitvector( fp ) ); save.c: ed->keyword = fread_string( fp ); save.c: ed->description = fread_string( fp ); save.c: LINK(ed, obj->first_extradesc, obj->last_extradesc, next, prev ); save.c: if ( !fNest || !fVnum || !obj->pIndexData) save.c: if ( obj->name ) save.c: obj->name ); save.c: if ( obj->name ) save.c: STRFREE( obj->name ); save.c: if ( obj->description ) save.c: STRFREE( obj->description ); save.c: if ( obj->short_descr ) save.c: STRFREE( obj->short_descr ); save.c: sh_int wear_loc = obj->wear_loc; save.c: if ( !obj->name ) save.c: obj->name = QUICKLINK( obj->pIndexData->name ); save.c: if ( !obj->description ) save.c: obj->description = QUICKLINK( obj->pIndexData->description ); save.c: if ( !obj->short_descr ) save.c: obj->short_descr = QUICKLINK( obj->pIndexData->short_descr ); save.c: if ( !obj->action_desc ) save.c: obj->action_desc = QUICKLINK( obj->pIndexData->action_desc ); save.c: obj->pIndexData->count += obj->count; save.c: if ( !obj->serial ) save.c: cur_obj_serial = UMAX((cur_obj_serial + 1 ) & (BV30-1), 1); save.c: obj->serial = obj->pIndexData->serial = cur_obj_serial; save.c: numobjsloaded += obj->count; save.c: if ( file_ver > 1 || obj->wear_loc < -1 save.c: || obj->wear_loc >= MAX_WEAR ) save.c: obj->wear_loc = -1; save.c: /* Corpse saving. -- Altrag */ save.c: if ( obj->timer < 1 ) save.c: obj->timer = 40; save.c: if ( room->vnum == ROOM_VNUM_HALLOFFALLEN save.c: && obj->first_content ) save.c: obj->timer = -1; save.c: bug ("Fread_obj: OS_GROUND vnum %d without room, skipped!",obj->pIndexData->vnum); save.c: int slot = -1; save.c: && wear_loc > -1 save.c: if ( reslot && slot != -1 ) save.c: if ( rgObjNest[iNest-1] ) save.c: separate_obj( rgObjNest[iNest-1] ); save.c: obj = obj_to_obj( obj, rgObjNest[iNest-1] ); save.c: bug( "Fread_obj: nest layer missing %d", iNest-1 ); save.c: KEY( "ItemType", obj->item_type, fread_number( fp ) ); save.c: KEY( "Level", obj->level, fread_number( fp ) ); save.c: KEY( "Name", obj->name, fread_string( fp ) ); save.c: KEY( "ShortDescr", obj->short_descr, fread_string( fp ) ); save.c: obj->value[iValue] = sn; save.c: KEY( "Timer", obj->timer, fread_number( fp ) ); save.c: obj->value[0] = x1; save.c: obj->value[1] = x2; save.c: obj->value[2] = x3; save.c: obj->value[3] = x4; save.c: obj->value[4] = x5; save.c: obj->value[5] = x6; save.c: if ( ( obj->pIndexData = get_obj_index( vnum ) ) == NULL ) save.c: obj->cost = obj->pIndexData->cost; save.c: obj->weight = obj->pIndexData->weight; save.c: obj->item_type = obj->pIndexData->item_type; save.c: obj->wear_flags = obj->pIndexData->wear_flags; save.c: obj->extra_flags = obj->pIndexData->extra_flags; save.c: KEY( "WearFlags", obj->wear_flags, fread_number( fp ) ); save.c: KEY( "WearLoc", obj->wear_loc, fread_number( fp ) ); save.c: KEY( "Weight", obj->weight, fread_number( fp ) ); save.c: if ( obj->name ) save.c: STRFREE( obj->name ); save.c: if ( obj->description ) save.c: STRFREE( obj->description ); save.c: if ( obj->short_descr ) save.c: STRFREE( obj->short_descr ); save.c: while ( (ed=obj->first_extradesc) != NULL ) save.c: STRFREE( ed->keyword ); save.c: STRFREE( ed->description ); save.c: UNLINK( ed, obj->first_extradesc, obj->last_extradesc, next, prev ); save.c: while ( (paf=obj->first_affect) != NULL ) save.c: UNLINK( paf, obj->first_affect, obj->last_affect, next, prev ); save.c: KEY( "Commands", alias->alias, fread_string( fp ) ); save.c: if ( !alias->name || !alias->alias ) save.c: bug( "fread_alias: %s%s%s", alias->name ? "" : "NULL alias->name", save.c: ( !alias->name && !alias->alias ) ? " and " : "NULL alias->alias" ); save.c: /* bug( "Debug: fread_alias: %s %s", alias->name, alias->alias ); */ save.c: LINK( alias, ch->pcdata->first_alias, ch->pcdata->last_alias, next, prev ); save.c: KEY( "Name", alias->name, fread_string( fp ) ); save.c: * Based on last time modified, show when a player was last on -Thoric save.c: if ( stat( buf, &fst ) != -1 ) save.c: * so we could take it out of the save_char_obj function. --Shaddai save.c: name = ch->name; save.c: /* Go by vnum, less chance of screwups. -- Altrag */ save.c: for ( corpse = first_object; corpse; corpse = corpse->next ) save.c: if ( corpse->pIndexData->vnum == OBJ_VNUM_CORPSE_PC && save.c: corpse->in_room != NULL && save.c: !str_cmp(corpse->short_descr+14, name) && save.c: if ( de->d_name[0] != '.' ) save.c: sprintf(strArea, "%s%s", CORPSE_DIR, de->d_name ); save.c: fprintf(lfp, "Corpse -> %s\n", strArea); save.c: * This will write one mobile structure pointed to be fp --Shaddai save.c: fprintf( fp, "Vnum %d\n", mob->pIndexData->vnum ); save.c: if ( mob->in_room ) save.c: ( mob->in_room == get_room_index( ROOM_VNUM_LIMBO ) save.c: && mob->was_in_room ) save.c: ? mob->was_in_room->vnum save.c: : mob->in_room->vnum ); save.c: if ( QUICKMATCH( mob->name, mob->pIndexData->player_name) == 0 ) save.c: fprintf( fp, "Name %s~\n", mob->name ); save.c: if ( QUICKMATCH( mob->short_descr, mob->pIndexData->short_descr) == 0 ) save.c: fprintf( fp, "Short %s~\n", mob->short_descr ); save.c: if ( QUICKMATCH( mob->long_descr, mob->pIndexData->long_descr) == 0 ) save.c: fprintf( fp, "Long %s~\n", mob->long_descr ); save.c: if ( QUICKMATCH( mob->description, mob->pIndexData->description) == 0 ) save.c: fprintf( fp, "Description %s~\n", mob->description ); save.c: fprintf( fp, "Position %d\n", mob->position ); save.c: fprintf( fp, "Flags %s\n", print_bitvector(&mob->act) ); save.c:/* Might need these later --Shaddai save.c: if ( mob->first_carrying ) save.c: fwrite_obj( mob, mob->last_carrying, fp, 0, OS_CARRY ); save.c: * This will read one mobile structure pointer to by fp --Shaddai save.c: * --Shaddai save.c: * --Shaddai save.c: KEY( "Description", mob->description, fread_string(fp)); save.c: sometimes they creep in there somehow -- Scion */ save.c: KEY( "Flags", mob->act, fread_bitvector(fp)); save.c: KEY( "Long", mob->long_descr, fread_string(fp ) ); save.c: KEY( "Name", mob->name, fread_string( fp ) ); save.c: KEY( "Position", mob->position, fread_number( fp ) ); save.c: KEY( "Short", mob->short_descr, fread_string(fp)); save.c: * This will write in the saved mobile for a char --Shaddai save.c: if ( IS_NPC( ch ) || !ch->pcdata->pet ) save.c: mob = ch->pcdata->pet; save.c: xSET_BIT( mob->affected_by, AFF_CHARM ); save.c: * This will read in the saved mobile for a char --Shaddai save.c:/* Return the vnum the obj is in, regardless of being carried or inside containers. -- Scion */ save.c: if (obj->in_obj) save.c: return get_obj_room_vnum_recursive(obj->in_obj); save.c: else if (obj->carried_by) save.c: CHAR_DATA *ch = obj->carried_by; save.c: if (ch->in_room) save.c: return ch->in_room->vnum; save.c: bug("get_obj_room_vnum_recursive: Char \"%s\" not in room?!",ch->name); save.c: else if (obj->in_room) save.c: return obj->in_room->vnum; save.c: * Save the world's objects and mobs in their current positions -- Scion save.c: for ( obj = first_object; obj; obj = obj->next ) { save.c: || (obj->in_room && save.c: (IS_SET(obj->in_room->room_flags, ROOM_DONATION) || IS_SET(obj->in_room->room_flags, ROOM_CLANSTOREROOM)))) save.c: obj->count=1; save.c: for (rch = first_char; rch; rch = rch->next ) { save.c: if (!IS_NPC(rch) || rch==supermob || xIS_SET(rch->act, ACT_PROTOTYPE) || xIS_SET(rch->act, ACT_PET)) saveall.c: for ( vch = first_char; vch; vch = vch->next ) saveall.c: pager_printf( ch, "Saving %-s...\n\r", vch->name); saveall.c: for ( tarea = first_build; tarea; tarea = tarea->next ) saveall.c: if ( !IS_SET(tarea->status, AREA_LOADED ) ) saveall.c: sprintf( filename, "%s%s", BUILD_DIR, tarea->filename ); services.c: * -----------------------------------------------------------| (0...0) * services.c: * -----------------------------------------------------------| {o o} * services.c: * ------------------------------------------------------------------------ * services.c: * ------------------------------------------------------------------------ * services.c: ((*argv[1] == '-') || (*argv[1] == '/') || (*argv[1] == '\\')) services.c: "Unable to start service, assuming running console-mode application.\n"); services.c:// service_main() -- services.c:// service_ctrl() -- services.c:// ReportStatusToSCMgr() -- services.c:// called at shutdown, ctrl-c etc. services.c:// handle shutdowns and ctrl-c services.c:fprintf (lfp, "Usage is :-\n"); services.c:fprintf (lfp, " %s - runs as a service, or stand-alone\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /run - runs stand-alone\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /start - starts this service\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /stop - stops this service\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /install - installs this service\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /remove - removes (un-installs) this service\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /status - displays the status of this service\n", THIS_SERVICE); services.c:fprintf (lfp, " %s /help - displays this information\n", THIS_SERVICE); sharpen.c: if ( obj->item_type != ITEM_WEAPON ) sharpen.c: /* small mods to make it more generic.. --Cronel */ sharpen.c: if( obj->value[3] != DAM_HIT sharpen.c: && obj->value[3] != DAM_SLICE sharpen.c: && obj->value[3] != DAM_STAB sharpen.c: && obj->value[3] != DAM_SLASH sharpen.c: && obj->value[3] != DAM_CLAW sharpen.c: && obj->value[3] != DAM_BITE sharpen.c: && obj->value[3] != DAM_PIERCE ) sharpen.c: if ( obj->value[5] == 1 ) /* see reason below when setting */ sharpen.c: for ( pobj = ch->first_carrying; pobj; pobj = pobj->next_content ) sharpen.c: if ( pobj->pIndexData->vnum == OBJ_VNUM_SHARPEN ) sharpen.c: WAIT_STATE( ch, skill_table[gsn_sharpen]->beats ); sharpen.c: if ( obj->value[0] <= 1 ) sharpen.c: obj->value[0]--; sharpen.c: percent = (number_percent( ) - get_curr_lck(ch) - 15); /* too low a chance to damage? */ sharpen.c: if ( !IS_NPC( ch ) && percent > ch->pcdata->learned[gsn_sharpen] ) sharpen.c: if ( pobj->value[0] <= 1 ) sharpen.c: pobj->value[0]--; sharpen.c: level = ch->level; sharpen.c: paf->type = -1; sharpen.c: paf->duration = -1; sharpen.c: paf->location = APPLY_DAMROLL; sharpen.c: paf->modifier = level / 10; sharpen.c: xCLEAR_BITS( paf->bitvector ); /* changed to ext BVs in upgrade --Cronel */ sharpen.c: LINK( paf, obj->first_affect, obj->last_affect, next, prev ); sharpen.c: obj->value[5] = 1; shops.c: * -----------------------------------------------------------| (0...0) * shops.c: * -----------------------------------------------------------| {o o} * shops.c: * ------------------------------------------------------------------------ * shops.c: * ------------------------------------------------------------------------ * shops.c: for ( keeper = ch->in_room->first_person; shops.c: keeper = keeper->next_in_room ) shops.c: if ( IS_NPC(keeper) && (pShop = keeper->pIndexData->pShop) != NULL ) shops.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_KILLER) ) shops.c: sprintf( buf, "%s the KILLER is over here!\n\r", ch->name ); shops.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_THIEF) ) shops.c: sprintf( buf, "%s the THIEF is over here!\n\r", ch->name ); shops.c: if ( pShop->open_hour > pShop->close_hour ) shops.c: if ( time_info.hour < pShop->open_hour shops.c: && time_info.hour > pShop->close_hour ) shops.c: if ( time_info.hour < pShop->open_hour ) shops.c: if ( time_info.hour > pShop->close_hour ) shops.c: if ( keeper->position == POS_SLEEPING ) shops.c: if ( keeper->position < POS_SLEEPING ) shops.c: speakswell = UMIN(knows_language(keeper, ch->speaking, ch), shops.c: knows_language(ch, ch->speaking, keeper)); shops.c: sprintf( buf, "%s Could you repeat that? I didn't quite catch it.", ch->name ); shops.c: sprintf( buf, "%s Could you say that a little more clearly please?", ch->name ); shops.c: sprintf( buf, "%s Sorry... What was that you wanted?", ch->name ); shops.c: sprintf( buf, "%s I can't understand you.", ch->name ); shops.c: for ( keeper = ch->in_room->first_person; shops.c: keeper = keeper->next_in_room ) shops.c: if ( IS_NPC(keeper) && (rShop = keeper->pIndexData->rShop) != NULL ) shops.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_KILLER) ) shops.c: sprintf( buf, "%s the KILLER is over here!\n\r", ch->name ); shops.c: if ( !IS_NPC(ch) && xIS_SET(ch->act, PLR_THIEF) ) shops.c: sprintf( buf, "%s the THIEF is over here!\n\r", ch->name ); shops.c: * so mobiles can repair in combat. -- Blod, 1/98 shops.c: if ( rShop->open_hour > rShop->close_hour ) shops.c: if ( time_info.hour < rShop->open_hour shops.c: && time_info.hour > rShop->close_hour ) shops.c: if ( time_info.hour < rShop->open_hour ) shops.c: if ( time_info.hour > rShop->close_hour ) shops.c: if ( keeper->position == POS_SLEEPING ) shops.c: if ( keeper->position < POS_SLEEPING ) shops.c: speakswell = UMIN(knows_language(keeper, ch->speaking, ch), shops.c: knows_language(ch, ch->speaking, keeper)); shops.c: sprintf( buf, "%s Could you repeat that? I didn't quite catch it.", ch->name ); shops.c: sprintf( buf, "%s Could you say that a little more clearly please?", ch->name ); shops.c: sprintf( buf, "%s Sorry... What was that you wanted?", ch->name ); shops.c: sprintf( buf, "%s I can't understand you.", ch->name ); shops.c: if ( !obj || ( pShop = keeper->pIndexData->pShop ) == NULL ) shops.c: if ( ch->gold > (ch->level * ch->level * 100000) ) shops.c: profitmod = 13 - get_curr_cha(ch) + (richcustomer ? 15 : 0) shops.c: + ((URANGE(5,ch->level,LEVEL_AVATAR)-20)/2); shops.c: cost = (int) (obj->cost shops.c: * UMAX( (pShop->profit_sell+1), pShop->profit_buy+profitmod ) ) shops.c: cost = (int) (cost * (80 + UMIN(ch->level, LEVEL_AVATAR))) / 100; shops.c: switch(ch->race) /* racism... should compare against shopkeeper's race */ shops.c: case(6): cost /=0.92; break;/* half-ogre */ shops.c: case(7): cost /=0.94; break;/* half-orc */ shops.c: case(8): cost /=0.90; break;/* half-troll */ shops.c: case(9): cost /=1.04; break;/* half-elf */ shops.c: profitmod = get_curr_cha(ch) - 13 - (richcustomer ? 15 : 0); shops.c: if ( obj->item_type == pShop->buy_type[itype] ) shops.c: cost = (int) (obj->cost shops.c: * UMIN( (pShop->profit_buy-1), shops.c: pShop->profit_sell+profitmod) ) / 100; shops.c: for ( obj2 = keeper->first_carrying; obj2; obj2 = obj2->next_content ) shops.c: if ( obj->pIndexData == obj2->pIndexData ) shops.c: if ( obj->item_type == ITEM_STAFF || obj->item_type == ITEM_WAND ) shops.c: cost = (int) (cost * obj->value[2] / obj->value[1]); shops.c: if ( !obj || ( rShop = keeper->pIndexData->rShop ) == NULL ) shops.c: if ( obj->item_type == rShop->fix_type[itype] ) shops.c: cost = (int) (obj->cost * rShop->profit_fix / 1000); shops.c: cost = -1; shops.c: switch (obj->item_type) shops.c: if (obj->value[0] >= obj->value[1]) shops.c: cost = -2; shops.c: cost *= (obj->value[1] - obj->value[0]); shops.c: if (INIT_WEAPON_CONDITION == obj->value[0]) shops.c: cost = -2; shops.c: cost *= (INIT_WEAPON_CONDITION - obj->value[0]); shops.c: if (obj->value[2] >= obj->value[1]) shops.c: cost = -2; shops.c: cost *= (obj->value[1] - obj->value[2]); shops.c: if ( IS_SET(ch->in_room->room_flags, ROOM_PET_SHOP) ) shops.c: pRoomIndexNext = get_room_index( ch->in_room->vnum + 1 ); shops.c: bug( "Do_buy: bad pet shop at vnum %d.", ch->in_room->vnum ); shops.c: in_room = ch->in_room; shops.c: ch->in_room = pRoomIndexNext; shops.c: ch->in_room = in_room; shops.c: if ( pet == NULL || !IS_NPC( pet ) || !xIS_SET(pet->act, ACT_PET) ) shops.c: if ( xIS_SET(ch->act, PLR_BOUGHT_PET) ) shops.c: if ( ch->gold < 10 * pet->level * pet->level ) shops.c: if ( ch->level < pet->level ) shops.c: maxgold = 10 * pet->level * pet->level; shops.c: ch->gold -= maxgold; shops.c: boost_economy( ch->in_room->area, maxgold ); shops.c: pet = create_mobile( pet->pIndexData ); shops.c: xSET_BIT(ch->act, PLR_BOUGHT_PET); shops.c: xSET_BIT(pet->act, ACT_PET); shops.c: xSET_BIT(pet->affected_by, AFF_CHARM); shops.c:/* This isn't needed anymore since you can order your pets --Shaddai shops.c: xSET_BIT(pet->affected_by, AFF_CHARM); shops.c: sprintf( buf, "%s %s", pet->name, arg ); shops.c: STRFREE( pet->name ); shops.c: pet->name = STRALLOC( buf ); shops.c: pet->description, ch->name ); shops.c: STRFREE( pet->description ); shops.c: pet->description = STRALLOC( buf ); shops.c: char_to_room( pet, ch->in_room ); shops.c: maxgold = keeper->level * keeper->level * 50000; shops.c: ch->reply = keeper; shops.c: act( AT_TELL, "$n tells you 'I don't sell that -- try 'list'.'", shops.c: ch->reply = keeper; shops.c: ch->reply = keeper; shops.c: if ( ch->gold < cost ) shops.c: ch->reply = keeper; shops.c:/* if ( obj->level > ch->level ) shops.c: ch->reply = keeper; shops.c: ch->reply = keeper; shops.c: if ( ch->carry_number + get_obj_number( obj ) > can_carry_n( ch ) ) shops.c: if ( ch->carry_weight + ( get_obj_weight( obj ) * noi ) shops.c: ( obj->short_descr[strlen(obj->short_descr)-1] == 's' shops.c: ( obj->short_descr[strlen(obj->short_descr)-1] == 's' shops.c: ch->gold -= cost; shops.c: keeper->gold += cost; shops.c: if ( keeper->gold > maxgold ) shops.c: boost_economy( keeper->in_room->area, keeper->gold - maxgold/2 ); shops.c: keeper->gold = maxgold/2; shops.c: buy_obj = create_object( obj->pIndexData, obj->level ); shops.c: * The shopkeeper gives you a bag with multiple-buy, shops.c: * set to the number bought. -Thoric shops.c: xSET_BIT(bag->extra_flags, ITEM_GROUNDROT); shops.c: bag->timer = 10; /* Blodkai, 4/97 */ shops.c: bag->value[0] = bag->weight + (buy_obj->weight * noi); shops.c: buy_obj->count = noi; shops.c: obj->pIndexData->count += (noi - 1); shops.c: numobjsloaded += (noi - 1); shops.c: * list - list the items for sale, should be sorted by shops.c: * list # - list items and throw a flag at # shops.c: * list #1 #2 - list items and throw flags at #1 and #2 shops.c: * Last Modified: May 25, 1997 -- Fireblade shops.c: char *divleft = "-----------------------------------[ "; shops.c: char *divright = " ]-----------------------------------"; shops.c: if ( IS_SET(ch->in_room->room_flags, ROOM_PET_SHOP) ) shops.c: pRoomIndexNext = get_room_index( ch->in_room->vnum + 1 ); shops.c: bug( "Do_list: bad pet shop at vnum %d.", ch->in_room->vnum ); shops.c: for ( pet = pRoomIndexNext->first_person; pet; shops.c: pet = pet->next_in_room ) shops.c: if ( xIS_SET(pet->act, ACT_PET) && IS_NPC(pet) ) shops.c: pager_printf( ch, "[%2d] %8d - %s\n\r", shops.c: pet->level, shops.c: 10 * pet->level * pet->level, shops.c: pet->short_descr ); shops.c: lower = -2; shops.c: upper = -1; shops.c: for ( obj = keeper->first_carrying; obj; shops.c: obj = obj->next_content ) shops.c: if ( obj->wear_loc == WEAR_NONE shops.c: && ( arg[0] == '\0' || nifty_is_name( arg, obj->name ) ) ) shops.c: if(obj->level <= upper) shops.c: upper = -1; shops.c: if(obj->level < lower) shops.c: lower = -1; shops.c: obj->level, cost, capitalize( obj->short_descr ) ); shops.c: ch->reply = keeper; shops.c: if ( obj->timer > 0 ) shops.c: if ( cost >= keeper->gold ) shops.c: ch->gold += cost; shops.c: keeper->gold -= cost; shops.c: if ( keeper->gold < 0 ) shops.c: keeper->gold = 0; shops.c: if ( obj->item_type == ITEM_TRASH ) shops.c: ch->reply = keeper; shops.c: ch->reply = keeper; shops.c: * Repair a single object. Used when handling "repair all" - Gorog shops.c: ch_printf( ch, "You can't let go of %s.\n\r", obj->name ); shops.c: if (cost != -2) shops.c: /* "repair all" gets a 10% surcharge - Gorog */ shops.c: else if ( (cost = strcmp("all",arg) ? cost : 11*cost/10) > ch->gold ) shops.c: cost == 1 ? "" : "s", fixstr, obj->name ); shops.c: ch->gold -= cost; shops.c: keeper->gold += cost; shops.c: if ( keeper->gold < 0 ) shops.c: keeper->gold = 0; shops.c: if ( keeper->gold > maxgold ) shops.c: boost_economy( keeper->in_room->area, keeper->gold - maxgold/2 ); shops.c: keeper->gold = maxgold/2; shops.c: switch ( obj->item_type ) shops.c: obj->value[0] = obj->value[1]; shops.c: obj->value[0] = INIT_WEAPON_CONDITION; shops.c: obj->value[2] = obj->value[1]; shops.c: maxgold = keeper->level * keeper->level * 100000; shops.c: switch( keeper->pIndexData->rShop->shop_type ) shops.c: for ( obj = ch->first_carrying; obj ; obj = obj->next_content ) shops.c: if ( obj->wear_loc == WEAR_NONE shops.c: && ( obj->item_type == ITEM_ARMOR shops.c: || obj->item_type == ITEM_WEAPON shops.c: || obj->item_type == ITEM_WAND shops.c: || obj->item_type == ITEM_STAFF ) ) shops.c: ch->reply = keeper; shops.c: for ( obj = ch->first_carrying; obj != NULL ; obj = obj->next_content ) shops.c: if ( obj->wear_loc == WEAR_NONE shops.c: && ( obj->item_type == ITEM_ARMOR shops.c: || obj->item_type == ITEM_WEAPON shops.c: || obj->item_type == ITEM_WAND shops.c: || obj->item_type == ITEM_STAFF ) ) shops.c: ch_printf( ch, "You can't let go of %s.\n\r", obj->name ); shops.c: if (cost != -2) shops.c: cost, cost == 1 ? "" : "s", fixstr, obj->name ); shops.c: switch( keeper->pIndexData->rShop->shop_type ) shops.c: ch->reply = keeper; shops.c: if (cost != -2) shops.c: if ( cost > ch->gold ) shops.c:/* ------------------ Shop Building and Editing Section ----------------- */ shops.c: if ( mob->pShop ) shops.c: shop->keeper = vnum; shops.c: shop->profit_buy = 120; shops.c: shop->profit_sell = 90; shops.c: shop->open_hour = 0; shops.c: shop->close_hour = 23; shops.c: mob->pShop = shop; shops.c: if ( !mob->pShop ) shops.c: shop = mob->pShop; shops.c: shop->buy_type[0] = value; shops.c: shop->buy_type[1] = value; shops.c: shop->buy_type[2] = value; shops.c: shop->buy_type[3] = value; shops.c: shop->buy_type[4] = value; shops.c: if ( value <= (shop->profit_sell+5) || value > 1000 ) shops.c: shop->profit_buy = value; shops.c: if ( value < 0 || value >= (shop->profit_buy-5) ) shops.c: shop->profit_sell = value; shops.c: shop->open_hour = value; shops.c: shop->close_hour = value; shops.c: if ( mob2->pShop ) shops.c: mob->pShop = NULL; shops.c: mob2->pShop = shop; shops.c: shop->keeper = value; shops.c: if ( !mob->pShop ) shops.c: shop = mob->pShop; shops.c: ch_printf( ch, "Keeper: %d %s\n\r", shop->keeper, mob->short_descr ); shops.c: o_types[shop->buy_type[0]], shops.c: o_types[shop->buy_type[1]], shops.c: o_types[shop->buy_type[2]], shops.c: o_types[shop->buy_type[3]], shops.c: o_types[shop->buy_type[4]] ); shops.c: shop->profit_buy, shops.c: shop->profit_sell ); shops.c: shop->open_hour, shops.c: shop->close_hour ); shops.c: for ( shop = first_shop; shop; shop = shop->next ) shops.c: shop->keeper, shop->profit_buy, shop->profit_sell, shops.c: shop->open_hour, shop->close_hour, shops.c: shop->buy_type[0], shop->buy_type[1], shops.c: shop->buy_type[2], shop->buy_type[3], shop->buy_type[4] ); shops.c:/* -------------- Repair Shop Building and Editing Section -------------- */ shops.c: if ( mob->rShop ) shops.c: repair->keeper = vnum; shops.c: repair->profit_fix = 100; shops.c: repair->shop_type = SHOP_FIX; shops.c: repair->open_hour = 0; shops.c: repair->close_hour = 23; shops.c: mob->rShop = repair; shops.c: if ( !mob->rShop ) shops.c: repair = mob->rShop; shops.c: repair->fix_type[0] = value; shops.c: repair->fix_type[1] = value; shops.c: repair->fix_type[2] = value; shops.c: repair->profit_fix = value; shops.c: repair->shop_type = value; shops.c: repair->open_hour = value; shops.c: repair->close_hour = value; shops.c: if ( mob2->rShop ) shops.c: mob->rShop = NULL; shops.c: mob2->rShop = repair; shops.c: repair->keeper = value; shops.c: if ( !mob->rShop ) shops.c: repair = mob->rShop; shops.c: ch_printf( ch, "Keeper: %d %s\n\r", repair->keeper, mob->short_descr ); shops.c: o_types[repair->fix_type[0]], shops.c: o_types[repair->fix_type[1]], shops.c: o_types[repair->fix_type[2]] ); shops.c: repair->profit_fix, shops.c: repair->shop_type ); shops.c: repair->open_hour, shops.c: repair->close_hour ); shops.c: for ( repair = first_repair; repair; repair = repair->next ) shops.c: repair->keeper, repair->profit_fix, repair->shop_type, shops.c: repair->open_hour, repair->close_hour, shops.c: repair->fix_type[0], repair->fix_type[1], repair->fix_type[2] ); skills.c: * -----------------------------------------------------------| (0...0) * skills.c: * -----------------------------------------------------------| {o o} * skills.c: * ------------------------------------------------------------------------ * skills.c: * ------------------------------------------------------------------------ * skills.c: return -1; skills.c: return -1; skills.c: return -1; skills.c: return -1; skills.c: return -1; skills.c: return -1; skills.c: return -1; skills.c: return -1; skills.c: if ( ch->pcdata->clan && ch->pcdata->clan == vch->pcdata->clan ) skills.c: * Only match skills player knows -Thoric skills.c: int top = gsn_first_weapon-1; skills.c: if ( LOWER(command[0]) == LOWER(skill_table[sn]->name[0]) skills.c: && !str_prefix(command, skill_table[sn]->name) skills.c: && (skill_table[sn]->skill_fun || skill_table[sn]->spell_fun != spell_null) skills.c: || (ch->pcdata->learned[sn] > 0 skills.c: && ch->level >= skill_table[sn]->skill_level[ch->class])) ) skills.c: if (strcmp( command, skill_table[sn]->name) < 1) skills.c: top = sn - 1; skills.c: if ( !check_pos( ch, skill_table[sn]->minimum_position ) ) skills.c: if ( skill_table[sn]->min_mana ) skills.c: mana = IS_NPC(ch) ? 0 : UMAX(skill_table[sn]->min_mana, skills.c: 100 / ( 2 + ch->level - skill_table[sn]->skill_level[ch->class] ) ); skills.c: blood = UMAX(1, (mana+4) / 8); /* NPCs don't have PCDatas. -- Altrag */ skills.c: if (ch->pcdata->condition[COND_BLOODTHIRST] < blood) skills.c: if ( !IS_NPC(ch) && ch->mana < mana ) skills.c: * Is this a real do-fun, or a really a spell? skills.c: if ( !skill_table[sn]->skill_fun ) skills.c: switch ( skill_table[sn]->target ) skills.c: target_name = victim->name; skills.c: ch_printf( ch, "Confusion overcomes you as your '%s' has no target.\n\r", skill_table[sn]->name ); skills.c: if ( xIS_SET(victim->act, PLR_PK)) skills.c: send_to_char( "You really shouldn't do this to another player...\n\r", ch ); -- Scion */ skills.c: if ( IS_AFFECTED(ch, AFF_CHARM) && ch->master == victim ) skills.c: WAIT_STATE( ch, skill_table[sn]->beats ); skills.c: if ( (number_percent( ) + skill_table[sn]->difficulty * 5) skills.c: gain_condition( ch, COND_BLOODTHIRST, - blood/2 ); skills.c: ch->mana -= mana/2; skills.c: gain_condition( ch, COND_BLOODTHIRST, - blood ); skills.c: ch->mana -= mana; skills.c: retcode = (*skill_table[sn]->spell_fun) ( sn, ch->level, ch, vo ); skills.c: update_userec(&time_used, &skill_table[sn]->userec); skills.c: if ( skill_table[sn]->target == TAR_CHAR_OFFENSIVE skills.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) skills.c: vch_next = vch->next_in_room; skills.c: if ( victim == vch && !victim->fighting && victim->master != ch ) skills.c: gain_condition( ch, COND_BLOODTHIRST, - blood ); skills.c: ch->mana -= mana; skills.c: ch->prev_cmd = ch->last_cmd; /* haus, for automapping */ skills.c: ch->last_cmd = skill_table[sn]->skill_fun; skills.c: (*skill_table[sn]->skill_fun) ( ch, argument ); skills.c: update_userec(&time_used, &skill_table[sn]->userec); skills.c: if ( corpse->item_type != ITEM_CORPSE_PC ) skills.c: if ( obj->value[3] != 1 && skills.c: obj->value[3] != 2 && skills.c: obj->value[3] != 3 && skills.c: obj->value[3] != 11 ) skills.c: if ( corpse->value[5] == 1 ) { skills.c: name = IS_NPC(ch) ? korps->short_descr : corpse->short_descr; skills.c: sprintf( buf, skin->short_descr, name ); skills.c: STRFREE( skin->short_descr ); skills.c: skin->short_descr = STRALLOC( buf ); skills.c: sprintf( buf, skin->description, name ); skills.c: STRFREE( skin->description ); skills.c: skin->description = STRALLOC( buf ); skills.c: corpse->value[5]=1; skills.c: for ( sn = 0; sn < top_sn && skill_table[sn] && skill_table[sn]->name; sn++ ) skills.c: pager_printf( ch, "Sn: %4d Slot: %4d Skill/spell: '%-20s' Damtype: %s\n\r", skills.c: sn, skill_table[sn]->slot, skill_table[sn]->name, skills.c: for ( sn = 0; sn < top_herb && herb_table[sn] && herb_table[sn]->name; sn++ ) skills.c: pager_printf( ch, "%d) %s\n\r", sn, herb_table[sn]->name ); skills.c: ch_printf( ch, "Sn: %4d Slot: %4d %s: '%-20s'\n\r", skills.c: sn, skill->slot, skill_tname[skill->type], skill->name ); skills.c: if ( skill->info ) skills.c: if ( skill->flags ) skills.c: spell_saves[(int) skill->saves], skills.c: if ( skill->difficulty != '\0' ) skills.c: ch_printf( ch, "Difficulty: %d\n\r", (int) skill->difficulty ); skills.c: skill_tname[skill->type], skills.c: target_type[URANGE(TAR_IGNORE, skill->target, TAR_OBJ_INV)], skills.c: skill->minimum_position, skills.c: skill->min_mana, skill->beats, skill->range ); skills.c: skill->flags, skills.c: skill->guild, skills.c: skill->value, skills.c: skill->info, skills.c: skill->skill_fun ? skill_name(skill->skill_fun) skills.c: : spell_name(skill->spell_fun)); skills.c: skill->noun_damage, skills.c: skill->msg_off ? skill->msg_off : "(none set)" ); skills.c: if ( skill->dice && skill->dice[0] != '\0' ) skills.c: ch_printf( ch, "Dice: %s\n\r", skill->dice ); skills.c: if ( skill->teachers && skill->teachers[0] != '\0' ) skills.c: ch_printf( ch, "Teachers: %s\n\r", skill->teachers ); skills.c: if ( skill->components && skill->components[0] != '\0' ) skills.c: ch_printf( ch, "Components: %s\n\r", skill->components ); skills.c: if ( skill->participants ) skills.c: ch_printf( ch, "Participants: %d\n\r", (int) skill->participants ); skills.c: if ( skill->userec.num_uses ) skills.c: send_timer(&skill->userec, ch); skills.c: for ( aff = skill->affects; aff; aff = aff->next ) skills.c: if ( aff == skill->affects ) skills.c: if ( aff->location ) skills.c: strcat( buf, a_types[aff->location % REVERSE_APPLY] ); skills.c: strcat( buf, aff->modifier ); skills.c: if ( aff->bitvector != -1 ) skills.c: if ( aff->bitvector != -1 ) skills.c: strcat( buf, a_flags[aff->bitvector] ); skills.c: if ( aff->duration[0] != '\0' && aff->duration[0] != '0' ) skills.c: strcat( buf, aff->duration ); skills.c: if ( aff->location >= REVERSE_APPLY ) skills.c: if ( !aff->next ) skills.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) skills.c: ch_printf( ch, "Hitchar : %s\n\r", skill->hit_char ); skills.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) skills.c: ch_printf( ch, "Hitvict : %s\n\r", skill->hit_vict ); skills.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) skills.c: ch_printf( ch, "Hitroom : %s\n\r", skill->hit_room ); skills.c: if ( skill->hit_dest && skill->hit_dest[0] != '\0' ) skills.c: ch_printf( ch, "Hitdest : %s\n\r", skill->hit_dest ); skills.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) skills.c: ch_printf( ch, "Misschar : %s\n\r", skill->miss_char ); skills.c: if ( skill->miss_vict && skill->miss_vict[0] != '\0' ) skills.c: ch_printf( ch, "Missvict : %s\n\r", skill->miss_vict ); skills.c: if ( skill->miss_room && skill->miss_room[0] != '\0' ) skills.c: ch_printf( ch, "Missroom : %s\n\r", skill->miss_room ); skills.c: if ( skill->die_char && skill->die_char[0] != '\0' ) skills.c: ch_printf( ch, "Diechar : %s\n\r", skill->die_char ); skills.c: if ( skill->die_vict && skill->die_vict[0] != '\0' ) skills.c: ch_printf( ch, "Dievict : %s\n\r", skill->die_vict ); skills.c: if ( skill->die_room && skill->die_room[0] != '\0' ) skills.c: ch_printf( ch, "Dieroom : %s\n\r", skill->die_room ); skills.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) skills.c: ch_printf( ch, "Immchar : %s\n\r", skill->imm_char ); skills.c: if ( skill->imm_vict && skill->imm_vict[0] != '\0' ) skills.c: ch_printf( ch, "Immvict : %s\n\r", skill->imm_vict ); skills.c: if ( skill->imm_room && skill->imm_room[0] != '\0' ) skills.c: ch_printf( ch, "Immroom : %s\n\r", skill->imm_room ); skills.c: if ( skill->type != SKILL_HERB ) skills.c: if(skill->type!=SKILL_RACIAL) skills.c: send_to_char( "--------------------------[CLASS USE]--------------------------\n\r",ch); skills.c: strcpy( buf, class_table[iClass]->who_name ); skills.c: skill->skill_level[iClass], skills.c: skill->skill_adept[iClass] ); skills.c: send_to_char( "\n\r--------------------------[RACE USE]--------------------------\n\r",ch); skills.c: race_table[iRace]->race_name, skills.c: skill->race_level[iRace], skills.c: skill->race_adept[iRace] ); skills.c: if( !strcmp(race_table[iRace]->race_name,"unused") ) skills.c: skill_table[index]->skill_level[class2] = (skill_table[index]->skill_level[class1]<=MAX_LEVEL ? skill_table[index]->skill_level[class1] : 101); skills.c: skill_table[index]->skill_adept[class2] = (skill_table[index]->skill_adept[class1]<=MAX_LEVEL ? skill_table[index]->skill_adept[class1] : 101); skills.c: skill->slot = 0; skills.c: for ( max = x = 0; x < top_herb-1; x++ ) skills.c: if ( herb_table[x] && herb_table[x]->slot > max ) skills.c: max = herb_table[x]->slot; skills.c: skill->slot = max+1; skills.c: skill->min_mana = 0; skills.c: skill->name = str_dup( argument ); skills.c: skill->noun_damage = str_dup( "" ); skills.c: skill->msg_off = str_dup( "" ); skills.c: skill->spell_fun = spell_smaug; skills.c: skill->type = type; skills.c: skill->type = SKILL_RACIAL; skills.c: skill->skill_level[i]= LEVEL_IMMORTAL; skills.c: skill->skill_adept[i]= 95; skills.c: skill->race_level[i]= LEVEL_IMMORTAL; skills.c: skill->race_adept[i]= 95; skills.c: skill->difficulty = atoi( argument ); skills.c: skill->participants = atoi( argument ); skills.c: if ( x == -1 ) skills.c: if ( x == -1 ) skills.c: if ( x == -1 ) skills.c: if ( x == -1 ) skills.c: if ( x == -1 ) skills.c: if ( x == -1 ) skills.c: TOGGLE_BIT( skill->flags, 1 << x ); skills.c: if ( x == -1 ) skills.c: skill->saves = x; skills.c: skill->spell_fun = spellfun; skills.c: skill->skill_fun = NULL; skills.c: skill->skill_fun = dofun; skills.c: skill->spell_fun = NULL; skills.c: if ( x == -1 ) skills.c: skill->target = x; skills.c: skill->minimum_position = URANGE( POS_DEAD, atoi( argument ), POS_DRAG ); skills.c: skill->min_level = URANGE( 1, atoi( argument ), MAX_LEVEL ); skills.c: skill->slot = URANGE( 0, atoi( argument ), 30000 ); skills.c: skill->min_mana = URANGE( 0, atoi( argument ), 2000 ); skills.c: skill->beats = URANGE( 0, atoi( argument ), 120 ); skills.c: skill->range = URANGE( 0, atoi( argument ), 20 ); skills.c: skill->guild = atoi( argument ); skills.c: skill->value = atoi( argument ); skills.c: skill->type = get_skill( argument ); skills.c: SMAUG_AFF *aff = skill->affects; skills.c: skill->affects = aff->next; skills.c: DISPOSE( aff->duration ); skills.c: DISPOSE( aff->modifier ); skills.c: for ( ; aff; aff = aff->next ) skills.c: if ( ++cnt == num && (aff_next=aff->next) != NULL ) skills.c: aff->next = aff_next->next; skills.c: DISPOSE( aff_next->duration ); skills.c: DISPOSE( aff_next->modifier ); skills.c: bit = -1; skills.c: if ( (tmpbit=get_aflag(argument)) == -1 ) skills.c: aff->duration = str_dup( duration ); skills.c: aff->location = loc; skills.c: aff->modifier = str_dup( modifier ); skills.c: aff->bitvector = bit; skills.c: aff->next = skill->affects; skills.c: skill->affects = aff; skills.c: skill->skill_level[class] = skills.c: skill->race_level[race] = skills.c: skill->skill_adept[class] = skills.c: skill->race_adept[race] = skills.c: DISPOSE(skill->name); skills.c: skill->name = str_dup( argument ); skills.c: DISPOSE(skill->noun_damage); skills.c: skill->noun_damage = str_dup( "" ); skills.c: skill->noun_damage = str_dup( argument ); skills.c: DISPOSE(skill->msg_off); skills.c: skill->msg_off = str_dup( argument ); skills.c: if ( skill->hit_char ) skills.c: DISPOSE(skill->hit_char); skills.c: skill->hit_char = str_dup( argument ); skills.c: if ( skill->hit_vict ) skills.c: DISPOSE(skill->hit_vict); skills.c: skill->hit_vict = str_dup( argument ); skills.c: if ( skill->hit_room ) skills.c: DISPOSE(skill->hit_room); skills.c: skill->hit_room = str_dup( argument ); skills.c: if ( skill->hit_dest ) skills.c: DISPOSE(skill->hit_dest); skills.c: skill->hit_dest = str_dup( argument ); skills.c: if ( skill->miss_char ) skills.c: DISPOSE(skill->miss_char); skills.c: skill->miss_char = str_dup( argument ); skills.c: if ( skill->miss_vict ) skills.c: DISPOSE(skill->miss_vict); skills.c: skill->miss_vict = str_dup( argument ); skills.c: if ( skill->miss_room ) skills.c: DISPOSE(skill->miss_room); skills.c: skill->miss_room = str_dup( argument ); skills.c: if ( skill->die_char ) skills.c: DISPOSE(skill->die_char); skills.c: skill->die_char = str_dup( argument ); skills.c: if ( skill->die_vict ) skills.c: DISPOSE(skill->die_vict); skills.c: skill->die_vict = str_dup( argument ); skills.c: if ( skill->die_room ) skills.c: DISPOSE(skill->die_room); skills.c: skill->die_room = str_dup( argument ); skills.c: if ( skill->imm_char ) skills.c: DISPOSE(skill->imm_char); skills.c: skill->imm_char = str_dup( argument ); skills.c: if ( skill->imm_vict ) skills.c: DISPOSE(skill->imm_vict); skills.c: skill->imm_vict = str_dup( argument ); skills.c: if ( skill->imm_room ) skills.c: DISPOSE(skill->imm_room); skills.c: skill->imm_room = str_dup( argument ); skills.c: if ( skill->dice ) skills.c: DISPOSE(skill->dice); skills.c: skill->dice = str_dup( argument ); skills.c: if ( skill->components ) skills.c: DISPOSE(skill->components); skills.c: skill->components = str_dup( argument ); skills.c: if ( skill->teachers ) skills.c: DISPOSE(skill->teachers); skills.c: skill->teachers = str_dup( argument ); skills.c: if ( skill_table[sn]->name skills.c: /* && ( victim->level >= skill_table[sn]->skill_level[victim->class] */ skills.c: && ( victim->level >= SKILL_CLASS( victim, sn ) skills.c: victim->pcdata->learned[sn] = GET_ADEPT( victim, sn ); skills.c: victim->pcdata->learned[sn] = value; skills.c: victim->pcdata->learned[sn] = value; skills.c: if ( IS_NPC(ch) || ch->pcdata->learned[sn] <= 0 ) skills.c: sklvl = skill_table[sn]->skill_level[ch->class]; skills.c: sklvl = ch->level; skills.c: if ( ch->pcdata->learned[sn] < adept ) skills.c: chance = ch->pcdata->learned[sn] + (5 * skill_table[sn]->difficulty); skills.c: if ( chance - percent > 25 ) skills.c: ch->pcdata->learned[sn] = UMIN( adept, ch->pcdata->learned[sn] + learn ); skills.c: if ( ch->pcdata->learned[sn] == adept ) /* fully learned! */ skills.c: skill_table[sn]->name, gain ); skills.c: if ( !ch->fighting && sn != gsn_hide && sn != gsn_sneak ) skills.c: gain /= 2; /* Twice the levels, half the gain -- Scion */ skills.c: if ( IS_NPC(ch) || ch->pcdata->learned[sn] <= 0 ) skills.c: chance = ch->pcdata->learned[sn] + (5 * skill_table[sn]->difficulty); skills.c: if ( chance - number_percent() > 25 ) skills.c: if ( ch->pcdata->learned[sn] < (adept-1) ) skills.c: ch->pcdata->learned[sn] = UMIN( adept, ch->pcdata->learned[sn] + 1 ); skills.c: if ( ch->mount ) skills.c: chance = (( get_curr_dex(victim) - get_curr_dex(ch)) * 10) + 10; skills.c: if ( victim->fighting && victim->fighting->who != ch ) skills.c: dam = number_range( 5, ch->level ); skills.c: af.modifier = -6; skills.c: af.duration = ( ch->level+10 ) / get_curr_con( victim ); skills.c: af.duration = 3 + (ch->level/15); skills.c: victim->name ); skills.c: /* Taken out by request - put back in by Thoric skills.c: WAIT_STATE( ch, skill_table[gsn_gouge]->beats ); skills.c: switch( ch->substate ) skills.c: if ( ch->mount ) skills.c: if ( !ch->in_room->first_content ) skills.c: for ( obj = ch->in_room->first_content; obj; obj = obj->next_content ) skills.c: if ( can_see_obj( ch, obj ) && nifty_is_name( arg, obj->name ) ) skills.c: ch->alloc_ptr = str_dup( obj->name ); skills.c:/* WAIT_STATE( ch, skill_table[gsn_detrap]->beats ); */ skills.c: if ( !ch->alloc_ptr ) skills.c: bug( "do_detrap: ch->alloc_ptr NULL!", 0 ); skills.c: strcpy( arg, ch->alloc_ptr ); skills.c: DISPOSE( ch->alloc_ptr ); skills.c: ch->alloc_ptr = NULL; skills.c: ch->substate = SUB_NONE; skills.c: DISPOSE(ch->alloc_ptr); skills.c: ch->substate = SUB_NONE; skills.c: if ( !ch->in_room->first_content ) skills.c: for ( obj = ch->in_room->first_content; obj; obj = obj->next_content ) skills.c: if ( can_see_obj( ch, obj ) && nifty_is_name( arg, obj->name ) ) skills.c: percent = number_percent( ) - ( ch->level / 15 ) skills.c: - (get_curr_lck(ch) - 16); skills.c: switch( ch->substate ) skills.c: if ( ch->mount ) skills.c: && get_dir(arg) == -1 ) skills.c: if ( !IS_SET(pexit->exit_info, EX_DIG) skills.c: && !IS_SET(pexit->exit_info, EX_CLOSED) ) skills.c: switch( ch->in_room->sector_type ) skills.c: add_timer( ch, TIMER_DO_FUN, UMIN(skill_table[gsn_dig]->beats / 10, 3), do_dig, 1); skills.c: ch->alloc_ptr = str_dup( arg ); skills.c: if ( !ch->alloc_ptr ) skills.c: strcpy( arg, ch->alloc_ptr ); skills.c: DISPOSE( ch->alloc_ptr ); skills.c: DISPOSE( ch->alloc_ptr ); skills.c: ch->substate = SUB_NONE; skills.c: ch->substate = SUB_NONE; skills.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) skills.c: if ( obj->item_type == ITEM_SHOVEL ) skills.c: && IS_SET( pexit->exit_info, EX_DIG ) skills.c: && IS_SET( pexit->exit_info, EX_CLOSED ) ) skills.c: REMOVE_BIT( pexit->exit_info, EX_CLOSED ); skills.c: startobj = ch->in_room->first_content; skills.c: for ( obj = startobj; obj; obj = obj->next_content ) skills.c: (IS_NPC(ch) ? 80 : ch->pcdata->learned[gsn_dig]) ) skills.c: xREMOVE_BIT( obj->extra_flags, ITEM_BURIED ); skills.c: if ( obj->item_type == ITEM_CORPSE_PC skills.c: || obj->item_type == ITEM_CORPSE_NPC ) skills.c: door = -1; skills.c: switch( ch->substate ) skills.c: if ( ch->mount ) skills.c: if ( arg[0] != '\0' && (door = get_door( arg )) == -1 ) skills.c: if ( container->item_type != ITEM_CONTAINER ) skills.c: if ( IS_SET(container->value[1], CONT_CLOSED) ) skills.c: add_timer( ch, TIMER_DO_FUN, UMIN(skill_table[gsn_search]->beats / 10, 3), skills.c: ch->alloc_ptr = str_dup( arg ); skills.c: if ( !ch->alloc_ptr ) skills.c: strcpy( arg, ch->alloc_ptr ); skills.c: DISPOSE( ch->alloc_ptr ); skills.c: DISPOSE( ch->alloc_ptr ); skills.c: ch->substate = SUB_NONE; skills.c: ch->substate = SUB_NONE; skills.c: startobj = ch->in_room->first_content; skills.c: if ( (door = get_door( arg )) != -1 ) skills.c: startobj = container->first_content; skills.c: if ( (!startobj && door == -1) || IS_NPC(ch) ) skills.c: percent = number_percent( ) + number_percent( ) - ( ch->level / 10 ); skills.c: if ( door != -1 ) skills.c: if ( (pexit = get_exit( ch->in_room, door )) != NULL skills.c: && IS_SET( pexit->exit_info, EX_SECRET ) skills.c: && IS_SET( pexit->exit_info, EX_xSEARCHABLE ) skills.c: act( AT_SKILL, "Your search reveals the $d!", ch, NULL, pexit->keyword, TO_CHAR ); skills.c: act( AT_SKILL, "$n finds the $d!", ch, NULL, pexit->keyword, TO_ROOM ); skills.c: REMOVE_BIT( pexit->exit_info, EX_SECRET ); skills.c: for ( obj = startobj; obj; obj = obj->next_content ) skills.c: xREMOVE_BIT( obj->extra_flags, ITEM_HIDDEN ); skills.c: if ( ch->mount ) skills.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) skills.c: running around stealing eq from equipped pkillers. -- Narn skills.c: if ((ch->level > victim->level + 10) && !IS_NPC(victim)) { skills.c: if ((ch->level < victim->level - 10) && !IS_NPC(victim)) { skills.c: Pstealing is cool! -- Scion */ skills.c: if ( xIS_SET(victim->act, ACT_PACIFIST) ) /* Gorog */ skills.c: send_to_char( "They are a pacifist - Shame on you!\n\r", ch); skills.c: WAIT_STATE( ch, skill_table[gsn_steal]->beats ); skills.c: percent = number_percent( ) + ( IS_AWAKE(victim) ? 10 : -50 ) skills.c: - (get_curr_lck(ch) - 15) + (get_curr_lck(victim) - 13); skills.c: if( ch->level + 10 < victim->level ) skills.c: if ( victim->position == POS_FIGHTING skills.c: sprintf( buf, "%s is a bloody thief!", ch->name ); skills.c: if ( (mst = ch->master) == NULL ) skills.c: if ( !xIS_SET(mst->act, PLR_THIEF) ) skills.c: xSET_BIT(mst->act, PLR_THIEF); skills.c: amount = (int) (victim->gold * number_range(1, 10) / 100); skills.c: ch->gold += amount; skills.c: victim->gold -= amount; skills.c: || obj->level > ch->level ) skills.c: if ( ch->carry_number + (get_obj_number(obj)/obj->count) > can_carry_n( ch ) ) skills.c: if ( ch->carry_weight + (get_obj_weight(obj)/obj->count) > can_carry_w( ch ) ) skills.c: if ( ch->mount ) skills.c: /* Added stabbing weapon. -Narn */ skills.c: || ( obj->value[3] != 11 && obj->value[3] != 2 ) ) skills.c: if ( victim->fighting ) skills.c: /* Can backstab a char even if it's hurt as long as it's sleeping. -Narn */ skills.c: if ( victim->hit < victim->max_hit && IS_AWAKE( victim ) ) skills.c: percent = number_percent( ) - (get_curr_lck(ch) - 14) skills.c: + (get_curr_lck(victim) - 13); skills.c: WAIT_STATE( ch, skill_table[gsn_backstab]->beats ); skills.c: if ( ch->mount ) skills.c: if ( !ch->fighting ) skills.c: percent = number_percent( ) - (get_curr_lck(ch) - 14) skills.c: - (get_curr_lck(victim) - 16); skills.c: WAIT_STATE( ch, skill_table[gsn_rescue]->beats ); skills.c: if ( ch->fighting ) skills.c: /* && ch->level < skill_table[gsn_kick]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_kick ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_kick]->beats ); skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_kick ); skills.c: /*&& ch->level < skill_table[gsn_punch]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_punch ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_punch]->beats ); skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_punch ); skills.c: /* && ch->level < skill_table[gsn_bite]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_bite ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_bite]->beats ); skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_bite ); skills.c: /* && ch->level < skill_table[gsn_claw]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_claw ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_claw]->beats ); skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_claw ); skills.c: /* && ch->level < skill_table[gsn_sting]->skill_level[ch->class] )*/ skills.c: && ch->level < SKILL_CLASS( ch, gsn_sting ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_sting]->beats ); skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_sting ); skills.c: /* && ch->level < skill_table[gsn_tail]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_tail ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_tail]->beats ); skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_tail ); skills.c: /* && ch->level < skill_table[gsn_bash]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_bash ) ) skills.c: - (get_curr_dex(ch) + get_curr_str(ch))) * 10) + 10; skills.c: if ( victim->fighting && victim->fighting->who != ch ) skills.c: WAIT_STATE( ch, skill_table[gsn_bash]->beats ); skills.c: /* do not change anything here! -Thoric */ skills.c: victim->position = POS_SITTING; skills.c: global_retcode = damage( ch, victim, number_range( 1, ch->level ), gsn_bash ); skills.c: /* && ch->level < skill_table[gsn_stun]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_stun ) ) skills.c: if ( !IS_NPC(ch) && ch->move < ch->max_move/10 ) skills.c: WAIT_STATE( ch, skill_table[gsn_stun]->beats ); skills.c: chance = ris_save( victim, ch->level, RIS_PARALYSIS ); skills.c: - (get_curr_dex(ch) + get_curr_str(ch))) * 10) + 10; skills.c: /* DO *NOT* CHANGE! -Thoric */ skills.c: ch->move -= ch->max_move/10; skills.c: ch->move -= ch->max_move/15; skills.c: if ( ch->fighting ) skills.c: if ( ch->pcdata->condition[COND_BLOODTHIRST] < 10 ) skills.c: gain_condition( ch, COND_BLOODTHIRST, -7 ); skills.c: obj->timer = 1; skills.c: obj->value[1] = 6; skills.c: obj_to_room( obj, ch->in_room ); skills.c: if ( ch->mount ) skills.c: WAIT_STATE( ch, skill_table[gsn_feed]->beats ); skills.c: dam = number_range( 1, ch->level ); skills.c: && ch->fighting skills.c: && ch->pcdata->condition[COND_BLOODTHIRST] < (10 + ch->level) ) skills.c: UMIN( number_range(1, (ch->level+victim->level / 20) + 3 ), skills.c: (10 + ch->level) - ch->pcdata->condition[COND_BLOODTHIRST] ) ); skills.c: if ( ch->pcdata->condition[COND_FULL] <= 37 ) skills.c: && ch->fighting skills.c: && ch->pcdata->condition[COND_BLOODTHIRST] < (10 + ch->level) ) skills.c: * Check for loyalty flag (weapon disarms to inventory) for pkillers -Blodkai skills.c: tmpobj->wear_loc = WEAR_WIELD; skills.c: SET_BIT( obj->magic_flags, ITEM_PKDISARMED ); skills.c: obj->value[5] = victim->level; skills.c: obj_to_room( obj, victim->in_room ); skills.c: /* && ch->level < skill_table[gsn_disarm]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_disarm ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_disarm]->beats ); skills.c: percent = number_percent( ) + victim->level - ch->level skills.c: - (get_curr_lck(ch) - 15) + (get_curr_lck(victim) - 15); skills.c: if ( victim->mount ) skills.c: if ( IS_AFFECTED( victim->mount, AFF_FLYING ) skills.c: || IS_AFFECTED( victim->mount, AFF_FLOATING ) ) skills.c: xREMOVE_BIT( victim->mount->act, ACT_MOUNTED ); skills.c: victim->mount = NULL; skills.c: victim->position = POS_RESTING; skills.c: if ( victim->wait == 0 ) skills.c: victim->position = POS_RESTING; skills.c:/* Converted to function well as a skill for vampires -- Blodkai */ skills.c: if ( ch->mount ) { skills.c: WAIT_STATE( ch, skill_table[gsn_mistwalk]->beats ); skills.c: if ( IS_PKILL(ch) && ch->pcdata->condition[COND_BLOODTHIRST] > 22 ) skills.c: || !victim->in_room skills.c: || IS_SET(victim->in_room->room_flags, ROOM_PRIVATE) skills.c: || IS_SET(victim->in_room->room_flags, ROOM_SOLITARY) skills.c: || IS_SET(victim->in_room->room_flags, ROOM_NO_ASTRAL) skills.c: || IS_SET(victim->in_room->room_flags, ROOM_DEATH) skills.c: || IS_SET(victim->in_room->room_flags, ROOM_PROTOTYPE) skills.c: || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) skills.c: || victim->level >= ch->level + 15 skills.c: || (IS_NPC(victim) && xIS_SET(victim->act, ACT_PROTOTYPE)) skills.c: || (IS_NPC(victim) && saves_spell_staff( ch->level, victim )) skills.c: || !in_hard_range( ch, victim->in_room->area ) skills.c: || (IS_SET(victim->in_room->area->flags, AFLAG_NOPKILL) && IS_PKILL(ch))) skills.c: gain_condition( ch, COND_BLOODTHIRST, - 22 ); skills.c: char_to_room( ch, victim->in_room ); skills.c: if ( ch->mount ) { skills.c: WAIT_STATE( ch, skill_table[gsn_broach]->beats ); skills.c: if ( !IS_SET(pexit->exit_info, EX_CLOSED) skills.c: || !IS_SET(pexit->exit_info, EX_LOCKED) skills.c: || IS_SET(pexit->exit_info, EX_PICKPROOF) skills.c: check_room_for_traps( ch, TRAP_PICK | trap_door[pexit->vdir] ); skills.c: REMOVE_BIT(pexit->exit_info, EX_LOCKED); skills.c: if ( ( pexit_rev = pexit->rexit ) != NULL && pexit_rev->to_room == ch->in_room ) skills.c: REMOVE_BIT( pexit_rev->exit_info, EX_LOCKED ); skills.c: check_room_for_traps( ch, TRAP_PICK | trap_door[pexit->vdir] ); skills.c: if ( ch->mount ) skills.c: WAIT_STATE( ch, skill_table[gsn_pick_lock]->beats ); skills.c: for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) skills.c: if ( IS_NPC(gch) && IS_AWAKE(gch) && ch->level + 5 < gch->level ) skills.c:/* for ( gch = ch->in_room->first_person; gch; gch = gch->next_in_room ) skills.c: if ( IS_NPC(gch) && IS_AWAKE(gch) && xIS_SET(gch->act, ACT_GUARDIAN ) ) skills.c: if ( !IS_SET(pexit->exit_info, EX_CLOSED) ) skills.c: if ( pexit->key < 0 ) skills.c: if ( !IS_SET(pexit->exit_info, EX_LOCKED) ) skills.c: if ( IS_SET(pexit->exit_info, EX_PICKPROOF) ) skills.c: check_room_for_traps( ch, TRAP_PICK | trap_door[pexit->vdir] ); skills.c: REMOVE_BIT(pexit->exit_info, EX_LOCKED); skills.c: act( AT_ACTION, "$n picks the $d.", ch, NULL, pexit->keyword, TO_ROOM ); skills.c: if ( ( pexit_rev = pexit->rexit ) != NULL skills.c: && pexit_rev->to_room == ch->in_room ) skills.c: REMOVE_BIT( pexit_rev->exit_info, EX_LOCKED ); skills.c: check_room_for_traps( ch, TRAP_PICK | trap_door[pexit->vdir] ); skills.c: if ( obj->item_type != ITEM_CONTAINER ) skills.c: if ( !IS_SET(obj->value[1], CONT_CLOSED) ) skills.c: if ( obj->value[2] < 0 ) skills.c: if ( !IS_SET(obj->value[1], CONT_LOCKED) ) skills.c: if ( IS_SET(obj->value[1], CONT_PICKPROOF) ) skills.c: REMOVE_BIT(obj->value[1], CONT_LOCKED); skills.c: if ( ch->mount ) skills.c: af.duration = ch->level * DUR_CONV; skills.c: if ( ch->mount ) skills.c: xREMOVE_BIT(ch->affected_by, AFF_HIDE); skills.c: xSET_BIT(ch->affected_by, AFF_HIDE); skills.c: xREMOVE_BIT ( ch->affected_by, AFF_HIDE ); skills.c: xREMOVE_BIT ( ch->affected_by, AFF_INVISIBLE ); skills.c: xREMOVE_BIT ( ch->affected_by, AFF_SNEAK ); skills.c: if (IS_AFFECTED(ch, AFF_CHARM) && ch->master && !IS_NPC(ch->master)) skills.c: location = get_room_index( ch->pcdata->memorize[0] ); skills.c: if ( !location && !IS_NPC(ch) && ch->pcdata->clan ) skills.c: location = get_room_index( ch->pcdata->clan->recall ); skills.c: if ( !IS_NPC( ch ) && !location && ch->level >= 5 skills.c: /* && IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) */ ) skills.c: /* 1998-01-02, h */ skills.c: location = get_room_index(race_table[ch->race]->race_recall); skills.c: if ( ch->in_room == location ) skills.c: if ( IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) ) skills.c: if( IS_SET( location->area->flags, AFLAG_CLOSED ) ) skills.c: lose = (exp_level(ch, ch->level+1) - exp_level(ch, ch->level)) * 0.1; skills.c: if ( ch->desc ) skills.c: /* gain_exp( ch, 0 - lose ); skills.c: -- exp loss removed at Keolah's request -- Scion */ skills.c: if ( ch->mount ) skills.c: char_from_room( ch->mount ); skills.c: char_to_room( ch->mount, location ); skills.c: if ( ch->mount ) skills.c: if ( victim->position > POS_STUNNED ) skills.c: if ( victim->hit <= -6 ) skills.c: percent = number_percent( ) - (get_curr_lck(ch) - 13); skills.c: WAIT_STATE( ch, skill_table[gsn_aid]->beats ); skills.c: if ( victim->hit < 1 ) skills.c: victim->hit = 1; skills.c: /* && ch->level < skill_table[gsn_mount]->skill_level[ch->class] )*/ skills.c: && ch->level < SKILL_CLASS( ch, gsn_mount ) ) skills.c: if ( ch->mount ) skills.c: if ( !IS_NPC(victim) || !xIS_SET(victim->act, ACT_MOUNTABLE ) ) skills.c: if ( xIS_SET(victim->act, ACT_MOUNTED ) ) skills.c: if ( victim->position < POS_STANDING ) skills.c: if ( victim->position == POS_FIGHTING || victim->fighting ) skills.c: WAIT_STATE( ch, skill_table[gsn_mount]->beats ); skills.c: xSET_BIT(victim->act, ACT_MOUNTED ); skills.c: ch->mount = victim; skills.c: ch->position = POS_MOUNTED; skills.c: if ( (victim = ch->mount) == NULL ) skills.c: WAIT_STATE( ch, skill_table[gsn_mount]->beats ); skills.c: xREMOVE_BIT( victim->act, ACT_MOUNTED ); skills.c: ch->mount = NULL; skills.c: ch->position = POS_STANDING; skills.c: xREMOVE_BIT( victim->act, ACT_MOUNTED ); skills.c: ch->mount = NULL; skills.c: ch->position = POS_SITTING; skills.c: if ( IS_NPC(victim) && !xIS_SET(victim->defenses, DFND_PARRY) ) skills.c: chances = UMIN( 60, 2 * victim->level ); skills.c: if ( chances != 0 && victim->morph ) skills.c: chances+=victim->morph->parry; skills.c: if ( !chance( victim, chances + victim->level - ch->level ) ) skills.c: && !IS_SET( victim->pcdata->flags, PCFLAG_GAG) ) /*SB*/ skills.c: && !IS_SET( ch->pcdata->flags, PCFLAG_GAG) ) /* SB */ skills.c: if ( IS_NPC(victim) && !xIS_SET(victim->defenses, DFND_DODGE) ) skills.c: chances = UMIN( 60, 2 * victim->level ); skills.c: if ( chances != 0 && victim->morph != NULL ) skills.c: chances+=victim->morph->dodge; skills.c: if ( !chance( victim, chances + victim->level - ch->level ) ) skills.c: if ( !IS_NPC(victim) && !IS_SET( victim->pcdata->flags, PCFLAG_GAG) ) skills.c: if ( !IS_NPC(ch) && !IS_SET( ch->pcdata->flags, PCFLAG_GAG) ) skills.c: && !victim->pcdata->learned[gsn_tumble] > 0 ) skills.c: chances = UMIN( 60, 2 * victim->level ); skills.c: + ( get_curr_dex( victim ) - 13 ) ); skills.c: if ( chances != 0 && victim->morph ) skills.c: chances+=victim->morph->tumble; skills.c: if ( !chance( victim, chances + victim->level - ch->level ) ) skills.c: if ( !IS_NPC(victim) && !IS_SET( victim->pcdata->flags, PCFLAG_GAG ) ) skills.c: if ( !IS_NPC(ch) && !IS_SET( ch->pcdata->flags, PCFLAG_GAG ) ) skills.c: /* && ch->level < skill_table[gsn_poison_weapon]->skill_level[ch->class] )*/ skills.c: && ch->level < SKILL_CLASS( ch, gsn_poison_weapon ) ) skills.c: if ( ch->fighting ) skills.c: if ( obj->item_type != ITEM_WEAPON ) skills.c: for ( pobj = ch->first_carrying; pobj; pobj = pobj->next_content ) skills.c: if ( pobj->pIndexData->vnum == OBJ_VNUM_BLACK_POWDER ) skills.c: for ( wobj = ch->first_carrying; wobj; wobj = wobj->next_content ) skills.c: if ( wobj->item_type == ITEM_DRINK_CON skills.c: && wobj->value[1] > 0 skills.c: && wobj->value[2] == 0 ) skills.c: && ( (get_curr_dex( ch ) < 17) || ch->pcdata->condition[COND_DRUNK] > 0 ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_poison_weapon]->beats ); skills.c: percent = (number_percent( ) - get_curr_lck(ch) - 14); skills.c: damage( ch, ch, ch->level, gsn_poison_weapon ); skills.c: xSET_BIT( obj->extra_flags, ITEM_POISONED ); skills.c: obj->cost *= 2; skills.c: obj->timer = UMIN( obj->level, ch->level ); skills.c: obj->timer *= 2; skills.c: obj->timer *= 2; skills.c: /* && ch->level < skill_table[gsn_scribe]->skill_level[ch->class] )*/ skills.c: && ch->level < SKILL_CLASS( ch, gsn_scribe ) ) skills.c: if ( skill_table[sn]->spell_fun == spell_null ) skills.c: mana = IS_NPC(ch) ? 0 : UMAX(skill_table[sn]->min_mana, skills.c: 100 / ( 2 + ch->level - skill_table[sn]->skill_level[ch->class] ) ); skills.c: if ( !IS_NPC(ch) && ch->mana < mana ) skills.c: if( scroll->pIndexData->vnum != OBJ_VNUM_SCROLL_SCRIBING ) skills.c: if ( ( scroll->value[1] != -1 ) skills.c: && ( scroll->pIndexData->vnum == OBJ_VNUM_SCROLL_SCRIBING ) ) skills.c: ch->mana -= (mana / 2); skills.c: ch->mana -= (mana / 2); skills.c: scroll->value[1] = sn; skills.c: scroll->value[0] = ch->level; skills.c: sprintf(buf1, "%s scroll", skill_table[sn]->name); skills.c: STRFREE(scroll->short_descr); skills.c: scroll->short_descr = STRALLOC( aoran(buf1) ); skills.c: skill_table[sn]->name); skills.c: STRFREE(scroll->description); skills.c: scroll->description = STRALLOC(buf2); skills.c: sprintf(buf3, "scroll scribing %s", skill_table[sn]->name); skills.c: STRFREE(scroll->name); skills.c: scroll->name = STRALLOC(buf3); skills.c: ch->mana -= mana; skills.c: /* && ch->level < skill_table[gsn_brew]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_brew ) ) skills.c: if ( skill_table[sn]->spell_fun == spell_null ) skills.c: mana = IS_NPC(ch) ? 0 : UMAX(skill_table[sn]->min_mana, skills.c: 100 / ( 2 + ch->level - skill_table[sn]->skill_level[ch->class] ) ); skills.c: if ( !IS_NPC(ch) && ch->mana < mana ) skills.c: for ( fire = ch->in_room->first_content; fire; skills.c: fire = fire->next_content ) skills.c: if( fire->item_type == ITEM_FIRE) skills.c: if( potion->pIndexData->vnum != OBJ_VNUM_FLASK_BREWING ) skills.c: if ( ( potion->value[1] != -1 ) skills.c: && ( potion->pIndexData->vnum == OBJ_VNUM_FLASK_BREWING ) ) skills.c: ch->mana -= (mana / 2); skills.c: ch->mana -= (mana / 2); skills.c: potion->value[1] = sn; skills.c: potion->value[0] = ch->level; skills.c: sprintf(buf1, "%s potion", skill_table[sn]->name); skills.c: STRFREE(potion->short_descr); skills.c: potion->short_descr = STRALLOC( aoran(buf1) ); skills.c: skill_table[sn]->name); skills.c: STRFREE(potion->description); skills.c: potion->description = STRALLOC(buf2); skills.c: sprintf(buf3, "flask potion %s", skill_table[sn]->name); skills.c: STRFREE(potion->name); skills.c: potion->name = STRALLOC(buf3); skills.c: ch->mana -= mana; skills.c: if ( IS_NPC(victim) && !xIS_SET(victim->defenses, DFND_GRIP) ) skills.c: chance = UMIN( 60, 2 * victim->level ); skills.c: chance += (2 * (get_curr_lck(victim) - 13 ) ); skills.c: if ( number_percent( ) >= chance + victim->level - ch->level ) skills.c: if ( ch->mount ) skills.c: || ( obj->value[3] != 11 && obj->value[3] != 2 ) ) skills.c: if ( !ch->fighting ) skills.c: if ( !victim->fighting ) skills.c: if ( victim->num_fighting < 2 ) skills.c: percent = number_percent( ) - (get_curr_lck(ch) - 16) skills.c: + (get_curr_lck(victim) - 13); skills.c: WAIT_STATE( ch, skill_table[gsn_circle]->beats ); skills.c:/* Berserk and HitAll. -- Altrag */ skills.c: if ( !ch->fighting ) skills.c: WAIT_STATE(ch, skill_table[gsn_berserk]->beats); skills.c: /* Hmmm.. 10-20 combat rounds at level 50.. good enough for most mobs, skills.c: too high. -- Altrag */ skills.c: af.duration = number_range(ch->level/5, ch->level*2/5); skills.c: if ( IS_SET(ch->in_room->room_flags, ROOM_SAFE) ) skills.c: if ( !ch->in_room->first_person ) skills.c: for ( vch = ch->in_room->first_person; vch; vch = vch_next ) skills.c: vch_next = vch->next_in_room; skills.c: if ( ++nvict > ch->level / 5 ) skills.c: /* Fireshield, etc. could kill ch too.. :>.. -- Altrag */ skills.c: ch->move = UMAX(0, ch->move-nvict*3+nhit); skills.c: if (/* ( !IS_SET( victim->pcdata->flags, PCFLAG_DEADLY ) || */ch->level - victim->level > 10 skills.c: /* || !IS_SET( ch->pcdata->flags, PCFLAG_DEADLY ) ) */ skills.c: (IS_NPC(ch) ? ch->short_descr : ch->name), skills.c: victim->name, skills.c: victim->in_room->vnum ); skills.c: sh_int dir = -1; skills.c: if ( ( dir = get_door( argument ) ) == -1 ) skills.c: was_in_room = ch->in_room; skills.c: if ( ( pexit = get_exit( ch->in_room, dir ) ) == NULL ) skills.c: if ( ch->level < 50 ) --max_dist; skills.c: if ( ch->level < 40 ) --max_dist; skills.c: if ( ch->level < 30 ) --max_dist; skills.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) ) skills.c: if ( IS_SET(pexit->exit_info, EX_SECRET) skills.c: || IS_SET(pexit->exit_info, EX_DIG) ) skills.c: if ( room_is_private( pexit->to_room ) skills.c: && ch->level < LEVEL_GREATER ) skills.c: char_to_room( ch, pexit->to_room ); skills.c: send_to_char( ch->in_room->name, ch ); skills.c: show_list_to_char( ch->in_room->first_content, ch, FALSE, FALSE ); skills.c: show_char_to_char( ch->in_room->first_person, ch ); skills.c: switch( ch->in_room->sector_type ) skills.c: if ( ( pexit = get_exit( ch->in_room, dir ) ) == NULL ) skills.c: * sync) used to find the victim we're firing at. -Thoric skills.c: was_in_room = ch->in_room; skills.c: if ( ch->level < 50 ) --max_dist; skills.c: if ( ch->level < 40 ) --max_dist; skills.c: if ( ch->level < 30 ) --max_dist; skills.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) ) skills.c: if ( room_is_private( pexit->to_room ) skills.c: && ch->level < LEVEL_GREATER ) skills.c: char_to_room( ch, pexit->to_room ); skills.c: switch( ch->in_room->sector_type ) skills.c: dir = pexit->vdir; skills.c: if ( (pexit=get_exit(ch->in_room, dir)) == NULL ) skills.c: * Also search open quivers. -Thoric skills.c: for ( obj = ch->last_carrying; obj; obj = obj->prev_content ) skills.c: if ( obj->item_type == ITEM_QUIVER && !IS_SET(obj->value[1], CONT_CLOSED) ) skills.c: for ( obj2 = obj->last_content; obj2; obj2 = obj2->prev_content ) skills.c: if ( obj2->item_type == ITEM_PROJECTILE skills.c: && obj2->value[3] == type ) skills.c: if ( obj->item_type == ITEM_PROJECTILE && obj->value[3] == type ) skills.c: * Perform the actual attack on a victim -Thoric skills.c: if ( IS_SET(ch->in_room->room_flags, ROOM_SAFE) ) skills.c: global_retcode = spell_attack( dt, ch->level, ch, victim ); skills.c: if ( projectile->in_obj ) skills.c: if ( projectile->carried_by ) skills.c: obj_to_room(projectile, victim->in_room); skills.c: * Generic use ranged attack function -Thoric & Tricops skills.c: sh_int dir = -1, dist = 0, color = AT_GREY; skills.c: dir = pexit->vdir; skills.c: if ( IS_SET(ch->in_room->room_flags, ROOM_PRIVATE) skills.c: || IS_SET(ch->in_room->room_flags, ROOM_SOLITARY) ) skills.c: if ( ch->in_room->tunnel > 0 ) skills.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) skills.c: if ( count >= ch->in_room->tunnel ) skills.c: if ( pexit && !pexit->to_room ) skills.c: if ( pexit && IS_SET(pexit->exit_info, EX_CLOSED) ) skills.c: if ( IS_SET(pexit->exit_info, EX_SECRET) skills.c: || IS_SET(pexit->exit_info, EX_DIG) ) skills.c: if ( IS_NPC(vch) && xIS_SET(vch->act, ACT_STAY_AREA) skills.c: && ch->in_room->area != vch->in_room->area) ) skills.c: /*don't allow attacks on mobs that are in a no-missile room --Shaddai */ skills.c: if ( IS_SET(vch->in_room->room_flags, ROOM_NOMISSILE) ) skills.c: if ( vch->num_fighting > max_fight(vch) ) skills.c: xIS_SET(ch->act, PLR_NICE ) ) skills.c: was_in_room = ch->in_room; skills.c: if ( skill->noun_damage && skill->noun_damage[0] != '\0' ) skills.c: stxt = skill->noun_damage; skills.c: stxt = skill->name; skills.c: if ( skill->type == SKILL_SPELL ) skills.c: dtxt = rev_exit(pexit->vdir); skills.c: char_to_room(ch, pexit->to_room); skills.c: if ( IS_SET(pexit->exit_info, EX_CLOSED) ) skills.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) skills.c: if ( victim && ch->in_room == victim->in_room ) skills.c: if ( projectile->in_obj ) skills.c: if ( projectile->carried_by ) skills.c: obj_to_room(projectile, ch->in_room); skills.c: if ( ( pexit = get_exit( ch->in_room, dir ) ) == NULL ) skills.c: if ( projectile->in_obj ) skills.c: if ( projectile->carried_by ) skills.c: obj_to_room(projectile, ch->in_room); skills.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) skills.c: if ( !(bow->item_type == ITEM_MISSILE_WEAPON) ) skills.c: /* modify maximum distance based on bow-type and ch's class/str/etc */ skills.c: max_dist = URANGE( 1, bow->value[4], 10 ); skills.c: if ( (arrow=find_projectile(ch, bow->value[3])) == NULL ) skills.c: switch( bow->value[3] ) skills.c: ranged_attack( ch, argument, bow, arrow, TYPE_HIT + arrow->value[3], max_dist ); skills.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) skills.c: if ( !(bow->item_type == ITEM_MISSILE_WEAPON) ) skills.c: /* modify maximum distance based on bow-type and ch's class/str/etc */ skills.c: max_dist = URANGE( 1, bow->value[4], 10 ); skills.c: if ( (arrow=find_projectile(ch, bow->value[3])) == NULL ) skills.c: ranged_attack( ch, name, bow, arrow, TYPE_HIT + arrow->value[3], max_dist ); skills.c:/* -- working on -- skills.c: for ( throw_obj = ch->last_carrying; throw_obj; skills.c:--- if ( can_see_obj( ch, throw_obj ) skills.c: && ( throw_obj->wear_loc == WEAR_HELD || throw_obj->wear_loc == skills.c: WEAR_WIELDED || throw_obj->wear_loc == WEAR_DUAL_WIELDED ) skills.c: && nifty_is_name( arg, throw_obj->name ) ) skills.c: ---- skills.c: if ( can_see_obj( ch, throw_obj ) && nifty_is_name( arg, throw_obj->name ) skills.c:---- skills.c: if ( ( throw_obj->item_type != ITEM_WEAPON) skills.c:---- skills.c: if (get_obj_weight( throw_obj ) - ( 3 * (get_curr_str(ch) - 15) ) > 0) skills.c: if ( ch->fighting ) skills.c: victim = ch->fighting; skills.c: act( AT_GREY, "Throw $t at whom?", ch, obj->short_descr, NULL, skills.c:/* gsn_kick was used in this if statement , I fix - shogar */ skills.c: /* && ch->level < skill_table[gsn_slice]->skill_level[ch->class] ) */ skills.c: && ch->level < SKILL_CLASS( ch, gsn_slice ) ) skills.c: || ( obj->value[3] != 1 && obj->value[3] != 2 && obj->value[3] != 3 skills.c: && obj->value[3] != 11) ) skills.c: if (corpse->item_type != ITEM_CORPSE_NPC || corpse->value[3] < 75) skills.c: if ( (pMobIndex = get_mob_index((sh_int) -(corpse->value[2]) )) == NULL ) skills.c: if ( number_percent() + (get_curr_dex(ch) - 13) < 10) skills.c: damage(ch, ch, ch->level, gsn_slice); skills.c: sprintf(buf, "meat fresh slice %s", pMobIndex->player_name); skills.c: STRFREE(slice->name); skills.c: slice->name = STRALLOC(buf); skills.c: sprintf(buf, "a slice of raw meat from %s", pMobIndex->short_descr); skills.c: STRFREE(slice->short_descr); skills.c: slice->short_descr = STRALLOC(buf); skills.c: sprintf(buf1, "A slice of raw meat from %s lies on the ground.", pMobIndex->short_descr); skills.c: STRFREE(slice->description); skills.c: slice->description = STRALLOC(buf1); skills.c: corpse->value[3] -= 25; skills.c:/*------------------------------------------------------------ skills.c: * Fighting Styles - haus skills.c: ch->style == STYLE_BERSERK ? "&Rberserk" : skills.c: ch->style == STYLE_AGGRESSIVE ? "&Raggressive" : skills.c: ch->style == STYLE_DEFENSIVE ? "&Ydefensive" : skills.c: ch->style == STYLE_EVASIVE ? "&Yevasive" : skills.c: /*ch->level < skill_table[gsn_style_evasive]->skill_level[ch->class]) */ skills.c: ch->level < SKILL_CLASS( ch, gsn_style_evasive ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_style_evasive]->beats ); skills.c: if(ch->fighting) skills.c: ch->position = POS_EVASIVE; skills.c: ch->style = STYLE_EVASIVE; skills.c: /* ch->level < skill_table[gsn_style_defensive]->skill_level[ch->class]) */ skills.c: ch->level < SKILL_CLASS( ch, gsn_style_defensive ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_style_defensive]->beats ); skills.c: if(ch->fighting) { skills.c: ch->position = POS_DEFENSIVE; skills.c: ch->style = STYLE_DEFENSIVE; skills.c: /*ch->level < skill_table[gsn_style_standard]->skill_level[ch->class])*/ skills.c: ch->level < SKILL_CLASS( ch, gsn_style_standard ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_style_standard]->beats ); skills.c: if(ch->fighting) { skills.c: ch->position = POS_FIGHTING; skills.c: ch->style = STYLE_FIGHTING; skills.c: /*ch->level < skill_table[gsn_style_aggressive]->skill_level[ch->class])*/ skills.c: ch->level < SKILL_CLASS( ch, gsn_style_aggressive ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_style_aggressive]->beats ); skills.c: if(ch->fighting) { skills.c: ch->position = POS_AGGRESSIVE; skills.c: ch->style = STYLE_AGGRESSIVE; skills.c: /*ch->level < skill_table[gsn_style_berserk]->skill_level[ch->class])*/ skills.c: ch->level < SKILL_CLASS( ch, gsn_style_berserk ) ) skills.c: WAIT_STATE( ch, skill_table[gsn_style_berserk]->beats ); skills.c: if(ch->fighting) { skills.c: ch->position = POS_BERSERK; skills.c: ch->style = STYLE_BERSERK; skills.c:/* New check to see if you can use skills to support morphs --Shaddai */ skills.c: else if ( ch->morph && ch->morph->morph && ch->morph->morph->skills && skills.c: ch->morph->morph->skills[0] != '\0' && skills.c: is_name( skill_table[gsn]->name, ch->morph->morph->skills ) && skills.c: if ( ch->morph && ch->morph->morph && ch->morph->morph->no_skills && skills.c: ch->morph->morph->no_skills[0] != '\0' && skills.c: is_name( skill_table[gsn]->name, ch->morph->morph->no_skills ) ) skills.c: /*ch->level < skill_table[gsn_cook]->skill_level[ch->class] )*/ skills.c: ch->level < SKILL_CLASS( ch, gsn_cook ) ) skills.c: if ( food->item_type != ITEM_COOK ) skills.c: if ( food->value[2] > 2 ) skills.c: for ( fire = ch->in_room->first_content; fire; fire = fire->next_content ) skills.c: if ( fire->item_type == ITEM_FIRE ) skills.c: food->timer = food->timer/2; skills.c: food->value[0] = 0; skills.c: food->value[2] = 3; skills.c: sprintf( buf, "a burnt %s", food->pIndexData->name ); skills.c: STRFREE(food->short_descr); skills.c: food->short_descr = STRALLOC(buf); skills.c: sprintf( buf, "A burnt %s.", food->pIndexData->name); skills.c: STRFREE(food->description); skills.c: food->description = STRALLOC(buf); skills.c: food->timer = food->timer*3; skills.c: food->value[2]+=2; skills.c: sprintf( buf, "an overcooked %s", food->pIndexData->name ); skills.c: STRFREE(food->short_descr); skills.c: food->short_descr = STRALLOC(buf); skills.c: sprintf( buf, "An overcooked %s.", food->pIndexData->name); skills.c: STRFREE(food->description); skills.c: food->description = STRALLOC(buf); skills.c: food->timer = food->timer*4; skills.c: food->value[0] *= 2; skills.c: sprintf( buf, "a roasted %s", food->pIndexData->name ); skills.c: STRFREE(food->short_descr); skills.c: food->short_descr = STRALLOC(buf); skills.c: sprintf( buf, "A roasted %s.", food->pIndexData->name); skills.c: STRFREE(food->description); skills.c: food->description = STRALLOC(buf); skills.c: food->value[2]++; skills.c:/* Allows PCs to learn spells embedded in object. Should prove interesting. - Samson 8-9-98 */ skills.c: if ( obj->item_type != ITEM_STAFF && obj->item_type != ITEM_WAND && skills.c: obj->item_type != ITEM_SCROLL ) skills.c: if (obj->item_type == ITEM_STAFF || obj->item_type == ITEM_WAND ) skills.c: sn = obj->value[3]; skills.c: if ( sn < 0 || sn >= MAX_SKILL || skill_table[sn]->spell_fun == spell_null ) skills.c: WAIT_STATE( ch, skill_table[gsn_study]->beats ); skills.c: if ( number_percent() >= 55 + ch->pcdata->learned[gsn_study] * 4/5) skills.c: if ( ch->pcdata->learned[sn]) skills.c: ch->pcdata->learned[sn] = 1; skills.c: act( AT_MAGIC, "You have learned the art of $t!", ch ,skill_table[sn]->name, NULL, TO_CHAR); skills.c: if (obj->item_type == ITEM_SCROLL) skills.c: sn = obj->value[1]; skills.c: if ( sn < 0 || sn >= MAX_SKILL || skill_table[sn]->spell_fun == spell_null ) skills.c: if ( number_percent() >= 15 + ch->pcdata->learned[gsn_study] * 4/5) skills.c: if ( ch->pcdata->learned[sn]) skills.c: ch->pcdata->learned[sn] = 1; skills.c: act( AT_MAGIC, "You have learned the art of $t!", ch, skill_table[sn]->name, NULL, TO_CHAR); skills.c: short dir = -1; skills.c: if (ch->fighting) skills.c: if (ch->mount) skills.c: if (ch->in_room->sector_type == SECT_UNDERWATER || skills.c: ch->in_room->sector_type == SECT_OCEANFLOOR) skills.c: for (tch = ch->in_room->first_person; tch; tch = tch_next) skills.c: tch_next = tch->next_in_room; skills.c: && tch->level < LEVEL_IMMORTAL skills.c: if (number_percent() < ch->pcdata->learned[gsn_listen]) skills.c: if (ch->level > 15) skills.c: if ((dir = get_door(argument)) == -1) /* The argument must be a direction*/ skills.c: if ((pexit = get_exit(ch->in_room, dir)) == NULL) skills.c: original = ch->in_room; skills.c: char_to_room (ch, pexit->to_room); skills.c: for (tch = ch->in_room->first_person; tch; tch = tch_next) skills.c: tch_next = tch->next_in_room; skills.c: if (tch->level < LEVEL_IMMORTAL skills.c: if (number_percent() < ch->pcdata->learned[gsn_listen]) skills.c: if (ch->level > 15) /*arbitrary, adjust to suit*/ slay.c: * -----------------------------------------------------------| (0...0) * slay.c: * -----------------------------------------------------------| {o o} * slay.c: * ------------------------------------------------------------------------ * slay.c: * ------------------------------------------------------------------------ * slay.c: * Slay V2.0 - Online editable configurable slay options * slay.c:/* ----------------------------------------------------------------------- slay.c:Send any comments, flames, bug-reports, suggestions, requests, etc... slay.c:----------------------------------------------------------------------- */ slay.c: for ( slay = first_slay; slay; slay = slay->next ) slay.c: if ( !str_cmp( name, slay->type ) ) slay.c:/* Online editing of slays added by Samson 8-3-98 */ slay.c: KEY( "Cmessage", slay->cmsg, fread_string( fp ) ); slay.c: KEY( "Color", slay->color, fread_number( fp ) ); slay.c: if (!slay->owner) slay.c: slay->owner = STRALLOC( "Any" ); slay.c: KEY( "Owner", slay->owner, fread_string( fp ) ); slay.c: KEY( "Rmessage", slay->rmsg, fread_string( fp ) ); slay.c: KEY( "Type", slay->type, fread_string( fp ) ); slay.c: KEY( "Vmessage", slay->vmsg, fread_string( fp ) ); slay.c:/* Online slay editing, save the slay table to disk - Samson 8-3-98 */ slay.c: for ( tslay = first_slay; tslay; tslay = tslay->next ) slay.c: fprintf( fp, "Type %s~\n", tslay->type ); slay.c: fprintf( fp, "Owner %s~\n", tslay->owner ); slay.c: fprintf( fp, "Color %d\n", tslay->color ); slay.c: fprintf( fp, "Cmessage %s~\n", tslay->cmsg ); slay.c: fprintf( fp, "Vmessage %s~\n", tslay->vmsg ); slay.c: fprintf( fp, "Rmessage %s~\n", tslay->rmsg ); slay.c: * Updated to work with Smaug 1.4 by Samson 8-3-98 slay.c: send_to_pager_color( "&g-------------------------+---------------\n\r", ch ); slay.c: for ( slay = first_slay; slay; slay = slay->next ) slay.c: pager_printf_color( ch, "&G%-14s &g%13s\n\r", slay->type, slay->owner ); slay.c: if ( !IS_NPC(victim) && victim->level > ch->level ) slay.c: for ( slay = first_slay; slay; slay = slay->next ) slay.c: if ( ( !str_cmp( type, slay->type ) && !str_cmp( "Any", slay->owner ) ) slay.c: || ( !str_cmp( slay->owner, ch->name ) && !str_cmp( type, slay->type ) ) ) slay.c: color = slay->color; slay.c: sprintf( buf, "%s", slay->cmsg ); slay.c: sprintf( buf, "%s", slay->vmsg ); slay.c: sprintf( buf, "%s", slay->rmsg ); slay.c:/* Create a slaytype online - Samson 8-3-98 */ slay.c: /* Glaring oversight just noticed - Samson 7-5-99 */ slay.c: slay->type = STRALLOC( argument ); slay.c: slay->owner = STRALLOC( "Any" ); slay.c: slay->color = AT_IMMORT; slay.c: slay->cmsg = STRALLOC( "You brutally slay $N!" ); slay.c: slay->vmsg = STRALLOC( "$n chops you up into little pieces!" ); slay.c: slay->rmsg = STRALLOC( "$n brutally slays $N!" ); slay.c: ch_printf( ch, "New slaytype %s added. Set to default values.\n\r", slay->type ); slay.c:/* Set slay values online - Samson 8-3-98 */ slay.c: switch( ch->substate ) slay.c: slay = ch->dest_buf; slay.c: STRFREE( slay->cmsg ); slay.c: slay->cmsg = copy_buffer( ch ); slay.c: ch->substate = ch->tempnum; slay.c: slay = ch->dest_buf; slay.c: STRFREE( slay->vmsg ); slay.c: slay->vmsg = copy_buffer( ch ); slay.c: ch->substate = ch->tempnum; slay.c: slay = ch->dest_buf; slay.c: STRFREE( slay->rmsg ); slay.c: slay->rmsg = copy_buffer( ch ); slay.c: ch->substate = ch->tempnum; slay.c: STRFREE( slay->owner ); slay.c: slay->owner = STRALLOC( argument ); slay.c: if ( ch->substate == SUB_REPEATCMD ) slay.c: ch->tempnum = SUB_REPEATCMD; slay.c: ch->tempnum = SUB_NONE; slay.c: ch->substate = SUB_SLAYCMSG; slay.c: ch->dest_buf = slay; slay.c: start_editing( ch, slay->cmsg ); slay.c: if ( ch->substate == SUB_REPEATCMD ) slay.c: ch->tempnum = SUB_REPEATCMD; slay.c: ch->tempnum = SUB_NONE; slay.c: ch->substate = SUB_SLAYVMSG; slay.c: ch->dest_buf = slay; slay.c: start_editing( ch, slay->vmsg ); slay.c: if ( ch->substate == SUB_REPEATCMD ) slay.c: ch->tempnum = SUB_REPEATCMD; slay.c: ch->tempnum = SUB_NONE; slay.c: ch->substate = SUB_SLAYRMSG; slay.c: ch->dest_buf = slay; slay.c: start_editing( ch, slay->rmsg ); slay.c: slay->color = atoi( argument ); slay.c:/* Online slay editor, show details of a slaytype - Samson 8-3-98 */ slay.c: ch_printf( ch, "\n\rSlaytype: %s\n\r", slay->type ); slay.c: ch_printf( ch, "Owner: %s\n\r", slay->owner ); slay.c: ch_printf( ch, "Color: %d\n\r", slay->color ); slay.c: ch_printf( ch, "&RCmessage: \n\r%s", slay->cmsg ); slay.c: ch_printf( ch, "\n\r&YVmessage: \n\r%s", slay->vmsg ); slay.c: ch_printf( ch, "\n\r&GRmessage: \n\r%s", slay->rmsg ); slay.c:/* Of course, to create means you need to be able to destroy as well :P - Samson 8-3-98 */ slay.c: for ( pslay = first_slay; pslay; pslay = pslay->next ) slay.c: if ( !str_cmp( arg, pslay->type ) ) slay.c: STRFREE( pslay->owner ); slay.c: STRFREE( pslay->type ); slay.c: STRFREE( pslay->cmsg ); slay.c: STRFREE( pslay->vmsg ); slay.c: STRFREE( pslay->rmsg ); special.c: * -----------------------------------------------------------| (0...0) * special.c: * -----------------------------------------------------------| {o o} * special.c: * ------------------------------------------------------------------------ * special.c: * ------------------------------------------------------------------------ * special.c: if ( ch->position <= POS_SLEEPING ) special.c: if ( ch->fighting || ch->fearing special.c: || !ch->hating || IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) special.c: if ( ch->hunting ) special.c: one_argument( ch->hating->name, name ); special.c: /* make sure the char exists - works even if player quits */ special.c: victim = victim->next) special.c: if ( !str_cmp( ch->hating->name, victim->name ) ) special.c: if ( ch->in_room == victim->in_room ) special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK ) special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: { /* ok , it checked it, but let me know too - shogar */ special.c: ch->name,spell_name); special.c: (*skill_table[sn]->spell_fun) ( sn, ch->level, ch, victim ); special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK special.c: (*skill_table[sn]->spell_fun) ( sn, ch->level, ch, NULL ); special.c: if ( !IS_AWAKE(ch) || ch->fighting ) special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: spell_smaug( skill_lookup( "armor" ), ch->level, ch, victim ); special.c: spell_smaug( skill_lookup( "bless" ), ch->level, ch, victim ); special.c: ch->level, ch, victim ); special.c: ch->level, ch, victim ); special.c: ch->level, ch, victim ); special.c: spell_smaug( skill_lookup( "refresh" ), ch->level, ch, victim ); special.c: spell_smaug( skill_lookup( "cure serious" ), ch->level, ch, victim ); special.c: spell_remove_curse( skill_lookup( "remove curse" ), ch->level, ch, victim ); special.c: spell_smaug( skill_lookup( "restore mana" ), ch->level, ch, victim ); special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: if ( ch->level >= min_level ) special.c: (*skill_table[sn]->spell_fun) ( sn, ch->level, ch, victim ); special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: if ( ch->level >= min_level ) special.c: (*skill_table[sn]->spell_fun) ( sn, ch->level, ch, victim ); special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: if ( ch->level >= min_level ) special.c: (*skill_table[sn]->spell_fun) ( sn, ch->level, ch, victim ); special.c: if ( !IS_AWAKE(ch) || ch->fighting ) special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_KILLER) ) special.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_THIEF) ) special.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) special.c: victim->name, crime ); special.c: victim->name, crime ); special.c: /* Added log in case of missing cityguard -- Tri */ special.c: sprintf( buf, "Missing Cityguard - Vnum:[%d]", MOB_VNUM_CITYGUARD ); special.c: char_to_room( create_mobile( cityguard ), ch->in_room ); special.c: char_to_room( create_mobile( cityguard ), ch->in_room ); special.c: for ( corpse = ch->in_room->first_content; corpse; corpse = c_next ) special.c: c_next = corpse->next_content; special.c: if ( corpse->item_type != ITEM_CORPSE_NPC ) special.c: for ( obj = corpse->first_content; obj; obj = obj_next ) special.c: obj_next = obj->next_content; special.c: obj_to_room( obj, ch->in_room ); special.c: if ( !IS_AWAKE(ch) || ch->fighting ) special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_KILLER) ) special.c: if ( !IS_NPC(victim) && xIS_SET(victim->act, PLR_THIEF) ) special.c: if ( victim->fighting special.c: && victim->alignment < max_evil ) special.c: max_evil = victim->alignment; special.c: if ( victim && IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) special.c: victim->name, crime ); special.c: victim->name, crime ); special.c: for ( trash = ch->in_room->first_content; trash; trash = trash_next ) special.c: trash_next = trash->next_content; special.c: if ( !IS_SET( trash->wear_flags, ITEM_TAKE ) special.c: if ( trash->item_type == ITEM_DRINK_CON special.c: || trash->item_type == ITEM_TRASH special.c: || trash->cost < 10 special.c: || (trash->pIndexData->vnum == OBJ_VNUM_SHOPPING_BAG special.c: && !trash->first_content) ) special.c: if ( ch->fighting ) special.c: if ( !move || ch->position < POS_SLEEPING ) special.c: move_char( ch, get_exit( ch->in_room, path[pos] - '0' ), 0 ); special.c: ch->position = POS_STANDING; special.c: ch->position = POS_SLEEPING; special.c: if ( ch->position != POS_FIGHTING special.c: && ch->position != POS_EVASIVE special.c: && ch->position != POS_DEFENSIVE special.c: && ch->position != POS_AGGRESSIVE special.c: && ch->position != POS_BERSERK special.c: || number_percent( ) > 2 * ch->level ) special.c: spell_poison( gsn_poison, ch->level, ch, victim ); special.c: if ( ch->position != POS_STANDING ) special.c: for ( victim = ch->in_room->first_person; victim; victim = v_next ) special.c: v_next = victim->next_in_room; special.c: || victim->level >= LEVEL_IMMORTAL special.c: if ( IS_AWAKE(victim) && number_range( 0, ch->level ) == 0 ) special.c: maxgold = ch->level * ch->level * 1000; special.c: gold = victim->gold special.c: * number_range( 1, URANGE(2, ch->level/4, 10) ) / 100; special.c: ch->gold += 9 * gold / 10; special.c: victim->gold -= gold; special.c: if ( ch->gold > maxgold ) special.c: boost_economy( ch->in_room->area, ch->gold - maxgold/2 ); special.c: ch->gold = maxgold/2; starmap.c:"- O -", starmap.c: precip = (ch->in_room->area->weather->precip + 3*weath_unit - 1)/ starmap.c: sunpos = (MAP_WIDTH * (24 - time_info.hour) / 24); starmap.c: if ((moonphase = ((((MAP_WIDTH + moonpos - sunpos ) % MAP_WIDTH ) + starmap.c: > 4) moonphase -= 8; starmap.c: && (moonpos >= MAP_WIDTH/4 - 2) && (moonpos <= 3*MAP_WIDTH/4 + 2) /* in sky? */ starmap.c: && ( i >= moonpos - 2 ) && (i <= moonpos + 2) /* is this pixel near moon? */ starmap.c: && (moon_map[linenum-3][i+2-moonpos] == '@')) starmap.c: if ((moonphase < 0 && i - 2 - moonpos >= moonphase) || starmap.c: (moonphase > 0 && i + 2 - moonpos <= moonphase)) starmap.c: (moonpos >= MAP_WIDTH/4 - 2) && (moonpos <= 3*MAP_WIDTH/4 + 2) /* in sky? */ starmap.c: && ( i >= moonpos - 2 ) && (i <= moonpos + 2) /* is this pixel near moon? */ starmap.c: && (moon_map[linenum-3][i+2-moonpos] == '@')) starmap.c: if ((moonphase < 0 && i - 2 - moonpos >= moonphase) || starmap.c: (moonphase > 0 && i + 2 - moonpos <= moonphase)) starmap.c: if ( i >= sunpos - 2 && i <= sunpos + 2 ) starmap.c: sprintf(buf2,"&Y%c",sun_map[linenum-3][i+2-sunpos]); starmap.c: switch (star_map[linenum][(MAP_WIDTH + i - starpos)%MAP_WIDTH]) stat_obj.c: * -----------------------------------------------------------| (0...0) * stat_obj.c: * -----------------------------------------------------------| {o o} * stat_obj.c: * ------------------------------------------------------------------------ * stat_obj.c: if (!ch->desc) { stat_obj.c: level = -1; stat_obj.c: for ( obj = first_object; obj; obj = obj->next ){ stat_obj.c: if(obj->level==level){ stat_obj.c: stats[obj->item_type].count++; stat_obj.c: stats[obj->item_type].weight+=obj->weight; stat_obj.c: stats[obj->item_type].cost+=obj->cost; stat_obj.c: stats[obj->item_type].value[0]+=obj->value[0]; stat_obj.c: stats[obj->item_type].value[1]+=obj->value[1]; stat_obj.c: stats[obj->item_type].value[2]+=obj->value[2]; stat_obj.c: stats[obj->item_type].value[3]+=obj->value[3]; stat_obj.c: stats[obj->item_type].value[4]+=obj->value[4]; stat_obj.c: stats[obj->item_type].value[5]+=obj->value[5]; stat_obj.c: if(xIS_SET(obj->pIndexData->extra_flags, i)) stat_obj.c: stats[obj->item_type].extra_flags[i]++; stat_obj.c: (double) (100.0 * (dcount/TODUB(count))), /* %-age of objs at this level */ suicide.c: * exit, and save. (by typin control-x y, and enter) suicide.c: if (strcmp (crypt (arg, ch->pcdata->pwd), ch->pcdata->pwd)) suicide.c: do_destroy (ch, ch->name); suicide.c: sprintf (buf, "%s has committed suicide.", ch->name); tables.c: * -----------------------------------------------------------| (0...0) * tables.c: * -----------------------------------------------------------| {o o} * tables.c: * ------------------------------------------------------------------------ * tables.c: * ------------------------------------------------------------------------ * tables.c: int cl = -1; tables.c: KEY( "AttrPrime", class->attr_prime, fread_number( fp ) ); tables.c: KEY( "Alignment", class->alignment, fread_number( fp ) ); tables.c: class->who_name ? class->who_name : "name not found", cl ); tables.c: if ( class->who_name ) tables.c: STRFREE( class->who_name ); tables.c: KEY( "ExpBase", class->exp_base, fread_number( fp ) ); tables.c: KEY( "Guild", class->guild, fread_number( fp ) ); tables.c: KEY( "HpMax", class->hp_max, fread_number( fp ) ); tables.c: KEY( "HpMin", class->hp_min, fread_number( fp ) ); tables.c: KEY( "Mana", class->fMana, fread_number( fp ) ); tables.c: KEY( "Name", class->who_name, fread_string( fp ) ); tables.c: sprintf( buf, "load_class_file: Skill %s -- class bad/not found (%d)", word, cl ); tables.c: skill_table[sn]->skill_level[cl] = lev; tables.c: skill_table[sn]->skill_adept[cl] = adp; tables.c: KEY( "Skilladept", class->skill_adept, fread_number( fp ) ); tables.c: sprintf( buf, "load_class_file: Title -- class bad/not found (%d)", cl ); tables.c: KEY( "Thac0", class->thac0_00, fread_number( fp ) ); tables.c: KEY( "Thac32", class->thac0_32, fread_number( fp ) ); tables.c: KEY( "Weapon", class->weapon, fread_number( fp ) ); tables.c: sprintf( filename, "%s%s.class", CLASSDIR, class->who_name ); tables.c: fprintf( fpout, "Name %s~\n", class->who_name ); tables.c: fprintf( fpout, "Attrprime %d\n", class->attr_prime ); tables.c: fprintf( fpout, "Alignment %d\n", class->alignment ); tables.c: fprintf( fpout, "Weapon %d\n", class->weapon ); tables.c: fprintf( fpout, "Guild %d\n", class->guild ); tables.c: fprintf( fpout, "Skilladept %d\n", class->skill_adept ); tables.c: fprintf( fpout, "Thac0 %d\n", class->thac0_00 ); tables.c: fprintf( fpout, "Thac32 %d\n", class->thac0_32 ); tables.c: fprintf( fpout, "Hpmin %d\n", class->hp_min ); tables.c: fprintf( fpout, "Hpmax %d\n", class->hp_max ); tables.c: fprintf( fpout, "Mana %d\n", class->fMana ); tables.c: fprintf( fpout, "Expbase %d\n", class->exp_base ); tables.c: if ( !skill_table[x]->name || skill_table[x]->name[0] == '\0' ) tables.c: if ( (y=skill_table[x]->skill_level[cl]) < LEVEL_IMMORTAL ) tables.c: skill_table[x]->name, y, skill_table[x]->skill_adept[cl] ); tables.c: * Pre-init the race_table with blank races tables.c: sprintf( race_table[i]->race_name, "%s", "unused" ); tables.c: if( !race->race_name) tables.c: sprintf( filename, "%s%s.race", RACEDIR, race->race_name ); tables.c: fprintf( fpout, "Name %s~\n", race->race_name ); tables.c: fprintf( fpout, "Classes %d\n", race->class_restriction ); tables.c: fprintf( fpout, "Str_Plus %d\n", race->str_plus ); tables.c: fprintf( fpout, "Dex_Plus %d\n", race->dex_plus ); tables.c: fprintf( fpout, "Wis_Plus %d\n", race->wis_plus ); tables.c: fprintf( fpout, "Int_Plus %d\n", race->int_plus ); tables.c: fprintf( fpout, "Con_Plus %d\n", race->con_plus ); tables.c: fprintf( fpout, "Cha_Plus %d\n", race->cha_plus ); tables.c: fprintf( fpout, "Lck_Plus %d\n", race->lck_plus ); tables.c: fprintf( fpout, "Hit %d\n", race->hit ); tables.c: fprintf( fpout, "Mana %d\n", race->mana ); tables.c: fprintf( fpout, "Affected %s\n", print_bitvector(&race->affected) ); tables.c: fprintf( fpout, "Resist %d\n", race->resist ); tables.c: fprintf( fpout, "Suscept %d\n", race->suscept ); tables.c: fprintf( fpout, "Language %d\n", race->language ); tables.c: fprintf( fpout, "Align %d\n", race->alignment ); tables.c: fprintf( fpout, "Min_Align %d\n", race->minalign ); tables.c: fprintf( fpout, "Max_Align %d\n", race->maxalign ); tables.c: fprintf( fpout, "AC_Plus %d\n", race->ac_plus ); tables.c: fprintf( fpout, "Exp_Mult %d\n", race->exp_multiplier ); tables.c: fprintf( fpout, "Attacks %s\n", print_bitvector(&race->attacks) ); tables.c: fprintf( fpout, "Defenses %s\n", print_bitvector(&race->defenses) ); tables.c: fprintf( fpout, "Height %d\n", race->height ); tables.c: fprintf( fpout, "Weight %d\n", race->weight ); tables.c: fprintf( fpout, "Hunger_Mod %d\n", race->hunger_mod ); tables.c: fprintf( fpout, "Thirst_mod %d\n", race->thirst_mod ); tables.c: fprintf( fpout, "Mana_Regen %d\n", race->mana_regen ); tables.c: fprintf( fpout, "HP_Regen %d\n", race->hp_regen ); tables.c: fprintf( fpout, "Race_Recall %d\n", race->race_recall ); tables.c: fprintf( fpout, "Base_age %d\n", race->base_age ); tables.c: race->where_name[i] ); tables.c: fprintf( fpout, "HairColor %d\n", race->attribs[HAIR_COLOR] ); tables.c: fprintf( fpout, "HairLength %d\n", race->attribs[HAIR_LENGTH] ); tables.c: fprintf( fpout, "EyeColor %d\n", race->attribs[EYE_COLOR] ); tables.c: fprintf( fpout, "SkinTone %d\n", race->attribs[SKIN_TONE] ); tables.c: fprintf( fpout, "Build %d\n", race->attribs[RACE_BUILD] ); tables.c: fprintf( fpout, "RaceHeight %d\n", race->attribs[RACE_HEIGHT] ); tables.c: if ( !skill_table[x]->name || skill_table[x]->name[0] == '\0' ) tables.c: if ( (y=skill_table[x]->race_level[ra]) < LEVEL_IMMORTAL ) tables.c: skill_table[x]->name, y, skill_table[x]->race_adept[ra] ); tables.c: int ra = -1; tables.c: race->where_name[i] = where_name[i]; tables.c: race->attribs[HAIR_COLOR] = -1; tables.c: race->attribs[HAIR_LENGTH] = -1; tables.c: race->attribs[EYE_COLOR] = -1; tables.c: race->attribs[SKIN_TONE] = -1; tables.c: race->attribs[RACE_BUILD] = -1; tables.c: race->attribs[RACE_HEIGHT] = -1; tables.c: KEY( "Align", race->alignment, fread_number( fp ) ); tables.c: KEY( "AC_Plus", race->ac_plus, fread_number( fp ) ); tables.c: KEY( "Affected", race->affected, fread_bitvector( fp ) ); tables.c: KEY( "Attacks", race->attacks, fread_bitvector( fp ) ); tables.c: KEY( "Base_age", race->base_age, fread_number( fp ) ); tables.c: KEY( "Build", race->attribs[RACE_HEIGHT], fread_number( fp ) ); tables.c: KEY( "Con_Plus", race->con_plus, fread_number( fp ) ); tables.c: KEY( "Cha_Plus", race->cha_plus, fread_number( fp ) ); tables.c: KEY( "Classes", race->class_restriction, fread_number( fp ) ); tables.c: KEY( "Dex_Plus", race->dex_plus, fread_number( fp ) ); tables.c: KEY( "Defenses", race->defenses, fread_bitvector( fp ) ); tables.c: KEY( "EyeColor", race->attribs[EYE_COLOR],fread_number( fp ) ); tables.c: race->race_name ? race->race_name : "name not found", ra ); tables.c: if( race->attribs[HAIR_COLOR] == -1 ) tables.c: race->attribs[HAIR_COLOR] = 0; tables.c: SET_BIT( race->attribs[HAIR_COLOR], 1 << i ); tables.c: if( race->attribs[HAIR_LENGTH] == -1 ) tables.c: race->attribs[HAIR_LENGTH] = 0; tables.c: SET_BIT( race->attribs[HAIR_LENGTH], 1 << i ); tables.c: if( race->attribs[EYE_COLOR] == -1 ) tables.c: race->attribs[EYE_COLOR] = 0; tables.c: SET_BIT( race->attribs[EYE_COLOR], 1 << i ); tables.c: if( race->attribs[SKIN_TONE] == -1 ) tables.c: race->attribs[SKIN_TONE] = 0; tables.c: SET_BIT( race->attribs[SKIN_TONE], 1 << i ); tables.c: if( race->attribs[RACE_BUILD] == -1 ) tables.c: race->attribs[RACE_BUILD] = 0; tables.c: SET_BIT( race->attribs[RACE_BUILD], 1 << i ); tables.c: if( race->attribs[RACE_HEIGHT] == -1 ) tables.c: race->attribs[RACE_HEIGHT] = 0; tables.c: SET_BIT( race->attribs[RACE_HEIGHT], 1 << i ); tables.c: if( race->attribs[i] == -1 ) tables.c: SET_BIT( race->attribs, HAIR_COLORS ); tables.c: KEY( "Exp_Mult", race->exp_multiplier, fread_number( fp ) ); tables.c: KEY( "Int_Plus", race->int_plus, fread_number( fp ) ); tables.c: KEY( "HairColor", race->attribs[HAIR_COLOR], fread_number( fp ) ); tables.c: KEY( "HairLength", race->attribs[HAIR_LENGTH],fread_number( fp ) ); tables.c: KEY( "Height", race->height, fread_number( fp ) ); tables.c: KEY( "Hit", race->hit, fread_number( fp ) ); tables.c: KEY( "HP_Regen", race->hp_regen, fread_number( fp ) ); tables.c: KEY( "Hunger_Mod", race->hunger_mod, fread_number( fp ) ); tables.c: KEY( "Language", race->language, fread_number( fp ) ); tables.c: KEY( "Lck_Plus", race->lck_plus, fread_number( fp ) ); tables.c: KEY( "Mana", race->mana, fread_number( fp ) ); tables.c: KEY( "Mana_Regen", race->mana_regen, fread_number( fp ) ); tables.c: KEY( "Min_Align", race->minalign, fread_number( fp ) ); tables.c: KEY( "Max_Align", race->maxalign, fread_number( fp ) ); tables.c: KEY( "RaceHeight", race->attribs[RACE_BUILD], fread_number( fp ) ); tables.c: KEY( "Race_Recall", race->race_recall, fread_number( fp ) ); tables.c: KEY( "Resist", race->resist, fread_number( fp ) ); tables.c: KEY( "Str_Plus", race->str_plus, fread_number( fp ) ); tables.c: KEY( "SkinTone", race->attribs[SKIN_TONE],fread_number( fp ) ); tables.c: KEY( "Suscept", race->suscept, fread_number( fp ) ); tables.c: sprintf( buf, "load_race_file: Skill %s -- race bad/not found (%d)", word, ra ); tables.c: skill_table[sn]->race_level[ra] = lev; tables.c: skill_table[sn]->race_adept[ra] = adp; tables.c: KEY( "Thirst_Mod", race->thirst_mod, fread_number( fp ) ); tables.c: KEY( "Weight", race->weight, fread_number( fp ) ); tables.c: KEY( "Wis_Plus", race->wis_plus, fread_number( fp ) ); tables.c: sprintf( buf, "load_race_file: Title -- race bad/not found (%d)", ra ); tables.c: race->where_name[wear] = fread_string_nohash( fp ); tables.c: sprintf(race->race_name,"%-.16s",race_name); tables.c: return -1; tables.c: if ( skill1->type < skill2->type ) tables.c: return -1; tables.c: if ( skill1->type > skill2->type ) tables.c: return strcmp( skill1->name, skill2->name ); tables.c: qsort( &skill_table[1], top_sn-1, sizeof( SKILLTYPE * ), tables.c: for ( aff = skill->affects; aff; aff = aff->next ) tables.c: if ( aff->location == APPLY_WEAPONSPELL tables.c: || aff->location == APPLY_WEARSPELL tables.c: || aff->location == APPLY_REMOVESPELL tables.c: || aff->location == APPLY_STRIPSN tables.c: || aff->location == APPLY_RECURRINGSPELL ) tables.c: sprintf( tmp, "%d", slot_lookup(atoi(aff->modifier)) ); tables.c: DISPOSE(aff->modifier); tables.c: aff->modifier = str_dup(tmp); tables.c: fprintf( fpout, "Name %s~\n", skill->name ); tables.c: fprintf( fpout, "Type %s\n", skill_tname[skill->type]); tables.c: fprintf( fpout, "Info %d\n", skill->info ); tables.c: fprintf( fpout, "Flags %d\n", skill->flags ); tables.c: if ( skill->target ) tables.c: fprintf( fpout, "Target %d\n", skill->target ); tables.c: if ( skill->minimum_position ) tables.c: fprintf( fpout, "Minpos %d\n", skill->minimum_position+100 ); tables.c: if ( skill->saves ) tables.c: fprintf( fpout, "Saves %d\n", skill->saves ); tables.c: if ( skill->slot ) tables.c: fprintf( fpout, "Slot %d\n", skill->slot ); tables.c: if ( skill->min_mana ) tables.c: fprintf( fpout, "Mana %d\n", skill->min_mana ); tables.c: if ( skill->beats ) tables.c: fprintf( fpout, "Rounds %d\n", skill->beats ); tables.c: if ( skill->range ) tables.c: fprintf( fpout, "Range %d\n", skill->range ); tables.c: if ( skill->guild != -1 ) tables.c: fprintf( fpout, "Guild %d\n", skill->guild ); tables.c: if ( skill->skill_fun ) tables.c: fprintf( fpout, "Code %s\n", skill_name(skill->skill_fun) ); tables.c: if ( skill->spell_fun ) tables.c: fprintf( fpout, "Code %s\n", spell_name(skill->spell_fun) ); tables.c: fprintf( fpout, "Dammsg %s~\n", skill->noun_damage ); tables.c: if ( skill->msg_off && skill->msg_off[0] != '\0' ) tables.c: fprintf( fpout, "Wearoff %s~\n", skill->msg_off ); tables.c: if ( skill->hit_char && skill->hit_char[0] != '\0' ) tables.c: fprintf( fpout, "Hitchar %s~\n", skill->hit_char ); tables.c: if ( skill->hit_vict && skill->hit_vict[0] != '\0' ) tables.c: fprintf( fpout, "Hitvict %s~\n", skill->hit_vict ); tables.c: if ( skill->hit_room && skill->hit_room[0] != '\0' ) tables.c: fprintf( fpout, "Hitroom %s~\n", skill->hit_room ); tables.c: if ( skill->hit_dest && skill->hit_dest[0] != '\0' ) tables.c: fprintf( fpout, "Hitdest %s~\n", skill->hit_dest ); tables.c: if ( skill->miss_char && skill->miss_char[0] != '\0' ) tables.c: fprintf( fpout, "Misschar %s~\n", skill->miss_char ); tables.c: if ( skill->miss_vict && skill->miss_vict[0] != '\0' ) tables.c: fprintf( fpout, "Missvict %s~\n", skill->miss_vict ); tables.c: if ( skill->miss_room && skill->miss_room[0] != '\0' ) tables.c: fprintf( fpout, "Missroom %s~\n", skill->miss_room ); tables.c: if ( skill->die_char && skill->die_char[0] != '\0' ) tables.c: fprintf( fpout, "Diechar %s~\n", skill->die_char ); tables.c: if ( skill->die_vict && skill->die_vict[0] != '\0' ) tables.c: fprintf( fpout, "Dievict %s~\n", skill->die_vict ); tables.c: if ( skill->die_room && skill->die_room[0] != '\0' ) tables.c: fprintf( fpout, "Dieroom %s~\n", skill->die_room ); tables.c: if ( skill->imm_char && skill->imm_char[0] != '\0' ) tables.c: fprintf( fpout, "Immchar %s~\n", skill->imm_char ); tables.c: if ( skill->imm_vict && skill->imm_vict[0] != '\0' ) tables.c: fprintf( fpout, "Immvict %s~\n", skill->imm_vict ); tables.c: if ( skill->imm_room && skill->imm_room[0] != '\0' ) tables.c: fprintf( fpout, "Immroom %s~\n", skill->imm_room ); tables.c: if ( skill->dice && skill->dice[0] != '\0' ) tables.c: fprintf( fpout, "Dice %s~\n", skill->dice ); tables.c: if ( skill->value ) tables.c: fprintf( fpout, "Value %d\n", skill->value ); tables.c: if ( skill->difficulty ) tables.c: fprintf( fpout, "Difficulty %d\n", skill->difficulty ); tables.c: if ( skill->participants ) tables.c: fprintf( fpout, "Participants %d\n", skill->participants ); tables.c: if ( skill->components && skill->components[0] != '\0' ) tables.c: fprintf( fpout, "Components %s~\n", skill->components ); tables.c: if ( skill->teachers && skill->teachers[0] != '\0' ) tables.c: fprintf( fpout, "Teachers %s~\n", skill->teachers ); tables.c: for ( aff = skill->affects; aff; aff = aff->next ) tables.c: fprintf( fpout, "Affect '%s' %d ", aff->duration, aff->location ); tables.c: modifier = atoi(aff->modifier); tables.c: if ((aff->location == APPLY_WEAPONSPELL tables.c: || aff->location == APPLY_WEARSPELL tables.c: || aff->location == APPLY_REMOVESPELL tables.c: || aff->location == APPLY_STRIPSN tables.c: || aff->location == APPLY_RECURRINGSPELL) tables.c: fprintf( fpout, "'%d' ", skill_table[modifier]->slot ); tables.c: fprintf( fpout, "'%s' ", aff->modifier ); tables.c: fprintf( fpout, "%d\n", aff->bitvector ); tables.c: if ( skill->type != SKILL_HERB ) tables.c: if ( skill->skill_level[y] < min ) tables.c: min = skill->skill_level[y]; tables.c: if ( skill->race_level[y] < min ) tables.c: min = skill->race_level[y]; tables.c: if ( !skill_table[x]->name || skill_table[x]->name[0] == '\0' ) tables.c: if ( !herb_table[x]->name || herb_table[x]->name[0] == '\0' ) tables.c: for ( social = social_index[x]; social; social = social->next ) tables.c: if ( !social->name || social->name[0] == '\0' ) tables.c: fprintf( fpout, "Name %s~\n", social->name ); tables.c: if ( social->char_no_arg ) tables.c: fprintf( fpout, "CharNoArg %s~\n", social->char_no_arg ); tables.c: if ( social->others_no_arg ) tables.c: fprintf( fpout, "OthersNoArg %s~\n", social->others_no_arg ); tables.c: if ( social->char_found ) tables.c: fprintf( fpout, "CharFound %s~\n", social->char_found ); tables.c: if ( social->others_found ) tables.c: fprintf( fpout, "OthersFound %s~\n", social->others_found ); tables.c: if ( social->vict_found ) tables.c: fprintf( fpout, "VictFound %s~\n", social->vict_found ); tables.c: if ( social->char_auto ) tables.c: fprintf( fpout, "CharAuto %s~\n", social->char_auto ); tables.c: if ( social->others_auto ) tables.c: fprintf( fpout, "OthersAuto %s~\n", social->others_auto ); tables.c: * Added flags Aug 25, 1997 --Shaddai tables.c: for ( command = command_hash[x]; command; command = command->next ) tables.c: if ( !command->name || command->name[0] == '\0' ) tables.c: fprintf( fpout, "Name %s~\n", command->name ); tables.c: fprintf( fpout, "Code %s\n", skill_name(command->do_fun) ); tables.c:/* Oops I think this may be a bad thing so I changed it -- Shaddai */ tables.c: if ( command->position < 100 ) tables.c: fprintf( fpout, "Position %d\n", command->position+100); tables.c: fprintf( fpout, "Position %d\n", command->position); tables.c: fprintf( fpout, "Level %d\n", command->level ); tables.c: fprintf( fpout, "Log %d\n", command->log ); tables.c: if ( command->flags ) tables.c: fprintf( fpout, "Flags %d\n", command->flags); tables.c: skill->slot = 0; tables.c: skill->min_mana = 0; tables.c: skill->skill_level[x] = LEVEL_IMMORTAL; tables.c: skill->skill_adept[x] = 95; tables.c: skill->race_level[x] = LEVEL_IMMORTAL; tables.c: skill->race_adept[x] = 95; tables.c: skill->guild = -1; tables.c: skill->target = 0; tables.c: skill->skill_fun = NULL; tables.c: skill->spell_fun = NULL; tables.c: aff->duration = str_dup( fread_word( fp ) ); tables.c: aff->location = fread_number( fp ); tables.c: aff->modifier = str_dup( fread_word( fp ) ); tables.c: aff->bitvector = fread_number( fp ); tables.c: if ( IS_SET(aff->bitvector, 1 << x) ) tables.c: aff->bitvector = x; tables.c: aff->bitvector = -1; tables.c: aff->next = skill->affects; tables.c: skill->affects = aff; tables.c: skill->skill_level[class] = fread_number( fp ); tables.c: skill->skill_adept[class] = fread_number( fp ); tables.c: skill->spell_fun = spellfun; tables.c: skill->skill_fun = NULL; tables.c: skill->skill_fun = dofun; tables.c: skill->spell_fun = NULL; tables.c: skill->spell_fun = spell_null; tables.c: KEY( "Code", skill->spell_fun, spell_function(fread_word(fp)) ); tables.c: KEY( "Components", skill->components, fread_string_nohash( fp ) ); tables.c: KEY( "Dammsg", skill->noun_damage, fread_string_nohash( fp ) ); tables.c: KEY( "Dice", skill->dice, fread_string_nohash( fp ) ); tables.c: KEY( "Diechar", skill->die_char, fread_string_nohash( fp ) ); tables.c: KEY( "Dieroom", skill->die_room, fread_string_nohash( fp ) ); tables.c: KEY( "Dievict", skill->die_vict, fread_string_nohash( fp ) ); tables.c: KEY( "Difficulty", skill->difficulty, fread_number( fp ) ); tables.c: if ( skill->saves != 0 && SPELL_SAVE(skill) == SE_NONE ) tables.c: skill->name, skill->saves ); tables.c: skill->flags = fread_number(fp); tables.c: * convert to new style -Thoric tables.c: skill->info = skill->flags & (BV11-1); tables.c: if ( IS_SET(skill->flags, OLD_SF_SAVE_NEGATES) ) tables.c: if ( IS_SET(skill->flags, OLD_SF_SAVE_HALF_DAMAGE) ) tables.c: REMOVE_BIT(skill->flags, OLD_SF_SAVE_HALF_DAMAGE); tables.c: REMOVE_BIT(skill->flags, OLD_SF_SAVE_NEGATES); tables.c: if ( IS_SET(skill->flags, OLD_SF_SAVE_HALF_DAMAGE) ) tables.c: REMOVE_BIT(skill->flags, OLD_SF_SAVE_HALF_DAMAGE); tables.c: skill->flags >>= 11; tables.c: KEY( "Guild", skill->guild, fread_number( fp ) ); tables.c: KEY( "Hitchar", skill->hit_char, fread_string_nohash( fp ) ); tables.c: KEY( "Hitdest", skill->hit_dest, fread_string_nohash( fp ) ); tables.c: KEY( "Hitroom", skill->hit_room, fread_string_nohash( fp ) ); tables.c: KEY( "Hitvict", skill->hit_vict, fread_string_nohash( fp ) ); tables.c: KEY( "Immchar", skill->imm_char, fread_string_nohash( fp ) ); tables.c: KEY( "Immroom", skill->imm_room, fread_string_nohash( fp ) ); tables.c: KEY( "Immvict", skill->imm_vict, fread_string_nohash( fp ) ); tables.c: skill->info = fread_number(fp); tables.c: KEY( "Mana", skill->min_mana, fread_number( fp ) ); tables.c: /*KEY( "Minpos", skill->minimum_position, fread_number( fp ) ); */ tables.c: skill->minimum_position = fread_number(fp); tables.c: if ( skill->minimum_position < 100 ) tables.c: switch( skill->minimum_position ) tables.c: case 5: skill->minimum_position=6; break; tables.c: case 6: skill->minimum_position=8; break; tables.c: case 7: skill->minimum_position=9; break; tables.c: case 8: skill->minimum_position=12; break; tables.c: case 9: skill->minimum_position=13; break; tables.c: case 10: skill->minimum_position=14; break; tables.c: case 11: skill->minimum_position=15; break; tables.c: skill->minimum_position-=100; tables.c: KEY( "Misschar", skill->miss_char, fread_string_nohash( fp ) ); tables.c: KEY( "Missroom", skill->miss_room, fread_string_nohash( fp ) ); tables.c: KEY( "Missvict", skill->miss_vict, fread_string_nohash( fp ) ); tables.c: KEY( "Name", skill->name, fread_string_nohash( fp ) ); tables.c: KEY( "Participants",skill->participants, fread_number( fp ) ); tables.c: KEY( "Range", skill->range, fread_number( fp ) ); tables.c: KEY( "Rounds", skill->beats, fread_number( fp ) ); tables.c: skill->race_level[race] = fread_number( fp ); tables.c: skill->race_adept[race] = fread_number( fp ); tables.c: KEY( "Slot", skill->slot, fread_number( fp ) ); tables.c: KEY( "Saves", skill->saves, fread_number( fp ) ); tables.c: KEY( "Target", skill->target, fread_number( fp ) ); tables.c: KEY( "Teachers", skill->teachers, fread_string_nohash( fp ) ); tables.c: KEY( "Type", skill->type, get_skill(fread_word( fp )) ); tables.c: KEY( "Value", skill->value, fread_number( fp ) ); tables.c: KEY( "Wearoff", skill->msg_off, fread_string_nohash( fp ) ); tables.c: if ( herb_table[top_herb-1]->slot == 0 ) tables.c: herb_table[top_herb-1]->slot = top_herb-1; tables.c: KEY( "CharNoArg", social->char_no_arg, fread_string_nohash(fp) ); tables.c: KEY( "CharFound", social->char_found, fread_string_nohash(fp) ); tables.c: KEY( "CharAuto", social->char_auto, fread_string_nohash(fp) ); tables.c: if ( !social->name ) tables.c: if ( !social->char_no_arg ) tables.c: KEY( "Name", social->name, fread_string_nohash(fp) ); tables.c: KEY( "OthersNoArg", social->others_no_arg, fread_string_nohash(fp) ); tables.c: KEY( "OthersFound", social->others_found, fread_string_nohash(fp) ); tables.c: KEY( "OthersAuto", social->others_auto, fread_string_nohash(fp) ); tables.c: KEY( "VictFound", social->vict_found, fread_string_nohash(fp) ); tables.c: * Added the flags Aug 25, 1997 --Shaddai tables.c: command->lag_count = 0; /* can't have caused lag yet... FB */ tables.c: command->flags = 0; /* Default to no flags set */ tables.c: KEY( "Code", command->do_fun, skill_function(fread_word(fp)) ); tables.c: if ( !command->name ) tables.c: if ( !command->do_fun ) tables.c: KEY ("Flags", command->flags, fread_number (fp)); tables.c: KEY( "Level", command->level, fread_number(fp) ); tables.c: KEY( "Log", command->log, fread_number(fp) ); tables.c: KEY( "Name", command->name, fread_string_nohash(fp) ); tables.c: /* KEY( "Position", command->position, fread_number(fp) ); */ tables.c: command->position = fread_number(fp); tables.c: if( command->position<100 ) tables.c: switch(command->position) tables.c: case 5: command->position=6; break; tables.c: case 6: command->position=8; break; tables.c: case 7: command->position=9; break; tables.c: case 8: command->position=12; break; tables.c: case 9: command->position=13; break; tables.c: case 10: command->position=14; break; tables.c: case 11: command->position=15; break; tables.c: command->position-=100; tables.c: * Tongues / Languages loading/saving functions -Altrag tables.c: cnv->old = str_dup(fread_word(fp)); tables.c: cnv->olen = strlen(cnv->old); tables.c: cnv->new = str_dup(fread_word(fp)); tables.c: cnv->nlen = strlen(cnv->new); tables.c: lng->name = STRALLOC(word); tables.c: fread_cnv(fp, &lng->first_precnv, &lng->last_precnv); tables.c: lng->alphabet = fread_string(fp); tables.c: fread_cnv(fp, &lng->first_cnv, &lng->last_cnv); tables.c: for (lng = first_lang; lng; lng = lng->next) tables.c: fprintf(fp, "#%s\n", lng->name); tables.c: for (cnv = lng->first_precnv; cnv; cnv = cnv->next) tables.c: fprintf(fp, "'%s' '%s'\n", cnv->old, cnv->new); tables.c: fprintf(fp, "~\n%s~\n", lng->alphabet); tables.c: for (cnv = lng->first_cnv; cnv; cnv = cnv->next) tables.c: fprintf(fp, "'%s' '%s'\n", cnv->old, cnv->new); tag.c: * --------------- * tag.c: * ResortMUD (The Last Resort - Aproaching * tag.c:/* We will check arena since the game will use the area - Garinan */ tag.c:/* Set the prize and type values - Garinan */ tag.c:/* Lets not give them too much - Garinan */ tag.c:/* Just In Case - Garinan */ tag.c:/* Let's get this party started! - Garinan */ tag.c:/* Just In Case - Garinan */ tag.c: for ( d = first_descriptor; d; d = d->next ) tag.c: if ( !d->character ) tag.c: victim = d->character; tag.c: if ( !victim->pcdata->team > 0 ) tag.c: victim->pcdata->team = 0; tag.c: ch->name, prize, tag.c: sprintf( buf, "%s has closed the joining stage, let the game begin!", ch->name ); tag.c: sprintf( buf, "%s has ended the game of Tag!", ch->name ); tag.c:/* Shut this sucker down! - Garinan */ tag.c: for ( d = first_descriptor; d; d = d->next ) tag.c: if ( !d->character ) tag.c: victim = d->character; tag.c: if (!victim->pcdata->team > 0) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: if (victim->pcdata->team == team_red) tag.c: sysdata.tagred -= 1; tag.c: if (victim->pcdata->team == team_blue) tag.c: sysdata.tagblue -= 1; tag.c: victim->pcdata->team = 0; tag.c: char_to_room( victim, get_room_index(victim->retran)); tag.c: if (victim->pcdata->team > 0) tag.c: victim->pcdata->team = 0; tag.c:/* Join the Game - Garinan */ tag.c: if (ch->pcdata->team != team_red tag.c: && ch->pcdata->team != team_blue tag.c: && ch->pcdata->team != 0) tag.c: sprintf( buf, "Tag!: %s has an invalid tag status!", ch->name ); tag.c: if (ch->pcdata->team > 0) tag.c: if (ch->pcdata->team != 0) tag.c: if (ch->fighting) tag.c: for ( arenaarea = first_area; arenaarea; arenaarea = arenaarea->next ) tag.c: if ( !str_cmp( arenaarea->filename, "arena.are" ) ) tag.c: lo_vnum=arenaarea->low_r_vnum; tag.c: hi_vnum=arenaarea->hi_r_vnum; tag.c: bug("Cannot find a room in the arena for %s!", ch->name); tag.c: ch->position = POS_STANDING; tag.c: ch->retran = ch->in_room->vnum; tag.c: sprintf(buf, "%s has joined the game of Tag!", ch->name); tag.c: ch->pcdata->team = team_blue; tag.c: sprintf(buf, "%s has joined Team Blue!", ch->name); tag.c: ch->pcdata->team = team_red; tag.c: sprintf(buf, "%s has joined Team Red!", ch->name); tag.c: if (ch->pcdata->team != team_red && ch->pcdata->team != team_blue) tag.c: bug("%s has joined the arena match, but has no team!", ch->name); tag.c: sprintf( buf, "&W%-12s %-12s\n\r", "Player", "Status" ); tag.c: send_to_char( "------------------------\n\r", ch ); tag.c: for( d = first_descriptor; d; d = d->next ) tag.c: if ( !d->character ) tag.c: victim = d->character; tag.c: if ( victim->pcdata->team != team_blue ) tag.c: sprintf( buf, "&B%-12s %-12s\n\r", "TEAM:", "BLUE" ); tag.c: sprintf( buf, "&B%-12s %-12s\n\r", tag.c: victim->name, tag.c: xIS_SET(victim->act, PLR_TAGGED) ? "&CFrozen" : "Active" ); tag.c: for( d = first_descriptor; d; d = d->next ) tag.c: if ( !d->character ) tag.c: victim = d->character; tag.c: if ( victim->pcdata->team != team_red ) tag.c: sprintf( buf, "&R%-12s %-12s\n\r", "TEAM:", "RED" ); tag.c: sprintf( buf, "&R%-12s %-12s\n\r", tag.c: victim->name, tag.c: xIS_SET(victim->act, PLR_TAGGED) ? "&YFrozen" : "Active" ); tag.c: if (ch->pcdata->team != team_blue && ch->pcdata->team != team_red) tag.c: for ( d = first_descriptor; d; d = d->next ) tag.c: if ( !d->character ) tag.c: victim = d->character; tag.c: if (!victim->pcdata->team > 0) tag.c: if ( victim != ch && victim->name != ch->name ) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: if (victim->pcdata->team == team_red) tag.c: sysdata.frozenred -= 1; tag.c: else if (victim->pcdata->team == team_blue) tag.c: sysdata.frozenblue -= 1; tag.c: if (victim->pcdata->team == team_red) tag.c: sysdata.tagred -= 1; tag.c: else if (victim->pcdata->team == team_blue) tag.c: sysdata.tagblue -= 1; tag.c: victim->pcdata->team = 0; tag.c: char_to_room( victim, get_room_index(victim->retran)); tag.c: if (victim->pcdata->team > 0) tag.c: victim->pcdata->team = 0; tag.c: sprintf( buf, "%s has quit the game of Tag!", ch->name ); tag.c: sprintf( buf, "%s has quit, there are no longer enough players to continue!", ch->name ); tag.c: for( d = first_descriptor ; d ; d = d->next ) tag.c: if( !d->character ) tag.c: victim = d->character; tag.c: if( !victim->pcdata->team > 0 ) tag.c: if( victim->pcdata->team == 0 tag.c: && (victim->pcdata->team != team_blue tag.c: || victim->pcdata->team != team_red)) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: char_to_room( victim, get_room_index(victim->retran) ); tag.c: victim->pcdata->team = 0; tag.c:/* Player Tagging another player - Garinan */ tag.c: if (ch->pcdata->team != team_blue && ch->pcdata->team != team_red) tag.c: if ( ch->pcdata->team != team_red && ch->pcdata->team != team_blue ) tag.c: if ( ch == victim || ch->name == victim->name ) tag.c: if ( ch->pcdata->team == victim->pcdata->team ) tag.c: if (xIS_SET(ch->act, PLR_TAGGED)) tag.c: if (!xIS_SET(victim->act, PLR_TAGGED)) tag.c: victim->name, victim->sex == SEX_MALE ? "him" : tag.c: victim->sex == SEX_FEMALE ? "her" : "it" ); tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: victim->name, victim->sex == SEX_MALE ? "him" : tag.c: victim->sex == SEX_FEMALE ? "her" : "it" ); tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: if ( victim->pcdata->team == team_red ) tag.c: sysdata.frozenred -= 1; tag.c: if ( victim->pcdata->team == team_blue ) tag.c: sysdata.frozenblue -= 1; tag.c: sprintf( buf, "%s has tagged you, releasing you back into the game.\n\r", ch->name); tag.c: sprintf( buf, "%sI have been released by %s!", victim->pcdata->team == team_blue ? "&B" : "&R", tag.c: ch->name ); tag.c: if (victim->pcdata->team !=0 tag.c: && (victim->pcdata->team == (ch->pcdata->team - 1) tag.c: || victim->pcdata->team == (ch->pcdata->team + 1))) tag.c: if (xIS_SET(ch->act, PLR_TAGGED)) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: victim->name, victim->sex == SEX_MALE ? "him" : tag.c: victim->sex == SEX_FEMALE ? "her" : "it" ); tag.c: sprintf( buf, "%sI have been frozen by %s%s!", victim->pcdata->team == team_blue ? "&B" : "&R", tag.c: ch->pcdata->team == team_blue ? "&B" : "&R", ch->name ); tag.c: xSET_BIT(victim->act, PLR_TAGGED); tag.c: sprintf( buf, "%s has tagged you, freezing you on the spot!\n\r", ch->name ); tag.c: if (victim->pcdata->team == team_red) tag.c: if (victim->pcdata->team == team_blue) tag.c: bug( "Tag!: Tag victim %s has no team! Tagged by %s", victim->name, ch->name ); tag.c: for( d = first_descriptor ; d ; d = d->next ) tag.c: if( !d->character ) tag.c: victim = d->character; tag.c: if( !victim->pcdata->team > 0 ) tag.c: if( victim->pcdata->team == 0 tag.c: && (victim->pcdata->team != team_blue tag.c: || victim->pcdata->team != team_red)) tag.c: if(victim->pcdata->team == team_blue) tag.c: { victim->gold += prize; } tag.c: { victim->pcdata->quest_curr += prize; tag.c: victim->pcdata->quest_accum += prize; } tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: char_to_room( victim, get_room_index(victim->retran) ); tag.c: victim->pcdata->team = 0; tag.c: for( d = first_descriptor ; d ; d = d->next ) tag.c: if( !d->character ) tag.c: victim = d->character; tag.c: if( !victim->pcdata->team > 0 ) tag.c: if( victim->pcdata->team == 0 tag.c: && (victim->pcdata->team != team_blue tag.c: || victim->pcdata->team != team_red)) tag.c: if(victim->pcdata->team == team_red) tag.c: { victim->gold += prize; } tag.c: { victim->pcdata->quest_curr += prize; tag.c: victim->pcdata->quest_accum += prize; } tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: char_to_room( victim, get_room_index(victim->retran) ); tag.c: victim->pcdata->team = 0; tag.c: for( d = first_descriptor ; d ; d = d->next ) tag.c: if( !d->character ) tag.c: victim = d->character; tag.c: if( !victim->pcdata->team > 0 ) tag.c: if( victim->pcdata->team == 0 tag.c: && (victim->pcdata->team != team_blue tag.c: || victim->pcdata->team != team_red)) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: char_to_room( victim, get_room_index(victim->retran) ); tag.c: victim->pcdata->team = 0; tag.c: for( d = first_descriptor ; d ; d = d->next ) tag.c: if( !d->character ) tag.c: victim = d->character; tag.c: if( !victim->pcdata->team > 0 ) tag.c: if( victim->pcdata->team == 0 tag.c: && (victim->pcdata->team != team_blue tag.c: || victim->pcdata->team != team_red)) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: char_to_room( victim, get_room_index(victim->retran) ); tag.c: victim->pcdata->team = 0; tag.c: for( d = first_descriptor ; d ; d = d->next ) tag.c: if( !d->character ) tag.c: victim = d->character; tag.c: if( !victim->pcdata->team > 0 ) tag.c: if( victim->pcdata->team == 0 tag.c: && (victim->pcdata->team != team_blue tag.c: || victim->pcdata->team != team_red)) tag.c: if (xIS_SET(victim->act, PLR_TAGGED)) tag.c: xREMOVE_BIT(victim->act, PLR_TAGGED); tag.c: victim->pcdata->team = 0; track.c: * -----------------------------------------------------------| (0...0) * track.c: * -----------------------------------------------------------| {o o} * track.c: * ------------------------------------------------------------------------ * track.c:#define BFS_ERROR -1 track.c:#define BFS_ALREADY_THERE -2 track.c:#define BFS_NO_PATH -3 track.c:#define MARK(room) (SET_BIT( (room)->room_flags, BFS_MARK) ) track.c:#define UNMARK(room) (REMOVE_BIT( (room)->room_flags, BFS_MARK) ) track.c:#define IS_MARKED(room) (IS_SET( (room)->room_flags, BFS_MARK) ) track.c: if ( pexit->to_room track.c: && !IS_SET(pexit->exit_info, EX_CLOSED) track.c: && !IS_MARKED(pexit->to_room) ) track.c: curr->room = room; track.c: curr->dir = dir; track.c: curr->next = NULL; track.c: queue_tail->next = curr; track.c: if ( !(queue_head = queue_head->next) ) track.c: curr->room = room; track.c: curr->next = room_queue; track.c: UNMARK(curr->room); track.c: curr_next = curr->next; track.c: if ( src->area != target->area ) track.c: for ( pexit = src->first_exit; pexit; pexit = pexit->next ) track.c: curr_dir = pexit->vdir; track.c: MARK(pexit->to_room); track.c: room_enqueue(pexit->to_room); track.c: bfs_enqueue(pexit->to_room, curr_dir); track.c: if (queue_head->room == target) track.c: curr_dir = queue_head->dir; track.c: for (pexit = queue_head->room->first_exit; pexit; pexit = pexit->next ) track.c: curr_dir = pexit->vdir; track.c: MARK(pexit->to_room); track.c: room_enqueue(pexit->to_room); track.c: bfs_enqueue(pexit->to_room,queue_head->dir); track.c: if ( !IS_NPC(ch) && ch->pcdata->learned[gsn_track] <= 0 ) track.c: WAIT_STATE( ch, skill_table[gsn_track]->beats ); track.c: maxdist = 100 + ch->level * 30; track.c: dir = find_first_step(ch->in_room, vict->in_room, maxdist); track.c: if ( victim->in_room == NULL ) track.c: bug( "Found_prey: null victim->in_room", 0 ); track.c: sprintf( victname, IS_NPC( victim ) ? victim->short_descr : victim->name ); track.c: if ( IS_SET( ch->in_room->room_flags, ROOM_SAFE ) ) track.c: case 2: sprintf( buf, "%s is a yellow-bellied wimp!", victname ); track.c: if (!ch || !ch->hunting) track.c: for ( found = FALSE, tmp = first_char; tmp && !found; tmp = tmp->next ) track.c: if ( ch->hunting->who == tmp ) track.c: if ( ch->in_room == ch->hunting->who->in_room ) track.c: if ( ch->fighting ) track.c: found_prey( ch, ch->hunting->who ); track.c: ret = find_first_step(ch->in_room, ch->hunting->who->in_room, 500 + ch->level * 25); track.c: if ( (pexit=get_exit(ch->in_room, ret)) == NULL ) track.c: if ( !ch->hunting ) track.c: if ( !ch->in_room ) track.c: bug( "Hunt_victim: no ch->in_room! Mob #%d, name: %s. Placing mob in limbo.", track.c: ch->pIndexData->vnum, ch->name ); track.c: if ( ch->in_room == ch->hunting->who->in_room ) track.c: found_prey(ch, ch->hunting->who); track.c: * Not the char struct. --Shaddai track.c: if ( (vch=scan_for_victim(ch, pexit, ch->hunting->name)) != NULL ) track.c: if ( !mob_fire(ch, ch->hunting->who->name) ) update.c: * -----------------------------------------------------------| (0...0) * update.c: * -----------------------------------------------------------| {o o} * update.c: * ------------------------------------------------------------------------ * update.c: * ------------------------------------------------------------------------ * update.c:#include "imc-mercbase.h" update.c:void quest_update args( ( void ) ); /* Vassago - quest.c */ update.c:/* weather functions - FB */ update.c: if( ch->level2 == -1 ) update.c: title_table [ch->class] [ch->level] [ch->sex == SEX_FEMALE ? 1 : 0] ); update.c: if (!IS_SET( ch->pcdata->flags, PCFLAG_ANONYMOUS)) update.c: class_table[ch->class]->hp_min, update.c: class_table[ch->class]->hp_max ); update.c: add_mana = class_table[ch->class]->fMana ? number_range(2, (2*(get_curr_int(ch)+get_curr_wis(ch)))/8) : 0; update.c: if( ch->level2 != -1 ) update.c: add_hp += race_table[ch->race]->hit; update.c: add_mana += race_table[ch->race]->mana; update.c: ch->max_hit += add_hp; update.c: ch->max_mana += add_mana; update.c: ch->max_move += add_move; update.c: ch->practice += add_prac; update.c: /* Restore User HP on level advance. -- Kratas */ update.c: ch->hit = ch->max_hit; update.c: xREMOVE_BIT( ch->act, PLR_BOUGHT_PET ); update.c: if ( ch->level == LEVEL_PCAVATAR ) update.c: sprintf( buf, "%s has just become an Avatar!", ch->name ); update.c: if ( ch->level == LEVEL_AVATAR ) update.c: sprintf( buf, "%s has just become a Demi-God!", ch->name ); update.c: if ( ch->level < LEVEL_IMMORTAL ) update.c: add_hp, ch->max_hit, update.c: 1, ch->level + 10, update.c: add_move, ch->max_move, update.c: add_prac, ch->practice update.c: add_hp, ch->max_hit, update.c: add_mana, ch->max_mana, update.c: add_move, ch->max_move, update.c: add_prac, ch->practice update.c: if ( IS_NPC(ch) || ch->level >= LEVEL_AVATAR ) update.c: if(modgain>0 /*&& IS_PKILL(ch)*/ && ch->level<33){ update.c: if(ch->level<=9){ update.c: if(ch->level<=18 && ch->level>=10){ update.c: if(ch->level<=27 && ch->level>=19){ update.c: if(ch->level<=28 && ch->level>=36){ update.c: if( modgain > 0 && sysdata.double_exp ) /* Double EXP earned -- Kratas */ update.c: /* per-race experience multipliers */ update.c: modgain *= ( race_table[ch->race]->exp_multiplier/100.0); update.c: if( ch->exp + modgain < exp_level(ch, ch->level)){ update.c: modgain = exp_level(ch, ch->level) - ch->exp; update.c: /* gain more than one level - FB */ update.c: exp_level(ch, ch->level+2) - exp_level(ch, ch->level+1)); update.c: ch->exp = UMAX( 0, ch->exp + modgain ); update.c: if (NOT_AUTHED(ch) && ch->exp >= exp_level(ch, ch->level+1)) update.c: ch->exp = (exp_level(ch, (ch->level+1)) - 1); update.c: while ( ch->level < LEVEL_AVATAR && ch->exp >= exp_level(ch, ch->level+1)) update.c: ch_printf( ch, "You have now obtained experience level %d!\n\r", ++ch->level ); update.c: if (!IS_SET( ch->pcdata->flags, PCFLAG_ANONYMOUS)) { update.c: sprintf( buf, "%s has achieved level %d!", ch->name, ch->level ); update.c: gain = ch->level * 3 / 2; update.c: gain = UMIN( 5, ((ch->level + get_curr_con(ch))/ 8) ); update.c: switch ( ch->position ) update.c: case POS_MORTAL: return -1; update.c: case POS_INCAP: return -1; update.c: case POS_SLEEPING: gain += get_curr_con(ch) * 2.0; if(ch->on) gain += 5; break; update.c: case POS_RESTING: gain += get_curr_con(ch) * 1.25;if(ch->on) gain += 2; break; update.c: if ( ch->pcdata->condition[COND_BLOODTHIRST] <= 1 ) update.c: else if ( ch->pcdata->condition[COND_BLOODTHIRST] >= (8 + ch->level) ) update.c: if ( ch->pcdata->condition[COND_FULL] == 0 ) update.c: if ( ch->pcdata->condition[COND_THIRST] == 0 ) update.c: return UMIN(gain, ch->max_hit - ch->hit); update.c: gain = ch->level; update.c: gain = UMIN( 5, ((ch->level + get_curr_int(ch)) / 8) ); update.c: if ( ch->position < POS_SLEEPING ) update.c: switch ( ch->position ) update.c: case POS_SLEEPING: gain += get_curr_int(ch) * 3.25; if(ch->on) gain += 5; break; update.c: case POS_RESTING: gain += get_curr_int(ch) * 1.75; if(ch->on) gain += 2; break; update.c: if ( ch->pcdata->condition[COND_FULL] == 0 ) update.c: if ( ch->pcdata->condition[COND_THIRST] == 0 ) update.c: return UMIN(gain, ch->max_mana - ch->mana); update.c: gain = ch->level; update.c: gain = UMAX( 15, ((2*ch->level + get_curr_dex(ch)) / 8) ); update.c: switch ( ch->position ) update.c: case POS_MORTAL: return -1; update.c: case POS_INCAP: return -1; update.c: case POS_SLEEPING: gain += get_curr_dex(ch) * 4.5;if(ch->on) gain+=5; break; update.c: case POS_RESTING: gain += get_curr_dex(ch) * 2.5;if(ch->on) gain+=2; break; update.c: if ( ch->pcdata->condition[COND_BLOODTHIRST] <= 1 ) update.c: if ( ch->pcdata->condition[COND_BLOODTHIRST] >= (8 + ch->level) ) update.c: if ( ch->pcdata->condition[COND_FULL] == 0 ) update.c: if ( ch->pcdata->condition[COND_THIRST] == 0 ) update.c: return UMIN(gain, ch->max_move - ch->move); update.c: if (value == 0 || IS_NPC(ch) || ch->level >= LEVEL_IMMORTAL || NOT_AUTHED(ch)) update.c: /* Make away flag go on automagically after 5 mins -- Scion */ update.c: if ((ch->desc) && ((ch->desc->connected == CON_PLAYING) && (ch->desc->idle > 1200 && !xIS_SET(ch->act, PLR_AFK)))) update.c: condition = ch->pcdata->condition[iCond]; update.c: if (condition == -1) update.c: if( race_table[ch->race]->hunger_mod == -1 && iCond == COND_FULL ) update.c: ch->pcdata->condition[iCond] = URANGE(0, condition+value, (10 + ch->level)); update.c: ch->pcdata->condition[iCond] = URANGE(0, condition+value, 48); update.c: if ( ch->pcdata->condition[iCond] == 0 ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR) update.c: bug("gain_condition: bloodthirst update for non blood ch: %s", ch->name); update.c: retcode = damage(ch, ch, ch->max_hit / 20, TYPE_UNDEFINED); update.c: if ( ch->pcdata->condition[iCond] == 1 ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR ) update.c: if ( ch->pcdata->condition[iCond] == 2 ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR ) update.c: if ( ch->pcdata->condition[iCond] == 3 ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR && ch->race != RACE_VAMPIRE ) update.c: if ( ch->level < LEVEL_AVATAR ) update.c: if ((!ch->pcdata) && !(xIS_SET(ch->act, ACT_IS_NPC))) update.c: bug( "Mob %d in room %d was not set with the NPC flag! Fixing...", ch->pIndexData->vnum, ch->in_room->vnum); update.c: xSET_BIT( ch->act, ACT_IS_NPC ); update.c: if ( ch == first_char && ch->prev ) update.c: bug( "mobile_update: first_char->prev != NULL... fixed", 0 ); update.c: ch->prev = NULL; update.c: gch_prev = ch->prev; update.c: if ( gch_prev && gch_prev->next != ch ) update.c: sprintf( buf, "FATAL: Mobile_update: %s->prev->next doesn't point to ch.", update.c: ch->name ); update.c: bug( "Short-cutting here", 0 ); update.c: ch->prev = NULL; update.c: if ( !ch->in_room update.c:/* Clean up 'animated corpses' that are not charmed' - Scryn */ update.c: if ( ch->pIndexData->vnum == 5 && !IS_AFFECTED(ch, AFF_CHARM) ) update.c: if(ch->in_room->first_person) update.c: if ( !xIS_SET( ch->act, ACT_RUNNING ) update.c: && !xIS_SET( ch->act, ACT_SENTINEL ) update.c: && !ch->fighting && ch->hunting ) update.c: /* Commented out temporarily to avoid spam - Scryn update.c: sprintf( buf, "%s hunting %s from %s.", ch->name, update.c: ch->hunting->name, update.c: ch->in_room->name ); update.c: if ( !xIS_SET( ch->act, ACT_RUNNING ) update.c: && ch->spec_fun ) update.c: if ( (*ch->spec_fun) ( ch ) ) update.c: if ( HAS_PROG( ch->pIndexData, SCRIPT_PROG ) ) update.c: if ( ch->position != POS_STANDING ) update.c: if ( xIS_SET(ch->act, ACT_MOUNTED ) ) update.c: if ( xIS_SET(ch->act, ACT_AGGRESSIVE) update.c: || xIS_SET(ch->act, ACT_META_AGGR) ) update.c: if ( IS_SET(ch->in_room->room_flags, ROOM_SAFE ) update.c: && (xIS_SET(ch->act, ACT_AGGRESSIVE) || xIS_SET(ch->act, ACT_META_AGGR)) ) update.c: track it down, this will have to do - shogar */ update.c: if(! ch->in_room->area) update.c: ch->in_room->vnum,ch->name); update.c: if(ch->was_in_room) update.c: bug("Was in room %d",ch->was_in_room->vnum); update.c: if ( ch->in_room->area->nplayer > 0 ) update.c: if ( ch->position < POS_STANDING ) update.c: if ( ch->position < POS_STANDING ) update.c: big_obj = keeper->last_carrying; update.c: for ( obj = keeper->last_carrying; obj; obj = obj->prev_content ) { update.c: if ( obj->wear_loc == WEAR_NONE && can_see_obj( ch, obj ) ) { update.c: if ((obj->cost > big_obj->cost) && (ch->gold >= big_obj->cost)) update.c: if(!get_obj_wear(ch, big_obj->name) update.c: && !get_obj_carry(ch, big_obj->name)) { update.c: do_buy(ch, big_obj->name); update.c: if (big_obj == ch->last_carrying) update.c: do_wear(ch, big_obj->name); update.c: for (obj=ch->last_carrying; obj; obj=obj->next_content) update.c: if (obj->wear_loc==WEAR_NONE) update.c: do_sell(ch, obj->name); update.c: if ( ch->in_room->first_content update.c: if (!xIS_SET(ch->act, ACT_SCAVENGER) && number_percent() < 70) update.c: for ( obj = ch->in_room->first_content; obj; obj = obj->next_content ) update.c: if ( (CAN_WEAR(obj, ITEM_TAKE) && (obj->cost > max) update.c: || (ch->in_room->area->weather->precip > 10)) update.c: max = obj->cost; update.c: if (ch->in_room->area->weather->precip > 10) update.c: xREMOVE_BIT(obj_best->extra_flags, ITEM_BURIED); update.c: xREMOVE_BIT(obj_best->extra_flags, ITEM_BURIED); update.c: do_get(ch, obj_best->name); update.c: /* Handle objects in inventory -- Scion */ update.c: * if (ch->last_carrying && find_keeper(ch)!=ch) update.c: if ( !xIS_SET(ch->act, ACT_RUNNING) update.c: && !xIS_SET(ch->act, ACT_SENTINEL) update.c: && !xIS_SET(ch->act, ACT_PROTOTYPE) update.c: && ( pexit = get_exit(ch->in_room, door) ) != NULL update.c: && pexit->to_room update.c: /* && !IS_SET(pexit->exit_info, EX_CLOSED) <-- Allowing MOBs to open doors! -- Scion */ update.c: && !IS_SET(pexit->to_room->room_flags, ROOM_NO_MOB) update.c: && !IS_SET(pexit->to_room->room_flags, ROOM_DEATH) update.c: && ( !xIS_SET(ch->act, ACT_STAY_AREA) || pexit->to_room->area == ch->in_room->area ) ) update.c: if (((door == 3) || (door == 11)) && (IS_SET(pexit->exit_info, EX_CLOSED))) update.c: do_open(ch, pexit->keyword); update.c: do_close(ch, pexit->keyword); update.c: continue - Kahn */ update.c: if ( retcode != rNONE || xIS_SET(ch->act, ACT_SENTINEL) update.c: || ch->position < POS_STANDING ) update.c: if ( ch->hit < ch->max_hit / 2 update.c: && ( pexit = get_exit(ch->in_room,door) ) != NULL update.c: && pexit->to_room update.c: && !IS_SET(pexit->exit_info, EX_CLOSED) update.c: && !IS_SET(pexit->to_room->room_flags, ROOM_NO_MOB) ) update.c: for ( rch = ch->in_room->first_person; update.c: rch = rch->next_in_room ) update.c: sprintf( buf, "Get away from me, %s!", rch->name ); update.c: sprintf( buf, "Leave me be, %s!", rch->name ); update.c: sprintf( buf, "%s is trying to kill me! Help!", rch->name ); update.c: sprintf( buf, "Someone save me from %s!", rch->name ); update.c: if ( ch == first_char && ch->prev ) update.c: bug( "char_gains: first_char->prev != NULL... fixed", 0 ); update.c: ch->prev = NULL; update.c: gch_prev = ch->prev; update.c: if ( gch_prev && gch_prev->next != ch ) update.c: bug( "char_gains: ch->prev->next != ch", 0 ); update.c: if ( ch->position >= POS_STUNNED ) update.c: if ( ch->hit < ch->max_hit ) update.c: ch->hit += hit_gain(ch); update.c: if ( ch->mana < ch->max_mana ) update.c: ch->mana += mana_gain(ch); update.c: if ( ch->move < ch->max_move ) update.c: ch->move += move_gain(ch); update.c: if ( ch == first_char && ch->prev ) update.c: bug( "char_gains: first_char->prev != NULL... fixed", 0 ); update.c: ch->prev = NULL; update.c: gch_prev = ch->prev; update.c: if ( gch_prev && gch_prev->next != ch ) update.c: bug( "char_gains: ch->prev->next != ch", 0 ); update.c: gain_condition( ch, COND_DRUNK, -1 ); update.c: gain_condition( ch, COND_FULL, -1 + race_table[ch->race]->hunger_mod ); update.c: if ( ch == first_char && ch->prev ) update.c: bug( "char_update: first_char->prev != NULL... fixed", 0 ); update.c: ch->prev = NULL; update.c: gch_prev = ch->prev; update.c: if ( gch_prev && gch_prev->next != ch ) update.c: bug( "char_update: ch->prev->next != ch", 0 ); update.c: * See if player should be auto-saved. update.c: && ( !ch->desc || ch->desc->connected == CON_PLAYING ) update.c: && ch->level >= 2 update.c: && current_time - ch->save_time > (sysdata.save_frequency*60) ) update.c:/* move to another function -- Scion update.c: if ( ch->position >= POS_STUNNED ) update.c: if ( ch->hit < ch->max_hit ) update.c: ch->hit += hit_gain(ch); update.c: if ( ch->mana < ch->max_mana ) update.c: ch->mana += mana_gain(ch); update.c: if ( ch->move < ch->max_move ) update.c: ch->move += move_gain(ch); update.c: if ( ch->position == POS_STUNNED ) update.c: if ( ch->morph ) { update.c: if ( ch->morph->timer > 0 ) update.c: ch->morph->timer--; update.c: if ( ch->morph->timer == 0 ) update.c: * --Shaddai update.c: if ( !IS_NPC(ch) && ch->pcdata->nuisance ) update.c: if ( ch->pcdata->nuisance->flags < MAX_NUISANCE_STAGE ) update.c: temp = ch->pcdata->nuisance->max_time-ch->pcdata->nuisance->time; update.c: temp *= ch->pcdata->nuisance->flags; update.c: temp += ch->pcdata->nuisance->time; update.c: ch->pcdata->nuisance->flags++; update.c: if ( !IS_NPC(ch) && ch->level < LEVEL_IMMORTAL ) update.c: && obj->item_type == ITEM_LIGHT update.c: && obj->value[2] > 0 ) update.c: if ( --obj->value[2] == 0 && ch->in_room ) update.c: ch->in_room->light -= obj->count; update.c: if (ch->in_room->light < 0 ) update.c: ch->in_room->light=0; update.c: if ( obj->serial == cur_obj ) update.c: if ( ++ch->timer >= 12 ) update.c: if ( ch->timer == 12 && ch->in_room ) update.c: ch->was_in_room = ch->in_room; update.c: if ( ch->fighting ) update.c: if ( ch->pcdata->condition[COND_DRUNK] > 8 ) update.c: worsen_mental_state( ch, ch->pcdata->condition[COND_DRUNK]/8 ); update.c: if ( ch->pcdata->condition[COND_FULL] > 1 ) update.c: switch( ch->position ) update.c: if ( ch->pcdata->condition[COND_THIRST] > 1 ) update.c: switch( ch->position ) update.c: gain_condition( ch, COND_FULL, -1 ); update.c: gain_condition( ch, COND_DRUNK, -1 ); update.c: gain_condition( ch, COND_FULL, -1 + race_table[ch->race]->hunger_mod ); update.c: if ( IS_VAMPIRE(ch) && ch->level >= 10 ) update.c: gain_condition( ch, COND_BLOODTHIRST, -1 ); update.c: if ( CAN_PKILL( ch ) && ch->pcdata->condition[COND_THIRST] - 9 > 10 ) update.c: gain_condition( ch, COND_THIRST, -9 ); update.c: if ( !IS_NPC( ch ) && ch->pcdata->nuisance ) update.c: value = ((0 - ch->pcdata->nuisance->flags)*ch->pcdata->nuisance->power); update.c: gain_condition ( ch, COND_FULL, --value ); update.c: if ( ch->in_room ) update.c: switch( ch->in_room->sector_type ) update.c: gain_condition( ch, COND_THIRST, -1 + race_table[ch->race]->thirst_mod); break; update.c: gain_condition( ch, COND_THIRST, -3 + race_table[ch->race]->thirst_mod); break; update.c: gain_condition( ch, COND_THIRST, -1 + race_table[ch->race]->thirst_mod); break; update.c: if ( !IS_NPC(ch) && !IS_IMMORTAL(ch) && ch->pcdata->release_date > 0 && update.c: ch->pcdata->release_date <= current_time ) update.c: if ( ch->pcdata->clan ) update.c: location = get_room_index( ch->pcdata->clan->recall ); update.c: location = ch->in_room; update.c: STRFREE( ch->pcdata->helled_by ); update.c: ch->pcdata->release_date = 0; update.c: ch->mental_state = URANGE( 20, ch->mental_state update.c: if ( ch->position == POS_INCAP ) update.c: if ( ch->position == POS_MORTAL ) update.c: for ( paf = ch->first_affect; paf; paf = paf_next ) update.c: paf_next = paf->next; update.c: if ( paf->location == APPLY_RECURRINGSPELL ) update.c: if ( IS_VALID_SN(paf->modifier) update.c: && (skill=skill_table[paf->modifier]) != NULL update.c: && skill->type == SKILL_SPELL ) update.c: if ( (*skill->spell_fun)(paf->modifier, ch->level, ch, ch) == rCHAR_DIED update.c: xREMOVE_BIT(ch->affected_by, AFF_RECURRINGSPELL); update.c: if(ch->alignment<race_table[ch->race]->minalign) update.c: if(ch->alignment>race_table[ch->race]->maxalign) update.c: if ( ch->mental_state >= 30 ) update.c: switch( (ch->mental_state+5) / 10 ) update.c: act( AT_ACTION, "$n is ranting on about 'the answer', 'ONE' and other mumbo-jumbo...", ch, NULL, NULL, TO_ROOM ); update.c: if ( ch->mental_state <= -30 ) update.c: switch( (abs(ch->mental_state)+5) / 10 ) update.c: if ( ch->position > POS_SLEEPING ) update.c: if ( (ch->position == POS_STANDING update.c: || ch->position < POS_FIGHTING) update.c: && number_percent()+10 < abs(ch->mental_state) ) update.c: if ( ch->position > POS_SLEEPING ) update.c: if ( (ch->position == POS_STANDING update.c: || ch->position < POS_FIGHTING) update.c: && (number_percent()+20) < abs(ch->mental_state) ) update.c: if ( ch->position > POS_SLEEPING ) update.c: if ( ch->position < POS_SITTING update.c: && (number_percent()+30) < abs(ch->mental_state) ) update.c: if ( ch->position > POS_RESTING ) update.c: if ( ch->position > POS_RESTING ) update.c: if ( ch->position > POS_RESTING ) update.c: if ( ch->position > POS_RESTING ) update.c: if ( ch->position > POS_RESTING ) update.c: if ( ch->timer > 24 ) update.c: if ( obj == first_object && obj->prev ) update.c: bug( "obj_update: first_object->prev != NULL... fixed", 0 ); update.c: obj->prev = NULL; update.c: gobj_prev = obj->prev; update.c: if ( gobj_prev && gobj_prev->next != obj ) update.c: bug( "obj_update: obj->prev->next != obj", 0 ); update.c: if ( obj->carried_by ) update.c: if( obj->in_room && obj->in_room->area->nplayer > 0 ) update.c: if ( obj->item_type == ITEM_PIPE ) update.c: if ( IS_SET( obj->value[3], PIPE_LIT ) ) update.c: if ( --obj->value[1] <= 0 ) update.c: obj->value[1] = 0; update.c: REMOVE_BIT( obj->value[3], PIPE_LIT ); update.c: if ( IS_SET( obj->value[3], PIPE_HOT ) ) update.c: REMOVE_BIT( obj->value[3], PIPE_HOT ); update.c: if ( IS_SET( obj->value[3], PIPE_GOINGOUT ) ) update.c: REMOVE_BIT( obj->value[3], PIPE_LIT ); update.c: REMOVE_BIT( obj->value[3], PIPE_GOINGOUT ); update.c: SET_BIT( obj->value[3], PIPE_GOINGOUT ); update.c: if ( !IS_SET( obj->value[3], PIPE_LIT ) ) update.c: SET_BIT( obj->value[3], PIPE_FULLOFASH ); update.c: REMOVE_BIT( obj->value[3], PIPE_HOT ); update.c:/* Corpse decay (npc corpses decay at 8 times the rate of pc corpses) - Narn */ update.c: if ( obj->item_type == ITEM_CORPSE_PC || obj->item_type == ITEM_CORPSE_NPC ) update.c: sh_int timerfrac = UMAX(1, obj->timer - 1); update.c: if ( obj->item_type == ITEM_CORPSE_PC ) update.c: timerfrac = (int)(obj->timer / 8 + 1); update.c: if ( obj->timer > 0 && obj->value[2] > timerfrac ) update.c: bufptr = one_argument( obj->short_descr, name ); update.c: obj->value[2] = timerfrac; update.c: sprintf( buf, corpse_descs[ UMIN( timerfrac - 1, 4 ) ], update.c: STRFREE( obj->description ); update.c: obj->description = STRALLOC( buf ); update.c: if ( IS_OBJ_STAT(obj, ITEM_GROUNDROT) && !obj->in_room ) update.c: if ( ( obj->timer <= 0 || --obj->timer > 0 ) ) update.c: if (xIS_SET(obj->extra_flags, ITEM_POISONED)) { update.c: xREMOVE_BIT(obj->extra_flags, ITEM_POISONED); update.c: switch ( obj->item_type ) update.c: obj->item_type = ITEM_TRASH; /* so extract_obj */ update.c: /* dump all the eq on the ground instead of making is disappear -- Scion */ update.c: for (obj1 = obj->first_content; obj1; obj1 = obj->first_content) { update.c: if (obj->in_room) update.c: obj_to_room(obj1, obj->in_room); update.c: bug("Obj %d could not be removed from corpse, put in limbo.", obj1->pIndexData->vnum); update.c: if (obj->in_room) update.c: --obj->in_room->light; update.c: if ( obj->in_room->light < 0 ) update.c: obj->in_room->light = 0; update.c: if ( obj->carried_by ) update.c: act( AT_TEMP, message, obj->carried_by, obj, NULL, TO_CHAR ); update.c: else if ( obj->in_room update.c: && ( rch = obj->in_room->first_person ) != NULL update.c: if ( obj->serial == cur_obj ) update.c: ch_next = ch->next; update.c: /* running mobs -Thoric */ update.c: if ( xIS_SET(ch->act, ACT_RUNNING) ) update.c: if ( !xIS_SET(ch->act, ACT_SENTINEL) update.c: && !ch->fighting && ch->hunting ) update.c: if ( ch->spec_fun ) update.c: if ( (*ch->spec_fun) ( ch ) ) update.c: if ( !xIS_SET(ch->act, ACT_SENTINEL) update.c: && !xIS_SET(ch->act, ACT_PROTOTYPE) update.c: && ( pexit = get_exit(ch->in_room, door) ) != NULL update.c: && pexit->to_room update.c: && !IS_SET(pexit->exit_info, EX_CLOSED) update.c: && !IS_SET(pexit->to_room->room_flags, ROOM_NO_MOB) update.c: && !IS_SET(pexit->to_room->room_flags, ROOM_DEATH) update.c: && ( !xIS_SET(ch->act, ACT_STAY_AREA) update.c: || pexit->to_room->area == ch->in_room->area ) ) update.c: if ( retcode != rNONE || xIS_SET(ch->act, ACT_SENTINEL) update.c: || ch->position < POS_STANDING ) update.c: if ( ch->mount update.c: && ch->in_room != ch->mount->in_room ) update.c: xREMOVE_BIT( ch->mount->act, ACT_MOUNTED ); update.c: ch->mount = NULL; update.c: ch->position = POS_STANDING; update.c: if ( ( ch->in_room && ch->in_room->sector_type == SECT_UNDERWATER ) update.c: || ( ch->in_room && ch->in_room->sector_type == SECT_OCEANFLOOR ) ) update.c: if ( ch->level < LEVEL_IMMORTAL ) update.c: /* Changed level of damage at Brittany's request. -- Narn */ update.c: dam = number_range( ch->max_hit / 100, ch->max_hit / 50 ); update.c: if ( ch->in_room update.c: && (( ch->in_room->sector_type == SECT_WATER_NOSWIM ) update.c: || ( ch->in_room->sector_type == SECT_WATER_SWIM ) ) ) update.c: && !ch->mount ) update.c: for ( obj = ch->first_carrying; obj; obj = obj->next_content ) update.c: if ( obj->item_type == ITEM_BOAT ) break; update.c: if ( ch->level < LEVEL_IMMORTAL ) update.c: if ( ch->move > 0 ) update.c: mov = number_range( ch->max_move / 20, ch->max_move / 5 ); update.c: if ( ch->move - mov < 0 ) update.c: ch->move = 0; update.c: ch->move -= mov; update.c: dam = number_range( ch->max_hit / 20, ch->max_hit / 5 ); update.c: if ( !ch->desc ) update.c: for ( wch = ch->in_room->first_person; wch; wch = wch_next ) update.c: wch_next = wch->next_in_room; update.c: || wch->fighting update.c: || (xIS_SET(wch->act, ACT_WIMPY) && IS_AWAKE(ch) ) update.c: if ( (!xIS_SET(wch->act, ACT_AGGRESSIVE) update.c: && !xIS_SET(wch->act, ACT_META_AGGR)) update.c: || xIS_SET(wch->act, ACT_MOUNTED) update.c: || IS_SET(wch->in_room->room_flags, ROOM_SAFE ) ) update.c: if ( IS_NPC( wch ) && wch->mpactnum > 0 update.c: && wch->in_room->area->nplayer > 0 ) update.c: for ( tmp_act = wch->mpact; tmp_act; update.c: tmp_act = tmp_act->next ) update.c: oprog_wordlist_check( tmp_act->buf,wch, tmp_act->ch, update.c: tmp_act->obj, tmp_act->vo, ACT_PROG ); update.c: DISPOSE( tmp_act->buf ); update.c: for ( tmp_act = wch->mpact; tmp_act; tmp_act = tmp2_act ) update.c: tmp2_act = tmp_act->next; update.c: wch->mpactnum = 0; update.c: wch->mpact = NULL; update.c: wch = mob_act_list->vo; update.c: if ( !char_died(wch) && wch->mpactnum > 0 ) update.c: while ( (tmp_act = wch->mpact) != NULL ) update.c: if ( tmp_act->obj && obj_extracted(tmp_act->obj) ) update.c: tmp_act->obj = NULL; update.c: if ( tmp_act->ch && !char_died(tmp_act->ch) ) update.c: mprog_wordlist_check( tmp_act->buf, wch, tmp_act->ch, update.c: tmp_act->obj, tmp_act->vo, ACT_PROG ); update.c: wch->mpact = tmp_act->next; update.c: DISPOSE(tmp_act->buf); update.c: wch->mpactnum = 0; update.c: wch->mpact = NULL; update.c: mob_act_list = apdtmp->next; update.c: * We can check for linkdead victims in char_check -Thoric update.c: dnext = d->next; update.c: if ( d->connected != CON_PLAYING || (wch=d->character) == NULL ) update.c: || wch->level >= LEVEL_IMMORTAL update.c: || !wch->in_room ) update.c: for ( ch = wch->in_room->first_person; ch; ch = ch_next ) update.c: ch_next = ch->next_in_room; update.c: || ch->fighting update.c: || (xIS_SET(ch->act, ACT_WIMPY) && IS_AWAKE(wch) ) update.c: if ( (!xIS_SET(ch->act, ACT_AGGRESSIVE) update.c: && !xIS_SET(ch->act, ACT_META_AGGR)) update.c: || xIS_SET(ch->act, ACT_MOUNTED) update.c: || IS_SET(ch->in_room->room_flags, ROOM_SAFE ) ) update.c: for ( vch = wch->in_room->first_person; vch; vch = vch_next ) update.c: vch_next = vch->next_in_room; update.c: if ( (!IS_NPC(vch) || xIS_SET(ch->act, ACT_META_AGGR) update.c: || xIS_SET(vch->act, ACT_ANNOYING)) update.c: && vch->level < LEVEL_IMMORTAL update.c: && (!xIS_SET(ch->act, ACT_WIMPY) || !IS_AWAKE(vch) ) update.c: if ( IS_NPC(ch) && xIS_SET(ch->attacks, ATCK_BACKSTAB ) ) update.c: if ( !ch->mount update.c: && (obj->value[3] == 11 || obj->value[3] == 2) update.c: && !victim->fighting update.c: && victim->hit >= victim->max_hit ) update.c: WAIT_STATE( ch, skill_table[gsn_backstab]->beats ); update.c: || number_percent( )+5 < ch->level ) update.c: * drunk randoms - Tricops update.c: * (Made part of mobile_update -Thoric) update.c: if ( IS_NPC( ch ) || ch->pcdata->condition[COND_DRUNK] <= 0 ) update.c: drunk = ch->pcdata->condition[COND_DRUNK]; update.c: position = ch->position; update.c: ch->position = POS_STANDING; update.c: for ( vch = ch->in_room->first_person; vch; vch = vch->next_in_room ) update.c: check_social( ch, "puke", (rvch ? rvch->name : "") ); update.c: ch->position = position; update.c: * (Hats off to Albert Hoffman's "problem child") -Thoric update.c: if ( ch->mental_state >= 30 && number_bits(5 - (ch->mental_state >= 50) - (ch->mental_state >= 75)) == 0 ) update.c: switch( number_range( 1, UMIN(21, (ch->mental_state+5) / 5)) ) update.c: tele_next = tele->next; update.c: if ( --tele->timer <= 0 ) update.c: if ( tele->room->first_person ) update.c: if ( IS_SET( tele->room->room_flags, ROOM_TELESHOWDESC ) ) update.c: teleport( tele->room->first_person, tele->room->tele_vnum, update.c: teleport( tele->room->first_person, tele->room->tele_vnum, update.c: * Write all outstanding authorization requests to Log channel - Gorog update.c: for ( d = first_descriptor; d; d = d->next ) update.c: victim = d->character; update.c: sprintf( log_buf, " %s@%s new %s %s", victim->name, update.c: victim->desc->host, race_table[victim->race]->race_name, update.c: class_table[victim->class]->who_name ); update.c: for ( d = first_descriptor; d; d = d->next ) update.c: if ( (victim = d->character) && IS_WAITING_FOR_AUTH(victim) ) update.c: sprintf( buf, " %s@%s new %s %s\n\r", victim->name, update.c: victim->desc->host, race_table[victim->race]->race_name, update.c: class_table[victim->class]->who_name ); update.c: * Random times to defeat tick-timing clients and players. update.c: static int pulse_decomp; /* Decompression -- Kratas */ update.c: if( --pulse_decomp <= 0 ) update.c: if ( --pulse_area <= 0 ) update.c: if ( --pulse_mobile <= 0 ) update.c: if ( --pulse_violence <= 0 ) update.c: if ( --pulse_point <= 0 ) update.c: if( -- pulse_condition <= 0 ) update.c: if ( --pulse_regen <= 0 ) update.c: /* Sped up regen to 4 times normal, left everything else in char_update -- Scion */ update.c: char_regen(); /* Now 8 -- Kratas */ update.c: if ( --pulse_second <= 0 ) update.c: if ( --auction->pulse <= 0 ) update.c: auction->pulse = PULSE_AUCTION; update.c: if ( --pulse_arena <= 0 ) /* Scion arenacode */ update.c: fromRoom = portal->in_room; update.c: bug( "remove_portal: portal->in_room is NULL", 0 ); update.c: for ( pexit = fromRoom->first_exit; pexit; pexit = pexit->next ) update.c: if ( IS_SET( pexit->exit_info, EX_PORTAL ) ) update.c: bug( "remove_portal: portal not found in room %d!", fromRoom->vnum ); update.c: if ( pexit->vdir != DIR_PORTAL ) update.c: bug( "remove_portal: exit in dir %d != DIR_PORTAL", pexit->vdir ); update.c: if ( ( toRoom = pexit->to_room ) == NULL ) update.c: for( trun = timesize-1 ; trun >= 0 ; trun-- ) update.c: --reboot_in; update.c: if( auction->item ) update.c: auction->item->short_descr ); update.c: obj_to_char( auction->item, auction->seller ); update.c: auction->item = NULL; update.c: if( auction->buyer && auction->buyer != auction->seller ) update.c: auction->buyer->gold += auction->bet; update.c: send_to_char( "Your money has been returned.\n\r", auction->buyer ); update.c: sprintf( buf, "\n\r&R[&WINFO&R] &cThe world darkens as %s recreates it and the rest of the universe.\n\r", REBOOT_CHAR->name ); update.c: d_next = d->next; /* We delete from the list , so need to save this */ update.c: if ( !d->character || d->connected < 0 ) /* drop those logging on */ update.c: fprintf( fp, "%d %s %s\n", d->descriptor, och->name, d->host ); update.c: if ( och->level == 1 ) update.c: och->level++; /* Advance_level doesn't do that */ update.c: if ( d->out_compress ) update.c: do_compress( d->character, "" ); update.c: && xIS_SET( och->act, PLR_SAVREBOOT ) ) update.c: send_to_char( buf, d->character ); update.c: fprintf( fp, "-1\n" ); update.c: /* Close reserve and other always-open files and release other resources */ update.c: /* exec - descriptors are inherited */ update.c: /* Failed - sucessful exec will not return */ update.c: if ( trun != -1 && new_boot_time_t - current_time <= times[trun] ) update.c: --trun; update.c: for ( trun = timesize-1; trun >= 0; trun-- ) update.c: if ( new_boot_time_t - boot_time < 60*60*18 && update.c: !set_boot_time->manual ) update.c: if ( auction->item ) update.c: auction->item->short_descr); update.c: obj_to_char(auction->item, auction->seller); update.c: auction->item = NULL; update.c: if ( auction->buyer && auction->buyer != auction->seller ) update.c: auction->buyer->gold += auction->bet; update.c: send_to_char("Your money has been returned.\n\r", auction->buyer); update.c: for ( vch = first_char; vch; vch = vch->next ) update.c: if ( trun != -1 && new_boot_time_t - current_time <= times[trun] ) update.c: --trun; update.c: if(!auction->item) update.c: if(AUCTION_MEM > 0 && auction->history[0] && update.c: ++auction->hist_timer == 6*AUCTION_MEM) update.c: for(i = AUCTION_MEM - 1; i >= 0; i--) update.c: if(auction->history[i]) update.c: auction->history[i] = NULL; update.c: auction->hist_timer = 0; update.c: switch (++auction->going) /* increase the going state */ update.c: if (auction->bet > auction->starting) update.c: sprintf (buf, "%s: going %s for %d.", auction->item->short_descr, update.c: ((auction->going == 1) ? "once" : "twice"), auction->bet); update.c: sprintf (buf, "%s: going %s (bid not received yet).", auction->item->short_descr, update.c: ((auction->going == 1) ? "once" : "twice")); update.c: if (!auction->buyer && auction->bet) update.c: bug( "Auction code reached SOLD, with NULL buyer, but %d gold bid", auction->bet ); update.c: auction->bet = 0; update.c: if (auction->bet > 0 && auction->buyer != auction->seller) update.c: auction->item->short_descr, update.c: IS_NPC(auction->buyer) ? auction->buyer->short_descr : auction->buyer->name, update.c: auction->bet); update.c: auction->buyer, auction->item, NULL, TO_CHAR); update.c: auction->buyer, auction->item, NULL, TO_ROOM); update.c: if ( (auction->buyer->carry_weight update.c: + get_obj_weight( auction->item )) update.c: > can_carry_w( auction->buyer ) ) update.c: act( AT_PLAIN, "$p is too heavy for you to carry with your current inventory.", auction->buyer, auction->item, NULL, TO_CHAR ); update.c: act( AT_PLAIN, "$n is carrying too much to also carry $p, and $e drops it.", auction->buyer, auction->item, NULL, TO_ROOM ); update.c: obj_to_room( auction->item, auction->buyer->in_room ); update.c: obj_to_char( auction->item, auction->buyer ); update.c: pay = (int)auction->bet * 0.9; update.c: tax = (int)auction->bet * 0.1; update.c: boost_economy( auction->seller->in_room->area, tax ); update.c: auction->seller->gold += pay; /* give him the money, tax 10 % */ update.c: send_to_char(buf, auction->seller); update.c: auction->item = NULL; /* reset item */ update.c: save_char_obj( auction->buyer ); update.c: save_char_obj( auction->seller ); update.c: sprintf (buf, "No bids received for %s - removed from auction.\n\r",auction->item->short_descr); update.c: auction->seller,auction->item,NULL,TO_CHAR); update.c: auction->seller,auction->item,NULL,TO_ROOM); update.c: if ( (auction->seller->carry_weight update.c: + get_obj_weight( auction->item )) update.c: > can_carry_w( auction->seller ) ) update.c: " with everything else you're carrying.", auction->seller, update.c: auction->item, NULL, TO_CHAR ); update.c: " for $m with everything else.", auction->seller, update.c: auction->item, NULL, TO_ROOM ); update.c: obj_to_room( auction->item, auction->seller->in_room ); update.c: obj_to_char (auction->item,auction->seller); update.c: tax = (int)auction->item->cost * 0.05; update.c: boost_economy( auction->seller->in_room->area, tax ); update.c: send_to_char(buf, auction->seller); update.c: if ((auction->seller->gold - tax) < 0) update.c: auction->seller->gold = 0; update.c: auction->seller->gold -= tax; update.c: save_char_obj( auction->seller ); update.c: auction->item = NULL; /* clear auction */ update.c: etime->tv_sec -= stime->tv_sec; update.c: etime->tv_usec -= stime->tv_usec; update.c: while ( etime->tv_usec < 0 ) update.c: etime->tv_usec += 1000000; update.c: etime->tv_sec--; update.c: * - Fireblade update.c: dT += number_range(-rand_factor, rand_factor); update.c: dP += number_range(-rand_factor, rand_factor); update.c: dW += number_range(-rand_factor, rand_factor); update.c: (((weather->climate_temp - 2)*weath_unit) - update.c: (weather->temp))/weath_unit; update.c: (((weather->climate_precip - 2)*weath_unit) - update.c: (weather->precip))/weath_unit; update.c: (((weather->climate_wind - 2)*weath_unit) - update.c: (weather->wind))/weath_unit; update.c: for(neigh = weather->first_neighbor; neigh; update.c: neigh = neigh->next) update.c: if(!neigh->address) update.c: neigh->address = get_area(neigh->name); update.c: if(!neigh->address) update.c: temp = neigh->prev; update.c: weather->first_neighbor, update.c: weather->last_neighbor, update.c: STRFREE(neigh->name); update.c: dT +=(neigh->address->weather->temp - update.c: weather->temp) / neigh_factor; update.c: dP +=(neigh->address->weather->precip - update.c: weather->precip) / neigh_factor; update.c: dW +=(neigh->address->weather->wind - update.c: weather->wind) / neigh_factor; update.c: weather->temp_vector += (int)dT; update.c: weather->precip_vector += (int)dP; update.c: weather->wind_vector += (int)dW; update.c: weather->temp_vector = URANGE(-max_vector, update.c: weather->temp_vector, max_vector); update.c: weather->precip_vector = URANGE(-max_vector, update.c: weather->precip_vector, max_vector); update.c: weather->wind_vector = URANGE(-max_vector, update.c: weather->wind_vector, max_vector); update.c: pArea = (pArea == last_area) ? first_build : pArea->next) update.c: pArea->weather->temp += update.c: pArea->weather->temp_vector; update.c: pArea->weather->precip += update.c: pArea->weather->precip_vector; update.c: pArea->weather->wind += update.c: pArea->weather->wind_vector; update.c: pArea->weather->temp = URANGE(-limit, update.c: pArea->weather->temp, limit); update.c: pArea->weather->precip = URANGE(-limit, update.c: pArea->weather->precip, limit); update.c: pArea->weather->wind = URANGE(-limit, update.c: pArea->weather->wind, limit); update.c: get_weather_echo(pArea->weather); update.c: pArea = (pArea == last_area) ? first_build : pArea->next) update.c: adjust_vectors(pArea->weather); update.c: for(d = first_descriptor; d; d = d->next) update.c: if(d->connected == CON_PLAYING && update.c: IS_OUTSIDE(d->character) && update.c: !NO_WEATHER_SECT(d->character->in_room->sector_type) && update.c: IS_AWAKE(d->character)) update.c: weath = d->character->in_room->area->weather; update.c: if(!weath->echo) update.c: set_char_color(weath->echo_color, d->character); update.c: ch_printf(d->character, weath->echo); update.c: weath->echo = NULL; update.c: weath->echo_color = AT_GREY; update.c: temp = weath->temp; update.c: precip = weath->precip; update.c: wind = weath->wind; update.c: dT = weath->temp_vector; update.c: dP = weath->precip_vector; update.c: dW = weath->wind_vector; update.c: tindex = (temp + 3*weath_unit - 1)/weath_unit; update.c: pindex = (precip + 3*weath_unit - 1)/weath_unit; update.c: windex = (wind + 3*weath_unit - 1)/weath_unit; update.c: if(precip - dP > -2*weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_WHITE; update.c: if(precip - dP <= -2*weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_GREY; update.c: if(precip - dP > 0) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_CYAN; update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_WHITE; update.c: if(precip - dP <= 0) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_CYAN; update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_WHITE; update.c: else if(tindex < 2 && temp - dT > -weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_WHITE; update.c: else if(tindex > 1 && temp - dT <= -weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_CYAN; update.c: if(precip - dP > 2*weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_GREY; update.c: else if(tindex < 2 && temp - dT > -weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_WHITE; update.c: else if(tindex > 1 && temp - dT <= -weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_CYAN; update.c: if(precip - dP <= 2*weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_YELLOW; update.c: else if(tindex > 1 && temp - dT <= -weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_WHITE; update.c: else if(tindex < 2 && temp - dT > -weath_unit) update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_CYAN; update.c: weath->precip = 0; update.c: pindex = (weath->precip + 3*weath_unit - 1)/weath_unit; update.c: weath->echo = NULL; update.c: weath->echo_color = AT_GREY; update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_YELLOW; update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_ORANGE; update.c: weath->echo = "It's noon.\n\r"; update.c: weath->echo = echo_strings[n%2]; update.c: weath->echo_color = AT_WHITE; update.c: weath->echo = echo_strings[n]; update.c: weath->echo_color = AT_RED; update.c: weath->echo = echo_strings[n%2]; update.c: weath->echo = echo_strings[n%2]; update.c: weath->echo_color = AT_DBLUE; update.c: pArea = (pArea == last_area) ? first_build : pArea->next) update.c: get_time_echo(pArea->weather); update.c: for(d = first_descriptor; d; d = d->next) update.c: if(d->connected == CON_PLAYING && update.c: IS_OUTSIDE(d->character) && update.c: IS_AWAKE(d->character)) update.c: weath = d->character->in_room->area->weather; update.c: if(!weath->echo) update.c: set_char_color(weath->echo_color, update.c: d->character); update.c: ch_printf(d->character, weath->echo); websvr.c:/* ROM 2.4 Integrated Web Server - Version 1.0 websvr.c: * This is my first major snippet... Please be kind. ;-) websvr.c: * Copyright 1998 -- Defiant -- Rob Siemborski -- mud@towers.crusoe.net websvr.c: * Insanity v0.9a pre-release Modifications websvr.c: * - Added functionailiy for Secure Web server pages, using standard HTTP websvr.c: * - Started work on web interface to help files, allowing them to be browsed websvr.c: * - Seperated out the HTTP codes and content type to seperate functions websvr.c: * - Adjusted the descriptor handling to prevent anyone from prematurely websvr.c: * - Created a sorta "virtual" web directory for the webserver files to be websvr.c: * - Including a IMC web module to add the functionaility of the IMC webserver websvr.c: * - Access to general boards though web interface, prolly prevent posting but websvr.c: if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) websvr.c: log_string("----> Web Server: Error getting socket"); websvr.c: perror("web-socket"); websvr.c: sprintf(buf, "Web server (%d) : Failed initialization - Error getting socket", port); websvr.c: if((bind(sockfd, (struct sockaddr*)&my_addr, sizeof(struct sockaddr))) == -1) websvr.c: log_string("----> Web Server: Error binding socket"); websvr.c: perror("web-bind"); websvr.c: sprintf(buf, "Web server (%d) : Failed initialization - Error binding socket", port); websvr.c: for(current=web_descs; current ; current = current->next) websvr.c: FD_SET(current->fd, &readfds); websvr.c: if(max_fd < current->fd) websvr.c: max_fd = current->fd; websvr.c: /* NEW CONNECTION -- INIT & ADD TO LIST */ websvr.c: current->sin_size = sizeof(struct sockaddr_in); websvr.c: current->request[0] = '\0'; websvr.c: if((current->fd = accept(sockfd, (struct sockaddr *)&(current->their_addr), &(current->sin_size))) == -1) websvr.c: log_string("----> Web Server: Error accepting connection"); websvr.c: perror("web-accept"); websvr.c: current->next = web_descs; websvr.c: next = current->next; websvr.c: if (FD_ISSET(current->fd, &readfds)) /* We Got Data! */ websvr.c: if((numbytes=read(current->fd,buf,sizeof(buf))) == -1) websvr.c: perror("web-read"); websvr.c: prev->next = next; websvr.c: strcat(current->request,buf); websvr.c: next = current->next; websvr.c: if(strstr(current->request, "HTTP/1.") /* 1.x request (vernum on FIRST LINE) */ websvr.c: && strstr(current->request, ENDREQUEST)) websvr.c: else if(!strstr(current->request, "HTTP/1.") websvr.c: && strchr(current->request, '\n')) /* HTTP/0.9 (no ver number) */ websvr.c: else if(!str_cmp(current->request, "IMC")) websvr.c: if(current->keepalive) websvr.c: if(current->keepalive) websvr.c: close(current->fd); websvr.c: web_descs = current->next; websvr.c: prev->next = current->next; websvr.c: } /* END DATA-OUT */ websvr.c: send_buf(wdesc->fd,"HTTP/1.1 200 OK\n"); websvr.c: send_buf(wdesc->fd, "HTTP/1.1 404 Not Found\n"); websvr.c: sprintf(buf, "WWW-Authenticate: Basic realm=\"%s\"\n", realm); websvr.c: send_buf(wdesc->fd,"HTTP/1.1 401 Unauthorised\n"); websvr.c: send_buf(wdesc->fd, buf); websvr.c: send_buf(wdesc->fd,"Content-type: text/html\n\n"); websvr.c: send_buf(wdesc->fd,"Content-type: text/plain\n\n"); websvr.c: send_buf(wdesc->fd,"Content-type: image/gif\n\n"); websvr.c: send_buf(wdesc->fd,"Content-type: audio/x-wav\n\n"); websvr.c: send_buf(wdesc->fd,"Content-type: application/x-zip-compressed\n\n"); websvr.c: send_buf(wdesc->fd,"Content-type: x-world/x-vrml\n\n"); websvr.c: send_buf(wdesc->fd,"Content-type: application/octect-stream\n\n"); websvr.c: stuff = one_argument(wdesc->request, path); websvr.c: if(!strstr(wdesc->request, "GET")) websvr.c: send_buf(wdesc->fd,"HTTP/1.1 501 Not Implemented"); websvr.c: else if(strstr(wdesc->request, "HTTP/1.")) websvr.c: addr = ntohl( wdesc->their_addr.sin_addr.s_addr ); websvr.c: sprintf(buf, "Web - Request for %s recived from %d.%d.%d.%d", websvr.c: sprintf( buf, "Telnet Interface Hit: %s - WhoList", websvr.c: inet_ntoa( wdesc->their_addr.sin_addr ) ); websvr.c: sprintf( buf, "Telnet Interface Hit: %s - Index", websvr.c: inet_ntoa( wdesc->their_addr.sin_addr ) ); websvr.c: sprintf( buf, "Telnet Interface Hit: %s - WizList", websvr.c: inet_ntoa( wdesc->their_addr.sin_addr ) ); websvr.c: sprintf( buf, "Telnet Interface Hit: %s - IMMList", websvr.c: inet_ntoa( wdesc->their_addr.sin_addr ) ); websvr.c: next = current->next; websvr.c: close(current->fd); websvr.c: && num < (MAX_STRING_LENGTH-2)) websvr.c: send_buf(wdesc->fd, colbuf); websvr.c: && num < (MAX_STRING_LENGTH-2)) websvr.c: send_buf(wdesc->fd, colbuf); websvr.c: * Many thanks to Altrag who contributed this function! --GW websvr.c: static char buf[MAX_STRING_LENGTH*2];/* Safety here .. --GW */ websvr.c: web_desc_free = web_desc_free->next; websvr.c: desc->keepalive = FALSE; websvr.c: desc->next = NULL; websvr.c: desc->next = web_desc_free; websvr.c: if(file[strlen(file)-2]=='/') websvr.c: if((fd=open(file, O_RDONLY | O_NONBLOCK )) == -1) websvr.c: "<TITLE>Telnet Interface -- URL Not Found</TITLE>\n" websvr.c: send(wdesc->fd, buffer, readlen, 0); websvr.c: if(file[strlen(file)-2]=='/') websvr.c: if((fd=open(file, O_RDONLY | O_NONBLOCK )) == -1) websvr.c: send(wdesc->fd, buffer, readlen, 0); websvr.c: for(current = web_passwords ; current ; current = current->next) websvr.c: if(!str_cmp(current->username, username)) websvr.c: if(!str_cmp(current->password, crypt(password, "yt"))) websvr.c: for(current = web_passwords ; current ; current = current->next) websvr.c: if(!str_cmp(current->username, username)) websvr.c: new->username = str_dup(username); websvr.c: new->password = str_dup(""); websvr.c: new->next = web_passwords; websvr.c: STRFREE(new->password); websvr.c: new->password = str_dup(crypt(newpass, "yt")); websvr.c: if(change_web_pass(ch->name, buf)) websvr.c: for(current = web_passwords ; current ; current = current->next) websvr.c: fprintf(fpWebPass, "WebPass %s~\n%s~\n", current->username, current->password); websvr.c: new->username = fread_string(fpWebPass); websvr.c: new->password = fread_string(fpWebPass); websvr.c: new->next = web_passwords; websvr.c: for(current=web_descs; current ; current = current->next) websvr.c: if(current->fd == desc) websvr.c: current->keepalive = FALSE; websvr.c: case '-': websvr.c: while( skip-- > 0 ) websvr.c: * -- Christopher Aaron Haslage (Yakkov) -- 6/3/99 (No Help Needed) websvr.c: if ( !strcmp( word, "<!-- CODE -->")) websvr.c: send_buf(wdesc->fd, buf); websvr.c: && num < (MAX_STRING_LENGTH-2)) websvr.c: send_buf(wdesc->fd, buf); websvr.c: && num < (MAX_STRING_LENGTH-2)) websvr.c: send_buf(wdesc->fd,col_buf); websvr.c:// send_buf(wdesc->fd,"<BR>"); webwiz.c: * Makes a wizlist for showing on the Telnet Interface WWW Site -- KCAH webwiz.c: if ( dentry->d_name[0] != '.' ) webwiz.c: sprintf( buf, "%s%s", GOD_DIR, dentry->d_name ); webwiz.c: ilevel = MAX_LEVEL - 15; webwiz.c: ilevel = MAX_LEVEL - 16; webwiz.c: add_to_wizlist( dentry->d_name, ilevel ); webwiz.c: for ( wiz = first_wiz; wiz; wiz = wiz->next ) webwiz.c: if ( wiz->level < ilevel ) webwiz.c: ilevel = wiz->level; webwiz.c:case MAX_LEVEL - 0: towebwiz( "<P>&rOwner<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 1: towebwiz( "<P>&RAdministration<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 2: towebwiz( "<P>&wHead Coders / Head Builders<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 3: towebwiz( "<P>&WCoders / Builders<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 4: towebwiz( "<P>&bNew Coders / New Builders<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 5: towebwiz( "<P>&BGuest / Citizen Administration<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 6: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 7: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 8: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 9: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 10: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 11: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 12: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 13: towebwiz( "<P>---<BR>" ); break; webwiz.c:case MAX_LEVEL - 14: towebwiz( "<P>&BPeople<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 15: towebwiz( "<P>&BRetired<BR>&w" ); break; webwiz.c:case MAX_LEVEL - 16: towebwiz( "<P>&BGuests<BR>&w" ); break; webwiz.c: if ( strlen( buf ) + strlen( wiz->name ) > 999 ) webwiz.c: strcat( buf, wiz->name ); webwiz.c: wiznext = wiz->next; webwiz.c: DISPOSE(wiz->name);