---------- 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