summaryrefslogtreecommitdiff
path: root/world/map/conf/magic-misc.sex
blob: 15672f4c1be09187456f17e1c8f44ce617813e61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
"--------------------------------------------------------------------------------"
" 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\";
            }"))))