Re: [CODE] Magical Weapons' Duration den.se>

From: Rasdan (rasdan@PEAK.ORG)
Date: 12/07/97


>Then came the tricky part, to make the weapon disappear after a given
>time. I have tried many different solutions, but all made the MUD crash
>or the code was just skipped over in the system (even though no errors
>in Make).
>This includes an add to point_update, a few lines in update_char_objects,
>a whole new comm.c check called update_astral, among others (too many
>to be mentioned here).
>
>Have somebody out there had the same problem as I have?
>Maybe someone can help me...
>
>The thing is, that I want the blade gone in a given time. Even
>GET_OBJ_TIMER didn't work. Not even a new structure called
>astral_timer worked (Instead, the MUD crashed every tick).
>
>/Christoffer

Why not have it remove the weapon when an affect wears off
(ie: AFF_ASTRAL), and have the spello call both MAG_MANUAL and
MAG_AFFECTS, where MAG_AFFECTS sets the astral flag.

Then, where it actually removes the spell (affect_from_char I believe),
check to see if the affect being removed is AFF_ASTRAL.
If it is, call a new function remove_astral_sword(ch);

remove_astral_sword should be a fairly easy function to write, just
search through eq, then inventory. If you come across the sword,
unequip it, then do: obj_from_char(obj, ch); extract_obj(obj);

That should work.

By the way, you should make the sword not be removable from equipped
position until it vanishes :)

Hope this helps,

Rasdan
                                  /   \
        _                 )      ((   ))     (
       (@)               /|\      ))_((     /|\                 _
       |-|`\            / | \    (/\|/\)   / | \               (@)
       | | ------------/--|-voV---\`|'/--Vov-|--\--------------|-|
       |-|                  '^`   (o o)  '^`                   | |
       | |  James C. Thomas Jr.   `\Y/'  Founder of Finality   |-|
       |-|                 rasdan@finality.com                 | |
       | |                  finality.com 4000                  |-|
       |_|_____________________________________________________| |
       (@)       l   /\ /         ( (       \ /\   l         `\|-|
                 l /   V           \ \       V   \ l           (@)
                 l/                _) )_          \I
                                   `\ /'
                                     `


     +------------------------------------------------------------+
     | 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/08/00 PST