Ok, if any of you are interested in giving your spec_procs the ability to be truly random, here's something that will call them every X seconds. First, you need to add these two functions. I put em right below mobile_activity in mobact.c, but I'm sure there is a more suitable place for em. void call_obj_sepcs(void) { extern struct descriptor_data *descriptor_list; struct descriptor_data *d; int j; for (d = descriptor_list; d; d = d->next) { for (j = 0; j < NUM_WEARS; j++) if (GET_EQ(d->character, j) && GET_OBJ_SPEC(GET_EQ(d->character, j)) != NULL) if (GET_OBJ_SPEC(GET_EQ(d->character, j)) (d->character, GET_EQ(d->character, j), cmd, arg)) continue; } } void call_room_specs(void) { extern struct descriptor_data *descriptor_list; struct descriptor_data *d; for (d = descriptor_list; d; d = d->next) { if(GET_ROOM_SPEC(d->character->in_room) != NULL) if (GET_ROOM_SPEC(d->character->in_room) (d->character, world + d->character->in_room, 0, "")) continue; } } Now, add this in structs.h right after the definition of PULSE_MOBILE #define PULSE_SPEC (5 RL_SEC) /* Change this from 5 to whatever you want. */ Now do the following in comm.c: void mobile_activity(void); +void call_room_specs(void); +void call_obj_specs(void); void string_add(struct descriptor_data *d, char *str); Find the following code: if (!(pulse % PULSE_MOBILE)) mobile_activity(); And add this below it: if(!(pulse % PULSE_SPEC)) { call_room_specs(); call_obj_specs(); } That should be it. Whenever you want to make a random proc for anything now, you can simply use the if(!cmd) return FALSE; code at the top. If you see any problems with this or ways to make it better, please gimme a holler. Chuck Reed | Q: Who's your favorite Spice Girl? | creed@i-55.com | A: The dead one. | "Jesus saves . . . . he passes to Moses. Moses shoots, HE SCORES!" -Unknown +------------------------------------------------------------+ | 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