From: Ryan Stapleton Subject: Locate Object Here it is. Ok Here is What I did in my patch, I hope posting this to the list isn't bad. Its not real pretty what I did but it seems to work, if there are any comments or anything I would be happy to hear them. On with the code. in structs.h add a char field in player_special_data void *last_olc_targ; /* olc control */ int last_olc_mode; /* olc control */ + char *tmp_text; /* hold temp text, like for passing in * + * locate object */ }; This is how I passed the text I was searching for to the spell, without re-writing the whole thing, not real nice but it works. in interpreter.c add this: /* * remove hyphans from a string */ void strip_hyphan(char *string) { for(; *string; (string)++) { if ((*string) == '-' ) (*string) = ' '; } } also add it to interpreter.h as a prototype: in spell_parser.c: in do_cast: /* Find the target */ if (t != NULL) { one_argument(strcpy(arg, t), t); skip_spaces(&t); + strip_hyphan(t); in handler.c in *get_obj_vis: char *tmp = tmpname; char **msg; + msg = & ((ch)->player_specials->tmp_text); + if ( *msg ) + free( *msg); + if (!*name) + *msg = NULL; + else + *msg = str_dup(name); in spells.c: in spell_locate_object: ASPELL(spell_locate_object) { struct obj_data *i; char name[MAX_INPUT_LENGTH]; int j; strcpy(name, (ch)->player_specials->tmp_text); j = level >> 1; for (i = object_list; i && (j > 0); i = i->next) { if (!isname2(name, i->name)) continue; if (i->carried_by) sprintf(buf, "%s is being carried by %s.\n\r", i->short_description, PERS(i->carried_by, ch)); else if (i->in_room != NOWHERE) sprintf(buf, "%s is in %s.\n\r", i->short_description, world[i->in_room].name); else if (i->in_obj) sprintf(buf, "%s is in %s.\n\r", i->short_description, i->in_obj->short_description); else if (i->worn_by) sprintf(buf, "%s is being worn by %s.\n\r", i->short_description, PERS(i->worn_by, ch)); else sprintf(buf, "%s's location is uncertain.\n\r", i->short_description); CAP(buf); send_to_char(buf, ch); j--; } if (j == level >> 1) send_to_char("You sense nothing.\n\r", ch); } I hope this helps someone, I hope I remembered to put everything in here, if there are any questions please let me know thanks. Ryan Stapleton raal@penn.com