>Sorry to keep on posting so many messages regarding this issue...
>
>I think the problem is in these lines of code in find_replacement
>
> switch (type) {
> case MOB_TRIGGER:
> ch = (char_data *) go;
>
> /* Problemed Section */
> if ((o = get_object_in_equip(ch, name)));
> else if ((o = get_obj_in_list(name, ch->carrying)));
> else if ((c = get_char_room(name, NULL, IN_ROOM(ch))));
> else if ((o = get_obj_in_list(name,world[IN_ROOM(ch)].contents)));
> else if ((c = get_char(name)));
> else if ((o = get_obj(name)));
> else if ((r = get_room(name))) {}
> /* End of problem'd section */
>
> break;
>
>I'm pretty sure of what it does, but not of how it works. Any help would
>be appreciated.
>
>-Carlton
The solution is to move the else if ((c = get_char(name))); up in the
chain, so if a UID is used it will try it before it looks for people in a
room. So the final looks like this - I also reordered the other stuff for
priority...:
/* Problemed Section */
if ((c = get_char(name)));
else if ((c = get_char_room(name, NULL, IN_ROOM(ch))));
else if ((o = get_obj(name)));
else if ((o = get_object_in_equip(ch, name)));
else if ((o = get_obj_in_list(name, ch->carrying)));
else if ((o = get_obj_in_list(name,world[IN_ROOM(ch)].contents)));
else if ((r = get_room(name))) {}
/* End of problem'd section */
It goes in this order:
char - UID
char - from room
obj - UID
obj - equiped
obj - in inventory
obj - in room
room...
Let me know if this adversely affects anything...
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT