summaryrefslogtreecommitdiff
path: root/world/map/npc/002-1/lieutenant_dausen.txt
blob: 6cfbbdabf53eaaacf099054ef83dfaf7cfad06ce (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
// Lieutenant in charge of monitoring the monster threat surrounding the city.
// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar

002-1.gat,54,27,0|script|Lieutenant Dausen|122,
{
    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);

    if (@state == 21) goto L_LD_Key;
    if (@state == 7) goto L_LD_Miners;
    if (@state == 6) goto L_LD_Orders;
    if (@state == 5) goto L_LD_Nickos_Waits;
    if (@state == 4) goto L_LD_Nickos;
    if (@state == 3) goto L_LD_Waits;
    if (@state == 2) goto L_LD_Woe_Is_Me;
    if (@state == 1) goto L_LD_Drinks;

    set @bermik, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
    set @sarah, ((QUEST_SouthTulimshar & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
    set @vincent, ((QUEST_SouthTulimshar & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
    set @sandra, ((QUEST_SouthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);

    if ((@state == 0) && (@bermik >= 6) && (@sarah >= 2) && (@vincent >= 2) && (@sandra >= 2))
        goto L_LD_Start;

    mes "[Lieutenant Dausen]";
    mes "\"Hello. I am Lieutenant Dausen. I monitor the monster threat around the city to ensure the safety of its citizens.\"";
    next;

    if (@state)
        goto L_Close;
    mes "[Lieutenant Dausen]";
    mes "\"I may have a job for you, stranger, but first I would like to learn more about you. Go walk among the citizens of Tulimshar, see if any of them could use some help. Once you have established a good reputation, word will get to me.\"";
    goto L_Close;

L_LD_Start:
    set @state, 1;
    callsub S_Update_Var;
    mes "[Lieutenant Dausen]";
    mes "\"Out here in the desert, it sure does get hot!  My men and I get thirsty rather quickly. Cactus Drinks are our favourite; if you can get some for us, we'd surely appreciate your effort. About 10 would do.\"";
    goto L_Close;

L_LD_Drinks:
    if (countitem ("CactusDrink") < 10)
        goto L_LD_NotEnough_Drink;
    getinventorylist;
    if (@inventorylist_count - (countitem("CactusDrink") == 10) > 99)
        goto L_LD_TooMany;
    set @state, 2;
    callsub S_Update_Var;
    delitem "CactusDrink", 10;
    getitem "Boots", 1;
    mes "[Lieutenant Dausen]";
    mes "\"Great!  This will help us make it through the hot day. As a gift for your troubles, take these boots to keep your feet from burning on the sand. Have a good day...\"";
    next;
    mes "Lieutenant Dausen mumbles to himself and rubs his head.";
    next;
    mes "\"I have another problem, though. I mixed up the orders to my men, Nickos and Stewen. Someone needs to let them know they're going to have to hold their post for a while longer instead of taking a break. However, I can't leave my post!  Oh, what to do, what to do...\"";
    menu
        "I can help you out, since you helped me too.", L_LD_Help,
        "Thanks for the boots, gotta run now.", L_LD_NoHelp;

L_LD_NotEnough_Drink:
    mes "[Lieutenant Dausen]";
    mes "\"Hi again. My men and I sure are thirsty for our favorite drink, the Cactus Drink. If we had about 10, it would help us out a great deal in this sandstorm.\"";
    goto L_Close;

L_LD_TooMany:
    mes "[Lieutenant Dausen]";
    mes "\"Oh, it seems you have too many items for me to give you a reward. Come back after you drop or sell some items.\"";
    goto L_Close;

L_LD_Woe_Is_Me:
    mes "[Lieutenant Dausen]";
    mes "\"I have a problem. I mixed up the orders to my men!  Someone needs to let them know they're going to have to hold their post for a while longer instead of taking a break. However, I can't leave my post. Oh, what to do, what to do...\"";
    menu
        "I can help you out, since you helped me out too.", L_LD_Help,
        "Bye-bye.", L_LD_NoHelp;

L_LD_Help:
    set @state, 3;
    callsub S_Update_Var;
    mes "[Lieutenant Dausen]";
    mes "\"Oh!  Would you?  You are ever most helpful!  Could you let Stewen know first?  I'm the most worried about the monsters from the eastern desert and he should know first to hold his post. Come back to me after you see him. Hope to hear from you soon!\"";
    goto L_Close;

L_LD_NoHelp:
    mes "[Lieutenant Dausen]";
    mes "\"See you later then.\"";
    goto L_Close;

L_LD_Waits:
    mes "[Lieutenant Dausen]";
    mes "\"I do hope Stewen holds his post. If you could tell them to do so, it would help me out a great deal.\"";
     goto L_Close;

L_LD_Nickos:
    set @state, 5;
    callsub S_Update_Var;
    mes "[Lieutenant Dausen]";
    mes "\"Thanks for letting Stewen know. Can you now tell Nickos to hold his post too?  He guards the mine to the south, monitoring the monster threat and protecting the miners when he can.\"";
    goto L_Close;

L_LD_Nickos_Waits:
    mes "[Lieutenant Dausen]";
    mes "\"Could you let Nickos know to hold his post?  It would be very helpful. He is guarding the mine south of here.\"";
    goto L_Close;

L_LD_Orders:
    set @state, 7;
    callsub S_Update_Var;
    set Zeny, Zeny + 500;
    mes "[Lieutenant Dausen]";
    mes "\"Thank you for clearing up the orders to my men!  Here's some gold for your efforts.\"";
    next;
    mes "\"If you think you can handle the monsters lurking out here, I'm sure Nickos and the miners could use some help. Talk to you later.\"";
    goto L_Close;

L_LD_Miners:
    mes "[Lieutenant Dausen]";
    mes "\"I monitor the monster threat around the city to ensure the safety of its citizens.\"";
    next;
    mes "\"If you think you can handle the monsters lurking out here, I'm sure Nickos and the miners could use some help. Talk to you later.\"";
    goto L_Close;

L_LD_Key:
    set @state, 22;
    callsub S_Update_Var;
    mes "[Lieutenant Dausen]";
    mes "\"Oh, Naem lost his key?  Here, take this spare. It should help you get into the underground palace.\"";
    goto L_Close;

L_Close:
    set @state, 0;
    set @bermik, 0;
    set @sarah, 0;
    set @vincent, 0;
    set @sandra, 0;
    close;

S_Update_Var:
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT));
    return;
}