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
|
// author: Jenalya
// reviewed by:
// state0: Cindy is totally scared and does nothing helpful
// state1: you are able to open the cage
// state2 and greater: Cindy is saved, she asks you to visit them
//
//TODO: picture
031-3.gat,122,51,0 script Cindy 114, {
set @KEYS_AMOUNT, 10;
set @Q_Nivalis_state_MASK, NIBBLE_5_MASK;
set @Q_Nivalis_state_SHIFT, NIBBLE_5_SHIFT;
set @rescue_Cindy, ((QUEST_Nivalis_state & @Q_Nivalis_state_MASK) >> @Q_Nivalis_state_SHIFT);
if (Sex == 0) set @title$, "Misses";
if (Sex == 1) set @title$, "Mister";
if (@rescue_Cindy >= 3) goto L_Please_Visit;
if (@rescue_Cindy == 2) goto L_Reward;
if (@rescue_Cindy == 1) goto L_Please_Help;
mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
next;
mes "You don't know, what to do.";
close;
L_Please_Help:
mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage.";
next;
menu
"Hello Cindy, I'm here to save you.", - ;
mes "Cindy doesn't look so scared anymore.";
next;
mes "[Cindy]";
mes "\"Hello, dear " + @title$ + " adventurer. Did my mother send you?\"";
next;
mes "\"It's so cold in here! Can you please open the cage?\"";
next;
mes "\"But be careful, if the Yetis hear you, they will come!\"";
menu
"Try to open the cage", L_Try_Cage,
"Leave", -;
close;
L_Try_Cage:
if (countitem("TreasureKey") < @KEYS_AMOUNT) goto L_Not_Enough_Keys;
delitem "TreasureKey", @KEYS_AMOUNT;
mes "As you try to open the door of the cage, there is a loudly squeaking noise.";
next;
mes "You get an uncomfortable feeling and Cindy starts to shiver.";
next;
mes "\"Oh no, the Yetis...\"";
//TODO: start the battle and set state2 in case of success
mes "DEBUG: ADD YETIFIGHT HERE, QUEST VARIABLE INCREASED";
set @rescue_Cindy, 2;
callsub S_Update_Mask;
close;
L_Reward:
mes "[Cindy]";
mes "\"You are a hero! All this strong monsters!\"";
next;
mes "\"I've found this thing in the cave - it looks valuable. I want you to have it.\"";
next;
getinventorylist;
if (@inventorylist_count == 100) goto L_Full_Inv;
set @reward, rand(1);
if (@reward == 1) goto L_Wizard_Hat;
//TODO: set right, when quarterstaff is in item_db
//getitem "QuarterStaff", 1;
mes "DEBUG: GET ACORN INSTEAD OF QUARTERSTAFF";
getitem "acorn", 1;
goto L_Visit;
L_Wizard_Hat:
//TODO: set right, when quarterstaff is in item_db
//getitem "WizardHat", 1;
mes "DEBUG: GET ACORN INSTEAD OF WIZARDHAT";
getitem "acorn", 1;
L_Visit:
mes "\"Thank you so much, please come to my home. It's the house at the beach.\"";
next;
mes "\"I'm sure, my mother want to thank you as well.\"";
set @rescue_Cindy, 3;
callsub S_Update_Mask;
close;
L_Please_Visit:
mes "[Cindy]";
mes "\"Thank you, thank you! You're a hero! Please come home with me to our house at the beach!\"";
close;
L_Not_Enough_Keys:
mes "You don't have enough keys to open the cage.";
close;
L_Full_Inv:
mes "\"Oh, it seems you carry so much stuff - I will keep it for you until you can take it.\"";
close;
S_Update_Mask:
set QUEST_Nivalis_state,
(QUEST_Nivalis_state & ~(@Q_Nivalis_state_MASK))
| (@rescue_Cindy << @Q_Nivalis_state_SHIFT);
return;
}
|