Well, I don't see your purpose in paf_last, but other than that I don't see anything wrong, so I have to agree with Jason's question: "What's not working"

- Valnir

----- Original Message ----- From: "Mervine, Keith" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, November 08, 2004 1:50 PM
Subject: Finding an affect by name and stopping it.


Greetings,
I'm not sure if this has been done before, but I'm trying to let
players stop affects on themselves by issusing a command.

What I have so far(from looking at other code) doesn't appear to work.
Can someone take a look at it and advise me please?

The syntax would be something like "stop displacement"

Thanks!
-K

void do_stop( CHAR_DATA *ch, char *argument )
{
char arg[MAX_INPUT_LENGTH];
AFFECT_DATA *paf, *paf_last = NULL;
char buf[MAX_STRING_LENGTH];
int sn;

  argument = one_argument( argument, arg );

  if ( arg[0] == '\0' )
  {
   if ( ch->affected != NULL )
   {
    send_to_char( "You are maintaining the following psi powers:\n\r",
ch );
    for ( paf = ch->affected; paf != NULL; paf = paf->next )
    {
     if (skill_table[paf->type].group == GROUP_PSI)
     {
      sprintf( buf, "@[EMAIL PROTECTED]
%d/tick\n\r",skill_table[paf->type].name,skill_table[paf->type].min_mana
);
      send_to_char( buf,ch );
      paf_last = paf;
     }
    }
   }
   else
   {
    send_to_char("You are not maintaining any psi powers.\n\r",ch);
   }
   return;
  }

  if ( sn = find_spell( ch,arg ) < 0 )
   {
       send_to_char( "You don't of know any powers by that name.\n\r",
ch );
       return;
   }

  if (is_affected(ch,sn))
  {
   affect_strip(ch,sn);
   if ( skill_table[sn].msg_off )
   {
    send_to_char( skill_table[sn].msg_off, ch );
    send_to_char( "\n\r", ch );
   }
   return;
  }
}

--
ROM mailing list
[email protected]
http://www.rom.org/cgi-bin/mailman/listinfo/rom


Reply via email to