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
|
027-2.gat,22,84,0 script Hamond 319,{
set @Graveyard_Inn_MASK, NIBBLE_3_MASK;
set @Graveyard_Inn_SHIFT, NIBBLE_3_SHIFT;
set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
//TODO: find out, why this don't work
set @Graveyard_Inn_Woman_MASK, NIBBLE_0_MASK;
set @Graveyard_Inn_Woman_SHIFT, NIBBLE_0_SHIFT;
set @woman, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK_Woman) >> @Graveyard_Inn_SHIFT_Woman);
//TODO: determine correct nibble
set @Graveyard_Inn_Kid_MASK, NIBBLE_2_MASK;
set @Graveyard_Inn_Kid_SHIFT, NIBBLE_2_SHIFT;
set @kidstate, ((QUEST_Graveyard_Inn & @Graveyard_Inn_Kid_MASK) >> @Graveyard_Inn_Kid_SHIFT);
//TODO: determine sane values
set @ICE_CUBE_AMOUNT, 100;
set @ICE_CUBE_EXP, 10000;
//TODO: determine sane values
set @BONE_AMOUNT, 100;
set @SKULL_AMOUNT, 50;
set @BONE_EXP, 30000;
if ((@state == 4) && (sex == 0) && (@kidstate >= 5)) goto L_Helped_Kid; //TODO: determine right value of kidstate
if (@state == 3) goto L_Brought_Bones;
if (@state == 2) goto L_Check_Bones;
if (@state == 1) goto L_Ice_Cube;
mes "[Pale Man]";
mes "\"Hello, I hope you're enjoying your time in Reids Inn. My name is Hamond, and I'm running this inn together with my beautiful wife Reid. If there is anything I can do for you, please let me know.\"";
if (baselevel < 85) goto L_Close;
next;
menu
"I'd like to know, why all the people in here are dead.",-,
"Are you feeling well? You look very pale, better to say - deathly pale.",-,
"Thank you, but I'm fine.", L_Close;
mes "Hamond seems very confused. Then he notices the grey color of his hands and begans to shake his head in panic.";
mes "[Hamond]";
mes "\"WHAT IS THIS?\"";
next;
//TODO: ask a native speaker if this is understandable
mes "Because of the rapid movement of his head, it snaps back in his neck along a cut in his throat you haven't seen before.";
next;
mes "You're trying hard not to run away screaming. Instead, you grab his hair and pull his head back in place.";
next;
mes "Hamond blinks his eyes with a puzzled look on his face.";
mes "[Hamond]";
mes "\"This was uncomfortable! It seems, you are right. I am dead. Weird.\"";
next;
mes "\"How can I be dead, but walking around and talking? This is very strange. \"";
next;
mes "\"But nevertheless, I will continue to run this inn and do my best to make happy all our patrons - may they be alive or dead.\"";
next;
menu
"Can I help with that?", -;
mes "[Hamond]";
mes "\"Helping me? I never would have asked, but actually, I need something to cool the drinks. Maybe you can find something.\"";
set @state, 1;
callsub S_Update_Mask;
close;
L_Ice_Cube:
mes "[Hamond]";
mes "\"Hello my friend! Good to see you again. Did you find something to cool the drinks?\"";
next;
if (countitem("IceCube") > 0)
menu
"Maybe this never melting Ice Cubes?", L_Check_Ice,
"I'm still searching.", L_Close;
mes "\"You didn't? Too bad.\"";
close;
L_Check_Ice:
if (countitem("IceCube") < @ICE_CUBE_AMOUNT)
goto L_Not_Enough_Cubes;
delitem "IceCube", @ICE_CUBE_AMOUNT;
set @state, 2;
callsub S_Update_Mask;
mes "[Hamond]";
mes "\"Yes, wonderfull! That's exactly what I need.\"";
next;
mes "\"I put all my effort in making this inn a well running place for my beloved Reid.\"";
next;
mes "\"You know, she had a very hard childhood.\"";
next;
mes "\"Her parents were the former owners of the inn. But they had some problems and the inn wasn't running well.\"";
next;
mes "\"Also they died very early and Reid was so lonely and sad. She is such a wonderful woman, I'd do everything for her.\"";
next;
mes "He is mumbling to himself the next sentence.";
next;
mes "\"And I won't let a wannabe mage take her away from me...\"";
next;
menu
"What do you mean?",-;
mes "[Hamond]";
mes "\"Nevermind, nevermind. I'd like to ask you for another favor, if I might.\"";
next;
mes "\"A patron asked for - uhm, bones. He said, he need it to replace some of his bones, which were damaged in a scuffle with mortals.\"";
next;
mes "\"I know, this is a bit strange - I'm still getting used to being dead. But a patrons wish is a patrons wish!\"";
next;
mes "\"Maybe you can bring me a huge amount of bones and skulls, so I can fulfill those wishes in future?\"";
close;
L_Check_Bones:
mes "[Hamond]";
mes "\"Welcome back! Let me see what you have.\"";
if ((countitem("Bone") < @BONE_AMOUNT) || (countitem("Skull") < @SKULL_AMOUNT))
goto L_Not_Enough_B;
delitem "Bone", @BONE_AMOUNT;
delitem "Skull", @SKULL_AMOUNT;
set @state, 3;
callsub S_Update_Mask;
L_Brought_Bones:
mes "[Hamond]";
mes "\"Thanks for your help! Now I'll be able to satisfy our patrons wishes.\"";
next;
mes "TODO: remove, debug: @woman =" + @woman;
if (@woman > 5)
menu
"Would you tell me about this mage named Savaric?", L_Savaric,
"Your welcome.",-;
mes "[Hamond]";
mes "\"Please make yourself at home.\"";
close;
L_Savaric:
mes "Hamonds face turns into an ugly grimace.";
mes "[Hamond]";
mes "\"This egomaniac cheekily - \"";
next;
if (Sex == 1) goto L_Man;
//TODO: think, if gender change should be checked
//TODO: determine correct value for kidstate
if ((Sex == 0) && (@kidstate < 5)) goto L_Woman;
mes "\"Hrm - I don't think, you'll understand. It is something between men.\"";
next;
mes "\"Although you're a woman, it was very nice of you to help my son. I'll tell you nevertheless.\"";
L_Jealousy:
//TODO: go on here
mes "TODO: add story :P";
close;
L_Man:
mes "[Hamond]";
mes "\"You're a man - I think you will understand what I'm going to tell you.\"";
goto L_Jealousy;
L_Woman:
mes "[Hamond]";
mes "\"Hrm - I don't think, you'll understand. It is something between men.\"";
next;
mes "\"Maybe if you show me, you're a understanding person.\"";
close;
L_Helped_Kid:
mes "[Hamond]";
mes "\"It was very nice of you to help my son. I think, I can tell you about Savaric.\"";
goto L_Jealousy;
L_Not_Enough_B:
if (countitem("Bone") < @BONE_AMOUNT)
mes "\"I'm not sure, but I think, more bones will be better.\"";
if (countitem("Skull") < @SKULL_AMOUNT)
mes "\"That are not enough skulls.\"";
close;
L_Not_Enough_Cubes:
mes "[Hamond]";
mes "\"Yes, they look good! But I think, I need more of them. Maybe " + @ICE_CUBE_AMOUNT + "?\"";
close;
L_Close:
close;
S_Update_Mask:
set QUEST_Graveyard_Inn,
(QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
| (@state << @Graveyard_Inn_SHIFT);
return;
}
|