From avoid@fyionline.comWed Nov 22 15:06:39 1995 Received: by greatdane.webnexus.com; (5.65/1.1.8.2/24Jan95-1133PM) id AA11344; Sat, 14 Oct 1995 08:50:57 -0700 Received: from erzulie.fyionline.com by greatdane.webnexus.com; (5.65/1.1.8.2/24Jan95-1133PM) id AA03068; Sat, 14 Oct 1995 08:50:55 -0700 Received: (from avoid@localhost) by erzulie.fyionline.com (8.6.12/8.6.12) id LAA08803; Sat, 14 Oct 1995 11:49:49 -0400 Posted-Date: Sat, 14 Oct 1995 11:49:49 -0400 Date: Sat, 14 Oct 1995 11:49:49 -0400 (EDT) From: Reble <avoid@fyionline.com> X-Sender: avoid@erzulie To: Merc List <merc-l@webnexus.com> Subject: Perm Spelled Items (code) Message-Id: <Pine.LNX.3.91.951014113353.8761A-100000@erzulie> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-merc-l@greatdane.webnexus.com Precedence: bulk On Friday Oct 13, Kilbia Genta wrote: > I've seen them in other code bases - things that give you > permanent invisibility or sustain (one was a perma sanctuary) when you > held/wore/wielded them. > > Would this kind of stuff be defined in the 'affecting fields' > section of an object definition? And if so, what is the syntax, since > it's not one of the more common affect flags? Kilbia, I had the same need about 4 months ago. Permed items make such good quest prizes etc.... You could even make a +10 +10 sub issue sword that nobody would like twice at a newbie having. Anyways, I've enclosed some code for you to look over: ------------[ Actual 'perm' code ]------------- void do_perm( CHAR_DATA *ch, char *argument ) { char item[MAX_INPUT_LENGTH], affect[MAX_INPUT_LENGTH], mod[MAX_INPUT_LENGTH]; OBJ_DATA *obj; AFFECT_DATA *aff; argument = one_argument( argument, item ); argument = one_argument( argument, affect ); argument = one_argument( argument, mod ); if (item[0] == '\0' || affect[0] == '\0') { send_to_char( "Perm <item> <affect> [modifier]\n\r", ch ); return; } if( ( obj = get_obj_carry( ch, item )) == NULL ) { send_to_char( "You don't have that item.\n\r", ch ); return; } aff = malloc( sizeof( *aff ) ); aff->level = ch->level; aff->duration = -1; aff->bitvector = 0; aff->type = aff->location = get_item_apply_val (affect); if (mod [0] != '\0') aff->modifier = atoi (mod); else aff->modifier = ch-> level; affect_to_obj( obj, aff ); return; } -----------[ End 'perm' code ]---------- I see you have an interest in a perm'd Sanc item, you'll have to add that code to affect_modify() in handler.c if it isn't there now. -----[ Begin... handler.c affect_modify() addition ]----------- case APPLY_SANCTUARY: { af.type = skill_lookup( "sanctuary" ); if( fAdd ) { if( is_affected( ch, af.type ) ) { send_to_char( "You are already in sanctuary.\n\r", ch ); break; } af.level = mod; af.duration = -1; af.location = APPLY_NONE; af.modifier = 0; af.bitvector = AFF_SANCTUARY; affect_to_char( ch, &af ); send_to_char( "You are surrounded by a white aura.\n\r", ch ); act( "$n is surrounded by a white aura.", ch, NULL, NULL, TO_ROOM ); break; } else { affect_strip( ch, af.type ); send_to_char( "The white aura around your body vanishes.\n\r", ch ); act( "The white aura around $n's body vanishes.", ch, NULL, NULL, TO_ROOM); break; } } ------[ End... handler.c addition ]----------- The only other thing I think you need to do is: A). Setup the command/skill to suit. B). Add the apply types to merc.h for any new perm'd object flags. C). Compile, and have fun... I hope that gets you going.... The players love it. -Reble avoid@erzulie.fyionline.com P.S. If you want to see it work, come visit the Astral Void at: ----> erzulie.fyionline.com 9999 I'll grant you the skill so you can fiddle with it. =8)' ============================================================================= / ______ _______ ____ _____ ___ __ _ ______ ____ ____ _____ / \ | ____|__ __| _ \ / ____\ / _ \| \ / | ____| / __ \| _ \ / ____\ \ / | |__ | | | |_| | | | |_| | |\/| | |___ | | | | |_| | | / / | ___| | | | ___/| | __| _ | | | | ____| | | | | __/| | ___ \ \ | | | | | | | |___| | | | | | | | |____ | |__| | |\ \| |___| | / / |_| |_| |_| o \_____/|_| |_|_| |_|______|o \____/|_| \_|\_____/ \ \ / ============================================================================ ------------------------------------------------------------------------------ ftp://ftp.game.org/pub/mud FTP.GAME.ORG http://www.game.org/ftpsite/ ------------------------------------------------------------------------------ This archive came from FTP.GAME.ORG, the ultimate source for MUD resources. ------------------------------------------------------------------------------