You wrote: > Or, even easier, check to see if this is the object the spec_proc is > atteched to, by use of "me". > > in the top line of the proc: > > SPECIAL(whatever) > { > struct obj_data *invis_obj = (struct obj_data *)me; > /* cast the "me" pointer to struct obj_data, and assign it to invis_obj */ > if (invis_obj->carried_by != ch) > /* check to see if the person carrying the invis_obj is the character > issuing the command, if not exit the proc */ > return 1; > ... > } > *snip* /* Below I adjusted the spec_proc to remove the check for specific vnum */ /* This version has been tested and works */ /* You can now assign any object this spec_proc and it will work */ SPECIAL(invis_item) { int i; char arg1[MAX_INPUT_LENGTH]; struct obj_data *invis_obj = (struct obj_data *)me; /* cast the "me" pointer and assign it to invis_obj */ if (invis_obj->worn_by == ch) { /* check to see if the person carrying the invis_obj is the character */ if(CMD_IS("disappear")) { send_to_char("You slowly fade out of view.\r\n", ch); act("$n slowly fades out of view.\r\n", FALSE, ch, 0, 0,TO_ROOM); SET_BIT(AFF_FLAGS(ch), AFF_INVISIBLE); return (TRUE); } if (CMD_IS("appear")) { REMOVE_BIT(AFF_FLAGS(ch), AFF_INVISIBLE); send_to_char("You slowly fade into view.\r\n", ch); act("$n slowly fades into view.\r\n", FALSE, ch, 0, 0,TO_ROOM); return(TRUE); } one_argument(argument, arg1); if (is_abbrev(arg1, "magical")) { for (i=0; i< NUM_WEARS; i++) if(GET_EQ(ch,i)){ if (IS_SET(AFF_FLAGS(ch), AFF_INVISIBLE)) { REMOVE_BIT(AFF_FLAGS(ch), AFF_INVISIBLE); perform_remove(ch,i); send_to_char("You slowly fade into view.\r\n", ch); act("$n slowly fades into view.\r\n", FALSE, ch, 0, 0, TO_ROOM); return (TRUE); } else { perform_remove(ch, i); return (TRUE); } return (FALSE); } return (FALSE); } return (FALSE); } return (FALSE); } ---------- Thanks to all those who contributed to this, again if there are any changes to make it better please..post them. Abram +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST