Heh, that was supposed to be private mail. Anyway, I'll post this here as an obcircle. It's never even been compiled :P In theory, it lets you move a person from a room to another sending various messages, if they type the right command. -B. #define NUM_PORTERS 2 SPEC(beleporter) { int i; struct beleporter_fun { room_vnum from; room_vnum to; char* exit_msg; char* enter_msg; char* command; char* argument; bool can_look; } beleport[NUM_PORTERS] = { { 1545, 1554, "$n swims into a crate.", "$n swims in through a crack in the crate.", "enter", "crate", TRUE }, { 1554, 1545, "$n swims out of the crate.", "$n swims out through a crack in the crate.", "exit", NULL, FALSE } /* expandable... * * note that if you use a command not in the regular * * command list, you have to add it with a do_not_here * * or some other similar command pointer (e.g., exit) */ }; /* make sure we're in a valid room. */ for (i = 0; i <= NUM_PORTERS; i++) { if (world[IN_ROOM(ch)].number == beleport[i].from) break; if (i == NUM_CRATES) { sprintf(buf, "Invalid beleporter room #%d, invalid spec_assign!", world[IN_ROOM(ch)].number); mudlog(buf, BRF, LVL_IMPL, TRUE); return (FALSE); } } if the command isn't the required one, or if it isn't look is invalid or if (!CMD_IS(beleport[i].command) && !CMD_IS("look")) return (FALSE); one_argument(argument, arg); if (beleport[i].argument && !is_abbrev(arg, beleport[i].argument)) return (FALSE); if (CMD_IS("look")) { if (beleport[i].can_look == FALSE) return (FALSE); GET_WAS_IN(ch) = IN_ROOM(ch); char_from_room(ch); char_to_room(ch, real_room(beleport[i].to)); look_at_room(ch, 1); char_from_room(ch); char_to_room(ch, GET_WAS_IN(ch)); return (TRUE); } else { act(beleport[i].exit_msg, FALSE, ch, 0, 0, TO_ROOM); char_from_room(ch); char_to_room(ch, real_room(beleport[i].to)); act(beleport[i].enter_msg, FALSE, ch, 0, 0, TO_ROOM); look_at_room(ch, 0); return (TRUE); } /* should never get this far... */ return (FALSE); } +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST