[code]two bardic spells

From: pjh (wart@trilidun.kuntrynet.com)
Date: 12/31/96


ok thought i'd share some:
In order for this to work you need to add ITEM_BARDIC to structs.h (and
bump up MAX_ITEM_AFF in olc.h to get olc working).
( tehn give all yuour musical instruments the BARDIC flag)

anyway these two spells are sorta neat-o.  LULLYBYE is a dupe of SLEEP
cept with the bardic check. 
constructive criticism welcome:


ASPELL(spell_bard_peace)
{
  struct char_data *temp;
  if (GET_EQ(ch, WEAR_HOLD) != NULL)
  if ((GET_OBJ_EXTRA(GET_EQ(ch, WEAR_HOLD)) & ITEM_BARDIC) == ITEM_BARDIC)
  {
    //sprintf( "You here the music of a %s as %s attempts to calm the
battle.",
    //        GET_OBJGET_EQ(ch, WEAR_HOLD), GET_NAME(ch));
    act("$n plays heavenly music to stop the fight.", TRUE, ch, 0, 0,
TO_ROOM);
    act("You use your bardic instrument to stop the fight.", FALSE, ch, 0,
0, TO_CHAR);
        
    if (IS_EVIL(ch)) 
      return;
         
    
    for (temp = world[ch->in_room].people; temp; temp =
temp->next_in_room)
      if (FIGHTING(temp)) {
        stop_fighting(temp);
        if (IS_NPC(temp)) {
          clearMemory(temp);
          }
        if (ch !=temp) {
          act("$n stops fighting and sits down listening to the music.",
TRUE, temp, 0, 0, TO_ROOM);
          act("You are mesmerized by the music, stop fighting, and sit
down.", TRUE, temp, 0, 0, TO_CHAR);
          GET_POS(ch) = POS_SITTING;
          }
        
      }
    return;            
  } 
  act("You need to be holding your instrument.", FALSE, ch, 0, 0,
TO_CHAR);
  return ;
  
}    

sorry if its messy, gpm i just dont wanna figger out.   

ok and LULLYBYE in magic.c
 case SPELL_LULL: 
    if (!pk_allowed && !IS_NPC(ch) && !IS_NPC(victim))
      return;
    if (MOB_FLAGGED(victim, MOB_NOSLEEP))
      return;
    if (mag_savingthrow(victim, savetype))
      return;
    if (GET_EQ(ch, WEAR_HOLD) != NULL)
      if ((GET_OBJ_EXTRA(GET_EQ(ch, WEAR_HOLD)) & ITEM_BARDIC) ==
ITEM_BARDIC)
      {
          
        af[0].duration = 4 +(GET_LEVEL(ch) >> 2);
        af[0].bitvector = AFF_SLEEP;
          if (GET_POS(victim) > POS_SLEEPING) {
            act("You feel very sleepy as the music fills your soul...
Zzzz....
            act("$n nods off to sleep with the sound of the music.", TRUE,
vict
            GET_POS(victim) = POS_SLEEPING;
          }      
      break;     
      }          
      act("You must be holding your bardic instrument to sing that.",
TRUE, ch,

   break;

hope this helps some people out there.  If you have questions lemme know
or constructive criticism yadayada



*-=-=-=-=-=-=-=* w0nderful *-=-* w0rld *-=-* 0f *-=-* wart *-=-=-=-=-*
hartman@kuntrynet.com
wart@trilidun.kuntrynet.com
http://trilidun.kuntrynet.com
Eudaemonia Mud: 207.40.85.11 Port 4000



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