manual spell query

@kirk.geog.sc.edu
Date: 10/13/96


i want to create a spell which will cause a mob to forget a named
target (from MOB_MEMORY), but am not sure how to go about handling the
name to be forgotten.
the spell, when cast, should(?) look something like:
cast 'forget' <mob> <person_to_be_forgotten>

how do i handle that <person_to_be_forgotten> (i am assuming the only
way to do this is with a manual spell...).

this would be trivial if the person to be forgotten was the caster,
but i want it to be anybody ;)

ASPELL(spell_forget)
{
  struct char_data *i; /* person to be forgotten */

  void forget(struct char_data *ch, struct char_data *victim);

  *buf = '\0';

  if (ch == NULL || victim == NULL)
    return;
  
  if (!IS_NPC(victim)) {
    send_to_char("This may only be case on mobs!\r\n", ch);
    return;
  }
  
  if (mag_savingthrow(victim, SAVING_SPELL)) {
    sprintf(buf, "%s looks at you funny, and says \'Shoo!\'\r\n", GET_NAME(victim));    
    send_to_char(buf, ch);
    return;
  }

  if (!MOB_FLAGGED(victim, MOB_MEMORY)) {
    sprintf(buf, "%s stares at you funny.\r\n", GET_NAME(victim));
    send_to_char(buf, ch);
    return;
  } else {
    forget(victim, i);
    sprintf(buf, "%s stares at you blankly.\r\n", GET_NAME(victim));
    send_to_char(buf, ch);
    return;    
  }
}

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