blob: 15672f4c1be09187456f17e1c8f44ce617813e61 (
plain) (
tree)
|
|
"--------------------------------------------------------------------------------"
" 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\";
}"))))
|