---------- Forwarded message ---------- Date: Mon, 15 Jun 1998 11:52:24 -0700 From: Tony Robbins <tonyr@presys.com> To: greerga@circlemud.org Subject: Can you do me a favor... heh... Hi, it's me, the guy that can't get back on the list... I was wondering if you could put this message out for me... I'm not trying to use you as a post office, but I really want to distribute this. Feel free to tell me to go take a flying leap... (BEGIN MESSAGE - [CODE] PlayerLink Utility) ---- This is a god command that will either load a linkdead player or remove a linkless character from the game. I think I'm forgetting to free the character, but I'm not sure because of the extract_char(), and besides, you can look at stuff yourself. This is based on code from Mark A. Heilpern which would only load linkdead people. I added the choice of removing them also. I didn't think there was another way to get rid of linkdead people. Anyway, give credit to Mark Heilpern and I (Tony Robbins) if you use this, or else you're a bad person. You need to prototype void read_aliases(struct char_data *ch); if you have alias saving on your MUD. Do the interpreter.c stuff on your own... :) ACMD(do_playerlink) { struct char_data *victim = 0; struct char_file_u tmp_store; char *action = arg, *vict = buf2; two_arguments(argument, action, vict); if (!*action || !*vict) { send_to_char("Usage: playerlink [ load | remove ] <player>\r\n", ch); return; } if (is_abbrev(action, "load")) { if (get_player_vis(ch, vict, 0)) { send_to_char("That player is already connected/loaded!\r\n", ch); return; } CREATE(victim, struct char_data, 1); clear_char(victim); if (load_char(vict, &tmp_store) > -1) { store_to_char(&tmp_store, victim); if (GET_LEVEL(victim) <= GET_LEVEL(ch)) { Crash_load(victim); victim->next = character_list; character_list = victim; victim->desc = NULL; char_to_room(victim, ch->in_room); act("You gesture and a statue of $N forms from nothingness.", FALSE, ch, 0, victim, TO_CHAR); act("$n gestures and a statue of $N appears from nowhere.", FALSE, ch, 0, victim, TO_NOTVICT); read_aliases(victim); /* remove this if you don't have alias saving! */ sprintf(buf, "(GC) %s has linkloaded %s.", GET_NAME(ch), GET_NAME(victim)); mudlog(buf, BRF, MAX(LVL_IMPL, GET_INVIS_LEV(ch)), TRUE); } else { send_to_char("Sorry, you aren't high enough level to linkload that char.\r\n", ch); free_char(victim); } } else { send_to_char("No such player.\r\n", ch); free(victim); } } else if (is_abbrev(action, "remove")) { if (!(victim = get_player_vis(ch, vict, 0))) { send_to_char("That player isn't in the game right now.\r\n", ch); return; } else if (victim->desc) { send_to_char("That player isn't linkdead.\r\n", ch); return; } act("You gesture and $N dissolves into nothingness.", FALSE, ch, 0, victim, TO_CHAR); act("$n gestures and $N dissolves into nothingness.", FALSE, ch, 0, victim, TO_NOTVICT); sprintf(buf, "(GC) %s has unloaded %s.", GET_NAME(ch), GET_NAME(victim)); Crash_rentsave(victim, 0); extract_char(victim); mudlog(buf, BRF, MAX(LVL_IMPL, GET_INVIS_LEV(ch)), TRUE); } return; } Sorry if this is truncated by the mailer... Wish I could distribute it first-hand... :P -B. +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST