> Is it possible for a mob in a SPECIAL() to detect if someone > arrived in the room? Which function can tell that. No. Not in a special. You might want to look into putting a check into char_to_room() (in handler.c) if its that important for you to know as someone enters a room. You'd be better off using a check there, than in the movement functions, because you'll be covering a lot more (most) ways that people might enter the room (ie teleport, summon, etc). > How can a mob detect that someone is giving him something. > I want to make a SPECIAL() so that, if you give a mob a > certain object, you receive some amount of money. #define YOUR_OBJ xxxx <--- that should be the vnum of the obj SPECIAL(gimmie) { char arg1[MAX_INPUT_LENGTH]; char arg2[MAX_INPUT_LENGTH]; struct char_data *mob = me; struct char_data *obj; if (CMD_IS("give")) { /* check for args, if none, pass it back to do_give */ two_arguments(argument, arg1, arg2); if (!*arg || !*arg2) return 0; /* make sure its meant to be given to this mob... */ if (get_char_room_vis(ch, arg2) != mob) return 0; /* if its the right obj, pass it off and do something */ if ((obj = get_obj_in_list_vis(ch, arg1, ch->carrying)) && GET_OBJ_VNUM(obj) == YOUR_OBJ) { obj_to_char(obj_from_char(obj), mob); act("$n says, 'Gee, thanks, I always wanted a $p.", 0, mob, obj, 0, TO_ROOM); /* put reward of gold and thanking or whatever here */ return 1; } } return 0; } Hm, that looks a lil messy, I'm used to a wider screen than this mailer lets me use... it should work though. -Sky
This archive was generated by hypermail 2b30 : 12/18/00 PST