summaryrefslogblamecommitdiff
path: root/world/map/conf/magic-misc.sex
blob: 15672f4c1be09187456f17e1c8f44ce617813e61 (plain) (tree)
1
2
3
                                                                                  
                                                                                  
                                                                                  

















                                                                            
                                                                                              











































                                                                                                                                                                                    







                                                     
                                             




                                         
                                             






















































































                                                                                                   











                                        
                                         









                                                                                             
 















                                                                                 
 







                                                   
"--------------------------------------------------------------------------------"
" Special-purpose quasispells                                                    "
"--------------------------------------------------------------------------------"
(SPELL (NONMAGIC) dueloff "#dueloff" ()
    (=>
        (GUARD
            (REQUIRE
                (== (substr (location caster) 2 5) "009-7")))
        (EFFECT
            (IF (== (script_int caster "@Duels_Off") 1)
                (BLOCK
                    (SCRIPT "{set @Duels_Off, 0;}")
                    (message caster "Now accepting incoming duel requests.")
                    (ABORT)))
            (SCRIPT "{set @Duels_Off, 1;}")
            (message caster "Now blocking incoming duel requests."))))

(SPELL (NONMAGIC) duel "#duel" (PC target)
    (=>
        (GUARD
            (REQUIRE
                (== (& (script_int target "$SANGUINE") (script_int target "$@SV_FCDBit")) 0)))
        (EFFECT
            (IF (== target caster)
                (BLOCK
                    (message caster "You can not fight against yourself.")
                    (ABORT)))
            (IF (is_dead target)
                (BLOCK
                    (message caster "You can not fight against a corpse.")
                    (ABORT)))
            (IF (status_option caster SO_GMINVISIBLE)
                (BLOCK
                    (message caster "You can not fight while being invisible.")
                    (ABORT)))
            (IF (status_option target SO_GMHIDE)
                (BLOCK
                    (message caster "This player have @hide enabled.")
                    (ABORT)))
            (IF (status_option target SO_GMINVISIBLE)
                (ABORT))
            (IF (status_option caster SO_GMHIDE)
                (ABORT))
            (IF (!= (substr (location caster) 2 5) "009-7")
                (BLOCK
                    (message caster "You need to be in the fight club to challenge someone to a duel.")
                    (ABORT)))
            (IF (!= (substr (location target) 2 5) "009-7")
                (BLOCK
                    (message caster "This player is not in the fight club at the moment.")
                    (ABORT)))
            (IF (> (script_int target "@Duels_Off") 0)
                (BLOCK
                    (message caster "This player is automatically ignoring incoming duel requests.")
                    (ABORT)))
            (IF (> (script_int caster "$@Duel_Queue_ID[($@Duel_QueueLimit)]") 0)
                (BLOCK
                    (message caster (+ (+ "There is already " (script_int caster "$@Duel_QueueLimit")) " duel(s) in the queue, which is the maximum."))
                    (ABORT)))
            (IF (> (script_int target "@Duel_Queue[($@Duel_PlayerQueueLimit)]") 0)
                (BLOCK
                    (message caster (+ (+ "There is already " (script_int caster "$@Duel_PlayerQueueLimit")) " duel request(s) in the queue of this player, which is the maximum."))
                    (ABORT)))
            (SET script_target target)
            (SCRIPT "{callfunc \"fightclub_sendrequest\";}"))))

(SPELL (NONMAGIC SILENT) marriage "marry" (PC target)
    (=>
        (GUARD
            (REQUIRE
                (||
                    (is_in
                        (location caster)
                        (@+
                            (@ "014-1" 28 39)
                            8
                            6))
                    (is_in
                        (location caster)
                        (@+
                            (@ "001-2" 21 27)
                            4
                            4)))))
        (EFFECT
            (IF (== target caster)
                (ABORT)) "no valid target or tried to marry self?"
            (IF (<
                    (level caster)
                    MIN_MARRY_LEVEL)
                (BLOCK
                    (message caster
                        (+
                            (+ "You must be level " MIN_MARRY_LEVEL)
                            " or higher to marry!"))
                    (ABORT)))
            (IF (<
                    (level target)
                    MIN_MARRY_LEVEL)
                (BLOCK
                    (message caster
                        (+
                            (+ "Your partner must be level " MIN_MARRY_LEVEL)
                            " or higher to marry!"))
                    (ABORT)))
            (IF (==
                    (partner caster)
                    target)
                (BLOCK
                    (message caster
                        (+
                            (+ "You and "
                                (name_of target))
                            " are already married."))
                    (ABORT)))
            (IF (is_married caster)
                (BLOCK
                    (message caster "You are already married!")
                    (ABORT)))
            (IF (is_married target)
                (BLOCK
                    (message caster
                        (+
                            (name_of target)
                            " is already married."))
                    (ABORT)))
            (IF (!=
                    (distance
                        (location caster)
                        (location target))
                    1)
                (BLOCK
                    (message caster "You need to stand next to each other.")
                    (ABORT)))
            (IF (||
                    (==
                        (count_item caster "WeddingRing")
                        0)
                    (==
                        (count_item target "WeddingRing")
                        0))
                (BLOCK
                    (message caster "You must both be wearing your wedding rings!")
                    (ABORT)))
            (SET script_target target)
            (SCRIPT "{
                announce @caster_name$ + \" is asking \" + strcharinfo(0) + \" for marriage.\", 2;
                mes @caster_name$ + \" wishes to marry you.\";
                mes \"Do you accept?\";
                next;
                menu
                    \"Yes, I do!\", L_yes,
                    \"No.\", L_Close;

            L_yes:
                if (marriage(@caster_name$))
                    announce @caster_name$ + \" and \" + strcharinfo(0) + \" are now married!\", 0;
                goto L_Close;

            L_Close:
                close;
            }")
            (IF (not
                    (is_married caster))
                (message caster
                    (+
                        (name_of target)
                        " turned down your marriage offer."))))))

(DISABLED
    (SPELL (LOCAL) mouboo-groan "#g" ()
        (=>
            (GUARD
                (MANA 1)
                (REQUIRE
                    (==
                        (name_of caster)
                        "MOUBOOTAUR")))
            (EFFECT
                (FOREACH PC p
                    (rbox
                        (location caster)
                        200)
                    (SET distance
                        (rdistance
                            (location caster)
                            (location p))))
                (IF (< distance 15)
                    (message p "The moubootaur's groaning rings in your ears!")
                    (IF (< distance 70)
                        (message p "You hear a loud groaning noise, not far away...")
                        (message p "You hear an odd groaning noise in the distance...")))))))

(DISABLED
    (SPELL (LOCAL) mouboo-smell "#s" ()
        (=>
            (GUARD
                (MANA 1)
                (REQUIRE
                    (==
                        (name_of caster)
                        "MOUBOOTAUR")))
            (EFFECT
                (WAIT 30000)
                (FOREACH PC p
                    (rbox
                        (location caster)
                        30)
                    (message p "You notice a strange smell all around you."))))))

(SPELL (NONMAGIC) killgm0 "#pullrabbit" ()
    (=>
        (REQUIRE
            (is_equipped caster "MagicGMTopHat"))
        (EFFECT
            (SCRIPT "{
                callfunc \"ActivateMagicGMTophat\";
            }"))))