diff --git a/changelog b/changelog index afeef5c..c7dddc7 100644 --- a/changelog +++ b/changelog @@ -37,6 +37,7 @@ Xlist (mlist, olist, rlist, zlist, slist, tlist, qlist) @ [Dec 01 2010] - Jamdog Fixed do_cheat so that only ID 1 can get a full restoration + Added zone checks for load/purge commands below admin level 3 (GrGod) [Nov 30 2010] - Jamdog Bug-Fix: Fixed incorrect rnum showing on stat room (Thanks Kam) Added hsedit House Editor OLC diff --git a/src/act.wizard.c b/src/act.wizard.c index b90bebd..73bc96e 100644 --- a/src/act.wizard.c +++ b/src/act.wizard.c @@ -1367,6 +1367,11 @@ ACMD(do_load) struct char_data *mob=NULL; mob_rnum r_num; + if (!IS_ADMIN(ch, ADMLVL_GRGOD) && !can_edit_zone(ch, world[IN_ROOM(ch)].zone)) { + send_to_char(ch, "Sorry, you can't load mobs here.\r\n"); + return; + } + if ((r_num = real_mobile(atoi(buf2))) == NOBODY) { send_to_char(ch, "There is no monster with that number.\r\n"); return; @@ -1384,6 +1389,11 @@ ACMD(do_load) struct obj_data *obj; obj_rnum r_num; + if (!IS_ADMIN(ch, ADMLVL_GRGOD) && !can_edit_zone(ch, world[IN_ROOM(ch)].zone)) { + send_to_char(ch, "Sorry, you can't load objects here.\r\n"); + return; + } + if ((r_num = real_object(atoi(buf2))) == NOTHING) { send_to_char(ch, "There is no object with that number.\r\n"); return; @@ -1476,6 +1486,10 @@ ACMD(do_purge) one_argument(argument, buf); + if (!IS_ADMIN(ch, ADMLVL_GRGOD) && !can_edit_zone(ch, world[IN_ROOM(ch)].zone)) { + send_to_char(ch, "Sorry, you can't purge anything here.\r\n"); + return; + } /* argument supplied. destroy single object or char */ if (*buf) { t = buf;