Hi All.. Seems like something went wrong last time I sent this letter, so I'll just try again. It's very simple, I'm trying to do a look <item> on <person> and look <item> in <container>, the second part is working nicely. But the first one doesn't. I can get it to work when I only want to do 'look ring on serces' no problem.. even 'look ring on 2.guard' but when I do 'look 2.ring on serces' it will not work. The loop I started with said 'Serces isn't equipped with 2.ring'. So I started looking at what the different things did, and I figured out that I could grap some code from get_person_vis (or something like that), that resulted in this : --- start insertion void look_on_something(struct char_data * ch, char *object, char *victim) { struct char_data *found_char = NULL; struct char_data *lame_char = NULL; struct obj_data *f_obj = NULL; int bits, found = FALSE, j, i = 0, number; char *desc; char tmpname[MAX_INPUT_LENGTH]; char *tmp = tmpname; strcpy(tmp, object); bits = generic_find(victim, FIND_CHAR_ROOM, ch, &found_char, &f_obj); if(!found_char && GET_LEVEL(ch) >= LVL_IMMORT) bits = generic_find(victim, FIND_CHAR_WORLD, ch, &found_char, &f_obj); if (!found_char) { if (GET_LEVEL(ch) < LVL_IMMORT) send_to_char("Sorry, but you can't see that person anywhere in your vicinity else send_to_char("Seems like that person isn't logged in!\r\n", ch); return; } number = get_number(&tmp); ------- end insertion and here it crashes, it could be that I have made my pointers go wrong somehow. GDB reports: Program received signal SIGSEGV, Segmentation fault. show_obj_to_char (object=0x0, ch=0x8301a28, mode=5) at act.informative.c:169 169 else if (object->short_description && ((mode == 1) || Not that I can see anywhere that I call show_obj_to_char.. a Backtrace tells me : #0 show_obj_to_char (object=0x0, ch=0x8301a28, mode=5) at act.informative.c:169 #1 0x805278f in look_on_something (ch=0x8301a28, object=0x8100c34 #"2.staff", victim=0x80f50b0 "serces") at act.informative.c:987 #2 0x805289d in look_onin_target (ch=0x8301a28, arg1=0x8100c34 #"2.staff", arg2=0x80f50b0 "serces", arg3=0x80f51b0 "") at act.informative.c:1008 #3 0x8052ae9 in do_look (ch=0x8301a28, argument=0xbffff851 " 2.staff #serces", cmd=164, subcmd=0) at act.informative.c:1056 #4 0x8086c51 in command_interpreter (ch=0x8301a28, argument=0xbffff850 "l 2.staff serces") at interpreter.c:788 #5 0x804a2a0 in game_loop (mother_desc=11) at comm.c:661 #6 0x8049964 in init_game (port=5000) at comm.c:301 #7 0x80498ea in main (argc=1, argv=0xbffffdc4) at comm.c:271 #8 0x80493eb in ___crt_dummy__ () I'm tired of that code and can't think clearly (which means that I probably will find the solution in 30 seconds).. Anyone who can see the flaw?? Hope someone can.. I can't.. S. P. Skou Serces@mud.dk - Implementor at The Realm of Chaos (chaos.mud.dk 4000) +------------------------------------------------------------+ | 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/15/00 PST