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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
014-1,31,31,0 script Wedding Officiator NPC164,{
mes "[Wedding Officiator]";
mes "A young lady in a long, green dress is overseeing the park. As she notices you looking at her, she gives you a broad and happy smile.";
mes "\"Hi there! I'm Wendy, here for all your marriage needs!\"";
next;
goto L_Main;
L_Main:
if (getpartnerid() > 0)
goto L_Main_married;
menu
"What exactly do you do?", L_explain_self,
"How do I get married?", L_explain_marriage,
"I would like to get married.", L_Get_married,
"Goodbye.", L_End;
L_explain_self:
mes "[Wedding Officiator]";
mes "\"I'm responsible for marriage and divorce proceedings. Every married couple must be registered, so I keep a looong list of couples and send that to the magistrates every now and then.\"";
next;
mes "[Wedding Officiator]";
mes "\"So if you have a sweetheart and the two of you are getting along particularly well, and you think that you are ready to make that big final step – well, then come here and talk to me!\"";
next;
goto L_Main;
L_explain_marriage:
mes "[Wedding Officiator]";
mes "\"If you are sure that you are ready to get married, then first you come and talk to me here – I need to register you, after all. You will first have to pay me a small fee of " + WEDDING_FEE + " GP.\"";
next;
mes "[Wedding Officiator]";
mes "\"Both you and your partner must be at least " + WEDDING_MIN_LEVEL + " levels of age, though; the law is very firm on that. But if all of that works out, I will give you two wedding rings for the ceremony.\"";
next;
mes "[Wedding Officiator]";
mes "\"To complete the marriage, each of you has to put on one of these rings, and you have to stand next to each other in the southern part of this park. Then one of you says `marry' and then the other person's name.\"";
next;
mes "[Wedding Officiator]";
mes "\"So if you would want to marry me, for example, you would say `marry Wendy'. Just like that. Your partner then has to decide whether he or she wants that. And if you both agree, then you're married!\"";
mes "She again smiles that broad smile of hers.";
next;
goto L_Main;
L_Get_married:
if (Zeny < WEDDING_FEE)
goto L_too_poor;
if (BaseLevel < WEDDING_MIN_LEVEL)
goto L_too_young;
mes "[Wedding Officiator]";
mes "Wendy's eyes are sparkling.";
mes "\"Wow. So you and your sweetheart are ready to take the big step, then?\"";
next;
menu
"Yes, we are ready.", L_Next,
"On second thought, perhaps not.", L_End;
L_Next:
mes "[Wedding Officiator]";
mes "She bounces.";
mes "\"That's so sweet! You must really love each other, then...?\"";
next;
menu
"We certainly do.", L_Next1,
"Yes, of course.", L_Next1,
"Please get on with it.", L_Next1,
"Hmm. Let me think about this some more.", L_End;
L_Next1:
mes "[Wedding Officiator]";
mes "Wendy blushes.";
mes "\"Sorry if I am asking so many questions, but I have to make sure, you see... rules and all. Where were we...\"";
next;
mes "[Wedding Officiator]";
mes "She composes herself again.";
mes "\"OK. Now, what vows you exchange precisely is your choice. But a marriage is really something that is meant to last. So please take a moment to think.\"";
next;
mes "[Wedding Officiator]";
mes "\"Is your partner really someone you are serious about, someone you want to be with even when things get nasty, someone whom you will stick your head out for no matter how bad things get?";
mes "And do both of you feel that you could spend the rest of your time in this mana world together?\"";
next;
menu
"Yes.", L_Next2,
"YES.", L_Next2,
"Absolutely.", L_Next2,
"Yes. We love each other.", L_Next2,
"This is taking too long.", L_End,
"No.", L_End;
L_Next2:
if (Zeny < WEDDING_FEE)
goto L_too_poor;
if (BaseLevel < WEDDING_MIN_LEVEL)
goto L_too_young;
getinventorylist;
if (@inventorylist_count > 98)
goto L_No_Room_For_Rings;
Zeny = Zeny - WEDDING_FEE;
getitem "WeddingRing", 1;
getitem "WeddingRing", 1;
mes "[Wedding Officiator]";
mes "Wendy collects the fee.";
mes "\"Okay... here are your wedding rings. Each of you has to have one. Put them on, stand next to each other in the southern part of this park and say `marry ...' and the name of your partner.";
mes "So your partner might just say `marry " + strcharinfo(0) + "' to marry you.\"";
next;
mes "[Wedding Officiator]";
mes "Wendy hesitates, then gives you a quick hug. There are tears are in her eyes.";
mes "\"Sorry, I always get a bit... emotional, I think... but I'm so happy for you!\"";
mes "She smiles and wipes the tears from her eyes.";
next;
mes "[Wedding Officiator]";
mes "\"So... I wish you the very, very best, a wonderful and happy and successful marriage!\"";
mes "She smiles at you again.";
close;
L_End:
close;
L_too_young:
mes "[Wedding Officiator]";
mes "Wendy looks at her notes, shaking her head; pain is evident in her eyes.";
mes "\"I'm really, really sorry – I wish I could allow that, but you are still too young. You have to be at least " + WEDDING_MIN_LEVEL + " levels of age.\"";
close;
L_too_poor:
mes "[Wedding Officiator]";
mes "\"Oh, this is so sad... you want to get married but don't have the money!\"";
mes "Wendy is visibly unhappy.";
mes "\"I wish I could help you, but the rules... you see... Well, I'm afraid that you will just have to come back when you have " + WEDDING_FEE + " GP.\"";
close;
L_Main_married:
mes "[Wedding Officiator]";
mes "\"I hope that you and your partner are doing well?\"";
next;
menu
"We are very happy, thanks for asking!", L_Farewell2,
"Actually, things aren't so good...", L_talk_divorce;
L_Farewell2:
mes "[Wedding Officiator]";
mes "Wendy is beaming.";
mes "\"That's wonderful! Please do say `hi' to your spouse from me!\"";
close;
L_talk_divorce:
mes "[Wedding Officiator]";
mes "\"Oh... I am sorry to hear that. What's the problem, then?\"";
next;
menu
"We don't love each other anymore.", L_Nolove,
"My partner loves someone else.", L_partner_otherlove,
"I think I love someone else.", L_self_otherlove,
"We can't agree on who carries the loot.", L_loot;
L_Nolove:
mes "[Wedding Officiator]";
mes "Wendy sighs.";
mes "\"I am really sorry to hear that. Have you tried talking to your partner? Tried some new dungeons? Solved some quests together?\"";
next;
mes "[Wedding Officiator]";
mes "\"I mean... I am sure that you have many things in common that you are not aware of. If you just do something new, perhaps you will learn something about each other that you will like?\"";
next;
menu
"We tried that, it didn't work.", L_makesure_divorce,
"Perhaps we should give it another try.", L_End;
L_partner_otherlove:
mes "[Wedding Officiator]";
mes "Wendy frowns.";
mes "\"Are you really sure? Perhaps that other person is just a friend, or even if it isn't, perhaps it was just a small mistake on your partner's side... nobody is perfect, after all!\"";
next;
menu
"I'm sure. I want a divorce.", L_makesure_divorce,
"Perhaps we should discuss this some more first.", L_End;
L_self_otherlove:
mes "[Wedding Officiator]";
mes "Wendy sighs.";
mes "\"Oh dear... well, I suppose that happens. You don't have any children, I think, but still, you made a promise to your partner.\"";
next;
mes "[Wedding Officiator]";
mes "\"Are you really sure that you love the new person so much that you want to leave your partner? Perhaps it would be good to take some time off first to make sure that you are not making a mistake here.\"";
next;
menu
"I'm sure. I want a divorce.", L_makesure_divorce,
"Let me think about this more.", L_End;
L_loot:
mes "[Wedding Officiator]";
mes "Wendy blinks.";
mes "\"Err... have you thought about just splitting it up?\"";
next;
menu
"No way. I want a divorce.", L_makesure_divorce,
"Oh... oh! But of course!", L_End;
L_makesure_divorce:
@divorce_cost = DIVORCE_FEE_PER_LEVEL * BaseLevel;
mes "[Wedding Officiator]";
mes "Resigned, Wendy looks down at her notes.";
mes "\"Okay. I suppose that if you are sure, I will get your divorce underway. But that will cost you " + @divorce_cost + " in administrative fees.\"";
next;
menu
"Let me think about this again.", L_End,
"HOW much? Never mind, then.", L_End,
"That's OK. I want the divorce.", L_do_divorce;
L_divorce_nomoney:
mes "[Wedding Officiator]";
mes "\"I am sorry, but you can't seem to afford the " + @divorce_cost + " GP for a divorce at this time. Please come back later.\"";
close;
L_do_divorce:
if (Zeny < @divorce_cost)
goto L_divorce_nomoney;
if (getpartnerid() && divorce() && getpartnerid() == false)
goto L_DidDivorce;
mes "[Wedding Officiator]";
mes "The officiator searches through her records for your partner.";
mes "\"I can't find your partner's record, you'll have to come back later.\"";
next;
mes "[Server]";
mes "Try again when your partner is online too.";
close;
L_DidDivorce:
Zeny = Zeny - @divorce_cost;
mes "[Wedding Officiator]";
mes "After collecting her fee, Wendy licks her quill and writes down some notes.";
mes "Then she sighs heavily.";
mes "\"You are divorced now. Thank you for your business.\"";
close;
L_No_Room_For_Rings:
mes "[Wedding Officiator]";
mes "\"You don't have room to carry the rings.\"";
close;
OnDoMarriage:
// at this point all conditions are already checked, except the rings
.@target = getcharid(CHAR_ID_ACCOUNT, @marriage$);
if (!isequipped(WeddingRing)) {
unittalk(.id, l("You must have a %s equipped.", getitemlink(WeddingRing)), true, SELF, playerattached());
end;
}
.@prev_rid = playerattached();
attachrid(.@target);
if (!isequipped(WeddingRing)) {
unittalk(.id, l("You must have a %s equipped.", getitemlink(WeddingRing)), true, SELF, .@target);
end;
}
attachrid(.@prev_rid);
marriage(@marriage$);
announce(sprintf("%s and %s are now married!", strcharinfo(PC_NAME), @marriage$), bc_all);
npctalk("Congratulations!");
emotion(E_JOY); // on officiator
emotion(E_HEART, true, strcharinfo(PC_NAME)); // on player
emotion(E_HEART, true, @marriage$); // on player
end;
OnInit:
.realName$ = "Wendy";
.distance = 5;
.officiator = true;
end;
}
// Marriage core
014-1,31,38,0 duplicate(marriage) #handler#014-1#2 NPC_HIDDEN
|