from the mailing list and have come to a loss in thought. I'm using
rdig because i already have a dig command to uncover buried objects.
#include "conf.h"
#include "sysdep.h"
#include "structs.h"
#include "utils.h"
#include "comm.h"
#include "interpreter.h"
#include "db.h"
#include "olc.h"
extern int top_of_zone_table;
extern struct zone_data *zone_table;
extern struct room_data *world;
extern int rev_dir[];
ACMD(rdig)
{
struct room_data *rm = &world[ch->in_room];
int r_from_room, r_to_room, vdir = 0;
char dir[1];
two_arguments(argument, dir, buf);
if (!*buf || !*dir) {
send_to_char("Usage: rdig <dir> <to room>\r\n", ch);
return;
}
r_from_room = rm->number;
r_to_room = atoi(buf2);
if (*dir == 'n') vdir = 0;
else if (*dir == 'e') vdir = 1;
else if (*dir == 's') vdir = 2;
else if (*dir == 'w') vdir = 3;
else if (*dir == 'u') vdir = 4;
else if (*dir == 'd') vdir = 5;
else {
send_to_char("Invalid Direction.\r\n", ch);
return;
}
/* validity checks */
if ((GET_LEVEL(ch) < LVL_IMPL) &&
(zone_table[OLC_ZNUM(ch->desc)].number != GET_OLC_ZONE(ch))) {
send_to_char("You do not have permission to edit this zone.\r\n", ch);
free((ch->desc)->olc);
return;
}
/* r_* = real number, v_* = virtual number */
world[r_from_room].dir_option[vdir]->to_room = v_to_room;
world[r_to_room].dir_option[rev_dir(vdir)]->to_room = v_from_room;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I know this area is screwey. What do I use to actually create the exit?
}
Any assistance would be greatly appreciated.
Hydragon
doogie@scf.NMSU.edu
+-----------------------------------------------------------+
| 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