On Tue, 19 Nov 1996, Yasuo Yamamoto wrote: > I put the following code to make_prompt in comm.c: > > if (FIGHTING(d->character)) > { > i2 = 100 * GET_HIT(FIGHTING(FIGHTING(d->character))) > / GET_MAX_HIT(FIGHTING(FIGHTING(d->character))); > ... (etc... ) > With this code if you are tanking the mob, you'll see > the buf:<condition> in your prompt. I'm wondering how > to display buf:<condition> only to those who assist > the thank. Any ideas? You can try examining all the people in the room that are fighting, and look for a char who is fighting the target, and is being fought by the target. Then look at the char itself to see if it is fighting the same target. I believe it would look like the below... (you will need to define i in the beginning of the function as struct char_data*, and found as an int ). found=FALSE; /* for each person in the same room as the char... */ for(i=world[d->character->in_room].people ; i && !found ; i=i->next_in_room ) { /* if this person is not the char and is fighting */ if((i!=d->character)&&FIGHTING(i)) { /* and if the char being fought by this person is also fighting the person itself... */ if(FIGHTING(i)==FIGHTING(FIGHTING(i))) { /* and the person and the player receiving the prompt are both fighting the same target... */ if(FIGHTING(i)==FIGHTING(d->character)) { /* then we have a winner... and set i to the target shared by the char and tank. */ found = TRUE; i=FIGHTING(i) } } } } Then from here you can do the prompt thing using i as the char who's condition has to be displayed. Alvoria MUD -- Where things aren't quite the same... Address -- telnet://conan.ids.net:4000/ Homepage -- http://users.ids.net/~mudguy/ (under construction, perhaps not even updated for months to come) +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST