/* Restore All This is a simple and cheap function that does a restore all. If you have looked over some of the other functions, you will see that arestore is a hybrid of both "do_gecho" and "do_restore." Why is "arestore" a seperate function from the regular "do_restore?" First, I was in a hurry to do this; second, I wanted to be able to easily set this as something only higher immortals could use. - William R. Sloop, a.k.a. "Robert" Let me know if you use it. wrsloop@longwood.lwc.edu */ Ok, first, in "act.wizard.c" you will need to add in the following: In the internal function list: ACMD(do_arestore); At the bottom of the file: ACMD(do_arestore){ //Restore All struct descriptor_data *pt; for (pt = descriptor_list; pt; pt = pt->next){ if (STATE(pt) == CON_PLAYING && pt->character && pt->character != ch){ GET_HIT(pt->character) = GET_MAX_HIT(pt->character); GET_MANA(pt->character) = GET_MAX_MANA(pt->character); GET_MOVE(pt->character) = GET_MAX_MOVE(pt->character); if ((GET_LEVEL(ch) >= LVL_GRGOD) && (GET_LEVEL(pt->character)>= LVL_IMMORT)) { /* for (i = 1; i <= MAX_SKILLS; i++) SET_SKILL(vict, i, 100);*/ if (GET_LEVEL(pt->character) >= LVL_GRGOD) { pt->character->real_abils.str_add = 100; pt->character->real_abils.intel = 25; pt->character->real_abils.wis = 25; pt->character->real_abils.dex = 25; pt->character->real_abils.str = 25; pt->character->real_abils.con = 25; pt->character->real_abils.cha = 25; } pt->character->aff_abils = pt->character->real_abils; } update_pos(pt->character); send_to_char(OK, ch); act("You have been fully healed by $N!", FALSE, pt->character, 0, ch, TO_CHAR); } } } Now, in "interpretor.c" add in these lines: In the list of other commands: ACMD(do_arestore); In the command table: { "arestore" , POS_DEAD , do_arestore , LVL_QUESTOR, 0 }, There we go. Save and recompile.