// Snake redit command for chaining together the dig command. // You should be sure you have installed the snippet for using dig // without vnum arguments already, this will not work without it. - Runter REDIT (redit_snake) { ROOM_INDEX_DATA *in_room, *tracer; char holder[6], *ptr; int count = 0; if (ch->in_world) return FALSE; in_room = ch->in_room; if (*argument == 0) { send_to_char("snake <arg>, example: snake nneess\r\n", ch); return FALSE; } tracer = ch->in_room; ptr = holder; for(;*argument != 0;) { char_from_room(ch); char_to_room(ch, tracer); switch(*argument) { default: if (*argument < '0' || *argument > '9') { send_to_char("Error in syntax. Read help snake for more details.\r\n", ch); return FALSE; } while (*argument >= '0' && *argument <= '9') { *ptr = *argument; *(ptr+1) = 0; ++argument; } count = atoi(holder); break; case ' ': tracer = in_room; break; case 'n': redit_north(ch, "dig"); tracer = ch->in_room->exit[0]->u1.to_room; break; case 'e': redit_east(ch, "dig"); tracer = ch->in_room->exit[1]->u1.to_room; break; case 's': redit_south(ch, "dig"); tracer = ch->in_room->exit[2]->u1.to_room; break; case 'w': redit_west(ch, "dig"); tracer = ch->in_room->exit[3]->u1.to_room; break; case 'u': redit_up(ch, "dig"); tracer = ch->in_room->exit[4]->u1.to_room; break; case 'd': redit_down(ch, "dig"); tracer = ch->in_room->exit[5]->u1.to_room; break; } if (count == 0) ++argument; else --count; } char_from_room(ch); char_to_room(ch, in_room); return TRUE; } /* The following is the help file. help snake {x syntax snake <directions> {x Example: snake nnee {x This will create a path of rooms 2 north and then 2 east from you. {x Example: snake 2n2e {x This will create a path of rooms 2 north and then 2 east from you, not unlike above. {x Example: snake 2n2e 2s2w {x This will create a path of rooms 2 north and then 2 east, then create a second path 2 south and 2 west. */