You will need to remove the color codes if your not using this type of color code or prefer no color. Your choice. I alone did not write this, I received help from: Deidril: <F.Manisse@cryo-networks.fr>, this code is basically the group code tweaked to work as a consent command/system. Have fun with it. If anyone wants to enlighten me on how to get this on the circle FTP, I will put it there. Thanks, David Cole Anywhere, place: void PrintConsent(struct char_data *ch) { struct char_data *k; struct consent_type *f; send_to_char("&ccConsent Information&cn\r\n", ch); send_to_char("&cc-=-=-=-=-=-=-=-=-=-&cn\r\n", ch); k = (ch->consenter ? ch->consenter : ch); sprintf(buf, "&ccYou are currently consenting: &cC$N&cn"); act(buf, FALSE, ch, 0, k, TO_CHAR); send_to_char("\r\n&ccThe following people have given you their consent:&cn\r\n", ch); for (f = ch->consented; f; f = f->next) { sprintf(buf, "&cC$N&cn"); act(buf, FALSE, ch, 0, f->consented, TO_CHAR); } } void ClearConsent(struct char_data *ch) { struct char_data * victim; struct consent_type *f, *temp; victim = ch->consenter; if (!victim) return; for (f = victim->consented; f; f = f->next) { if (f->consented == ch ) { sprintf(buf2, "&cC%s &ccstops consenting you.&cn\r\n", GET_NAME(ch)); send_to_char (buf2,victim) ; act("&ccYou stop consenting: &cC$N&cc.&cn", FALSE, ch, 0, victim, TO_CHAR); REMOVE_FROM_LIST(f, victim->consented,next); break ; } } ch->consenter = NULL; } ACMD(do_consent) { struct char_data *vict; struct consent_type *f; one_argument(argument, buf); if (!*buf) PrintConsent(ch); else if (!(vict = get_char_vis(ch, buf, FIND_CHAR_WORLD))) send_to_char(NOPERSON, ch); else if (IS_NPC(vict)) send_to_char(NOPERSON, ch); else if (ch->consenter == vict) act("You have already given your consent to $M.", FALSE, ch, 0, vict, TO_CHAR); else if (vict == ch) { ClearConsent(ch); send_to_char ("&ccYou give your consent too yourself.&cn\n\r",ch); } else { ClearConsent(ch); ch->consenter = vict; CREATE(f, struct consent_type, 1); f->next = vict->consented; f->consented = ch; vict->consented = f; act("&ccYou give your consent too: &cC$N&cc.&cn", FALSE, ch, 0, vict, TO_CHAR); act("&cC$n &cchas given you $s consent.&cn", FALSE, ch, 0, vict, TO_VICT); } } in struct.h, above char_data: struct consent_type { struct char_data *consented; struct consent_type *next; }; in char_data, below the *master stuff: struct consent_type *consented; /* List of chars consenting */ struct char_data *consenter; /* Who is char consenting? */ -- +---------------------------------------------------------------+ | 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